@signal24/vue-foundation 4.19.6 → 4.20.0
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/demo/components/demo-vf-smart-select.vue +2 -0
- package/dist/src/components/modal-helpers.d.ts +6 -0
- package/dist/src/components/vf-ajax-select.vue.d.ts +2 -2
- package/dist/src/components/vf-modal.vue.d.ts +4 -1
- package/dist/src/components/vf-smart-select.vue.d.ts +2 -2
- package/dist/src/components/vf-toast.vue.d.ts +3 -1
- package/dist/vue-foundation.es.js +98 -95
- package/package.json +24 -24
- package/src/directives/datetime.ts +1 -1
|
@@ -14,6 +14,9 @@ export declare function vfModalRef(): import("vue").Ref<({
|
|
|
14
14
|
};
|
|
15
15
|
$refs: {
|
|
16
16
|
[x: string]: unknown;
|
|
17
|
+
} & {
|
|
18
|
+
overlay: HTMLDivElement;
|
|
19
|
+
form: HTMLFormElement;
|
|
17
20
|
};
|
|
18
21
|
$slots: Readonly<{
|
|
19
22
|
[name: string]: import("vue").Slot<any> | undefined;
|
|
@@ -93,6 +96,9 @@ export declare function vfModalRef(): import("vue").Ref<({
|
|
|
93
96
|
};
|
|
94
97
|
$refs: {
|
|
95
98
|
[x: string]: unknown;
|
|
99
|
+
} & {
|
|
100
|
+
overlay: HTMLDivElement;
|
|
101
|
+
form: HTMLFormElement;
|
|
96
102
|
};
|
|
97
103
|
$slots: Readonly<{
|
|
98
104
|
[name: string]: import("vue").Slot<any> | undefined;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
2
2
|
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
|
|
3
3
|
readonly "onUpdate:modelValue"?: ((args_0: T) => any) | undefined;
|
|
4
|
-
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue"> &
|
|
4
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue"> & {
|
|
5
5
|
modelValue: T;
|
|
6
6
|
loadFn: () => Promise<T[]>;
|
|
7
7
|
nullText?: string;
|
|
8
8
|
loadingText?: string;
|
|
9
9
|
displayKey?: keyof T;
|
|
10
10
|
preprocesor?: (option: T) => string;
|
|
11
|
-
}
|
|
11
|
+
} & Partial<{}>> & import("vue").PublicProps;
|
|
12
12
|
expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
|
|
13
13
|
attrs: any;
|
|
14
14
|
slots: {};
|
|
@@ -32,7 +32,10 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
|
|
|
32
32
|
formSubmit: (...args: any[]) => void;
|
|
33
33
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
34
34
|
onFormSubmit?: ((...args: any[]) => any) | undefined;
|
|
35
|
-
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {
|
|
35
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {
|
|
36
|
+
overlay: HTMLDivElement;
|
|
37
|
+
form: HTMLFormElement;
|
|
38
|
+
}, HTMLDivElement>;
|
|
36
39
|
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
37
40
|
export default _default;
|
|
38
41
|
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
@@ -2,7 +2,7 @@ declare const _default: <T, V = T>(__VLS_props: NonNullable<Awaited<typeof __VLS
|
|
|
2
2
|
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
|
|
3
3
|
readonly "onUpdate:modelValue"?: ((args_0: V) => any) | undefined;
|
|
4
4
|
readonly onOptionsLoaded?: ((args_0: T[]) => any) | undefined;
|
|
5
|
-
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue" | "onOptionsLoaded"> &
|
|
5
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue" | "onOptionsLoaded"> & {
|
|
6
6
|
modelValue: V | null;
|
|
7
7
|
loadOptions?: (searchText: string | null) => Promise<T[]>;
|
|
8
8
|
options?: T[];
|
|
@@ -28,7 +28,7 @@ declare const _default: <T, V = T>(__VLS_props: NonNullable<Awaited<typeof __VLS
|
|
|
28
28
|
required?: boolean;
|
|
29
29
|
showCreateTextOnNewItem?: boolean;
|
|
30
30
|
autoNext?: boolean;
|
|
31
|
-
}
|
|
31
|
+
} & Partial<{}>> & import("vue").PublicProps;
|
|
32
32
|
expose(exposed: import("vue").ShallowUnwrapRef<{
|
|
33
33
|
addRemoteOption: (option: T) => void;
|
|
34
34
|
}>): void;
|
|
@@ -8,5 +8,7 @@ export interface IToastOptions {
|
|
|
8
8
|
type __VLS_Props = IToastOptions & {
|
|
9
9
|
callback: () => void;
|
|
10
10
|
};
|
|
11
|
-
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {
|
|
11
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {
|
|
12
|
+
progressInnerEl: HTMLDivElement;
|
|
13
|
+
}, HTMLDivElement>;
|
|
12
14
|
export default _default;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var Tt = Object.defineProperty;
|
|
2
2
|
var St = (e, t, n) => t in e ? Tt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
|
|
3
3
|
var O = (e, t, n) => St(e, typeof t != "symbol" ? t + "" : t, n);
|
|
4
|
-
import { defineComponent as N, ref as T, computed as M, watch as A, onMounted as V, openBlock as E, createElementBlock as
|
|
5
|
-
import { compact as
|
|
4
|
+
import { defineComponent as N, ref as T, computed as M, watch as A, onMounted as V, openBlock as E, createElementBlock as b, createElementVNode as D, toDisplayString as U, withDirectives as Q, createCommentVNode as F, Fragment as J, renderList as he, vModelSelect as Ct, getCurrentInstance as pe, normalizeClass as B, normalizeStyle as xt, withModifiers as ye, renderSlot as G, reactive as Lt, h as ee, Teleport as Mt, markRaw as It, onBeforeUnmount as ge, resolveDirective as Ht, createBlock as qe, createSlots as Ot, withCtx as ue, createTextVNode as ce, vModelText as At, onActivated as ze, onDeactivated as Ke } from "vue";
|
|
5
|
+
import { compact as Ye, debounce as Ft, isEqual as Xe, upperFirst as Dt, startCase as Bt, cloneDeep as $t, remove as Vt, last as _t } from "lodash";
|
|
6
6
|
import { escapeHtml as Nt } from "@vue/shared";
|
|
7
7
|
import { escapeHtml as Uo } from "@vue/shared";
|
|
8
8
|
import { configureOpenApiClient as Rt, OpenApiError as Wt } from "@signal24/openapi-client-codegen/browser";
|
|
@@ -26,8 +26,8 @@ const Ut = {
|
|
|
26
26
|
emits: ["update:modelValue"],
|
|
27
27
|
setup(e, { emit: t }) {
|
|
28
28
|
const n = e, o = t, i = T(null), l = M(() => i.value ? i.value.map((g) => {
|
|
29
|
-
const
|
|
30
|
-
return n.preprocesor ? n.preprocesor(
|
|
29
|
+
const k = g;
|
|
30
|
+
return n.preprocesor ? n.preprocesor(k) : n.displayKey ? k[n.displayKey] : "";
|
|
31
31
|
}) : null), u = T(n.modelValue ?? null);
|
|
32
32
|
A(() => n.loadFn, a), A(
|
|
33
33
|
() => n.modelValue,
|
|
@@ -36,21 +36,21 @@ const Ut = {
|
|
|
36
36
|
async function a() {
|
|
37
37
|
i.value = await n.loadFn();
|
|
38
38
|
}
|
|
39
|
-
return V(a), (d, g) => l.value ? Q((E(),
|
|
39
|
+
return V(a), (d, g) => l.value ? Q((E(), b("select", {
|
|
40
40
|
key: 1,
|
|
41
|
-
"onUpdate:modelValue": g[0] || (g[0] = (
|
|
41
|
+
"onUpdate:modelValue": g[0] || (g[0] = (k) => u.value = k)
|
|
42
42
|
}, [
|
|
43
|
-
n.nullText ? (E(),
|
|
44
|
-
(E(!0),
|
|
43
|
+
n.nullText ? (E(), b("option", jt, U(n.nullText), 1)) : F("", !0),
|
|
44
|
+
(E(!0), b(J, null, he(l.value, (k, f) => {
|
|
45
45
|
var w;
|
|
46
|
-
return E(),
|
|
46
|
+
return E(), b("option", {
|
|
47
47
|
key: f,
|
|
48
48
|
value: (w = i.value) == null ? void 0 : w[f]
|
|
49
|
-
}, U(
|
|
49
|
+
}, U(k), 9, Pt);
|
|
50
50
|
}), 128))
|
|
51
51
|
], 512)), [
|
|
52
52
|
[Ct, u.value]
|
|
53
|
-
]) : (E(),
|
|
53
|
+
]) : (E(), b("select", Ut, [
|
|
54
54
|
D("option", null, U(n.loadingText || "Loading..."), 1)
|
|
55
55
|
]));
|
|
56
56
|
}
|
|
@@ -65,11 +65,11 @@ const Ut = {
|
|
|
65
65
|
V(u);
|
|
66
66
|
function u() {
|
|
67
67
|
if (!l) return;
|
|
68
|
-
const g = l.vnode.el, { styles:
|
|
69
|
-
o.value =
|
|
68
|
+
const g = l.vnode.el, { styles: k, classes: f } = a(g, n);
|
|
69
|
+
o.value = k, i.value = f;
|
|
70
70
|
}
|
|
71
|
-
function a(g,
|
|
72
|
-
const f = t.anchor instanceof HTMLElement ? {} : t.anchor, w =
|
|
71
|
+
function a(g, k) {
|
|
72
|
+
const f = t.anchor instanceof HTMLElement ? {} : t.anchor, w = k.getBoundingClientRect(), m = g.getBoundingClientRect();
|
|
73
73
|
f.matchWidth && (m.width = w.width), f.matchHeight && (m.height = w.height);
|
|
74
74
|
const r = f.class ? Array.isArray(f.class) ? f.class : [f.class] : [];
|
|
75
75
|
let c, S;
|
|
@@ -96,13 +96,13 @@ const Ut = {
|
|
|
96
96
|
};
|
|
97
97
|
}
|
|
98
98
|
function d() {
|
|
99
|
-
window.removeEventListener("click", d),
|
|
99
|
+
window.removeEventListener("click", d), Yt(t.overlayId);
|
|
100
100
|
}
|
|
101
101
|
return V(() => {
|
|
102
102
|
setTimeout(() => {
|
|
103
103
|
window.addEventListener("click", d);
|
|
104
104
|
}, 10);
|
|
105
|
-
}), (g,
|
|
105
|
+
}), (g, k) => (E(), b("div", {
|
|
106
106
|
class: B(["vf-overlay-anchor", i.value]),
|
|
107
107
|
style: xt(o.value),
|
|
108
108
|
onClick: ye(d, ["stop"])
|
|
@@ -137,14 +137,14 @@ function po(e) {
|
|
|
137
137
|
}
|
|
138
138
|
function Ze(e) {
|
|
139
139
|
let t = e;
|
|
140
|
-
for (; t && !
|
|
140
|
+
for (; t && !Kt(t.vnode); )
|
|
141
141
|
t = t.parent;
|
|
142
142
|
}
|
|
143
|
-
function
|
|
143
|
+
function Kt(e) {
|
|
144
144
|
const t = _.findIndex((n) => n.vnode.component === e.component);
|
|
145
145
|
return t >= 0 ? (_[t].props.callback(), !0) : !1;
|
|
146
146
|
}
|
|
147
|
-
function
|
|
147
|
+
function Yt(e) {
|
|
148
148
|
const t = _.findIndex((n) => n.id === e);
|
|
149
149
|
return t >= 0 ? (_[t].props.callback(), !0) : !1;
|
|
150
150
|
}
|
|
@@ -217,23 +217,23 @@ class oe extends Error {
|
|
|
217
217
|
function Zt(e) {
|
|
218
218
|
return e instanceof oe ? e.message : `An application error has occurred:
|
|
219
219
|
|
|
220
|
-
${
|
|
220
|
+
${be(e).message}
|
|
221
221
|
|
|
222
222
|
Please refresh the page and try again. If this error persists, ${$.unhandledErrorSupportText}.`;
|
|
223
223
|
}
|
|
224
|
-
function
|
|
224
|
+
function be(e) {
|
|
225
225
|
return e instanceof Error ? e : new Error(String(e));
|
|
226
226
|
}
|
|
227
|
-
async function
|
|
228
|
-
const n =
|
|
227
|
+
async function bo(e, t) {
|
|
228
|
+
const n = be(e);
|
|
229
229
|
return n instanceof oe || $.errorHandler(n), Xt({
|
|
230
230
|
title: t == null ? void 0 : t.title,
|
|
231
231
|
message: n,
|
|
232
232
|
classes: t == null ? void 0 : t.classes
|
|
233
233
|
});
|
|
234
234
|
}
|
|
235
|
-
async function
|
|
236
|
-
const t =
|
|
235
|
+
async function ko(e) {
|
|
236
|
+
const t = be(e);
|
|
237
237
|
t instanceof oe || $.errorHandler(t);
|
|
238
238
|
}
|
|
239
239
|
const z = Symbol("MaskState");
|
|
@@ -303,7 +303,7 @@ const Jt = ["id"], en = {
|
|
|
303
303
|
setup(e, { expose: t }) {
|
|
304
304
|
const n = pe(), o = e;
|
|
305
305
|
t({ mask: f, unmask: w, hide: m, unhide: r });
|
|
306
|
-
const i = T(), l = T(), u = T(!1), a = M(() =>
|
|
306
|
+
const i = T(), l = T(), u = T(!1), a = M(() => Ye([...Array.isArray(o.class) ? o.class : [o.class], u.value && "hidden"]));
|
|
307
307
|
V(() => {
|
|
308
308
|
var c;
|
|
309
309
|
document.body.classList.add("vf-modal-open"), o.closeOnMaskClick && (window.addEventListener("keydown", g), (c = i.value) == null || c.addEventListener("click", d));
|
|
@@ -311,15 +311,15 @@ const Jt = ["id"], en = {
|
|
|
311
311
|
window.removeEventListener("keydown", g), document.body.querySelectorAll(".vf-modal").length > 0 || document.body.classList.remove("vf-modal-open");
|
|
312
312
|
});
|
|
313
313
|
function d(c) {
|
|
314
|
-
c.target == i.value &&
|
|
314
|
+
c.target == i.value && k();
|
|
315
315
|
}
|
|
316
316
|
function g(c) {
|
|
317
317
|
if (c.key === "Esc" || c.key === "Escape") {
|
|
318
318
|
const S = document.querySelectorAll(".vf-modal-wrap");
|
|
319
|
-
S[S.length - 1] === i.value &&
|
|
319
|
+
S[S.length - 1] === i.value && k();
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
|
-
function
|
|
322
|
+
function k() {
|
|
323
323
|
Ze(n);
|
|
324
324
|
}
|
|
325
325
|
function f() {
|
|
@@ -334,7 +334,7 @@ const Jt = ["id"], en = {
|
|
|
334
334
|
function r() {
|
|
335
335
|
u.value = !1;
|
|
336
336
|
}
|
|
337
|
-
return (c, S) => (E(),
|
|
337
|
+
return (c, S) => (E(), b("div", {
|
|
338
338
|
id: c.id,
|
|
339
339
|
ref_key: "overlay",
|
|
340
340
|
ref: i,
|
|
@@ -347,18 +347,18 @@ const Jt = ["id"], en = {
|
|
|
347
347
|
class: B(["vf-modal", { scrolls: c.scrolls }]),
|
|
348
348
|
onSubmit: S[0] || (S[0] = ye((I) => c.$emit("formSubmit"), ["prevent"]))
|
|
349
349
|
}, [
|
|
350
|
-
c.$slots.header ? (E(),
|
|
350
|
+
c.$slots.header ? (E(), b("div", en, [
|
|
351
351
|
G(c.$slots, "header"),
|
|
352
|
-
o.closeX ? (E(),
|
|
352
|
+
o.closeX ? (E(), b("i", {
|
|
353
353
|
key: 0,
|
|
354
354
|
class: "close",
|
|
355
|
-
onClick:
|
|
355
|
+
onClick: k
|
|
356
356
|
})) : F("", !0)
|
|
357
357
|
])) : F("", !0),
|
|
358
358
|
D("div", tn, [
|
|
359
359
|
G(c.$slots, "default")
|
|
360
360
|
]),
|
|
361
|
-
c.$slots.footer ? (E(),
|
|
361
|
+
c.$slots.footer ? (E(), b("div", nn, [
|
|
362
362
|
G(c.$slots, "footer")
|
|
363
363
|
])) : F("", !0)
|
|
364
364
|
], 34)
|
|
@@ -384,15 +384,15 @@ const Jt = ["id"], en = {
|
|
|
384
384
|
class: B(["vf-alert", ...o.classes ?? []])
|
|
385
385
|
}, Ot({
|
|
386
386
|
default: ue(() => [
|
|
387
|
-
o.iconClass ? (E(),
|
|
387
|
+
o.iconClass ? (E(), b("i", {
|
|
388
388
|
key: 0,
|
|
389
389
|
class: B(["vf-alert-icon", o.iconClass])
|
|
390
390
|
}, null, 2)) : F("", !0),
|
|
391
|
-
o.isHtml ? (E(),
|
|
391
|
+
o.isHtml ? (E(), b("div", {
|
|
392
392
|
key: 1,
|
|
393
393
|
innerHtml: o.message,
|
|
394
394
|
class: "user-message"
|
|
395
|
-
}, null, 8, ln)) : (E(),
|
|
395
|
+
}, null, 8, ln)) : (E(), b("div", {
|
|
396
396
|
key: 2,
|
|
397
397
|
innerText: n.value
|
|
398
398
|
}, null, 8, sn))
|
|
@@ -409,8 +409,8 @@ const Jt = ["id"], en = {
|
|
|
409
409
|
o.isBare ? void 0 : {
|
|
410
410
|
name: "footer",
|
|
411
411
|
fn: ue(() => [
|
|
412
|
-
o.shouldConfirm ? (E(),
|
|
413
|
-
Q((E(),
|
|
412
|
+
o.shouldConfirm ? (E(), b(J, { key: 0 }, [
|
|
413
|
+
Q((E(), b("button", {
|
|
414
414
|
class: "primary",
|
|
415
415
|
onClick: i[0] || (i[0] = () => o.callback(!0))
|
|
416
416
|
}, i[3] || (i[3] = [
|
|
@@ -422,7 +422,7 @@ const Jt = ["id"], en = {
|
|
|
422
422
|
class: "default",
|
|
423
423
|
onClick: i[1] || (i[1] = () => o.callback(!1))
|
|
424
424
|
}, "Cancel")
|
|
425
|
-
], 64)) : Q((E(),
|
|
425
|
+
], 64)) : Q((E(), b("button", {
|
|
426
426
|
key: 1,
|
|
427
427
|
class: "default",
|
|
428
428
|
onClick: i[2] || (i[2] = () => o.callback(!0))
|
|
@@ -455,10 +455,13 @@ function un() {
|
|
|
455
455
|
}
|
|
456
456
|
const cn = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), Be = { randomUUID: cn };
|
|
457
457
|
function dn(e, t, n) {
|
|
458
|
-
|
|
458
|
+
var i;
|
|
459
|
+
if (Be.randomUUID && !e)
|
|
459
460
|
return Be.randomUUID();
|
|
460
461
|
e = e || {};
|
|
461
|
-
const o = e.random
|
|
462
|
+
const o = e.random ?? ((i = e.rng) == null ? void 0 : i.call(e)) ?? un();
|
|
463
|
+
if (o.length < 16)
|
|
464
|
+
throw new Error("Random bytes length must be >= 16");
|
|
462
465
|
return o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, an(o);
|
|
463
466
|
}
|
|
464
467
|
function Co(e) {
|
|
@@ -483,7 +486,7 @@ const hn = ["disabled", "placeholder", "required"], pn = {
|
|
|
483
486
|
}, yn = ["onMousemove", "onMousedown"], gn = ["innerHTML"], wn = ["innerHTML"], En = {
|
|
484
487
|
key: 0,
|
|
485
488
|
class: "no-results"
|
|
486
|
-
},
|
|
489
|
+
}, bn = "`1234567890-=[]\\;',./~!@#$%^&*()_+{}|:\"<>?qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM", kn = /* @__PURE__ */ N({
|
|
487
490
|
__name: "vf-smart-select",
|
|
488
491
|
props: {
|
|
489
492
|
modelValue: {},
|
|
@@ -516,9 +519,9 @@ const hn = ["disabled", "placeholder", "required"], pn = {
|
|
|
516
519
|
setup(e, { expose: t, emit: n }) {
|
|
517
520
|
const o = Symbol("null"), i = Symbol("create"), l = e, u = n;
|
|
518
521
|
t({
|
|
519
|
-
addRemoteOption:
|
|
522
|
+
addRemoteOption: kt
|
|
520
523
|
});
|
|
521
|
-
const a = T(), d = T(), g = T(),
|
|
524
|
+
const a = T(), d = T(), g = T(), k = T(!1), f = T(!1), w = T([]), m = T(!1), r = T(""), c = T(null), S = T(null), I = T(!1), x = T(null), Se = T(!1), at = M(() => l.showCreateTextOnNewItem ?? !0), rt = M(() => l.prependOptions ?? []), ut = M(() => l.appendOptions ?? []), Ce = M(() => !!l.disabled), ct = M(() => !f.value && l.preload ? "Loading..." : l.nullTitle ? l.nullTitle : l.placeholder || ""), dt = M(() => l.noResultsText || "No options match your search."), W = M(() => l.valueExtractor ? l.valueExtractor : l.valueField ? (s) => s[l.valueField] : null), j = M(() => l.keyExtractor ? l.keyExtractor : l.keyField ? (s) => String(s[l.keyField]) : W.value ? (s) => String(W.value(s)) : null), se = M(() => l.formatter ? l.formatter : l.labelField ? (s) => String(s[l.labelField]) : (s) => String(s)), xe = M(() => [...rt.value, ...w.value, ...ut.value]), ie = M(() => xe.value.map((s, v) => {
|
|
522
525
|
var Ae, Fe;
|
|
523
526
|
const h = se.value(s), p = (Ae = l.subtitleFormatter) == null ? void 0 : Ae.call(l, s), y = h ? h.trim().toLowerCase() : "", C = p ? p.trim().toLowerCase() : "", Z = [];
|
|
524
527
|
return l.searchFields ? l.searchFields.forEach((De) => {
|
|
@@ -583,7 +586,7 @@ const hn = ["disabled", "placeholder", "required"], pn = {
|
|
|
583
586
|
async function Me() {
|
|
584
587
|
var v;
|
|
585
588
|
const s = l.remoteSearch && m.value && r.value ? r.value : null;
|
|
586
|
-
|
|
589
|
+
k.value = !0, w.value = await ((v = l.loadOptions) == null ? void 0 : v.call(l, s)) ?? [], k.value = !1, f.value = !0;
|
|
587
590
|
}
|
|
588
591
|
function ft() {
|
|
589
592
|
m.value && (Me(), m.value = r.value.trim().length > 0);
|
|
@@ -613,7 +616,7 @@ const hn = ["disabled", "placeholder", "required"], pn = {
|
|
|
613
616
|
r.value.length > 1 && (m.value = !0);
|
|
614
617
|
return;
|
|
615
618
|
}
|
|
616
|
-
!s.metaKey &&
|
|
619
|
+
!s.metaKey && bn.includes(s.key) && (m.value = !0);
|
|
617
620
|
}
|
|
618
621
|
}
|
|
619
622
|
function mt() {
|
|
@@ -658,7 +661,7 @@ const hn = ["disabled", "placeholder", "required"], pn = {
|
|
|
658
661
|
const s = H.value.findIndex((p) => p.key == x.value), v = g.value, h = v == null ? void 0 : v.querySelectorAll(".option")[s];
|
|
659
662
|
h && (v.scrollTop = h.offsetTop);
|
|
660
663
|
}
|
|
661
|
-
function
|
|
664
|
+
function bt(s) {
|
|
662
665
|
x.value = s ? s.key : null;
|
|
663
666
|
}
|
|
664
667
|
function ae(s) {
|
|
@@ -685,7 +688,7 @@ const hn = ["disabled", "placeholder", "required"], pn = {
|
|
|
685
688
|
function re() {
|
|
686
689
|
l.modelValue ? (c.value = W.value ? xe.value.find((s) => l.modelValue === W.value(s)) : l.modelValue, S.value = c.value ? se.value(c.value) : null, r.value = S.value || "") : (c.value = null, S.value = null, r.value = "");
|
|
687
690
|
}
|
|
688
|
-
function
|
|
691
|
+
function kt(s) {
|
|
689
692
|
w.value.unshift(s);
|
|
690
693
|
}
|
|
691
694
|
function Oe() {
|
|
@@ -700,7 +703,7 @@ const hn = ["disabled", "placeholder", "required"], pn = {
|
|
|
700
703
|
const h = Array.from(v).findIndex((C) => C === d.value), p = v[h + 1];
|
|
701
704
|
p && setTimeout(() => p.focus(), 0);
|
|
702
705
|
}
|
|
703
|
-
return (s, v) => (E(),
|
|
706
|
+
return (s, v) => (E(), b("div", {
|
|
704
707
|
ref_key: "el",
|
|
705
708
|
ref: a,
|
|
706
709
|
class: B(["vf-smart-select", { disabled: Ce.value, open: I.value }])
|
|
@@ -721,33 +724,33 @@ const hn = ["disabled", "placeholder", "required"], pn = {
|
|
|
721
724
|
}, null, 42, hn), [
|
|
722
725
|
[At, r.value]
|
|
723
726
|
]),
|
|
724
|
-
I.value ? (E(),
|
|
727
|
+
I.value ? (E(), b("div", {
|
|
725
728
|
key: 0,
|
|
726
729
|
ref_key: "optionsContainer",
|
|
727
730
|
ref: g,
|
|
728
731
|
class: "vf-smart-select-options"
|
|
729
732
|
}, [
|
|
730
|
-
f.value ? (E(),
|
|
731
|
-
(E(!0),
|
|
733
|
+
f.value ? (E(), b(J, { key: 1 }, [
|
|
734
|
+
(E(!0), b(J, null, he(H.value, (h) => (E(), b("div", {
|
|
732
735
|
key: String(h.key),
|
|
733
736
|
class: B(["option", {
|
|
734
737
|
highlighted: x.value === h.key
|
|
735
738
|
}]),
|
|
736
|
-
onMousemove: (p) =>
|
|
739
|
+
onMousemove: (p) => bt(h),
|
|
737
740
|
onMousedown: (p) => He(h)
|
|
738
741
|
}, [
|
|
739
742
|
D("div", {
|
|
740
743
|
class: "title",
|
|
741
744
|
innerHTML: h.title
|
|
742
745
|
}, null, 8, gn),
|
|
743
|
-
h.subtitle ? (E(),
|
|
746
|
+
h.subtitle ? (E(), b("div", {
|
|
744
747
|
key: 0,
|
|
745
748
|
class: "subtitle",
|
|
746
749
|
innerHTML: h.subtitle
|
|
747
750
|
}, null, 8, wn)) : F("", !0)
|
|
748
751
|
], 42, yn))), 128)),
|
|
749
|
-
!H.value.length && r.value ? (E(),
|
|
750
|
-
], 64)) : (E(),
|
|
752
|
+
!H.value.length && r.value ? (E(), b("div", En, U(dt.value), 1)) : F("", !0)
|
|
753
|
+
], 64)) : (E(), b("div", pn, "Loading..."))
|
|
751
754
|
], 512)) : F("", !0)
|
|
752
755
|
], 2));
|
|
753
756
|
}
|
|
@@ -773,9 +776,9 @@ const hn = ["disabled", "placeholder", "required"], pn = {
|
|
|
773
776
|
}
|
|
774
777
|
), A(u, (a) => {
|
|
775
778
|
var g;
|
|
776
|
-
const d = a ? (g = o.value.find((
|
|
779
|
+
const d = a ? (g = o.value.find((k) => Xe(k, a))) == null ? void 0 : g.value : null;
|
|
777
780
|
l("update:modelValue", d ?? null);
|
|
778
|
-
}), (a, d) => (E(), qe(
|
|
781
|
+
}), (a, d) => (E(), qe(kn, {
|
|
779
782
|
modelValue: u.value,
|
|
780
783
|
"onUpdate:modelValue": d[0] || (d[0] = (g) => u.value = g),
|
|
781
784
|
options: o.value,
|
|
@@ -817,15 +820,15 @@ const Tn = { class: "content" }, Sn = { class: "message" }, Cn = {
|
|
|
817
820
|
duration: i * 1e3,
|
|
818
821
|
easing: "linear"
|
|
819
822
|
}), setTimeout(() => t.callback(), i * 1e3);
|
|
820
|
-
}), (i, l) => (E(),
|
|
823
|
+
}), (i, l) => (E(), b("div", {
|
|
821
824
|
class: B(["vf-toast", i.className]),
|
|
822
825
|
onClick: ye(n, ["stop"])
|
|
823
826
|
}, [
|
|
824
827
|
D("div", Tn, [
|
|
825
828
|
D("div", Sn, U(i.message), 1),
|
|
826
|
-
i.disableClose ? F("", !0) : (E(),
|
|
829
|
+
i.disableClose ? F("", !0) : (E(), b("div", Cn, "x"))
|
|
827
830
|
]),
|
|
828
|
-
i.durationSecs !== null ? (E(),
|
|
831
|
+
i.durationSecs !== null ? (E(), b("div", xn, [
|
|
829
832
|
D("div", {
|
|
830
833
|
ref_key: "progressInnerEl",
|
|
831
834
|
ref: o,
|
|
@@ -859,10 +862,10 @@ function An(e) {
|
|
|
859
862
|
return e && vn(e);
|
|
860
863
|
}
|
|
861
864
|
function Fn(e) {
|
|
862
|
-
return e ?
|
|
865
|
+
return e ? Dt(e) : null;
|
|
863
866
|
}
|
|
864
867
|
function Dn(e) {
|
|
865
|
-
return e ?
|
|
868
|
+
return e ? Bt(e) : null;
|
|
866
869
|
}
|
|
867
870
|
function Bn(e) {
|
|
868
871
|
return e ? e.toUpperCase() : null;
|
|
@@ -907,8 +910,8 @@ function Ao(e, t) {
|
|
|
907
910
|
const r = document.createElement("div");
|
|
908
911
|
r.classList.add("item"), r.style.userSelect = "none", r.innerText = m.title, o.appendChild(r), m.class && r.classList.add(m.class), m.shouldConfirm ? r.addEventListener("click", (c) => w(c, r, m.handler)) : r.addEventListener("click", () => m.handler());
|
|
909
912
|
});
|
|
910
|
-
const l = window.innerWidth - e.clientX, u = window.innerHeight - e.clientY, a = o.offsetHeight, d = o.offsetWidth, g = l < d ? e.clientX - d - 1 : e.clientX + 1,
|
|
911
|
-
o.style.left = g + "px", o.style.top =
|
|
913
|
+
const l = window.innerWidth - e.clientX, u = window.innerHeight - e.clientY, a = o.offsetHeight, d = o.offsetWidth, g = l < d ? e.clientX - d - 1 : e.clientX + 1, k = u < a ? e.clientY - a - 1 : e.clientY + 1;
|
|
914
|
+
o.style.left = g + "px", o.style.top = k + "px", setTimeout(() => {
|
|
912
915
|
o.style.width = o.offsetWidth + "px";
|
|
913
916
|
}, 50);
|
|
914
917
|
function f() {
|
|
@@ -949,27 +952,27 @@ function $o(e, t) {
|
|
|
949
952
|
}
|
|
950
953
|
});
|
|
951
954
|
}
|
|
952
|
-
const
|
|
955
|
+
const ke = Symbol("HookState");
|
|
953
956
|
function Vo(e, t) {
|
|
954
957
|
const n = t ?? pe();
|
|
955
|
-
V(() => Rn(n, e), n), ze(() => Wn(n), n),
|
|
958
|
+
V(() => Rn(n, e), n), ze(() => Wn(n), n), Ke(() => Ve(n), n), ge(() => Ve(n), n);
|
|
956
959
|
}
|
|
957
960
|
function Rn(e, t) {
|
|
958
961
|
const n = {};
|
|
959
|
-
if (t.elScrolledToBottom && (n.el = new
|
|
962
|
+
if (t.elScrolledToBottom && (n.el = new K(e.vnode.el, t.elScrolledToBottom)), t.ancestorScrolledToBottom) {
|
|
960
963
|
const o = et(e.vnode.el);
|
|
961
|
-
o ? n.ancestor = new
|
|
964
|
+
o ? n.ancestor = new K(o, t.ancestorScrolledToBottom) : console.warn("[VueFoundation] No scollable ancestor found for component:", e);
|
|
962
965
|
}
|
|
963
|
-
t.windowScrolledToBottom && (n.window = new
|
|
966
|
+
t.windowScrolledToBottom && (n.window = new K(window, t.windowScrolledToBottom)), e[ke] = n;
|
|
964
967
|
}
|
|
965
968
|
function Wn(e) {
|
|
966
969
|
var n, o, i;
|
|
967
|
-
const t = e[
|
|
970
|
+
const t = e[ke];
|
|
968
971
|
(n = t == null ? void 0 : t.el) == null || n.install(), (o = t == null ? void 0 : t.ancestor) == null || o.install(), (i = t == null ? void 0 : t.window) == null || i.install();
|
|
969
972
|
}
|
|
970
973
|
function Ve(e) {
|
|
971
974
|
var n, o, i;
|
|
972
|
-
const t = e[
|
|
975
|
+
const t = e[ke];
|
|
973
976
|
(n = t == null ? void 0 : t.el) == null || n.uninstall(), (o = t == null ? void 0 : t.ancestor) == null || o.uninstall(), (i = t == null ? void 0 : t.window) == null || i.uninstall();
|
|
974
977
|
}
|
|
975
978
|
const fe = ["auto", "scroll"];
|
|
@@ -979,7 +982,7 @@ function et(e) {
|
|
|
979
982
|
const n = window.getComputedStyle(t);
|
|
980
983
|
return fe.includes(n.overflow) || fe.includes(n.overflowX) || fe.includes(n.overflowY) ? t : et(t);
|
|
981
984
|
}
|
|
982
|
-
class
|
|
985
|
+
class K {
|
|
983
986
|
constructor(t, n) {
|
|
984
987
|
O(this, "isTripped", !1);
|
|
985
988
|
O(this, "onScrollWithContext", this.onScroll.bind(this));
|
|
@@ -996,7 +999,7 @@ class Y {
|
|
|
996
999
|
}
|
|
997
1000
|
}
|
|
998
1001
|
function _o(e) {
|
|
999
|
-
V(() => window.addEventListener("resize", e)), ze(() => window.addEventListener("resize", e)),
|
|
1002
|
+
V(() => window.addEventListener("resize", e)), ze(() => window.addEventListener("resize", e)), Ke(() => window.removeEventListener("resize", e)), ge(() => window.removeEventListener("resize", e));
|
|
1000
1003
|
}
|
|
1001
1004
|
const Un = {
|
|
1002
1005
|
mounted: Ne,
|
|
@@ -1044,21 +1047,21 @@ function zn(e) {
|
|
|
1044
1047
|
isNaN(n) ? e.value = "" : e.value = ve(n, "MM/dd/yyyy"), e.dispatchEvent(new Event("input"));
|
|
1045
1048
|
});
|
|
1046
1049
|
}
|
|
1047
|
-
const
|
|
1050
|
+
const Kn = {
|
|
1048
1051
|
beforeMount: Re,
|
|
1049
1052
|
updated: Re
|
|
1050
1053
|
};
|
|
1051
1054
|
function Re(e, t) {
|
|
1052
|
-
t.value == t.oldValue && e.innerHTML.length || (e.innerText =
|
|
1055
|
+
t.value == t.oldValue && e.innerHTML.length || (e.innerText = Yn(e, t));
|
|
1053
1056
|
}
|
|
1054
|
-
function
|
|
1055
|
-
var g,
|
|
1057
|
+
function Yn(e, t) {
|
|
1058
|
+
var g, k;
|
|
1056
1059
|
if (!t.value)
|
|
1057
1060
|
return ((g = e.attributes.getNamedItem("placeholder")) == null ? void 0 : g.value) ?? "";
|
|
1058
1061
|
let n = "";
|
|
1059
1062
|
const o = t.value.replace(/ /g, "T").replace(/\.\d+Z$/, "Z"), i = e.attributes.getNamedItem("local") !== null ? o.replace(/Z$/, "") : o.replace(/(Z|\+00:00)?$/, "Z"), l = new Date(i);
|
|
1060
1063
|
e.attributes.getNamedItem("display-utc") !== null && l.setMinutes(l.getMinutes() - l.getTimezoneOffset());
|
|
1061
|
-
let u = (
|
|
1064
|
+
let u = (k = e.attributes.getNamedItem("format")) == null ? void 0 : k.value;
|
|
1062
1065
|
const a = e.attributes.getNamedItem("date-only") !== null;
|
|
1063
1066
|
if (!u && e.attributes.getNamedItem("relative-date") !== null) {
|
|
1064
1067
|
const f = /* @__PURE__ */ new Date();
|
|
@@ -1067,9 +1070,9 @@ function Kn(e, t) {
|
|
|
1067
1070
|
if (!u && e.attributes.getNamedItem("simplified-date") !== null) {
|
|
1068
1071
|
let f = null;
|
|
1069
1072
|
const w = /* @__PURE__ */ new Date();
|
|
1070
|
-
w.getFullYear() === l.getFullYear() ? (w.getMonth() !== l.getMonth() || w.getDate() !== l.getDate()) && (f = "M/d") : f = "M/d/
|
|
1073
|
+
w.getFullYear() === l.getFullYear() ? (w.getMonth() !== l.getMonth() || w.getDate() !== l.getDate()) && (f = "M/d") : f = "M/d/yy";
|
|
1071
1074
|
const m = a ? null : $.defaultTimeFormat;
|
|
1072
|
-
u =
|
|
1075
|
+
u = Ye([f, m]).join(" ");
|
|
1073
1076
|
}
|
|
1074
1077
|
u || (a ? u = $.defaultDateFormat : u = `${$.defaultDateFormat} ${$.defaultTimeFormat}`);
|
|
1075
1078
|
let d = ve(l, u);
|
|
@@ -1149,11 +1152,11 @@ function st(e) {
|
|
|
1149
1152
|
}
|
|
1150
1153
|
const q = Symbol("InfiniteScrollHandler"), no = {
|
|
1151
1154
|
mounted(e, t) {
|
|
1152
|
-
e[q] = new
|
|
1155
|
+
e[q] = new K(e, t.value);
|
|
1153
1156
|
},
|
|
1154
1157
|
updated(e, t) {
|
|
1155
1158
|
var n;
|
|
1156
|
-
(n = e[q]) == null || n.uninstall(), e[q] = new
|
|
1159
|
+
(n = e[q]) == null || n.uninstall(), e[q] = new K(e, t.value);
|
|
1157
1160
|
},
|
|
1158
1161
|
unmounted(e) {
|
|
1159
1162
|
var t;
|
|
@@ -1170,7 +1173,7 @@ const lo = {
|
|
|
1170
1173
|
mounted: Pe,
|
|
1171
1174
|
updated: Pe,
|
|
1172
1175
|
unmounted: it
|
|
1173
|
-
},
|
|
1176
|
+
}, Y = Symbol("TooltipState");
|
|
1174
1177
|
function Pe(e, t) {
|
|
1175
1178
|
var o;
|
|
1176
1179
|
let n = ((o = e.attributes.getNamedItem("tip")) == null ? void 0 : o.value) ?? t.value;
|
|
@@ -1179,13 +1182,13 @@ function Pe(e, t) {
|
|
|
1179
1182
|
content: n,
|
|
1180
1183
|
html: e.getAttribute("html") !== null
|
|
1181
1184
|
};
|
|
1182
|
-
e[
|
|
1185
|
+
e[Y] ? e[Y].configure(i) : e[Y] = new so(e, i);
|
|
1183
1186
|
} else
|
|
1184
1187
|
it(e);
|
|
1185
1188
|
}
|
|
1186
1189
|
function it(e) {
|
|
1187
1190
|
var t;
|
|
1188
|
-
(t = e[
|
|
1191
|
+
(t = e[Y]) == null || t.destroy(), delete e[Y];
|
|
1189
1192
|
}
|
|
1190
1193
|
class so {
|
|
1191
1194
|
constructor(t, n) {
|
|
@@ -1236,7 +1239,7 @@ class so {
|
|
|
1236
1239
|
}
|
|
1237
1240
|
}
|
|
1238
1241
|
function io(e) {
|
|
1239
|
-
e.directive("autofocus", Un), e.directive("confirm-button", jn), e.directive("date-input", qn), e.directive("datetime",
|
|
1242
|
+
e.directive("autofocus", Un), e.directive("confirm-button", jn), e.directive("date-input", qn), e.directive("datetime", Kn), e.directive("disabled", Xn), e.directive("duration", Gn), e.directive("hotkey", eo), e.directive("infinite-scroll", no), e.directive("readonly", oo), e.directive("tooltip", lo);
|
|
1240
1243
|
}
|
|
1241
1244
|
function No(e) {
|
|
1242
1245
|
io(e);
|
|
@@ -1248,24 +1251,24 @@ export {
|
|
|
1248
1251
|
le as VfAlertModal,
|
|
1249
1252
|
Lo as VfEzSmartSelect,
|
|
1250
1253
|
on as VfModal,
|
|
1251
|
-
|
|
1254
|
+
kn as VfSmartSelect,
|
|
1252
1255
|
Do as cloneProp,
|
|
1253
1256
|
Eo as configureVf,
|
|
1254
1257
|
$o as configureVfOpenApiClient,
|
|
1255
1258
|
Ho as createFilters,
|
|
1256
1259
|
we as createOverlayInjection,
|
|
1257
1260
|
fn as desnakeCase,
|
|
1258
|
-
|
|
1261
|
+
Yt as dismissOverlayInjectionById,
|
|
1259
1262
|
po as dismissOverlayInjectionByInstance,
|
|
1260
1263
|
Ze as dismissOverlayInjectionByInternalInstance,
|
|
1261
|
-
|
|
1264
|
+
Kt as dismissOverlayInjectionByVnode,
|
|
1262
1265
|
Uo as escapeHtml,
|
|
1263
1266
|
Zt as formatError,
|
|
1264
1267
|
Nn as formatNumber,
|
|
1265
1268
|
vn as formatPhone,
|
|
1266
1269
|
mn as formatUSCurrency,
|
|
1267
|
-
|
|
1268
|
-
|
|
1270
|
+
ko as handleError,
|
|
1271
|
+
bo as handleErrorAndAlert,
|
|
1269
1272
|
No as installVf,
|
|
1270
1273
|
To as maskComponent,
|
|
1271
1274
|
Gt as maskEl,
|
|
@@ -1283,7 +1286,7 @@ export {
|
|
|
1283
1286
|
wo as showWait,
|
|
1284
1287
|
_n as sleep,
|
|
1285
1288
|
Fo as sleepSecs,
|
|
1286
|
-
|
|
1289
|
+
be as toError,
|
|
1287
1290
|
So as unmaskComponent,
|
|
1288
1291
|
Ge as unmaskEl,
|
|
1289
1292
|
Qe as unmaskForm,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@signal24/vue-foundation",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.20.0",
|
|
5
5
|
"description": "Common components, directives, and helpers for Vue 3 apps",
|
|
6
6
|
"module": "./dist/vue-foundation.es.js",
|
|
7
7
|
"exports": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"license": "MIT",
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"uuid": "^11.0.
|
|
37
|
+
"uuid": "^11.0.5"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"@signal24/openapi-client-codegen": "^2.1.1",
|
|
@@ -43,39 +43,39 @@
|
|
|
43
43
|
"vue": "^3.4.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@eslint/js": "9.
|
|
47
|
-
"@nabla/vite-plugin-eslint": "^2.0.
|
|
48
|
-
"@signal24/openapi-client-codegen": "^2.1.
|
|
46
|
+
"@eslint/js": "9.18.0",
|
|
47
|
+
"@nabla/vite-plugin-eslint": "^2.0.5",
|
|
48
|
+
"@signal24/openapi-client-codegen": "^2.1.2",
|
|
49
49
|
"@tsconfig/node22": "^22.0.0",
|
|
50
50
|
"@types/eslint__js": "^8.42.3",
|
|
51
51
|
"@types/jsdom": "^21.1.7",
|
|
52
|
-
"@types/lodash": "^4.17.
|
|
53
|
-
"@types/node": "^22.
|
|
52
|
+
"@types/lodash": "^4.17.14",
|
|
53
|
+
"@types/node": "^22.10.7",
|
|
54
54
|
"@types/uuid": "^10.0.0",
|
|
55
|
-
"@vitejs/plugin-vue": "^5.2.
|
|
56
|
-
"@vue/eslint-config-prettier": "^10.
|
|
57
|
-
"@vue/eslint-config-typescript": "^14.
|
|
55
|
+
"@vitejs/plugin-vue": "^5.2.1",
|
|
56
|
+
"@vue/eslint-config-prettier": "^10.2.0",
|
|
57
|
+
"@vue/eslint-config-typescript": "^14.3.0",
|
|
58
58
|
"@vue/test-utils": "^2.4.6",
|
|
59
|
-
"@vue/tsconfig": "^0.
|
|
60
|
-
"cypress": "^
|
|
59
|
+
"@vue/tsconfig": "^0.7.0",
|
|
60
|
+
"cypress": "^14.0.0",
|
|
61
61
|
"date-fns": "^4.1.0",
|
|
62
|
-
"eslint": "9.
|
|
62
|
+
"eslint": "9.18.0",
|
|
63
63
|
"eslint-plugin-cypress": "^4.1.0",
|
|
64
64
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
65
65
|
"eslint-plugin-unused-imports": "^4.1.4",
|
|
66
|
-
"eslint-plugin-vue": "^9.
|
|
67
|
-
"jsdom": "^
|
|
66
|
+
"eslint-plugin-vue": "^9.32.0",
|
|
67
|
+
"jsdom": "^26.0.0",
|
|
68
68
|
"lodash": "^4.17.21",
|
|
69
|
-
"prettier": "^3.
|
|
70
|
-
"sass": "^1.
|
|
71
|
-
"start-server-and-test": "^2.0.
|
|
72
|
-
"type-fest": "^4.
|
|
73
|
-
"typescript": "
|
|
74
|
-
"typescript-eslint": "^8.
|
|
75
|
-
"vite": "^
|
|
76
|
-
"vitest": "^
|
|
69
|
+
"prettier": "^3.4.2",
|
|
70
|
+
"sass": "^1.83.4",
|
|
71
|
+
"start-server-and-test": "^2.0.10",
|
|
72
|
+
"type-fest": "^4.33.0",
|
|
73
|
+
"typescript": "~5.6",
|
|
74
|
+
"typescript-eslint": "^8.21.0",
|
|
75
|
+
"vite": "^6.0.11",
|
|
76
|
+
"vitest": "^3.0.3",
|
|
77
77
|
"vue": "^3.5.13",
|
|
78
|
-
"vue-tsc": "^2.
|
|
78
|
+
"vue-tsc": "^2.2.0"
|
|
79
79
|
},
|
|
80
80
|
"packageManager": "yarn@4.5.1"
|
|
81
81
|
}
|