@signal24/vue-foundation 4.19.7 → 4.20.1

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.
@@ -1,6 +1,8 @@
1
1
  <template>
2
2
  <div id="demo-vf-smart-select">
3
3
  <VfSmartSelect v-model="selectedOption" :options="options" label-field="label" />
4
+
5
+ Selected value: {{ selectedOption?.label ?? '-' }}
4
6
  </div>
5
7
  </template>
6
8
 
@@ -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"> & Partial<{}> & {
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
- }> & import("vue").PublicProps;
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, {}, HTMLDivElement>;
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"> & Partial<{}> & {
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
- }> & import("vue").PublicProps;
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, {}, HTMLDivElement>;
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 k, createElementVNode as D, toDisplayString as U, withDirectives as Q, createCommentVNode as F, Fragment as J, renderList as he, vModelSelect as Ct, getCurrentInstance as pe, withModifiers as ye, normalizeStyle as xt, normalizeClass as B, 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, startCase as Dt, upperFirst as Bt, cloneDeep as $t, remove as Vt, last as _t } from "lodash";
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 b = g;
30
- return n.preprocesor ? n.preprocesor(b) : n.displayKey ? b[n.displayKey] : "";
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(), k("select", {
39
+ return V(a), (d, g) => l.value ? Q((E(), b("select", {
40
40
  key: 1,
41
- "onUpdate:modelValue": g[0] || (g[0] = (b) => u.value = b)
41
+ "onUpdate:modelValue": g[0] || (g[0] = (k) => u.value = k)
42
42
  }, [
43
- n.nullText ? (E(), k("option", jt, U(n.nullText), 1)) : F("", !0),
44
- (E(!0), k(J, null, he(l.value, (b, f) => {
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(), k("option", {
46
+ return E(), b("option", {
47
47
  key: f,
48
48
  value: (w = i.value) == null ? void 0 : w[f]
49
- }, U(b), 9, Pt);
49
+ }, U(k), 9, Pt);
50
50
  }), 128))
51
51
  ], 512)), [
52
52
  [Ct, u.value]
53
- ]) : (E(), k("select", Ut, [
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: b, classes: f } = a(g, n);
69
- o.value = b, i.value = f;
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, b) {
72
- const f = t.anchor instanceof HTMLElement ? {} : t.anchor, w = b.getBoundingClientRect(), m = g.getBoundingClientRect();
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;
@@ -102,7 +102,7 @@ const Ut = {
102
102
  setTimeout(() => {
103
103
  window.addEventListener("click", d);
104
104
  }, 10);
105
- }), (g, b) => (E(), k("div", {
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"])
@@ -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
- ${ke(e).message}
220
+ ${be(e).message}
221
221
 
222
222
  Please refresh the page and try again. If this error persists, ${$.unhandledErrorSupportText}.`;
223
223
  }
224
- function ke(e) {
224
+ function be(e) {
225
225
  return e instanceof Error ? e : new Error(String(e));
226
226
  }
227
- async function ko(e, t) {
228
- const n = ke(e);
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 bo(e) {
236
- const t = ke(e);
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");
@@ -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 && b();
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 && b();
319
+ S[S.length - 1] === i.value && k();
320
320
  }
321
321
  }
322
- function b() {
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(), k("div", {
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(), k("div", en, [
350
+ c.$slots.header ? (E(), b("div", en, [
351
351
  G(c.$slots, "header"),
352
- o.closeX ? (E(), k("i", {
352
+ o.closeX ? (E(), b("i", {
353
353
  key: 0,
354
354
  class: "close",
355
- onClick: b
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(), k("div", nn, [
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(), k("i", {
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(), k("div", {
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(), k("div", {
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(), k(J, { key: 0 }, [
413
- Q((E(), k("button", {
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(), k("button", {
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
- if (Be.randomUUID && !t && !e)
458
+ var i;
459
+ if (Be.randomUUID && !e)
459
460
  return Be.randomUUID();
460
461
  e = e || {};
461
- const o = e.random || (e.rng || un)();
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
- }, kn = "`1234567890-=[]\\;',./~!@#$%^&*()_+{}|:\"<>?qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM", bn = /* @__PURE__ */ N({
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: bt
522
+ addRemoteOption: kt
520
523
  });
521
- const a = T(), d = T(), g = T(), b = 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) => {
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
- b.value = !0, w.value = await ((v = l.loadOptions) == null ? void 0 : v.call(l, s)) ?? [], b.value = !1, f.value = !0;
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 && kn.includes(s.key) && (m.value = !0);
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 kt(s) {
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 bt(s) {
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(), k("div", {
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(), k("div", {
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(), k(J, { key: 1 }, [
731
- (E(!0), k(J, null, he(H.value, (h) => (E(), k("div", {
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) => kt(h),
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(), k("div", {
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(), k("div", En, U(dt.value), 1)) : F("", !0)
750
- ], 64)) : (E(), k("div", pn, "Loading..."))
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((b) => Xe(b, a))) == null ? void 0 : g.value : null;
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(bn, {
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(), k("div", {
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(), k("div", Cn, "x"))
829
+ i.disableClose ? F("", !0) : (E(), b("div", Cn, "x"))
827
830
  ]),
828
- i.durationSecs !== null ? (E(), k("div", xn, [
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 ? Bt(e) : null;
865
+ return e ? Dt(e) : null;
863
866
  }
864
867
  function Dn(e) {
865
- return e ? Dt(e) : null;
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, b = u < a ? e.clientY - a - 1 : e.clientY + 1;
911
- o.style.left = g + "px", o.style.top = b + "px", setTimeout(() => {
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,7 +952,7 @@ function $o(e, t) {
949
952
  }
950
953
  });
951
954
  }
952
- const be = Symbol("HookState");
955
+ const ke = Symbol("HookState");
953
956
  function Vo(e, t) {
954
957
  const n = t ?? pe();
955
958
  V(() => Rn(n, e), n), ze(() => Wn(n), n), Ke(() => Ve(n), n), ge(() => Ve(n), n);
@@ -960,16 +963,16 @@ function Rn(e, t) {
960
963
  const o = et(e.vnode.el);
961
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 K(window, t.windowScrolledToBottom)), e[be] = n;
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[be];
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[be];
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"];
@@ -1052,13 +1055,13 @@ function Re(e, t) {
1052
1055
  t.value == t.oldValue && e.innerHTML.length || (e.innerText = Yn(e, t));
1053
1056
  }
1054
1057
  function Yn(e, t) {
1055
- var g, b;
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 = (b = e.attributes.getNamedItem("format")) == null ? void 0 : b.value;
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();
@@ -1248,7 +1251,7 @@ export {
1248
1251
  le as VfAlertModal,
1249
1252
  Lo as VfEzSmartSelect,
1250
1253
  on as VfModal,
1251
- bn as VfSmartSelect,
1254
+ kn as VfSmartSelect,
1252
1255
  Do as cloneProp,
1253
1256
  Eo as configureVf,
1254
1257
  $o as configureVfOpenApiClient,
@@ -1264,8 +1267,8 @@ export {
1264
1267
  Nn as formatNumber,
1265
1268
  vn as formatPhone,
1266
1269
  mn as formatUSCurrency,
1267
- bo as handleError,
1268
- ko as handleErrorAndAlert,
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
- ke as toError,
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.19.7",
4
+ "version": "4.20.1",
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.3"
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.14.0",
47
- "@nabla/vite-plugin-eslint": "^2.0.4",
48
- "@signal24/openapi-client-codegen": "^2.1.1",
46
+ "@eslint/js": "9.18.0",
47
+ "@nabla/vite-plugin-eslint": "^2.0.5",
48
+ "@signal24/openapi-client-codegen": "^2.2.1",
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.13",
53
- "@types/node": "^22.9.0",
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.0",
56
- "@vue/eslint-config-prettier": "^10.1.0",
57
- "@vue/eslint-config-typescript": "^14.1.3",
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.6.0",
60
- "cypress": "^13.15.2",
59
+ "@vue/tsconfig": "^0.7.0",
60
+ "cypress": "^14.0.0",
61
61
  "date-fns": "^4.1.0",
62
- "eslint": "9.14.0",
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.31.0",
67
- "jsdom": "^25.0.1",
66
+ "eslint-plugin-vue": "^9.32.0",
67
+ "jsdom": "^26.0.0",
68
68
  "lodash": "^4.17.21",
69
- "prettier": "^3.3.3",
70
- "sass": "^1.81.0",
71
- "start-server-and-test": "^2.0.8",
72
- "type-fest": "^4.27.0",
73
- "typescript": "^5.6.3",
74
- "typescript-eslint": "^8.14.0",
75
- "vite": "^5.4.11",
76
- "vitest": "^2.1.5",
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.1.10"
78
+ "vue-tsc": "^2.2.0"
79
79
  },
80
80
  "packageManager": "yarn@4.5.1"
81
81
  }