@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.
Files changed (166) hide show
  1. package/package.json +6 -2
  2. package/src/components/FormRender/useFormContext.js +15 -15
  3. package/src/components/FormRender/useFormContext.js.map +1 -1
  4. package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js +8 -0
  5. package/src/components/bi-widget/echartBar/echart-bar-widget.vue.js.map +1 -0
  6. package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js +43 -0
  7. package/src/components/bi-widget/echartBar/echart-bar-widget.vue2.js.map +1 -0
  8. package/src/components/bi-widget/echartBar/echart-bar.js +35 -0
  9. package/src/components/bi-widget/echartBar/echart-bar.js.map +1 -0
  10. package/src/components/bi-widget/index.js +13 -0
  11. package/src/components/bi-widget/index.js.map +1 -0
  12. package/src/components/{form-designer/designer.js → designer.js} +71 -76
  13. package/src/components/designer.js.map +1 -0
  14. package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js +26 -0
  15. package/src/components/form-designer/form-widget/RenderDesignerPC.vue.js.map +1 -0
  16. package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.js +5 -0
  17. package/src/components/form-designer/form-widget/RenderDesignerPC.vue2.js.map +1 -0
  18. package/src/components/form-designer/form-widget/RenderDesignerWigetList.vue.js +1 -1
  19. package/src/components/form-designer/form-widget/RenderDesignerWigetList.vue.js.map +1 -1
  20. package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue.js +8 -0
  21. package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue.js.map +1 -0
  22. package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js +68 -0
  23. package/src/components/form-designer/form-widget/bi/RenderDesignerBI.vue2.js.map +1 -0
  24. package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js +8 -0
  25. package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue.js.map +1 -0
  26. package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js +136 -0
  27. package/src/components/form-designer/form-widget/bi/RenderDesignerBIWigetList.vue2.js.map +1 -0
  28. package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js +8 -0
  29. package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue.js.map +1 -0
  30. package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js +153 -0
  31. package/src/components/form-designer/form-widget/bi/WidgetContextMenu.vue2.js.map +1 -0
  32. package/src/components/form-designer/form-widget/bi/useRuler.js +66 -0
  33. package/src/components/form-designer/form-widget/bi/useRuler.js.map +1 -0
  34. package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue.js +2 -2
  35. package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue2.js +24 -21
  36. package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -1
  37. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue.js +2 -2
  38. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js +36 -34
  39. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js.map +1 -1
  40. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue.js +1 -1
  41. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js +1 -1
  42. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js.map +1 -1
  43. package/src/components/form-designer/form-widget/field-widget/index.js +1 -1
  44. package/src/components/form-designer/form-widget/field-widget/index.js.map +1 -1
  45. package/src/components/form-designer/form-widget/field-widget/useField.js +117 -117
  46. package/src/components/form-designer/form-widget/field-widget/useField.js.map +1 -1
  47. package/src/components/form-designer/form-widget/index.vue.js +2 -2
  48. package/src/components/form-designer/form-widget/index.vue2.js +47 -56
  49. package/src/components/form-designer/form-widget/index.vue2.js.map +1 -1
  50. package/src/components/form-designer/index.vue.js +74 -77
  51. package/src/components/form-designer/index.vue.js.map +1 -1
  52. package/src/components/form-designer/setting-panel/form-setting.vue.js +1 -1
  53. package/src/components/form-designer/setting-panel/form-setting.vue2.js +1 -1
  54. package/src/components/form-designer/setting-panel/form-setting.vue2.js.map +1 -1
  55. package/src/components/form-designer/setting-panel/index.vue.js +1 -1
  56. package/src/components/form-designer/setting-panel/index.vue2.js +1 -1
  57. package/src/components/form-designer/setting-panel/index.vue2.js.map +1 -1
  58. package/src/components/form-designer/setting-panel/option-items-setting.vue.js +2 -2
  59. package/src/components/form-designer/setting-panel/option-items-setting.vue2.js +1 -1
  60. package/src/components/form-designer/setting-panel/option-items-setting.vue2.js.map +1 -1
  61. package/src/components/form-designer/setting-panel/panel/PanelItemDrag.vue.js +51 -0
  62. package/src/components/form-designer/setting-panel/panel/PanelItemDrag.vue.js.map +1 -0
  63. package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js +51 -0
  64. package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue.js.map +1 -0
  65. package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js +5 -0
  66. package/src/components/form-designer/setting-panel/panel/PanelItemDragForBI.vue2.js.map +1 -0
  67. package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue.js +1 -1
  68. package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue2.js +201 -255
  69. package/src/components/form-designer/setting-panel/property-editor/boxModel-editor.vue2.js.map +1 -1
  70. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-customClass-editor.vue2.js +1 -1
  71. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-customClass-editor.vue2.js.map +1 -1
  72. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue2.js +1 -1
  73. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-dsEnabled-editor.vue2.js.map +1 -1
  74. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue.js +1 -1
  75. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js +1 -1
  76. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-tableColumns-editor.vue2.js.map +1 -1
  77. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue.js +2 -2
  78. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue2.js +1 -1
  79. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue2.js.map +1 -1
  80. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue2.js +1 -1
  81. package/src/components/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue2.js.map +1 -1
  82. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue.js +1 -1
  83. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue2.js +1 -1
  84. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue2.js.map +1 -1
  85. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/height-editor.vue2.js.map +1 -1
  86. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue2.js +10 -10
  87. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue2.js.map +1 -1
  88. package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue2.js +1 -1
  89. package/src/components/form-designer/setting-panel/property-editor/customClass-editor.vue2.js.map +1 -1
  90. package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue.js +5 -0
  91. package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue.js.map +1 -0
  92. package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js +71 -0
  93. package/src/components/form-designer/setting-panel/property-editor/dsEnabled-editor.vue2.js.map +1 -0
  94. package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js +5 -0
  95. package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue.js.map +1 -0
  96. package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js +81 -0
  97. package/src/components/form-designer/setting-panel/property-editor/echart-bar-editor.vue2.js.map +1 -0
  98. package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue2.js +1 -1
  99. package/src/components/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue2.js.map +1 -1
  100. package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue2.js +1 -1
  101. package/src/components/form-designer/setting-panel/property-editor/field-slider/range-editor.vue2.js.map +1 -1
  102. package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue2.js +1 -1
  103. package/src/components/form-designer/setting-panel/property-editor/field-switch/switch-defaultValue-editor.vue2.js.map +1 -1
  104. package/src/components/form-designer/setting-panel/property-editor/index.js +54 -54
  105. package/src/components/form-designer/setting-panel/property-editor/index.js.map +1 -1
  106. package/src/components/form-designer/setting-panel/property-editor/multiple-editor.vue2.js.map +1 -1
  107. package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue2.js +1 -1
  108. package/src/components/form-designer/setting-panel/property-editor/optionItems-editor.vue2.js.map +1 -1
  109. package/src/components/form-designer/setting-panel/property-editor/rightSlotCss-editor.vue2.js +1 -1
  110. package/src/components/form-designer/setting-panel/property-editor/rightSlotCss-editor.vue2.js.map +1 -1
  111. package/src/components/form-designer/setting-panel/property-editor/type-editor.vue2.js.map +1 -1
  112. package/src/components/form-designer/setting-panel/property-editor/useEditor.js +1 -1
  113. package/src/components/form-designer/setting-panel/property-editor/useEditor.js.map +1 -1
  114. package/src/components/form-designer/setting-panel/propertyRegister.js +12 -10
  115. package/src/components/form-designer/setting-panel/propertyRegister.js.map +1 -1
  116. package/src/components/form-designer/toolbar-panel/PreviewDialog.vue.js +1 -1
  117. package/src/components/form-designer/toolbar-panel/PreviewDialog.vue.js.map +1 -1
  118. package/src/components/form-designer/toolbar-panel/index.vue.js +2 -2
  119. package/src/components/form-designer/toolbar-panel/index.vue2.js +137 -177
  120. package/src/components/form-designer/toolbar-panel/index.vue2.js.map +1 -1
  121. package/src/components/form-designer/widget-panel/containers/vf-box.js +4 -1
  122. package/src/components/form-designer/widget-panel/containers/vf-box.js.map +1 -1
  123. package/src/components/form-designer/widget-panel/containers/vf-collapse.js +6 -6
  124. package/src/components/form-designer/widget-panel/containers/vf-collapse.js.map +1 -1
  125. package/src/components/form-designer/widget-panel/index.vue.js +2 -2
  126. package/src/components/form-designer/widget-panel/index.vue2.js +74 -34
  127. package/src/components/form-designer/widget-panel/index.vue2.js.map +1 -1
  128. package/src/components/form-render/container-items/vf-box-widget.vue.js +2 -2
  129. package/src/components/form-render/container-items/vf-box-widget.vue2.js +19 -17
  130. package/src/components/form-render/container-items/vf-box-widget.vue2.js.map +1 -1
  131. package/src/components/form-render/container-items/vf-collapse-widget.vue.js +1 -1
  132. package/src/components/form-render/container-items/vf-collapse-widget.vue2.js +24 -22
  133. package/src/components/form-render/container-items/vf-collapse-widget.vue2.js.map +1 -1
  134. package/src/components/form-render/dynamic-dialog.vue.js +1 -0
  135. package/src/components/form-render/dynamic-dialog.vue.js.map +1 -1
  136. package/src/constants/EditorTypeEnum.js +1 -1
  137. package/src/constants/EditorTypeEnum.js.map +1 -1
  138. package/src/constants/LayoutTypeEnum.js +5 -0
  139. package/src/constants/LayoutTypeEnum.js.map +1 -0
  140. package/src/constants/WidgetTypeEnum.js +4 -3
  141. package/src/constants/WidgetTypeEnum.js.map +1 -1
  142. package/src/hooks/useDesigner.js +51 -0
  143. package/src/hooks/useDesigner.js.map +1 -0
  144. package/src/lang/en-US.js +1 -1
  145. package/src/lang/en-US.js.map +1 -1
  146. package/src/lang/zh-CN.js +5 -3
  147. package/src/lang/zh-CN.js.map +1 -1
  148. package/src/utils/util.js +1 -1
  149. package/src/utils/util.js.map +1 -1
  150. package/stats.html +1 -1
  151. package/styles/style.css +1 -1
  152. package/src/components/form-designer/designer.js.map +0 -1
  153. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js +0 -8
  154. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue.js.map +0 -1
  155. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js +0 -58
  156. package/src/components/form-designer/form-widget/field-widget/bpmn-editor-widget copy.vue2.js.map +0 -1
  157. package/src/components/form-designer/form-widget/useFormDesigner.js +0 -34
  158. package/src/components/form-designer/form-widget/useFormDesigner.js.map +0 -1
  159. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js +0 -32
  160. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue.js.map +0 -1
  161. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js +0 -32
  162. package/src/components/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue.js.map +0 -1
  163. package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js +0 -50
  164. package/src/components/form-designer/widget-panel/PanelItemDrag.vue.js.map +0 -1
  165. /package/src/components/form-designer/{widget-panel → setting-panel/panel}/PanelItemDrag.vue2.js +0 -0
  166. /package/src/components/form-designer/{widget-panel → setting-panel/panel}/PanelItemDrag.vue2.js.map +0 -0
@@ -1,68 +1,59 @@
1
- import { defineComponent as b, inject as l, ref as a, provide as s, computed as i, resolveComponent as c, createBlock as B, openBlock as d, withCtx as f, createElementVNode as m, createVNode as u, unref as n, normalizeClass as E, createElementBlock as H, createCommentVNode as I, toDisplayString as N } from "vue";
2
- import { useI18n as V } from "../../../utils/i18n.js";
3
- import W from "./RenderDesignerWigetList.vue.js";
4
- const M = { class: "form-widget-container" }, P = {
1
+ import { defineComponent as k, ref as c, computed as o, provide as n, inject as x, resolveComponent as m, createBlock as L, openBlock as f, withCtx as u, createElementVNode as b, normalizeClass as d, unref as e, createVNode as p, createElementBlock as I, createCommentVNode as M, toDisplayString as N } from "vue";
2
+ import { useI18n as P } from "../../../utils/i18n.js";
3
+ import { useDesigner as V } from "../../../hooks/useDesigner.js";
4
+ import E from "./RenderDesignerPC.vue.js";
5
+ import j from "./bi/RenderDesignerBI.vue.js";
6
+ const H = {
5
7
  key: 0,
6
8
  class: "no-widget-hint"
7
- }, R = {
8
- class: "form-widget-canvas",
9
- style: { minHeight: "calc(100vh - 56px - 68px)" }
10
- }, A = /* @__PURE__ */ b({
9
+ }, G = /* @__PURE__ */ k({
11
10
  __name: "index",
12
- props: {
13
- globalDsv: {},
14
- formConfig: {}
15
- },
16
- setup(g) {
17
- const { i18nt: p } = V(), v = g, e = l("designer", a({})), _ = a(/* @__PURE__ */ new Map());
18
- s("refList", _), s("getReadMode", () => !1), s("getFormConfig", () => v.formConfig);
19
- const C = l("formData", a({})), h = () => {
20
- }, w = i(() => {
21
- var o, t;
22
- return ((t = (o = e.value) == null ? void 0 : o.formConfig) == null ? void 0 : t.labelPosition) || "horizontal";
23
- }), r = i(() => e.value.formConfig && e.value.formConfig.size ? e.value.formConfig.size : "default"), y = i(() => e.value.formConfig.customClass || ""), z = i(() => e.value.getLayoutType()), x = (o) => {
24
- const t = o.newIndex;
25
- e.value.widgetList[t] && e.value.setSelected(e.value.widgetList[t]);
26
- }, D = () => {
27
- e.value.emitHistoryChange();
28
- };
29
- return (o, t) => {
30
- const L = c("a-form"), k = c("a-config-provider");
31
- return d(), B(k, {
32
- "component-size": r.value,
33
- input: { autocomplete: "off" }
11
+ setup(S) {
12
+ const {
13
+ i18nt: _
14
+ } = P(), r = c(/* @__PURE__ */ new Map()), {
15
+ designer: g,
16
+ formConfig: t,
17
+ layoutType: v,
18
+ isPc: h,
19
+ isBI: w
20
+ } = V(), z = o(() => h.value ? E : j);
21
+ n("refList", r), n("getReadMode", () => !1), n("refList", r), n("getReadMode", () => !1);
22
+ const C = x("formData", c({})), y = o(() => {
23
+ var i;
24
+ return ((i = t.value) == null ? void 0 : i.labelPosition) || "horizontal";
25
+ }), s = o(() => t.value && t.value.size ? t.value.size : "default"), D = o(() => t.value.customClass || "");
26
+ return (i, T) => {
27
+ const B = m("a-form"), R = m("a-config-provider");
28
+ return f(), L(R, {
29
+ "component-size": s.value,
30
+ input: {
31
+ autocomplete: "off"
32
+ }
34
33
  }, {
35
- default: f(() => [
36
- m("div", M, [
37
- u(L, {
38
- class: E(["full-height-width widget-form tpf-form", [y.value, z.value + "-layout"]]),
39
- layout: w.value,
40
- size: r.value,
41
- "validate-on-rule-change": !1,
42
- model: n(C)
43
- }, {
44
- default: f(() => [
45
- n(e).widgetList.length === 0 ? (d(), H("div", P, N(n(p)("designer.noWidgetHint")), 1)) : I("", !0),
46
- m("div", R, [
47
- u(W, {
48
- list: n(e).widgetList,
49
- parentWidget: n(e),
50
- end: h,
51
- add: x,
52
- update: D
53
- }, null, 8, ["list", "parentWidget"])
54
- ])
55
- ]),
56
- _: 1
57
- }, 8, ["layout", "class", "size", "model"])
58
- ])
59
- ]),
34
+ default: u(() => [b("div", {
35
+ class: d(["form-widget-container", {
36
+ "form-widget-container__bi": e(w)
37
+ }])
38
+ }, [p(B, {
39
+ class: d(["full-height-width widget-form tpf-form", [D.value, e(v) + "-layout"]]),
40
+ layout: y.value,
41
+ size: s.value,
42
+ "validate-on-rule-change": !1,
43
+ model: e(C)
44
+ }, {
45
+ default: u(() => {
46
+ var a, l;
47
+ return [((l = (a = e(g)) == null ? void 0 : a.widgetList) == null ? void 0 : l.length) === 0 ? (f(), I("div", H, N(e(_)("designer.noWidgetHint")), 1)) : M("", !0), p(e(z))];
48
+ }),
49
+ _: 1
50
+ }, 8, ["layout", "class", "size", "model"])], 2)]),
60
51
  _: 1
61
52
  }, 8, ["component-size"]);
62
53
  };
63
54
  }
64
55
  });
65
56
  export {
66
- A as default
57
+ G as default
67
58
  };
68
59
  //# sourceMappingURL=index.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.js","sources":["../../../../../src/components/form-designer/form-widget/index.vue"],"sourcesContent":["<template>\n <a-config-provider :component-size=\"size\" :input=\"{ autocomplete: 'off' }\">\n <div class=\"form-widget-container\">\n <a-form\n class=\"full-height-width widget-form tpf-form\"\n :layout=\"labelPosition\"\n :class=\"[customClass, layoutType + '-layout']\"\n :size=\"size\"\n :validate-on-rule-change=\"false\"\n :model=\"formData\"\n >\n <template v-if=\"designer.widgetList.length === 0\">\n <div class=\"no-widget-hint\">{{ i18nt('designer.noWidgetHint') }}</div>\n </template>\n <div class=\"form-widget-canvas\" :style=\"{ minHeight: 'calc(100vh - 56px - 68px)' }\">\n <RenderDesignerWigetList\n :list=\"designer.widgetList\"\n :parentWidget=\"designer\"\n :end=\"onDragEnd\"\n :add=\"onDragAdd\"\n :update=\"onDragUpdate\"\n />\n </div>\n </a-form>\n </div>\n </a-config-provider>\n</template>\n\n<script lang=\"ts\" setup>\n import { useI18n } from '@/utils/i18n';\n import RenderDesignerWigetList from '@/components/form-designer/form-widget/RenderDesignerWigetList.vue';\n import { computed, provide, ref, inject, Ref } from 'vue';\n import { FormConfig } from '@/types/schema';\n import { FormDesigner } from '@/types/designer';\n\n const { i18nt } = useI18n();\n const props = withDefaults(\n defineProps<{\n globalDsv: Record<string, any>;\n formConfig: FormConfig;\n }>(),\n {}\n );\n const designer = inject<Ref<FormDesigner>>('designer', ref({} as FormDesigner));\n const widgetRefList = ref(new Map());\n\n provide('refList', widgetRefList);\n provide('getReadMode', () => false);\n provide('getFormConfig', () => props.formConfig);\n\n const formData = inject('formData', ref({}));\n\n const onDragEnd = () => {};\n\n const labelPosition = computed(() => {\n return designer.value?.formConfig?.labelPosition || 'horizontal';\n });\n\n const size = computed(() => {\n if (!!designer.value.formConfig && !!designer.value.formConfig.size) {\n return designer.value.formConfig.size;\n }\n\n return 'default';\n });\n\n const customClass = computed(() => {\n return designer.value.formConfig.customClass || '';\n });\n\n const layoutType = computed(() => {\n return designer.value.getLayoutType();\n });\n\n const onDragAdd = evt => {\n const newIndex = evt.newIndex;\n if (designer.value.widgetList[newIndex]) {\n designer.value.setSelected(designer.value.widgetList[newIndex]);\n }\n };\n\n const onDragUpdate = () => {\n designer.value.emitHistoryChange();\n };\n</script>\n\n<style lang=\"less\" scoped>\n .form-widget-container {\n padding: 5px;\n background: #f1f2f3;\n\n overflow-x: hidden;\n overflow-y: auto;\n // padding-bottom: 70px;\n .submit {\n flex: 1;\n display: flex;\n justify-content: end;\n position: absolute;\n height: 60px;\n padding: 0 10px;\n background: #fff;\n z-index: 99;\n bottom: 0;\n left: 5px;\n right: 5px;\n }\n\n .ant-form.full-height-width {\n overflow-y: auto;\n height: 100%;\n padding: 3px;\n background: #ffffff;\n\n .no-widget-hint {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 18px;\n color: #999999;\n }\n\n .form-widget-canvas {\n //min-height: calc(100vh - 56px - 68px + 48px);\n display: flex;\n flex-direction: column;\n padding: 3px;\n position: relative;\n :deep(.container-wrapper) {\n margin: 10px 3px;\n min-width: 0;\n }\n :deep(.field-widget-item),\n :deep(.container-widget-item) {\n margin: 0 0 10px 0;\n border: 1px dashed #333;\n border-radius: 3px;\n background: #eee;\n height: 30px;\n align-items: center;\n display: flex;\n justify-content: center;\n color: #999999;\n }\n }\n }\n\n /* 隐藏组件拖拽状态中显示的黑点 */\n :deep(li.container-widget-item),\n :deep(li.field-widget-item) {\n list-style: none;\n }\n\n .ant-form.Pad-layout {\n margin: 0 auto;\n max-width: 960px;\n border-radius: 15px;\n box-shadow: 0 0 1px 10px #495060;\n }\n .ant-form.H5-layout {\n margin: 0 auto;\n width: 420px;\n border-radius: 15px;\n //border-width: 10px;\n box-shadow: 0 0 1px 10px #495060;\n }\n .ant-form.widget-form :deep(.ant-row) {\n padding: 2px;\n }\n }\n\n .grid-cell {\n min-height: 30px;\n border-right: 1px dotted #cccccc;\n }\n\n .fade-enter-active,\n .fade-leave-active {\n transition: opacity 0.5s;\n }\n\n .fade-enter,\n .fade-leave-to {\n opacity: 0;\n }\n</style>\n"],"names":["i18nt","useI18n","props","__props","designer","inject","ref","widgetRefList","provide","formData","onDragEnd","labelPosition","computed","_b","_a","size","customClass","layoutType","onDragAdd","evt","newIndex","onDragUpdate","_createBlock","_component_a_config_provider","_createElementVNode","_hoisted_1","_createVNode","_component_a_form","_normalizeClass","_unref","_createElementBlock","_hoisted_2","_toDisplayString","_hoisted_3","RenderDesignerWigetList"],"mappings":";;;;;;;;;;;;;;;;AAmCI,UAAM,EAAE,OAAAA,EAAA,IAAUC,EAAA,GACZC,IAAQC,GAORC,IAAWC,EAA0B,YAAYC,EAAI,CAAA,CAAkB,CAAC,GACxEC,IAAgBD,EAAI,oBAAI,KAAK;AAEnC,IAAAE,EAAQ,WAAWD,CAAa,GAChCC,EAAQ,eAAe,MAAM,EAAK,GAClCA,EAAQ,iBAAiB,MAAMN,EAAM,UAAU;AAE/C,UAAMO,IAAWJ,EAAO,YAAYC,EAAI,CAAA,CAAE,CAAC,GAErCI,IAAY,MAAM;AAAA,IAAC,GAEnBC,IAAgBC,EAAS,MAAM;;AACjC,eAAOC,KAAAC,IAAAV,EAAS,UAAT,gBAAAU,EAAgB,eAAhB,gBAAAD,EAA4B,kBAAiB;AAAA,IACxD,CAAC,GAEKE,IAAOH,EAAS,MACZR,EAAS,MAAM,cAAgBA,EAAS,MAAM,WAAW,OACpDA,EAAS,MAAM,WAAW,OAG9B,SACV,GAEKY,IAAcJ,EAAS,MAClBR,EAAS,MAAM,WAAW,eAAe,EACnD,GAEKa,IAAaL,EAAS,MACjBR,EAAS,MAAM,cAAA,CACzB,GAEKc,IAAY,CAAAC,MAAO;AACrB,YAAMC,IAAWD,EAAI;AACrB,MAAIf,EAAS,MAAM,WAAWgB,CAAQ,KAClChB,EAAS,MAAM,YAAYA,EAAS,MAAM,WAAWgB,CAAQ,CAAC;AAAA,IAEtE,GAEMC,IAAe,MAAM;AACvB,MAAAjB,EAAS,MAAM,kBAAA;AAAA,IACnB;;;kBAlFAkB,EAwBoBC,GAAA;AAAA,QAxBA,kBAAgBR,EAAA;AAAA,QAAO,OAAO,EAAA,cAAA,MAAA;AAAA,MAAA;mBAC9C,MAsBM;AAAA,UAtBNS,EAsBM,OAtBNC,GAsBM;AAAA,YArBFC,EAoBSC,GAAA;AAAA,cAnBL,OAAKC,EAAA,CAAC,0CAAwC,CAErCZ,EAAA,OAAaC,EAAA,QAAU,SAAA,CAAA,CAAA;AAAA,cAD/B,QAAQN,EAAA;AAAA,cAER,MAAMI,EAAA;AAAA,cACN,2BAAyB;AAAA,cACzB,OAAOc,EAAApB,CAAA;AAAA,YAAA;yBAER,MAEW;AAAA,gBAFKoB,EAAAzB,CAAA,EAAS,WAAW,WAAM,UACtC0B,EAAsE,OAAtEC,GAAsEC,EAAvCH,EAAA7B,CAAA,EAAK,uBAAA,CAAA,GAAA,CAAA;gBAExCwB,EAQM,OARNS,GAQM;AAAA,kBAPFP,EAMEQ,GAAA;AAAA,oBALG,MAAML,EAAAzB,CAAA,EAAS;AAAA,oBACf,cAAcyB,EAAAzB,CAAA;AAAA,oBACd,KAAKM;AAAA,oBACL,KAAKQ;AAAA,oBACL,QAAQG;AAAA,kBAAA;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.vue2.js","sources":["../../../../../src/components/form-designer/form-widget/index.vue"],"sourcesContent":["<template>\n <a-config-provider :component-size=\"size\" :input=\"{ autocomplete: 'off' }\">\n <div\n class=\"form-widget-container\"\n :class=\"{\n 'form-widget-container__bi': isBI\n }\"\n >\n <a-form\n class=\"full-height-width widget-form tpf-form\"\n :layout=\"labelPosition\"\n :class=\"[customClass, layoutType + '-layout']\"\n :size=\"size\"\n :validate-on-rule-change=\"false\"\n :model=\"formData\"\n >\n <template v-if=\"designer?.widgetList?.length === 0\">\n <div class=\"no-widget-hint\">{{ i18nt('designer.noWidgetHint') }}</div>\n </template>\n <RenderDesigner />\n </a-form>\n </div>\n </a-config-provider>\n</template>\n\n<script lang=\"tsx\" setup>\n import { useI18n } from '@/utils/i18n';\n import { computed, inject, provide, ref } from 'vue';\n import { useDesigner } from '../../../hooks/useDesigner';\n import RenderDesignerPC from './RenderDesignerPC.vue';\n import RenderDesignerBI from './bi/RenderDesignerBI.vue';\n\n const { i18nt } = useI18n();\n const widgetRefList = ref(new Map());\n const { designer, formConfig, layoutType, isPc, isBI } = useDesigner();\n\n const RenderDesigner = computed(() => {\n return isPc.value ? RenderDesignerPC : RenderDesignerBI;\n });\n\n provide('refList', widgetRefList);\n provide('getReadMode', () => false);\n\n provide('refList', widgetRefList);\n provide('getReadMode', () => false);\n\n const formData = inject('formData', ref({}));\n\n const labelPosition = computed(() => {\n return formConfig.value?.labelPosition || 'horizontal';\n });\n\n const size = computed(() => {\n if (!!formConfig.value && !!formConfig.value.size) {\n return formConfig.value.size;\n }\n\n return 'default';\n });\n\n const customClass = computed(() => {\n return formConfig.value.customClass || '';\n });\n</script>\n\n<style lang=\"less\" scoped>\n .form-widget-container {\n padding: 5px;\n background: #f1f2f3;\n overflow-x: hidden;\n overflow-y: auto;\n &__bi {\n padding: 0;\n }\n .ant-form.full-height-width {\n overflow-y: auto;\n height: 100%;\n padding: 3px;\n background: #ffffff;\n position: relative;\n\n .no-widget-hint {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 18px;\n color: #999999;\n }\n\n .form-widget-canvas {\n height: 100%;\n display: flex;\n flex-direction: column;\n padding: 3px;\n position: relative;\n :deep(.container-wrapper) {\n margin: 10px 3px;\n min-width: 0;\n }\n :deep(.field-widget-item),\n :deep(.container-widget-item) {\n margin: 0 0 10px 0;\n border: 1px dashed #333;\n border-radius: 3px;\n background: #eee;\n height: 30px;\n align-items: center;\n display: flex;\n justify-content: center;\n color: #999999;\n }\n }\n }\n\n /* 隐藏组件拖拽状态中显示的黑点 */\n :deep(li.container-widget-item),\n :deep(li.field-widget-item) {\n list-style: none;\n }\n .ant-form.BI-layout {\n padding: 0;\n }\n\n .ant-form.H5-layout {\n margin: 0 auto;\n width: 420px;\n border-radius: 15px;\n //border-width: 10px;\n height: calc(100% - 20px);\n margin-top: 10px;\n box-shadow: 0 0 1px 10px #495060;\n }\n .ant-form.widget-form :deep(.ant-row) {\n padding: 2px;\n }\n }\n</style>\n"],"names":["i18nt","useI18n","widgetRefList","ref","Map","designer","formConfig","layoutType","isPc","isBI","useDesigner","RenderDesigner","computed","value","RenderDesignerPC","RenderDesignerBI","provide","formData","inject","labelPosition","size","customClass","_createBlock","_component_a_config_provider","input","autocomplete","_createElementVNode","class","_unref","_createVNode","_component_a_form","_normalizeClass","layout","model","widgetList","length","_createElementBlock","_hoisted_1","_toDisplayString"],"mappings":";;;;;;;;;;;AAgCI,UAAM;AAAA,MAAEA,OAAAA;AAAAA,QAAUC,EAAO,GACnBC,IAAgBC,EAAI,oBAAIC,KAAK,GAC7B;AAAA,MAAEC,UAAAA;AAAAA,MAAUC,YAAAA;AAAAA,MAAYC,YAAAA;AAAAA,MAAYC,MAAAA;AAAAA,MAAMC,MAAAA;AAAAA,QAASC,EAAW,GAE9DC,IAAiBC,EAAS,MACrBJ,EAAKK,QAAQC,IAAmBC,CAC1C;AAEDC,IAAAA,EAAQ,WAAWd,CAAa,GAChCc,EAAQ,eAAe,MAAM,EAAK,GAElCA,EAAQ,WAAWd,CAAa,GAChCc,EAAQ,eAAe,MAAM,EAAK;AAElC,UAAMC,IAAWC,EAAO,YAAYf,EAAI,CAAA,CAAE,CAAC,GAErCgB,IAAgBP,EAAS,MAAM;;AACjC,eAAON,IAAAA,EAAWO,UAAXP,gBAAAA,EAAkBa,kBAAiB;AAAA,IAC9C,CAAC,GAEKC,IAAOR,EAAS,MACZN,EAAWO,SAAWP,EAAWO,MAAMO,OAClCd,EAAWO,MAAMO,OAGrB,SACV,GAEKC,IAAcT,EAAS,MAClBN,EAAWO,MAAMQ,eAAe,EAC1C;;;kBA7DDC,EAqBoBC,GAAA;AAAA,QArBA,kBAAgBH,EAAAP;AAAAA,QAAOW,OAAO;AAAA,UAAAC,cAAA;AAAA,QAAA;AAAA;mBAC9C,MAmBM,CAnBNC,EAmBM,OAAA;AAAA,UAlBFC,UAAM,yBAAuB;AAAA,yCAC0BC,EAAAnB,CAAA;AAAA;YAIvDoB,EAYSC,GAAA;AAAA,UAXLH,OAAKI,EAAA,CAAC,0CAAwC,CAErCV,EAAAR,OAAae,EAAArB,CAAA,IAAU,SAAA,CAAA,CAAA;AAAA,UAD/ByB,QAAQb,EAAAN;AAAAA,UAERO,MAAMA,EAAAP;AAAAA,UACN,2BAAyB;AAAA,UACzBoB,OAAOL,EAAAX,CAAA;AAAA;qBAER,MAAA;;AAEW,sBAFKW,KAAAA,IAAAA,EAAAvB,CAAA,MAAAuB,gBAAAA,EAAUM,eAAVN,gBAAAA,EAAsBO,YAAM,UACxCC,EAAsE,OAAtEC,GAAsEC,EAAvCV,EAAA5B,CAAA,EAAK,uBAAA,CAAA,GAAA,CAAA,gBAExC6B,EAAkBD,EAAAjB,CAAA,CAAA,CAAA;AAAA;;;;;;;;"}
@@ -1,18 +1,20 @@
1
- import { defineComponent as z, ref as l, provide as s, computed as G, watch as K, onMounted as Q, resolveComponent as a, createBlock as X, openBlock as Y, withCtx as r, createVNode as n, createSlots as Z, renderList as j, renderSlot as O, createElementVNode as ee } from "vue";
2
- import te from "./widget-panel/index.vue.js";
3
- import oe from "./toolbar-panel/index.vue.js";
4
- import ne from "./setting-panel/index.vue.js";
5
- import re from "./form-widget/index.vue.js";
6
- import { createDesigner as ie } from "./designer.js";
7
- import { useLocaleStore as le } from "@kp-ui/i18n";
8
- import { deepClone as F, getAllFieldWidgets as w, getAllContainerWidgets as L } from "../../utils/util.js";
9
- import { isEmpty as b, set as se } from "lodash-es";
1
+ import { defineComponent as z, provide as i, ref as s, computed as W, watch as G, onMounted as K, resolveComponent as l, createBlock as Q, openBlock as X, withCtx as r, createVNode as n, createSlots as Y, renderList as Z, renderSlot as j, createElementVNode as O } from "vue";
2
+ import ee from "./widget-panel/index.vue.js";
3
+ import te from "./toolbar-panel/index.vue.js";
4
+ import oe from "./setting-panel/index.vue.js";
5
+ import ne from "./form-widget/index.vue.js";
6
+ import { createDesigner as re } from "../designer.js";
7
+ import { useLocaleStore as ie } from "@kp-ui/i18n";
8
+ import { deepClone as w, getAllFieldWidgets as L, getAllContainerWidgets as J } from "../../utils/util.js";
9
+ import { isEmpty as A, set as ae } from "lodash-es";
10
10
  import { useI18n as D } from "../../utils/i18n.js";
11
- import { message as J } from "ant-design-vue";
12
- import { storeToRefs as ae } from "pinia";
13
- import { useExecFunction as de, useRef as fe } from "tmgc2-share";
14
- import { useEmitter as ge } from "../../utils/useEmitter.js";
15
- const ue = { class: "container-scroll-bar" }, Je = /* @__PURE__ */ z({
11
+ import { message as E } from "ant-design-vue";
12
+ import { storeToRefs as se } from "pinia";
13
+ import { useExecFunction as le, useRef as de } from "tmgc2-share";
14
+ import { useEmitter as ue } from "../../utils/useEmitter.js";
15
+ import { LayoutTypeEnum as fe } from "../../constants/LayoutTypeEnum.js";
16
+ import { getLocat as me } from "@kp-ui/tool";
17
+ const ce = { class: "container-scroll-bar" }, be = /* @__PURE__ */ z({
16
18
  name: "VFormDesigner",
17
19
  componentName: "VFormDesigner",
18
20
  __name: "index",
@@ -35,108 +37,105 @@ const ue = { class: "container-scroll-bar" }, Je = /* @__PURE__ */ z({
35
37
  }) },
36
38
  globalDsv: { default: () => ({}) }
37
39
  },
38
- setup(A, { expose: R }) {
39
- const m = l(), { i18nt: c } = D(), S = le(), { locale: p } = ae(S), d = A, f = ge(), { context: E } = de();
40
- s("serverFieldList", () => v.value), s("designState", !0);
41
- const g = l(270), u = l(300), v = l([]), { initLocale: B } = D(), o = l(ie(E)), V = G(() => o.value.formConfig), h = l({});
42
- s("formData", h), s("formConfig", V), s("designer", o), s("getDesignerConfig", () => d.designerConfig);
43
- const $ = (e) => {
44
- if (!b(e))
40
+ setup(S, { expose: b }) {
41
+ const { i18nt: c } = D(), B = ie(), { locale: g } = se(B), d = S, u = ue(), { context: T } = le();
42
+ i("serverFieldList", () => p.value), i("designState", !0);
43
+ const f = s(270), m = s(300), p = s([]), { initLocale: x } = D(), o = s(re(T)), V = W(() => o.value.formConfig), v = s({}), h = W(() => {
44
+ const { type: e = fe.PC } = me();
45
+ return e;
46
+ });
47
+ i("formData", v), i("formConfig", V), i("designer", o), i("getDesignerConfig", () => d.designerConfig), i("layoutType", h), o.value.changeLayoutType(h.value);
48
+ const P = (e) => {
49
+ if (!A(e))
45
50
  try {
46
51
  if (!e || !e.formConfig)
47
52
  throw new Error(c("designer.hint.invalidJsonFormat"));
48
53
  o.value.loadFormJson(e), o.value.emitHistoryChange(), o.value.emitEvent("form-json-imported", []);
49
54
  } catch (t) {
50
- J.error(t + "");
55
+ E.error(t + "");
51
56
  }
52
- }, k = async () => {
53
- d.fieldListApi && (v.value = await d.fieldListApi());
54
- }, x = (e) => {
55
- if (!b(e))
57
+ }, R = async () => {
58
+ d.fieldListApi && (p.value = await d.fieldListApi());
59
+ }, $ = (e) => {
60
+ if (!A(e))
56
61
  try {
57
62
  let t = !1;
58
63
  typeof e == "string" ? t = o.value.loadFormJson(JSON.parse(e)) : e.constructor === Object && (t = o.value.loadFormJson(e)), t && o.value.emitHistoryChange();
59
64
  } catch (t) {
60
- J.error(t + "");
65
+ E.error(t + "");
61
66
  }
62
67
  }, H = () => ({
63
- widgetList: F(o.value.widgetList),
64
- formConfig: F(o.value.formConfig)
65
- }), P = (e = []) => e.length ? w(e) : w(o.value.widgetList), U = (e = []) => e.length ? L(e) : L(o.value.widgetList), I = (e, t = !1) => m.value.getWidgetRef(e, t);
66
- K(
67
- p,
68
+ widgetList: w(o.value.widgetList),
69
+ formConfig: w(o.value.formConfig)
70
+ }), U = (e = []) => e.length ? L(e) : L(o.value.widgetList), k = (e = []) => e.length ? J(e) : J(o.value.widgetList);
71
+ G(
72
+ g,
68
73
  () => {
69
- B(p.value);
74
+ x(g.value);
70
75
  },
71
76
  {
72
77
  immediate: !0
73
78
  }
74
79
  );
75
- const [M, N] = fe(!1), T = () => {
76
- f.off$("fieldChange"), f.on$("fieldChange", ({ fieldName: e, value: t }) => {
77
- console.log("fieldChange", e, t), typeof e < "u" && typeof t < "u" && se(h.value, e, t);
80
+ const [I, M] = de(!1), N = () => {
81
+ u.off$("fieldChange"), u.on$("fieldChange", ({ fieldName: e, value: t }) => {
82
+ console.log("fieldChange", e, t), typeof e < "u" && typeof t < "u" && ae(v.value, e, t);
78
83
  });
79
84
  };
80
- return Q(() => {
81
- o.value.initDesigner(), T(), k();
82
- }), R({
83
- ...f,
85
+ return K(() => {
86
+ N(), R();
87
+ }), b({
88
+ ...u,
84
89
  i18nt: c,
85
- isLoading: M,
86
- setLoading: N,
87
- getWidgetRef: I,
88
- getContainerWidgets: U,
89
- getFieldWidgets: P,
90
+ isLoading: I,
91
+ setLoading: M,
92
+ getContainerWidgets: k,
93
+ getFieldWidgets: U,
90
94
  getFormJson: H,
91
- setFormJson: x,
92
- setJsonImport: $
95
+ setFormJson: $,
96
+ setJsonImport: P
93
97
  }), (e, t) => {
94
- const C = a("a-layout-sider"), q = a("a-layout-header"), y = a("a-layout-content"), _ = a("a-layout");
95
- return Y(), X(_, { class: "main-container full-height" }, {
98
+ const y = l("a-layout-sider"), q = l("a-layout-header"), C = l("a-layout-content"), _ = l("a-layout");
99
+ return X(), Q(_, { class: "main-container full-height" }, {
96
100
  default: r(() => [
97
101
  n(_, null, {
98
102
  default: r(() => [
99
- n(C, {
100
- width: g.value,
103
+ n(y, {
104
+ width: f.value,
101
105
  class: "side-panel"
102
106
  }, {
103
107
  default: r(() => [
104
- n(te)
108
+ n(ee)
105
109
  ]),
106
110
  _: 1
107
111
  }, 8, ["width"]),
108
- n(y, { class: "center-layout-container" }, {
112
+ n(C, { class: "center-layout-container" }, {
109
113
  default: r(() => [
110
114
  n(q, { class: "toolbar-header" }, {
111
115
  default: r(() => [
112
- n(oe, {
116
+ n(te, {
113
117
  saveJsonApi: e.saveJsonApi,
114
118
  "global-dsv": e.globalDsv,
115
- leftWidth: g.value,
116
- "onUpdate:leftWidth": t[0] || (t[0] = (i) => g.value = i),
117
- rightWidth: u.value,
118
- "onUpdate:rightWidth": t[1] || (t[1] = (i) => u.value = i),
119
+ leftWidth: f.value,
120
+ "onUpdate:leftWidth": t[0] || (t[0] = (a) => f.value = a),
121
+ rightWidth: m.value,
122
+ "onUpdate:rightWidth": t[1] || (t[1] = (a) => m.value = a),
119
123
  ref: "toolbarRef"
120
- }, Z({ _: 2 }, [
121
- j(e.$slots, (i, W) => ({
122
- name: W,
124
+ }, Y({ _: 2 }, [
125
+ Z(e.$slots, (a, F) => ({
126
+ name: F,
123
127
  fn: r(() => [
124
- O(e.$slots, W)
128
+ j(e.$slots, F)
125
129
  ])
126
130
  }))
127
131
  ]), 1032, ["saveJsonApi", "global-dsv", "leftWidth", "rightWidth"])
128
132
  ]),
129
133
  _: 3
130
134
  }),
131
- n(y, { class: "form-widget-main" }, {
135
+ n(C, { class: "form-widget-main" }, {
132
136
  default: r(() => [
133
- ee("div", ue, [
134
- n(re, {
135
- "global-dsv": e.globalDsv,
136
- "form-config": o.value.formConfig,
137
- ref_key: "formRef",
138
- ref: m
139
- }, null, 8, ["global-dsv", "form-config"])
137
+ O("div", ce, [
138
+ n(ne)
140
139
  ])
141
140
  ]),
142
141
  _: 1
@@ -144,14 +143,12 @@ const ue = { class: "container-scroll-bar" }, Je = /* @__PURE__ */ z({
144
143
  ]),
145
144
  _: 3
146
145
  }),
147
- n(C, { width: u.value }, {
146
+ n(y, { width: m.value }, {
148
147
  default: r(() => [
149
- n(ne, {
148
+ n(oe, {
150
149
  "selected-widget": o.value.selectedWidget,
151
- "onUpdate:selectedWidget": t[2] || (t[2] = (i) => o.value.selectedWidget = i),
152
- "global-dsv": e.globalDsv,
153
- "form-config": o.value.formConfig
154
- }, null, 8, ["selected-widget", "global-dsv", "form-config"])
150
+ "onUpdate:selectedWidget": t[2] || (t[2] = (a) => o.value.selectedWidget = a)
151
+ }, null, 8, ["selected-widget"])
155
152
  ]),
156
153
  _: 1
157
154
  }, 8, ["width"])
@@ -165,6 +162,6 @@ const ue = { class: "container-scroll-bar" }, Je = /* @__PURE__ */ z({
165
162
  }
166
163
  });
167
164
  export {
168
- Je as default
165
+ be as default
169
166
  };
170
167
  //# sourceMappingURL=index.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue.js","sources":["../../../../src/components/form-designer/index.vue"],"sourcesContent":["<template>\n <a-layout class=\"main-container full-height\">\n <a-layout>\n <a-layout-sider :width=\"leftWidth\" class=\"side-panel\">\n <WidgetPanel />\n </a-layout-sider>\n\n <a-layout-content class=\"center-layout-container\">\n <a-layout-header class=\"toolbar-header\">\n <toolbar-panel\n :saveJsonApi=\"saveJsonApi\"\n :global-dsv=\"globalDsv\"\n v-model:leftWidth=\"leftWidth\"\n v-model:rightWidth=\"rightWidth\"\n ref=\"toolbarRef\"\n >\n <template v-for=\"(idx, slotName) in $slots\" #[slotName]>\n <slot :name=\"slotName\"></slot>\n </template>\n </toolbar-panel>\n </a-layout-header>\n <a-layout-content class=\"form-widget-main\">\n <div class=\"container-scroll-bar\">\n <VFormWidget\n :global-dsv=\"globalDsv\"\n :form-config=\"designer.formConfig\"\n ref=\"formRef\"\n />\n </div>\n </a-layout-content>\n </a-layout-content>\n <a-layout-sider :width=\"rightWidth\">\n <setting-panel\n v-model:selected-widget=\"designer.selectedWidget\"\n :global-dsv=\"globalDsv\"\n :form-config=\"designer.formConfig\"\n />\n </a-layout-sider>\n </a-layout>\n </a-layout>\n</template>\n\n<script lang=\"ts\" setup>\n import WidgetPanel from './widget-panel/index.vue';\n import ToolbarPanel from './toolbar-panel/index.vue';\n import SettingPanel from './setting-panel/index.vue';\n import VFormWidget from './form-widget/index.vue';\n import { createDesigner } from '@/components/form-designer/designer';\n import { useLocaleStore } from '@kp-ui/i18n';\n import {\n deepClone,\n getAllContainerWidgets,\n getAllFieldWidgets,\n traverseAllWidgets\n } from '@/utils/util';\n import { isEmpty, set } from 'lodash-es';\n import { ref, provide, watch, onMounted, computed } from 'vue';\n import { WidgetTree } from '@/types/schema';\n import { useI18n } from '@/utils/i18n';\n import { message } from 'ant-design-vue';\n import { storeToRefs } from 'pinia';\n import { useExecFunction, useRef } from 'tmgc2-share';\n import { useEmitter } from '@/utils/useEmitter';\n\n defineOptions({\n name: 'VFormDesigner',\n componentName: 'VFormDesigner'\n });\n\n const formRef = ref();\n const { i18nt } = useI18n();\n const localeStore = useLocaleStore();\n const { locale } = storeToRefs(localeStore);\n\n const props = withDefaults(\n defineProps<{\n saveJsonApi: (json: any) => Promise<void>;\n fieldListApi: () => Promise<any[]>;\n designerConfig?: {\n eventCollapse?: boolean;\n widgetNameReadonly?: boolean;\n clearDesignerButton?: boolean;\n previewFormButton?: boolean;\n importJsonButton?: boolean;\n exportJsonButton?: boolean;\n };\n globalDsv?: Record<string, any>;\n }>(),\n {\n designerConfig: () => ({\n eventCollapse: true, //是否显示组件事件属性折叠面板\n widgetNameReadonly: false, //禁止修改组件名称\n clearDesignerButton: true, //是否显示清空设计器按钮\n previewFormButton: true, //是否显示预览表单按钮\n importJsonButton: true, //是否显示导入JSON按钮\n exportJsonButton: true //是否显示导出JSON器按钮\n }),\n globalDsv: () => ({})\n }\n );\n const emitter = useEmitter();\n const { context } = useExecFunction();\n provide('serverFieldList', () => fieldList.value);\n provide('designState', true); // 设计态标识\n const leftWidth = ref(270);\n const rightWidth = ref(300);\n const fieldList = ref<any[]>([]);\n const { initLocale } = useI18n();\n const designer = ref(createDesigner(context));\n const formConfig = computed(() => designer.value.formConfig);\n // 状态变量\n const formDataModel = ref<Record<string, any>>({});\n\n provide('formData', formDataModel);\n provide('formConfig', formConfig);\n provide('designer', designer);\n provide('getDesignerConfig', () => props.designerConfig);\n\n const setJsonImport = (importObj: WidgetTree) => {\n if (isEmpty(importObj)) return;\n try {\n if (!importObj || !importObj.formConfig) {\n throw new Error(i18nt('designer.hint.invalidJsonFormat'));\n }\n designer.value.loadFormJson(importObj);\n designer.value.emitHistoryChange();\n designer.value.emitEvent('form-json-imported', []);\n } catch (error) {\n message.error(error + '');\n }\n };\n\n const loadFieldListFromServer = async () => {\n if (!props.fieldListApi) {\n return;\n }\n fieldList.value = await props.fieldListApi();\n };\n\n const setFormJson = (formJson: WidgetTree) => {\n if (isEmpty(formJson)) return;\n try {\n let modifiedFlag = false;\n if (typeof formJson === 'string') {\n modifiedFlag = designer.value.loadFormJson(JSON.parse(formJson));\n } else if (formJson.constructor === Object) {\n modifiedFlag = designer.value.loadFormJson(formJson);\n }\n if (modifiedFlag) {\n designer.value.emitHistoryChange();\n }\n } catch (error) {\n message.error(error + '');\n }\n };\n\n const getFormJson = (): WidgetTree => {\n return {\n widgetList: deepClone(designer.value.widgetList),\n formConfig: deepClone(designer.value.formConfig)\n };\n };\n\n const getFieldWidgets = (widgetList = []) => {\n return widgetList.length\n ? getAllFieldWidgets(widgetList)\n : getAllFieldWidgets(designer.value.widgetList);\n };\n\n /**\n * 获取所有容器组件\n * @returns {*[]}\n */\n const getContainerWidgets = (widgetList = []) => {\n return widgetList.length\n ? getAllContainerWidgets(widgetList)\n : getAllContainerWidgets(designer.value.widgetList);\n };\n\n const getWidgetRef = (widgetName, showError = false) => {\n return formRef.value.getWidgetRef(widgetName, showError);\n };\n\n watch(\n locale,\n () => {\n initLocale(locale.value);\n },\n {\n immediate: true\n }\n );\n const [isLoading, setLoading] = useRef(false);\n\n /**\n * 字段值变化事件处理器\n */\n const fieldChangeEventHandler = () => {\n emitter.off$('fieldChange');\n emitter.on$('fieldChange', ({ fieldName, value }) => {\n console.log('fieldChange', fieldName, value);\n\n // 过滤掉错误值\n if (typeof fieldName !== 'undefined' && typeof value !== 'undefined') {\n set(formDataModel.value, fieldName, value);\n }\n });\n };\n\n onMounted(() => {\n designer.value.initDesigner();\n fieldChangeEventHandler();\n loadFieldListFromServer();\n });\n\n defineExpose({\n ...emitter,\n i18nt,\n isLoading,\n setLoading,\n getWidgetRef,\n getContainerWidgets,\n getFieldWidgets,\n getFormJson,\n setFormJson,\n setJsonImport\n });\n</script>\n\n<style lang=\"less\">\n .main-container {\n background: #fff;\n .ant-layout-sider {\n background: #fff;\n }\n :deep(aside) {\n /* 防止aside样式被外部样式覆盖!! */\n margin: 0;\n padding: 0;\n background: inherit;\n }\n .form-widget-main {\n padding: 0;\n position: relative;\n overflow-x: hidden;\n flex: 1 0 0;\n }\n .full-height {\n height: 100%;\n overflow-y: hidden;\n }\n .center-layout-container {\n min-width: 680px;\n border-left: 2px solid #ebeef5;\n border-right: 2px dotted #ebeef5;\n display: flex;\n flex-direction: column;\n }\n .form-widget-footer {\n flex: 0 0 50px;\n align-items: center;\n background: #fff;\n display: flex;\n justify-content: space-between;\n padding: 0 15px;\n }\n\n .main-header {\n border-bottom: 2px solid #ebeef5;\n background: #fff;\n padding: 0;\n\n height: 48px !important;\n line-height: 48px !important;\n min-width: 800px;\n }\n\n .container-scroll-bar {\n height: 100%;\n & > .form-widget-container {\n height: 100%;\n }\n }\n\n .toolbar-header {\n font-size: 14px;\n border-bottom: 1px dotted #cccccc;\n height: 42px !important;\n background: #fff;\n padding: 0;\n }\n\n .side-panel {\n width: 260px !important;\n overflow-y: hidden;\n }\n }\n\n div.main-title {\n font-size: 18px;\n color: #242424;\n display: flex;\n align-items: center;\n justify-items: center;\n\n img {\n cursor: pointer;\n width: 36px;\n height: 36px;\n }\n\n span.bold {\n font-size: 20px;\n font-weight: bold;\n margin: 0 6px 0 6px;\n }\n\n span.version-span {\n font-size: 14px;\n color: #101f1c;\n margin-left: 6px;\n }\n }\n\n .float-left {\n float: left;\n }\n\n .float-right {\n float: right;\n }\n\n div.external-link {\n display: flex;\n align-items: center;\n\n a {\n font-size: 13px;\n text-decoration: none;\n margin-right: 10px;\n color: #606266;\n }\n }\n</style>\n"],"names":["formRef","ref","i18nt","useI18n","localeStore","useLocaleStore","locale","storeToRefs","props","__props","emitter","useEmitter","context","useExecFunction","provide","fieldList","leftWidth","rightWidth","initLocale","designer","createDesigner","formConfig","computed","formDataModel","setJsonImport","importObj","isEmpty","error","message","loadFieldListFromServer","setFormJson","formJson","modifiedFlag","getFormJson","deepClone","getFieldWidgets","widgetList","getAllFieldWidgets","getContainerWidgets","getAllContainerWidgets","getWidgetRef","widgetName","showError","watch","isLoading","setLoading","useRef","fieldChangeEventHandler","fieldName","value","set","onMounted","__expose","_createBlock","_component_a_layout","_createVNode","_component_a_layout_sider","WidgetPanel","_component_a_layout_content","_component_a_layout_header","ToolbarPanel","saveJsonApi","globalDsv","$event","$slots","idx","slotName","_renderSlot","_ctx","_createElementVNode","_hoisted_1","VFormWidget","SettingPanel","_cache"],"mappings":"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"}
1
+ {"version":3,"file":"index.vue.js","sources":["../../../../src/components/form-designer/index.vue"],"sourcesContent":["<template>\n <a-layout class=\"main-container full-height\">\n <a-layout>\n <a-layout-sider :width=\"leftWidth\" class=\"side-panel\">\n <WidgetPanel />\n </a-layout-sider>\n\n <a-layout-content class=\"center-layout-container\">\n <a-layout-header class=\"toolbar-header\">\n <toolbar-panel\n :saveJsonApi=\"saveJsonApi\"\n :global-dsv=\"globalDsv\"\n v-model:leftWidth=\"leftWidth\"\n v-model:rightWidth=\"rightWidth\"\n ref=\"toolbarRef\"\n >\n <template v-for=\"(idx, slotName) in $slots\" #[slotName]>\n <slot :name=\"slotName\"></slot>\n </template>\n </toolbar-panel>\n </a-layout-header>\n <a-layout-content class=\"form-widget-main\">\n <div class=\"container-scroll-bar\">\n <VFormWidget />\n </div>\n </a-layout-content>\n </a-layout-content>\n <a-layout-sider :width=\"rightWidth\">\n <setting-panel v-model:selected-widget=\"designer.selectedWidget\" />\n </a-layout-sider>\n </a-layout>\n </a-layout>\n</template>\n\n<script lang=\"ts\" setup>\n import WidgetPanel from './widget-panel/index.vue';\n import ToolbarPanel from './toolbar-panel/index.vue';\n import SettingPanel from './setting-panel/index.vue';\n import VFormWidget from './form-widget/index.vue';\n import { createDesigner } from '../designer';\n import { useLocaleStore } from '@kp-ui/i18n';\n import { deepClone, getAllContainerWidgets, getAllFieldWidgets } from '@/utils/util';\n import { isEmpty, set } from 'lodash-es';\n import { ref, provide, watch, onMounted, computed } from 'vue';\n import { WidgetTree } from '@/types/schema';\n import { useI18n } from '@/utils/i18n';\n import { message } from 'ant-design-vue';\n import { storeToRefs } from 'pinia';\n import { useExecFunction, useRef } from 'tmgc2-share';\n import { useEmitter } from '@/utils/useEmitter';\n import { LayoutTypeEnum } from '@/constants/LayoutTypeEnum';\n import { getLocat } from '@kp-ui/tool';\n defineOptions({\n name: 'VFormDesigner',\n componentName: 'VFormDesigner'\n });\n\n const { i18nt } = useI18n();\n const localeStore = useLocaleStore();\n const { locale } = storeToRefs(localeStore);\n\n const props = withDefaults(\n defineProps<{\n saveJsonApi: (json: any) => Promise<void>;\n fieldListApi: () => Promise<any[]>;\n designerConfig?: {\n eventCollapse?: boolean;\n widgetNameReadonly?: boolean;\n clearDesignerButton?: boolean;\n previewFormButton?: boolean;\n importJsonButton?: boolean;\n exportJsonButton?: boolean;\n };\n globalDsv?: Record<string, any>;\n }>(),\n {\n designerConfig: () => ({\n eventCollapse: true, //是否显示组件事件属性折叠面板\n widgetNameReadonly: false, //禁止修改组件名称\n clearDesignerButton: true, //是否显示清空设计器按钮\n previewFormButton: true, //是否显示预览表单按钮\n importJsonButton: true, //是否显示导入JSON按钮\n exportJsonButton: true //是否显示导出JSON器按钮\n }),\n globalDsv: () => ({})\n }\n );\n const emitter = useEmitter();\n const { context } = useExecFunction();\n\n provide('serverFieldList', () => fieldList.value);\n provide('designState', true); // 设计态标识\n const leftWidth = ref(270);\n const rightWidth = ref(300);\n const fieldList = ref<any[]>([]);\n const { initLocale } = useI18n();\n const designer = ref(createDesigner(context));\n const formConfig = computed(() => designer.value.formConfig);\n // 状态变量\n const formDataModel = ref<Record<string, any>>({});\n\n const layoutType = computed(() => {\n const { type = LayoutTypeEnum.PC } = getLocat();\n return type;\n });\n\n provide('formData', formDataModel);\n provide('formConfig', formConfig);\n provide('designer', designer);\n provide('getDesignerConfig', () => props.designerConfig);\n provide('layoutType', layoutType);\n\n designer.value.changeLayoutType(layoutType.value);\n\n const setJsonImport = (importObj: WidgetTree) => {\n if (isEmpty(importObj)) return;\n try {\n if (!importObj || !importObj.formConfig) {\n throw new Error(i18nt('designer.hint.invalidJsonFormat'));\n }\n designer.value.loadFormJson(importObj);\n designer.value.emitHistoryChange();\n designer.value.emitEvent('form-json-imported', []);\n } catch (error) {\n message.error(error + '');\n }\n };\n\n const loadFieldListFromServer = async () => {\n if (!props.fieldListApi) {\n return;\n }\n fieldList.value = await props.fieldListApi();\n };\n\n const setFormJson = (formJson: WidgetTree) => {\n if (isEmpty(formJson)) return;\n try {\n let modifiedFlag = false;\n if (typeof formJson === 'string') {\n modifiedFlag = designer.value.loadFormJson(JSON.parse(formJson));\n } else if (formJson.constructor === Object) {\n modifiedFlag = designer.value.loadFormJson(formJson);\n }\n if (modifiedFlag) {\n designer.value.emitHistoryChange();\n }\n } catch (error) {\n message.error(error + '');\n }\n };\n\n const getFormJson = (): WidgetTree => {\n return {\n widgetList: deepClone(designer.value.widgetList),\n formConfig: deepClone(designer.value.formConfig)\n };\n };\n\n const getFieldWidgets = (widgetList = []) => {\n return widgetList.length\n ? getAllFieldWidgets(widgetList)\n : getAllFieldWidgets(designer.value.widgetList);\n };\n\n /**\n * 获取所有容器组件\n * @returns {*[]}\n */\n const getContainerWidgets = (widgetList = []) => {\n return widgetList.length\n ? getAllContainerWidgets(widgetList)\n : getAllContainerWidgets(designer.value.widgetList);\n };\n\n watch(\n locale,\n () => {\n initLocale(locale.value);\n },\n {\n immediate: true\n }\n );\n const [isLoading, setLoading] = useRef(false);\n\n /**\n * 字段值变化事件处理器\n */\n const fieldChangeEventHandler = () => {\n emitter.off$('fieldChange');\n emitter.on$('fieldChange', ({ fieldName, value }) => {\n console.log('fieldChange', fieldName, value);\n\n // 过滤掉错误值\n if (typeof fieldName !== 'undefined' && typeof value !== 'undefined') {\n set(formDataModel.value, fieldName, value);\n }\n });\n };\n\n onMounted(() => {\n fieldChangeEventHandler();\n loadFieldListFromServer();\n });\n\n defineExpose({\n ...emitter,\n i18nt,\n isLoading,\n setLoading,\n getContainerWidgets,\n getFieldWidgets,\n getFormJson,\n setFormJson,\n setJsonImport\n });\n</script>\n\n<style lang=\"less\">\n .main-container {\n background: #fff;\n .ant-layout-sider {\n background: #fff;\n }\n :deep(aside) {\n /* 防止aside样式被外部样式覆盖!! */\n margin: 0;\n padding: 0;\n background: inherit;\n }\n .form-widget-main {\n padding: 0;\n position: relative;\n overflow-x: hidden;\n flex: 1 0 0;\n }\n .full-height {\n height: 100%;\n overflow-y: hidden;\n }\n .center-layout-container {\n min-width: 680px;\n border-left: 2px solid #ebeef5;\n border-right: 2px dotted #ebeef5;\n display: flex;\n flex-direction: column;\n }\n .form-widget-footer {\n flex: 0 0 50px;\n align-items: center;\n background: #fff;\n display: flex;\n justify-content: space-between;\n padding: 0 15px;\n }\n\n .main-header {\n border-bottom: 2px solid #ebeef5;\n background: #fff;\n padding: 0;\n\n height: 48px !important;\n line-height: 48px !important;\n min-width: 800px;\n }\n\n .container-scroll-bar {\n height: 100%;\n & > .form-widget-container {\n height: 100%;\n }\n }\n\n .toolbar-header {\n font-size: 14px;\n border-bottom: 1px solid rgba(5, 5, 5, 0.06);\n height: 42px !important;\n background: #fff;\n padding: 0;\n }\n\n .side-panel {\n width: 260px !important;\n overflow-y: hidden;\n }\n }\n\n div.main-title {\n font-size: 18px;\n color: #242424;\n display: flex;\n align-items: center;\n justify-items: center;\n\n img {\n cursor: pointer;\n width: 36px;\n height: 36px;\n }\n\n span.bold {\n font-size: 20px;\n font-weight: bold;\n margin: 0 6px 0 6px;\n }\n\n span.version-span {\n font-size: 14px;\n color: #101f1c;\n margin-left: 6px;\n }\n }\n\n .float-left {\n float: left;\n }\n\n .float-right {\n float: right;\n }\n</style>\n"],"names":["i18nt","useI18n","localeStore","useLocaleStore","locale","storeToRefs","props","__props","emitter","useEmitter","context","useExecFunction","provide","fieldList","leftWidth","ref","rightWidth","initLocale","designer","createDesigner","formConfig","computed","formDataModel","layoutType","type","LayoutTypeEnum","getLocat","setJsonImport","importObj","isEmpty","error","message","loadFieldListFromServer","setFormJson","formJson","modifiedFlag","getFormJson","deepClone","getFieldWidgets","widgetList","getAllFieldWidgets","getContainerWidgets","getAllContainerWidgets","watch","isLoading","setLoading","useRef","fieldChangeEventHandler","fieldName","value","set","onMounted","__expose","_createBlock","_component_a_layout","_createVNode","_component_a_layout_sider","WidgetPanel","_component_a_layout_content","_component_a_layout_header","ToolbarPanel","saveJsonApi","globalDsv","$event","$slots","idx","slotName","_renderSlot","_ctx","_createElementVNode","_hoisted_1","VFormWidget","SettingPanel","_cache"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import o from "./form-setting.vue2.js";
2
2
  /* empty css */
3
3
  import t from "../../../../_virtual/_plugin-vue_export-helper.js";
4
- const e = /* @__PURE__ */ t(o, [["__scopeId", "data-v-4d5d78ae"]]);
4
+ const e = /* @__PURE__ */ t(o, [["__scopeId", "data-v-c232c01e"]]);
5
5
  export {
6
6
  e as default
7
7
  };
@@ -5,7 +5,7 @@ import ae from "../../public/methoad-item.vue.js";
5
5
  import se from "./property-editor/container-vf-dialog/okButtonHidden-editor.vue2.js";
6
6
  import ie from "./property-editor/container-vf-dialog/cancelButtonHidden-editor.vue2.js";
7
7
  import { TpfCodeEditor as re } from "tmgc2-share";
8
- import { useDesigner as ue } from "../form-widget/useFormDesigner.js";
8
+ import { useDesigner as ue } from "../../../hooks/useDesigner.js";
9
9
  const _e = /* @__PURE__ */ Y({
10
10
  name: "form-setting",
11
11
  __name: "form-setting",
@@ -1 +1 @@
1
- {"version":3,"file":"form-setting.vue2.js","sources":["../../../../../src/components/form-designer/setting-panel/form-setting.vue"],"sourcesContent":["<template>\n <a-form\n :model=\"formConfig\"\n labelAlign=\"left\"\n label-width=\"120px\"\n class=\"setting-form\"\n @submit.prevent\n >\n <a-collapse v-model:activeKey=\"formActiveCollapseNames\" class=\"setting-collapse\">\n <a-collapse-panel key=\"1\" :header=\"i18nt('designer.setting.基本属性')\">\n <a-form-item :label=\"i18nt('designer.setting.formSize')\">\n <a-select\n v-model:value=\"formConfig.size\"\n :options=\"formSizes\"\n allowClear\n style=\"width: 120px\"\n />\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.labelPosition')\">\n <a-radio-group\n v-model:value=\"formConfig.labelPosition\"\n class=\"radio-group-custom\"\n >\n <a-radio-button value=\"horizontal\">\n {{ i18nt('designer.setting.horizontal') }}\n </a-radio-button>\n <a-radio-button value=\"vertical\">\n {{ i18nt('designer.setting.vertical') }}\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.labelAlign')\">\n <a-radio-group v-model:value=\"formConfig.labelAlign\" class=\"radio-group-custom\">\n <a-radio-button value=\"left\">\n {{ i18nt('designer.setting.leftAlign') }}\n </a-radio-button>\n <a-radio-button value=\"right\">\n {{ i18nt('designer.setting.rightAlign') }}\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.labelWidth')\">\n <a-input-number\n v-model:value=\"formConfig.labelWidth\"\n :min=\"0\"\n style=\"width: 100%\"\n allowClear\n />\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.formCss')\">\n <a-button\n shape=\"round\"\n @click=\"\n handleEditEvent({\n eventName: 'cssCode',\n isShowEventHeader: false,\n mode: 'css',\n title: i18nt('designer.setting.formCss')\n })\n \"\n :class=\"[{ 'button-text-highlight': !!formConfig.cssCode }]\"\n >\n {{ i18nt('designer.setting.addCss') }}\n </a-button>\n </a-form-item>\n <!-- -->\n <a-form-item :label=\"i18nt('designer.setting.customClass')\">\n <a-select\n v-model:value=\"formConfig.customClass\"\n allowClear\n mode=\"tags\"\n @change=\"extractCssClass\"\n :options=\"cssClassList\"\n />\n </a-form-item>\n <!-- 表单全局函数 -->\n <a-form-item :label=\"i18nt('designer.setting.globalFunctions')\">\n <a-button\n :class=\"[{ 'button-text-highlight': !!formConfig.functions }]\"\n shape=\"round\"\n @click=\"\n handleEditEvent({\n eventName: 'functions',\n isShowEventHeader: false,\n mode: 'javascript',\n title: i18nt('designer.setting.globalFunctions')\n })\n \"\n >\n {{ i18nt('designer.setting.addEventHandler') }}\n </a-button>\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.cancelButtonLabel')\">\n <a-input type=\"text\" v-model:value=\"formConfig.cancelButtonLabel\" />\n </a-form-item>\n <!-- 隐藏取消按钮 -->\n <CancelButtonHidden :optionModel=\"formConfig\" />\n <a-form-item :label=\"i18nt('designer.setting.okButtonLabel')\">\n <a-input type=\"text\" v-model:value=\"formConfig.okButtonLabel\" />\n </a-form-item>\n <OkButtonHiddenEditor :optionModel=\"formConfig\" />\n </a-collapse-panel>\n\n <a-collapse-panel\n v-if=\"showEventCollapse()\"\n key=\"2\"\n class=\"eventPanel\"\n :header=\"i18nt('designer.setting.事件属性')\"\n >\n <MethodItem\n @click-item=\"handleEditEvent\"\n v-for=\"(value, key) in eventParamsMap\"\n :key=\"key\"\n :event-name=\"key\"\n v-model:value=\"formConfig[key]\"\n :get-form-event-handled=\"getFormEventHandled\"\n :event-params-map=\"eventParamsMap\"\n :form-config=\"formConfig\"\n />\n </a-collapse-panel>\n </a-collapse>\n </a-form>\n\n <a-config-provider componentSize=\"middle\">\n <TpfCodeEditor\n :isShowEventHeader=\"isShowEventHeader\"\n ref=\"codeEditorRef\"\n :event-header=\"eventHeader\"\n v-model=\"formEventHandlerCode\"\n :mode=\"mode\"\n :readonly=\"false\"\n :title=\"title\"\n @set-code=\"saveFormEventHandler\"\n /></a-config-provider>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref, reactive, onMounted, inject, Ref } from 'vue';\n import { useI18n } from '@/utils/i18n';\n import { deepClone, insertCustomCssToHead } from '@/utils/util';\n import MethodItem from '@/components/public/methoad-item.vue';\n import OkButtonHiddenEditor from '@/components/form-designer/setting-panel/property-editor/container-vf-dialog/okButtonHidden-editor.vue';\n import CancelButtonHidden from '@/components/form-designer/setting-panel/property-editor/container-vf-dialog/cancelButtonHidden-editor.vue';\n import { ILanguageMode, TpfCodeEditor } from 'tmgc2-share';\n import { FormDesigner } from '@/types/designer';\n import { useDesigner } from '../form-widget/useFormDesigner';\n // 定义类型\n interface FormSize {\n label: string;\n value: string;\n }\n\n interface EventParams {\n [key: string]: string;\n }\n\n const { formConfig } = useDesigner();\n interface EditEventParams {\n eventName: string;\n mode: ILanguageMode;\n isShowEventHeader: boolean;\n title: string;\n eventHeader?: string;\n }\n\n // 使用i18n\n const { i18nt } = useI18n();\n const designer = inject<Ref<FormDesigner>>('designer', ref({} as FormDesigner));\n // 注入依赖\n const getDesignerConfig = inject<() => any>('getDesignerConfig');\n const designerConfig = getDesignerConfig ? getDesignerConfig() : {};\n\n // 响应式状态\n const mode = ref<ILanguageMode>('javascript');\n const eventName = ref('');\n const title = ref('');\n const isShowEventHeader = ref(false);\n const eventHeader = ref('');\n const formActiveCollapseNames = ref(['1', '2']);\n const formCssCode = ref('');\n const cssClassList = ref<string[]>([]);\n const formEventHandlerCode = ref('');\n\n // 引用\n const codeEditorRef = ref<any>(null);\n\n // 常量数据\n const formSizes: FormSize[] = [\n { label: 'default', value: 'middle' },\n { label: 'large', value: 'large' },\n { label: 'small', value: 'small' }\n ];\n\n const eventParamsMap: EventParams = {\n onFormCreated: 'onFormCreated() {',\n onFormMounted: 'onFormMounted() {',\n onOkButtonClick: 'onOkButtonClick() {',\n onCancelButtonClick: 'onCancelButtonClick() {',\n onFormEnterKey: 'onFormEnterKey() {',\n onFormDataChange:\n 'onFormDataChange(fieldName, newValue, oldValue, formModel, subFormName, subFormRowIndex) {'\n //'onFormValidate': 'onFormValidate() {',\n };\n\n // 方法\n const saveFormEventHandler = (value: string) => {\n formConfig.value[eventName.value] = value;\n };\n\n const handleEditEvent = (params: EditEventParams) => {\n eventName.value = params.eventName;\n mode.value = params.mode;\n isShowEventHeader.value = params.isShowEventHeader;\n formEventHandlerCode.value = formConfig.value[params.eventName];\n title.value = params.title || i18nt('designer.setting.editWidgetEventHandler');\n eventHeader.value = params.eventHeader || '';\n codeEditorRef.value.open();\n };\n\n const getFormEventHandled = (eventName: string) => {\n return !!formConfig.value[eventName] && formConfig.value[eventName].length > 0;\n };\n\n const showEventCollapse = () => {\n if (designerConfig['eventCollapse'] === undefined) {\n return true;\n }\n return !!designerConfig['eventCollapse'];\n };\n\n const extractCssClass = () => {\n const regExp = /\\..*{/g;\n const result = formCssCode.value.match(regExp);\n const cssNameArray: string[] = [];\n\n if (!!result && result.length > 0) {\n result.forEach(rItem => {\n const classArray = rItem.split(','); // 切分逗号分割的多个class\n if (classArray.length > 0) {\n classArray.forEach(cItem => {\n const caItem = cItem.trim();\n if (caItem.indexOf('.', 1) !== -1) {\n // 查找第二个.位置\n const newClass = caItem.substring(\n caItem.indexOf('.') + 1,\n caItem.indexOf('.', 1)\n ); // 仅截取第一、二个.号之间的class\n if (!!newClass) {\n cssNameArray.push(newClass.trim());\n }\n } else if (caItem.indexOf(' ') !== -1) {\n // 查找第一个空格位置\n const newClass = caItem.substring(\n caItem.indexOf('.') + 1,\n caItem.indexOf(' ')\n ); // 仅截取第一、二个.号之间的class\n if (!!newClass) {\n cssNameArray.push(newClass.trim());\n }\n } else {\n if (caItem.indexOf('{') !== -1) {\n // 查找第一个{位置\n const newClass = caItem.substring(\n caItem.indexOf('.') + 1,\n caItem.indexOf('{')\n );\n cssNameArray.push(newClass.trim());\n } else {\n const newClass = caItem.substring(caItem.indexOf('.') + 1);\n cssNameArray.push(newClass.trim());\n }\n }\n });\n }\n });\n }\n\n // cssClassList.value = Array.from(new Set(cssNameArray)); // 数组去重\n };\n\n // 生命周期钩子\n onMounted(() => {\n // 导入表单JSON后需要重新加载自定义CSS样式\n designer.value.handleEvent('form-json-imported', () => {\n formCssCode.value = formConfig.value.cssCode;\n insertCustomCssToHead(formCssCode.value);\n extractCssClass();\n designer.value.emitEvent('form-css-updated', deepClone(cssClassList.value));\n });\n\n /* SettingPanel和FormWidget为兄弟组件, 在FormWidget加载formConfig时,\n 此处SettingPanel可能无法获取到formConfig.cssCode, 故加个延时函数! */\n setTimeout(() => {\n formCssCode.value = formConfig.value.cssCode;\n insertCustomCssToHead(formCssCode.value);\n extractCssClass();\n designer.value.emitEvent('form-css-updated', deepClone(cssClassList.value));\n }, 1200);\n });\n\n // 组件名称定义\n defineOptions({\n name: 'form-setting'\n });\n</script>\n\n<style lang=\"less\" scoped>\n .eventPanel {\n :deep(.ant-form-item-row) {\n flex: 1;\n .ant-form-item-control-input-content .ant-btn {\n border: 1px solid #eee;\n }\n .ant-form-item-label {\n flex: 1;\n }\n }\n :deep(.ant-col.ant-form-item-control) {\n flex: 0 0 80px;\n }\n }\n</style>\n"],"names":["formConfig","useDesigner","i18nt","useI18n","designer","inject","ref","getDesignerConfig","designerConfig","mode","eventName","title","isShowEventHeader","eventHeader","formActiveCollapseNames","formCssCode","cssClassList","formEventHandlerCode","codeEditorRef","formSizes","eventParamsMap","saveFormEventHandler","value","handleEditEvent","params","getFormEventHandled","showEventCollapse","extractCssClass","regExp","result","cssNameArray","rItem","classArray","cItem","caItem","newClass","onMounted","insertCustomCssToHead","deepClone","_createVNode","_component_a_form","_unref","_component_a_collapse","$event","_component_a_collapse_panel","_component_a_form_item","_component_a_select","_cache","_component_a_radio_group","_component_a_radio_button","_component_a_input_number","_component_a_button","_normalizeClass","_component_a_input","CancelButtonHidden","OkButtonHiddenEditor","_createBlock","_openBlock","_createElementBlock","_Fragment","_renderList","key","MethodItem","_component_a_config_provider","TpfCodeEditor"],"mappings":"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"}
1
+ {"version":3,"file":"form-setting.vue2.js","sources":["../../../../../src/components/form-designer/setting-panel/form-setting.vue"],"sourcesContent":["<template>\n <a-form\n :model=\"formConfig\"\n labelAlign=\"left\"\n label-width=\"120px\"\n class=\"setting-form\"\n @submit.prevent\n >\n <a-collapse v-model:activeKey=\"formActiveCollapseNames\" class=\"setting-collapse\">\n <a-collapse-panel key=\"1\" :header=\"i18nt('designer.setting.基本属性')\">\n <a-form-item :label=\"i18nt('designer.setting.formSize')\">\n <a-select\n v-model:value=\"formConfig.size\"\n :options=\"formSizes\"\n allowClear\n style=\"width: 120px\"\n />\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.labelPosition')\">\n <a-radio-group\n v-model:value=\"formConfig.labelPosition\"\n class=\"radio-group-custom\"\n >\n <a-radio-button value=\"horizontal\">\n {{ i18nt('designer.setting.horizontal') }}\n </a-radio-button>\n <a-radio-button value=\"vertical\">\n {{ i18nt('designer.setting.vertical') }}\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.labelAlign')\">\n <a-radio-group v-model:value=\"formConfig.labelAlign\" class=\"radio-group-custom\">\n <a-radio-button value=\"left\">\n {{ i18nt('designer.setting.leftAlign') }}\n </a-radio-button>\n <a-radio-button value=\"right\">\n {{ i18nt('designer.setting.rightAlign') }}\n </a-radio-button>\n </a-radio-group>\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.labelWidth')\">\n <a-input-number\n v-model:value=\"formConfig.labelWidth\"\n :min=\"0\"\n style=\"width: 100%\"\n allowClear\n />\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.formCss')\">\n <a-button\n shape=\"round\"\n @click=\"\n handleEditEvent({\n eventName: 'cssCode',\n isShowEventHeader: false,\n mode: 'css',\n title: i18nt('designer.setting.formCss')\n })\n \"\n :class=\"[{ 'button-text-highlight': !!formConfig.cssCode }]\"\n >\n {{ i18nt('designer.setting.addCss') }}\n </a-button>\n </a-form-item>\n <!-- -->\n <a-form-item :label=\"i18nt('designer.setting.customClass')\">\n <a-select\n v-model:value=\"formConfig.customClass\"\n allowClear\n mode=\"tags\"\n @change=\"extractCssClass\"\n :options=\"cssClassList\"\n />\n </a-form-item>\n <!-- 表单全局函数 -->\n <a-form-item :label=\"i18nt('designer.setting.globalFunctions')\">\n <a-button\n :class=\"[{ 'button-text-highlight': !!formConfig.functions }]\"\n shape=\"round\"\n @click=\"\n handleEditEvent({\n eventName: 'functions',\n isShowEventHeader: false,\n mode: 'javascript',\n title: i18nt('designer.setting.globalFunctions')\n })\n \"\n >\n {{ i18nt('designer.setting.addEventHandler') }}\n </a-button>\n </a-form-item>\n <a-form-item :label=\"i18nt('designer.setting.cancelButtonLabel')\">\n <a-input type=\"text\" v-model:value=\"formConfig.cancelButtonLabel\" />\n </a-form-item>\n <!-- 隐藏取消按钮 -->\n <CancelButtonHidden :optionModel=\"formConfig\" />\n <a-form-item :label=\"i18nt('designer.setting.okButtonLabel')\">\n <a-input type=\"text\" v-model:value=\"formConfig.okButtonLabel\" />\n </a-form-item>\n <OkButtonHiddenEditor :optionModel=\"formConfig\" />\n </a-collapse-panel>\n\n <a-collapse-panel\n v-if=\"showEventCollapse()\"\n key=\"2\"\n class=\"eventPanel\"\n :header=\"i18nt('designer.setting.事件属性')\"\n >\n <MethodItem\n @click-item=\"handleEditEvent\"\n v-for=\"(value, key) in eventParamsMap\"\n :key=\"key\"\n :event-name=\"key\"\n v-model:value=\"formConfig[key]\"\n :get-form-event-handled=\"getFormEventHandled\"\n :event-params-map=\"eventParamsMap\"\n :form-config=\"formConfig\"\n />\n </a-collapse-panel>\n </a-collapse>\n </a-form>\n\n <a-config-provider componentSize=\"middle\">\n <TpfCodeEditor\n :isShowEventHeader=\"isShowEventHeader\"\n ref=\"codeEditorRef\"\n :event-header=\"eventHeader\"\n v-model=\"formEventHandlerCode\"\n :mode=\"mode\"\n :readonly=\"false\"\n :title=\"title\"\n @set-code=\"saveFormEventHandler\"\n /></a-config-provider>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref, reactive, onMounted, inject, Ref } from 'vue';\n import { useI18n } from '@/utils/i18n';\n import { deepClone, insertCustomCssToHead } from '@/utils/util';\n import MethodItem from '@/components/public/methoad-item.vue';\n import OkButtonHiddenEditor from '@/components/form-designer/setting-panel/property-editor/container-vf-dialog/okButtonHidden-editor.vue';\n import CancelButtonHidden from '@/components/form-designer/setting-panel/property-editor/container-vf-dialog/cancelButtonHidden-editor.vue';\n import { ILanguageMode, TpfCodeEditor } from 'tmgc2-share';\n import { FormDesigner } from '@/types/designer';\n import { useDesigner } from '../../../hooks/useDesigner';\n // 定义类型\n interface FormSize {\n label: string;\n value: string;\n }\n\n interface EventParams {\n [key: string]: string;\n }\n\n const { formConfig } = useDesigner();\n interface EditEventParams {\n eventName: string;\n mode: ILanguageMode;\n isShowEventHeader: boolean;\n title: string;\n eventHeader?: string;\n }\n\n // 使用i18n\n const { i18nt } = useI18n();\n const designer = inject<Ref<FormDesigner>>('designer', ref({} as FormDesigner));\n // 注入依赖\n const getDesignerConfig = inject<() => any>('getDesignerConfig');\n const designerConfig = getDesignerConfig ? getDesignerConfig() : {};\n\n // 响应式状态\n const mode = ref<ILanguageMode>('javascript');\n const eventName = ref('');\n const title = ref('');\n const isShowEventHeader = ref(false);\n const eventHeader = ref('');\n const formActiveCollapseNames = ref(['1', '2']);\n const formCssCode = ref('');\n const cssClassList = ref<string[]>([]);\n const formEventHandlerCode = ref('');\n\n // 引用\n const codeEditorRef = ref<any>(null);\n\n // 常量数据\n const formSizes: FormSize[] = [\n { label: 'default', value: 'middle' },\n { label: 'large', value: 'large' },\n { label: 'small', value: 'small' }\n ];\n\n const eventParamsMap: EventParams = {\n onFormCreated: 'onFormCreated() {',\n onFormMounted: 'onFormMounted() {',\n onOkButtonClick: 'onOkButtonClick() {',\n onCancelButtonClick: 'onCancelButtonClick() {',\n onFormEnterKey: 'onFormEnterKey() {',\n onFormDataChange:\n 'onFormDataChange(fieldName, newValue, oldValue, formModel, subFormName, subFormRowIndex) {'\n //'onFormValidate': 'onFormValidate() {',\n };\n\n // 方法\n const saveFormEventHandler = (value: string) => {\n formConfig.value[eventName.value] = value;\n };\n\n const handleEditEvent = (params: EditEventParams) => {\n eventName.value = params.eventName;\n mode.value = params.mode;\n isShowEventHeader.value = params.isShowEventHeader;\n formEventHandlerCode.value = formConfig.value[params.eventName];\n title.value = params.title || i18nt('designer.setting.editWidgetEventHandler');\n eventHeader.value = params.eventHeader || '';\n codeEditorRef.value.open();\n };\n\n const getFormEventHandled = (eventName: string) => {\n return !!formConfig.value[eventName] && formConfig.value[eventName].length > 0;\n };\n\n const showEventCollapse = () => {\n if (designerConfig['eventCollapse'] === undefined) {\n return true;\n }\n return !!designerConfig['eventCollapse'];\n };\n\n const extractCssClass = () => {\n const regExp = /\\..*{/g;\n const result = formCssCode.value.match(regExp);\n const cssNameArray: string[] = [];\n\n if (!!result && result.length > 0) {\n result.forEach(rItem => {\n const classArray = rItem.split(','); // 切分逗号分割的多个class\n if (classArray.length > 0) {\n classArray.forEach(cItem => {\n const caItem = cItem.trim();\n if (caItem.indexOf('.', 1) !== -1) {\n // 查找第二个.位置\n const newClass = caItem.substring(\n caItem.indexOf('.') + 1,\n caItem.indexOf('.', 1)\n ); // 仅截取第一、二个.号之间的class\n if (!!newClass) {\n cssNameArray.push(newClass.trim());\n }\n } else if (caItem.indexOf(' ') !== -1) {\n // 查找第一个空格位置\n const newClass = caItem.substring(\n caItem.indexOf('.') + 1,\n caItem.indexOf(' ')\n ); // 仅截取第一、二个.号之间的class\n if (!!newClass) {\n cssNameArray.push(newClass.trim());\n }\n } else {\n if (caItem.indexOf('{') !== -1) {\n // 查找第一个{位置\n const newClass = caItem.substring(\n caItem.indexOf('.') + 1,\n caItem.indexOf('{')\n );\n cssNameArray.push(newClass.trim());\n } else {\n const newClass = caItem.substring(caItem.indexOf('.') + 1);\n cssNameArray.push(newClass.trim());\n }\n }\n });\n }\n });\n }\n\n // cssClassList.value = Array.from(new Set(cssNameArray)); // 数组去重\n };\n\n // 生命周期钩子\n onMounted(() => {\n // 导入表单JSON后需要重新加载自定义CSS样式\n designer.value.handleEvent('form-json-imported', () => {\n formCssCode.value = formConfig.value.cssCode;\n insertCustomCssToHead(formCssCode.value);\n extractCssClass();\n designer.value.emitEvent('form-css-updated', deepClone(cssClassList.value));\n });\n\n /* SettingPanel和FormWidget为兄弟组件, 在FormWidget加载formConfig时,\n 此处SettingPanel可能无法获取到formConfig.cssCode, 故加个延时函数! */\n setTimeout(() => {\n formCssCode.value = formConfig.value.cssCode;\n insertCustomCssToHead(formCssCode.value);\n extractCssClass();\n designer.value.emitEvent('form-css-updated', deepClone(cssClassList.value));\n }, 1200);\n });\n\n // 组件名称定义\n defineOptions({\n name: 'form-setting'\n });\n</script>\n\n<style lang=\"less\" scoped>\n .eventPanel {\n :deep(.ant-form-item-row) {\n flex: 1;\n .ant-form-item-control-input-content .ant-btn {\n border: 1px solid #eee;\n }\n .ant-form-item-label {\n flex: 1;\n }\n }\n :deep(.ant-col.ant-form-item-control) {\n flex: 0 0 80px;\n }\n }\n</style>\n"],"names":["formConfig","useDesigner","i18nt","useI18n","designer","inject","ref","getDesignerConfig","designerConfig","mode","eventName","title","isShowEventHeader","eventHeader","formActiveCollapseNames","formCssCode","cssClassList","formEventHandlerCode","codeEditorRef","formSizes","eventParamsMap","saveFormEventHandler","value","handleEditEvent","params","getFormEventHandled","showEventCollapse","extractCssClass","regExp","result","cssNameArray","rItem","classArray","cItem","caItem","newClass","onMounted","insertCustomCssToHead","deepClone","_createVNode","_component_a_form","_unref","_component_a_collapse","$event","_component_a_collapse_panel","_component_a_form_item","_component_a_select","_cache","_component_a_radio_group","_component_a_radio_button","_component_a_input_number","_component_a_button","_normalizeClass","_component_a_input","CancelButtonHidden","OkButtonHiddenEditor","_createBlock","_openBlock","_createElementBlock","_Fragment","_renderList","key","MethodItem","_component_a_config_provider","TpfCodeEditor"],"mappings":";;;;;;;;;;;;AA4JI,UAAM,EAAE,YAAAA,EAAA,IAAeC,GAAA,GAUjB,EAAE,OAAAC,EAAA,IAAUC,GAAA,GACZC,IAAWC,EAA0B,YAAYC,EAAI,CAAA,CAAkB,CAAC,GAExEC,IAAoBF,EAAkB,mBAAmB,GACzDG,IAAiBD,IAAoBA,EAAA,IAAsB,CAAA,GAG3DE,IAAOH,EAAmB,YAAY,GACtCI,IAAYJ,EAAI,EAAE,GAClBK,IAAQL,EAAI,EAAE,GACdM,IAAoBN,EAAI,EAAK,GAC7BO,IAAcP,EAAI,EAAE,GACpBQ,IAA0BR,EAAI,CAAC,KAAK,GAAG,CAAC,GACxCS,IAAcT,EAAI,EAAE,GACpBU,IAAeV,EAAc,EAAE,GAC/BW,IAAuBX,EAAI,EAAE,GAG7BY,IAAgBZ,EAAS,IAAI,GAG7Ba,IAAwB;AAAA,MAC1B,EAAE,OAAO,WAAW,OAAO,SAAA;AAAA,MAC3B,EAAE,OAAO,SAAS,OAAO,QAAA;AAAA,MACzB,EAAE,OAAO,SAAS,OAAO,QAAA;AAAA,IAAQ,GAG/BC,IAA8B;AAAA,MAChC,eAAe;AAAA,MACf,eAAe;AAAA,MACf,iBAAiB;AAAA,MACjB,qBAAqB;AAAA,MACrB,gBAAgB;AAAA,MAChB,kBACI;AAAA;AAAA,IAAA,GAKFC,IAAuB,CAACC,MAAkB;AAC5C,MAAAtB,EAAW,MAAMU,EAAU,KAAK,IAAIY;AAAA,IACxC,GAEMC,IAAkB,CAACC,MAA4B;AACjD,MAAAd,EAAU,QAAQc,EAAO,WACzBf,EAAK,QAAQe,EAAO,MACpBZ,EAAkB,QAAQY,EAAO,mBACjCP,EAAqB,QAAQjB,EAAW,MAAMwB,EAAO,SAAS,GAC9Db,EAAM,QAAQa,EAAO,SAAStB,EAAM,yCAAyC,GAC7EW,EAAY,QAAQW,EAAO,eAAe,IAC1CN,EAAc,MAAM,KAAA;AAAA,IACxB,GAEMO,IAAsB,CAACf,MAClB,CAAC,CAACV,EAAW,MAAMU,CAAS,KAAKV,EAAW,MAAMU,CAAS,EAAE,SAAS,GAG3EgB,IAAoB,MAClBlB,EAAe,kBAAqB,SAC7B,KAEJ,CAAC,CAACA,EAAe,eAGtBmB,IAAkB,MAAM;AAC1B,YAAMC,IAAS,UACTC,IAASd,EAAY,MAAM,MAAMa,CAAM,GACvCE,IAAyB,CAAA;AAE/B,MAAMD,KAAUA,EAAO,SAAS,KAC5BA,EAAO,QAAQ,CAAAE,MAAS;AACpB,cAAMC,IAAaD,EAAM,MAAM,GAAG;AAClC,QAAIC,EAAW,SAAS,KACpBA,EAAW,QAAQ,CAAAC,MAAS;AACxB,gBAAMC,IAASD,EAAM,KAAA;AACrB,cAAIC,EAAO,QAAQ,KAAK,CAAC,MAAM,IAAI;AAE/B,kBAAMC,IAAWD,EAAO;AAAA,cACpBA,EAAO,QAAQ,GAAG,IAAI;AAAA,cACtBA,EAAO,QAAQ,KAAK,CAAC;AAAA,YAAA;AAEzB,YAAMC,KACFL,EAAa,KAAKK,EAAS,MAAM;AAAA,UAEzC,WAAWD,EAAO,QAAQ,GAAG,MAAM,IAAI;AAEnC,kBAAMC,IAAWD,EAAO;AAAA,cACpBA,EAAO,QAAQ,GAAG,IAAI;AAAA,cACtBA,EAAO,QAAQ,GAAG;AAAA,YAAA;AAEtB,YAAMC,KACFL,EAAa,KAAKK,EAAS,MAAM;AAAA,UAEzC,WACQD,EAAO,QAAQ,GAAG,MAAM,IAAI;AAE5B,kBAAMC,IAAWD,EAAO;AAAA,cACpBA,EAAO,QAAQ,GAAG,IAAI;AAAA,cACtBA,EAAO,QAAQ,GAAG;AAAA,YAAA;AAEtB,YAAAJ,EAAa,KAAKK,EAAS,MAAM;AAAA,UACrC,OAAO;AACH,kBAAMA,IAAWD,EAAO,UAAUA,EAAO,QAAQ,GAAG,IAAI,CAAC;AACzD,YAAAJ,EAAa,KAAKK,EAAS,MAAM;AAAA,UACrC;AAAA,QAER,CAAC;AAAA,MAET,CAAC;AAAA,IAIT;AAGA,WAAAC,EAAU,MAAM;AAEZ,MAAAhC,EAAS,MAAM,YAAY,sBAAsB,MAAM;AACnD,QAAAW,EAAY,QAAQf,EAAW,MAAM,SACrCqC,EAAsBtB,EAAY,KAAK,GACvCY,EAAA,GACAvB,EAAS,MAAM,UAAU,oBAAoBkC,EAAUtB,EAAa,KAAK,CAAC;AAAA,MAC9E,CAAC,GAID,WAAW,MAAM;AACb,QAAAD,EAAY,QAAQf,EAAW,MAAM,SACrCqC,EAAsBtB,EAAY,KAAK,GACvCY,EAAA,GACAvB,EAAS,MAAM,UAAU,oBAAoBkC,EAAUtB,EAAa,KAAK,CAAC;AAAA,MAC9E,GAAG,IAAI;AAAA,IACX,CAAC;;;QAzSDuB,EAwHSC,GAAA;AAAA,UAvHJ,OAAOC,EAAAzC,CAAA;AAAA,UACR,YAAW;AAAA,UACX,eAAY;AAAA,UACZ,OAAM;AAAA,UACL,+BAAD,MAAA;AAAA,UAAA,GAAe,CAAA,SAAA,CAAA;AAAA,QAAA;qBAEf,MAgHa;AAAA,YAhHbuC,EAgHaG,GAAA;AAAA,cAhHO,WAAW5B,EAAA;AAAA,2DAAAA,EAAuB,QAAA6B;AAAA,cAAE,OAAM;AAAA,YAAA;yBAC1D,MA4FmB;AAAA,gBA5FnBJ,EA4FmBK,GAAA;AAAA,kBA5FD,KAAI;AAAA,kBAAK,QAAQH,EAAAvC,CAAA,EAAK,uBAAA;AAAA,gBAAA;6BACpC,MAOc;AAAA,oBAPdqC,EAOcM,GAAA;AAAA,sBAPA,OAAOJ,EAAAvC,CAAA,EAAK,2BAAA;AAAA,oBAAA;iCACtB,MAKE;AAAA,wBALFqC,EAKEO,GAAA;AAAA,0BAJU,OAAOL,EAAAzC,CAAA,EAAW;AAAA,0BAAX,kBAAA+C,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAJ,MAAAF,EAAAzC,CAAA,EAAW,OAAI2C;AAAA,0BAC7B,SAASxB;AAAA,0BACV,YAAA;AAAA,0BACA,OAAA,EAAA,OAAA,QAAA;AAAA,wBAAA;;;;oBAGRoB,EAYcM,GAAA;AAAA,sBAZA,OAAOJ,EAAAvC,CAAA,EAAK,gCAAA;AAAA,oBAAA;iCACtB,MAUgB;AAAA,wBAVhBqC,EAUgBS,GAAA;AAAA,0BATJ,OAAOP,EAAAzC,CAAA,EAAW;AAAA,0BAAX,kBAAA+C,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAJ,MAAAF,EAAAzC,CAAA,EAAW,gBAAa2C;AAAA,0BACvC,OAAM;AAAA,wBAAA;qCAEN,MAEiB;AAAA,4BAFjBJ,EAEiBU,GAAA,EAFD,OAAM,gBAAY;AAAA,yCAC9B,MAA0C;AAAA,oCAAvCR,EAAAvC,CAAA,EAAK,6BAAA,CAAA,GAAA,CAAA;AAAA,8BAAA;;;4BAEZqC,EAEiBU,GAAA,EAFD,OAAM,cAAU;AAAA,yCAC5B,MAAwC;AAAA,oCAArCR,EAAAvC,CAAA,EAAK,2BAAA,CAAA,GAAA,CAAA;AAAA,8BAAA;;;;;;;;;oBAIpBqC,EAScM,GAAA;AAAA,sBATA,OAAOJ,EAAAvC,CAAA,EAAK,6BAAA;AAAA,oBAAA;iCACtB,MAOgB;AAAA,wBAPhBqC,EAOgBS,GAAA;AAAA,0BAPO,OAAOP,EAAAzC,CAAA,EAAW;AAAA,0BAAX,kBAAA+C,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAJ,MAAAF,EAAAzC,CAAA,EAAW,aAAU2C;AAAA,0BAAE,OAAM;AAAA,wBAAA;qCACvD,MAEiB;AAAA,4BAFjBJ,EAEiBU,GAAA,EAFD,OAAM,UAAM;AAAA,yCACxB,MAAyC;AAAA,oCAAtCR,EAAAvC,CAAA,EAAK,4BAAA,CAAA,GAAA,CAAA;AAAA,8BAAA;;;4BAEZqC,EAEiBU,GAAA,EAFD,OAAM,WAAO;AAAA,yCACzB,MAA0C;AAAA,oCAAvCR,EAAAvC,CAAA,EAAK,6BAAA,CAAA,GAAA,CAAA;AAAA,8BAAA;;;;;;;;;oBAIpBqC,EAOcM,GAAA;AAAA,sBAPA,OAAOJ,EAAAvC,CAAA,EAAK,6BAAA;AAAA,oBAAA;iCACtB,MAKE;AAAA,wBALFqC,EAKEW,GAAA;AAAA,0BAJU,OAAOT,EAAAzC,CAAA,EAAW;AAAA,0BAAX,kBAAA+C,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAJ,MAAAF,EAAAzC,CAAA,EAAW,aAAU2C;AAAA,0BACnC,KAAK;AAAA,0BACN,OAAA,EAAA,OAAA,OAAA;AAAA,0BACA,YAAA;AAAA,wBAAA;;;;oBAGRJ,EAecM,GAAA;AAAA,sBAfA,OAAOJ,EAAAvC,CAAA,EAAK,0BAAA;AAAA,oBAAA;iCACtB,MAaW;AAAA,wBAbXqC,EAaWY,GAAA;AAAA,0BAZP,OAAM;AAAA,0BACL,SAAKJ,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAJ,MAA+BpB,EAAe;AAAA;;;mCAAuMkB,EAAAvC,CAAA,EAAK,0BAAA;AAAA,0BAAA;0BAQ/P,OAAKkD,EAAA,CAAA,EAAA,yBAAA,CAAA,CAAgCX,EAAAzC,CAAA,EAAW,SAAO,CAAA;AAAA,wBAAA;qCAExD,MAAsC;AAAA,gCAAnCyC,EAAAvC,CAAA,EAAK,yBAAA,CAAA,GAAA,CAAA;AAAA,0BAAA;;;;;;oBAIhBqC,EAQcM,GAAA;AAAA,sBARA,OAAOJ,EAAAvC,CAAA,EAAK,8BAAA;AAAA,oBAAA;iCACtB,MAME;AAAA,wBANFqC,EAMEO,GAAA;AAAA,0BALU,OAAOL,EAAAzC,CAAA,EAAW;AAAA,0BAAX,kBAAA+C,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAJ,MAAAF,EAAAzC,CAAA,EAAW,cAAW2C;AAAA,0BACrC,YAAA;AAAA,0BACA,MAAK;AAAA,0BACJ,UAAQhB;AAAA,0BACR,SAASX,EAAA;AAAA,wBAAA;;;;oBAIlBuB,EAecM,GAAA;AAAA,sBAfA,OAAOJ,EAAAvC,CAAA,EAAK,kCAAA;AAAA,oBAAA;iCACtB,MAaW;AAAA,wBAbXqC,EAaWY,GAAA;AAAA,0BAZN,OAAKC,EAAA,CAAA,EAAA,yBAAA,CAAA,CAAgCX,EAAAzC,CAAA,EAAW,UAAA,CAAS,CAAA;AAAA,0BAC1D,OAAM;AAAA,0BACL,SAAK+C,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAJ,MAA+BpB,EAAe;AAAA;;;mCAAgNkB,EAAAvC,CAAA,EAAK,kCAAA;AAAA,0BAAA;;qCASzQ,MAA+C;AAAA,gCAA5CuC,EAAAvC,CAAA,EAAK,kCAAA,CAAA,GAAA,CAAA;AAAA,0BAAA;;;;;;oBAGhBqC,EAEcM,GAAA;AAAA,sBAFA,OAAOJ,EAAAvC,CAAA,EAAK,oCAAA;AAAA,oBAAA;iCACtB,MAAoE;AAAA,wBAApEqC,EAAoEc,GAAA;AAAA,0BAA3D,MAAK;AAAA,0BAAe,OAAOZ,EAAAzC,CAAA,EAAW;AAAA,0BAAX,kBAAA+C,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAJ,MAAAF,EAAAzC,CAAA,EAAW,oBAAiB2C;AAAA,wBAAA;;;;oBAGpEJ,EAAgDe,IAAA,EAA3B,aAAab,EAAAzC,CAAA,EAAA,GAAU,MAAA,GAAA,CAAA,aAAA,CAAA;AAAA,oBAC5CuC,EAEcM,GAAA;AAAA,sBAFA,OAAOJ,EAAAvC,CAAA,EAAK,gCAAA;AAAA,oBAAA;iCACtB,MAAgE;AAAA,wBAAhEqC,EAAgEc,GAAA;AAAA,0BAAvD,MAAK;AAAA,0BAAe,OAAOZ,EAAAzC,CAAA,EAAW;AAAA,0BAAX,kBAAA+C,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAJ,MAAAF,EAAAzC,CAAA,EAAW,gBAAa2C;AAAA,wBAAA;;;;oBAEhEJ,EAAkDgB,IAAA,EAA3B,aAAad,EAAAzC,CAAA,EAAA,GAAU,MAAA,GAAA,CAAA,aAAA,CAAA;AAAA,kBAAA;;;gBAIxC0B,YADV8B,GAgBmBZ,GAAA;AAAA,kBAdf,KAAI;AAAA,kBACJ,OAAM;AAAA,kBACL,QAAQH,EAAAvC,CAAA,EAAK,uBAAA;AAAA,gBAAA;6BAIV,MAAsC;AAAA,qBAF1CuD,EAAA,GAAAC,EASEC,GAAA,MAAAC,GAPyBxC,GAAc,CAA7BE,GAAOuC,MAFnBtB,EASEuB,IAAA;AAAA,sBARG,aAAYvC;AAAA,sBAEZ,KAAAsC;AAAA,sBACA,cAAYA;AAAA,sBACL,OAAOpB,EAAAzC,CAAA,EAAW6D,CAAG;AAAA,sBAAd,kBAAA,CAAAlB,MAAAF,EAAAzC,CAAA,EAAW6D,CAAG,IAAAlB;AAAA,sBAC5B,0BAAwBlB;AAAA,sBACxB,oBAAkBL;AAAA,sBAClB,eAAaqB,EAAAzC,CAAA;AAAA,oBAAA;;;;;;;;;;QAM9BuC,EAUsBwB,GAAA,EAVH,eAAc,YAAQ;AAAA,qBACrC,MASF;AAAA,YATExB,EASFE,EAAAuB,EAAA,GAAA;AAAA,cARO,mBAAmBpD,EAAA;AAAA,uBAChB;AAAA,cAAJ,KAAIM;AAAA,cACH,gBAAcL,EAAA;AAAA,0BACNI,EAAA;AAAA,8DAAAA,EAAoB,QAAA0B;AAAA,cAC5B,MAAMlC,EAAA;AAAA,cACN,UAAU;AAAA,cACV,OAAOE,EAAA;AAAA,cACP,WAAUU;AAAA,YAAA;;;;;;;;"}