adverich-kun-ui 0.1.384 → 0.1.385

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,58 +1,141 @@
1
- import { ref as o, watch as R } from "vue";
2
- import { format as i, toRawNumberString as m, fromRawString as r, clamp as f } from "./numberFormatUtils.js";
3
- function I(e, a) {
4
- const u = o(""), x = o(null), N = o(null), c = o(!1);
5
- let t = "";
6
- R(
7
- () => e.modelValue,
8
- (n) => {
9
- n == null || isNaN(n) ? (u.value = i(0, e), t = "") : (t = m(n, e.precision), u.value = i(parseFloat(n), e));
10
- },
11
- { immediate: !0 }
12
- );
13
- function V(n) {
14
- const l = n.key, s = /^[0-9]$/.test(l), v = l === "Backspace";
15
- if (!s && !v) {
16
- n.preventDefault();
1
+ import { ref as S, watch as j, nextTick as C } from "vue";
2
+ import { format as d, clamp as b, toRawNumberString as x, fromRawString as L } from "./numberFormatUtils.js";
3
+ function J(t, o) {
4
+ const l = S(""), r = S(null), F = S(null), D = S(!1), s = S(0);
5
+ let e = "";
6
+ const K = t.precision + 1;
7
+ function v(n) {
8
+ return n.padStart(K, "0");
9
+ }
10
+ j(() => t.modelValue, (n) => {
11
+ if (n == null || isNaN(n))
12
+ l.value = d(0, t), e = "0".repeat(t.precision + 1);
13
+ else {
14
+ const i = parseFloat(n), u = b(i, t.min, t.max);
15
+ e = x(u, t.precision), e.length < t.precision + 1 && (e = e.padStart(t.precision + 1, "0")), l.value = d(u, t);
16
+ }
17
+ }, { immediate: !0 });
18
+ function B(n) {
19
+ const { key: i, target: u } = n, c = /^[0-9]$/.test(i), A = i === "Backspace", y = i === "Delete", m = ["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown"].includes(i), h = n.ctrlKey || n.metaKey, f = i === "Home", z = i === "End";
20
+ if (f) {
21
+ C(() => {
22
+ if (!r.value) return;
23
+ const w = l.value.search(/\d/);
24
+ r.value.setSelectionRange(w, w);
25
+ });
26
+ return;
27
+ }
28
+ if (z) {
29
+ C(() => {
30
+ if (!r.value) return;
31
+ const a = l.value;
32
+ r.value.setSelectionRange(a.length, a.length);
33
+ });
17
34
  return;
18
35
  }
19
- s ? t += l : v && (t = t.slice(0, -1));
20
- const b = t.padStart(e.precision + 1, "0"), h = b.slice(0, -e.precision), y = b.slice(-e.precision), B = parseFloat(`${h}.${y}`), d = f(B, e.min, e.max);
21
- u.value = i(d, e), a("update:modelValue", d), a("input", d), n.preventDefault();
36
+ if (m || h) return;
37
+ const R = M(l.value, u.selectionStart);
38
+ n.preventDefault();
39
+ const k = t.precision + 1;
40
+ for (; e.length < k; )
41
+ e = "0" + e;
42
+ const g = N(l.value, R);
43
+ if (c)
44
+ e = e.substring(0, g) + i + e.substring(g), s.value = g + 1;
45
+ else if (A && R > 0) {
46
+ const a = N(l.value, R), w = a - 1;
47
+ if (e.length <= 3) {
48
+ const U = Math.max(0, a - 1);
49
+ e = e.slice(0, U) + e.slice(a), e = v(e), s.value = a, V();
50
+ return;
51
+ }
52
+ a > 0 && (e = e.slice(0, w) + e.slice(a), e = v(e), s.value = w);
53
+ } else y && R < l.value.length && g < e.length && (e = e.substring(0, g) + e.substring(g + 1), s.value = g);
54
+ for (e = v(e); e.length < k; )
55
+ e = "0" + e;
56
+ V();
57
+ }
58
+ function N(n, i) {
59
+ let u = 0;
60
+ for (let c = 0; c < i; c++)
61
+ /\d/.test(n[c]) && u++;
62
+ return u;
63
+ }
64
+ function E(n, i) {
65
+ let u = 0;
66
+ for (let c = 0; c < n.length; c++)
67
+ if (/\d/.test(n[c])) {
68
+ if (u === i)
69
+ return c;
70
+ u++;
71
+ }
72
+ for (let c = n.length - 1; c >= 0; c--)
73
+ if (/\d/.test(n[c]))
74
+ return c + 1;
75
+ return n.length;
76
+ }
77
+ function M(n, i) {
78
+ for (; i < n.length && !/\d/.test(n[i]); )
79
+ i++;
80
+ if (i >= n.length)
81
+ for (i = n.length; i > 0 && !/\d/.test(n[i - 1]); )
82
+ i--;
83
+ const u = n.search(/\d/);
84
+ return i < u && (i = u), i;
85
+ }
86
+ function V() {
87
+ const n = t.precision + 1;
88
+ e.padStart(n, "0");
89
+ const i = Math.max(1, e.length - t.precision), u = e.slice(0, i) || "0", c = e.slice(i).padEnd(t.precision, "0").slice(0, t.precision), A = `${u}.${c}`, y = parseFloat(A), m = b(y, t.min, t.max);
90
+ e = x(m, t.precision), l.value = d(m, t), o("update:modelValue", m), o("input", m), C(() => {
91
+ if (r.value)
92
+ try {
93
+ const h = l.value;
94
+ let f = E(h, s.value);
95
+ for (; f < h.length && !/\d/.test(h[f]); )
96
+ f++;
97
+ r.value.setSelectionRange(f, f);
98
+ } catch {
99
+ r.value.setSelectionRange(l.value.length, l.value.length);
100
+ }
101
+ });
22
102
  }
23
- function g() {
24
- c.value = !1;
25
- const n = r(t, e.precision), l = f(n, e.min, e.max);
26
- t = m(l, e.precision), u.value = i(l, e), a("update:modelValue", l), a("blur");
103
+ function P() {
104
+ D.value = !1, e = v(e);
105
+ const n = L(e, t.precision), i = b(n, t.min, t.max);
106
+ e = x(i, t.precision), e = v(e), l.value = d(i, t), o("update:modelValue", i), o("blur");
27
107
  }
28
- function k() {
29
- c.value = !0, a("focus");
108
+ function T() {
109
+ var i;
110
+ D.value = !0;
111
+ const n = ((i = r.value) == null ? void 0 : i.selectionStart) || 0;
112
+ s.value = N(l.value, n), o("focus");
30
113
  }
31
- function D() {
32
- let n = r(t, e.precision) || 0;
33
- n = f(n + Number(e.step), e.min, e.max), t = m(n, e.precision), u.value = i(n, e), a("update:modelValue", n);
114
+ function $() {
115
+ let n = L(e, t.precision) || 0;
116
+ n = b(n + Number(t.step), t.min, t.max), e = x(n, t.precision), l.value = d(n, t), o("update:modelValue", n);
34
117
  }
35
- function F() {
36
- let n = r(t, e.precision) || 0;
37
- n = f(n - Number(e.step), e.min, e.max), t = m(n, e.precision), u.value = i(n, e), a("update:modelValue", n);
118
+ function H() {
119
+ let n = L(e, t.precision) || 0;
120
+ n = b(n - Number(t.step), t.min, t.max), e = x(n, t.precision), l.value = d(n, t), o("update:modelValue", n);
38
121
  }
39
- function S() {
40
- t = "", u.value = i(0, e), a("update:modelValue", null);
122
+ function I() {
123
+ e = "0".repeat(t.precision + 1), s.value = t.precision + 1, V();
41
124
  }
42
125
  return {
43
- inputValue: u,
44
- numberInput: x,
45
- rootRef: N,
46
- validateKey: V,
47
- handleFocus: k,
48
- handleBlur: g,
49
- onIncrement: D,
50
- onDecrement: F,
51
- onClear: S,
52
- isActive: c,
53
- focus: c
126
+ inputValue: l,
127
+ numberInput: r,
128
+ rootRef: F,
129
+ validateKey: B,
130
+ handleFocus: T,
131
+ handleBlur: P,
132
+ onIncrement: $,
133
+ onDecrement: H,
134
+ onClear: I,
135
+ isActive: D,
136
+ focus: D
54
137
  };
55
138
  }
56
139
  export {
57
- I as useKunNumberField
140
+ J as useKunNumberField
58
141
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adverich-kun-ui",
3
- "version": "0.1.384",
3
+ "version": "0.1.385",
4
4
  "type": "module",
5
5
  "description": "Una librería de componentes Vue.js con Tailwind CSS",
6
6
  "main": "dist/index.js",