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.
- package/dist/directive.d.ts +3 -3
- package/dist/v-money3.mjs +213 -187
- package/dist/v-money3.umd.js +1 -1
- package/package.json +1 -1
package/dist/directive.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DirectiveBinding } from 'vue';
|
|
2
2
|
declare const _default: {
|
|
3
|
-
mounted(
|
|
4
|
-
updated(
|
|
5
|
-
beforeUnmount(
|
|
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,
|
|
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
|
|
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
|
-
},
|
|
22
|
+
}, h = ["+", "-"], g = [
|
|
23
23
|
"decimal",
|
|
24
24
|
"thousands",
|
|
25
25
|
"prefix",
|
|
26
26
|
"suffix"
|
|
27
27
|
];
|
|
28
|
-
function
|
|
29
|
-
return Math.max(0, Math.min(e,
|
|
28
|
+
function _(e) {
|
|
29
|
+
return Math.max(0, Math.min(e, 100));
|
|
30
30
|
}
|
|
31
|
-
function
|
|
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
|
|
34
|
+
function y(e) {
|
|
35
35
|
return e = e ? e.toString() : "", e.replace(/\D+/g, "") || "0";
|
|
36
36
|
}
|
|
37
|
-
function
|
|
37
|
+
function b(e, t) {
|
|
38
38
|
return e.replace(/(\d)(?=(?:\d{3})+\b)/gm, `$1${t}`);
|
|
39
39
|
}
|
|
40
|
-
function
|
|
40
|
+
function x(e, t, n) {
|
|
41
41
|
return t ? e + n + t : e;
|
|
42
42
|
}
|
|
43
|
-
function
|
|
44
|
-
return
|
|
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
|
|
47
|
-
for (let t of
|
|
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
|
|
51
|
-
for (let t of
|
|
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
|
|
57
|
+
for (let n of h) e[t] = e[t].replaceAll(n, "");
|
|
54
58
|
}
|
|
55
59
|
return e;
|
|
56
60
|
}
|
|
57
|
-
function
|
|
61
|
+
function T(e) {
|
|
58
62
|
return e.length - (e.indexOf(".") + 1);
|
|
59
63
|
}
|
|
60
|
-
function
|
|
64
|
+
function E(e) {
|
|
61
65
|
return e.replace(/^(-?)0+(?!\.)(.+)/, "$1$2");
|
|
62
66
|
}
|
|
63
|
-
function
|
|
67
|
+
function D(e) {
|
|
64
68
|
return /^-?[\d]+$/g.test(e);
|
|
65
69
|
}
|
|
66
|
-
function
|
|
70
|
+
function O(e) {
|
|
67
71
|
return /^-?[\d]+(\.[\d]+)$/g.test(e);
|
|
68
72
|
}
|
|
69
|
-
function
|
|
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
|
|
73
|
-
let n = t -
|
|
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
|
|
82
|
-
r =
|
|
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
|
|
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
|
|
99
|
+
function M(e) {
|
|
96
100
|
return new Event(e, {
|
|
97
101
|
bubbles: !0,
|
|
98
102
|
cancelable: !1
|
|
99
103
|
});
|
|
100
104
|
}
|
|
101
|
-
function
|
|
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
|
|
110
|
+
function P(e) {
|
|
107
111
|
"@babel/helpers - typeof";
|
|
108
|
-
return
|
|
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
|
-
},
|
|
116
|
+
}, P(e);
|
|
113
117
|
}
|
|
114
118
|
//#endregion
|
|
115
119
|
//#region \0@oxc-project+runtime@0.130.0/helpers/toPrimitive.js
|
|
116
|
-
function
|
|
117
|
-
if (
|
|
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 (
|
|
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
|
|
129
|
-
var t =
|
|
130
|
-
return
|
|
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
|
|
135
|
-
return (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
|
|
148
|
+
var R = class e {
|
|
145
149
|
constructor(e) {
|
|
146
|
-
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
183
|
-
else if (
|
|
184
|
-
else throw Error(`BigNumber has received
|
|
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
|
|
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
|
|
196
|
-
|
|
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(
|
|
199
|
-
else if (t.modelModifiers && t.modelModifiers.number &&
|
|
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
|
-
|
|
202
|
-
let
|
|
203
|
-
|
|
204
|
-
let
|
|
205
|
-
|
|
206
|
-
let
|
|
207
|
-
|
|
208
|
-
let
|
|
209
|
-
if (
|
|
210
|
-
let [
|
|
211
|
-
|
|
212
|
-
let
|
|
213
|
-
return
|
|
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
|
|
218
|
-
if (
|
|
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
|
-
|
|
221
|
-
let a =
|
|
222
|
-
|
|
223
|
-
let o = new
|
|
224
|
-
|
|
225
|
-
let s = o.toFixed(
|
|
226
|
-
return t.modelModifiers && t.modelModifiers.number && (s = parseFloat(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
|
|
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
|
-
],
|
|
244
|
-
if (
|
|
245
|
-
|
|
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 =
|
|
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),
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
},
|
|
278
|
+
}, q = (e, t) => {
|
|
271
279
|
e.onkeydown = (e) => {
|
|
272
|
-
H(e, t);
|
|
273
|
-
}, e.oninput = (e) => {
|
|
274
280
|
U(e, t);
|
|
275
|
-
}, e.
|
|
281
|
+
}, e.oninput = (e) => {
|
|
276
282
|
W(e, t);
|
|
283
|
+
}, e.onfocus = (e) => {
|
|
284
|
+
G(e, t);
|
|
277
285
|
};
|
|
278
286
|
};
|
|
279
|
-
function
|
|
280
|
-
return e ?
|
|
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
|
|
297
|
+
var Z = {
|
|
283
298
|
mounted(e, t) {
|
|
284
299
|
if (!t.value) return;
|
|
285
|
-
let n =
|
|
286
|
-
...
|
|
300
|
+
let n = w({
|
|
301
|
+
...m,
|
|
287
302
|
...t.value
|
|
288
303
|
});
|
|
289
|
-
|
|
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 =
|
|
294
|
-
...
|
|
310
|
+
let n = w({
|
|
311
|
+
...m,
|
|
295
312
|
...t.value
|
|
296
313
|
});
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
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) &&
|
|
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
|
-
|
|
324
|
+
H(r, n, "directive updated");
|
|
306
325
|
}
|
|
307
326
|
},
|
|
308
327
|
beforeUnmount(e) {
|
|
309
|
-
|
|
328
|
+
let t = e[Y] || e;
|
|
329
|
+
t.onkeydown = null, t.oninput = null, t.onfocus = null, delete e[Y];
|
|
310
330
|
}
|
|
311
|
-
},
|
|
331
|
+
}, Q = [
|
|
312
332
|
"id",
|
|
313
333
|
"value",
|
|
314
334
|
"disabled"
|
|
315
|
-
],
|
|
335
|
+
], $ = /* @__PURE__ */ n({
|
|
316
336
|
inheritAttrs: !1,
|
|
317
337
|
name: "Money3",
|
|
318
|
-
directives: { money3:
|
|
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: () =>
|
|
369
|
+
default: () => m.precision
|
|
350
370
|
},
|
|
351
371
|
decimal: {
|
|
352
372
|
type: String,
|
|
353
|
-
default: () =>
|
|
373
|
+
default: () => m.decimal,
|
|
354
374
|
validator(e) {
|
|
355
|
-
return
|
|
375
|
+
return S(e, "decimal");
|
|
356
376
|
}
|
|
357
377
|
},
|
|
358
378
|
thousands: {
|
|
359
379
|
type: String,
|
|
360
|
-
default: () =>
|
|
380
|
+
default: () => m.thousands,
|
|
361
381
|
validator(e) {
|
|
362
|
-
return
|
|
382
|
+
return S(e, "thousands");
|
|
363
383
|
}
|
|
364
384
|
},
|
|
365
385
|
prefix: {
|
|
366
386
|
type: String,
|
|
367
|
-
default: () =>
|
|
387
|
+
default: () => m.prefix,
|
|
368
388
|
validator(e) {
|
|
369
|
-
return
|
|
389
|
+
return S(e, "prefix");
|
|
370
390
|
}
|
|
371
391
|
},
|
|
372
392
|
suffix: {
|
|
373
393
|
type: String,
|
|
374
|
-
default: () =>
|
|
394
|
+
default: () => m.suffix,
|
|
375
395
|
validator(e) {
|
|
376
|
-
return
|
|
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: () =>
|
|
409
|
+
default: () => m.max
|
|
390
410
|
},
|
|
391
411
|
min: {
|
|
392
412
|
type: [Number, String],
|
|
393
|
-
default: () =>
|
|
413
|
+
default: () => m.min
|
|
394
414
|
},
|
|
395
415
|
allowBlank: {
|
|
396
416
|
type: Boolean,
|
|
397
|
-
default: () =>
|
|
417
|
+
default: () => m.allowBlank
|
|
398
418
|
},
|
|
399
419
|
treatZeroAsBlank: {
|
|
400
420
|
type: Boolean,
|
|
401
|
-
default: () =>
|
|
421
|
+
default: () => m.treatZeroAsBlank
|
|
402
422
|
},
|
|
403
423
|
minimumNumberOfCharacters: {
|
|
404
424
|
type: Number,
|
|
405
|
-
default: () =>
|
|
425
|
+
default: () => m.minimumNumberOfCharacters
|
|
406
426
|
},
|
|
407
427
|
shouldRound: {
|
|
408
428
|
type: Boolean,
|
|
409
|
-
default: () =>
|
|
429
|
+
default: () => m.shouldRound
|
|
410
430
|
},
|
|
411
431
|
focusOnRight: {
|
|
412
432
|
type: Boolean,
|
|
413
|
-
default: () =>
|
|
433
|
+
default: () => m.focusOnRight
|
|
414
434
|
}
|
|
415
435
|
},
|
|
416
436
|
emits: ["update:model-value"],
|
|
417
437
|
setup(n, { emit: r }) {
|
|
418
|
-
let
|
|
419
|
-
|
|
420
|
-
let { value:
|
|
421
|
-
(
|
|
422
|
-
let
|
|
423
|
-
|
|
424
|
-
function
|
|
425
|
-
|
|
426
|
-
let t =
|
|
427
|
-
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
|
-
|
|
430
|
-
let
|
|
431
|
-
function
|
|
432
|
-
let e =
|
|
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 =
|
|
435
|
-
n !==
|
|
436
|
-
|
|
437
|
-
|
|
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
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
],
|
|
452
|
-
|
|
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
|
-
|
|
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
|
|
457
|
-
let e = { ...
|
|
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
|
|
462
|
-
return
|
|
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:
|
|
466
|
-
disabled:
|
|
467
|
-
onChange:
|
|
468
|
-
}), null, 16,
|
|
469
|
-
precision:
|
|
470
|
-
decimal:
|
|
471
|
-
thousands:
|
|
472
|
-
prefix:
|
|
473
|
-
suffix:
|
|
474
|
-
disableNegative:
|
|
475
|
-
min:
|
|
476
|
-
max:
|
|
477
|
-
allowBlank:
|
|
478
|
-
treatZeroAsBlank:
|
|
479
|
-
minimumNumberOfCharacters:
|
|
480
|
-
debug:
|
|
481
|
-
modelModifiers:
|
|
482
|
-
shouldRound:
|
|
483
|
-
focusOnRight:
|
|
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
|
-
}),
|
|
488
|
-
e.component("money3",
|
|
513
|
+
}), ee = { install(e) {
|
|
514
|
+
e.component("money3", $), e.directive("money3", Z);
|
|
489
515
|
} };
|
|
490
516
|
//#endregion
|
|
491
|
-
export {
|
|
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 };
|
package/dist/v-money3.umd.js
CHANGED
|
@@ -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});
|