@kp-ui/lowcode 2.15.0-beta.6 → 2.15.0-beta.7
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/package.json +6 -2
- package/src/components/FormRender/useFormContext.js +15 -15
- package/src/components/FormRender/useFormContext.js.map +1 -1
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js +8 -0
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js.map +1 -0
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js +43 -0
- package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js.map +1 -0
- package/src/components/bi-widget/echartBar/echart-bar.js +35 -0
- package/src/components/bi-widget/echartBar/echart-bar.js.map +1 -0
- package/src/components/bi-widget/index.js +13 -0
- package/src/components/bi-widget/index.js.map +1 -0
- package/src/components/{form-designer/designer.js → designer.js} +71 -76
- package/src/components/designer.js.map +1 -0
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js +26 -0
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js.map +1 -0
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.js +5 -0
- package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.js.map +1 -0
- package/src/components/form-designer/form-widget/RenderDesignerWigetList.vue.js +1 -1
- package/src/components/form-designer/form-widget/RenderDesignerWigetList.vue.js.map +1 -1
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue.js +8 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue.js.map +1 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js +68 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js.map +1 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js +8 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js.map +1 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js +136 -0
- package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js.map +1 -0
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js +8 -0
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js.map +1 -0
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js +153 -0
- package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js.map +1 -0
- package/src/components/form-designer/form-widget/bi/useRuler.js +66 -0
- package/src/components/form-designer/form-widget/bi/useRuler.js.map +1 -0
- package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue.js +2 -2
- package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue2.js +24 -21
- package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue.js +2 -2
- package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js +36 -34
- package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue.js +1 -1
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js +1 -1
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/index.js +1 -1
- package/src/components/form-designer/form-widget/field-widget/index.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/useField.js +117 -117
- package/src/components/form-designer/form-widget/field-widget/useField.js.map +1 -1
- package/src/components/form-designer/form-widget/index.vue.js +2 -2
- package/src/components/form-designer/form-widget/index.vue2.js +47 -56
- package/src/components/form-designer/form-widget/index.vue2.js.map +1 -1
- package/src/components/form-designer/index.vue.js +74 -77
- package/src/components/form-designer/index.vue.js.map +1 -1
- package/src/components/form-designer/setting-panel/form-setting.vue.js +1 -1
- package/src/components/form-designer/setting-panel/form-setting.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/form-setting.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/index.vue.js +1 -1
- package/src/components/form-designer/setting-panel/index.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/index.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/option-items-setting.vue.js +2 -2
- package/src/components/form-designer/setting-panel/option-items-setting.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/option-items-setting.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/panel/PanelItemDrag.vue.js +51 -0
- package/src/components/form-designer/setting-panel/panel/PanelItemDrag.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js +51 -0
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js +5 -0
- package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue2.js +201 -255
- package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-customClass-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-customClass-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue.js +2 -2
- package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/height-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue2.js +10 -10
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue.js +5 -0
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js +71 -0
- package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js +5 -0
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js +81 -0
- package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js.map +1 -0
- package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/index.js +54 -54
- package/src/components/form-designer/setting-panel/property-editor/index.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/multiple-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/rightSlotCss-editor.vue2.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/rightSlotCss-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/type-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/useEditor.js +1 -1
- package/src/components/form-designer/setting-panel/property-editor/useEditor.js.map +1 -1
- package/src/components/form-designer/setting-panel/propertyRegister.js +12 -10
- package/src/components/form-designer/setting-panel/propertyRegister.js.map +1 -1
- package/src/components/form-designer/toolbar-panel/PreviewDialog.vue.js +1 -1
- package/src/components/form-designer/toolbar-panel/PreviewDialog.vue.js.map +1 -1
- package/src/components/form-designer/toolbar-panel/index.vue.js +2 -2
- package/src/components/form-designer/toolbar-panel/index.vue2.js +137 -177
- package/src/components/form-designer/toolbar-panel/index.vue2.js.map +1 -1
- package/src/components/form-designer/widget-panel/containers/vf-box.js +4 -1
- package/src/components/form-designer/widget-panel/containers/vf-box.js.map +1 -1
- package/src/components/form-designer/widget-panel/containers/vf-collapse.js +6 -6
- package/src/components/form-designer/widget-panel/containers/vf-collapse.js.map +1 -1
- package/src/components/form-designer/widget-panel/index.vue.js +2 -2
- package/src/components/form-designer/widget-panel/index.vue2.js +74 -34
- package/src/components/form-designer/widget-panel/index.vue2.js.map +1 -1
- package/src/components/form-render/container-items/vf-box-widget.vue.js +2 -2
- package/src/components/form-render/container-items/vf-box-widget.vue2.js +19 -17
- package/src/components/form-render/container-items/vf-box-widget.vue2.js.map +1 -1
- package/src/components/form-render/container-items/vf-collapse-widget.vue.js +1 -1
- package/src/components/form-render/container-items/vf-collapse-widget.vue2.js +24 -22
- package/src/components/form-render/container-items/vf-collapse-widget.vue2.js.map +1 -1
- package/src/components/form-render/dynamic-dialog.vue.js +1 -0
- package/src/components/form-render/dynamic-dialog.vue.js.map +1 -1
- package/src/constants/EditorTypeEnum.js +1 -1
- package/src/constants/EditorTypeEnum.js.map +1 -1
- package/src/constants/LayoutTypeEnum.js +5 -0
- package/src/constants/LayoutTypeEnum.js.map +1 -0
- package/src/constants/WidgetTypeEnum.js +4 -3
- package/src/constants/WidgetTypeEnum.js.map +1 -1
- package/src/hooks/useDesigner.js +51 -0
- package/src/hooks/useDesigner.js.map +1 -0
- package/src/lang/en-US.js +1 -1
- package/src/lang/en-US.js.map +1 -1
- package/src/lang/zh-CN.js +5 -3
- package/src/lang/zh-CN.js.map +1 -1
- package/src/utils/util.js +1 -1
- package/src/utils/util.js.map +1 -1
- package/stats.html +1 -1
- package/styles/style.css +1 -1
- package/src/components/form-designer/designer.js.map +0 -1
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js +0 -8
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js.map +0 -1
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js +0 -58
- package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js.map +0 -1
- package/src/components/form-designer/form-widget/useFormDesigner.js +0 -34
- package/src/components/form-designer/form-widget/useFormDesigner.js.map +0 -1
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js +0 -32
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js.map +0 -1
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js +0 -32
- package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js.map +0 -1
- package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js +0 -50
- package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js.map +0 -1
- /package/src/components/form-designer/{widget-panel → setting-panel/panel}/PanelItemDrag.vue2.js +0 -0
- /package/src/components/form-designer/{widget-panel → setting-panel/panel}/PanelItemDrag.vue2.js.map +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kp-ui/lowcode",
|
|
3
|
-
"version": "2.15.0-beta.
|
|
3
|
+
"version": "2.15.0-beta.7",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
"clipboard": "^2.0.8",
|
|
14
14
|
"core-js": "^3.6.5",
|
|
15
15
|
"dayjs": "^1.11.10",
|
|
16
|
+
"echarts": "^5.6.0",
|
|
17
|
+
"es-drager": "^1.3.2",
|
|
16
18
|
"file-saver": "^2.0.5",
|
|
17
19
|
"json-bigint": "^1.0.0",
|
|
18
20
|
"lodash-es": "^4.17.21",
|
|
@@ -25,7 +27,9 @@
|
|
|
25
27
|
"vite": "6.3.3",
|
|
26
28
|
"vite-plugin-lazy-import": "^1.0.7",
|
|
27
29
|
"vue": "3.5.17",
|
|
28
|
-
"vue-
|
|
30
|
+
"vue-echarts": "^8.0.1",
|
|
31
|
+
"vue-router": "4.2.4",
|
|
32
|
+
"vue3-sketch-ruler": "^2.3.3"
|
|
29
33
|
},
|
|
30
34
|
"main": "install.js",
|
|
31
35
|
"types": "types/install.d.ts",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ref as l, provide as
|
|
1
|
+
import { ref as l, provide as c, computed as m, watchEffect as le, onMounted as ce, nextTick as fe } from "vue";
|
|
2
2
|
import { useFormValidation as V } from "./formValidation.js";
|
|
3
|
-
import {
|
|
3
|
+
import { getContainerWidgetByName as B, cloneFormConfigWithoutEventHandler as ue, insertCustomCssToHead as me, insertGlobalFunctionsToHtml as de, generateId as ve } from "../../utils/util.js";
|
|
4
4
|
import { set as ge, cloneDeep as pe } from "lodash-es";
|
|
5
5
|
import { message as H } from "ant-design-vue";
|
|
6
6
|
import { useI18n as Ce } from "../../utils/i18n.js";
|
|
@@ -12,12 +12,12 @@ import { useEmitter as xe } from "../../utils/useEmitter.js";
|
|
|
12
12
|
import { useAppRef as ye } from "../form-designer/useAppRef.js";
|
|
13
13
|
const Te = ({ renderForm: D, props: i }) => {
|
|
14
14
|
const { formJson: x } = i, C = we(De), { i18nt: d } = Ce(), [y, J] = he(!1), F = xe(), v = l(), a = l({}), L = l(!1), w = l(/* @__PURE__ */ new Map()), b = l({}), P = l(), h = Symbol("formWidget");
|
|
15
|
-
|
|
15
|
+
c("refList", w), c("formData", a), c("getReadMode", () => y.value), c("designState", !1);
|
|
16
16
|
const M = l(), { executeFunction: T, context: g, execHttpFunction: W } = Re(), { getFormRef: R, getWidgetRef: $, registerToRefList: k } = ye(w, h), o = m(() => {
|
|
17
17
|
var e;
|
|
18
18
|
return ((e = v.value) == null ? void 0 : e.formConfig) || {};
|
|
19
19
|
});
|
|
20
|
-
|
|
20
|
+
c("formConfig", o), c("formWidgetId", h);
|
|
21
21
|
const p = m(() => {
|
|
22
22
|
var e;
|
|
23
23
|
return ((e = v.value) == null ? void 0 : e.widgetList) || [];
|
|
@@ -33,12 +33,12 @@ const Te = ({ renderForm: D, props: i }) => {
|
|
|
33
33
|
var e;
|
|
34
34
|
return ((e = o.value) == null ? void 0 : e.customClass) || "";
|
|
35
35
|
});
|
|
36
|
-
let
|
|
36
|
+
let f = V(D, p.value || []);
|
|
37
37
|
le(() => {
|
|
38
|
-
|
|
38
|
+
f = V(D, p.value || []);
|
|
39
39
|
});
|
|
40
40
|
const E = async (e) => {
|
|
41
|
-
console.log({ json: e }), v.value = e || { widgetList: [], formConfig: {} }, a.value = {}, await
|
|
41
|
+
console.log({ json: e }), v.value = e || { widgetList: [], formConfig: {} }, a.value = {}, re(), await fe(), ne();
|
|
42
42
|
}, S = () => a.value || {}, z = (e) => {
|
|
43
43
|
e && Object.keys(e).forEach((t) => {
|
|
44
44
|
Object.prototype.hasOwnProperty.call(a.value, t) && (a.value[t] = e[t]);
|
|
@@ -46,9 +46,9 @@ const Te = ({ renderForm: D, props: i }) => {
|
|
|
46
46
|
}, A = (e) => {
|
|
47
47
|
L.value = e;
|
|
48
48
|
}, G = () => {
|
|
49
|
-
|
|
49
|
+
f.resetValidation();
|
|
50
50
|
}, K = () => {
|
|
51
|
-
|
|
51
|
+
f.clearValidate();
|
|
52
52
|
}, Q = (e) => {
|
|
53
53
|
M.value = e;
|
|
54
54
|
}, X = () => {
|
|
@@ -71,7 +71,7 @@ const Te = ({ renderForm: D, props: i }) => {
|
|
|
71
71
|
}
|
|
72
72
|
const u = {
|
|
73
73
|
widgetList: pe((s == null ? void 0 : s.widgetList) || []),
|
|
74
|
-
formConfig:
|
|
74
|
+
formConfig: ue(((I = n == null ? void 0 : n.formConfig) == null ? void 0 : I.value) || {})
|
|
75
75
|
}, ie = Fe();
|
|
76
76
|
b.value = {
|
|
77
77
|
options: s.options,
|
|
@@ -97,7 +97,7 @@ const Te = ({ renderForm: D, props: i }) => {
|
|
|
97
97
|
});
|
|
98
98
|
return console.log("res: ", t), t;
|
|
99
99
|
}, oe = async () => {
|
|
100
|
-
if (!await
|
|
100
|
+
if (!await f.validate()) throw new Error(d("表单验证失败"));
|
|
101
101
|
const t = o.value.serveList, r = await W(t.vformUpdate, {
|
|
102
102
|
data: a.value,
|
|
103
103
|
vfCtx: i.vfCtx
|
|
@@ -110,7 +110,7 @@ const Te = ({ renderForm: D, props: i }) => {
|
|
|
110
110
|
}));
|
|
111
111
|
}, re = () => {
|
|
112
112
|
const e = "vfRender" + ve(), { cssCode: t, functions: r } = o.value;
|
|
113
|
-
t &&
|
|
113
|
+
console.log({ cssCode: t }), t && me(t, e || ""), r && de(r, e || "");
|
|
114
114
|
}, se = () => {
|
|
115
115
|
var t;
|
|
116
116
|
const e = (t = g.value) == null ? void 0 : t.$router;
|
|
@@ -130,8 +130,8 @@ const Te = ({ renderForm: D, props: i }) => {
|
|
|
130
130
|
u == null || u.go(-1);
|
|
131
131
|
}
|
|
132
132
|
};
|
|
133
|
-
return
|
|
134
|
-
x && E(x), ee()
|
|
133
|
+
return ce(() => {
|
|
134
|
+
x && E(x), ee();
|
|
135
135
|
}), {
|
|
136
136
|
i18nt: d,
|
|
137
137
|
goBack: ae,
|
|
@@ -162,7 +162,7 @@ const Te = ({ renderForm: D, props: i }) => {
|
|
|
162
162
|
readModeFlag: y,
|
|
163
163
|
// 引用
|
|
164
164
|
widgetRefList: w,
|
|
165
|
-
formValidator:
|
|
165
|
+
formValidator: f,
|
|
166
166
|
// 计算属性
|
|
167
167
|
formConfig: o,
|
|
168
168
|
widgetList: p,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormContext.js","sources":["../../../../src/components/FormRender/useFormContext.ts"],"sourcesContent":["import { computed, nextTick, onMounted, provide, ref, watchEffect } from 'vue';\nimport { useFormValidation } from './formValidation';\n\n/**\n * 表单上下文接口\n */\nimport { Widget } from '@/types/schema';\nimport {\n cloneFormConfigWithoutEventHandler,\n generateId,\n getContainerWidgetByName,\n insertCustomCssToHead,\n insertGlobalFunctionsToHtml\n} from '@/utils/util';\nimport { cloneDeep, set } from 'lodash-es';\nimport { message } from 'ant-design-vue';\nimport { useI18n } from '@/utils/i18n';\nimport { getUuidKey } from '@kp-ui/tool';\nimport { routerReloadStatus, useComRef, useExecFunction, useRef } from 'tmgc2-share';\nimport DynamicDialog from '../form-render/dynamic-dialog.vue';\nimport { useEmitter } from '@/utils/useEmitter';\nimport { useAppRef } from '../form-designer/useAppRef';\nexport interface FormRenderProps {\n vfCtx?: Record<string, any>;\n formJson?: any;\n formData?: Record<string, any>;\n optionData?: Record<string, any>;\n disabledMode?: boolean;\n renderConfig?: {\n languageName?: string;\n };\n globalDsv?: Record<string, any>;\n parentForm?: any;\n dynamicCreation?: boolean;\n debug?: boolean;\n}\n\n/**\n * 表单上下文配置\n */\nexport interface FormContextOptions {\n props: FormRenderProps;\n renderForm: any;\n}\n\n/**\n * 创建表单上下文\n * @param options 表单上下文配置\n * @returns 表单上下文\n */\nexport const useFormContext = ({ renderForm, props }: FormContextOptions) => {\n const { formJson } = props;\n const dynamicDialgRef = useComRef(DynamicDialog);\n const { i18nt } = useI18n();\n const [readModeFlag, setReadMode] = useRef(false);\n\n const emitter = useEmitter();\n\n const formJsonObj = ref();\n // 状态变量\n const formDataModel = ref<Record<string, any>>({});\n const isLoading = ref(false);\n const widgetRefList = ref<Map<string, any>>(new Map());\n const dialogProps = ref({});\n const childFormRef = ref();\n\n const formWidgetId = Symbol('formWidget');\n\n // 提供给子组件的数据\n provide('refList', widgetRefList);\n provide('getFormConfig', () => formConfig.value);\n provide('formData', formDataModel);\n provide('getReadMode', () => readModeFlag.value);\n provide('designState', false); // 设计态标识\n\n const dialogOrDrawerRef = ref();\n\n const { executeFunction, context, execHttpFunction } = useExecFunction();\n const { getFormRef, getWidgetRef, registerToRefList } = useAppRef(widgetRefList, formWidgetId);\n\n // 计算属性\n const formConfig = computed(() => formJsonObj.value?.formConfig || {});\n\n provide('formConfig', formConfig);\n provide('formWidgetId', formWidgetId);\n\n const widgetList = computed(() => formJsonObj.value?.widgetList || []);\n const labelPosition = computed(() => {\n return formConfig.value?.labelPosition || 'horizontal';\n });\n\n const setChildFormRef = chid => {\n childFormRef.value = chid;\n };\n\n const labelWidth = computed(() => {\n return formConfig.value?.labelWidth ? `${formConfig.value.labelWidth}px` : '80px';\n });\n\n const customClass = computed(() => {\n return formConfig.value?.customClass || '';\n });\n\n // 初始化表单验证器\n let formValidator = useFormValidation(renderForm, widgetList.value || []);\n\n // 监听 widgetList 变化,重新初始化验证器\n watchEffect(() => {\n formValidator = useFormValidation(renderForm, widgetList.value || []);\n });\n\n /**\n * 设置表单JSON数据\n */\n const setFormJson = async (json: any) => {\n console.log({ json });\n\n formJsonObj.value = json || { widgetList: [], formConfig: {} };\n // 重新构建表单数据模型\n formDataModel.value = {};\n\n await nextTick();\n handleOnMounted();\n };\n\n /**\n * 获取表单数据\n */\n const getFormData = () => {\n return formDataModel.value || {};\n };\n\n /**\n * 设置表单数据\n */\n const setFormData = (data: Record<string, any>) => {\n if (!data) return;\n // 更新表单数据模型\n Object.keys(data).forEach(key => {\n if (Object.prototype.hasOwnProperty.call(formDataModel.value, key)) {\n formDataModel.value[key] = data[key];\n }\n });\n };\n\n /**\n * 设置加载状态\n */\n const setLoading = (loading: boolean) => {\n isLoading.value = loading;\n };\n\n /**\n * 重置表单验证\n */\n const resetValidation = () => {\n formValidator.resetValidation();\n };\n\n /**\n * 清除表单验证\n */\n const clearValidate = () => {\n formValidator.clearValidate();\n };\n\n const setDialogOrDrawerRef = (ddRef: any) => {\n dialogOrDrawerRef.value = ddRef;\n };\n\n /**\n * 当显示多级嵌套弹窗或抽屉时,获取最顶层VFormRender组件实例\n * @returns {object}\n */\n const getTopFormRef = () => {\n if (!props.parentForm) {\n return getFormRef();\n }\n\n let topFormRef = props.parentForm;\n while (topFormRef.parentForm) {\n topFormRef = topFormRef.parentForm;\n }\n\n return topFormRef;\n };\n\n /**\n * 显示弹窗表单,动态创建v-form-render组件,option-data、global-dsv等属性继承父级表单\n * @param dialogName\n * @param formData\n * @param extraData\n */\n const showDialog = (dialogName, formData = {}, extraData = {}) => {\n const topFormRef = getTopFormRef();\n const dialogCon = (getContainerWidgetByName(topFormRef?.widgetList || [], dialogName) ||\n getContainerWidgetByName(widgetList.value || [], dialogName)) as Widget | null;\n\n if (dialogCon === null) {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n\n if (!dialogName || dialogCon.type !== 'vf-dialog') {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n const dFormJson = {\n widgetList: cloneDeep(dialogCon?.widgetList || []),\n formConfig: cloneFormConfigWithoutEventHandler(topFormRef?.formConfig?.value || {})\n };\n const wrapperDivId = getUuidKey();\n dialogProps.value = {\n options: dialogCon.options,\n formJson: dFormJson,\n formData: { ...formData },\n optionData: topFormRef.optionData,\n globalDsv: topFormRef.globalDsv,\n parentFormRef: context.value,\n extraData: extraData,\n wrapperId: wrapperDivId,\n vfCtx: { ...formData }\n };\n\n dynamicDialgRef.value?.show();\n };\n /**\n * 获取父级VFormRender组件实例\n * @returns {object}\n */\n const getParentFormRef = () => {\n return props.parentForm;\n };\n\n const getChildFormRef = () => {\n return dynamicDialgRef.value?.getFormRef();\n };\n\n /**\n * 字段值变化事件处理器\n */\n const fieldChangeEventHandler = () => {\n emitter.off$('fieldChange');\n emitter.on$('fieldChange', ({ fieldName, value }) => {\n // 过滤掉错误值\n if (typeof fieldName !== 'undefined' && typeof value !== 'undefined') {\n set(formDataModel.value, fieldName, value);\n }\n });\n };\n\n const onFormDetail = async () => {\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformDetail, {\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const onFormUpdate = async () => {\n const valid = await formValidator.validate();\n if (!valid) throw new Error(i18nt('表单验证失败'));\n\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformUpdate, {\n data: formDataModel.value,\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const handleOnMounted = () => {\n if (formConfig.value?.onFormMounted) {\n console.log('onFormMounted: ');\n executeFunction({\n functionBody: formConfig.value?.onFormMounted\n });\n }\n };\n\n /**\n * 插入自定义样式和脚本\n * @param cssCode CSS代码\n * @param functions 自定义函数\n * @param formId 表单ID\n */\n const insertCustomCode = () => {\n const formId = 'vfRender' + generateId();\n const { cssCode, functions } = formConfig.value;\n if (cssCode) {\n insertCustomCssToHead(cssCode, formId || '');\n }\n if (functions) {\n insertGlobalFunctionsToHtml(functions, formId || '');\n }\n };\n\n const reload = () => {\n const router = context.value?.$router;\n router?.replace({\n query: {\n ...router.currentRoute.value.query,\n _t: Date.now()\n }\n });\n };\n\n const goBack = (reloadStatus?: routerReloadStatus, cb?: () => void) => {\n const goBack = getFormRef().vfCtx?.goBack;\n if (typeof goBack === 'function') {\n goBack(reloadStatus, cb);\n } else {\n const router = context.value?.$router;\n router?.go(-1);\n }\n };\n\n onMounted(() => {\n if (formJson) {\n setFormJson(formJson);\n }\n fieldChangeEventHandler();\n insertCustomCode();\n });\n\n return {\n i18nt,\n goBack,\n reload,\n formWidgetId,\n vfCtx: props.vfCtx,\n getParentFormRef,\n getFormRef,\n getWidgetRef,\n registerToRefList,\n dialogOrDrawerRef,\n setDialogOrDrawerRef,\n showDialog,\n setFormData,\n setReadMode,\n setFormJson,\n setLoading,\n onFormDetail,\n onFormUpdate,\n emitter,\n context,\n getFormData,\n getChildFormRef,\n // 状态\n formJsonObj,\n formDataModel,\n isLoading,\n readModeFlag,\n\n // 引用\n widgetRefList,\n\n formValidator,\n\n // 计算属性\n formConfig,\n widgetList,\n labelPosition,\n labelWidth,\n customClass,\n dynamicDialgRef,\n dialogProps,\n\n setChildFormRef,\n resetValidation,\n clearValidate\n };\n};\n"],"names":["useFormContext","renderForm","props","formJson","dynamicDialgRef","useComRef","DynamicDialog","i18nt","useI18n","readModeFlag","setReadMode","useRef","emitter","useEmitter","formJsonObj","ref","formDataModel","isLoading","widgetRefList","dialogProps","childFormRef","formWidgetId","provide","formConfig","dialogOrDrawerRef","executeFunction","context","execHttpFunction","useExecFunction","getFormRef","getWidgetRef","registerToRefList","useAppRef","computed","_a","widgetList","labelPosition","setChildFormRef","chid","labelWidth","customClass","formValidator","useFormValidation","watchEffect","setFormJson","json","nextTick","handleOnMounted","getFormData","setFormData","data","key","setLoading","loading","resetValidation","clearValidate","setDialogOrDrawerRef","ddRef","getTopFormRef","topFormRef","showDialog","dialogName","formData","extraData","dialogCon","getContainerWidgetByName","message","dFormJson","cloneDeep","cloneFormConfigWithoutEventHandler","wrapperDivId","getUuidKey","_b","getParentFormRef","getChildFormRef","fieldChangeEventHandler","fieldName","value","set","onFormDetail","serveList","res","onFormUpdate","insertCustomCode","formId","generateId","cssCode","functions","insertCustomCssToHead","insertGlobalFunctionsToHtml","reload","router","goBack","reloadStatus","cb","onMounted"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useFormContext.js","sources":["../../../../src/components/FormRender/useFormContext.ts"],"sourcesContent":["import { computed, nextTick, onMounted, provide, ref, watchEffect } from 'vue';\nimport { useFormValidation } from './formValidation';\n\n/**\n * 表单上下文接口\n */\nimport { FormConfig, Widget } from '@/types/schema';\nimport {\n cloneFormConfigWithoutEventHandler,\n generateId,\n getContainerWidgetByName,\n insertCustomCssToHead,\n insertGlobalFunctionsToHtml\n} from '@/utils/util';\nimport { cloneDeep, set } from 'lodash-es';\nimport { message } from 'ant-design-vue';\nimport { useI18n } from '@/utils/i18n';\nimport { getUuidKey } from '@kp-ui/tool';\nimport { routerReloadStatus, useComRef, useExecFunction, useRef } from 'tmgc2-share';\nimport DynamicDialog from '../form-render/dynamic-dialog.vue';\nimport { useEmitter } from '@/utils/useEmitter';\nimport { useAppRef } from '../form-designer/useAppRef';\nexport interface FormRenderProps {\n vfCtx?: Record<string, any>;\n formJson?: any;\n formData?: Record<string, any>;\n optionData?: Record<string, any>;\n disabledMode?: boolean;\n renderConfig?: {\n languageName?: string;\n };\n globalDsv?: Record<string, any>;\n parentForm?: any;\n dynamicCreation?: boolean;\n debug?: boolean;\n}\n\n/**\n * 表单上下文配置\n */\nexport interface FormContextOptions {\n props: FormRenderProps;\n renderForm: any;\n}\n\n/**\n * 创建表单上下文\n * @param options 表单上下文配置\n * @returns 表单上下文\n */\nexport const useFormContext = ({ renderForm, props }: FormContextOptions) => {\n const { formJson } = props;\n const dynamicDialgRef = useComRef(DynamicDialog);\n const { i18nt } = useI18n();\n const [readModeFlag, setReadMode] = useRef(false);\n\n const emitter = useEmitter();\n\n const formJsonObj = ref();\n // 状态变量\n const formDataModel = ref<Record<string, any>>({});\n const isLoading = ref(false);\n const widgetRefList = ref<Map<string, any>>(new Map());\n const dialogProps = ref({});\n const childFormRef = ref();\n\n const formWidgetId = Symbol('formWidget');\n\n // 提供给子组件的数据\n provide('refList', widgetRefList);\n provide('formData', formDataModel);\n provide('getReadMode', () => readModeFlag.value);\n provide('designState', false); // 设计态标识\n\n const dialogOrDrawerRef = ref();\n\n const { executeFunction, context, execHttpFunction } = useExecFunction();\n const { getFormRef, getWidgetRef, registerToRefList } = useAppRef(widgetRefList, formWidgetId);\n\n // 计算属性\n const formConfig = computed<FormConfig>(() => formJsonObj.value?.formConfig || {});\n\n provide('formConfig', formConfig);\n provide('formWidgetId', formWidgetId);\n\n const widgetList = computed(() => formJsonObj.value?.widgetList || []);\n const labelPosition = computed(() => {\n return formConfig.value?.labelPosition || 'horizontal';\n });\n\n const setChildFormRef = chid => {\n childFormRef.value = chid;\n };\n\n const labelWidth = computed(() => {\n return formConfig.value?.labelWidth ? `${formConfig.value.labelWidth}px` : '80px';\n });\n\n const customClass = computed(() => {\n return formConfig.value?.customClass || '';\n });\n\n // 初始化表单验证器\n let formValidator = useFormValidation(renderForm, widgetList.value || []);\n\n // 监听 widgetList 变化,重新初始化验证器\n watchEffect(() => {\n formValidator = useFormValidation(renderForm, widgetList.value || []);\n });\n\n /**\n * 设置表单JSON数据\n */\n const setFormJson = async (json: any) => {\n console.log({ json });\n\n formJsonObj.value = json || { widgetList: [], formConfig: {} };\n // 重新构建表单数据模型\n formDataModel.value = {};\n insertCustomCode();\n await nextTick();\n handleOnMounted();\n };\n\n /**\n * 获取表单数据\n */\n const getFormData = () => {\n return formDataModel.value || {};\n };\n\n /**\n * 设置表单数据\n */\n const setFormData = (data: Record<string, any>) => {\n if (!data) return;\n // 更新表单数据模型\n Object.keys(data).forEach(key => {\n if (Object.prototype.hasOwnProperty.call(formDataModel.value, key)) {\n formDataModel.value[key] = data[key];\n }\n });\n };\n\n /**\n * 设置加载状态\n */\n const setLoading = (loading: boolean) => {\n isLoading.value = loading;\n };\n\n /**\n * 重置表单验证\n */\n const resetValidation = () => {\n formValidator.resetValidation();\n };\n\n /**\n * 清除表单验证\n */\n const clearValidate = () => {\n formValidator.clearValidate();\n };\n\n const setDialogOrDrawerRef = (ddRef: any) => {\n dialogOrDrawerRef.value = ddRef;\n };\n\n /**\n * 当显示多级嵌套弹窗或抽屉时,获取最顶层VFormRender组件实例\n * @returns {object}\n */\n const getTopFormRef = () => {\n if (!props.parentForm) {\n return getFormRef();\n }\n\n let topFormRef = props.parentForm;\n while (topFormRef.parentForm) {\n topFormRef = topFormRef.parentForm;\n }\n\n return topFormRef;\n };\n\n /**\n * 显示弹窗表单,动态创建v-form-render组件,option-data、global-dsv等属性继承父级表单\n * @param dialogName\n * @param formData\n * @param extraData\n */\n const showDialog = (dialogName, formData = {}, extraData = {}) => {\n const topFormRef = getTopFormRef();\n const dialogCon = (getContainerWidgetByName(topFormRef?.widgetList || [], dialogName) ||\n getContainerWidgetByName(widgetList.value || [], dialogName)) as Widget | null;\n\n if (dialogCon === null) {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n\n if (!dialogName || dialogCon.type !== 'vf-dialog') {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n const dFormJson = {\n widgetList: cloneDeep(dialogCon?.widgetList || []),\n formConfig: cloneFormConfigWithoutEventHandler(topFormRef?.formConfig?.value || {})\n };\n const wrapperDivId = getUuidKey();\n dialogProps.value = {\n options: dialogCon.options,\n formJson: dFormJson,\n formData: { ...formData },\n optionData: topFormRef.optionData,\n globalDsv: topFormRef.globalDsv,\n parentFormRef: context.value,\n extraData: extraData,\n wrapperId: wrapperDivId,\n vfCtx: { ...formData }\n };\n\n dynamicDialgRef.value?.show();\n };\n /**\n * 获取父级VFormRender组件实例\n * @returns {object}\n */\n const getParentFormRef = () => {\n return props.parentForm;\n };\n\n const getChildFormRef = () => {\n return dynamicDialgRef.value?.getFormRef();\n };\n\n /**\n * 字段值变化事件处理器\n */\n const fieldChangeEventHandler = () => {\n emitter.off$('fieldChange');\n emitter.on$('fieldChange', ({ fieldName, value }) => {\n // 过滤掉错误值\n if (typeof fieldName !== 'undefined' && typeof value !== 'undefined') {\n set(formDataModel.value, fieldName, value);\n }\n });\n };\n\n const onFormDetail = async () => {\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformDetail, {\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const onFormUpdate = async () => {\n const valid = await formValidator.validate();\n if (!valid) throw new Error(i18nt('表单验证失败'));\n\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformUpdate, {\n data: formDataModel.value,\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const handleOnMounted = () => {\n if (formConfig.value?.onFormMounted) {\n console.log('onFormMounted: ');\n executeFunction({\n functionBody: formConfig.value?.onFormMounted\n });\n }\n };\n\n /**\n * 插入自定义样式和脚本\n * @param cssCode CSS代码\n * @param functions 自定义函数\n * @param formId 表单ID\n */\n const insertCustomCode = () => {\n const formId = 'vfRender' + generateId();\n const { cssCode, functions } = formConfig.value;\n console.log({ cssCode });\n\n if (cssCode) {\n insertCustomCssToHead(cssCode, formId || '');\n }\n if (functions) {\n insertGlobalFunctionsToHtml(functions, formId || '');\n }\n };\n\n const reload = () => {\n const router = context.value?.$router;\n router?.replace({\n query: {\n ...router.currentRoute.value.query,\n _t: Date.now()\n }\n });\n };\n\n const goBack = (reloadStatus?: routerReloadStatus, cb?: () => void) => {\n const goBack = getFormRef().vfCtx?.goBack;\n if (typeof goBack === 'function') {\n goBack(reloadStatus, cb);\n } else {\n const router = context.value?.$router;\n router?.go(-1);\n }\n };\n\n onMounted(() => {\n if (formJson) {\n setFormJson(formJson);\n }\n fieldChangeEventHandler();\n });\n\n return {\n i18nt,\n goBack,\n reload,\n formWidgetId,\n vfCtx: props.vfCtx,\n getParentFormRef,\n getFormRef,\n getWidgetRef,\n registerToRefList,\n dialogOrDrawerRef,\n setDialogOrDrawerRef,\n showDialog,\n setFormData,\n setReadMode,\n setFormJson,\n setLoading,\n onFormDetail,\n onFormUpdate,\n emitter,\n context,\n getFormData,\n getChildFormRef,\n // 状态\n formJsonObj,\n formDataModel,\n isLoading,\n readModeFlag,\n\n // 引用\n widgetRefList,\n\n formValidator,\n\n // 计算属性\n formConfig,\n widgetList,\n labelPosition,\n labelWidth,\n customClass,\n dynamicDialgRef,\n dialogProps,\n\n setChildFormRef,\n resetValidation,\n clearValidate\n };\n};\n"],"names":["useFormContext","renderForm","props","formJson","dynamicDialgRef","useComRef","DynamicDialog","i18nt","useI18n","readModeFlag","setReadMode","useRef","emitter","useEmitter","formJsonObj","ref","formDataModel","isLoading","widgetRefList","dialogProps","childFormRef","formWidgetId","provide","dialogOrDrawerRef","executeFunction","context","execHttpFunction","useExecFunction","getFormRef","getWidgetRef","registerToRefList","useAppRef","formConfig","computed","_a","widgetList","labelPosition","setChildFormRef","chid","labelWidth","customClass","formValidator","useFormValidation","watchEffect","setFormJson","json","insertCustomCode","nextTick","handleOnMounted","getFormData","setFormData","data","key","setLoading","loading","resetValidation","clearValidate","setDialogOrDrawerRef","ddRef","getTopFormRef","topFormRef","showDialog","dialogName","formData","extraData","dialogCon","getContainerWidgetByName","message","dFormJson","cloneDeep","cloneFormConfigWithoutEventHandler","wrapperDivId","getUuidKey","_b","getParentFormRef","getChildFormRef","fieldChangeEventHandler","fieldName","value","set","onFormDetail","serveList","res","onFormUpdate","formId","generateId","cssCode","functions","insertCustomCssToHead","insertGlobalFunctionsToHtml","reload","router","goBack","reloadStatus","cb","onMounted"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import t from "./echart-bar-widget.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import o from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const m = /* @__PURE__ */ o(t, [["__scopeId", "data-v-1b33e205"]]);
|
|
5
|
+
export {
|
|
6
|
+
m as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=echart-bar-widget.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"echart-bar-widget.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { defineComponent as i, computed as n, createBlock as p, openBlock as d, unref as c } from "vue";
|
|
2
|
+
import u from "../../../../node_modules/.pnpm/vue-echarts@8.0.1_echarts@5.6.0_vue@3.5.17_typescript@5.8.2_/node_modules/vue-echarts/dist/index.js";
|
|
3
|
+
import "../../../../node_modules/.pnpm/echarts@5.6.0/node_modules/echarts/index.js";
|
|
4
|
+
const x = /* @__PURE__ */ i({
|
|
5
|
+
__name: "echart-bar-widget",
|
|
6
|
+
props: {
|
|
7
|
+
widget: {},
|
|
8
|
+
field: {},
|
|
9
|
+
parentWidget: {},
|
|
10
|
+
parentList: {},
|
|
11
|
+
indexOfParentList: {},
|
|
12
|
+
subFormRowIndex: {},
|
|
13
|
+
subFormRowId: {}
|
|
14
|
+
},
|
|
15
|
+
setup(o) {
|
|
16
|
+
const r = o, a = n(() => {
|
|
17
|
+
const { xAxisData: t, seriesData: e, barWidth: s } = r.widget.options;
|
|
18
|
+
return {
|
|
19
|
+
xAxis: {
|
|
20
|
+
data: t || []
|
|
21
|
+
},
|
|
22
|
+
yAxis: {},
|
|
23
|
+
series: [
|
|
24
|
+
{
|
|
25
|
+
name: "sales",
|
|
26
|
+
type: "bar",
|
|
27
|
+
data: e || [],
|
|
28
|
+
barWidth: s || void 0
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
return (t, e) => (d(), p(c(u), {
|
|
34
|
+
class: "chart",
|
|
35
|
+
option: a.value,
|
|
36
|
+
autoresize: ""
|
|
37
|
+
}, null, 8, ["option"]));
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
export {
|
|
41
|
+
x as default
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=echart-bar-widget.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"echart-bar-widget.vue2.js","sources":["../../../../../src/components/bi-widget/echartBar/echart-bar-widget.vue"],"sourcesContent":["<template>\n <VChart class=\"chart\" :option=\"option\" autoresize />\n</template>\n\n<script lang=\"ts\" setup>\n import { computed } from 'vue';\n import VChart from 'vue-echarts';\n // import { use } from 'echarts/core';\n // import { BarChart } from 'echarts/charts';\n // import { SVGRenderer } from 'echarts/renderers';\n // import { DatasetComponent, GridComponent, TransformComponent } from 'echarts/components';\n import { WidgetProps } from '@/components/form-designer/form-widget/container-widget/useContainerWidget';\n import 'echarts';\n\n // use([BarChart, SVGRenderer, GridComponent, DatasetComponent, TransformComponent]);\n\n const props = defineProps<WidgetProps>();\n\n const option = computed(() => {\n const { xAxisData, seriesData, barWidth } = props.widget.options;\n return {\n xAxis: {\n data: xAxisData || []\n },\n yAxis: {},\n series: [\n {\n name: 'sales',\n type: 'bar',\n data: seriesData || [],\n barWidth: barWidth || undefined\n }\n ]\n };\n });\n</script>\n\n<style scoped>\n .echart-bar-widget {\n width: 100%;\n height: 100%;\n }\n .chart {\n height: 100%;\n width: 100%;\n }\n</style>\n"],"names":["props","__props","option","computed","xAxisData","seriesData","barWidth","_createBlock","_unref","VChart"],"mappings":";;;;;;;;;;;;;;;AAgBI,UAAMA,IAAQC,GAERC,IAASC,EAAS,MAAM;AAC1B,YAAM,EAAE,WAAAC,GAAW,YAAAC,GAAY,UAAAC,EAAA,IAAaN,EAAM,OAAO;AACzD,aAAO;AAAA,QACH,OAAO;AAAA,UACH,MAAMI,KAAa,CAAA;AAAA,QAAC;AAAA,QAExB,OAAO,CAAA;AAAA,QACP,QAAQ;AAAA,UACJ;AAAA,YACI,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAMC,KAAc,CAAA;AAAA,YACpB,UAAUC,KAAY;AAAA,UAAA;AAAA,QAC1B;AAAA,MACJ;AAAA,IAER,CAAC;2BAjCDC,EAAoDC,EAAAC,CAAA,GAAA;AAAA,MAA5C,OAAM;AAAA,MAAS,QAAQP,EAAA;AAAA,MAAQ,YAAA;AAAA,IAAA;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BIWidgetTypeEnum as a } from "../../../constants/WidgetTypeEnum.js";
|
|
2
|
+
const e = {
|
|
3
|
+
type: a.echartBar,
|
|
4
|
+
category: "bi",
|
|
5
|
+
icon: "data-table",
|
|
6
|
+
options: {
|
|
7
|
+
name: "",
|
|
8
|
+
label: "echart-bar",
|
|
9
|
+
hidden: !1,
|
|
10
|
+
width: 300,
|
|
11
|
+
height: 200,
|
|
12
|
+
left: 0,
|
|
13
|
+
top: 0,
|
|
14
|
+
zIndex: 1,
|
|
15
|
+
customClass: [],
|
|
16
|
+
dataSource: [],
|
|
17
|
+
http: {
|
|
18
|
+
url: "",
|
|
19
|
+
method: "get",
|
|
20
|
+
data: {},
|
|
21
|
+
params: {}
|
|
22
|
+
},
|
|
23
|
+
dataReqHandlerCode: "",
|
|
24
|
+
dataHandlerCode: "",
|
|
25
|
+
echartBar: {
|
|
26
|
+
xAxisData: ["shirt", "cardigan", "chiffon", "pants", "heels", "socks"],
|
|
27
|
+
seriesData: [5, 20, 36, 10, 10, 20],
|
|
28
|
+
barWidth: ""
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
export {
|
|
33
|
+
e as echartBar
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=echart-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"echart-bar.js","sources":["../../../../../src/components/bi-widget/echartBar/echart-bar.ts"],"sourcesContent":["import { BIWidgetTypeEnum } from '@/constants/WidgetTypeEnum';\nimport { BiWidgetOptions, Widget } from '@/types/schema';\n\nexport interface EchartBarOptions extends BiWidgetOptions {\n echartBar: {\n xAxisData: string[];\n seriesData: number[];\n barWidth: string;\n };\n}\n\nexport interface EchartBarWidget extends Widget<EchartBarOptions> {}\n\nexport const echartBar: EchartBarWidget = {\n type: BIWidgetTypeEnum.echartBar,\n category: 'bi',\n icon: 'data-table',\n options: {\n name: '',\n label: 'echart-bar',\n hidden: false,\n width: 300,\n height: 200,\n left: 0,\n top: 0,\n zIndex: 1,\n customClass: [],\n dataSource: [],\n http: {\n url: '',\n method: 'get',\n data: {},\n params: {}\n },\n dataReqHandlerCode: '',\n dataHandlerCode: '',\n\n echartBar: {\n xAxisData: ['shirt', 'cardigan', 'chiffon', 'pants', 'heels', 'socks'],\n seriesData: [5, 20, 36, 10, 10, 20],\n barWidth: ''\n }\n }\n};\n"],"names":["echartBar","BIWidgetTypeEnum"],"mappings":";AAaO,MAAMA,IAA6B;AAAA,EACtC,MAAMC,EAAiB;AAAA,EACvB,UAAU;AAAA,EACV,MAAM;AAAA,EACN,SAAS;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,aAAa,CAAA;AAAA,IACb,YAAY,CAAA;AAAA,IACZ,MAAM;AAAA,MACF,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM,CAAA;AAAA,MACN,QAAQ,CAAA;AAAA,IAAC;AAAA,IAEb,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,IAEjB,WAAW;AAAA,MACP,WAAW,CAAC,SAAS,YAAY,WAAW,SAAS,SAAS,OAAO;AAAA,MACrE,YAAY,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE;AAAA,MAClC,UAAU;AAAA,IAAA;AAAA,EACd;AAER;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BIWidgetTypeEnum as o } from "../../constants/WidgetTypeEnum.js";
|
|
2
|
+
import { defineAsyncComponent as t } from "vue";
|
|
3
|
+
import { echartBar as r } from "./echartBar/echart-bar.js";
|
|
4
|
+
const n = {
|
|
5
|
+
[o.echartBar]: t(
|
|
6
|
+
() => import("./echartBar/echart-bar-widget.vue.js")
|
|
7
|
+
)
|
|
8
|
+
}, p = [r];
|
|
9
|
+
export {
|
|
10
|
+
p as BiWidgetConfigs,
|
|
11
|
+
n as BiWidgets
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/bi-widget/index.ts"],"sourcesContent":["import { BIWidgetTypeEnum } from '@/constants/WidgetTypeEnum';\nimport { defineAsyncComponent } from 'vue';\nimport { echartBar } from './echartBar/echart-bar';\n\nexport const BiWidgets = {\n [BIWidgetTypeEnum.echartBar]: defineAsyncComponent(\n () => import('./echartBar/echart-bar-widget.vue')\n )\n};\n\nexport const BiWidgetConfigs = [echartBar];\n"],"names":["BiWidgets","BIWidgetTypeEnum","defineAsyncComponent","BiWidgetConfigs","echartBar"],"mappings":";;;AAIO,MAAMA,IAAY;AAAA,EACrB,CAACC,EAAiB,SAAS,GAAGC;AAAA,IAC1B,MAAM,OAAO,sCAAmC;AAAA,EAAA;AAExD,GAEaC,IAAkB,CAACC,CAAS;"}
|
|
@@ -1,37 +1,35 @@
|
|
|
1
1
|
var D = Object.defineProperty;
|
|
2
|
-
var b = (
|
|
3
|
-
var
|
|
4
|
-
import { deepClone as o, getDefaultFormConfig as c,
|
|
5
|
-
import { containers as y, basicFields as f, advancedFields as
|
|
6
|
-
import
|
|
2
|
+
var b = (d, t, e) => t in d ? D(d, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : d[t] = e;
|
|
3
|
+
var a = (d, t, e) => b(d, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
+
import { deepClone as o, getDefaultFormConfig as c, generateId as g, overwriteObj as p } from "../utils/util.js";
|
|
5
|
+
import { containers as y, basicFields as f, advancedFields as u, customFields as m } from "./form-designer/widget-panel/widgetsConfig.js";
|
|
6
|
+
import C from "../utils/event-bus.js";
|
|
7
|
+
import { LayoutTypeEnum as W } from "../constants/LayoutTypeEnum.js";
|
|
7
8
|
class T {
|
|
8
9
|
constructor(t) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
a(this, "widgetList", []);
|
|
11
|
+
a(this, "formConfig");
|
|
12
|
+
a(this, "selectedId", null);
|
|
13
|
+
a(this, "selectedWidget", null);
|
|
14
|
+
a(this, "selectedWidgetName", null);
|
|
15
|
+
a(this, "vueInstance");
|
|
16
|
+
a(this, "cssClassList", []);
|
|
17
|
+
a(this, "layoutType", "PC");
|
|
18
|
+
a(this, "historyData", {
|
|
18
19
|
index: -1,
|
|
19
20
|
maxStep: 20,
|
|
20
21
|
steps: []
|
|
21
22
|
});
|
|
22
|
-
this.vueInstance = t, this.formConfig = o(c()), this.formConfig.layoutType || (this.formConfig.layoutType = "PC");
|
|
23
|
+
this.vueInstance = t, this.widgetList = [], this.formConfig = o(c()), this.formConfig.layoutType || (this.formConfig.layoutType = "PC");
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
generateWidgetId(t) {
|
|
26
|
+
return t.type.replace(/-/g, "") + g();
|
|
26
27
|
}
|
|
27
28
|
emitEvent(t, e) {
|
|
28
|
-
|
|
29
|
+
C.$emit(t, e);
|
|
29
30
|
}
|
|
30
31
|
handleEvent(t, e) {
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
initDesigner(t) {
|
|
34
|
-
this.widgetList = [], this.formConfig = o(c()), t || this.initHistoryData();
|
|
32
|
+
C.$on(t, (i) => e(i));
|
|
35
33
|
}
|
|
36
34
|
clearDesigner(t) {
|
|
37
35
|
const e = this.widgetList.length === 0;
|
|
@@ -44,7 +42,7 @@ class T {
|
|
|
44
42
|
return this.formConfig.layoutType || "PC";
|
|
45
43
|
}
|
|
46
44
|
changeLayoutType(t) {
|
|
47
|
-
this.formConfig.layoutType = t;
|
|
45
|
+
this.formConfig.layoutType = t, this.layoutType = t;
|
|
48
46
|
}
|
|
49
47
|
getImportTemplate() {
|
|
50
48
|
return {
|
|
@@ -70,10 +68,10 @@ class T {
|
|
|
70
68
|
this.selectedId = null, this.selectedWidgetName = null, this.selectedWidget = null;
|
|
71
69
|
}
|
|
72
70
|
checkWidgetMove(t) {
|
|
73
|
-
var
|
|
74
|
-
if (!((
|
|
71
|
+
var h;
|
|
72
|
+
if (!((h = t.draggedContext) != null && h.element) || !t.to)
|
|
75
73
|
return !0;
|
|
76
|
-
const { category: e, type: i } = t.draggedContext.element, s = String(i), n = t.to.className,
|
|
74
|
+
const { category: e, type: i } = t.draggedContext.element, s = String(i), n = t.to.className, r = s === "vf-dialog" || s === "vf-drawer", l = [
|
|
77
75
|
// 子表单表格不允许容器类组件
|
|
78
76
|
{
|
|
79
77
|
condition: n === "sub-form-table" && e === "container",
|
|
@@ -86,32 +84,32 @@ class T {
|
|
|
86
84
|
},
|
|
87
85
|
// 对话框和抽屉的放置限制
|
|
88
86
|
{
|
|
89
|
-
condition: n === "vf-dialog-drop-zone" &&
|
|
87
|
+
condition: n === "vf-dialog-drop-zone" && r,
|
|
90
88
|
reason: "对话框放置区不允许嵌套对话框或抽屉"
|
|
91
89
|
},
|
|
92
90
|
{
|
|
93
|
-
condition: n === "vf-drawer-drop-zone" &&
|
|
91
|
+
condition: n === "vf-drawer-drop-zone" && r,
|
|
94
92
|
reason: "抽屉放置区不允许嵌套对话框或抽屉"
|
|
95
93
|
},
|
|
96
94
|
{
|
|
97
|
-
condition: n !== "form-widget-canvas" &&
|
|
95
|
+
condition: n !== "form-widget-canvas" && r,
|
|
98
96
|
reason: "对话框和抽屉只能拖入表单画布"
|
|
99
97
|
}
|
|
100
98
|
];
|
|
101
|
-
for (const w of
|
|
99
|
+
for (const w of l)
|
|
102
100
|
if (w.condition)
|
|
103
101
|
return !1;
|
|
104
102
|
return !0;
|
|
105
103
|
}
|
|
106
104
|
getContainerByType(t) {
|
|
107
|
-
const e = [...y, ...f, ...
|
|
105
|
+
const e = [...y, ...f, ...u, ...m];
|
|
108
106
|
let i = null;
|
|
109
107
|
return e.forEach((s) => {
|
|
110
108
|
s.category && s.type && s.type === t && (i = s);
|
|
111
109
|
}), i;
|
|
112
110
|
}
|
|
113
111
|
getFieldWidgetByType(t) {
|
|
114
|
-
const e = [...y, ...f, ...
|
|
112
|
+
const e = [...y, ...f, ...u, ...m];
|
|
115
113
|
let i = null;
|
|
116
114
|
return e.forEach((s) => {
|
|
117
115
|
!s.category && s.type && s.type === t && (i = s);
|
|
@@ -135,25 +133,17 @@ class T {
|
|
|
135
133
|
cloneGridCol(t, e) {
|
|
136
134
|
const i = o(this.getContainerByType("grid-col"));
|
|
137
135
|
i.options.span = t.options.span;
|
|
138
|
-
const s =
|
|
136
|
+
const s = g();
|
|
139
137
|
i.id = "grid-col-" + s, i.options.name = "gridCol" + s, e.cols && e.cols.push(i);
|
|
140
138
|
}
|
|
141
139
|
cloneContainer(t) {
|
|
142
|
-
var e
|
|
140
|
+
var e;
|
|
143
141
|
if (t.type === "grid") {
|
|
144
|
-
const
|
|
145
|
-
return
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
}),
|
|
149
|
-
} else if (t.type === "table") {
|
|
150
|
-
const s = o(this.getContainerByType("table"));
|
|
151
|
-
return s.id = s.type + l(), s.options.name = s.id, (i = t.rows) == null || i.forEach((n) => {
|
|
152
|
-
const a = o(n);
|
|
153
|
-
a.id = "table-row-" + l(), a.cols.forEach((r) => {
|
|
154
|
-
r.id = "table-cell-" + l(), r.options.name = r.id, r.widgetList = [];
|
|
155
|
-
}), s.rows.push(a);
|
|
156
|
-
}), s;
|
|
142
|
+
const i = o(this.getContainerByType("grid"));
|
|
143
|
+
return i.id = i.type + g(), i.options.name = i.id, (e = t.cols) == null || e.forEach((s) => {
|
|
144
|
+
const n = o(this.getContainerByType("grid-col")), r = g();
|
|
145
|
+
n.id = "grid-col-" + r, n.options.name = "gridCol" + r, n.options.span = s.options.span, i.cols.push(n);
|
|
146
|
+
}), i;
|
|
157
147
|
} else
|
|
158
148
|
return null;
|
|
159
149
|
}
|
|
@@ -181,56 +171,64 @@ class T {
|
|
|
181
171
|
t.splice(e, 1), t.splice(e + 1, 0, i);
|
|
182
172
|
}
|
|
183
173
|
}
|
|
174
|
+
copyWidget(t) {
|
|
175
|
+
return t.category === "bi" ? this.copyBiWidget(t) : t.category === "container" ? this.copyNewContainerWidget(t) : this.copyNewFieldWidget(t);
|
|
176
|
+
}
|
|
184
177
|
copyNewFieldWidget(t) {
|
|
185
|
-
const e = o(t), i =
|
|
186
|
-
return e.id =
|
|
178
|
+
const e = o(t), i = this.generateWidgetId(e);
|
|
179
|
+
return e.id = i, e.options.name = i, e.options.label = e.options.label || e.type.toLowerCase(), e;
|
|
187
180
|
}
|
|
188
181
|
copyNewContainerWidget(t) {
|
|
189
|
-
const e = o(t);
|
|
190
|
-
if (e.id =
|
|
191
|
-
let
|
|
192
|
-
|
|
182
|
+
const e = o(t), i = this.generateWidgetId(e);
|
|
183
|
+
if (e.id = i, e.options.name = i, e.type === "grid") {
|
|
184
|
+
let s = o(this.getContainerByType("grid-col")), n = this.generateWidgetId(s);
|
|
185
|
+
s.id = n, s.options.name = n, e.cols = e.cols || [], e.cols.push(s), s = o(s), n = this.generateWidgetId(s), s.id = n, s.options.name = n, e.cols.push(s);
|
|
193
186
|
} else if (e.type === "tab") {
|
|
194
|
-
const
|
|
195
|
-
|
|
187
|
+
const s = o(this.getContainerByType("tab-pane"));
|
|
188
|
+
s.id = this.generateWidgetId(s), s.options.name = "tab1", s.options.label = "tab 1", e.tabs = e.tabs || [], e.tabs.push(s);
|
|
196
189
|
}
|
|
197
|
-
return delete e.displayName, e;
|
|
190
|
+
return delete e.displayName, this.layoutType === W.BI && (e.options.widget = "200px", e.options.height = "200px"), e;
|
|
191
|
+
}
|
|
192
|
+
copyBiWidget(t) {
|
|
193
|
+
const e = o(t), i = this.generateWidgetId(e);
|
|
194
|
+
return e.id = i, e.options.name = i, e.options.label = e.options.label || e.type.toLowerCase(), e;
|
|
198
195
|
}
|
|
199
196
|
addWidget(t) {
|
|
200
|
-
|
|
197
|
+
let e;
|
|
198
|
+
t.category === "container" || t.category === "bi" ? e = this.addContainerByDbClick(t) : e = this.addFieldByDbClick(t), this.setSelected(e), this.emitHistoryChange();
|
|
201
199
|
}
|
|
202
200
|
addContainerByDbClick(t) {
|
|
203
|
-
const e = this.
|
|
204
|
-
this.widgetList.push(e),
|
|
201
|
+
const e = this.copyWidget(t);
|
|
202
|
+
return this.widgetList.push(e), e;
|
|
205
203
|
}
|
|
206
204
|
addFieldByDbClick(t) {
|
|
207
205
|
var i;
|
|
208
|
-
const e = this.
|
|
206
|
+
const e = this.copyWidget(t);
|
|
209
207
|
if (this.selectedWidget && this.selectedWidget.type === "tab") {
|
|
210
208
|
let s = this.selectedWidget.tabs ? this.selectedWidget.tabs[0] : null;
|
|
211
209
|
(i = this.selectedWidget.tabs) == null || i.forEach((n) => {
|
|
212
210
|
n.options.active && (s = n);
|
|
213
211
|
}), s && s.widgetList && s.widgetList.push(e);
|
|
214
212
|
} else this.selectedWidget && this.selectedWidget.widgetList ? this.selectedWidget.widgetList.push(e) : this.widgetList.push(e);
|
|
215
|
-
|
|
213
|
+
return e;
|
|
216
214
|
}
|
|
217
215
|
deleteColOfGrid(t, e) {
|
|
218
216
|
t && t.cols && t.cols.splice(e, 1);
|
|
219
217
|
}
|
|
220
218
|
addNewColOfGrid(t) {
|
|
221
|
-
var n,
|
|
222
|
-
const e = t.cols, i = o(this.getContainerByType("grid-col")), s =
|
|
223
|
-
if (i.id =
|
|
224
|
-
let
|
|
225
|
-
e.forEach((
|
|
226
|
-
|
|
227
|
-
}),
|
|
219
|
+
var n, r;
|
|
220
|
+
const e = t.cols, i = o(this.getContainerByType("grid-col")), s = this.generateWidgetId(i);
|
|
221
|
+
if (i.id = s, i.options.name = s, e && e.length > 0) {
|
|
222
|
+
let l = 0;
|
|
223
|
+
e.forEach((h) => {
|
|
224
|
+
l += h.options.span || 0;
|
|
225
|
+
}), l >= 24 ? (console.log("列栅格之和超出24"), (n = t.cols) == null || n.push(i)) : (i.options.span = 24 - l > 12 ? 12 : 24 - l, (r = t.cols) == null || r.push(i));
|
|
228
226
|
} else
|
|
229
227
|
t.cols = [i];
|
|
230
228
|
}
|
|
231
229
|
addTabPaneOfTabs(t) {
|
|
232
|
-
const e = t.tabs, i = o(this.getContainerByType("tab-pane"));
|
|
233
|
-
i.id =
|
|
230
|
+
const e = t.tabs, i = o(this.getContainerByType("tab-pane")), s = this.generateWidgetId(i);
|
|
231
|
+
i.id = s, i.options.name = s, i.options.label = "tab " + (((e == null ? void 0 : e.length) || 0) + 1), e == null || e.push(i);
|
|
234
232
|
}
|
|
235
233
|
deleteTabPaneOfTabs(t, e) {
|
|
236
234
|
var i;
|
|
@@ -242,9 +240,6 @@ class T {
|
|
|
242
240
|
getCssClassList() {
|
|
243
241
|
return this.cssClassList;
|
|
244
242
|
}
|
|
245
|
-
registerFormWidget(t) {
|
|
246
|
-
this.formWidget = t;
|
|
247
|
-
}
|
|
248
243
|
initHistoryData() {
|
|
249
244
|
this.loadFormContentFromStorage(), this.historyData.index++, this.historyData.steps[this.historyData.index] = {
|
|
250
245
|
widgetList: o(this.widgetList),
|
|
@@ -281,11 +276,11 @@ class T {
|
|
|
281
276
|
loadFormContentFromStorage() {
|
|
282
277
|
}
|
|
283
278
|
}
|
|
284
|
-
function
|
|
285
|
-
return new T(
|
|
279
|
+
function B(d) {
|
|
280
|
+
return new T(d);
|
|
286
281
|
}
|
|
287
282
|
export {
|
|
288
283
|
T as Designer,
|
|
289
|
-
|
|
284
|
+
B as createDesigner
|
|
290
285
|
};
|
|
291
286
|
//# sourceMappingURL=designer.js.map
|