v-money3 3.25.0 → 3.25.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,7 +1,7 @@
1
1
  import { DirectiveBinding } from 'vue';
2
2
  declare const _default: {
3
- mounted(el: HTMLInputElement, binding: DirectiveBinding): void;
4
- updated(el: HTMLInputElement, binding: DirectiveBinding): void;
5
- beforeUnmount(el: HTMLInputElement): void;
3
+ mounted(host: HTMLInputElement, binding: DirectiveBinding): void;
4
+ updated(host: HTMLInputElement, binding: DirectiveBinding): void;
5
+ beforeUnmount(host: HTMLInputElement): void;
6
6
  };
7
7
  export default _default;
package/dist/v-money3.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { computed as e, createElementBlock as t, defineComponent as n, getCurrentInstance as r, mergeProps as i, openBlock as a, ref as o, resolveDirective as s, toRefs as c, unref as l, useAttrs as u, watch as d, withDirectives as f } from "vue";
1
+ import { computed as e, createElementBlock as t, defineComponent as n, getCurrentInstance as r, mergeProps as i, onMounted as a, openBlock as o, ref as s, resolveDirective as c, toRefs as l, unref as u, useAttrs as d, watch as f, withDirectives as p } from "vue";
2
2
  //#region src/options.ts
3
- var p = {
3
+ var m = {
4
4
  debug: !1,
5
5
  masked: !1,
6
6
  prefix: "",
@@ -19,58 +19,62 @@ var p = {
19
19
  shouldRound: !0,
20
20
  focusOnRight: !1,
21
21
  lazy: !0
22
- }, m = ["+", "-"], h = [
22
+ }, h = ["+", "-"], g = [
23
23
  "decimal",
24
24
  "thousands",
25
25
  "prefix",
26
26
  "suffix"
27
27
  ];
28
- function g(e) {
29
- return Math.max(0, Math.min(e, 1e3));
28
+ function _(e) {
29
+ return Math.max(0, Math.min(e, 100));
30
30
  }
31
- function _(e, t) {
31
+ function v(e, t) {
32
32
  return e = e.padStart(t + 1, "0"), t === 0 ? e : `${e.slice(0, -t)}.${e.slice(-t)}`;
33
33
  }
34
- function v(e) {
34
+ function y(e) {
35
35
  return e = e ? e.toString() : "", e.replace(/\D+/g, "") || "0";
36
36
  }
37
- function y(e, t) {
37
+ function b(e, t) {
38
38
  return e.replace(/(\d)(?=(?:\d{3})+\b)/gm, `$1${t}`);
39
39
  }
40
- function b(e, t, n) {
40
+ function x(e, t, n) {
41
41
  return t ? e + n + t : e;
42
42
  }
43
- function x(e, t) {
44
- return m.includes(e) ? (console.warn(`v-money3 "${t}" property don't accept "${e}" as a value.`), !1) : /\d/g.test(e) ? (console.warn(`v-money3 "${t}" property don't accept "${e}" (any number) as a value.`), !1) : !0;
43
+ function S(e, t) {
44
+ return h.includes(e) ? (console.warn(`v-money3 "${t}" property don't accept "${e}" as a value.`), !1) : /\d/g.test(e) ? (console.warn(`v-money3 "${t}" property don't accept "${e}" (any number) as a value.`), !1) : !0;
45
45
  }
46
- function S(e) {
47
- for (let t of h) if (!x(e[t], t)) return !1;
46
+ function C(e) {
47
+ for (let t of g) if (!S(e[t], t)) return !1;
48
48
  return !0;
49
49
  }
50
- function C(e) {
51
- for (let t of h) {
50
+ function w(e) {
51
+ for (let t of g) {
52
+ if (typeof e[t] != "string") {
53
+ e[t] = "";
54
+ continue;
55
+ }
52
56
  e[t] = e[t].replace(/\d+/g, "");
53
- for (let n of m) e[t] = e[t].replaceAll(n, "");
57
+ for (let n of h) e[t] = e[t].replaceAll(n, "");
54
58
  }
55
59
  return e;
56
60
  }
57
- function w(e) {
61
+ function T(e) {
58
62
  return e.length - (e.indexOf(".") + 1);
59
63
  }
60
- function T(e) {
64
+ function E(e) {
61
65
  return e.replace(/^(-?)0+(?!\.)(.+)/, "$1$2");
62
66
  }
63
- function E(e) {
67
+ function D(e) {
64
68
  return /^-?[\d]+$/g.test(e);
65
69
  }
66
- function D(e) {
70
+ function O(e) {
67
71
  return /^-?[\d]+(\.[\d]+)$/g.test(e);
68
72
  }
69
- function O(e, t, n) {
73
+ function k(e, t, n) {
70
74
  return t > e.length - 1 ? e : e.substring(0, t) + n + e.substring(t + 1);
71
75
  }
72
- function k(e, t) {
73
- let n = t - w(e);
76
+ function A(e, t) {
77
+ let n = t - T(e);
74
78
  if (n >= 0) return e;
75
79
  let r = e.slice(0, n), i = e.slice(n);
76
80
  if (r.charAt(r.length - 1) === "." && (r = r.slice(0, -1)), parseInt(i.charAt(0), 10) >= 5) {
@@ -78,61 +82,61 @@ function k(e, t) {
78
82
  let t = r.charAt(e);
79
83
  if (t !== "." && t !== "-") {
80
84
  let n = parseInt(t, 10) + 1;
81
- if (n < 10) return O(r, e, n);
82
- r = O(r, e, "0");
85
+ if (n < 10) return k(r, e, n);
86
+ r = k(r, e, "0");
83
87
  }
84
88
  }
85
89
  return `1${r}`;
86
90
  }
87
91
  return r;
88
92
  }
89
- function A(e, t) {
93
+ function j(e, t) {
90
94
  let n = () => {
91
- e.setSelectionRange(t, t);
95
+ e === document.activeElement && e.setSelectionRange(t, t);
92
96
  };
93
97
  e === document.activeElement && (n(), setTimeout(n, 1));
94
98
  }
95
- function j(e) {
99
+ function M(e) {
96
100
  return new Event(e, {
97
101
  bubbles: !0,
98
102
  cancelable: !1
99
103
  });
100
104
  }
101
- function M({ debug: e = !1 }, ...t) {
105
+ function N({ debug: e = !1 }, ...t) {
102
106
  e && console.log(...t);
103
107
  }
104
108
  //#endregion
105
109
  //#region \0@oxc-project+runtime@0.130.0/helpers/typeof.js
106
- function N(e) {
110
+ function P(e) {
107
111
  "@babel/helpers - typeof";
108
- return N = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
112
+ return P = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
109
113
  return typeof e;
110
114
  } : function(e) {
111
115
  return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
112
- }, N(e);
116
+ }, P(e);
113
117
  }
114
118
  //#endregion
115
119
  //#region \0@oxc-project+runtime@0.130.0/helpers/toPrimitive.js
116
- function P(e, t) {
117
- if (N(e) != "object" || !e) return e;
120
+ function F(e, t) {
121
+ if (P(e) != "object" || !e) return e;
118
122
  var n = e[Symbol.toPrimitive];
119
123
  if (n !== void 0) {
120
124
  var r = n.call(e, t || "default");
121
- if (N(r) != "object") return r;
125
+ if (P(r) != "object") return r;
122
126
  throw TypeError("@@toPrimitive must return a primitive value.");
123
127
  }
124
128
  return (t === "string" ? String : Number)(e);
125
129
  }
126
130
  //#endregion
127
131
  //#region \0@oxc-project+runtime@0.130.0/helpers/toPropertyKey.js
128
- function F(e) {
129
- var t = P(e, "string");
130
- return N(t) == "symbol" ? t : t + "";
132
+ function I(e) {
133
+ var t = F(e, "string");
134
+ return P(t) == "symbol" ? t : t + "";
131
135
  }
132
136
  //#endregion
133
137
  //#region \0@oxc-project+runtime@0.130.0/helpers/defineProperty.js
134
- function I(e, t, n) {
135
- return (t = F(t)) in e ? Object.defineProperty(e, t, {
138
+ function L(e, t, n) {
139
+ return (t = I(t)) in e ? Object.defineProperty(e, t, {
136
140
  value: n,
137
141
  enumerable: !0,
138
142
  configurable: !0,
@@ -141,9 +145,9 @@ function I(e, t, n) {
141
145
  }
142
146
  //#endregion
143
147
  //#region src/BigNumber.ts
144
- var L = class e {
148
+ var R = class e {
145
149
  constructor(e) {
146
- I(this, "number", 0n), I(this, "decimal", 0), this.setNumber(e);
150
+ L(this, "number", 0n), L(this, "decimal", 0), this.setNumber(e);
147
151
  }
148
152
  getNumber() {
149
153
  return this.number;
@@ -156,13 +160,19 @@ var L = class e {
156
160
  }
157
161
  toFixed(e = 0, t = !0) {
158
162
  let n = this.toString(), r = e - this.getDecimalPrecision();
159
- return r > 0 ? (n.includes(".") || (n += "."), n.padEnd(n.length + r, "0")) : r < 0 ? t ? k(n, e) : n.slice(0, r) : n;
163
+ if (r > 0) return n.includes(".") || (n += "."), n.padEnd(n.length + r, "0");
164
+ if (r < 0) {
165
+ if (t) return A(n, e);
166
+ let i = n.slice(0, r);
167
+ return i.endsWith(".") ? i.slice(0, -1) : i;
168
+ }
169
+ return n;
160
170
  }
161
171
  toString() {
162
172
  let e = this.number.toString();
163
173
  if (this.decimal) {
164
174
  let t = !1;
165
- return e.charAt(0) === "-" && (e = e.substring(1), t = !0), e = e.padStart(e.length + this.decimal, "0"), e = `${e.slice(0, -this.decimal)}.${e.slice(-this.decimal)}`, e = T(e), (t ? "-" : "") + e;
175
+ return e.charAt(0) === "-" && (e = e.substring(1), t = !0), e = e.padStart(e.length + this.decimal, "0"), e = `${e.slice(0, -this.decimal)}.${e.slice(-this.decimal)}`, e = E(e), (t ? "-" : "") + e;
166
176
  }
167
177
  return e;
168
178
  }
@@ -179,55 +189,57 @@ var L = class e {
179
189
  return t === n;
180
190
  }
181
191
  setupString(e) {
182
- if (e = T(e), E(e)) this.number = BigInt(e);
183
- else if (D(e)) this.decimal = w(e), this.number = BigInt(e.replace(".", ""));
184
- else throw Error(`BigNumber has received and invalid format for the constructor: ${e}`);
192
+ if (e = E(e), D(e)) this.number = BigInt(e);
193
+ else if (O(e)) this.decimal = T(e), this.number = BigInt(e.replace(".", ""));
194
+ else throw Error(`BigNumber has received an invalid format for the constructor: ${e}`);
185
195
  }
186
196
  adjustComparisonNumbers(t) {
187
197
  let n;
188
- n = t.constructor.name === "BigNumber" ? t : new e(t);
198
+ n = t instanceof e ? t : new e(t);
189
199
  let r = this.getDecimalPrecision() - n.getDecimalPrecision(), i = this.getNumber(), a = n.getNumber();
190
200
  return r > 0 ? a = n.getNumber() * 10n ** BigInt(r) : r < 0 && (i = this.getNumber() * 10n ** BigInt(r * -1)), [i, a];
191
201
  }
192
202
  };
193
203
  //#endregion
194
204
  //#region src/format.ts
195
- function R(e, t = p, n = "") {
196
- if (M(t, "utils format() - caller", n), M(t, "utils format() - input1", e), (e == null || e === "") && t.allowBlank) return "";
205
+ function z(e, t = m, n = "") {
206
+ N(t, "utils format() - caller", n), N(t, "utils format() - input1", e);
207
+ let r = _(t.precision);
208
+ if ((e == null || e === "") && t.allowBlank) return "";
197
209
  if (e == null) e = "";
198
- else if (typeof e == "number") e = t.shouldRound ? e.toFixed(g(t.precision)) : e.toFixed(g(t.precision) + 1).slice(0, -1);
199
- else if (t.modelModifiers && t.modelModifiers.number && E(e)) e = Number(e).toFixed(g(t.precision));
210
+ else if (typeof e == "number") e = t.shouldRound ? e.toFixed(r) : e.toFixed(Math.min(r + 1, 100)).slice(0, -1);
211
+ else if (t.modelModifiers && t.modelModifiers.number && D(e)) e = Number(e).toFixed(r);
200
212
  else if (!t.disableNegative && e === "-") return e;
201
- M(t, "utils format() - input2", e);
202
- let r = t.disableNegative ? "" : e.indexOf("-") >= 0 ? "-" : "", i = e.replace(t.prefix, "").replace(t.suffix, "");
203
- M(t, "utils format() - filtered", i), !t.precision && t.thousands !== "." && D(i) && (i = k(i, 0), M(t, "utils format() - !opt.precision && isValidFloat()", i));
204
- let a = v(i);
205
- M(t, "utils format() - numbers", a), M(t, "utils format() - numbersToCurrency", r + _(a, t.precision));
206
- let o = new L(r + _(a, t.precision));
207
- M(t, "utils format() - bigNumber1", o.toString()), t.max && o.biggerThan(t.max) && o.setNumber(t.max), t.min && o.lessThan(t.min) && o.setNumber(t.min);
208
- let s = o.toFixed(g(t.precision), t.shouldRound);
209
- if (M(t, "utils format() - bigNumber2", o.toFixed(g(t.precision))), /^0(\.0+)?$/g.test(s) && t.allowBlank && t.treatZeroAsBlank) return "";
210
- let [c, l] = s.split("."), u = l === void 0 ? 0 : l.length;
211
- c = c.padStart(t.minimumNumberOfCharacters - u, "0"), c = y(c, t.thousands);
212
- let d = t.prefix + b(c, l, t.decimal) + t.suffix;
213
- return M(t, "utils format() - output", d), d;
213
+ N(t, "utils format() - input2", e);
214
+ let i = t.disableNegative ? "" : e.indexOf("-") >= 0 ? "-" : "", a = e.replace(t.prefix, "").replace(t.suffix, "");
215
+ N(t, "utils format() - filtered", a), !r && t.thousands !== "." && O(a) && (a = A(a, 0), N(t, "utils format() - !precision && isValidFloat()", a));
216
+ let o = y(a);
217
+ N(t, "utils format() - numbers", o), N(t, "utils format() - numbersToCurrency", i + v(o, r));
218
+ let s = new R(i + v(o, r));
219
+ N(t, "utils format() - bigNumber1", s.toString()), t.max !== null && t.max !== void 0 && t.max !== "" && s.biggerThan(t.max) && s.setNumber(t.max), t.min !== null && t.min !== void 0 && t.min !== "" && s.lessThan(t.min) && s.setNumber(t.min), t.disableNegative && s.lessThan(0) && s.setNumber(0);
220
+ let c = s.toFixed(r, t.shouldRound);
221
+ if (N(t, "utils format() - bigNumber2", s.toFixed(r)), /^0(\.0+)?$/g.test(c) && t.allowBlank && t.treatZeroAsBlank) return "";
222
+ let [l, u] = c.split("."), d = u === void 0 ? 0 : u.length, f = l.charAt(0) === "-", p = (f ? l.slice(1) : l).padStart(t.minimumNumberOfCharacters - d, "0");
223
+ l = (f ? "-" : "") + b(p, t.thousands);
224
+ let h = t.prefix + x(l, u, t.decimal) + t.suffix;
225
+ return N(t, "utils format() - output", h), h;
214
226
  }
215
227
  //#endregion
216
228
  //#region src/unformat.ts
217
- function z(e, t = p, n = "") {
218
- if (M(t, "utils unformat() - caller", n), M(t, "utils unformat() - input", e), !t.disableNegative && e === "-") return M(t, "utils unformat() - return netagive symbol", e), e;
229
+ function B(e, t = m, n = "") {
230
+ if (N(t, "utils unformat() - caller", n), N(t, "utils unformat() - input", e), !t.disableNegative && e === "-") return N(t, "utils unformat() - return netagive symbol", e), e;
219
231
  let r = t.disableNegative ? "" : e.indexOf("-") >= 0 ? "-" : "", i = e.replace(t.prefix, "").replace(t.suffix, "");
220
- M(t, "utils unformat() - filtered", i);
221
- let a = v(i);
222
- M(t, "utils unformat() - numbers", a);
223
- let o = new L(r + _(a, t.precision));
224
- M(t, "utils unformat() - bigNumber1", a.toString()), t.max && o.biggerThan(t.max) && o.setNumber(t.max), t.min && o.lessThan(t.min) && o.setNumber(t.min);
225
- let s = o.toFixed(g(t.precision), t.shouldRound);
226
- return t.modelModifiers && t.modelModifiers.number && (s = parseFloat(s)), M(t, "utils unformat() - output", s), s;
232
+ N(t, "utils unformat() - filtered", i);
233
+ let a = y(i);
234
+ N(t, "utils unformat() - numbers", a);
235
+ let o = new R(r + v(a, t.precision));
236
+ N(t, "utils unformat() - bigNumber1", a.toString()), t.max !== null && t.max !== void 0 && t.max !== "" && o.biggerThan(t.max) && o.setNumber(t.max), t.min !== null && t.min !== void 0 && t.min !== "" && o.lessThan(t.min) && o.setNumber(t.min), t.disableNegative && o.lessThan(0) && o.setNumber(0);
237
+ let s = o.toFixed(_(t.precision), t.shouldRound);
238
+ return t.modelModifiers && t.modelModifiers.number && (s = parseFloat(s)), N(t, "utils unformat() - output", s), s;
227
239
  }
228
240
  //#endregion
229
241
  //#region src/directive.ts
230
- var B = [
242
+ var V = [
231
243
  "precision",
232
244
  "decimal",
233
245
  "thousands",
@@ -240,82 +252,90 @@ var B = [
240
252
  "minimumNumberOfCharacters",
241
253
  "shouldRound",
242
254
  "modelModifiers"
243
- ], V = (e, t, n) => {
244
- if (M(t, "directive setValue() - caller", n), !S(t)) {
245
- M(t, "directive setValue() - validateRestrictedOptions() return false. Stopping here...", e.value);
255
+ ], H = (e, t, n) => {
256
+ if (N(t, "directive setValue() - caller", n), !C(t)) {
257
+ N(t, "directive setValue() - validateRestrictedOptions() return false. Stopping here...", e.value);
246
258
  return;
247
259
  }
248
- let r = e.value.length - (e.selectionEnd || 0), i = R(e.value, t, n);
249
- i !== e.value && (e.value = i, r = Math.max(r, t.suffix.length), r = e.value.length - r, r = Math.max(r, t.prefix.length), A(e, r), e.dispatchEvent(j("change")));
250
- }, H = (e, t) => {
251
- let n = e.currentTarget, r = e.code === "Backspace" || e.code === "Delete", i = n.value.length - (n.selectionEnd || 0) === 0;
252
- if (M(t, "directive onkeydown() - el.value", n.value), M(t, "directive onkeydown() - backspacePressed", r), M(t, "directive onkeydown() - isAtEndPosition", i), t.allowBlank && t.treatZeroAsBlank && r && i && z(n.value, t, "directive onkeydown allowBlank") === 0 && (M(t, "directive onkeydown() - set el.value = \"\"", n.value), n.value = "", n.dispatchEvent(j("change"))), M(t, "directive onkeydown() - e.key", e.key), e.key === "+") {
253
- M(t, "directive onkeydown() - unformat el.value", n.value);
254
- let e = z(n.value, t, "directive onkeydown +");
255
- typeof e == "string" && (e = parseFloat(e)), e < 0 && (n.value = String(e * -1));
256
- }
260
+ let r = e.value.length - (e.selectionEnd || 0), i = z(e.value, t, n);
261
+ i !== e.value && (e.value = i, r = Math.max(r, t.suffix.length), r = e.value.length - r, r = Math.max(r, t.prefix.length), j(e, r), e.dispatchEvent(M("change")));
257
262
  }, U = (e, t) => {
258
- let n = e.currentTarget;
259
- M(t, "directive oninput()", n.value), /^[1-9]$/.test(n.value) && (n.value = _(n.value, g(t.precision)), M(t, "directive oninput() - is 1-9", n.value)), V(n, t, "directive oninput");
263
+ let n = e.currentTarget, r = e.code === "Backspace" || e.code === "Delete", i = n.value.length - (n.selectionEnd || 0) === 0;
264
+ N(t, "directive onkeydown() - el.value", n.value), N(t, "directive onkeydown() - backspacePressed", r), N(t, "directive onkeydown() - isAtEndPosition", i), t.allowBlank && t.treatZeroAsBlank && r && i && parseFloat(String(B(n.value, t, "directive onkeydown allowBlank"))) === 0 && (N(t, "directive onkeydown() - set el.value = \"\"", n.value), n.value = "", n.dispatchEvent(M("change"))), N(t, "directive onkeydown() - e.key", e.key), e.key === "+" && n.value.indexOf("-") >= 0 && (N(t, "directive onkeydown() - flipping sign on el.value", n.value), n.value = n.value.replace("-", ""), H(n, t, "directive onkeydown +"));
260
265
  }, W = (e, t) => {
261
266
  let n = e.currentTarget;
262
- M(t, "directive onFocus()", n.value), t.focusOnRight && A(n, n.value.length - t.suffix.length);
263
- }, G = (e) => {
267
+ N(t, "directive oninput()", n.value), /^[1-9]$/.test(n.value) && (n.value = v(n.value, _(t.precision)), N(t, "directive oninput() - is 1-9", n.value)), H(n, t, "directive oninput");
268
+ }, G = (e, t) => {
269
+ let n = e.currentTarget;
270
+ N(t, "directive onFocus()", n.value), t.focusOnRight && j(n, n.value.length - t.suffix.length);
271
+ }, K = (e) => {
264
272
  if (e.tagName.toLocaleUpperCase() !== "INPUT") {
265
273
  let t = e.getElementsByTagName("input");
266
274
  if (t.length !== 1) throw Error(`v-money3 requires 1 input, found ${t.length} elements.`);
267
275
  return t[0];
268
276
  }
269
277
  return e;
270
- }, K = (e, t) => {
278
+ }, q = (e, t) => {
271
279
  e.onkeydown = (e) => {
272
- H(e, t);
273
- }, e.oninput = (e) => {
274
280
  U(e, t);
275
- }, e.onfocus = (e) => {
281
+ }, e.oninput = (e) => {
276
282
  W(e, t);
283
+ }, e.onfocus = (e) => {
284
+ G(e, t);
277
285
  };
278
286
  };
279
- function q(e, t) {
280
- return e ? B.some((n) => JSON.stringify(e[n]) !== JSON.stringify(t[n])) : !1;
287
+ function J(e, t) {
288
+ return e ? V.some((n) => JSON.stringify(e[n]) !== JSON.stringify(t[n])) : !1;
289
+ }
290
+ var Y = "__v_money3_input__";
291
+ function X(e) {
292
+ let t = e[Y];
293
+ if (t) return t;
294
+ let n = K(e);
295
+ return e[Y] = n, n;
281
296
  }
282
- var J = {
297
+ var Z = {
283
298
  mounted(e, t) {
284
299
  if (!t.value) return;
285
- let n = C({
286
- ...p,
300
+ let n = w({
301
+ ...m,
287
302
  ...t.value
288
303
  });
289
- M(n, "directive mounted() - opt", n), e = G(e), K(e, n), M(n, "directive mounted() - el.value", e.value), V(e, n, "directive mounted");
304
+ N(n, "directive mounted() - opt", n);
305
+ let r = X(e);
306
+ q(r, n), N(n, "directive mounted() - el.value", r.value), H(r, n, "directive mounted");
290
307
  },
291
308
  updated(e, t) {
292
309
  if (!t.value) return;
293
- let n = C({
294
- ...p,
310
+ let n = w({
311
+ ...m,
295
312
  ...t.value
296
313
  });
297
- if (M(n, "directive updated() - opt", n), M(n, "directive updated() - el.value", e.value), e = G(e), R(e.value, n, "directive updated check") !== e.value) {
298
- if (q(t.oldValue ? C({
299
- ...p,
314
+ N(n, "directive updated() - opt", n), N(n, "directive updated() - host.value", e.value);
315
+ let r = X(e);
316
+ if (z(r.value, n, "directive updated check") !== r.value) {
317
+ if (J(t.oldValue ? w({
318
+ ...m,
300
319
  ...t.oldValue
301
- }) : null, n) && e.value !== "") {
320
+ }) : null, n) && r.value !== "") {
302
321
  console.warn("v-money3: runtime change of format options on the bare directive is unsupported and was skipped to avoid corrupting the value. Re-mount the directive or use the Money3 component instead.");
303
322
  return;
304
323
  }
305
- V(e, n, "directive updated");
324
+ H(r, n, "directive updated");
306
325
  }
307
326
  },
308
327
  beforeUnmount(e) {
309
- e.onkeydown = null, e.oninput = null, e.onfocus = null;
328
+ let t = e[Y] || e;
329
+ t.onkeydown = null, t.oninput = null, t.onfocus = null, delete e[Y];
310
330
  }
311
- }, Y = [
331
+ }, Q = [
312
332
  "id",
313
333
  "value",
314
334
  "disabled"
315
- ], X = /* @__PURE__ */ n({
335
+ ], $ = /* @__PURE__ */ n({
316
336
  inheritAttrs: !1,
317
337
  name: "Money3",
318
- directives: { money3: J },
338
+ directives: { money3: Z },
319
339
  __name: "component",
320
340
  props: {
321
341
  debug: {
@@ -346,34 +366,34 @@ var J = {
346
366
  },
347
367
  precision: {
348
368
  type: Number,
349
- default: () => p.precision
369
+ default: () => m.precision
350
370
  },
351
371
  decimal: {
352
372
  type: String,
353
- default: () => p.decimal,
373
+ default: () => m.decimal,
354
374
  validator(e) {
355
- return x(e, "decimal");
375
+ return S(e, "decimal");
356
376
  }
357
377
  },
358
378
  thousands: {
359
379
  type: String,
360
- default: () => p.thousands,
380
+ default: () => m.thousands,
361
381
  validator(e) {
362
- return x(e, "thousands");
382
+ return S(e, "thousands");
363
383
  }
364
384
  },
365
385
  prefix: {
366
386
  type: String,
367
- default: () => p.prefix,
387
+ default: () => m.prefix,
368
388
  validator(e) {
369
- return x(e, "prefix");
389
+ return S(e, "prefix");
370
390
  }
371
391
  },
372
392
  suffix: {
373
393
  type: String,
374
- default: () => p.suffix,
394
+ default: () => m.suffix,
375
395
  validator(e) {
376
- return x(e, "suffix");
396
+ return S(e, "suffix");
377
397
  }
378
398
  },
379
399
  disableNegative: {
@@ -386,106 +406,112 @@ var J = {
386
406
  },
387
407
  max: {
388
408
  type: [Number, String],
389
- default: () => p.max
409
+ default: () => m.max
390
410
  },
391
411
  min: {
392
412
  type: [Number, String],
393
- default: () => p.min
413
+ default: () => m.min
394
414
  },
395
415
  allowBlank: {
396
416
  type: Boolean,
397
- default: () => p.allowBlank
417
+ default: () => m.allowBlank
398
418
  },
399
419
  treatZeroAsBlank: {
400
420
  type: Boolean,
401
- default: () => p.treatZeroAsBlank
421
+ default: () => m.treatZeroAsBlank
402
422
  },
403
423
  minimumNumberOfCharacters: {
404
424
  type: Number,
405
- default: () => p.minimumNumberOfCharacters
425
+ default: () => m.minimumNumberOfCharacters
406
426
  },
407
427
  shouldRound: {
408
428
  type: Boolean,
409
- default: () => p.shouldRound
429
+ default: () => m.shouldRound
410
430
  },
411
431
  focusOnRight: {
412
432
  type: Boolean,
413
- default: () => p.focusOnRight
433
+ default: () => m.focusOnRight
414
434
  }
415
435
  },
416
436
  emits: ["update:model-value"],
417
437
  setup(n, { emit: r }) {
418
- let p = n, { modelValue: m, modelModifiers: h, masked: _, precision: v, shouldRound: y, focusOnRight: b } = c(p);
419
- M(p, "component setup()", p);
420
- let { value: x } = m;
421
- (p.disableNegative || x !== "-") && h.value && h.value.number && (x = y.value ? Number(m.value).toFixed(g(v.value)) : Number(m.value).toFixed(g(v.value) + 1).slice(0, -1));
422
- let S = o(R(x, p, "component setup"));
423
- M(p, "component setup() - data.formattedValue", S.value);
424
- function w(e) {
425
- M(p, "component watch() -> value", e);
426
- let t = R(e, C({ ...p }), "component watch");
427
- t !== S.value && (M(p, "component watch() changed -> formatted", t), S.value = t);
438
+ let m = n, { modelValue: h, modelModifiers: g, masked: v, precision: y, shouldRound: b, focusOnRight: x } = l(m);
439
+ N(m, "component setup()", m);
440
+ let { value: S } = h;
441
+ (m.disableNegative || S !== "-") && g.value && g.value.number && (S = b.value ? Number(h.value).toFixed(_(y.value)) : Number(h.value).toFixed(Math.min(_(y.value) + 1, 100)).slice(0, -1));
442
+ let C = s(z(S, m, "component setup"));
443
+ N(m, "component setup() - data.formattedValue", C.value);
444
+ function T(e) {
445
+ N(m, "component watch() -> value", e);
446
+ let t = z(e, w({ ...m }), "component watch");
447
+ t !== C.value && (N(m, "component watch() changed -> formatted", t), C.value = t);
428
448
  }
429
- d(m, w);
430
- let T = null, E = r;
431
- function D() {
432
- let e = C({ ...p }), t = m.value;
449
+ f(h, T);
450
+ let E = null, D = r;
451
+ function O() {
452
+ let e = w({ ...m }), t = h.value;
433
453
  if (t === "-") return;
434
- let n = R(t, e, "component opts watch");
435
- n !== S.value && (S.value = n);
436
- let r = z(n, e, "component opts watch reunformat"), i = Number(t), a = Number(r);
437
- !Number.isNaN(i) && !Number.isNaN(a) && i !== a && a !== T && (T = a, E("update:model-value", r));
454
+ let n = z(t, e, "component opts watch");
455
+ if (n !== C.value && (C.value = n), v.value && !(g.value && g.value.number)) {
456
+ n !== t && n !== E && (E = n, D("update:model-value", n));
457
+ return;
458
+ }
459
+ let r = B(n, e, "component opts watch reunformat"), i = Number(t), a = Number(r);
460
+ !Number.isNaN(i) && !Number.isNaN(a) && i !== a && a !== E && (E = a, D("update:model-value", r));
438
461
  }
439
- d(() => [
440
- p.precision,
441
- p.decimal,
442
- p.thousands,
443
- p.prefix,
444
- p.suffix,
445
- p.min,
446
- p.max,
447
- p.allowBlank,
448
- p.treatZeroAsBlank,
449
- p.minimumNumberOfCharacters,
450
- p.shouldRound
451
- ], D), d(() => p.modelModifiers, D, { deep: !0 });
452
- function O(e) {
462
+ f(() => [
463
+ m.precision,
464
+ m.decimal,
465
+ m.thousands,
466
+ m.prefix,
467
+ m.suffix,
468
+ m.min,
469
+ m.max,
470
+ m.allowBlank,
471
+ m.treatZeroAsBlank,
472
+ m.minimumNumberOfCharacters,
473
+ m.shouldRound
474
+ ], O), f(() => m.modelModifiers, O, { deep: !0 }), a(() => {
475
+ let e = w({ ...m }), t = B(C.value, e, "component mounted reconcile"), n = Number(h.value), r = Number(t);
476
+ Number.isNaN(n) && !Number.isNaN(r) && r !== E && (E = r, D("update:model-value", t));
477
+ });
478
+ function k(e) {
453
479
  let t = e.target.value;
454
- M(p, "component change() -> evt.target.value", t), _.value && !h.value.number || (t = z(t, C({ ...p }), "component change")), t !== T && (T = t, M(p, "component change() -> update:model-value", t), E("update:model-value", t));
480
+ N(m, "component change() -> evt.target.value", t), v.value && !g.value.number || (t = B(t, w({ ...m }), "component change")), t !== E && (E = t, N(m, "component change() -> update:model-value", t), D("update:model-value", t));
455
481
  }
456
- let k = u(), A = e(() => {
457
- let e = { ...k };
482
+ let A = d(), j = e(() => {
483
+ let e = { ...A };
458
484
  return delete e["onUpdate:modelValue"], e;
459
485
  });
460
486
  return (e, r) => {
461
- let o = s("money3");
462
- return f((a(), t("input", i({ id: `${n.id}` }, A.value, {
487
+ let a = c("money3");
488
+ return p((o(), t("input", i({ id: `${n.id}` }, j.value, {
463
489
  type: "tel",
464
490
  class: "v-money3",
465
- value: S.value,
466
- disabled: p.disabled,
467
- onChange: O
468
- }), null, 16, Y)), [[o, {
469
- precision: l(v),
470
- decimal: p.decimal,
471
- thousands: p.thousands,
472
- prefix: p.prefix,
473
- suffix: p.suffix,
474
- disableNegative: p.disableNegative,
475
- min: p.min,
476
- max: p.max,
477
- allowBlank: p.allowBlank,
478
- treatZeroAsBlank: p.treatZeroAsBlank,
479
- minimumNumberOfCharacters: p.minimumNumberOfCharacters,
480
- debug: p.debug,
481
- modelModifiers: l(h),
482
- shouldRound: l(y),
483
- focusOnRight: l(b)
491
+ value: C.value,
492
+ disabled: m.disabled,
493
+ onChange: k
494
+ }), null, 16, Q)), [[a, {
495
+ precision: u(y),
496
+ decimal: m.decimal,
497
+ thousands: m.thousands,
498
+ prefix: m.prefix,
499
+ suffix: m.suffix,
500
+ disableNegative: m.disableNegative,
501
+ min: m.min,
502
+ max: m.max,
503
+ allowBlank: m.allowBlank,
504
+ treatZeroAsBlank: m.treatZeroAsBlank,
505
+ minimumNumberOfCharacters: m.minimumNumberOfCharacters,
506
+ debug: m.debug,
507
+ modelModifiers: u(g),
508
+ shouldRound: u(b),
509
+ focusOnRight: u(x)
484
510
  }]]);
485
511
  };
486
512
  }
487
- }), Z = { install(e) {
488
- e.component("money3", X), e.directive("money3", J);
513
+ }), ee = { install(e) {
514
+ e.component("money3", $), e.directive("money3", Z);
489
515
  } };
490
516
  //#endregion
491
- export { L as BigNumber, X as Money, X as Money3, X as Money3Component, J as Money3Directive, J as VMoney, J as VMoney3, Z as default, R as format, z as unformat };
517
+ export { R as BigNumber, $ as Money, $ as Money3, $ as Money3Component, Z as Money3Directive, Z as VMoney, Z as VMoney3, ee as default, z as format, B as unformat };
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`vue`)):typeof define==`function`&&define.amd?define([`exports`,`vue`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`v-money3`]={},e.Vue))})(this,function(e,t){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var n={debug:!1,masked:!1,prefix:``,suffix:``,thousands:`,`,decimal:`.`,precision:2,disableNegative:!1,disabled:!1,min:null,max:null,allowBlank:!1,treatZeroAsBlank:!0,minimumNumberOfCharacters:0,modelModifiers:{number:!1},shouldRound:!0,focusOnRight:!1,lazy:!0},r=[`+`,`-`],i=[`decimal`,`thousands`,`prefix`,`suffix`];function a(e){return Math.max(0,Math.min(e,1e3))}function o(e,t){return e=e.padStart(t+1,`0`),t===0?e:`${e.slice(0,-t)}.${e.slice(-t)}`}function s(e){return e=e?e.toString():``,e.replace(/\D+/g,``)||`0`}function c(e,t){return e.replace(/(\d)(?=(?:\d{3})+\b)/gm,`$1${t}`)}function l(e,t,n){return t?e+n+t:e}function u(e,t){return r.includes(e)?(console.warn(`v-money3 "${t}" property don't accept "${e}" as a value.`),!1):/\d/g.test(e)?(console.warn(`v-money3 "${t}" property don't accept "${e}" (any number) as a value.`),!1):!0}function d(e){for(let t of i)if(!u(e[t],t))return!1;return!0}function f(e){for(let t of i){e[t]=e[t].replace(/\d+/g,``);for(let n of r)e[t]=e[t].replaceAll(n,``)}return e}function p(e){return e.length-(e.indexOf(`.`)+1)}function m(e){return e.replace(/^(-?)0+(?!\.)(.+)/,`$1$2`)}function h(e){return/^-?[\d]+$/g.test(e)}function g(e){return/^-?[\d]+(\.[\d]+)$/g.test(e)}function _(e,t,n){return t>e.length-1?e:e.substring(0,t)+n+e.substring(t+1)}function v(e,t){let n=t-p(e);if(n>=0)return e;let r=e.slice(0,n),i=e.slice(n);if(r.charAt(r.length-1)===`.`&&(r=r.slice(0,-1)),parseInt(i.charAt(0),10)>=5){for(let e=r.length-1;e>=0;--e){let t=r.charAt(e);if(t!==`.`&&t!==`-`){let n=parseInt(t,10)+1;if(n<10)return _(r,e,n);r=_(r,e,`0`)}}return`1${r}`}return r}function y(e,t){let n=()=>{e.setSelectionRange(t,t)};e===document.activeElement&&(n(),setTimeout(n,1))}function b(e){return new Event(e,{bubbles:!0,cancelable:!1})}function x({debug:e=!1},...t){e&&console.log(...t)}function S(e){"@babel/helpers - typeof";return S=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},S(e)}function C(e,t){if(S(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(S(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function w(e){var t=C(e,`string`);return S(t)==`symbol`?t:t+``}function T(e,t,n){return(t=w(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=class e{constructor(e){T(this,`number`,0n),T(this,`decimal`,0),this.setNumber(e)}getNumber(){return this.number}getDecimalPrecision(){return this.decimal}setNumber(e){this.decimal=0,typeof e==`bigint`?this.number=e:typeof e==`number`?this.setupString(e.toString()):this.setupString(e)}toFixed(e=0,t=!0){let n=this.toString(),r=e-this.getDecimalPrecision();return r>0?(n.includes(`.`)||(n+=`.`),n.padEnd(n.length+r,`0`)):r<0?t?v(n,e):n.slice(0,r):n}toString(){let e=this.number.toString();if(this.decimal){let t=!1;return e.charAt(0)===`-`&&(e=e.substring(1),t=!0),e=e.padStart(e.length+this.decimal,`0`),e=`${e.slice(0,-this.decimal)}.${e.slice(-this.decimal)}`,e=m(e),(t?`-`:``)+e}return e}lessThan(e){let[t,n]=this.adjustComparisonNumbers(e);return t<n}biggerThan(e){let[t,n]=this.adjustComparisonNumbers(e);return t>n}isEqual(e){let[t,n]=this.adjustComparisonNumbers(e);return t===n}setupString(e){if(e=m(e),h(e))this.number=BigInt(e);else if(g(e))this.decimal=p(e),this.number=BigInt(e.replace(`.`,``));else throw Error(`BigNumber has received and invalid format for the constructor: ${e}`)}adjustComparisonNumbers(t){let n;n=t.constructor.name===`BigNumber`?t:new e(t);let r=this.getDecimalPrecision()-n.getDecimalPrecision(),i=this.getNumber(),a=n.getNumber();return r>0?a=n.getNumber()*10n**BigInt(r):r<0&&(i=this.getNumber()*10n**BigInt(r*-1)),[i,a]}};function D(e,t=n,r=``){if(x(t,`utils format() - caller`,r),x(t,`utils format() - input1`,e),(e==null||e===``)&&t.allowBlank)return``;if(e==null)e=``;else if(typeof e==`number`)e=t.shouldRound?e.toFixed(a(t.precision)):e.toFixed(a(t.precision)+1).slice(0,-1);else if(t.modelModifiers&&t.modelModifiers.number&&h(e))e=Number(e).toFixed(a(t.precision));else if(!t.disableNegative&&e===`-`)return e;x(t,`utils format() - input2`,e);let i=t.disableNegative?``:e.indexOf(`-`)>=0?`-`:``,u=e.replace(t.prefix,``).replace(t.suffix,``);x(t,`utils format() - filtered`,u),!t.precision&&t.thousands!==`.`&&g(u)&&(u=v(u,0),x(t,`utils format() - !opt.precision && isValidFloat()`,u));let d=s(u);x(t,`utils format() - numbers`,d),x(t,`utils format() - numbersToCurrency`,i+o(d,t.precision));let f=new E(i+o(d,t.precision));x(t,`utils format() - bigNumber1`,f.toString()),t.max&&f.biggerThan(t.max)&&f.setNumber(t.max),t.min&&f.lessThan(t.min)&&f.setNumber(t.min);let p=f.toFixed(a(t.precision),t.shouldRound);if(x(t,`utils format() - bigNumber2`,f.toFixed(a(t.precision))),/^0(\.0+)?$/g.test(p)&&t.allowBlank&&t.treatZeroAsBlank)return``;let[m,_]=p.split(`.`),y=_===void 0?0:_.length;m=m.padStart(t.minimumNumberOfCharacters-y,`0`),m=c(m,t.thousands);let b=t.prefix+l(m,_,t.decimal)+t.suffix;return x(t,`utils format() - output`,b),b}function O(e,t=n,r=``){if(x(t,`utils unformat() - caller`,r),x(t,`utils unformat() - input`,e),!t.disableNegative&&e===`-`)return x(t,`utils unformat() - return netagive symbol`,e),e;let i=t.disableNegative?``:e.indexOf(`-`)>=0?`-`:``,c=e.replace(t.prefix,``).replace(t.suffix,``);x(t,`utils unformat() - filtered`,c);let l=s(c);x(t,`utils unformat() - numbers`,l);let u=new E(i+o(l,t.precision));x(t,`utils unformat() - bigNumber1`,l.toString()),t.max&&u.biggerThan(t.max)&&u.setNumber(t.max),t.min&&u.lessThan(t.min)&&u.setNumber(t.min);let d=u.toFixed(a(t.precision),t.shouldRound);return t.modelModifiers&&t.modelModifiers.number&&(d=parseFloat(d)),x(t,`utils unformat() - output`,d),d}var k=[`precision`,`decimal`,`thousands`,`prefix`,`suffix`,`min`,`max`,`allowBlank`,`treatZeroAsBlank`,`minimumNumberOfCharacters`,`shouldRound`,`modelModifiers`],A=(e,t,n)=>{if(x(t,`directive setValue() - caller`,n),!d(t)){x(t,`directive setValue() - validateRestrictedOptions() return false. Stopping here...`,e.value);return}let r=e.value.length-(e.selectionEnd||0),i=D(e.value,t,n);i!==e.value&&(e.value=i,r=Math.max(r,t.suffix.length),r=e.value.length-r,r=Math.max(r,t.prefix.length),y(e,r),e.dispatchEvent(b(`change`)))},j=(e,t)=>{let n=e.currentTarget,r=e.code===`Backspace`||e.code===`Delete`,i=n.value.length-(n.selectionEnd||0)===0;if(x(t,`directive onkeydown() - el.value`,n.value),x(t,`directive onkeydown() - backspacePressed`,r),x(t,`directive onkeydown() - isAtEndPosition`,i),t.allowBlank&&t.treatZeroAsBlank&&r&&i&&O(n.value,t,`directive onkeydown allowBlank`)===0&&(x(t,`directive onkeydown() - set el.value = ""`,n.value),n.value=``,n.dispatchEvent(b(`change`))),x(t,`directive onkeydown() - e.key`,e.key),e.key===`+`){x(t,`directive onkeydown() - unformat el.value`,n.value);let e=O(n.value,t,`directive onkeydown +`);typeof e==`string`&&(e=parseFloat(e)),e<0&&(n.value=String(e*-1))}},M=(e,t)=>{let n=e.currentTarget;x(t,`directive oninput()`,n.value),/^[1-9]$/.test(n.value)&&(n.value=o(n.value,a(t.precision)),x(t,`directive oninput() - is 1-9`,n.value)),A(n,t,`directive oninput`)},N=(e,t)=>{let n=e.currentTarget;x(t,`directive onFocus()`,n.value),t.focusOnRight&&y(n,n.value.length-t.suffix.length)},P=e=>{if(e.tagName.toLocaleUpperCase()!==`INPUT`){let t=e.getElementsByTagName(`input`);if(t.length!==1)throw Error(`v-money3 requires 1 input, found ${t.length} elements.`);return t[0]}return e},F=(e,t)=>{e.onkeydown=e=>{j(e,t)},e.oninput=e=>{M(e,t)},e.onfocus=e=>{N(e,t)}};function I(e,t){return e?k.some(n=>JSON.stringify(e[n])!==JSON.stringify(t[n])):!1}var L={mounted(e,t){if(!t.value)return;let r=f({...n,...t.value});x(r,`directive mounted() - opt`,r),e=P(e),F(e,r),x(r,`directive mounted() - el.value`,e.value),A(e,r,`directive mounted`)},updated(e,t){if(!t.value)return;let r=f({...n,...t.value});if(x(r,`directive updated() - opt`,r),x(r,`directive updated() - el.value`,e.value),e=P(e),D(e.value,r,`directive updated check`)!==e.value){if(I(t.oldValue?f({...n,...t.oldValue}):null,r)&&e.value!==``){console.warn(`v-money3: runtime change of format options on the bare directive is unsupported and was skipped to avoid corrupting the value. Re-mount the directive or use the Money3 component instead.`);return}A(e,r,`directive updated`)}},beforeUnmount(e){e.onkeydown=null,e.oninput=null,e.onfocus=null}},R=[`id`,`value`,`disabled`],z=(0,t.defineComponent)({inheritAttrs:!1,name:`Money3`,directives:{money3:L},__name:`component`,props:{debug:{required:!1,type:Boolean,default:!1},id:{required:!1,type:[Number,String],default:()=>{let e=(0,t.getCurrentInstance)();return e?e.uid:null}},modelValue:{required:!0,type:[Number,String]},modelModifiers:{required:!1,type:Object,default:()=>({number:!1})},masked:{type:Boolean,default:!1},precision:{type:Number,default:()=>n.precision},decimal:{type:String,default:()=>n.decimal,validator(e){return u(e,`decimal`)}},thousands:{type:String,default:()=>n.thousands,validator(e){return u(e,`thousands`)}},prefix:{type:String,default:()=>n.prefix,validator(e){return u(e,`prefix`)}},suffix:{type:String,default:()=>n.suffix,validator(e){return u(e,`suffix`)}},disableNegative:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},max:{type:[Number,String],default:()=>n.max},min:{type:[Number,String],default:()=>n.min},allowBlank:{type:Boolean,default:()=>n.allowBlank},treatZeroAsBlank:{type:Boolean,default:()=>n.treatZeroAsBlank},minimumNumberOfCharacters:{type:Number,default:()=>n.minimumNumberOfCharacters},shouldRound:{type:Boolean,default:()=>n.shouldRound},focusOnRight:{type:Boolean,default:()=>n.focusOnRight}},emits:[`update:model-value`],setup(e,{emit:n}){let r=e,{modelValue:i,modelModifiers:o,masked:s,precision:c,shouldRound:l,focusOnRight:u}=(0,t.toRefs)(r);x(r,`component setup()`,r);let{value:d}=i;(r.disableNegative||d!==`-`)&&o.value&&o.value.number&&(d=l.value?Number(i.value).toFixed(a(c.value)):Number(i.value).toFixed(a(c.value)+1).slice(0,-1));let p=(0,t.ref)(D(d,r,`component setup`));x(r,`component setup() - data.formattedValue`,p.value);function m(e){x(r,`component watch() -> value`,e);let t=D(e,f({...r}),`component watch`);t!==p.value&&(x(r,`component watch() changed -> formatted`,t),p.value=t)}(0,t.watch)(i,m);let h=null,g=n;function _(){let e=f({...r}),t=i.value;if(t===`-`)return;let n=D(t,e,`component opts watch`);n!==p.value&&(p.value=n);let a=O(n,e,`component opts watch reunformat`),o=Number(t),s=Number(a);!Number.isNaN(o)&&!Number.isNaN(s)&&o!==s&&s!==h&&(h=s,g(`update:model-value`,a))}(0,t.watch)(()=>[r.precision,r.decimal,r.thousands,r.prefix,r.suffix,r.min,r.max,r.allowBlank,r.treatZeroAsBlank,r.minimumNumberOfCharacters,r.shouldRound],_),(0,t.watch)(()=>r.modelModifiers,_,{deep:!0});function v(e){let t=e.target.value;x(r,`component change() -> evt.target.value`,t),s.value&&!o.value.number||(t=O(t,f({...r}),`component change`)),t!==h&&(h=t,x(r,`component change() -> update:model-value`,t),g(`update:model-value`,t))}let y=(0,t.useAttrs)(),b=(0,t.computed)(()=>{let e={...y};return delete e[`onUpdate:modelValue`],e});return(n,i)=>{let a=(0,t.resolveDirective)(`money3`);return(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`input`,(0,t.mergeProps)({id:`${e.id}`},b.value,{type:`tel`,class:`v-money3`,value:p.value,disabled:r.disabled,onChange:v}),null,16,R)),[[a,{precision:(0,t.unref)(c),decimal:r.decimal,thousands:r.thousands,prefix:r.prefix,suffix:r.suffix,disableNegative:r.disableNegative,min:r.min,max:r.max,allowBlank:r.allowBlank,treatZeroAsBlank:r.treatZeroAsBlank,minimumNumberOfCharacters:r.minimumNumberOfCharacters,debug:r.debug,modelModifiers:(0,t.unref)(o),shouldRound:(0,t.unref)(l),focusOnRight:(0,t.unref)(u)}]])}}});e.BigNumber=E,e.Money=z,e.Money3=z,e.Money3Component=z,e.Money3Directive=L,e.VMoney=L,e.VMoney3=L,e.default={install(e){e.component(`money3`,z),e.directive(`money3`,L)}},e.format=D,e.unformat=O});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`vue`)):typeof define==`function`&&define.amd?define([`exports`,`vue`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`v-money3`]={},e.Vue))})(this,function(e,t){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var n={debug:!1,masked:!1,prefix:``,suffix:``,thousands:`,`,decimal:`.`,precision:2,disableNegative:!1,disabled:!1,min:null,max:null,allowBlank:!1,treatZeroAsBlank:!0,minimumNumberOfCharacters:0,modelModifiers:{number:!1},shouldRound:!0,focusOnRight:!1,lazy:!0},r=[`+`,`-`],i=[`decimal`,`thousands`,`prefix`,`suffix`];function a(e){return Math.max(0,Math.min(e,100))}function o(e,t){return e=e.padStart(t+1,`0`),t===0?e:`${e.slice(0,-t)}.${e.slice(-t)}`}function s(e){return e=e?e.toString():``,e.replace(/\D+/g,``)||`0`}function c(e,t){return e.replace(/(\d)(?=(?:\d{3})+\b)/gm,`$1${t}`)}function l(e,t,n){return t?e+n+t:e}function u(e,t){return r.includes(e)?(console.warn(`v-money3 "${t}" property don't accept "${e}" as a value.`),!1):/\d/g.test(e)?(console.warn(`v-money3 "${t}" property don't accept "${e}" (any number) as a value.`),!1):!0}function d(e){for(let t of i)if(!u(e[t],t))return!1;return!0}function f(e){for(let t of i){if(typeof e[t]!=`string`){e[t]=``;continue}e[t]=e[t].replace(/\d+/g,``);for(let n of r)e[t]=e[t].replaceAll(n,``)}return e}function p(e){return e.length-(e.indexOf(`.`)+1)}function m(e){return e.replace(/^(-?)0+(?!\.)(.+)/,`$1$2`)}function h(e){return/^-?[\d]+$/g.test(e)}function g(e){return/^-?[\d]+(\.[\d]+)$/g.test(e)}function _(e,t,n){return t>e.length-1?e:e.substring(0,t)+n+e.substring(t+1)}function v(e,t){let n=t-p(e);if(n>=0)return e;let r=e.slice(0,n),i=e.slice(n);if(r.charAt(r.length-1)===`.`&&(r=r.slice(0,-1)),parseInt(i.charAt(0),10)>=5){for(let e=r.length-1;e>=0;--e){let t=r.charAt(e);if(t!==`.`&&t!==`-`){let n=parseInt(t,10)+1;if(n<10)return _(r,e,n);r=_(r,e,`0`)}}return`1${r}`}return r}function y(e,t){let n=()=>{e===document.activeElement&&e.setSelectionRange(t,t)};e===document.activeElement&&(n(),setTimeout(n,1))}function b(e){return new Event(e,{bubbles:!0,cancelable:!1})}function x({debug:e=!1},...t){e&&console.log(...t)}function S(e){"@babel/helpers - typeof";return S=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},S(e)}function C(e,t){if(S(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(S(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function w(e){var t=C(e,`string`);return S(t)==`symbol`?t:t+``}function T(e,t,n){return(t=w(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=class e{constructor(e){T(this,`number`,0n),T(this,`decimal`,0),this.setNumber(e)}getNumber(){return this.number}getDecimalPrecision(){return this.decimal}setNumber(e){this.decimal=0,typeof e==`bigint`?this.number=e:typeof e==`number`?this.setupString(e.toString()):this.setupString(e)}toFixed(e=0,t=!0){let n=this.toString(),r=e-this.getDecimalPrecision();if(r>0)return n.includes(`.`)||(n+=`.`),n.padEnd(n.length+r,`0`);if(r<0){if(t)return v(n,e);let i=n.slice(0,r);return i.endsWith(`.`)?i.slice(0,-1):i}return n}toString(){let e=this.number.toString();if(this.decimal){let t=!1;return e.charAt(0)===`-`&&(e=e.substring(1),t=!0),e=e.padStart(e.length+this.decimal,`0`),e=`${e.slice(0,-this.decimal)}.${e.slice(-this.decimal)}`,e=m(e),(t?`-`:``)+e}return e}lessThan(e){let[t,n]=this.adjustComparisonNumbers(e);return t<n}biggerThan(e){let[t,n]=this.adjustComparisonNumbers(e);return t>n}isEqual(e){let[t,n]=this.adjustComparisonNumbers(e);return t===n}setupString(e){if(e=m(e),h(e))this.number=BigInt(e);else if(g(e))this.decimal=p(e),this.number=BigInt(e.replace(`.`,``));else throw Error(`BigNumber has received an invalid format for the constructor: ${e}`)}adjustComparisonNumbers(t){let n;n=t instanceof e?t:new e(t);let r=this.getDecimalPrecision()-n.getDecimalPrecision(),i=this.getNumber(),a=n.getNumber();return r>0?a=n.getNumber()*10n**BigInt(r):r<0&&(i=this.getNumber()*10n**BigInt(r*-1)),[i,a]}};function D(e,t=n,r=``){x(t,`utils format() - caller`,r),x(t,`utils format() - input1`,e);let i=a(t.precision);if((e==null||e===``)&&t.allowBlank)return``;if(e==null)e=``;else if(typeof e==`number`)e=t.shouldRound?e.toFixed(i):e.toFixed(Math.min(i+1,100)).slice(0,-1);else if(t.modelModifiers&&t.modelModifiers.number&&h(e))e=Number(e).toFixed(i);else if(!t.disableNegative&&e===`-`)return e;x(t,`utils format() - input2`,e);let u=t.disableNegative?``:e.indexOf(`-`)>=0?`-`:``,d=e.replace(t.prefix,``).replace(t.suffix,``);x(t,`utils format() - filtered`,d),!i&&t.thousands!==`.`&&g(d)&&(d=v(d,0),x(t,`utils format() - !precision && isValidFloat()`,d));let f=s(d);x(t,`utils format() - numbers`,f),x(t,`utils format() - numbersToCurrency`,u+o(f,i));let p=new E(u+o(f,i));x(t,`utils format() - bigNumber1`,p.toString()),t.max!==null&&t.max!==void 0&&t.max!==``&&p.biggerThan(t.max)&&p.setNumber(t.max),t.min!==null&&t.min!==void 0&&t.min!==``&&p.lessThan(t.min)&&p.setNumber(t.min),t.disableNegative&&p.lessThan(0)&&p.setNumber(0);let m=p.toFixed(i,t.shouldRound);if(x(t,`utils format() - bigNumber2`,p.toFixed(i)),/^0(\.0+)?$/g.test(m)&&t.allowBlank&&t.treatZeroAsBlank)return``;let[_,y]=m.split(`.`),b=y===void 0?0:y.length,S=_.charAt(0)===`-`,C=(S?_.slice(1):_).padStart(t.minimumNumberOfCharacters-b,`0`);_=(S?`-`:``)+c(C,t.thousands);let w=t.prefix+l(_,y,t.decimal)+t.suffix;return x(t,`utils format() - output`,w),w}function O(e,t=n,r=``){if(x(t,`utils unformat() - caller`,r),x(t,`utils unformat() - input`,e),!t.disableNegative&&e===`-`)return x(t,`utils unformat() - return netagive symbol`,e),e;let i=t.disableNegative?``:e.indexOf(`-`)>=0?`-`:``,c=e.replace(t.prefix,``).replace(t.suffix,``);x(t,`utils unformat() - filtered`,c);let l=s(c);x(t,`utils unformat() - numbers`,l);let u=new E(i+o(l,t.precision));x(t,`utils unformat() - bigNumber1`,l.toString()),t.max!==null&&t.max!==void 0&&t.max!==``&&u.biggerThan(t.max)&&u.setNumber(t.max),t.min!==null&&t.min!==void 0&&t.min!==``&&u.lessThan(t.min)&&u.setNumber(t.min),t.disableNegative&&u.lessThan(0)&&u.setNumber(0);let d=u.toFixed(a(t.precision),t.shouldRound);return t.modelModifiers&&t.modelModifiers.number&&(d=parseFloat(d)),x(t,`utils unformat() - output`,d),d}var k=[`precision`,`decimal`,`thousands`,`prefix`,`suffix`,`min`,`max`,`allowBlank`,`treatZeroAsBlank`,`minimumNumberOfCharacters`,`shouldRound`,`modelModifiers`],A=(e,t,n)=>{if(x(t,`directive setValue() - caller`,n),!d(t)){x(t,`directive setValue() - validateRestrictedOptions() return false. Stopping here...`,e.value);return}let r=e.value.length-(e.selectionEnd||0),i=D(e.value,t,n);i!==e.value&&(e.value=i,r=Math.max(r,t.suffix.length),r=e.value.length-r,r=Math.max(r,t.prefix.length),y(e,r),e.dispatchEvent(b(`change`)))},j=(e,t)=>{let n=e.currentTarget,r=e.code===`Backspace`||e.code===`Delete`,i=n.value.length-(n.selectionEnd||0)===0;x(t,`directive onkeydown() - el.value`,n.value),x(t,`directive onkeydown() - backspacePressed`,r),x(t,`directive onkeydown() - isAtEndPosition`,i),t.allowBlank&&t.treatZeroAsBlank&&r&&i&&parseFloat(String(O(n.value,t,`directive onkeydown allowBlank`)))===0&&(x(t,`directive onkeydown() - set el.value = ""`,n.value),n.value=``,n.dispatchEvent(b(`change`))),x(t,`directive onkeydown() - e.key`,e.key),e.key===`+`&&n.value.indexOf(`-`)>=0&&(x(t,`directive onkeydown() - flipping sign on el.value`,n.value),n.value=n.value.replace(`-`,``),A(n,t,`directive onkeydown +`))},M=(e,t)=>{let n=e.currentTarget;x(t,`directive oninput()`,n.value),/^[1-9]$/.test(n.value)&&(n.value=o(n.value,a(t.precision)),x(t,`directive oninput() - is 1-9`,n.value)),A(n,t,`directive oninput`)},N=(e,t)=>{let n=e.currentTarget;x(t,`directive onFocus()`,n.value),t.focusOnRight&&y(n,n.value.length-t.suffix.length)},P=e=>{if(e.tagName.toLocaleUpperCase()!==`INPUT`){let t=e.getElementsByTagName(`input`);if(t.length!==1)throw Error(`v-money3 requires 1 input, found ${t.length} elements.`);return t[0]}return e},F=(e,t)=>{e.onkeydown=e=>{j(e,t)},e.oninput=e=>{M(e,t)},e.onfocus=e=>{N(e,t)}};function I(e,t){return e?k.some(n=>JSON.stringify(e[n])!==JSON.stringify(t[n])):!1}var L=`__v_money3_input__`;function R(e){let t=e[L];if(t)return t;let n=P(e);return e[L]=n,n}var z={mounted(e,t){if(!t.value)return;let r=f({...n,...t.value});x(r,`directive mounted() - opt`,r);let i=R(e);F(i,r),x(r,`directive mounted() - el.value`,i.value),A(i,r,`directive mounted`)},updated(e,t){if(!t.value)return;let r=f({...n,...t.value});x(r,`directive updated() - opt`,r),x(r,`directive updated() - host.value`,e.value);let i=R(e);if(D(i.value,r,`directive updated check`)!==i.value){if(I(t.oldValue?f({...n,...t.oldValue}):null,r)&&i.value!==``){console.warn(`v-money3: runtime change of format options on the bare directive is unsupported and was skipped to avoid corrupting the value. Re-mount the directive or use the Money3 component instead.`);return}A(i,r,`directive updated`)}},beforeUnmount(e){let t=e[L]||e;t.onkeydown=null,t.oninput=null,t.onfocus=null,delete e[L]}},B=[`id`,`value`,`disabled`],V=(0,t.defineComponent)({inheritAttrs:!1,name:`Money3`,directives:{money3:z},__name:`component`,props:{debug:{required:!1,type:Boolean,default:!1},id:{required:!1,type:[Number,String],default:()=>{let e=(0,t.getCurrentInstance)();return e?e.uid:null}},modelValue:{required:!0,type:[Number,String]},modelModifiers:{required:!1,type:Object,default:()=>({number:!1})},masked:{type:Boolean,default:!1},precision:{type:Number,default:()=>n.precision},decimal:{type:String,default:()=>n.decimal,validator(e){return u(e,`decimal`)}},thousands:{type:String,default:()=>n.thousands,validator(e){return u(e,`thousands`)}},prefix:{type:String,default:()=>n.prefix,validator(e){return u(e,`prefix`)}},suffix:{type:String,default:()=>n.suffix,validator(e){return u(e,`suffix`)}},disableNegative:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},max:{type:[Number,String],default:()=>n.max},min:{type:[Number,String],default:()=>n.min},allowBlank:{type:Boolean,default:()=>n.allowBlank},treatZeroAsBlank:{type:Boolean,default:()=>n.treatZeroAsBlank},minimumNumberOfCharacters:{type:Number,default:()=>n.minimumNumberOfCharacters},shouldRound:{type:Boolean,default:()=>n.shouldRound},focusOnRight:{type:Boolean,default:()=>n.focusOnRight}},emits:[`update:model-value`],setup(e,{emit:n}){let r=e,{modelValue:i,modelModifiers:o,masked:s,precision:c,shouldRound:l,focusOnRight:u}=(0,t.toRefs)(r);x(r,`component setup()`,r);let{value:d}=i;(r.disableNegative||d!==`-`)&&o.value&&o.value.number&&(d=l.value?Number(i.value).toFixed(a(c.value)):Number(i.value).toFixed(Math.min(a(c.value)+1,100)).slice(0,-1));let p=(0,t.ref)(D(d,r,`component setup`));x(r,`component setup() - data.formattedValue`,p.value);function m(e){x(r,`component watch() -> value`,e);let t=D(e,f({...r}),`component watch`);t!==p.value&&(x(r,`component watch() changed -> formatted`,t),p.value=t)}(0,t.watch)(i,m);let h=null,g=n;function _(){let e=f({...r}),t=i.value;if(t===`-`)return;let n=D(t,e,`component opts watch`);if(n!==p.value&&(p.value=n),s.value&&!(o.value&&o.value.number)){n!==t&&n!==h&&(h=n,g(`update:model-value`,n));return}let a=O(n,e,`component opts watch reunformat`),c=Number(t),l=Number(a);!Number.isNaN(c)&&!Number.isNaN(l)&&c!==l&&l!==h&&(h=l,g(`update:model-value`,a))}(0,t.watch)(()=>[r.precision,r.decimal,r.thousands,r.prefix,r.suffix,r.min,r.max,r.allowBlank,r.treatZeroAsBlank,r.minimumNumberOfCharacters,r.shouldRound],_),(0,t.watch)(()=>r.modelModifiers,_,{deep:!0}),(0,t.onMounted)(()=>{let e=f({...r}),t=O(p.value,e,`component mounted reconcile`),n=Number(i.value),a=Number(t);Number.isNaN(n)&&!Number.isNaN(a)&&a!==h&&(h=a,g(`update:model-value`,t))});function v(e){let t=e.target.value;x(r,`component change() -> evt.target.value`,t),s.value&&!o.value.number||(t=O(t,f({...r}),`component change`)),t!==h&&(h=t,x(r,`component change() -> update:model-value`,t),g(`update:model-value`,t))}let y=(0,t.useAttrs)(),b=(0,t.computed)(()=>{let e={...y};return delete e[`onUpdate:modelValue`],e});return(n,i)=>{let a=(0,t.resolveDirective)(`money3`);return(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`input`,(0,t.mergeProps)({id:`${e.id}`},b.value,{type:`tel`,class:`v-money3`,value:p.value,disabled:r.disabled,onChange:v}),null,16,B)),[[a,{precision:(0,t.unref)(c),decimal:r.decimal,thousands:r.thousands,prefix:r.prefix,suffix:r.suffix,disableNegative:r.disableNegative,min:r.min,max:r.max,allowBlank:r.allowBlank,treatZeroAsBlank:r.treatZeroAsBlank,minimumNumberOfCharacters:r.minimumNumberOfCharacters,debug:r.debug,modelModifiers:(0,t.unref)(o),shouldRound:(0,t.unref)(l),focusOnRight:(0,t.unref)(u)}]])}}});e.BigNumber=E,e.Money=V,e.Money3=V,e.Money3Component=V,e.Money3Directive=z,e.VMoney=z,e.VMoney3=z,e.default={install(e){e.component(`money3`,V),e.directive(`money3`,z)}},e.format=D,e.unformat=O});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "v-money3",
3
- "version": "3.25.0",
3
+ "version": "3.25.1",
4
4
  "description": "Vue3 currency input/directive mask",
5
5
  "main": "./dist/v-money3.umd.js",
6
6
  "module": "./dist/v-money3.mjs",