mhz-ui 1.0.35 → 1.0.36
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/UiInput/UiInput.js +14 -14
- package/dist/UiSlider/UiSlider.css +1 -1
- package/dist/UiSlider/UiSlider.js +9 -9
- package/dist/UiUpload/UiUpload.js +38 -38
- package/package.json +17 -17
package/dist/UiInput/UiInput.js
CHANGED
|
@@ -9,12 +9,12 @@ const w = {
|
|
|
9
9
|
}, $ = /* @__PURE__ */ i("path", {
|
|
10
10
|
fill: "currentColor",
|
|
11
11
|
"fill-rule": "evenodd",
|
|
12
|
-
d: "M11.5 11.5v-1c.25.005 2.485-.016 2.734-.
|
|
12
|
+
d: "M11.5 11.5v-1c.25.005 2.485-.016 2.734-.031q.65-.086.735-.735.03-4 0-8-.086-.648-.735-.734-4-.03-8 0-.648.086-.734.734c-.016.25-.005 1.516 0 1.766h-1a69 69 0 0 1 0-2.078Q4.773.273 5.922 0q4.313-.03 8.625 0 1.148.273 1.422 1.422.03 4.313 0 8.625-.273 1.148-1.422 1.422c-.354.015-2.693.036-3.047.031",
|
|
13
13
|
"clip-rule": "evenodd"
|
|
14
14
|
}, null, -1), V = /* @__PURE__ */ i("path", {
|
|
15
15
|
fill: "currentColor",
|
|
16
16
|
"fill-rule": "evenodd",
|
|
17
|
-
d: "M2.5 3.5h1c2.2-.005 4.8-.016 7 0 .923.197 1.285.578 1.5 1.5.016 2.217-.029 5.131-.034 7.348v1.
|
|
17
|
+
d: "M2.5 3.5h1c2.2-.005 4.8-.016 7 0 .923.197 1.285.578 1.5 1.5.016 2.217-.029 5.131-.034 7.348v1.044q.217 1.445-.943 2.298-.36.229-.78.294-4.26.031-8.52 0-1.384-.295-1.707-1.68A666 666 0 0 1 0 5c.215-.922.577-1.303 1.5-1.5.292-.016.707-.005 1 0m-.5 1c2.601-.005 5.399-.016 8 0 .623.06.94.375 1 1 .022 2.608-.07 5.805-.091 8.413q-.09.938-1.024 1.027-3.903.033-7.804 0-.935-.09-1.024-1.027C1.035 11.305.978 8.108 1 5.5c0-.697.383-.93 1-1",
|
|
18
18
|
"clip-rule": "evenodd"
|
|
19
19
|
}, null, -1), x = [
|
|
20
20
|
$,
|
|
@@ -23,7 +23,7 @@ const w = {
|
|
|
23
23
|
function M(d, s) {
|
|
24
24
|
return a(), p("svg", w, [...x]);
|
|
25
25
|
}
|
|
26
|
-
const
|
|
26
|
+
const q = { render: M }, D = ["data-mode", "tabindex"], F = ["value", "disabled", "data-mode", "data-center", "data-append-icon", "tabindex"], N = /* @__PURE__ */ f({
|
|
27
27
|
__name: "UiInput",
|
|
28
28
|
props: {
|
|
29
29
|
modelValue: { type: [String, Number, Boolean, null], default: "" },
|
|
@@ -68,23 +68,23 @@ const D = { render: M }, F = ["data-mode", "tabindex"], N = ["value", "disabled"
|
|
|
68
68
|
tabindex: e.mode === "default" ? "0" : "-1",
|
|
69
69
|
"data-test": "ui-input",
|
|
70
70
|
"aria-label": "input"
|
|
71
|
-
}), null, 16,
|
|
72
|
-
e.appendIcon || e.isCopy ? (a(), g(k(e.isCopy ? b(
|
|
71
|
+
}), null, 16, F),
|
|
72
|
+
e.appendIcon || e.isCopy ? (a(), g(k(e.isCopy ? b(q) : e.appendIcon), {
|
|
73
73
|
key: 0,
|
|
74
74
|
onClick: m,
|
|
75
75
|
class: u(t.$style.icon),
|
|
76
76
|
"data-copy": e.isCopy,
|
|
77
77
|
"data-test": "ui-input-icon"
|
|
78
78
|
}, null, 8, ["class", "data-copy"])) : B("", !0)
|
|
79
|
-
], 42,
|
|
79
|
+
], 42, D));
|
|
80
80
|
}
|
|
81
|
-
}),
|
|
82
|
-
inputBlock:
|
|
83
|
-
input:
|
|
84
|
-
icon:
|
|
85
|
-
},
|
|
86
|
-
$style:
|
|
87
|
-
},
|
|
81
|
+
}), E = "_inputBlock_18lh2_1", K = "_input_18lh2_1", S = "_icon_18lh2_47", T = {
|
|
82
|
+
inputBlock: E,
|
|
83
|
+
input: K,
|
|
84
|
+
icon: S
|
|
85
|
+
}, U = {
|
|
86
|
+
$style: T
|
|
87
|
+
}, A = /* @__PURE__ */ I(N, [["__cssModules", U]]);
|
|
88
88
|
export {
|
|
89
|
-
|
|
89
|
+
A as default
|
|
90
90
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
._container_1v0ub_1{display:flex;gap:8px}._thumbs_1v0ub_6{display:flex;flex-direction:column;flex-shrink:0;gap:8px}._thumb_1v0ub_6{padding:8px;cursor:pointer;background:none;border:1px solid var(--color-gray);border-radius:8px}._thumb_1v0ub_6:hover,._thumb_1v0ub_6[data-active=true]{border:1px solid var(--color-gray-dark-extra)}._slide_1v0ub_24{flex-grow:1}@media (max-width: 960px){._container_1v0ub_1{flex-direction:column-reverse;gap:16px}._thumbs_1v0ub_6{flex-direction:row}}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./UiSlider.css";
|
|
2
|
-
import { defineComponent as u, ref as d, openBlock as i, createElementBlock as
|
|
2
|
+
import { defineComponent as u, ref as d, openBlock as i, createElementBlock as r, normalizeClass as l, createElementVNode as a, Fragment as m, renderList as _ } from "vue";
|
|
3
3
|
import { _ as h } from "../_plugin-vue_export-helper-hUChTQA_.js";
|
|
4
4
|
const p = ["onClick", "data-active"], b = ["src", "alt"], v = ["src", "alt", "data-slide"], $ = /* @__PURE__ */ u({
|
|
5
5
|
__name: "UiSlider",
|
|
@@ -8,15 +8,15 @@ const p = ["onClick", "data-active"], b = ["src", "alt"], v = ["src", "alt", "da
|
|
|
8
8
|
slides: {},
|
|
9
9
|
path: {}
|
|
10
10
|
},
|
|
11
|
-
setup(
|
|
12
|
-
const s =
|
|
13
|
-
return (e, B) => (i(),
|
|
11
|
+
setup(c) {
|
|
12
|
+
const s = c, t = d(0);
|
|
13
|
+
return (e, B) => (i(), r("div", {
|
|
14
14
|
class: l(e.$style.container)
|
|
15
15
|
}, [
|
|
16
16
|
a("div", {
|
|
17
17
|
class: l(e.$style.thumbs)
|
|
18
18
|
}, [
|
|
19
|
-
(i(!0),
|
|
19
|
+
(i(!0), r(m, null, _(s.thumbs, (o, n) => (i(), r("button", {
|
|
20
20
|
key: o,
|
|
21
21
|
onClick: (E) => t.value = n,
|
|
22
22
|
type: "button",
|
|
@@ -46,11 +46,11 @@ const p = ["onClick", "data-active"], b = ["src", "alt"], v = ["src", "alt", "da
|
|
|
46
46
|
], 2)
|
|
47
47
|
], 2));
|
|
48
48
|
}
|
|
49
|
-
}), y = "
|
|
49
|
+
}), y = "_container_1v0ub_1", f = "_thumbs_1v0ub_6", g = "_thumb_1v0ub_6", k = "_slide_1v0ub_24", C = {
|
|
50
50
|
container: y,
|
|
51
|
-
thumbs:
|
|
52
|
-
thumb:
|
|
53
|
-
slide:
|
|
51
|
+
thumbs: f,
|
|
52
|
+
thumb: g,
|
|
53
|
+
slide: k
|
|
54
54
|
}, S = {
|
|
55
55
|
$style: C
|
|
56
56
|
}, w = /* @__PURE__ */ h($, [["__cssModules", S]]);
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import "./UiUpload.css";
|
|
2
|
-
import { openBlock as n, createElementBlock as o, createStaticVNode as
|
|
2
|
+
import { openBlock as n, createElementBlock as o, createStaticVNode as z, defineComponent as I, ref as k, computed as M, normalizeClass as a, createElementVNode as s, toDisplayString as d, createCommentVNode as u, createVNode as p, unref as B, withCtx as f, createTextVNode as r, Fragment as S, renderList as D, withDirectives as F, vShow as N } from "vue";
|
|
3
3
|
import _ from "../UiButton/UiButton.js";
|
|
4
|
-
import { _ as
|
|
4
|
+
import { _ as U } from "../_plugin-vue_export-helper-hUChTQA_.js";
|
|
5
5
|
const m = 10 * 1024 * 1024;
|
|
6
6
|
new File([""], "file1.png");
|
|
7
7
|
new File([""], "file2.png");
|
|
8
|
-
const
|
|
8
|
+
const V = {
|
|
9
9
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10
10
|
width: "16",
|
|
11
11
|
height: "16",
|
|
12
12
|
fill: "none"
|
|
13
|
-
},
|
|
14
|
-
|
|
13
|
+
}, x = /* @__PURE__ */ z('<g fill="currentColor" fill-rule="evenodd" clip-path="url(#a)" clip-rule="evenodd"><path d="M12.219 0h.875Q15.532.469 16 2.906v.875a3.6 3.6 0 0 1-.766 1.719l-4.546 4.547q-1.536 1.189-3.376.562a3.55 3.55 0 0 1-1.234-.828q-.37-.747.39-1.078a1 1 0 0 1 .438.031q.3.253.625.47 1.09.563 2.125-.095 2.288-2.241 4.547-4.515.928-1.322-.062-2.594-1.287-1.184-2.735-.203a143 143 0 0 1-2.531 2.5q-.72.3-1.016-.422a.8.8 0 0 1 .094-.562L10.531.733A3.6 3.6 0 0 1 12.22 0"></path><path d="M3.781 16h-.875Q.47 15.532 0 13.094v-.875q.151-.96.766-1.719l4.172-4.172Q6.594 5.062 8.53 5.86q.46.227.844.563a.75.75 0 0 1 .266.797q-.274.609-.922.422l-.688-.5q-1.065-.513-2.062.125-2.1 2.053-4.172 4.14-.94 1.35.094 2.625 1.189 1.08 2.578.266l2.281-2.219q.88-.318 1.031.594a.7.7 0 0 1-.11.39Q6.587 14.15 5.5 15.235A3.6 3.6 0 0 1 3.781 16"></path></g><defs><clipPath id="a"><path fill="currentColor" d="M0 0h16v16H0z"></path></clipPath></defs>', 2), E = [
|
|
14
|
+
x
|
|
15
15
|
];
|
|
16
|
-
function
|
|
17
|
-
return n(), o("svg",
|
|
16
|
+
function L(v, y) {
|
|
17
|
+
return n(), o("svg", V, [...E]);
|
|
18
18
|
}
|
|
19
|
-
const
|
|
19
|
+
const Q = { render: L }, R = { key: 0 }, j = { "data-test": "ui-upload-label" }, A = ["data-error"], P = ["accept", "multiple"], H = ["data-label"], K = /* @__PURE__ */ I({
|
|
20
20
|
__name: "UiUpload",
|
|
21
21
|
props: {
|
|
22
22
|
label: { default: void 0 },
|
|
@@ -30,23 +30,23 @@ const j = { render: R }, q = { key: 0 }, A = { "data-test": "ui-upload-label" },
|
|
|
30
30
|
},
|
|
31
31
|
emits: ["add", "remove", "upload"],
|
|
32
32
|
setup(v, { emit: y }) {
|
|
33
|
-
const e = v,
|
|
33
|
+
const e = v, c = y, g = k(), h = k(0), C = M(() => e.extensions.map((t) => `.${t}`).join());
|
|
34
34
|
function b() {
|
|
35
35
|
g?.value?.click?.();
|
|
36
36
|
}
|
|
37
37
|
async function $(t) {
|
|
38
|
-
|
|
38
|
+
c("remove", t), h.value++;
|
|
39
39
|
}
|
|
40
|
-
function
|
|
40
|
+
function q(t) {
|
|
41
41
|
if (e.isSingle) {
|
|
42
42
|
const l = t.files?.[0];
|
|
43
|
-
l?.size && l.size < m &&
|
|
43
|
+
l?.size && l.size < m && c("add", l);
|
|
44
44
|
} else {
|
|
45
45
|
const l = t.files;
|
|
46
46
|
if (l === null)
|
|
47
47
|
return;
|
|
48
48
|
for (let i = 0; i < l.length; i++)
|
|
49
|
-
l[i].size && l[i].size < m &&
|
|
49
|
+
l[i].size && l[i].size < m && c("add", l[i]);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
return (t, l) => (n(), o("div", {
|
|
@@ -55,8 +55,8 @@ const j = { render: R }, q = { key: 0 }, A = { "data-test": "ui-upload-label" },
|
|
|
55
55
|
s("div", {
|
|
56
56
|
class: a(t.$style.upload)
|
|
57
57
|
}, [
|
|
58
|
-
e.label ? (n(), o("div",
|
|
59
|
-
s("span",
|
|
58
|
+
e.label ? (n(), o("div", R, [
|
|
59
|
+
s("span", j, d(e.label), 1),
|
|
60
60
|
e.isRequired ? (n(), o("span", {
|
|
61
61
|
key: 0,
|
|
62
62
|
class: a(t.$style.error),
|
|
@@ -70,13 +70,13 @@ const j = { render: R }, q = { key: 0 }, A = { "data-test": "ui-upload-label" },
|
|
|
70
70
|
onClick: b,
|
|
71
71
|
layout: "secondary",
|
|
72
72
|
isDisabled: e.isDisabled || e.isSingle && e.files.length >= 1 || e.isSingle && !!e.file,
|
|
73
|
-
icon: B(
|
|
73
|
+
icon: B(Q),
|
|
74
74
|
"data-test": "ui-upload-add"
|
|
75
75
|
}, {
|
|
76
76
|
default: f(() => [
|
|
77
|
-
|
|
78
|
-
e.isSingle ? u("", !0) : (n(), o(
|
|
79
|
-
|
|
77
|
+
r(" Add file"),
|
|
78
|
+
e.isSingle ? u("", !0) : (n(), o(S, { key: 0 }, [
|
|
79
|
+
r("s")
|
|
80
80
|
], 64))
|
|
81
81
|
]),
|
|
82
82
|
_: 1
|
|
@@ -85,21 +85,21 @@ const j = { render: R }, q = { key: 0 }, A = { "data-test": "ui-upload-label" },
|
|
|
85
85
|
class: a(t.$style.text),
|
|
86
86
|
"data-error": !!e.error,
|
|
87
87
|
"data-test": "ui-upload-text"
|
|
88
|
-
}, " Size up to " + d(B(m) / (1024 * 1024)) + " Mb, " + d(e.extensions.join(", ")) + ". ", 11,
|
|
88
|
+
}, " Size up to " + d(B(m) / (1024 * 1024)) + " Mb, " + d(e.extensions.join(", ")) + ". ", 11, A)
|
|
89
89
|
], 2),
|
|
90
90
|
(n(), o("input", {
|
|
91
91
|
type: "file",
|
|
92
|
-
onInput: l[0] || (l[0] = (i) =>
|
|
92
|
+
onInput: l[0] || (l[0] = (i) => q(i.target)),
|
|
93
93
|
ref_key: "input",
|
|
94
94
|
ref: g,
|
|
95
95
|
class: a(t.$style.input),
|
|
96
96
|
key: h.value,
|
|
97
|
-
accept:
|
|
97
|
+
accept: C.value,
|
|
98
98
|
multiple: !e.isSingle,
|
|
99
99
|
"data-test": "ui-upload-input"
|
|
100
|
-
}, null, 42,
|
|
101
|
-
e.files?.length && !e.file ? (n(!0), o(
|
|
102
|
-
key: `${i}-${
|
|
100
|
+
}, null, 42, P)),
|
|
101
|
+
e.files?.length && !e.file ? (n(!0), o(S, { key: 1 }, D(t.files, (i, w) => (n(), o("div", {
|
|
102
|
+
key: `${i}-${w}`,
|
|
103
103
|
class: a(t.$style.file),
|
|
104
104
|
"data-test": "ui-upload-file"
|
|
105
105
|
}, [
|
|
@@ -113,7 +113,7 @@ const j = { render: R }, q = { key: 0 }, A = { "data-test": "ui-upload-label" },
|
|
|
113
113
|
"data-test": "ui-upload-file-remove"
|
|
114
114
|
}, {
|
|
115
115
|
default: f(() => [
|
|
116
|
-
|
|
116
|
+
r("Remove")
|
|
117
117
|
]),
|
|
118
118
|
_: 2
|
|
119
119
|
}, 1032, ["onClick"])
|
|
@@ -133,35 +133,35 @@ const j = { render: R }, q = { key: 0 }, A = { "data-test": "ui-upload-label" },
|
|
|
133
133
|
"data-test": "ui-upload-file-remove-single"
|
|
134
134
|
}, {
|
|
135
135
|
default: f(() => [
|
|
136
|
-
|
|
136
|
+
r("Remove")
|
|
137
137
|
]),
|
|
138
138
|
_: 1
|
|
139
139
|
})
|
|
140
140
|
], 2)) : u("", !0)
|
|
141
141
|
], 2),
|
|
142
|
-
|
|
142
|
+
F(s("div", {
|
|
143
143
|
class: a(t.$style.uploadButton),
|
|
144
144
|
"data-label": !!e.label
|
|
145
145
|
}, [
|
|
146
146
|
p(_, {
|
|
147
|
-
onClick: l[2] || (l[2] = (i) =>
|
|
147
|
+
onClick: l[2] || (l[2] = (i) => c("upload")),
|
|
148
148
|
"data-test": "ui-upload"
|
|
149
149
|
}, {
|
|
150
150
|
default: f(() => [
|
|
151
|
-
|
|
151
|
+
r("Upload")
|
|
152
152
|
]),
|
|
153
153
|
_: 1
|
|
154
154
|
})
|
|
155
|
-
], 10,
|
|
156
|
-
[
|
|
155
|
+
], 10, H), [
|
|
156
|
+
[N, e.isSingle && e.file || !!e.files.length]
|
|
157
157
|
])
|
|
158
158
|
], 2));
|
|
159
159
|
}
|
|
160
|
-
}),
|
|
161
|
-
container:
|
|
162
|
-
upload:
|
|
163
|
-
addButton:
|
|
164
|
-
text:
|
|
160
|
+
}), Z = "_container_1acec_1", G = "_upload_1acec_6", J = "_addButton_1acec_12", O = "_text_1acec_19", T = "_input_1acec_26", W = "_name_1acec_30", X = "_file_1acec_38", Y = "_error_1acec_44", ee = "_uploadButton_1acec_48", te = {
|
|
161
|
+
container: Z,
|
|
162
|
+
upload: G,
|
|
163
|
+
addButton: J,
|
|
164
|
+
text: O,
|
|
165
165
|
input: T,
|
|
166
166
|
name: W,
|
|
167
167
|
file: X,
|
|
@@ -169,7 +169,7 @@ const j = { render: R }, q = { key: 0 }, A = { "data-test": "ui-upload-label" },
|
|
|
169
169
|
uploadButton: ee
|
|
170
170
|
}, le = {
|
|
171
171
|
$style: te
|
|
172
|
-
}, se = /* @__PURE__ */
|
|
172
|
+
}, se = /* @__PURE__ */ U(K, [["__cssModules", le]]);
|
|
173
173
|
export {
|
|
174
174
|
se as default
|
|
175
175
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mhz-ui",
|
|
3
3
|
"description": "9000 Mhz ui kit",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.36",
|
|
5
5
|
"author": "Alexandr Dergunov <dergunovs@mail.ru> (https://github.com/dergunovs)",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -31,23 +31,23 @@
|
|
|
31
31
|
"@vueuse/core": "10.7.1",
|
|
32
32
|
"@vueuse/integrations": "10.7.1",
|
|
33
33
|
"perfect-debounce": "1.0.0",
|
|
34
|
-
"vue": "3.4.
|
|
34
|
+
"vue": "3.4.3",
|
|
35
35
|
"vue-router": "4.2.5"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@storybook/addon-essentials": "7.6.
|
|
39
|
-
"@storybook/addon-interactions": "7.6.
|
|
40
|
-
"@storybook/addon-links": "7.6.
|
|
41
|
-
"@storybook/blocks": "7.6.
|
|
42
|
-
"@storybook/core-events": "7.6.
|
|
43
|
-
"@storybook/preview-api": "7.6.
|
|
44
|
-
"@storybook/vue3": "7.6.
|
|
45
|
-
"@storybook/vue3-vite": "7.6.
|
|
38
|
+
"@storybook/addon-essentials": "7.6.7",
|
|
39
|
+
"@storybook/addon-interactions": "7.6.7",
|
|
40
|
+
"@storybook/addon-links": "7.6.7",
|
|
41
|
+
"@storybook/blocks": "7.6.7",
|
|
42
|
+
"@storybook/core-events": "7.6.7",
|
|
43
|
+
"@storybook/preview-api": "7.6.7",
|
|
44
|
+
"@storybook/vue3": "7.6.7",
|
|
45
|
+
"@storybook/vue3-vite": "7.6.7",
|
|
46
46
|
"@types/node": "20.10.6",
|
|
47
|
-
"@typescript-eslint/eslint-plugin": "6.
|
|
48
|
-
"@typescript-eslint/parser": "6.
|
|
49
|
-
"@vitejs/plugin-vue": "5.0.
|
|
50
|
-
"@vitest/coverage-v8": "1.1.
|
|
47
|
+
"@typescript-eslint/eslint-plugin": "6.17.0",
|
|
48
|
+
"@typescript-eslint/parser": "6.17.0",
|
|
49
|
+
"@vitejs/plugin-vue": "5.0.2",
|
|
50
|
+
"@vitest/coverage-v8": "1.1.1",
|
|
51
51
|
"@vue/test-utils": "2.4.3",
|
|
52
52
|
"eslint": "8.56.0",
|
|
53
53
|
"eslint-config-prettier": "9.1.0",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"react": "18.2.0",
|
|
63
63
|
"react-dom": "18.2.0",
|
|
64
64
|
"sass": "1.69.6",
|
|
65
|
-
"storybook": "7.6.
|
|
65
|
+
"storybook": "7.6.7",
|
|
66
66
|
"stylelint": "16.1.0",
|
|
67
67
|
"stylelint-config-recess-order": "4.4.0",
|
|
68
68
|
"stylelint-config-recommended-scss": "14.0.0",
|
|
@@ -73,12 +73,12 @@
|
|
|
73
73
|
"vite-plugin-dts": "3.7.0",
|
|
74
74
|
"vite-plugin-static-copy": "1.0.0",
|
|
75
75
|
"vite-svg-loader": "5.1.0",
|
|
76
|
-
"vitest": "1.1.
|
|
76
|
+
"vitest": "1.1.1",
|
|
77
77
|
"vue-linters-config": "0.1.13",
|
|
78
78
|
"vue-tsc": "1.8.27"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
|
-
"vue": "3.4.
|
|
81
|
+
"vue": "3.4.3",
|
|
82
82
|
"vue-router": "4.2.5"
|
|
83
83
|
},
|
|
84
84
|
"engines": {
|