orion-design 0.1.8 → 0.1.10
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/README.md +5 -5
- package/dist/components/Button/index.js +11 -10
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Form/FileInput/FileInput.vue.d.ts +1 -1
- package/dist/components/Form/hooks/FormItemValidateTrigger.d.ts +15 -0
- package/dist/components/Form/hooks/FormItemValidateTrigger.js +18 -0
- package/dist/components/Form/hooks/FormItemValidateTrigger.js.map +1 -0
- package/dist/components/Form/hooks/index.d.ts +10 -0
- package/dist/components/Form/hooks/index.js +83 -0
- package/dist/components/Form/hooks/index.js.map +1 -0
- package/dist/components/Form/index.js +180 -182
- package/dist/components/Form/index.js.map +1 -1
- package/dist/components/Pagetable/columns/PagetableCellButton.d.ts +7 -7
- package/dist/components/Pagetable/index.js +182 -180
- package/dist/components/Pagetable/index.js.map +1 -1
- package/dist/components/Pagetable/utils/index.js +82 -82
- package/dist/components/Pagetable/utils/index.js.map +1 -1
- package/dist/components/_util/arrays.js.map +1 -1
- package/dist/components/_util/browser.js.map +1 -1
- package/dist/components/_util/dom/aria.js.map +1 -1
- package/dist/components/_util/dom/element.js.map +1 -1
- package/dist/components/_util/dom/event.js.map +1 -1
- package/dist/components/_util/dom/position.js.map +1 -1
- package/dist/components/_util/dom/scroll.js.map +1 -1
- package/dist/components/_util/dom/style.js.map +1 -1
- package/dist/components/_util/easings.js.map +1 -1
- package/dist/components/_util/error.js.map +1 -1
- package/dist/components/_util/i18n.js.map +1 -1
- package/dist/components/_util/objects.js.map +1 -1
- package/dist/components/_util/raf.js.map +1 -1
- package/dist/components/_util/rand.js.map +1 -1
- package/dist/components/_util/strings.js.map +1 -1
- package/dist/components/_util/throttleByRaf.js.map +1 -1
- package/dist/components/_util/types.js.map +1 -1
- package/dist/components/_util/typescript.js.map +1 -1
- package/dist/components/_util/vue/global-node.js.map +1 -1
- package/dist/components/_util/vue/icon.js.map +1 -1
- package/dist/components/_util/vue/install.js.map +1 -1
- package/dist/components/_util/vue/props/runtime.js.map +1 -1
- package/dist/components/_util/vue/refs.js.map +1 -1
- package/dist/components/_util/vue/size.js.map +1 -1
- package/dist/components/_util/vue/validator.js.map +1 -1
- package/dist/components/_util/vue/vnode.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/version/version.d.ts +1 -1
- package/dist/version/version.js +1 -1
- package/dist/version/version.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/Form/hooks/useForm.d.ts +0 -9
- package/dist/components/Form/hooks/useForm.js +0 -81
- package/dist/components/Form/hooks/useForm.js.map +0 -1
package/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
# Vue 3 + TypeScript + Vite
|
2
|
-
|
3
|
-
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
4
|
-
|
5
|
-
Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).
|
1
|
+
# Vue 3 + TypeScript + Vite
|
2
|
+
|
3
|
+
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
4
|
+
|
5
|
+
Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).
|
@@ -1,32 +1,33 @@
|
|
1
1
|
import "lodash-es";
|
2
|
-
import { defineComponent as
|
2
|
+
import { defineComponent as o, openBlock as n, createBlock as s, unref as u, withCtx as l, renderSlot as a, computed as i, createElementBlock as p, normalizeStyle as m, createVNode as c } from "vue";
|
3
3
|
import { withInstall as f } from "../_util/vue/install.js";
|
4
4
|
import { ElButton as _ } from "element-plus";
|
5
5
|
import { S as d } from "../../index-BbsXWo7C.js";
|
6
|
-
const g = /* @__PURE__ */
|
6
|
+
const g = /* @__PURE__ */ o({
|
7
7
|
name: "OButton",
|
8
8
|
__name: "Button",
|
9
|
-
setup(
|
10
|
-
return (t, e) => (n(),
|
9
|
+
setup(r) {
|
10
|
+
return (t, e) => (n(), s(u(_), null, {
|
11
11
|
default: l(() => [
|
12
12
|
a(t.$slots, "default")
|
13
13
|
]),
|
14
14
|
_: 3
|
15
15
|
}));
|
16
16
|
}
|
17
|
-
}), B = /* @__PURE__ */
|
17
|
+
}), B = /* @__PURE__ */ o({
|
18
18
|
name: "OButtongroup",
|
19
|
+
inheritAttrs: !1,
|
19
20
|
__name: "ButtonGroup",
|
20
21
|
props: {
|
21
22
|
gutter: { type: [Boolean, String] },
|
22
23
|
align: { default: "right" }
|
23
24
|
},
|
24
|
-
setup(
|
25
|
-
const t =
|
26
|
-
textAlign:
|
25
|
+
setup(r) {
|
26
|
+
const t = i(() => ({
|
27
|
+
textAlign: r.align
|
27
28
|
}));
|
28
|
-
return (e, h) => (n(),
|
29
|
-
style:
|
29
|
+
return (e, h) => (n(), p("div", {
|
30
|
+
style: m(t.value)
|
30
31
|
}, [
|
31
32
|
c(u(d), { gutter: e.gutter }, {
|
32
33
|
default: l(() => [
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Button/ButtonGroup/ButtonGroup.vue","../../../src/components/Button/index.ts"],"sourcesContent":["<template>\r\n <div :style=\"style\">\r\n <space :gutter=\"gutter\"> <slot></slot> </space>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, CSSProperties } from 'vue'\r\nimport type { ButtonGroupProps } from './ButtonGroup'\r\nimport Space from '../../Space'\r\n\r\ndefineOptions({ name: 'OButtongroup' })\r\n\r\nconst { gutter, align = 'right' } = defineProps<ButtonGroupProps>()\r\nconst style = computed<CSSProperties>(() => {\r\n return {\r\n textAlign: align
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Button/ButtonGroup/ButtonGroup.vue","../../../src/components/Button/index.ts"],"sourcesContent":["<template>\r\n <div :style=\"style\">\r\n <space :gutter=\"gutter\"> <slot></slot> </space>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, CSSProperties } from 'vue'\r\nimport type { ButtonGroupProps } from './ButtonGroup'\r\nimport Space from '../../Space'\r\n\r\ndefineOptions({ name: 'OButtongroup', inheritAttrs: false })\r\n\r\nconst { gutter, align = 'right' } = defineProps<ButtonGroupProps>()\r\nconst style = computed<CSSProperties>(() => {\r\n return {\r\n textAlign: align,\r\n }\r\n})\r\n</script>\r\n","import { withInstall } from '../_util'\r\n\r\nimport Button from './Button.vue'\r\nimport ButtonGroup from './ButtonGroup/ButtonGroup.vue'\r\n\r\nexport default withInstall<typeof Button, { ButtonGroup: typeof ButtonGroup }>(Button, {\r\n ButtonGroup\r\n})\r\n"],"names":["style","computed","__props","index","withInstall","Button","ButtonGroup"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAcM,UAAAA,IAAQC,EAAwB,OAC7B;AAAA,MACL,WAAWC,EAAA;AAAA,IAAA,EAEd;;;;;;;;;;;;ICbcC,IAAAC,EAAgEC,GAAQ;AAAA,EAAA,aACrFC;AACF,CAAC;"}
|
@@ -164,7 +164,7 @@ declare const _default: import('vue').DefineComponent<FileInputProps, {}, {}, {}
|
|
164
164
|
$root: import('vue').ComponentPublicInstance | null;
|
165
165
|
$parent: import('vue').ComponentPublicInstance | null;
|
166
166
|
$host: Element | null;
|
167
|
-
$emit: ((event: "input", value: string) => void) & ((event: "clear") => void) & ((event: "focus", evt: FocusEvent) => void) & ((event: "update:modelValue", value: string) => void) & ((event: "
|
167
|
+
$emit: ((event: "input", value: string) => void) & ((event: "clear") => void) & ((event: "focus", evt: FocusEvent) => void) & ((event: "update:modelValue", value: string) => void) & ((event: "blur", evt: FocusEvent) => void) & ((event: "change", value: string) => void) & ((event: "compositionend", evt: CompositionEvent) => void) & ((event: "compositionstart", evt: CompositionEvent) => void) & ((event: "compositionupdate", evt: CompositionEvent) => void) & ((event: "keydown", evt: Event | KeyboardEvent) => void) & ((event: "mouseenter", evt: MouseEvent) => void) & ((event: "mouseleave", evt: MouseEvent) => void);
|
168
168
|
$el: any;
|
169
169
|
$options: import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
|
170
170
|
readonly ariaLabel: StringConstructor;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
declare const _default: {
|
2
|
+
OFormString: string;
|
3
|
+
OFormSingleselect: string;
|
4
|
+
OFormMultiselect: string;
|
5
|
+
OFormRadiogroup: string;
|
6
|
+
OFormCheckboxgroup: string;
|
7
|
+
OFormCheckbox: string;
|
8
|
+
OFormSwitch: string;
|
9
|
+
OFormTextarea: string;
|
10
|
+
OFormPassword: string;
|
11
|
+
OFormDate: string;
|
12
|
+
OFormFile: string;
|
13
|
+
OFormDiy: string;
|
14
|
+
};
|
15
|
+
export default _default;
|
@@ -0,0 +1,18 @@
|
|
1
|
+
const r = {
|
2
|
+
OFormString: "blur",
|
3
|
+
OFormSingleselect: "change",
|
4
|
+
OFormMultiselect: "change",
|
5
|
+
OFormRadiogroup: "change",
|
6
|
+
OFormCheckboxgroup: "change",
|
7
|
+
OFormCheckbox: "change",
|
8
|
+
OFormSwitch: "change",
|
9
|
+
OFormTextarea: "blur",
|
10
|
+
OFormPassword: "blur",
|
11
|
+
OFormDate: "blur",
|
12
|
+
OFormFile: "blur",
|
13
|
+
OFormDiy: "blur"
|
14
|
+
};
|
15
|
+
export {
|
16
|
+
r as default
|
17
|
+
};
|
18
|
+
//# sourceMappingURL=FormItemValidateTrigger.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"FormItemValidateTrigger.js","sources":["../../../../src/components/Form/hooks/FormItemValidateTrigger.ts"],"sourcesContent":["export default {\r\n OFormString: 'blur',\r\n OFormSingleselect: 'change',\r\n OFormMultiselect: 'change',\r\n OFormRadiogroup: 'change',\r\n OFormCheckboxgroup: 'change',\r\n OFormCheckbox: 'change',\r\n OFormSwitch: 'change',\r\n OFormTextarea: 'blur',\r\n OFormPassword: 'blur',\r\n OFormDate: 'blur',\r\n OFormFile: 'blur',\r\n OFormDiy: 'blur',\r\n}\r\n"],"names":["formItemValidateTrigger"],"mappings":"AAAA,MAAeA,IAAA;AAAA,EACb,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,aAAa;AAAA,EACb,eAAe;AAAA,EACf,eAAe;AAAA,EACf,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AACZ;"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { CodeItem } from '../../types';
|
2
|
+
declare const useFormContext: () => import('..').FormContext | undefined;
|
3
|
+
declare const useFormItemSpan: () => import('vue').ComputedRef<number>;
|
4
|
+
declare const useFormItemRules: () => import('vue').ComputedRef<import('element-plus').FormItemRule[]>;
|
5
|
+
declare const useFormItemDisabled: () => import('vue').ComputedRef<boolean>;
|
6
|
+
declare const useFormItemCode: () => import('vue').ComputedRef<CodeItem[]>;
|
7
|
+
declare const useFormItemStringModel: () => import('vue').WritableComputedRef<string, string>;
|
8
|
+
declare const useFormItemMultiModel: () => import('vue').WritableComputedRef<string[] | undefined, string[] | undefined>;
|
9
|
+
declare const useFormItemBooleanModel: () => import('vue').WritableComputedRef<boolean, boolean>;
|
10
|
+
export { useFormContext, useFormItemSpan, useFormItemRules, useFormItemDisabled, useFormItemCode, useFormItemStringModel, useFormItemMultiModel, useFormItemBooleanModel, };
|
@@ -0,0 +1,83 @@
|
|
1
|
+
import { inject as C, getCurrentInstance as s, computed as n } from "vue";
|
2
|
+
import { formContextKey as M } from "../Form.js";
|
3
|
+
import V from "../../../Throne/index.js";
|
4
|
+
import { castArray as p, isString as x, isArray as I } from "lodash-es";
|
5
|
+
import f from "../../../error/OrionError.js";
|
6
|
+
import F from "./FormItemValidateTrigger.js";
|
7
|
+
const u = () => C(M), S = () => {
|
8
|
+
const e = u(), { props: r } = s();
|
9
|
+
return n(() => r.span ? r.span : e.itemSpan);
|
10
|
+
}, O = () => {
|
11
|
+
const e = u(), { props: r, type: o } = s(), { name: t, label: l, required: m } = r;
|
12
|
+
let a = F[o.name];
|
13
|
+
return a || (a = "change"), n(() => {
|
14
|
+
const c = [];
|
15
|
+
let i = !0;
|
16
|
+
return m && (r.rules && (c.push(...p(r.rules)), i = !c.some((d) => Object.keys(d).includes("required"))), e.rules && e.rules[t] && (i = !p(e.rules[t]).some((g) => Object.keys(g).includes("required")))), i && c.push({
|
17
|
+
required: !0,
|
18
|
+
message: `必填项[${l || t}]不能为空`,
|
19
|
+
trigger: a
|
20
|
+
}), c;
|
21
|
+
});
|
22
|
+
}, R = () => {
|
23
|
+
const e = u(), { props: r } = s();
|
24
|
+
return n(() => e.disabled || r.disabled);
|
25
|
+
}, k = () => {
|
26
|
+
let e;
|
27
|
+
const { props: r } = s(), { code: o } = r;
|
28
|
+
if (o)
|
29
|
+
if (x(o))
|
30
|
+
e = V.getCode(o).value;
|
31
|
+
else if (I(o))
|
32
|
+
e = o;
|
33
|
+
else
|
34
|
+
throw new f("code类型错误");
|
35
|
+
else throw new f("code为空");
|
36
|
+
return n(() => e);
|
37
|
+
}, w = () => {
|
38
|
+
const e = u(), { props: r } = s(), { name: o } = r;
|
39
|
+
return n({
|
40
|
+
get: () => {
|
41
|
+
const t = e.modelValue[o];
|
42
|
+
return t || "";
|
43
|
+
},
|
44
|
+
set: (t) => {
|
45
|
+
t ? e.updateModelValue(o, t) : e.updateModelValue(o, "");
|
46
|
+
}
|
47
|
+
});
|
48
|
+
}, A = () => {
|
49
|
+
const e = u(), { props: r } = s(), { name: o } = r;
|
50
|
+
return n({
|
51
|
+
get: () => {
|
52
|
+
const t = e.modelValue[o];
|
53
|
+
if (t)
|
54
|
+
return t.split(",");
|
55
|
+
},
|
56
|
+
set: (t) => {
|
57
|
+
t ? e.updateModelValue(o, t.join(",")) : e.updateModelValue(o, "");
|
58
|
+
}
|
59
|
+
});
|
60
|
+
}, D = () => {
|
61
|
+
const e = u(), { props: r } = s(), { name: o } = r;
|
62
|
+
return n({
|
63
|
+
get: () => {
|
64
|
+
const t = e.modelValue[o];
|
65
|
+
return t ? t == "1" : !1;
|
66
|
+
},
|
67
|
+
set: (t) => {
|
68
|
+
const l = e.modelValue[o], m = t ? "1" : "0";
|
69
|
+
(l || t) && e.updateModelValue(o, m);
|
70
|
+
}
|
71
|
+
});
|
72
|
+
};
|
73
|
+
export {
|
74
|
+
u as useFormContext,
|
75
|
+
D as useFormItemBooleanModel,
|
76
|
+
k as useFormItemCode,
|
77
|
+
R as useFormItemDisabled,
|
78
|
+
A as useFormItemMultiModel,
|
79
|
+
O as useFormItemRules,
|
80
|
+
S as useFormItemSpan,
|
81
|
+
w as useFormItemStringModel
|
82
|
+
};
|
83
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Form/hooks/index.ts"],"sourcesContent":["import { inject, getCurrentInstance, computed } from 'vue'\r\nimport { formContextKey, FormItemRule } from '../Form'\r\nimport Throne from '../../../Throne'\r\nimport { CodeItem } from '../../types'\r\nimport { castArray, isArray, isString } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\nimport formItemValidateTrigger from './FormItemValidateTrigger'\r\n\r\nconst useFormContext = () => {\r\n return inject(formContextKey)\r\n}\r\n\r\nconst useFormItemSpan = () => {\r\n const formContext = useFormContext()!\r\n const { props } = getCurrentInstance()!\r\n\r\n return computed(() => (props.span ? (props.span as number) : formContext.itemSpan))\r\n}\r\n\r\nconst useFormItemRules = () => {\r\n const formContext = useFormContext()!\r\n const { props, type } = getCurrentInstance()!\r\n const { name, label, required } = props\r\n let trigger = formItemValidateTrigger[type.name!]\r\n if (!trigger) {\r\n trigger = 'change'\r\n }\r\n\r\n return computed(() => {\r\n const rules: FormItemRule[] = []\r\n let flag = true\r\n\r\n if (required) {\r\n if (props.rules) {\r\n rules.push(...castArray(props.rules))\r\n flag = !rules.some((rule) => Object.keys(rule).includes('required'))\r\n }\r\n if (formContext.rules && formContext.rules[name as string]) {\r\n const formRules = castArray(formContext.rules[name as string])\r\n flag = !formRules.some((rule) => Object.keys(rule).includes('required'))\r\n }\r\n }\r\n\r\n if (flag) {\r\n rules.push({\r\n required: true,\r\n message: `必填项[${label ? label : name}]不能为空`,\r\n trigger: trigger,\r\n })\r\n }\r\n\r\n return rules\r\n })\r\n}\r\n\r\nconst useFormItemDisabled = () => {\r\n const formContext = useFormContext()!\r\n const { props } = getCurrentInstance()!\r\n return computed(() => formContext.disabled || (props.disabled as boolean))\r\n}\r\n\r\nconst useFormItemCode = () => {\r\n let codeData: Array<CodeItem>\r\n const { props } = getCurrentInstance()!\r\n const { code } = props\r\n if (!code) {\r\n throw new OrionError('code为空')\r\n } else if (isString(code)) {\r\n codeData = Throne.getCode(code).value\r\n } else if (isArray<CodeItem>(code)) {\r\n codeData = code\r\n } else {\r\n throw new OrionError('code类型错误')\r\n }\r\n return computed(() => codeData)\r\n}\r\n\r\nconst useFormItemStringModel = () => {\r\n const formContext = useFormContext()!\r\n const { props } = getCurrentInstance()!\r\n const { name } = props\r\n\r\n return computed<string>({\r\n get: () => {\r\n const value = formContext.modelValue[name as string]\r\n if (!value) {\r\n return ''\r\n }\r\n return value as string\r\n },\r\n set: (newValue) => {\r\n if (!newValue) {\r\n formContext.updateModelValue(name as string, '')\r\n } else {\r\n formContext.updateModelValue(name as string, newValue)\r\n }\r\n },\r\n })\r\n}\r\n\r\nconst useFormItemMultiModel = () => {\r\n const formContext = useFormContext()!\r\n const { props } = getCurrentInstance()!\r\n const { name } = props\r\n\r\n return computed<string[] | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name as string]\r\n if (!value) {\r\n return undefined\r\n }\r\n return (value as string).split(',')\r\n },\r\n set: (newValue) => {\r\n if (!newValue) {\r\n formContext.updateModelValue(name as string, '')\r\n } else {\r\n formContext.updateModelValue(name as string, newValue.join(','))\r\n }\r\n },\r\n })\r\n}\r\n\r\nconst useFormItemBooleanModel = () => {\r\n const formContext = useFormContext()!\r\n const { props } = getCurrentInstance()!\r\n const { name } = props\r\n\r\n return computed<boolean>({\r\n get: () => {\r\n const value = formContext.modelValue[name as string]\r\n if (!value) {\r\n return false\r\n }\r\n return (value as string) == '1'\r\n },\r\n set: (_newValue) => {\r\n const oldValue = formContext.modelValue[name as string]\r\n const newValue = _newValue ? '1' : '0'\r\n if (oldValue) {\r\n formContext.updateModelValue(name as string, newValue)\r\n } else {\r\n if (_newValue) {\r\n formContext.updateModelValue(name as string, newValue)\r\n }\r\n }\r\n },\r\n })\r\n}\r\n\r\nexport {\r\n useFormContext,\r\n useFormItemSpan,\r\n useFormItemRules,\r\n useFormItemDisabled,\r\n useFormItemCode,\r\n useFormItemStringModel,\r\n useFormItemMultiModel,\r\n useFormItemBooleanModel,\r\n}\r\n"],"names":["useFormContext","inject","formContextKey","useFormItemSpan","formContext","props","getCurrentInstance","computed","useFormItemRules","type","name","label","required","trigger","formItemValidateTrigger","rules","flag","castArray","rule","useFormItemDisabled","useFormItemCode","codeData","code","isString","Throne","isArray","OrionError","useFormItemStringModel","value","newValue","useFormItemMultiModel","useFormItemBooleanModel","_newValue","oldValue"],"mappings":";;;;;;AAQA,MAAMA,IAAiB,MACdC,EAAOC,CAAc,GAGxBC,IAAkB,MAAM;AAC5B,QAAMC,IAAcJ,KACd,EAAE,OAAAK,MAAUC;AAElB,SAAOC,EAAS,MAAOF,EAAM,OAAQA,EAAM,OAAkBD,EAAY,QAAS;AACpF,GAEMI,IAAmB,MAAM;AAC7B,QAAMJ,IAAcJ,KACd,EAAE,OAAAK,GAAO,MAAAI,EAAK,IAAIH,EAAmB,GACrC,EAAE,MAAAI,GAAM,OAAAC,GAAO,UAAAC,EAAA,IAAaP;AAC9B,MAAAQ,IAAUC,EAAwBL,EAAK,IAAK;AAChD,SAAKI,MACOA,IAAA,WAGLN,EAAS,MAAM;AACpB,UAAMQ,IAAwB,CAAA;AAC9B,QAAIC,IAAO;AAEX,WAAIJ,MACEP,EAAM,UACRU,EAAM,KAAK,GAAGE,EAAUZ,EAAM,KAAK,CAAC,GAC7BW,IAAA,CAACD,EAAM,KAAK,CAACG,MAAS,OAAO,KAAKA,CAAI,EAAE,SAAS,UAAU,CAAC,IAEjEd,EAAY,SAASA,EAAY,MAAMM,CAAc,MAEhDM,IAAA,CADWC,EAAUb,EAAY,MAAMM,CAAc,CAAC,EAC3C,KAAK,CAACQ,MAAS,OAAO,KAAKA,CAAI,EAAE,SAAS,UAAU,CAAC,KAIvEF,KACFD,EAAM,KAAK;AAAA,MACT,UAAU;AAAA,MACV,SAAS,OAAOJ,KAAgBD,CAAI;AAAA,MACpC,SAAAG;AAAA,IAAA,CACD,GAGIE;AAAA,EAAA,CACR;AACH,GAEMI,IAAsB,MAAM;AAChC,QAAMf,IAAcJ,KACd,EAAE,OAAAK,MAAUC;AAClB,SAAOC,EAAS,MAAMH,EAAY,YAAaC,EAAM,QAAoB;AAC3E,GAEMe,IAAkB,MAAM;AACxB,MAAAC;AACE,QAAA,EAAE,OAAAhB,MAAUC,KACZ,EAAE,MAAAgB,EAAS,IAAAjB;AACjB,MAAKiB;AAEL,QAAWC,EAASD,CAAI;AACX,MAAAD,IAAAG,EAAO,QAAQF,CAAI,EAAE;AAAA,aACvBG,EAAkBH,CAAI;AACpB,MAAAD,IAAAC;AAAA;AAEL,YAAA,IAAII,EAAW,UAAU;AAAA,MANzB,OAAA,IAAIA,EAAW,QAAQ;AAQxB,SAAAnB,EAAS,MAAMc,CAAQ;AAChC,GAEMM,IAAyB,MAAM;AACnC,QAAMvB,IAAcJ,KACd,EAAE,OAAAK,MAAUC,KACZ,EAAE,MAAAI,EAAS,IAAAL;AAEjB,SAAOE,EAAiB;AAAA,IACtB,KAAK,MAAM;AACH,YAAAqB,IAAQxB,EAAY,WAAWM,CAAc;AACnD,aAAKkB,KACI;AAAA,IAGX;AAAA,IACA,KAAK,CAACC,MAAa;AACjB,MAAKA,IAGSzB,EAAA,iBAAiBM,GAAgBmB,CAAQ,IAFzCzB,EAAA,iBAAiBM,GAAgB,EAAE;AAAA,IAInD;AAAA,EAAA,CACD;AACH,GAEMoB,IAAwB,MAAM;AAClC,QAAM1B,IAAcJ,KACd,EAAE,OAAAK,MAAUC,KACZ,EAAE,MAAAI,EAAS,IAAAL;AAEjB,SAAOE,EAA+B;AAAA,IACpC,KAAK,MAAM;AACH,YAAAqB,IAAQxB,EAAY,WAAWM,CAAc;AACnD,UAAKkB;AAGG,eAAAA,EAAiB,MAAM,GAAG;AAAA,IACpC;AAAA,IACA,KAAK,CAACC,MAAa;AACjB,MAAKA,IAGHzB,EAAY,iBAAiBM,GAAgBmB,EAAS,KAAK,GAAG,CAAC,IAFnDzB,EAAA,iBAAiBM,GAAgB,EAAE;AAAA,IAInD;AAAA,EAAA,CACD;AACH,GAEMqB,IAA0B,MAAM;AACpC,QAAM3B,IAAcJ,KACd,EAAE,OAAAK,MAAUC,KACZ,EAAE,MAAAI,EAAS,IAAAL;AAEjB,SAAOE,EAAkB;AAAA,IACvB,KAAK,MAAM;AACH,YAAAqB,IAAQxB,EAAY,WAAWM,CAAc;AACnD,aAAKkB,IAGGA,KAAoB,MAFnB;AAAA,IAGX;AAAA,IACA,KAAK,CAACI,MAAc;AACZ,YAAAC,IAAW7B,EAAY,WAAWM,CAAc,GAChDmB,IAAWG,IAAY,MAAM;AACnC,OAAIC,KAGED,MACU5B,EAAA,iBAAiBM,GAAgBmB,CAAQ;AAAA,IAG3D;AAAA,EAAA,CACD;AACH;"}
|