@kp-ui/lowcode 2.16.0-alpha.11 → 2.16.0-alpha.12

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kp-ui/lowcode",
3
- "version": "2.16.0-alpha.11",
3
+ "version": "2.16.0-alpha.12",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -1,9 +1,8 @@
1
- import { defineComponent as a, useModel as d, resolveComponent as o, createBlock as s, openBlock as c, unref as n, withCtx as f, createVNode as _ } from "vue";
2
- import { useI18n as h } from "../../../../../utils/i18n.js";
3
- import { EditorTypeEnum as M } from "../../../../../constants/EditorTypeEnum.js";
4
- import { useEditor as b } from "../useEditor.js";
5
- const y = /* @__PURE__ */ a({
6
- name: M.heightEditor,
1
+ import { defineComponent as a, useModel as u, resolveComponent as o, createBlock as m, openBlock as d, unref as s, withCtx as c, createVNode as f } from "vue";
2
+ import { useI18n as _ } from "../../../../../utils/i18n.js";
3
+ import { EditorTypeEnum as h } from "../../../../../constants/EditorTypeEnum.js";
4
+ const C = /* @__PURE__ */ a({
5
+ name: h.heightEditor,
7
6
  __name: "height-editor",
8
7
  props: {
9
8
  optionModel: {
@@ -14,20 +13,19 @@ const y = /* @__PURE__ */ a({
14
13
  optionModelModifiers: {}
15
14
  },
16
15
  emits: ["update:optionModel"],
17
- setup(r) {
18
- const e = d(r, "optionModel"), { i18nt: i } = h(), { inputNumberHandler: p } = b();
19
- return (v, t) => {
20
- const u = o("a-input-number"), l = o("a-form-item");
21
- return c(), s(l, {
22
- label: n(i)("height") + "(px)"
16
+ setup(n) {
17
+ const e = u(n, "optionModel"), { i18nt: i } = _();
18
+ return (M, t) => {
19
+ const p = o("a-input"), r = o("a-form-item");
20
+ return d(), m(r, {
21
+ label: s(i)("height") + "(px)"
23
22
  }, {
24
- default: f(() => [
25
- _(u, {
23
+ default: c(() => [
24
+ f(p, {
26
25
  type: "text",
27
26
  value: e.value.height,
28
- "onUpdate:value": t[0] || (t[0] = (m) => e.value.height = m),
29
- onInput: n(p)
30
- }, null, 8, ["value", "onInput"])
27
+ "onUpdate:value": t[0] || (t[0] = (l) => e.value.height = l)
28
+ }, null, 8, ["value"])
31
29
  ]),
32
30
  _: 1
33
31
  }, 8, ["label"]);
@@ -35,6 +33,6 @@ const y = /* @__PURE__ */ a({
35
33
  }
36
34
  });
37
35
  export {
38
- y as default
36
+ C as default
39
37
  };
40
38
  //# sourceMappingURL=height-editor.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"height-editor.vue2.js","sources":["../../../../../../../src/components/form-designer/setting-panel/property-editor/container-vf-dialog/height-editor.vue"],"sourcesContent":["<template>\n <a-form-item :label=\"i18nt('height') + '(px)'\">\n <a-input-number\n type=\"text\"\n v-model:value=\"optionModel.height\"\n @input=\"inputNumberHandler\"\n />\n </a-form-item>\n</template>\n\n<script lang=\"ts\" setup>\n import { useI18n } from '@/utils/i18n';\n import { EditorTypeEnum } from '@/constants/EditorTypeEnum';\n import { useEditor } from '../useEditor';\n\n defineOptions({\n name: EditorTypeEnum.heightEditor\n });\n\n const optionModel = defineModel('optionModel', {\n type: Object,\n required: true,\n default: () => ({ customClass: '' })\n });\n\n const { i18nt } = useI18n();\n const { inputNumberHandler } = useEditor();\n // export default {\n // name: 'height-editor',\n // mixins: [i18n, propertyMixin],\n // props: {\n // designer: Object,\n // selectedWidget: Object,\n // optionModel: Object\n // }\n // };\n</script>\n\n<style scoped></style>\n"],"names":["optionModel","_useModel","__props","i18nt","useI18n","inputNumberHandler","useEditor","_createBlock","_component_a_form_item","_unref","_createVNode","_component_a_input_number","_cache","$event"],"mappings":";;;;;;;;;;;;;;;;;AAmBI,UAAMA,IAAcC,EAAWC,GAAC,aAI/B,GAEK,EAAE,OAAAC,EAAA,IAAUC,EAAA,GACZ,EAAE,oBAAAC,EAAA,IAAuBC,EAAA;;;kBAzB/BC,EAMcC,GAAA;AAAA,QANA,OAAOC,EAAAN,CAAA,EAAK,QAAA,IAAA;AAAA,MAAA;mBACtB,MAIE;AAAA,UAJFO,EAIEC,GAAA;AAAA,YAHE,MAAK;AAAA,YACG,OAAOX,EAAA,MAAY;AAAA,YAAZ,kBAAAY,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAb,EAAA,MAAY,SAAMa;AAAA,YAChC,SAAOJ,EAAAJ,CAAA;AAAA,UAAA;;;;;;;"}
1
+ {"version":3,"file":"height-editor.vue2.js","sources":["../../../../../../../src/components/form-designer/setting-panel/property-editor/container-vf-dialog/height-editor.vue"],"sourcesContent":["<template>\n <a-form-item :label=\"i18nt('height') + '(px)'\">\n <a-input type=\"text\" v-model:value=\"optionModel.height\" />\n </a-form-item>\n</template>\n\n<script lang=\"ts\" setup>\n import { useI18n } from '@/utils/i18n';\n import { EditorTypeEnum } from '@/constants/EditorTypeEnum';\n\n defineOptions({\n name: EditorTypeEnum.heightEditor\n });\n\n const optionModel = defineModel('optionModel', {\n type: Object,\n required: true,\n default: () => ({ customClass: '' })\n });\n\n const { i18nt } = useI18n();\n</script>\n\n<style scoped></style>\n"],"names":["optionModel","_useModel","__props","i18nt","useI18n","_createBlock","_component_a_form_item","_unref","_createVNode","_component_a_input","_cache","$event"],"mappings":";;;;;;;;;;;;;;;;AAcI,UAAMA,IAAcC,EAAWC,GAAC,aAI/B,GAEK,EAAE,OAAAC,EAAA,IAAUC,EAAA;;;kBAnBlBC,EAEcC,GAAA;AAAA,QAFA,OAAOC,EAAAJ,CAAA,EAAK,QAAA,IAAA;AAAA,MAAA;mBACtB,MAA0D;AAAA,UAA1DK,EAA0DC,GAAA;AAAA,YAAjD,MAAK;AAAA,YAAe,OAAOT,EAAA,MAAY;AAAA,YAAZ,kBAAAU,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAX,EAAA,MAAY,SAAMW;AAAA,UAAA;;;;;;;"}
@@ -1,9 +1,10 @@
1
- import { defineComponent as H, computed as d, ref as u, onBeforeUnmount as J, createBlock as P, openBlock as A, unref as c, mergeProps as U, withCtx as x, createElementVNode as I, createVNode as C, nextTick as q } from "vue";
2
- import { useExecFunction as z, TpfModal as G } from "tmgc2-share";
3
- import { useLowcode as K } from "../../hooks/useLowcode.js";
4
- import Q from "../FormRender/index.vue.js";
5
- import W from "../public/ActionButtonListRender.vue.js";
6
- const X = { class: "dialog-content" }, oe = /* @__PURE__ */ H({
1
+ import { defineComponent as J, computed as u, ref as c, onBeforeUnmount as P, createBlock as A, openBlock as U, unref as i, mergeProps as z, withCtx as x, createElementVNode as I, createVNode as C, nextTick as q } from "vue";
2
+ import { useExecFunction as G, TpfModal as K } from "tmgc2-share";
3
+ import { useLowcode as Q } from "../../hooks/useLowcode.js";
4
+ import { formatSize as h } from "../../utils/format.js";
5
+ import W from "../FormRender/index.vue.js";
6
+ import X from "../public/ActionButtonListRender.vue.js";
7
+ const Y = { class: "dialog-content" }, ae = /* @__PURE__ */ J({
7
8
  name: "dynamic-dialog",
8
9
  __name: "dynamic-dialog",
9
10
  props: {
@@ -45,31 +46,31 @@ const X = { class: "dialog-content" }, oe = /* @__PURE__ */ H({
45
46
  default: null
46
47
  }
47
48
  },
48
- setup(n, { expose: h }) {
49
- const t = n, O = d(() => t.options.height || "500px"), f = u(null), p = u(!1), s = u(!1), { context: i, asyncExecuteFunction: m, executeFunction: Y } = z(), { vfdRef: l, isLoading: v, getComponentJson: R } = K({
49
+ setup(n, { expose: O }) {
50
+ const t = n, R = u(() => h(t.options.height, "500px")), f = c(null), p = c(!1), s = c(!1), { context: r, asyncExecuteFunction: m, executeFunction: Z } = G(), { vfdRef: l, isLoading: v, getComponentJson: F } = Q({
50
51
  formCode: t.options.formCode,
51
52
  ...t.vfCtx
52
- }), F = d(() => ({
53
+ }), D = u(() => ({
53
54
  ...t.parentFormRef,
54
- parentDom: i.value,
55
+ parentDom: r.value,
55
56
  getParentFormRef: g
56
- })), D = d(() => t.options.cancelButtonHidden && t.options.okButtonHidden ? { footer: null } : {});
57
- J(() => {
57
+ })), k = u(() => t.options.cancelButtonHidden && t.options.okButtonHidden ? { footer: null } : {});
58
+ P(() => {
58
59
  var e, o;
59
60
  console.log(t.parentFormRef), (o = (e = t.parentFormRef) == null ? void 0 : e.setChildFormRef) == null || o.call(e, null);
60
61
  });
61
- const k = (e) => {
62
+ const w = (e) => {
62
63
  v.value = e;
63
- }, w = (e) => {
64
+ }, B = (e) => {
64
65
  t.options.title = e;
65
- }, B = () => {
66
+ }, j = () => {
66
67
  s.value = !0;
67
- }, j = async ({ result: e }) => {
68
- e !== !1 && await r();
69
- }, E = () => {
68
+ }, E = async ({ result: e }) => {
69
+ e !== !1 && await d();
70
+ }, L = () => {
70
71
  s.value = !0, q(async () => {
71
72
  var e, o, a;
72
- (e = t.options) != null && e.readMode && ((o = l.value) == null || o.setReadMode(!0)), await R([], t.options.formCode), (a = l.value) == null || a.setDialogOrDrawerRef(i.value), t.parentFormRef && t.parentFormRef.setChildFormRef(l.value), y();
73
+ (e = t.options) != null && e.readMode && ((o = l.value) == null || o.setReadMode(!0)), await F([], t.options.formCode), (a = l.value) == null || a.setDialogOrDrawerRef(r.value), t.parentFormRef && t.parentFormRef.setChildFormRef(l.value), y();
73
74
  });
74
75
  }, b = async () => {
75
76
  if (t.options.onDialogBeforeClose)
@@ -77,76 +78,76 @@ const X = { class: "dialog-content" }, oe = /* @__PURE__ */ H({
77
78
  functionBody: t.options.onDialogBeforeClose
78
79
  });
79
80
  s.value = !1;
80
- }, r = () => {
81
+ }, d = () => {
81
82
  b();
82
83
  }, y = async () => {
83
84
  if (t.options.onDialogOpened)
84
85
  return await m({
85
86
  functionBody: t.options.onDialogOpened
86
87
  });
87
- }, g = () => t.parentFormRef, L = () => {
88
+ }, g = () => t.parentFormRef, T = () => {
88
89
  var e, o, a;
89
90
  (a = (o = (e = t.vfCtx) == null ? void 0 : e.parent) == null ? void 0 : o.exposed) != null && a.updateTable && t.vfCtx.parent.exposed.updateTable();
90
- }, T = () => t.extraData, M = (e) => {
91
+ }, M = () => t.extraData, S = (e) => {
91
92
  f.value = e;
92
- }, S = (e) => {
93
+ }, N = (e) => {
93
94
  p.value = e;
94
- }, N = () => l.value, V = () => {
95
+ }, V = () => l.value, H = () => {
95
96
  var e;
96
97
  return (e = l.value) == null ? void 0 : e.context;
97
98
  };
98
- return h({
99
+ return O({
99
100
  getParentFormRef: g,
100
- getFormRef: N,
101
- setDisabled: S,
102
- setleftText: M,
103
- setLoading: k,
104
- setTitle: w,
105
- beforeOpen: B,
106
- show: E,
101
+ getFormRef: V,
102
+ setDisabled: N,
103
+ setleftText: S,
104
+ setLoading: w,
105
+ setTitle: B,
106
+ beforeOpen: j,
107
+ show: L,
107
108
  close: b,
108
- handleCloseEvent: r,
109
+ handleCloseEvent: d,
109
110
  handleOpenedEvent: y,
110
- updateTable: L,
111
- getExtraData: T
112
- }), (e, o) => (A(), P(c(G), U({
111
+ updateTable: T,
112
+ getExtraData: M
113
+ }), (e, o) => (U(), A(i(K), z({
113
114
  class: "tpf-model design-model",
114
115
  destroyOnClose: !0,
115
116
  title: n.options.title,
116
117
  bodyStyle: {
117
- height: O.value,
118
+ height: R.value,
118
119
  overflow: "auto",
119
120
  ...JSON.parse(n.options.bodyStyle || "{}")
120
121
  },
121
122
  centered: !0,
122
123
  visible: s.value,
123
124
  "onUpdate:visible": o[0] || (o[0] = (a) => s.value = a),
124
- width: n.options.width,
125
+ width: i(h)(n.options.width),
125
126
  mask: n.options.showModal,
126
127
  maskClosable: n.options.closeOnClickModal,
127
128
  keyboard: n.options.closeOnPressEscape,
128
- onCancel: r,
129
+ onCancel: d,
129
130
  "left-num": f.value
130
- }, D.value), {
131
+ }, k.value), {
131
132
  footerRight: x(() => [
132
- C(W, {
133
+ C(X, {
133
134
  buttonList: n.options.buttonList || [],
134
- ctx: V(),
135
- onOnClick: j,
135
+ ctx: H(),
136
+ onOnClick: E,
136
137
  disabled: p.value
137
138
  }, null, 8, ["buttonList", "ctx", "disabled"])
138
139
  ]),
139
140
  default: x(() => [
140
- I("div", X, [
141
- C(Q, {
141
+ I("div", Y, [
142
+ C(W, {
142
143
  ref_key: "vfdRef",
143
144
  ref: l,
144
- loading: c(v),
145
+ loading: i(v),
145
146
  vfCtx: {
146
147
  ...n.vfCtx,
147
- instance: c(i)
148
+ instance: i(r)
148
149
  },
149
- "parent-form": F.value,
150
+ "parent-form": D.value,
150
151
  "disabled-mode": n.options.disabledMode,
151
152
  "dynamic-creation": !0
152
153
  }, null, 8, ["loading", "vfCtx", "parent-form", "disabled-mode"])
@@ -157,6 +158,6 @@ const X = { class: "dialog-content" }, oe = /* @__PURE__ */ H({
157
158
  }
158
159
  });
159
160
  export {
160
- oe as default
161
+ ae as default
161
162
  };
162
163
  //# sourceMappingURL=dynamic-dialog.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-dialog.vue.js","sources":["../../../../src/components/form-render/dynamic-dialog.vue"],"sourcesContent":["<template>\n <TpfModal\n class=\"tpf-model design-model\"\n :destroyOnClose=\"true\"\n :title=\"options.title\"\n :bodyStyle=\"{\n height: dialogHeight,\n overflow: 'auto',\n ...JSON.parse(options.bodyStyle || '{}')\n }\"\n :centered=\"true\"\n v-model:visible=\"dialogVisible\"\n :width=\"options.width\"\n :mask=\"options.showModal\"\n :maskClosable=\"options.closeOnClickModal\"\n :keyboard=\"options.closeOnPressEscape\"\n @cancel=\"handleCloseEvent\"\n :left-num=\"leftNum\"\n v-bind=\"otherAttrs\"\n >\n <div class=\"dialog-content\">\n <VFormRender\n ref=\"vfdRef\"\n :loading=\"isLoading\"\n :vfCtx=\"{\n ...vfCtx,\n instance: context\n }\"\n :parent-form=\"parentForm\"\n :disabled-mode=\"options.disabledMode\"\n :dynamic-creation=\"true\"\n />\n </div>\n <template #footerRight>\n <ActionButtonListRender\n :buttonList=\"options.buttonList || []\"\n :ctx=\"getFormContext()\"\n @on-click=\"handleBtnClick\"\n :disabled=\"isDisabled\"\n />\n </template>\n </TpfModal>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref, computed, nextTick, onBeforeUnmount } from 'vue';\n import { TpfModal, useExecFunction } from 'tmgc2-share';\n import { useLowcode } from '@/hooks/useLowcode';\n import VFormRender from '../FormRender/index.vue';\n import ActionButtonListRender from '@/components/public/ActionButtonListRender.vue';\n defineOptions({\n name: 'dynamic-dialog'\n });\n\n const props = defineProps({\n options: {\n type: Object,\n default: () => ({})\n },\n formJson: {\n type: Object\n },\n formData: {\n type: Object,\n default: () => ({})\n },\n vfCtx: {\n type: Object,\n default: () => ({})\n },\n optionData: {\n //prop传入的选项数据\n type: Object,\n default: () => ({})\n },\n globalDsv: {\n // 全局数据源变量\n type: Object,\n default: () => ({})\n },\n parentFormRef: {\n type: Object,\n default: null\n },\n extraData: {\n type: Object,\n default: () => ({})\n },\n wrapperId: {\n type: String,\n default: null\n }\n });\n\n const dialogHeight = computed(() => {\n return props.options.height || '500px';\n });\n const leftNum = ref(null);\n\n const isDisabled = ref(false);\n const dialogVisible = ref(false);\n\n const { context, asyncExecuteFunction, executeFunction } = useExecFunction();\n const { vfdRef, isLoading, getComponentJson } = useLowcode({\n formCode: props.options.formCode,\n ...props.vfCtx\n });\n // 计算属性\n const parentForm = computed(() => {\n return {\n ...props.parentFormRef,\n parentDom: context.value,\n getParentFormRef\n };\n });\n\n const otherAttrs = computed(() => {\n if (props.options.cancelButtonHidden && props.options.okButtonHidden) {\n return { footer: null };\n }\n return {};\n });\n\n // 生命周期钩子\n onBeforeUnmount(() => {\n console.log(props.parentFormRef);\n props.parentFormRef?.setChildFormRef?.(null);\n });\n\n const setLoading = status => {\n isLoading.value = status;\n };\n\n const setTitle = title => {\n props.options.title = title;\n };\n\n const beforeOpen = () => {\n dialogVisible.value = true;\n };\n\n const handleBtnClick = async ({ result }: any) => {\n if (result !== false) {\n await handleCloseEvent();\n }\n };\n\n const show = () => {\n dialogVisible.value = true;\n\n //设置readMode模式\n nextTick(async () => {\n if (props.options?.readMode) {\n vfdRef.value?.setReadMode(true);\n }\n await getComponentJson([], props.options.formCode);\n vfdRef.value?.setDialogOrDrawerRef(context.value);\n if (props.parentFormRef) {\n props.parentFormRef.setChildFormRef(vfdRef.value);\n }\n handleOpenedEvent();\n });\n };\n\n const close = async () => {\n if (props.options.onDialogBeforeClose) {\n return await asyncExecuteFunction({\n functionBody: props.options.onDialogBeforeClose\n });\n }\n\n dialogVisible.value = false;\n };\n\n const handleCloseEvent = () => {\n close();\n };\n\n const handleOpenedEvent = async () => {\n if (props.options.onDialogOpened) {\n return await asyncExecuteFunction({\n functionBody: props.options.onDialogOpened\n });\n }\n };\n\n const getParentFormRef = () => {\n return props.parentFormRef;\n };\n\n const updateTable = () => {\n if (props.vfCtx?.parent?.exposed?.updateTable) {\n props.vfCtx.parent.exposed.updateTable();\n }\n };\n\n const getExtraData = () => {\n return props.extraData;\n };\n\n const setleftText = number => {\n leftNum.value = number;\n };\n\n const setDisabled = status => {\n isDisabled.value = status;\n };\n\n const getFormRef = () => {\n return vfdRef.value;\n };\n\n const getFormContext = () => {\n return vfdRef.value?.context;\n };\n\n // 暴露方法给父组件\n defineExpose({\n getParentFormRef,\n getFormRef,\n setDisabled,\n setleftText,\n setLoading,\n setTitle,\n beforeOpen,\n show,\n close,\n handleCloseEvent,\n handleOpenedEvent,\n updateTable,\n getExtraData\n });\n</script>\n\n<style lang=\"less\">\n .dialog-content {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-height: 300px;\n }\n</style>\n"],"names":["props","__props","dialogHeight","computed","leftNum","ref","isDisabled","dialogVisible","context","asyncExecuteFunction","executeFunction","useExecFunction","vfdRef","isLoading","getComponentJson","useLowcode","parentForm","getParentFormRef","otherAttrs","onBeforeUnmount","_b","_a","setLoading","status","setTitle","title","beforeOpen","handleBtnClick","result","handleCloseEvent","show","nextTick","_c","handleOpenedEvent","close","updateTable","getExtraData","setleftText","number","setDisabled","getFormRef","getFormContext","__expose","_openBlock","_createBlock","_unref","_mergeProps","$event","_createVNode","ActionButtonListRender","_createElementVNode","_hoisted_1","VFormRender"],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-dialog.vue.js","sources":["../../../../src/components/form-render/dynamic-dialog.vue"],"sourcesContent":["<template>\n <TpfModal\n class=\"tpf-model design-model\"\n :destroyOnClose=\"true\"\n :title=\"options.title\"\n :bodyStyle=\"{\n height: dialogHeight,\n overflow: 'auto',\n ...JSON.parse(options.bodyStyle || '{}')\n }\"\n :centered=\"true\"\n v-model:visible=\"dialogVisible\"\n :width=\"formatSize(options.width)\"\n :mask=\"options.showModal\"\n :maskClosable=\"options.closeOnClickModal\"\n :keyboard=\"options.closeOnPressEscape\"\n @cancel=\"handleCloseEvent\"\n :left-num=\"leftNum\"\n v-bind=\"otherAttrs\"\n >\n <div class=\"dialog-content\">\n <VFormRender\n ref=\"vfdRef\"\n :loading=\"isLoading\"\n :vfCtx=\"{\n ...vfCtx,\n instance: context\n }\"\n :parent-form=\"parentForm\"\n :disabled-mode=\"options.disabledMode\"\n :dynamic-creation=\"true\"\n />\n </div>\n <template #footerRight>\n <ActionButtonListRender\n :buttonList=\"options.buttonList || []\"\n :ctx=\"getFormContext()\"\n @on-click=\"handleBtnClick\"\n :disabled=\"isDisabled\"\n />\n </template>\n </TpfModal>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref, computed, nextTick, onBeforeUnmount } from 'vue';\n import { TpfModal, useExecFunction } from 'tmgc2-share';\n import { useLowcode } from '@/hooks/useLowcode';\n import { formatSize } from '@/utils/format';\n import VFormRender from '../FormRender/index.vue';\n import ActionButtonListRender from '@/components/public/ActionButtonListRender.vue';\n defineOptions({\n name: 'dynamic-dialog'\n });\n\n const props = defineProps({\n options: {\n type: Object,\n default: () => ({})\n },\n formJson: {\n type: Object\n },\n formData: {\n type: Object,\n default: () => ({})\n },\n vfCtx: {\n type: Object,\n default: () => ({})\n },\n optionData: {\n //prop传入的选项数据\n type: Object,\n default: () => ({})\n },\n globalDsv: {\n // 全局数据源变量\n type: Object,\n default: () => ({})\n },\n parentFormRef: {\n type: Object,\n default: null\n },\n extraData: {\n type: Object,\n default: () => ({})\n },\n wrapperId: {\n type: String,\n default: null\n }\n });\n\n const dialogHeight = computed(() => {\n return formatSize(props.options.height, '500px');\n });\n const leftNum = ref(null);\n\n const isDisabled = ref(false);\n const dialogVisible = ref(false);\n\n const { context, asyncExecuteFunction, executeFunction } = useExecFunction();\n const { vfdRef, isLoading, getComponentJson } = useLowcode({\n formCode: props.options.formCode,\n ...props.vfCtx\n });\n // 计算属性\n const parentForm = computed(() => {\n return {\n ...props.parentFormRef,\n parentDom: context.value,\n getParentFormRef\n };\n });\n\n const otherAttrs = computed(() => {\n if (props.options.cancelButtonHidden && props.options.okButtonHidden) {\n return { footer: null };\n }\n return {};\n });\n\n // 生命周期钩子\n onBeforeUnmount(() => {\n console.log(props.parentFormRef);\n props.parentFormRef?.setChildFormRef?.(null);\n });\n\n const setLoading = status => {\n isLoading.value = status;\n };\n\n const setTitle = title => {\n props.options.title = title;\n };\n\n const beforeOpen = () => {\n dialogVisible.value = true;\n };\n\n const handleBtnClick = async ({ result }: any) => {\n if (result !== false) {\n await handleCloseEvent();\n }\n };\n\n const show = () => {\n dialogVisible.value = true;\n\n //设置readMode模式\n nextTick(async () => {\n if (props.options?.readMode) {\n vfdRef.value?.setReadMode(true);\n }\n await getComponentJson([], props.options.formCode);\n vfdRef.value?.setDialogOrDrawerRef(context.value);\n if (props.parentFormRef) {\n props.parentFormRef.setChildFormRef(vfdRef.value);\n }\n handleOpenedEvent();\n });\n };\n\n const close = async () => {\n if (props.options.onDialogBeforeClose) {\n return await asyncExecuteFunction({\n functionBody: props.options.onDialogBeforeClose\n });\n }\n\n dialogVisible.value = false;\n };\n\n const handleCloseEvent = () => {\n close();\n };\n\n const handleOpenedEvent = async () => {\n if (props.options.onDialogOpened) {\n return await asyncExecuteFunction({\n functionBody: props.options.onDialogOpened\n });\n }\n };\n\n const getParentFormRef = () => {\n return props.parentFormRef;\n };\n\n const updateTable = () => {\n if (props.vfCtx?.parent?.exposed?.updateTable) {\n props.vfCtx.parent.exposed.updateTable();\n }\n };\n\n const getExtraData = () => {\n return props.extraData;\n };\n\n const setleftText = number => {\n leftNum.value = number;\n };\n\n const setDisabled = status => {\n isDisabled.value = status;\n };\n\n const getFormRef = () => {\n return vfdRef.value;\n };\n\n const getFormContext = () => {\n return vfdRef.value?.context;\n };\n\n // 暴露方法给父组件\n defineExpose({\n getParentFormRef,\n getFormRef,\n setDisabled,\n setleftText,\n setLoading,\n setTitle,\n beforeOpen,\n show,\n close,\n handleCloseEvent,\n handleOpenedEvent,\n updateTable,\n getExtraData\n });\n</script>\n\n<style lang=\"less\">\n .dialog-content {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-height: 300px;\n }\n</style>\n"],"names":["props","__props","dialogHeight","computed","formatSize","leftNum","ref","isDisabled","dialogVisible","context","asyncExecuteFunction","executeFunction","useExecFunction","vfdRef","isLoading","getComponentJson","useLowcode","parentForm","getParentFormRef","otherAttrs","onBeforeUnmount","_b","_a","setLoading","status","setTitle","title","beforeOpen","handleBtnClick","result","handleCloseEvent","show","nextTick","_c","handleOpenedEvent","close","updateTable","getExtraData","setleftText","number","setDisabled","getFormRef","getFormContext","__expose","_openBlock","_createBlock","_unref","_mergeProps","$event","_createVNode","ActionButtonListRender","_createElementVNode","_hoisted_1","VFormRender"],"mappings":"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"}
@@ -1,17 +1,24 @@
1
1
  import { isArray as o } from "lodash-es";
2
- const a = (u = [], r, n = { label: "label", value: "value", children: "children" }, e = "/") => {
3
- if (!(!r || r.length === 0))
4
- return o(r[0]) ? r.map((c) => h(u, c, n).join(e)).join(",") : h(u, r, n).join(e);
5
- }, h = (u = [], r = [], n = { label: "label", value: "value", children: "children" }) => {
6
- const e = [];
7
- return u.forEach((l) => {
8
- if (r.length !== 0 && l[n.value] === r[0] && (e.push(l[n.label]), o(l[n.children]))) {
9
- const c = h(l[n.children], r.slice(1), n);
10
- e.push(...c);
2
+ const c = (e = [], n, r = { label: "label", value: "value", children: "children" }, t = "/") => {
3
+ if (!(!n || n.length === 0))
4
+ return o(n[0]) ? n.map((l) => i(e, l, r).join(t)).join(",") : i(e, n, r).join(t);
5
+ }, i = (e = [], n = [], r = { label: "label", value: "value", children: "children" }) => {
6
+ const t = [];
7
+ return e.forEach((u) => {
8
+ if (n.length !== 0 && u[r.value] === n[0] && (t.push(u[r.label]), o(u[r.children]))) {
9
+ const l = i(u[r.children], n.slice(1), r);
10
+ t.push(...l);
11
11
  }
12
- }), e;
12
+ }), t;
13
13
  };
14
+ function h(e, n = "") {
15
+ if (e == null || e === "")
16
+ return n;
17
+ const r = String(e);
18
+ return r.endsWith("px") || r.endsWith("%") || isNaN(Number(r)) ? r : `${r}px`;
19
+ }
14
20
  export {
15
- a as formateCascaderCode
21
+ h as formatSize,
22
+ c as formateCascaderCode
16
23
  };
17
24
  //# sourceMappingURL=format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sources":["../../../src/utils/format.js"],"sourcesContent":["import { isArray } from 'lodash-es';\n\nfunction validateDate(dateStr) {\n const date = new Date(Date.parse(dateStr));\n return date instanceof Date && !isNaN(date.getTime());\n}\n\nexport function formatDate1(date) {\n if (!validateDate(date)) {\n return date;\n }\n date = new Date(Date.parse(date)); //转换成Date\n const y = date.getFullYear();\n let m = date.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n let d = date.getDate();\n d = d < 10 ? '0' + d : d;\n return y + '-' + m + '-' + d;\n}\n\nexport function formatDate2(date) {\n if (!validateDate(date)) {\n return date;\n }\n date = new Date(Date.parse(date)); //转换成Date\n const y = date.getFullYear();\n let m = date.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n let d = date.getDate();\n d = d < 10 ? '0' + d : d;\n return y + '/' + m + '/' + d;\n}\n\nexport function formatDate3(date) {\n if (!validateDate(date)) {\n return date;\n }\n date = new Date(Date.parse(date)); //转换成Date\n const y = date.getFullYear();\n let m = date.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n let d = date.getDate();\n d = d < 10 ? '0' + d : d;\n return y + '年' + m + '月' + d + '日';\n}\n\nexport function formatDate4(date) {\n if (!validateDate(date)) {\n return date;\n }\n date = new Date(Date.parse(date)); //转换成Date\n return date.toLocaleString();\n}\n\nexport function formatDate5(date) {\n if (!validateDate(date)) {\n return date;\n }\n date = new Date(Date.parse(date)); //转换成Date\n return date.toLocaleString('chinese', { hour12: false });\n}\n\n// ###,###,###,##0.######\nexport function formatNumber1(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n const length = v.toString().split('.')[1].length;\n switch (length) {\n case 0:\n v = v.toFixed(0);\n break;\n case 1:\n v = v.toFixed(1);\n break;\n case 2:\n v = v.toFixed(2);\n break;\n case 3:\n v = v.toFixed(3);\n break;\n case 4:\n v = v.toFixed(4);\n break;\n case 5:\n v = v.toFixed(5);\n break;\n default:\n v = v.toFixed(6);\n }\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n//###,###,###,##0.00####\nexport function formatNumber2(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n const length = v.toString().split('.')[1].length;\n switch (length) {\n case 0:\n case 1:\n case 2:\n v = v.toFixed(2);\n break;\n case 3:\n v = v.toFixed(3);\n break;\n case 4:\n v = v.toFixed(4);\n break;\n case 5:\n v = v.toFixed(5);\n break;\n default:\n v = v.toFixed(6);\n }\n\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n// ###,###,###,##0.000000\nexport function formatNumber3(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n v = v.toFixed(6);\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n// ###,###,###,##0.000\nexport function formatNumber4(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n v = v.toFixed(3);\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n// ###,###,###,##0.00\nexport function formatNumber5(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n v = v.toFixed(2);\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n// ###,###,###,##0\nexport function formatNumber6(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n v = v.toFixed(0);\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n// ###,##0.00##%\nexport function formatNumber7(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n const length = v.toString().split('.')[1].length;\n v = v * 100;\n switch (length) {\n case 0:\n case 1:\n case 2:\n v = v.toFixed(2);\n break;\n case 3:\n v = v.toFixed(3);\n break;\n default:\n v = v.toFixed(4);\n }\n\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res + '%';\n}\n\n/**\n * 将Cascader转义为汉字\n * @param codeList string[]\n * @param emblem 拼接符号\n * @returns\n */\nexport const formateCascaderCode = (\n arr = [],\n codeList,\n fieldNames = { label: 'label', value: 'value', children: 'children' },\n emblem = '/'\n) => {\n if (!codeList || codeList.length === 0) return;\n if (isArray(codeList[0])) {\n const res2 = codeList.map(item => getTreeName(arr, item, fieldNames).join(emblem));\n return res2.join(',');\n } else {\n const res = getTreeName(arr, codeList, fieldNames);\n return res.join(emblem);\n }\n};\n\nconst getTreeName = (\n list = [],\n val = [],\n fieldNames = { label: 'label', value: 'value', children: 'children' }\n) => {\n const nameList = [];\n list.forEach(item => {\n if (val.length === 0) return;\n if (item[fieldNames.value] === val[0]) {\n nameList.push(item[fieldNames.label]);\n if (isArray(item[fieldNames.children])) {\n const res = getTreeName(item[fieldNames.children], val.slice(1), fieldNames);\n nameList.push(...res);\n }\n }\n });\n return nameList;\n};\n/**\n * 将tree转义为汉字\n * @param codeList string[]\n * @param emblem 拼接符号\n * @returns\n */\nexport const formateTreeToName = (\n arr = [],\n codeList,\n fieldNames = { label: 'label', value: 'value', children: 'children' },\n emblem = ','\n) => {\n if (!codeList || codeList.length === 0) return;\n const str = arr.reduce((t, v) => {\n const res = getListName(v, codeList, fieldNames);\n t = [...t, res];\n return t;\n }, []);\n return str.map(item => item[fieldNames.label]).join(emblem);\n};\n\nconst getListName = (val, list, fieldNames) => {\n let res;\n list.forEach(it1 => {\n if (it1[fieldNames.value] === val) {\n res = it1;\n return;\n }\n const childrenList = it1[fieldNames.children] || [];\n if (childrenList.length) {\n res = getListName(val, childrenList, fieldNames);\n }\n });\n return res;\n};\n"],"names":["formateCascaderCode","arr","codeList","fieldNames","emblem","isArray","item","getTreeName","list","val","nameList","res"],"mappings":";AA0OY,MAACA,IAAsB,CACjCC,IAAM,CAAA,GACNC,GACAC,IAAa,EAAE,OAAO,SAAS,OAAO,SAAS,UAAU,WAAU,GACnEC,IAAS,QACN;AACH,MAAI,GAACF,KAAYA,EAAS,WAAW;AACrC,WAAIG,EAAQH,EAAS,CAAC,CAAC,IACRA,EAAS,IAAI,CAAAI,MAAQC,EAAYN,GAAKK,GAAMH,CAAU,EAAE,KAAKC,CAAM,CAAC,EACrE,KAAK,GAAG,IAERG,EAAYN,GAAKC,GAAUC,CAAU,EACtC,KAAKC,CAAM;AAE1B,GAEMG,IAAc,CAClBC,IAAO,CAAA,GACPC,IAAM,CAAA,GACNN,IAAa,EAAE,OAAO,SAAS,OAAO,SAAS,UAAU,WAAU,MAChE;AACH,QAAMO,IAAW,CAAA;AACjB,SAAAF,EAAK,QAAQ,CAAAF,MAAQ;AACnB,QAAIG,EAAI,WAAW,KACfH,EAAKH,EAAW,KAAK,MAAMM,EAAI,CAAC,MAClCC,EAAS,KAAKJ,EAAKH,EAAW,KAAK,CAAC,GAChCE,EAAQC,EAAKH,EAAW,QAAQ,CAAC,IAAG;AACtC,YAAMQ,IAAMJ,EAAYD,EAAKH,EAAW,QAAQ,GAAGM,EAAI,MAAM,CAAC,GAAGN,CAAU;AAC3E,MAAAO,EAAS,KAAK,GAAGC,CAAG;AAAA,IACtB;AAAA,EAEJ,CAAC,GACMD;AACT;"}
1
+ {"version":3,"file":"format.js","sources":["../../../src/utils/format.js"],"sourcesContent":["import { isArray } from 'lodash-es';\n\nfunction validateDate(dateStr) {\n const date = new Date(Date.parse(dateStr));\n return date instanceof Date && !isNaN(date.getTime());\n}\n\nexport function formatDate1(date) {\n if (!validateDate(date)) {\n return date;\n }\n date = new Date(Date.parse(date)); //转换成Date\n const y = date.getFullYear();\n let m = date.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n let d = date.getDate();\n d = d < 10 ? '0' + d : d;\n return y + '-' + m + '-' + d;\n}\n\nexport function formatDate2(date) {\n if (!validateDate(date)) {\n return date;\n }\n date = new Date(Date.parse(date)); //转换成Date\n const y = date.getFullYear();\n let m = date.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n let d = date.getDate();\n d = d < 10 ? '0' + d : d;\n return y + '/' + m + '/' + d;\n}\n\nexport function formatDate3(date) {\n if (!validateDate(date)) {\n return date;\n }\n date = new Date(Date.parse(date)); //转换成Date\n const y = date.getFullYear();\n let m = date.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n let d = date.getDate();\n d = d < 10 ? '0' + d : d;\n return y + '年' + m + '月' + d + '日';\n}\n\nexport function formatDate4(date) {\n if (!validateDate(date)) {\n return date;\n }\n date = new Date(Date.parse(date)); //转换成Date\n return date.toLocaleString();\n}\n\nexport function formatDate5(date) {\n if (!validateDate(date)) {\n return date;\n }\n date = new Date(Date.parse(date)); //转换成Date\n return date.toLocaleString('chinese', { hour12: false });\n}\n\n// ###,###,###,##0.######\nexport function formatNumber1(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n const length = v.toString().split('.')[1].length;\n switch (length) {\n case 0:\n v = v.toFixed(0);\n break;\n case 1:\n v = v.toFixed(1);\n break;\n case 2:\n v = v.toFixed(2);\n break;\n case 3:\n v = v.toFixed(3);\n break;\n case 4:\n v = v.toFixed(4);\n break;\n case 5:\n v = v.toFixed(5);\n break;\n default:\n v = v.toFixed(6);\n }\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n//###,###,###,##0.00####\nexport function formatNumber2(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n const length = v.toString().split('.')[1].length;\n switch (length) {\n case 0:\n case 1:\n case 2:\n v = v.toFixed(2);\n break;\n case 3:\n v = v.toFixed(3);\n break;\n case 4:\n v = v.toFixed(4);\n break;\n case 5:\n v = v.toFixed(5);\n break;\n default:\n v = v.toFixed(6);\n }\n\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n// ###,###,###,##0.000000\nexport function formatNumber3(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n v = v.toFixed(6);\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n// ###,###,###,##0.000\nexport function formatNumber4(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n v = v.toFixed(3);\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n// ###,###,###,##0.00\nexport function formatNumber5(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n v = v.toFixed(2);\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n// ###,###,###,##0\nexport function formatNumber6(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n v = v.toFixed(0);\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n// ###,##0.00##%\nexport function formatNumber7(v) {\n if (typeof v !== 'number') {\n return v;\n }\n\n const length = v.toString().split('.')[1].length;\n v = v * 100;\n switch (length) {\n case 0:\n case 1:\n case 2:\n v = v.toFixed(2);\n break;\n case 3:\n v = v.toFixed(3);\n break;\n default:\n v = v.toFixed(4);\n }\n\n const res = v.toString().replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res + '%';\n}\n\n/**\n * 将Cascader转义为汉字\n * @param codeList string[]\n * @param emblem 拼接符号\n * @returns\n */\nexport const formateCascaderCode = (\n arr = [],\n codeList,\n fieldNames = { label: 'label', value: 'value', children: 'children' },\n emblem = '/'\n) => {\n if (!codeList || codeList.length === 0) return;\n if (isArray(codeList[0])) {\n const res2 = codeList.map(item => getTreeName(arr, item, fieldNames).join(emblem));\n return res2.join(',');\n } else {\n const res = getTreeName(arr, codeList, fieldNames);\n return res.join(emblem);\n }\n};\n\nconst getTreeName = (\n list = [],\n val = [],\n fieldNames = { label: 'label', value: 'value', children: 'children' }\n) => {\n const nameList = [];\n list.forEach(item => {\n if (val.length === 0) return;\n if (item[fieldNames.value] === val[0]) {\n nameList.push(item[fieldNames.label]);\n if (isArray(item[fieldNames.children])) {\n const res = getTreeName(item[fieldNames.children], val.slice(1), fieldNames);\n nameList.push(...res);\n }\n }\n });\n return nameList;\n};\n/**\n * 将tree转义为汉字\n * @param codeList string[]\n * @param emblem 拼接符号\n * @returns\n */\nexport const formateTreeToName = (\n arr = [],\n codeList,\n fieldNames = { label: 'label', value: 'value', children: 'children' },\n emblem = ','\n) => {\n if (!codeList || codeList.length === 0) return;\n const str = arr.reduce((t, v) => {\n const res = getListName(v, codeList, fieldNames);\n t = [...t, res];\n return t;\n }, []);\n return str.map(item => item[fieldNames.label]).join(emblem);\n};\n\nconst getListName = (val, list, fieldNames) => {\n let res;\n list.forEach(it1 => {\n if (it1[fieldNames.value] === val) {\n res = it1;\n return;\n }\n const childrenList = it1[fieldNames.children] || [];\n if (childrenList.length) {\n res = getListName(val, childrenList, fieldNames);\n }\n });\n return res;\n};\n\n/**\n * 格式化尺寸,支持数字、px、%\n * @param value 尺寸值\n * @param defaultSize 默认尺寸\n * @returns 格式化后的尺寸字符串\n */\nexport function formatSize(value, defaultSize = '') {\n if (value === undefined || value === null || value === '') {\n return defaultSize;\n }\n const strValue = String(value);\n if (strValue.endsWith('px') || strValue.endsWith('%')) {\n return strValue;\n }\n if (!isNaN(Number(strValue))) {\n return `${strValue}px`;\n }\n return strValue;\n}\n"],"names":["formateCascaderCode","arr","codeList","fieldNames","emblem","isArray","item","getTreeName","list","val","nameList","res","formatSize","value","defaultSize","strValue"],"mappings":";AA0OY,MAACA,IAAsB,CAC/BC,IAAM,CAAA,GACNC,GACAC,IAAa,EAAE,OAAO,SAAS,OAAO,SAAS,UAAU,WAAU,GACnEC,IAAS,QACR;AACD,MAAI,GAACF,KAAYA,EAAS,WAAW;AACrC,WAAIG,EAAQH,EAAS,CAAC,CAAC,IACNA,EAAS,IAAI,CAAAI,MAAQC,EAAYN,GAAKK,GAAMH,CAAU,EAAE,KAAKC,CAAM,CAAC,EACrE,KAAK,GAAG,IAERG,EAAYN,GAAKC,GAAUC,CAAU,EACtC,KAAKC,CAAM;AAE9B,GAEMG,IAAc,CAChBC,IAAO,CAAA,GACPC,IAAM,CAAA,GACNN,IAAa,EAAE,OAAO,SAAS,OAAO,SAAS,UAAU,WAAU,MAClE;AACD,QAAMO,IAAW,CAAA;AACjB,SAAAF,EAAK,QAAQ,CAAAF,MAAQ;AACjB,QAAIG,EAAI,WAAW,KACfH,EAAKH,EAAW,KAAK,MAAMM,EAAI,CAAC,MAChCC,EAAS,KAAKJ,EAAKH,EAAW,KAAK,CAAC,GAChCE,EAAQC,EAAKH,EAAW,QAAQ,CAAC,IAAG;AACpC,YAAMQ,IAAMJ,EAAYD,EAAKH,EAAW,QAAQ,GAAGM,EAAI,MAAM,CAAC,GAAGN,CAAU;AAC3E,MAAAO,EAAS,KAAK,GAAGC,CAAG;AAAA,IACxB;AAAA,EAER,CAAC,GACMD;AACX;AA2CO,SAASE,EAAWC,GAAOC,IAAc,IAAI;AAChD,MAA2BD,KAAU,QAAQA,MAAU;AACnD,WAAOC;AAEX,QAAMC,IAAW,OAAOF,CAAK;AAC7B,SAAIE,EAAS,SAAS,IAAI,KAAKA,EAAS,SAAS,GAAG,KAG/C,MAAM,OAAOA,CAAQ,CAAC,IAFhBA,IAGA,GAAGA,CAAQ;AAG1B;"}