mhz-ui 1.0.29 → 1.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/UiBreadcrumbs/UiBreadcrumbs.d.ts +26 -19
- package/dist/UiButton/UiButton.d.ts +32 -33
- package/dist/UiCheckbox/UiCheckbox.d.ts +44 -70
- package/dist/UiCheckbox/UiCheckbox.js +29 -29
- package/dist/UiEditor/UiEditor.d.ts +14 -10
- package/dist/UiEditor/UiEditor.js +2139 -2065
- package/dist/UiField/UiField.d.ts +15 -21
- package/dist/UiInput/UiInput.d.ts +36 -52
- package/dist/UiInput/UiInput.js +42 -41
- package/dist/UiModal/UiModal.d.ts +15 -18
- package/dist/UiModal/UiModal.js +27 -27
- package/dist/UiPagination/UiPagination.d.ts +15 -18
- package/dist/UiPagination/UiPagination.js +18 -18
- package/dist/UiRange/UiRange.d.ts +16 -28
- package/dist/UiRange/UiRange.js +103 -103
- package/dist/UiSearch/UiSearch.d.ts +21 -42
- package/dist/UiSearch/UiSearch.js +98 -98
- package/dist/UiSelect/UiSelect.d.ts +16 -22
- package/dist/UiSelect/UiSelect.js +59 -59
- package/dist/UiSlider/UiSlider.d.ts +14 -24
- package/dist/UiSpoiler/UiSpoiler.d.ts +15 -20
- package/dist/UiSpoiler/UiSpoiler.js +27 -27
- package/dist/UiTable/UiTable.d.ts +18 -29
- package/dist/UiTable/UiTable.js +28 -28
- package/dist/UiUpload/UiUpload.d.ts +42 -63
- package/dist/UiUpload/UiUpload.js +74 -74
- package/dist/{index-e9b7d99f.js → index-c751f319.js} +20 -18
- package/package.json +43 -43
|
@@ -2,25 +2,32 @@ interface ILink {
|
|
|
2
2
|
url: string;
|
|
3
3
|
title?: string;
|
|
4
4
|
}
|
|
5
|
-
|
|
6
|
-
links:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
color:
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
15
|
-
links: {
|
|
16
|
-
type: import("vue").PropType<ILink[]>;
|
|
17
|
-
required: true;
|
|
18
|
-
};
|
|
19
|
-
color: {
|
|
20
|
-
type: import("vue").PropType<"default" | "white">;
|
|
21
|
-
default: string;
|
|
22
|
-
};
|
|
23
|
-
}>>, {
|
|
5
|
+
interface IProps {
|
|
6
|
+
links: ILink[];
|
|
7
|
+
color?: 'white' | 'default';
|
|
8
|
+
}
|
|
9
|
+
declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<IProps>, {
|
|
10
|
+
color: string;
|
|
11
|
+
}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<IProps>, {
|
|
12
|
+
color: string;
|
|
13
|
+
}>>>, {
|
|
24
14
|
color: "default" | "white";
|
|
25
15
|
}, {}>;
|
|
26
16
|
export default _default;
|
|
17
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
18
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
19
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
20
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
21
|
+
} : {
|
|
22
|
+
type: import('vue').PropType<T[K]>;
|
|
23
|
+
required: true;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
type __VLS_WithDefaults<P, D> = {
|
|
27
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
28
|
+
default: D[K];
|
|
29
|
+
}> : P[K];
|
|
30
|
+
};
|
|
31
|
+
type __VLS_Prettify<T> = {
|
|
32
|
+
[K in keyof T]: T[K];
|
|
33
|
+
} & {};
|
|
@@ -1,37 +1,19 @@
|
|
|
1
1
|
import { FunctionalComponent } from 'vue';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
18
|
-
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
19
|
-
type: {
|
|
20
|
-
type: import("vue").PropType<"button" | "submit">;
|
|
21
|
-
default: string;
|
|
22
|
-
};
|
|
23
|
-
layout: {
|
|
24
|
-
type: import("vue").PropType<"primary" | "secondary" | "plain" | "accent" | "gradient">;
|
|
25
|
-
default: string;
|
|
26
|
-
};
|
|
27
|
-
isDisabled: {
|
|
28
|
-
type: import("vue").PropType<boolean>;
|
|
29
|
-
};
|
|
30
|
-
icon: {
|
|
31
|
-
type: import("vue").PropType<FunctionalComponent<{}, {}, any>>;
|
|
32
|
-
default: undefined;
|
|
33
|
-
};
|
|
34
|
-
}>>, {
|
|
2
|
+
interface IProps {
|
|
3
|
+
layout?: 'primary' | 'secondary' | 'plain' | 'accent' | 'gradient';
|
|
4
|
+
type?: 'submit' | 'button';
|
|
5
|
+
isDisabled?: boolean;
|
|
6
|
+
icon?: FunctionalComponent;
|
|
7
|
+
}
|
|
8
|
+
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<IProps>, {
|
|
9
|
+
layout: string;
|
|
10
|
+
type: string;
|
|
11
|
+
icon: undefined;
|
|
12
|
+
}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<IProps>, {
|
|
13
|
+
layout: string;
|
|
14
|
+
type: string;
|
|
15
|
+
icon: undefined;
|
|
16
|
+
}>>>, {
|
|
35
17
|
type: "button" | "submit";
|
|
36
18
|
layout: "primary" | "secondary" | "plain" | "accent" | "gradient";
|
|
37
19
|
icon: FunctionalComponent<{}, {}, any>;
|
|
@@ -39,6 +21,23 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
39
21
|
default?(_: {}): any;
|
|
40
22
|
}>;
|
|
41
23
|
export default _default;
|
|
24
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
25
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
26
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
27
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
28
|
+
} : {
|
|
29
|
+
type: import('vue').PropType<T[K]>;
|
|
30
|
+
required: true;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
type __VLS_WithDefaults<P, D> = {
|
|
34
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
35
|
+
default: D[K];
|
|
36
|
+
}> : P[K];
|
|
37
|
+
};
|
|
38
|
+
type __VLS_Prettify<T> = {
|
|
39
|
+
[K in keyof T]: T[K];
|
|
40
|
+
} & {};
|
|
42
41
|
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
43
42
|
new (): {
|
|
44
43
|
$slots: S;
|
|
@@ -1,75 +1,32 @@
|
|
|
1
1
|
type InitialValue = boolean | string | number;
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
modelValue:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
};
|
|
22
|
-
labelSwitcher: {
|
|
23
|
-
type: import("vue").PropType<string>;
|
|
24
|
-
default: string;
|
|
25
|
-
};
|
|
26
|
-
error: {
|
|
27
|
-
type: import("vue").PropType<string | boolean>;
|
|
28
|
-
default: boolean;
|
|
29
|
-
};
|
|
30
|
-
isRequired: {
|
|
31
|
-
type: import("vue").PropType<boolean>;
|
|
32
|
-
};
|
|
33
|
-
isSwitcher: {
|
|
34
|
-
type: import("vue").PropType<boolean>;
|
|
35
|
-
};
|
|
36
|
-
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
2
|
+
interface IProps {
|
|
3
|
+
initialValue?: InitialValue;
|
|
4
|
+
modelValue?: InitialValue;
|
|
5
|
+
label?: string;
|
|
6
|
+
labelSub?: string;
|
|
7
|
+
labelSwitcher?: string;
|
|
8
|
+
error?: string | boolean;
|
|
9
|
+
isRequired?: boolean;
|
|
10
|
+
isDisabled?: boolean;
|
|
11
|
+
isSwitcher?: boolean;
|
|
12
|
+
}
|
|
13
|
+
declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<IProps>, {
|
|
14
|
+
modelValue: boolean;
|
|
15
|
+
initialValue: boolean;
|
|
16
|
+
label: string;
|
|
17
|
+
labelSub: string;
|
|
18
|
+
labelSwitcher: string;
|
|
19
|
+
error: boolean;
|
|
20
|
+
}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
37
21
|
"update:modelValue": (...args: any[]) => void;
|
|
38
|
-
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
initialValue: {
|
|
47
|
-
type: import("vue").PropType<InitialValue>;
|
|
48
|
-
default: boolean;
|
|
49
|
-
};
|
|
50
|
-
modelValue: {
|
|
51
|
-
type: import("vue").PropType<InitialValue>;
|
|
52
|
-
default: boolean;
|
|
53
|
-
};
|
|
54
|
-
labelSub: {
|
|
55
|
-
type: import("vue").PropType<string>;
|
|
56
|
-
default: string;
|
|
57
|
-
};
|
|
58
|
-
labelSwitcher: {
|
|
59
|
-
type: import("vue").PropType<string>;
|
|
60
|
-
default: string;
|
|
61
|
-
};
|
|
62
|
-
error: {
|
|
63
|
-
type: import("vue").PropType<string | boolean>;
|
|
64
|
-
default: boolean;
|
|
65
|
-
};
|
|
66
|
-
isRequired: {
|
|
67
|
-
type: import("vue").PropType<boolean>;
|
|
68
|
-
};
|
|
69
|
-
isSwitcher: {
|
|
70
|
-
type: import("vue").PropType<boolean>;
|
|
71
|
-
};
|
|
72
|
-
}>> & {
|
|
22
|
+
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<IProps>, {
|
|
23
|
+
modelValue: boolean;
|
|
24
|
+
initialValue: boolean;
|
|
25
|
+
label: string;
|
|
26
|
+
labelSub: string;
|
|
27
|
+
labelSwitcher: string;
|
|
28
|
+
error: boolean;
|
|
29
|
+
}>>> & {
|
|
73
30
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
74
31
|
}, {
|
|
75
32
|
label: string;
|
|
@@ -80,3 +37,20 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
80
37
|
error: string | boolean;
|
|
81
38
|
}, {}>;
|
|
82
39
|
export default _default;
|
|
40
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
41
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
42
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
43
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
44
|
+
} : {
|
|
45
|
+
type: import('vue').PropType<T[K]>;
|
|
46
|
+
required: true;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
type __VLS_WithDefaults<P, D> = {
|
|
50
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
51
|
+
default: D[K];
|
|
52
|
+
}> : P[K];
|
|
53
|
+
};
|
|
54
|
+
type __VLS_Prettify<T> = {
|
|
55
|
+
[K in keyof T]: T[K];
|
|
56
|
+
} & {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./UiCheckbox.css";
|
|
2
|
-
import { defineComponent as
|
|
3
|
-
import { _ as
|
|
4
|
-
const u = !1, d = "",
|
|
2
|
+
import { defineComponent as p, ref as y, openBlock as l, createElementBlock as a, withModifiers as f, normalizeClass as s, toDisplayString as r, createCommentVNode as i, createElementVNode as c, withKeys as m } from "vue";
|
|
3
|
+
import { _ as S } from "../_plugin-vue_export-helper-dad06003.js";
|
|
4
|
+
const u = !1, d = "", w = ["data-disabled"], x = { key: 1 }, L = { "data-test": "ui-checkbox-label" }, $ = ["value", "checked", "disabled"], q = ["data-switcher", "data-disabled", "data-error"], V = { key: 2 }, g = { "data-test": "ui-checkbox-label-switcher" }, v = /* @__PURE__ */ p({
|
|
5
5
|
__name: "UiCheckbox",
|
|
6
6
|
props: {
|
|
7
7
|
initialValue: { type: [Boolean, String, Number], default: u },
|
|
@@ -16,15 +16,15 @@ const u = !1, d = "", S = ["data-disabled"], w = { key: 1 }, x = { "data-test":
|
|
|
16
16
|
},
|
|
17
17
|
emits: ["update:modelValue"],
|
|
18
18
|
setup(b, { emit: h }) {
|
|
19
|
-
const e = b, o =
|
|
20
|
-
function
|
|
19
|
+
const e = b, k = h, o = y();
|
|
20
|
+
function _() {
|
|
21
21
|
if (o.value) {
|
|
22
22
|
let t;
|
|
23
|
-
o.value.checked ? t = e.initialValue ? e.initialValue : !0 : t = !1,
|
|
23
|
+
o.value.checked ? t = e.initialValue ? e.initialValue : !0 : t = !1, k("update:modelValue", t);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
return (t, n) => (l(), a("label", {
|
|
27
|
-
onClick: n[1] || (n[1] =
|
|
27
|
+
onClick: n[1] || (n[1] = f(() => {
|
|
28
28
|
}, ["stop"])),
|
|
29
29
|
"data-disabled": e.isDisabled,
|
|
30
30
|
class: s(t.$style.checkbox),
|
|
@@ -35,8 +35,8 @@ const u = !1, d = "", S = ["data-disabled"], w = { key: 1 }, x = { "data-test":
|
|
|
35
35
|
class: s(t.$style.required),
|
|
36
36
|
"data-test": "ui-checkbox-error"
|
|
37
37
|
}, r(e.error), 3)) : i("", !0),
|
|
38
|
-
e.label ? (l(), a("span",
|
|
39
|
-
c("span",
|
|
38
|
+
e.label ? (l(), a("span", x, [
|
|
39
|
+
c("span", L, r(e.label), 1),
|
|
40
40
|
e.labelSub ? (l(), a("span", {
|
|
41
41
|
key: 0,
|
|
42
42
|
class: s(t.$style.labelSub),
|
|
@@ -49,7 +49,7 @@ const u = !1, d = "", S = ["data-disabled"], w = { key: 1 }, x = { "data-test":
|
|
|
49
49
|
}, "*", 2)) : i("", !0)
|
|
50
50
|
])) : i("", !0),
|
|
51
51
|
c("input", {
|
|
52
|
-
onChange:
|
|
52
|
+
onChange: _,
|
|
53
53
|
type: "checkbox",
|
|
54
54
|
ref_key: "checkbox",
|
|
55
55
|
ref: o,
|
|
@@ -59,9 +59,9 @@ const u = !1, d = "", S = ["data-disabled"], w = { key: 1 }, x = { "data-test":
|
|
|
59
59
|
class: s(t.$style.input),
|
|
60
60
|
tabindex: "-1",
|
|
61
61
|
"data-test": "ui-checkbox-input"
|
|
62
|
-
}, null, 42,
|
|
62
|
+
}, null, 42, $),
|
|
63
63
|
c("div", {
|
|
64
|
-
onKeydown: n[0] || (n[0] =
|
|
64
|
+
onKeydown: n[0] || (n[0] = m((K) => o.value?.click(), ["space"])),
|
|
65
65
|
"data-switcher": e.isSwitcher,
|
|
66
66
|
"data-disabled": e.isDisabled,
|
|
67
67
|
"data-error": !!e.error,
|
|
@@ -79,29 +79,29 @@ const u = !1, d = "", S = ["data-disabled"], w = { key: 1 }, x = { "data-test":
|
|
|
79
79
|
class: s([t.$style.line, t.$style.rightLine]),
|
|
80
80
|
"data-test": "ui-checkbox-line"
|
|
81
81
|
}, null, 2))
|
|
82
|
-
], 42,
|
|
83
|
-
e.labelSwitcher ? (l(), a("span",
|
|
84
|
-
c("span",
|
|
82
|
+
], 42, q),
|
|
83
|
+
e.labelSwitcher ? (l(), a("span", V, [
|
|
84
|
+
c("span", g, r(e.labelSwitcher), 1),
|
|
85
85
|
e.isRequired ? (l(), a("span", {
|
|
86
86
|
key: 0,
|
|
87
87
|
class: s(t.$style.required),
|
|
88
88
|
"data-test": "ui-checkbox-required-switcher"
|
|
89
89
|
}, "*", 2)) : i("", !0)
|
|
90
90
|
])) : i("", !0)
|
|
91
|
-
], 10,
|
|
91
|
+
], 10, w));
|
|
92
92
|
}
|
|
93
|
-
}),
|
|
94
|
-
checkbox:
|
|
95
|
-
fake:
|
|
96
|
-
input:
|
|
97
|
-
line:
|
|
98
|
-
leftLine:
|
|
99
|
-
rightLine:
|
|
100
|
-
labelSub:
|
|
101
|
-
required:
|
|
102
|
-
},
|
|
103
|
-
$style:
|
|
104
|
-
},
|
|
93
|
+
}), B = "_checkbox_1931l_1", C = "_fake_1931l_10", D = "_input_1931l_20", E = "_line_1931l_46", U = "_leftLine_1931l_52", A = "_rightLine_1931l_58", M = "_labelSub_1931l_122", N = "_required_1931l_127", R = {
|
|
94
|
+
checkbox: B,
|
|
95
|
+
fake: C,
|
|
96
|
+
input: D,
|
|
97
|
+
line: E,
|
|
98
|
+
leftLine: U,
|
|
99
|
+
rightLine: A,
|
|
100
|
+
labelSub: M,
|
|
101
|
+
required: N
|
|
102
|
+
}, F = {
|
|
103
|
+
$style: R
|
|
104
|
+
}, O = /* @__PURE__ */ S(v, [["__cssModules", F]]);
|
|
105
105
|
export {
|
|
106
|
-
|
|
106
|
+
O as default
|
|
107
107
|
};
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
modelValue
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
1
|
+
interface IProps {
|
|
2
|
+
modelValue?: string;
|
|
3
|
+
}
|
|
4
|
+
declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<IProps>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
5
|
"update:modelValue": (...args: any[]) => void;
|
|
7
|
-
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
8
|
-
modelValue: {
|
|
9
|
-
type: import("vue").PropType<string>;
|
|
10
|
-
};
|
|
11
|
-
}>> & {
|
|
6
|
+
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<IProps>>> & {
|
|
12
7
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
13
8
|
}, {}, {}>;
|
|
14
9
|
export default _default;
|
|
10
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
11
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
12
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
13
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
14
|
+
} : {
|
|
15
|
+
type: import('vue').PropType<T[K]>;
|
|
16
|
+
required: true;
|
|
17
|
+
};
|
|
18
|
+
};
|