@leaflink/stash 48.16.1 → 48.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Accordion.js +1 -1
- package/dist/Accordion.js.map +1 -1
- package/dist/Accordion.vue.d.ts +8 -9
- package/dist/ActionsDropdown.js.map +1 -1
- package/dist/ActionsDropdown.vue.d.ts +7 -8
- package/dist/AddressSelect.js +42 -38
- package/dist/AddressSelect.js.map +1 -1
- package/dist/AddressSelect.vue.d.ts +10 -11
- package/dist/Alert.js.map +1 -1
- package/dist/Alert.vue.d.ts +6 -7
- package/dist/AppNavigationItem.js +2 -2
- package/dist/AppNavigationItem.js.map +1 -1
- package/dist/AppNavigationItem.vue.d.ts +7 -8
- package/dist/AppSidebar.js +42 -42
- package/dist/AppSidebar.js.map +1 -1
- package/dist/AppSidebar.vue.d.ts +8 -9
- package/dist/AppTopbar.js +16 -16
- package/dist/AppTopbar.js.map +1 -1
- package/dist/AppTopbar.vue.d.ts +8 -9
- package/dist/Avatar.js.map +1 -1
- package/dist/Avatar.vue.d.ts +7 -8
- package/dist/Backdrop.vue.d.ts +3 -5
- package/dist/Badge.js +1 -1
- package/dist/Badge.js.map +1 -1
- package/dist/Badge.vue.d.ts +7 -8
- package/dist/Box.vue.d.ts +6 -7
- package/dist/Box.vue_vue_type_script_setup_true_lang-69e5176b.js.map +1 -1
- package/dist/Button.js.map +1 -1
- package/dist/Button.vue.d.ts +7 -8
- package/dist/ButtonGroup.js +29 -29
- package/dist/ButtonGroup.js.map +1 -1
- package/dist/ButtonGroup.vue.d.ts +8 -9
- package/dist/Card.js.map +1 -1
- package/dist/Card.vue.d.ts +6 -7
- package/dist/CardContent.vue.d.ts +3 -5
- package/dist/CardFooter.vue.d.ts +3 -5
- package/dist/CardHeader.js.map +1 -1
- package/dist/CardHeader.vue.d.ts +3 -4
- package/dist/CardMedia.js +6 -6
- package/dist/CardMedia.js.map +1 -1
- package/dist/CardMedia.vue.d.ts +3 -4
- package/dist/Carousel.js +249 -249
- package/dist/Carousel.js.map +1 -1
- package/dist/Carousel.vue.d.ts +9 -9
- package/dist/Checkbox.js +27 -27
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox.vue.d.ts +11 -12
- package/dist/ChevronToggle.js +1 -1
- package/dist/ChevronToggle.vue.d.ts +8 -9
- package/dist/{ChevronToggle.vue_vue_type_script_setup_true_lang-1591294c.js → ChevronToggle.vue_vue_type_script_setup_true_lang-fcdf0c19.js} +11 -11
- package/dist/{ChevronToggle.vue_vue_type_script_setup_true_lang-1591294c.js.map → ChevronToggle.vue_vue_type_script_setup_true_lang-fcdf0c19.js.map} +1 -1
- package/dist/Chip.js +30 -30
- package/dist/Chip.js.map +1 -1
- package/dist/Chip.vue.d.ts +9 -10
- package/dist/ConfirmationCodeInput.js +128 -105
- package/dist/ConfirmationCodeInput.js.map +1 -1
- package/dist/ConfirmationCodeInput.vue.d.ts +36 -11
- package/dist/ContextSwitcher.js +18 -18
- package/dist/ContextSwitcher.js.map +1 -1
- package/dist/ContextSwitcher.vue.d.ts +9 -10
- package/dist/Copy.js.map +1 -1
- package/dist/Copy.vue.d.ts +6 -7
- package/dist/CurrencyInput.js +93 -93
- package/dist/CurrencyInput.js.map +1 -1
- package/dist/CurrencyInput.vue.d.ts +10 -11
- package/dist/CustomRender.vue.d.ts +3 -15
- package/dist/DataView.js +97 -97
- package/dist/DataView.js.map +1 -1
- package/dist/DataView.vue.d.ts +9 -10
- package/dist/DataViewFilters.js +153 -150
- package/dist/DataViewFilters.js.map +1 -1
- package/dist/DataViewFilters.vue.d.ts +9 -10
- package/dist/DataViewSortButton.js.map +1 -1
- package/dist/DataViewSortButton.vue.d.ts +6 -7
- package/dist/DataViewToolbar.js +27 -27
- package/dist/DataViewToolbar.js.map +1 -1
- package/dist/DataViewToolbar.vue.d.ts +8 -9
- package/dist/DatePicker.js +738 -738
- package/dist/DatePicker.js.map +1 -1
- package/dist/DatePicker.vue.d.ts +11 -12
- package/dist/DescriptionList.js.map +1 -1
- package/dist/DescriptionList.vue.d.ts +6 -7
- package/dist/DescriptionListDetail.vue.d.ts +3 -5
- package/dist/DescriptionListGroup.vue.d.ts +3 -5
- package/dist/DescriptionListTerm.vue.d.ts +3 -5
- package/dist/Dialog.js +44 -44
- package/dist/Dialog.js.map +1 -1
- package/dist/Dialog.vue.d.ts +10 -11
- package/dist/Divider.vue.d.ts +3 -5
- package/dist/Dropdown.js +38 -38
- package/dist/Dropdown.js.map +1 -1
- package/dist/Dropdown.vue.d.ts +9 -10
- package/dist/EmptyState.js +20 -20
- package/dist/EmptyState.js.map +1 -1
- package/dist/EmptyState.vue.d.ts +6 -7
- package/dist/Expand.js +1 -1
- package/dist/Expand.vue.d.ts +8 -9
- package/dist/{Expand.vue_vue_type_script_setup_true_lang-1751f4a6.js → Expand.vue_vue_type_script_setup_true_lang-0f236267.js} +19 -19
- package/dist/Expand.vue_vue_type_script_setup_true_lang-0f236267.js.map +1 -0
- package/dist/Field.vue.d.ts +6 -7
- package/dist/Field.vue_vue_type_script_setup_true_lang-e1e4ff03.js.map +1 -1
- package/dist/FileUpload.js +65 -65
- package/dist/FileUpload.js.map +1 -1
- package/dist/FileUpload.vue.d.ts +10 -11
- package/dist/FilterChip.js +27 -27
- package/dist/FilterChip.js.map +1 -1
- package/dist/FilterChip.vue.d.ts +8 -9
- package/dist/FilterDrawerItem.js +26 -26
- package/dist/FilterDrawerItem.js.map +1 -1
- package/dist/FilterDrawerItem.vue.d.ts +5 -6
- package/dist/FilterDropdown.js +49 -49
- package/dist/FilterDropdown.js.map +1 -1
- package/dist/FilterDropdown.vue.d.ts +8 -9
- package/dist/FilterSelect.js +23 -23
- package/dist/FilterSelect.js.map +1 -1
- package/dist/FilterSelect.vue.d.ts +8 -9
- package/dist/Filters.js +112 -104
- package/dist/Filters.js.map +1 -1
- package/dist/Filters.vue.d.ts +2204 -65
- package/dist/HttpError.js +42 -42
- package/dist/HttpError.js.map +1 -1
- package/dist/HttpError.vue.d.ts +6 -7
- package/dist/Icon.js.map +1 -1
- package/dist/Icon.vue.d.ts +7 -8
- package/dist/IconLabel.js.map +1 -1
- package/dist/IconLabel.vue.d.ts +8 -9
- package/dist/Illustration.vue.d.ts +6 -7
- package/dist/Illustration.vue_vue_type_script_setup_true_lang-e26c3841.js.map +1 -1
- package/dist/Image.js +47 -47
- package/dist/Image.js.map +1 -1
- package/dist/Image.vue.d.ts +6 -7
- package/dist/InlineEdit.js +34 -34
- package/dist/InlineEdit.js.map +1 -1
- package/dist/InlineEdit.vue.d.ts +9 -10
- package/dist/Input.js +35 -35
- package/dist/Input.js.map +1 -1
- package/dist/Input.vue.d.ts +13 -14
- package/dist/InputOptions.js +33 -33
- package/dist/InputOptions.js.map +1 -1
- package/dist/InputOptions.vue.d.ts +8 -9
- package/dist/IntegrationIcon.js.map +1 -1
- package/dist/IntegrationIcon.vue.d.ts +7 -8
- package/dist/Label.vue.d.ts +6 -7
- package/dist/Label.vue_vue_type_script_setup_true_lang-4b02087f.js.map +1 -1
- package/dist/LicenseChip.js.map +1 -1
- package/dist/LicenseChip.vue.d.ts +6 -7
- package/dist/ListItem.vue.d.ts +225 -95
- package/dist/ListItemCell.vue.d.ts +4 -16
- package/dist/ListView.js +1 -1
- package/dist/ListView.vue.d.ts +5072 -470
- package/dist/Loading.js +16 -16
- package/dist/Loading.js.map +1 -1
- package/dist/Loading.vue.d.ts +3 -5
- package/dist/Logo.js +1 -1
- package/dist/Logo.vue.d.ts +9 -10
- package/dist/Logo.vue_vue_type_script_setup_true_lang-2a2597cb.js +196 -0
- package/dist/Logo.vue_vue_type_script_setup_true_lang-2a2597cb.js.map +1 -0
- package/dist/Menu.vue.d.ts +3 -5
- package/dist/MenuItem.vue.d.ts +3 -5
- package/dist/Metric.js.map +1 -1
- package/dist/Metric.vue.d.ts +6 -7
- package/dist/Modal.js +29 -29
- package/dist/Modal.js.map +1 -1
- package/dist/Modal.vue.d.ts +8 -9
- package/dist/Modals.js +8 -7
- package/dist/Modals.js.map +1 -1
- package/dist/Modals.vue.d.ts +3 -5
- package/dist/Module.js.map +1 -1
- package/dist/Module.vue.d.ts +7 -8
- package/dist/ModuleContent.vue.d.ts +3 -5
- package/dist/ModuleFooter.vue.d.ts +3 -5
- package/dist/ModuleHeader.js.map +1 -1
- package/dist/ModuleHeader.vue.d.ts +6 -7
- package/dist/ObfuscateText.js +1 -1
- package/dist/ObfuscateText.js.map +1 -1
- package/dist/ObfuscateText.vue.d.ts +6 -7
- package/dist/PageContent.vue.d.ts +3 -5
- package/dist/PageHeader.js.map +1 -1
- package/dist/PageHeader.vue.d.ts +6 -7
- package/dist/PageNavigation.js +30 -27
- package/dist/PageNavigation.js.map +1 -1
- package/dist/PageNavigation.vue.d.ts +8 -9
- package/dist/Paginate.js +32 -32
- package/dist/Paginate.js.map +1 -1
- package/dist/Paginate.vue.d.ts +8 -9
- package/dist/PlaidLink.js +29 -29
- package/dist/PlaidLink.js.map +1 -1
- package/dist/PlaidLink.vue.d.ts +11 -12
- package/dist/QuickAction.js.map +1 -1
- package/dist/QuickAction.vue.d.ts +4 -5
- package/dist/Radio.vue.d.ts +20 -1
- package/dist/RadioGroup.js +123 -123
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioGroup.vue.d.ts +10 -11
- package/dist/RadioNew.js +102 -102
- package/dist/RadioNew.js.map +1 -1
- package/dist/RadioNew.vue.d.ts +10 -11
- package/dist/RangeInput.vue.d.ts +3 -5
- package/dist/SearchBar.js +36 -36
- package/dist/SearchBar.js.map +1 -1
- package/dist/SearchBar.vue.d.ts +9 -10
- package/dist/Select.js +792 -774
- package/dist/Select.js.map +1 -1
- package/dist/Select.vue.d.ts +14 -15
- package/dist/SelectStatus.js +27 -27
- package/dist/SelectStatus.js.map +1 -1
- package/dist/SelectStatus.vue.d.ts +12 -13
- package/dist/Skeleton.js.map +1 -1
- package/dist/Skeleton.vue.d.ts +7 -8
- package/dist/Step.js.map +1 -1
- package/dist/Step.vue.d.ts +7 -8
- package/dist/Stepper.js +19 -19
- package/dist/Stepper.js.map +1 -1
- package/dist/Stepper.vue.d.ts +9 -10
- package/dist/Switch.js +25 -25
- package/dist/Switch.js.map +1 -1
- package/dist/Switch.vue.d.ts +11 -12
- package/dist/Tab.js +2 -2
- package/dist/Tab.vue.d.ts +3 -4
- package/dist/{Tab.vue_vue_type_script_setup_true_lang-69d1b046.js → Tab.vue_vue_type_script_setup_true_lang-9aa53203.js} +5 -3
- package/dist/Tab.vue_vue_type_script_setup_true_lang-9aa53203.js.map +1 -0
- package/dist/Table.js +3 -3
- package/dist/Table.js.map +1 -1
- package/dist/{Table.keys-cf93df19.js → Table.keys-83e4f09b.js} +11 -11
- package/dist/{Table.keys-cf93df19.js.map → Table.keys-83e4f09b.js.map} +1 -1
- package/dist/Table.vue.d.ts +6 -7
- package/dist/TableCell.js +1 -1
- package/dist/TableCell.js.map +1 -1
- package/dist/TableCell.vue.d.ts +6 -7
- package/dist/TableHeaderCell.js +12 -12
- package/dist/TableHeaderCell.js.map +1 -1
- package/dist/TableHeaderCell.vue.d.ts +6 -7
- package/dist/TableHeaderRow.js +21 -21
- package/dist/TableHeaderRow.js.map +1 -1
- package/dist/TableHeaderRow.vue.d.ts +8 -9
- package/dist/TableRow.js +42 -42
- package/dist/TableRow.js.map +1 -1
- package/dist/TableRow.vue.d.ts +8 -9
- package/dist/Tabs.js +2 -2
- package/dist/Tabs.vue.d.ts +8 -9
- package/dist/{Tabs.vue_used_vue_type_style_index_0_lang.module-2a131332.js → Tabs.vue_used_vue_type_style_index_0_lang.module-3aa36673.js} +37 -37
- package/dist/Tabs.vue_used_vue_type_style_index_0_lang.module-3aa36673.js.map +1 -0
- package/dist/TextEditor.js +565 -565
- package/dist/TextEditor.js.map +1 -1
- package/dist/TextEditor.vue.d.ts +12 -13
- package/dist/Textarea.js +28 -28
- package/dist/Textarea.js.map +1 -1
- package/dist/Textarea.vue.d.ts +10 -11
- package/dist/Timeline.js.map +1 -1
- package/dist/Timeline.vue.d.ts +6 -7
- package/dist/TimelineItem.js +21 -21
- package/dist/TimelineItem.js.map +1 -1
- package/dist/TimelineItem.vue.d.ts +13 -6
- package/dist/Toast.js +134 -134
- package/dist/Toast.js.map +1 -1
- package/dist/Toast.vue.d.ts +6 -7
- package/dist/Toasts.vue.d.ts +3 -5
- package/dist/components.css +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tailwind-base.js.map +1 -1
- package/dist/usePlaidLink.d.ts +1 -6
- package/dist/useScriptTag.d.ts +3 -8
- package/dist/useStepper.d.ts +7 -2
- package/package.json +1 -1
- package/tailwind-base.ts +13 -6
- package/dist/Expand.vue_vue_type_script_setup_true_lang-1751f4a6.js.map +0 -1
- package/dist/Logo.vue_vue_type_script_setup_true_lang-d7da48a0.js +0 -196
- package/dist/Logo.vue_vue_type_script_setup_true_lang-d7da48a0.js.map +0 -1
- package/dist/Tab.vue_vue_type_script_setup_true_lang-69d1b046.js.map +0 -1
- package/dist/Tabs.vue_used_vue_type_style_index_0_lang.module-2a131332.js.map +0 -1
package/dist/CurrencyInput.js
CHANGED
|
@@ -18,14 +18,14 @@ import "./Label.vue_vue_type_script_setup_true_lang-4b02087f.js";
|
|
|
18
18
|
* (c) 2018-2024 Matthias Stiller
|
|
19
19
|
* @license MIT
|
|
20
20
|
*/
|
|
21
|
-
var
|
|
21
|
+
var y;
|
|
22
22
|
(function(s) {
|
|
23
23
|
s.symbol = "symbol", s.narrowSymbol = "narrowSymbol", s.code = "code", s.name = "name", s.hidden = "hidden";
|
|
24
|
-
})(
|
|
25
|
-
var
|
|
24
|
+
})(y || (y = {}));
|
|
25
|
+
var v;
|
|
26
26
|
(function(s) {
|
|
27
27
|
s.precision = "precision", s.thousands = "thousands", s.millions = "millions", s.billions = "billions";
|
|
28
|
-
})(
|
|
28
|
+
})(v || (v = {}));
|
|
29
29
|
const D = (s) => s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), M = (s) => s.replace(/^0+(0$|[^0])/, "$1"), E = (s, i) => (s.match(new RegExp(D(i), "g")) || []).length, X = (s, i) => s.substring(0, s.indexOf(i)), P = [
|
|
30
30
|
",",
|
|
31
31
|
".",
|
|
@@ -34,19 +34,19 @@ const D = (s) => s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), M = (s) => s.replace(
|
|
|
34
34
|
], N = "(0|[1-9]\\d*)";
|
|
35
35
|
class U {
|
|
36
36
|
constructor(i) {
|
|
37
|
-
var t, e, n, g,
|
|
38
|
-
const { currency:
|
|
37
|
+
var t, e, n, g, a, c;
|
|
38
|
+
const { currency: h, currencyDisplay: p, locale: r, precision: o, accountingSign: d, useGrouping: l } = i;
|
|
39
39
|
this.locale = r, this.options = {
|
|
40
|
-
currency:
|
|
40
|
+
currency: h,
|
|
41
41
|
useGrouping: l,
|
|
42
42
|
style: "currency",
|
|
43
|
-
currencySign:
|
|
44
|
-
currencyDisplay: p !==
|
|
43
|
+
currencySign: d ? "accounting" : void 0,
|
|
44
|
+
currencyDisplay: p !== y.hidden ? p : void 0
|
|
45
45
|
};
|
|
46
|
-
const
|
|
47
|
-
this.currency = (t =
|
|
48
|
-
const b = (
|
|
49
|
-
this.prefix = b(
|
|
46
|
+
const u = new Intl.NumberFormat(r, this.options), f = u.formatToParts(123456);
|
|
47
|
+
this.currency = (t = f.find(({ type: m }) => m === "currency")) === null || t === void 0 ? void 0 : t.value, this.digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map((m) => m.toLocaleString(r)), this.decimalSymbol = (e = f.find(({ type: m }) => m === "decimal")) === null || e === void 0 ? void 0 : e.value, this.groupingSymbol = (n = f.find(({ type: m }) => m === "group")) === null || n === void 0 ? void 0 : n.value, this.minusSign = (g = u.formatToParts(-1).find(({ type: m }) => m === "minusSign")) === null || g === void 0 ? void 0 : g.value, this.decimalSymbol === void 0 ? this.minimumFractionDigits = this.maximumFractionDigits = 0 : typeof o == "number" ? this.minimumFractionDigits = this.maximumFractionDigits = o : (this.minimumFractionDigits = (a = o == null ? void 0 : o.min) !== null && a !== void 0 ? a : u.resolvedOptions().minimumFractionDigits, this.maximumFractionDigits = (c = o == null ? void 0 : o.max) !== null && c !== void 0 ? c : u.resolvedOptions().maximumFractionDigits);
|
|
48
|
+
const b = (m) => X(m, this.digits[1]), S = (m) => m.substring(m.lastIndexOf(this.decimalSymbol ? this.digits[0] : this.digits[1]) + 1);
|
|
49
|
+
this.prefix = b(u.format(1)), this.suffix = S(u.format(1)), this.negativePrefix = b(u.format(-1)), this.negativeSuffix = S(u.format(-1));
|
|
50
50
|
}
|
|
51
51
|
parse(i) {
|
|
52
52
|
if (i) {
|
|
@@ -116,26 +116,26 @@ class C {
|
|
|
116
116
|
}
|
|
117
117
|
class q extends C {
|
|
118
118
|
conformToMask(i, t = "") {
|
|
119
|
-
const e = this.currencyFormat.isNegative(i), n = (
|
|
120
|
-
if (n(
|
|
119
|
+
const e = this.currencyFormat.isNegative(i), n = (u) => u === "" && e && !(this.currencyFormat.minusSign === void 0 ? t === this.currencyFormat.negativePrefix + this.currencyFormat.negativeSuffix : t === this.currencyFormat.negativePrefix), g = (u) => {
|
|
120
|
+
if (n(u))
|
|
121
121
|
return "";
|
|
122
122
|
if (this.currencyFormat.maximumFractionDigits > 0) {
|
|
123
|
-
if (this.currencyFormat.isFractionIncomplete(
|
|
124
|
-
return
|
|
125
|
-
if (
|
|
126
|
-
return this.currencyFormat.toFraction(
|
|
123
|
+
if (this.currencyFormat.isFractionIncomplete(u))
|
|
124
|
+
return u;
|
|
125
|
+
if (u.startsWith(this.currencyFormat.decimalSymbol))
|
|
126
|
+
return this.currencyFormat.toFraction(u);
|
|
127
127
|
}
|
|
128
128
|
return null;
|
|
129
129
|
};
|
|
130
|
-
let
|
|
131
|
-
|
|
132
|
-
const
|
|
133
|
-
if (
|
|
134
|
-
return this.currencyFormat.insertCurrency(
|
|
135
|
-
const [
|
|
136
|
-
return
|
|
137
|
-
numberValue: +`${e ? "-" : ""}${r}.${
|
|
138
|
-
fractionDigits:
|
|
130
|
+
let a = i;
|
|
131
|
+
a = this.currencyFormat.stripCurrency(a, e), a = this.currencyFormat.stripSignLiterals(a);
|
|
132
|
+
const c = g(a);
|
|
133
|
+
if (c != null)
|
|
134
|
+
return this.currencyFormat.insertCurrency(c, e);
|
|
135
|
+
const [h, ...p] = a.split(this.currencyFormat.decimalSymbol), r = M(this.currencyFormat.onlyDigits(h)), o = this.currencyFormat.onlyDigits(p.join("")).substring(0, this.currencyFormat.maximumFractionDigits), d = p.length > 0 && o.length === 0, l = r === "" && e && (this.currencyFormat.minusSign === void 0 ? t === i.slice(0, -2) + this.currencyFormat.negativeSuffix : t === i.slice(0, -1));
|
|
136
|
+
return d || l || n(r) ? t : r.match(/\d+/) ? {
|
|
137
|
+
numberValue: +`${e ? "-" : ""}${r}.${o}`,
|
|
138
|
+
fractionDigits: o
|
|
139
139
|
} : "";
|
|
140
140
|
}
|
|
141
141
|
}
|
|
@@ -183,12 +183,12 @@ class H {
|
|
|
183
183
|
...i
|
|
184
184
|
}, this.options.autoDecimalDigits && (this.options.hideNegligibleDecimalDigitsOnFocus = !1), this.el.getAttribute("inputmode") || this.el.setAttribute("inputmode", this.options.autoDecimalDigits ? "numeric" : "decimal"), this.currencyFormat = new U(this.options), this.numberMask = this.options.autoDecimalDigits ? new Y(this.currencyFormat) : new q(this.currencyFormat);
|
|
185
185
|
const t = {
|
|
186
|
-
[
|
|
187
|
-
[
|
|
188
|
-
[
|
|
189
|
-
[
|
|
186
|
+
[v.precision]: this.currencyFormat.maximumFractionDigits,
|
|
187
|
+
[v.thousands]: 3,
|
|
188
|
+
[v.millions]: 6,
|
|
189
|
+
[v.billions]: 9
|
|
190
190
|
};
|
|
191
|
-
this.valueScaling = this.options.valueScaling ? t[this.options.valueScaling] : void 0, this.valueScalingFractionDigits = this.valueScaling !== void 0 && this.options.valueScaling !==
|
|
191
|
+
this.valueScaling = this.options.valueScaling ? t[this.options.valueScaling] : void 0, this.valueScalingFractionDigits = this.valueScaling !== void 0 && this.options.valueScaling !== v.precision ? this.valueScaling + this.currencyFormat.maximumFractionDigits : this.currencyFormat.maximumFractionDigits, this.minValue = this.getMinValue(), this.maxValue = this.getMaxValue();
|
|
192
192
|
}
|
|
193
193
|
getMinValue() {
|
|
194
194
|
var i, t;
|
|
@@ -215,16 +215,16 @@ class H {
|
|
|
215
215
|
const e = this.numberMask.conformToMask(i, this.formattedValue);
|
|
216
216
|
let n;
|
|
217
217
|
if (typeof e == "object") {
|
|
218
|
-
const { numberValue: g, fractionDigits:
|
|
219
|
-
let { maximumFractionDigits:
|
|
220
|
-
this.focus ?
|
|
218
|
+
const { numberValue: g, fractionDigits: a } = e;
|
|
219
|
+
let { maximumFractionDigits: c, minimumFractionDigits: h } = this.currencyFormat;
|
|
220
|
+
this.focus ? h = t ? a.replace(/0+$/, "").length : Math.min(c, a.length) : Number.isInteger(g) && !this.options.autoDecimalDigits && (this.options.precision === void 0 || h === 0) && (h = c = 0), n = this.toInteger(Math.abs(g)) > Number.MAX_SAFE_INTEGER ? this.formattedValue : this.currencyFormat.format(g, {
|
|
221
221
|
useGrouping: this.options.useGrouping !== !1 && !(this.focus && this.options.hideGroupingSeparatorOnFocus),
|
|
222
|
-
minimumFractionDigits:
|
|
223
|
-
maximumFractionDigits:
|
|
222
|
+
minimumFractionDigits: h,
|
|
223
|
+
maximumFractionDigits: c
|
|
224
224
|
});
|
|
225
225
|
} else
|
|
226
226
|
n = e;
|
|
227
|
-
this.maxValue <= 0 && !this.currencyFormat.isNegative(n) && this.currencyFormat.parse(n) !== 0 && (n = n.replace(this.currencyFormat.prefix, this.currencyFormat.negativePrefix)), this.minValue >= 0 && (n = n.replace(this.currencyFormat.negativePrefix, this.currencyFormat.prefix)), (this.options.currencyDisplay ===
|
|
227
|
+
this.maxValue <= 0 && !this.currencyFormat.isNegative(n) && this.currencyFormat.parse(n) !== 0 && (n = n.replace(this.currencyFormat.prefix, this.currencyFormat.negativePrefix)), this.minValue >= 0 && (n = n.replace(this.currencyFormat.negativePrefix, this.currencyFormat.prefix)), (this.options.currencyDisplay === y.hidden || this.focus && this.options.hideCurrencySymbolOnFocus) && (n = n.replace(this.currencyFormat.negativePrefix, this.currencyFormat.minusSign !== void 0 ? this.currencyFormat.minusSign : "(").replace(this.currencyFormat.negativeSuffix, this.currencyFormat.minusSign !== void 0 ? "" : ")").replace(this.currencyFormat.prefix, "").replace(this.currencyFormat.suffix, "")), this.el.value = n, this.numberValue = this.currencyFormat.parse(n);
|
|
228
228
|
} else
|
|
229
229
|
this.el.value = "", this.numberValue = null;
|
|
230
230
|
this.formattedValue = this.el.value, this.onInput(this.getValue());
|
|
@@ -234,22 +234,22 @@ class H {
|
|
|
234
234
|
const { value: t, selectionStart: e } = this.el, n = i;
|
|
235
235
|
if (e && n.data && P.includes(n.data) && (this.decimalSymbolInsertedAt = e - 1), this.format(t), this.focus && e != null) {
|
|
236
236
|
const g = () => {
|
|
237
|
-
const { prefix:
|
|
238
|
-
let
|
|
239
|
-
const
|
|
237
|
+
const { prefix: a, suffix: c, decimalSymbol: h, maximumFractionDigits: p, groupingSymbol: r } = this.currencyFormat;
|
|
238
|
+
let o = t.length - e;
|
|
239
|
+
const d = this.formattedValue.length;
|
|
240
240
|
if (this.currencyFormat.minusSign === void 0 && (t.startsWith("(") || t.startsWith("-")) && !t.endsWith(")"))
|
|
241
|
-
return
|
|
241
|
+
return d - this.currencyFormat.negativeSuffix.length > 1 ? this.formattedValue.substring(e).length : 1;
|
|
242
242
|
if (this.formattedValue.substring(e, 1) === r && E(this.formattedValue, r) === E(t, r) + 1)
|
|
243
|
-
return
|
|
244
|
-
if (
|
|
243
|
+
return d - o - 1;
|
|
244
|
+
if (d < o)
|
|
245
245
|
return e;
|
|
246
|
-
if (
|
|
247
|
-
const l = t.indexOf(
|
|
248
|
-
if (Math.abs(
|
|
249
|
-
return this.formattedValue.indexOf(
|
|
250
|
-
!this.options.autoDecimalDigits && e > l && this.currencyFormat.onlyDigits(t.substring(l)).length - 1 === p && (
|
|
246
|
+
if (h !== void 0 && t.indexOf(h) !== -1) {
|
|
247
|
+
const l = t.indexOf(h) + 1;
|
|
248
|
+
if (Math.abs(d - t.length) > 1 && e <= l)
|
|
249
|
+
return this.formattedValue.indexOf(h) + 1;
|
|
250
|
+
!this.options.autoDecimalDigits && e > l && this.currencyFormat.onlyDigits(t.substring(l)).length - 1 === p && (o -= 1);
|
|
251
251
|
}
|
|
252
|
-
return this.options.hideCurrencySymbolOnFocus || this.options.currencyDisplay ===
|
|
252
|
+
return this.options.hideCurrencySymbolOnFocus || this.options.currencyDisplay === y.hidden ? d - o : Math.max(d - Math.max(o, c.length), a.length);
|
|
253
253
|
};
|
|
254
254
|
this.setCaretPosition(g());
|
|
255
255
|
}
|
|
@@ -270,8 +270,8 @@ class H {
|
|
|
270
270
|
getCaretPositionOnFocus(i, t) {
|
|
271
271
|
if (this.numberValue == null)
|
|
272
272
|
return t;
|
|
273
|
-
const { prefix: e, negativePrefix: n, suffix: g, negativeSuffix:
|
|
274
|
-
if (this.options.hideCurrencySymbolOnFocus || this.options.currencyDisplay ===
|
|
273
|
+
const { prefix: e, negativePrefix: n, suffix: g, negativeSuffix: a, groupingSymbol: c, currency: h } = this.currencyFormat, p = this.numberValue < 0, r = p ? n : e, o = r.length;
|
|
274
|
+
if (this.options.hideCurrencySymbolOnFocus || this.options.currencyDisplay === y.hidden) {
|
|
275
275
|
if (p) {
|
|
276
276
|
if (t <= 1)
|
|
277
277
|
return 1;
|
|
@@ -279,14 +279,14 @@ class H {
|
|
|
279
279
|
return this.formattedValue.length - 1;
|
|
280
280
|
}
|
|
281
281
|
} else {
|
|
282
|
-
const l = p ?
|
|
282
|
+
const l = p ? a.length : g.length;
|
|
283
283
|
if (t >= i.length - l)
|
|
284
284
|
return this.formattedValue.length - l;
|
|
285
|
-
if (t <
|
|
286
|
-
return
|
|
285
|
+
if (t < o)
|
|
286
|
+
return o;
|
|
287
287
|
}
|
|
288
|
-
let
|
|
289
|
-
return this.options.hideCurrencySymbolOnFocus && this.options.currencyDisplay !==
|
|
288
|
+
let d = t;
|
|
289
|
+
return this.options.hideCurrencySymbolOnFocus && this.options.currencyDisplay !== y.hidden && t >= o && h !== void 0 && r.includes(h) && (d -= o, p && (d += 1)), this.options.hideGroupingSeparatorOnFocus && c !== void 0 && (d -= E(i.substring(0, t), c)), d;
|
|
290
290
|
}
|
|
291
291
|
setCaretPosition(i, t = i) {
|
|
292
292
|
this.el.setSelectionRange(i, t);
|
|
@@ -295,30 +295,30 @@ class H {
|
|
|
295
295
|
const J = (s) => s != null && s.matches("input") ? s : s == null ? void 0 : s.querySelector("input");
|
|
296
296
|
function K(s, i) {
|
|
297
297
|
var t, e, n, g;
|
|
298
|
-
let
|
|
299
|
-
const
|
|
300
|
-
return x(
|
|
298
|
+
let a;
|
|
299
|
+
const c = O(null), h = O(null), p = O(null), r = R(), o = (r == null ? void 0 : r.emit) || ((e = (t = r == null ? void 0 : r.proxy) === null || t === void 0 ? void 0 : t.$emit) === null || e === void 0 ? void 0 : e.bind(r == null ? void 0 : r.proxy)), d = (r == null ? void 0 : r.props) || ((n = r == null ? void 0 : r.proxy) === null || n === void 0 ? void 0 : n.$props), l = $.startsWith("3"), u = l && ((g = r == null ? void 0 : r.attrs.modelModifiers) === null || g === void 0 ? void 0 : g.lazy), f = I(() => d == null ? void 0 : d[l ? "modelValue" : "value"]), b = l ? "update:modelValue" : "input", S = u ? "update:modelValue" : "change";
|
|
300
|
+
return x(c, (m) => {
|
|
301
301
|
var V;
|
|
302
|
-
if (
|
|
303
|
-
const _ = J((V =
|
|
304
|
-
_ ? (
|
|
302
|
+
if (m) {
|
|
303
|
+
const _ = J((V = m == null ? void 0 : m.$el) !== null && V !== void 0 ? V : m);
|
|
304
|
+
_ ? (a = new H({
|
|
305
305
|
el: _,
|
|
306
306
|
options: s,
|
|
307
307
|
onInput: (F) => {
|
|
308
|
-
!
|
|
308
|
+
!u && i !== !1 && f.value !== F.number && (o == null || o(b, F.number)), p.value = F.number, h.value = F.formatted;
|
|
309
309
|
},
|
|
310
310
|
onChange: (F) => {
|
|
311
|
-
i !== !1 && (
|
|
311
|
+
i !== !1 && (o == null || o(S, F.number));
|
|
312
312
|
}
|
|
313
|
-
}),
|
|
313
|
+
}), a.setValue(f.value)) : console.error('No input element found. Please make sure that the "inputRef" template ref is properly assigned.');
|
|
314
314
|
} else
|
|
315
|
-
|
|
315
|
+
a = null;
|
|
316
316
|
}), {
|
|
317
|
-
inputRef:
|
|
317
|
+
inputRef: c,
|
|
318
318
|
numberValue: p,
|
|
319
|
-
formattedValue:
|
|
320
|
-
setValue: (
|
|
321
|
-
setOptions: (
|
|
319
|
+
formattedValue: h,
|
|
320
|
+
setValue: (m) => a == null ? void 0 : a.setValue(m),
|
|
321
|
+
setOptions: (m) => a == null ? void 0 : a.setOptions(m)
|
|
322
322
|
};
|
|
323
323
|
}
|
|
324
324
|
const gi = /* @__PURE__ */ A({
|
|
@@ -337,9 +337,9 @@ const gi = /* @__PURE__ */ A({
|
|
|
337
337
|
},
|
|
338
338
|
emits: ["update:model-value"],
|
|
339
339
|
setup(s, { expose: i, emit: t }) {
|
|
340
|
-
const e =
|
|
340
|
+
const e = {
|
|
341
341
|
currency: "USD",
|
|
342
|
-
currencyDisplay:
|
|
342
|
+
currencyDisplay: y.hidden,
|
|
343
343
|
precision: 2,
|
|
344
344
|
hideCurrencySymbolOnFocus: !0,
|
|
345
345
|
hideGroupingSeparatorOnFocus: !0,
|
|
@@ -347,34 +347,34 @@ const gi = /* @__PURE__ */ A({
|
|
|
347
347
|
autoDecimalDigits: !0,
|
|
348
348
|
useGrouping: !0,
|
|
349
349
|
accountingSign: !1
|
|
350
|
-
}, g = L(),
|
|
351
|
-
...
|
|
352
|
-
...z(
|
|
353
|
-
})), { inputRef: h, setOptions:
|
|
350
|
+
}, n = s, g = t, a = L(), c = I(() => ({
|
|
351
|
+
...e,
|
|
352
|
+
...z(n.inputOptions) ? {} : n.inputOptions
|
|
353
|
+
})), { inputRef: h, setOptions: p, setValue: r, numberValue: o } = K(c.value, !1);
|
|
354
354
|
i({ inputEl: h }), x(
|
|
355
|
-
() =>
|
|
356
|
-
(
|
|
357
|
-
var
|
|
358
|
-
let
|
|
359
|
-
Object.is(
|
|
355
|
+
() => o.value,
|
|
356
|
+
(l) => {
|
|
357
|
+
var f;
|
|
358
|
+
let u;
|
|
359
|
+
Object.is(l, -0) ? typeof c.value.precision == "number" ? u = "-0." + "0".repeat(c.value.precision) : u = "-0." + "0".repeat(((f = c.value.precision) == null ? void 0 : f.min) || 0) : u = typeof l == "number" ? l.toFixed(2) : l, g("update:model-value", u);
|
|
360
360
|
}
|
|
361
361
|
), x(
|
|
362
|
-
() =>
|
|
363
|
-
(
|
|
364
|
-
let
|
|
365
|
-
typeof
|
|
362
|
+
() => n.modelValue,
|
|
363
|
+
(l) => {
|
|
364
|
+
let u;
|
|
365
|
+
typeof l == "string" ? u = parseFloat(l || "0") : u = l, r(u);
|
|
366
366
|
}
|
|
367
367
|
), x(
|
|
368
|
-
() =>
|
|
368
|
+
() => n.inputOptions,
|
|
369
369
|
() => {
|
|
370
|
-
|
|
370
|
+
p(c.value);
|
|
371
371
|
}
|
|
372
372
|
);
|
|
373
|
-
const
|
|
374
|
-
const { inputOptions:
|
|
375
|
-
return { ...
|
|
373
|
+
const d = I(() => {
|
|
374
|
+
const { inputOptions: l, ...u } = n;
|
|
375
|
+
return { ...u, ...a };
|
|
376
376
|
});
|
|
377
|
-
return (
|
|
377
|
+
return (l, u) => (T(), G(j, w(d.value, {
|
|
378
378
|
ref_key: "inputEl",
|
|
379
379
|
ref: h,
|
|
380
380
|
class: "stash-currency-input",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurrencyInput.js","sources":["../node_modules/vue-currency-input/dist/index.mjs","../src/components/CurrencyInput/CurrencyInput.vue"],"sourcesContent":["/**\n * Vue Currency Input 3.1.0\n * (c) 2018-2024 Matthias Stiller\n * @license MIT\n */\nimport { ref, getCurrentInstance, version, computed, watch } from 'vue';\n\nvar CurrencyDisplay;\n(function (CurrencyDisplay) {\n CurrencyDisplay[\"symbol\"] = \"symbol\";\n CurrencyDisplay[\"narrowSymbol\"] = \"narrowSymbol\";\n CurrencyDisplay[\"code\"] = \"code\";\n CurrencyDisplay[\"name\"] = \"name\";\n CurrencyDisplay[\"hidden\"] = \"hidden\";\n})(CurrencyDisplay || (CurrencyDisplay = {}));\nvar ValueScaling;\n(function (ValueScaling) {\n ValueScaling[\"precision\"] = \"precision\";\n ValueScaling[\"thousands\"] = \"thousands\";\n ValueScaling[\"millions\"] = \"millions\";\n ValueScaling[\"billions\"] = \"billions\";\n})(ValueScaling || (ValueScaling = {}));\n\nconst escapeRegExp = (str) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n};\nconst removeLeadingZeros = (str) => {\n return str.replace(/^0+(0$|[^0])/, '$1');\n};\nconst count = (str, search) => {\n return (str.match(new RegExp(escapeRegExp(search), 'g')) || []).length;\n};\nconst substringBefore = (str, search) => {\n return str.substring(0, str.indexOf(search));\n};\n\nconst DECIMAL_SEPARATORS = [\n ',',\n '.',\n '٫',\n '。'\n];\nconst INTEGER_PATTERN = '(0|[1-9]\\\\d*)';\nclass CurrencyFormat {\n constructor(options) {\n var _a, _b, _c, _d, _e, _f;\n const { currency, currencyDisplay, locale, precision, accountingSign, useGrouping } = options;\n this.locale = locale;\n this.options = {\n currency,\n useGrouping,\n style: 'currency',\n currencySign: accountingSign ? 'accounting' : undefined,\n currencyDisplay: currencyDisplay !== CurrencyDisplay.hidden ? currencyDisplay : undefined\n };\n const numberFormat = new Intl.NumberFormat(locale, this.options);\n const formatParts = numberFormat.formatToParts(123456);\n this.currency = (_a = formatParts.find(({ type }) => type === 'currency')) === null || _a === void 0 ? void 0 : _a.value;\n this.digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map((i) => i.toLocaleString(locale));\n this.decimalSymbol = (_b = formatParts.find(({ type }) => type === 'decimal')) === null || _b === void 0 ? void 0 : _b.value;\n this.groupingSymbol = (_c = formatParts.find(({ type }) => type === 'group')) === null || _c === void 0 ? void 0 : _c.value;\n this.minusSign = (_d = numberFormat.formatToParts(-1).find(({ type }) => type === 'minusSign')) === null || _d === void 0 ? void 0 : _d.value;\n if (this.decimalSymbol === undefined) {\n this.minimumFractionDigits = this.maximumFractionDigits = 0;\n }\n else if (typeof precision === 'number') {\n this.minimumFractionDigits = this.maximumFractionDigits = precision;\n }\n else {\n this.minimumFractionDigits = (_e = precision === null || precision === void 0 ? void 0 : precision.min) !== null && _e !== void 0 ? _e : numberFormat.resolvedOptions().minimumFractionDigits;\n this.maximumFractionDigits = (_f = precision === null || precision === void 0 ? void 0 : precision.max) !== null && _f !== void 0 ? _f : numberFormat.resolvedOptions().maximumFractionDigits;\n }\n const getPrefix = (str) => {\n return substringBefore(str, this.digits[1]);\n };\n const getSuffix = (str) => {\n return str.substring(str.lastIndexOf(this.decimalSymbol ? this.digits[0] : this.digits[1]) + 1);\n };\n this.prefix = getPrefix(numberFormat.format(1));\n this.suffix = getSuffix(numberFormat.format(1));\n this.negativePrefix = getPrefix(numberFormat.format(-1));\n this.negativeSuffix = getSuffix(numberFormat.format(-1));\n }\n parse(str) {\n if (str) {\n const negative = this.isNegative(str);\n str = this.normalizeDigits(str);\n str = this.stripCurrency(str, negative);\n str = this.stripSignLiterals(str);\n const fraction = this.decimalSymbol ? `(?:${escapeRegExp(this.decimalSymbol)}(\\\\d*))?` : '';\n const match = this.stripGroupingSeparator(str).match(new RegExp(`^${INTEGER_PATTERN}${fraction}$`));\n if (match && this.isValidIntegerFormat(this.decimalSymbol ? str.split(this.decimalSymbol)[0] : str, Number(match[1]))) {\n return Number(`${negative ? '-' : ''}${this.onlyDigits(match[1])}.${this.onlyDigits(match[2] || '')}`);\n }\n }\n return null;\n }\n isValidIntegerFormat(formattedNumber, integerNumber) {\n const options = { ...this.options, minimumFractionDigits: 0 };\n return [\n this.stripCurrency(this.normalizeDigits(integerNumber.toLocaleString(this.locale, { ...options, useGrouping: true })), false),\n this.stripCurrency(this.normalizeDigits(integerNumber.toLocaleString(this.locale, { ...options, useGrouping: false })), false)\n ].includes(formattedNumber);\n }\n format(value, options = {\n minimumFractionDigits: this.minimumFractionDigits,\n maximumFractionDigits: this.maximumFractionDigits\n }) {\n return value != null ? value.toLocaleString(this.locale, { ...this.options, ...options }) : '';\n }\n toFraction(str) {\n return `${this.digits[0]}${this.decimalSymbol}${this.onlyLocaleDigits(str.substring(1)).substring(0, this.maximumFractionDigits)}`;\n }\n isFractionIncomplete(str) {\n return !!this.normalizeDigits(this.stripGroupingSeparator(str)).match(new RegExp(`^${INTEGER_PATTERN}${escapeRegExp(this.decimalSymbol)}$`));\n }\n isNegative(str) {\n return (str.startsWith(this.negativePrefix) ||\n (this.minusSign === undefined && (str.startsWith('(') || str.startsWith('-'))) ||\n (this.minusSign !== undefined && str.replace('-', this.minusSign).startsWith(this.minusSign)));\n }\n insertCurrency(str, negative) {\n return `${negative ? this.negativePrefix : this.prefix}${str}${negative ? this.negativeSuffix : this.suffix}`;\n }\n stripGroupingSeparator(str) {\n return this.groupingSymbol !== undefined ? str.replace(new RegExp(escapeRegExp(this.groupingSymbol), 'g'), '') : str;\n }\n stripSignLiterals(str) {\n if (this.minusSign !== undefined) {\n return str.replace('-', this.minusSign).replace(this.minusSign, '');\n }\n else {\n return str.replace(/[-()]/g, '');\n }\n }\n stripCurrency(str, negative) {\n return str.replace(negative ? this.negativePrefix : this.prefix, '').replace(negative ? this.negativeSuffix : this.suffix, '');\n }\n normalizeDecimalSeparator(str, from) {\n DECIMAL_SEPARATORS.forEach((s) => {\n str = str.substring(0, from) + str.substring(from).replace(s, this.decimalSymbol);\n });\n return str;\n }\n normalizeDigits(str) {\n if (this.digits[0] !== '0') {\n this.digits.forEach((digit, index) => {\n str = str.replace(new RegExp(digit, 'g'), String(index));\n });\n }\n return str;\n }\n onlyDigits(str) {\n return this.normalizeDigits(str).replace(/\\D+/g, '');\n }\n onlyLocaleDigits(str) {\n return str.replace(new RegExp(`[^${this.digits.join('')}]*`, 'g'), '');\n }\n}\n\nclass AbstractInputMask {\n constructor(currencyFormat) {\n this.currencyFormat = currencyFormat;\n }\n}\nclass DefaultInputMask extends AbstractInputMask {\n conformToMask(str, previousConformedValue = '') {\n const negative = this.currencyFormat.isNegative(str);\n const isEmptyNegativeValue = (str) => str === '' &&\n negative &&\n !(this.currencyFormat.minusSign === undefined\n ? previousConformedValue === this.currencyFormat.negativePrefix + this.currencyFormat.negativeSuffix\n : previousConformedValue === this.currencyFormat.negativePrefix);\n const checkIncompleteValue = (str) => {\n if (isEmptyNegativeValue(str)) {\n return '';\n }\n else if (this.currencyFormat.maximumFractionDigits > 0) {\n if (this.currencyFormat.isFractionIncomplete(str)) {\n return str;\n }\n else if (str.startsWith(this.currencyFormat.decimalSymbol)) {\n return this.currencyFormat.toFraction(str);\n }\n }\n return null;\n };\n let value = str;\n value = this.currencyFormat.stripCurrency(value, negative);\n value = this.currencyFormat.stripSignLiterals(value);\n const incompleteValue = checkIncompleteValue(value);\n if (incompleteValue != null) {\n return this.currencyFormat.insertCurrency(incompleteValue, negative);\n }\n const [integer, ...fraction] = value.split(this.currencyFormat.decimalSymbol);\n const integerDigits = removeLeadingZeros(this.currencyFormat.onlyDigits(integer));\n const fractionDigits = this.currencyFormat.onlyDigits(fraction.join('')).substring(0, this.currencyFormat.maximumFractionDigits);\n const invalidFraction = fraction.length > 0 && fractionDigits.length === 0;\n const invalidNegativeValue = integerDigits === '' &&\n negative &&\n (this.currencyFormat.minusSign === undefined\n ? previousConformedValue === str.slice(0, -2) + this.currencyFormat.negativeSuffix\n : previousConformedValue === str.slice(0, -1));\n if (invalidFraction || invalidNegativeValue || isEmptyNegativeValue(integerDigits)) {\n return previousConformedValue;\n }\n else if (integerDigits.match(/\\d+/)) {\n return {\n numberValue: Number(`${negative ? '-' : ''}${integerDigits}.${fractionDigits}`),\n fractionDigits\n };\n }\n else {\n return '';\n }\n }\n}\nclass AutoDecimalDigitsInputMask extends AbstractInputMask {\n conformToMask(str, previousConformedValue = '') {\n if (str === '' ||\n (this.currencyFormat.parse(previousConformedValue) === 0 &&\n this.currencyFormat.stripCurrency(previousConformedValue, true).slice(0, -1) === this.currencyFormat.stripCurrency(str, true))) {\n return '';\n }\n const negative = this.currencyFormat.isNegative(str);\n const numberValue = this.currencyFormat.stripSignLiterals(str) === ''\n ? -0\n : Number(`${negative ? '-' : ''}${removeLeadingZeros(this.currencyFormat.onlyDigits(str))}`) / Math.pow(10, this.currencyFormat.maximumFractionDigits);\n return {\n numberValue,\n fractionDigits: numberValue.toFixed(this.currencyFormat.maximumFractionDigits).slice(-this.currencyFormat.maximumFractionDigits)\n };\n }\n}\n\nconst DEFAULT_OPTIONS = {\n locale: undefined,\n currency: undefined,\n currencyDisplay: undefined,\n hideGroupingSeparatorOnFocus: true,\n hideCurrencySymbolOnFocus: true,\n hideNegligibleDecimalDigitsOnFocus: true,\n precision: undefined,\n autoDecimalDigits: false,\n valueRange: undefined,\n useGrouping: undefined,\n valueScaling: undefined\n};\nclass CurrencyInput {\n constructor(args) {\n this.el = args.el;\n this.onInput = args.onInput;\n this.onChange = args.onChange;\n this.addEventListener();\n this.init(args.options);\n }\n setOptions(options) {\n this.init(options);\n this.format(this.currencyFormat.format(this.validateValueRange(this.numberValue)));\n this.onChange(this.getValue());\n }\n getValue() {\n const numberValue = this.valueScaling && this.numberValue != null ? this.toInteger(this.numberValue, this.valueScaling) : this.numberValue;\n return { number: numberValue, formatted: this.formattedValue };\n }\n setValue(value) {\n const newValue = this.valueScaling !== undefined && value != null ? this.toFloat(value, this.valueScaling) : value;\n if (newValue !== this.numberValue) {\n this.format(this.currencyFormat.format(this.validateValueRange(newValue)));\n this.onChange(this.getValue());\n }\n }\n init(options) {\n this.options = {\n ...DEFAULT_OPTIONS,\n ...options\n };\n if (this.options.autoDecimalDigits) {\n this.options.hideNegligibleDecimalDigitsOnFocus = false;\n }\n if (!this.el.getAttribute('inputmode')) {\n this.el.setAttribute('inputmode', this.options.autoDecimalDigits ? 'numeric' : 'decimal');\n }\n this.currencyFormat = new CurrencyFormat(this.options);\n this.numberMask = this.options.autoDecimalDigits ? new AutoDecimalDigitsInputMask(this.currencyFormat) : new DefaultInputMask(this.currencyFormat);\n const valueScalingOptions = {\n [ValueScaling.precision]: this.currencyFormat.maximumFractionDigits,\n [ValueScaling.thousands]: 3,\n [ValueScaling.millions]: 6,\n [ValueScaling.billions]: 9\n };\n this.valueScaling = this.options.valueScaling ? valueScalingOptions[this.options.valueScaling] : undefined;\n this.valueScalingFractionDigits =\n this.valueScaling !== undefined && this.options.valueScaling !== ValueScaling.precision\n ? this.valueScaling + this.currencyFormat.maximumFractionDigits\n : this.currencyFormat.maximumFractionDigits;\n this.minValue = this.getMinValue();\n this.maxValue = this.getMaxValue();\n }\n getMinValue() {\n var _a, _b;\n let min = this.toFloat(-Number.MAX_SAFE_INTEGER);\n if (((_a = this.options.valueRange) === null || _a === void 0 ? void 0 : _a.min) !== undefined) {\n min = Math.max((_b = this.options.valueRange) === null || _b === void 0 ? void 0 : _b.min, this.toFloat(-Number.MAX_SAFE_INTEGER));\n }\n return min;\n }\n getMaxValue() {\n var _a, _b;\n let max = this.toFloat(Number.MAX_SAFE_INTEGER);\n if (((_a = this.options.valueRange) === null || _a === void 0 ? void 0 : _a.max) !== undefined) {\n max = Math.min((_b = this.options.valueRange) === null || _b === void 0 ? void 0 : _b.max, this.toFloat(Number.MAX_SAFE_INTEGER));\n }\n return max;\n }\n toFloat(value, maxFractionDigits) {\n return value / Math.pow(10, maxFractionDigits !== null && maxFractionDigits !== void 0 ? maxFractionDigits : this.valueScalingFractionDigits);\n }\n toInteger(value, maxFractionDigits) {\n return Number(value\n .toFixed(maxFractionDigits !== null && maxFractionDigits !== void 0 ? maxFractionDigits : this.valueScalingFractionDigits)\n .split('.')\n .join(''));\n }\n validateValueRange(value) {\n return value != null ? Math.min(Math.max(value, this.minValue), this.maxValue) : value;\n }\n format(value, hideNegligibleDecimalDigits = false) {\n if (value != null) {\n if (this.decimalSymbolInsertedAt !== undefined) {\n value = this.currencyFormat.normalizeDecimalSeparator(value, this.decimalSymbolInsertedAt);\n this.decimalSymbolInsertedAt = undefined;\n }\n const conformedValue = this.numberMask.conformToMask(value, this.formattedValue);\n let formattedValue;\n if (typeof conformedValue === 'object') {\n const { numberValue, fractionDigits } = conformedValue;\n let { maximumFractionDigits, minimumFractionDigits } = this.currencyFormat;\n if (this.focus) {\n minimumFractionDigits = hideNegligibleDecimalDigits\n ? fractionDigits.replace(/0+$/, '').length\n : Math.min(maximumFractionDigits, fractionDigits.length);\n }\n else if (Number.isInteger(numberValue) && !this.options.autoDecimalDigits && (this.options.precision === undefined || minimumFractionDigits === 0)) {\n minimumFractionDigits = maximumFractionDigits = 0;\n }\n formattedValue =\n this.toInteger(Math.abs(numberValue)) > Number.MAX_SAFE_INTEGER\n ? this.formattedValue\n : this.currencyFormat.format(numberValue, {\n useGrouping: this.options.useGrouping !== false && !(this.focus && this.options.hideGroupingSeparatorOnFocus),\n minimumFractionDigits,\n maximumFractionDigits\n });\n }\n else {\n formattedValue = conformedValue;\n }\n if (this.maxValue <= 0 && !this.currencyFormat.isNegative(formattedValue) && this.currencyFormat.parse(formattedValue) !== 0) {\n formattedValue = formattedValue.replace(this.currencyFormat.prefix, this.currencyFormat.negativePrefix);\n }\n if (this.minValue >= 0) {\n formattedValue = formattedValue.replace(this.currencyFormat.negativePrefix, this.currencyFormat.prefix);\n }\n if (this.options.currencyDisplay === CurrencyDisplay.hidden || (this.focus && this.options.hideCurrencySymbolOnFocus)) {\n formattedValue = formattedValue\n .replace(this.currencyFormat.negativePrefix, this.currencyFormat.minusSign !== undefined ? this.currencyFormat.minusSign : '(')\n .replace(this.currencyFormat.negativeSuffix, this.currencyFormat.minusSign !== undefined ? '' : ')')\n .replace(this.currencyFormat.prefix, '')\n .replace(this.currencyFormat.suffix, '');\n }\n this.el.value = formattedValue;\n this.numberValue = this.currencyFormat.parse(formattedValue);\n }\n else {\n this.el.value = '';\n this.numberValue = null;\n }\n this.formattedValue = this.el.value;\n this.onInput(this.getValue());\n }\n addEventListener() {\n this.el.addEventListener('input', (e) => {\n const { value, selectionStart } = this.el;\n const inputEvent = e;\n if (selectionStart && inputEvent.data && DECIMAL_SEPARATORS.includes(inputEvent.data)) {\n this.decimalSymbolInsertedAt = selectionStart - 1;\n }\n this.format(value);\n if (this.focus && selectionStart != null) {\n const getCaretPositionAfterFormat = () => {\n const { prefix, suffix, decimalSymbol, maximumFractionDigits, groupingSymbol } = this.currencyFormat;\n let caretPositionFromLeft = value.length - selectionStart;\n const newValueLength = this.formattedValue.length;\n if (this.currencyFormat.minusSign === undefined && (value.startsWith('(') || value.startsWith('-')) && !value.endsWith(')')) {\n return newValueLength - this.currencyFormat.negativeSuffix.length > 1 ? this.formattedValue.substring(selectionStart).length : 1;\n }\n if (this.formattedValue.substring(selectionStart, 1) === groupingSymbol &&\n count(this.formattedValue, groupingSymbol) === count(value, groupingSymbol) + 1) {\n return newValueLength - caretPositionFromLeft - 1;\n }\n if (newValueLength < caretPositionFromLeft) {\n return selectionStart;\n }\n if (decimalSymbol !== undefined && value.indexOf(decimalSymbol) !== -1) {\n const decimalSymbolPosition = value.indexOf(decimalSymbol) + 1;\n if (Math.abs(newValueLength - value.length) > 1 && selectionStart <= decimalSymbolPosition) {\n return this.formattedValue.indexOf(decimalSymbol) + 1;\n }\n else {\n if (!this.options.autoDecimalDigits && selectionStart > decimalSymbolPosition) {\n if (this.currencyFormat.onlyDigits(value.substring(decimalSymbolPosition)).length - 1 === maximumFractionDigits) {\n caretPositionFromLeft -= 1;\n }\n }\n }\n }\n return this.options.hideCurrencySymbolOnFocus || this.options.currencyDisplay === CurrencyDisplay.hidden\n ? newValueLength - caretPositionFromLeft\n : Math.max(newValueLength - Math.max(caretPositionFromLeft, suffix.length), prefix.length);\n };\n this.setCaretPosition(getCaretPositionAfterFormat());\n }\n });\n this.el.addEventListener('focus', () => {\n this.focus = true;\n this.numberValueOnFocus = this.numberValue;\n setTimeout(() => {\n const { value, selectionStart, selectionEnd } = this.el;\n this.format(value, this.options.hideNegligibleDecimalDigitsOnFocus);\n if (selectionStart != null && selectionEnd != null && Math.abs(selectionStart - selectionEnd) > 0) {\n this.setCaretPosition(0, this.el.value.length);\n }\n else if (selectionStart != null) {\n const caretPositionOnFocus = this.getCaretPositionOnFocus(value, selectionStart);\n this.setCaretPosition(caretPositionOnFocus);\n }\n });\n });\n this.el.addEventListener('blur', () => {\n this.focus = false;\n this.format(this.currencyFormat.format(this.validateValueRange(this.numberValue)));\n if (this.numberValueOnFocus !== this.numberValue) {\n this.onChange(this.getValue());\n }\n });\n }\n getCaretPositionOnFocus(value, selectionStart) {\n if (this.numberValue == null) {\n return selectionStart;\n }\n const { prefix, negativePrefix, suffix, negativeSuffix, groupingSymbol, currency } = this.currencyFormat;\n const isNegative = this.numberValue < 0;\n const currentPrefix = isNegative ? negativePrefix : prefix;\n const prefixLength = currentPrefix.length;\n if (this.options.hideCurrencySymbolOnFocus || this.options.currencyDisplay === CurrencyDisplay.hidden) {\n if (isNegative) {\n if (selectionStart <= 1) {\n return 1;\n }\n else if (value.endsWith(')') && selectionStart > value.indexOf(')')) {\n return this.formattedValue.length - 1;\n }\n }\n }\n else {\n const suffixLength = isNegative ? negativeSuffix.length : suffix.length;\n if (selectionStart >= value.length - suffixLength) {\n return this.formattedValue.length - suffixLength;\n }\n else if (selectionStart < prefixLength) {\n return prefixLength;\n }\n }\n let result = selectionStart;\n if (this.options.hideCurrencySymbolOnFocus &&\n this.options.currencyDisplay !== CurrencyDisplay.hidden &&\n selectionStart >= prefixLength &&\n currency !== undefined &&\n currentPrefix.includes(currency)) {\n result -= prefixLength;\n if (isNegative) {\n result += 1;\n }\n }\n if (this.options.hideGroupingSeparatorOnFocus && groupingSymbol !== undefined) {\n result -= count(value.substring(0, selectionStart), groupingSymbol);\n }\n return result;\n }\n setCaretPosition(start, end = start) {\n this.el.setSelectionRange(start, end);\n }\n}\n\nconst findInput = (el) => ((el === null || el === void 0 ? void 0 : el.matches('input')) ? el : el === null || el === void 0 ? void 0 : el.querySelector('input'));\nfunction useCurrencyInput(options, autoEmit) {\n var _a, _b, _c, _d;\n let currencyInput;\n const inputRef = ref(null);\n const formattedValue = ref(null);\n const numberValue = ref(null);\n const vm = getCurrentInstance();\n const emit = (vm === null || vm === void 0 ? void 0 : vm.emit) || ((_b = (_a = vm === null || vm === void 0 ? void 0 : vm.proxy) === null || _a === void 0 ? void 0 : _a.$emit) === null || _b === void 0 ? void 0 : _b.bind(vm === null || vm === void 0 ? void 0 : vm.proxy));\n const props = ((vm === null || vm === void 0 ? void 0 : vm.props) || ((_c = vm === null || vm === void 0 ? void 0 : vm.proxy) === null || _c === void 0 ? void 0 : _c.$props));\n const isVue3 = version.startsWith('3');\n const lazyModel = isVue3 && ((_d = vm === null || vm === void 0 ? void 0 : vm.attrs.modelModifiers) === null || _d === void 0 ? void 0 : _d.lazy);\n const modelValue = computed(() => props === null || props === void 0 ? void 0 : props[isVue3 ? 'modelValue' : 'value']);\n const inputEvent = isVue3 ? 'update:modelValue' : 'input';\n const changeEvent = lazyModel ? 'update:modelValue' : 'change';\n watch(inputRef, (value) => {\n var _a;\n if (value) {\n const el = findInput((_a = value === null || value === void 0 ? void 0 : value.$el) !== null && _a !== void 0 ? _a : value);\n if (el) {\n currencyInput = new CurrencyInput({\n el,\n options,\n onInput: (value) => {\n if (!lazyModel && autoEmit !== false && modelValue.value !== value.number) {\n emit === null || emit === void 0 ? void 0 : emit(inputEvent, value.number);\n }\n numberValue.value = value.number;\n formattedValue.value = value.formatted;\n },\n onChange: (value) => {\n if (autoEmit !== false) {\n emit === null || emit === void 0 ? void 0 : emit(changeEvent, value.number);\n }\n }\n });\n currencyInput.setValue(modelValue.value);\n }\n else {\n console.error('No input element found. Please make sure that the \"inputRef\" template ref is properly assigned.');\n }\n }\n else {\n currencyInput = null;\n }\n });\n return {\n inputRef,\n numberValue,\n formattedValue,\n setValue: (value) => currencyInput === null || currencyInput === void 0 ? void 0 : currencyInput.setValue(value),\n setOptions: (options) => currencyInput === null || currencyInput === void 0 ? void 0 : currencyInput.setOptions(options)\n };\n}\n\nexport { CurrencyDisplay, ValueScaling, useCurrencyInput };\n","<script lang=\"ts\" setup>\n import isEmpty from 'lodash-es/isEmpty';\n import { computed, useAttrs, watch } from 'vue';\n import { CurrencyDisplay, CurrencyInputOptions, useCurrencyInput } from 'vue-currency-input';\n\n import Icon from '../Icon/Icon.vue';\n import Input, { InputProps } from '../Input/Input.vue';\n\n const CURRENCY_INPUT_BASE_OPTIONS: CurrencyInputOptions = {\n currency: 'USD',\n currencyDisplay: CurrencyDisplay.hidden,\n precision: 2,\n hideCurrencySymbolOnFocus: true,\n hideGroupingSeparatorOnFocus: true,\n hideNegligibleDecimalDigitsOnFocus: false,\n autoDecimalDigits: true,\n useGrouping: true,\n accountingSign: false,\n };\n\n export interface CurrencyInputProps extends Omit<InputProps, 'modelValue' | 'type'> {\n inputOptions?: Partial<CurrencyInputOptions>;\n modelValue: string | null;\n }\n\n const props = withDefaults(defineProps<CurrencyInputProps>(), {\n // Todo: this default should be removed if its a required prop...\n modelValue: '',\n errorText: undefined,\n hintText: undefined,\n label: undefined,\n id: undefined,\n inputOptions: undefined,\n });\n\n const emit =\n defineEmits<{\n /**\n * Emitted when the input value changes.\n */\n (e: 'update:model-value', v: CurrencyInputProps['modelValue']): void;\n }>();\n\n const attrs = useAttrs();\n\n const currencyInputOptions = computed(() => {\n return {\n ...CURRENCY_INPUT_BASE_OPTIONS,\n ...(!isEmpty(props.inputOptions) ? props.inputOptions : {}),\n };\n });\n\n const { inputRef: inputEl, setOptions, setValue, numberValue } = useCurrencyInput(currencyInputOptions.value, false);\n\n defineExpose({ inputEl });\n\n watch(\n () => numberValue.value,\n (newValue: number | null | string) => {\n let stringValue: string | null;\n\n if (Object.is(newValue, -0)) {\n if (typeof currencyInputOptions.value.precision === 'number') {\n stringValue = '-0.' + '0'.repeat(currencyInputOptions.value.precision);\n } else {\n stringValue = '-0.' + '0'.repeat(currencyInputOptions.value.precision?.min || 0);\n }\n } else {\n stringValue = typeof newValue === 'number' ? newValue.toFixed(2) : newValue;\n }\n\n emit('update:model-value', stringValue);\n },\n );\n\n watch(\n () => props.modelValue,\n (newValue: number | null | string) => {\n let numberValue: number | null;\n\n if (typeof newValue === 'string') {\n numberValue = parseFloat(newValue || '0');\n } else {\n numberValue = newValue;\n }\n\n setValue(numberValue);\n },\n );\n\n watch(\n () => props.inputOptions,\n () => {\n setOptions(currencyInputOptions.value);\n },\n );\n\n const inputAttrs = computed(() => {\n const { inputOptions: _, ...propsWithoutCurrencyInputOptions } = props;\n\n return { ...propsWithoutCurrencyInputOptions, ...attrs } as typeof attrs & InputProps;\n });\n</script>\n\n<template>\n <Input\n v-bind=\"inputAttrs\"\n ref=\"inputEl\"\n class=\"stash-currency-input\"\n type=\"text\"\n data-test=\"stash-currency-input\"\n inputmode=\"decimal\"\n >\n <template #prepend>\n <Icon name=\"sign-dollar\" />\n </template>\n </Input>\n</template>\n"],"names":["CurrencyDisplay","ValueScaling","escapeRegExp","str","removeLeadingZeros","count","search","substringBefore","DECIMAL_SEPARATORS","INTEGER_PATTERN","CurrencyFormat","options","_a","_b","_c","_d","_e","_f","currency","currencyDisplay","locale","precision","accountingSign","useGrouping","numberFormat","formatParts","type","i","getPrefix","getSuffix","negative","fraction","match","formattedNumber","integerNumber","value","from","s","digit","index","AbstractInputMask","currencyFormat","DefaultInputMask","previousConformedValue","isEmptyNegativeValue","checkIncompleteValue","incompleteValue","integer","integerDigits","fractionDigits","invalidFraction","invalidNegativeValue","AutoDecimalDigitsInputMask","numberValue","DEFAULT_OPTIONS","CurrencyInput","args","newValue","valueScalingOptions","min","max","maxFractionDigits","hideNegligibleDecimalDigits","conformedValue","formattedValue","maximumFractionDigits","minimumFractionDigits","e","selectionStart","inputEvent","getCaretPositionAfterFormat","prefix","suffix","decimalSymbol","groupingSymbol","caretPositionFromLeft","newValueLength","decimalSymbolPosition","selectionEnd","caretPositionOnFocus","negativePrefix","negativeSuffix","isNegative","currentPrefix","prefixLength","suffixLength","result","start","end","findInput","el","useCurrencyInput","autoEmit","currencyInput","inputRef","ref","vm","getCurrentInstance","emit","props","isVue3","version","lazyModel","modelValue","computed","changeEvent","watch","CURRENCY_INPUT_BASE_OPTIONS","attrs","useAttrs","currencyInputOptions","isEmpty","inputEl","setOptions","setValue","__expose","stringValue","inputAttrs","_","propsWithoutCurrencyInputOptions"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"CurrencyInput.js","sources":["../node_modules/vue-currency-input/dist/index.mjs","../src/components/CurrencyInput/CurrencyInput.vue"],"sourcesContent":["/**\n * Vue Currency Input 3.1.0\n * (c) 2018-2024 Matthias Stiller\n * @license MIT\n */\nimport { ref, getCurrentInstance, version, computed, watch } from 'vue';\n\nvar CurrencyDisplay;\n(function (CurrencyDisplay) {\n CurrencyDisplay[\"symbol\"] = \"symbol\";\n CurrencyDisplay[\"narrowSymbol\"] = \"narrowSymbol\";\n CurrencyDisplay[\"code\"] = \"code\";\n CurrencyDisplay[\"name\"] = \"name\";\n CurrencyDisplay[\"hidden\"] = \"hidden\";\n})(CurrencyDisplay || (CurrencyDisplay = {}));\nvar ValueScaling;\n(function (ValueScaling) {\n ValueScaling[\"precision\"] = \"precision\";\n ValueScaling[\"thousands\"] = \"thousands\";\n ValueScaling[\"millions\"] = \"millions\";\n ValueScaling[\"billions\"] = \"billions\";\n})(ValueScaling || (ValueScaling = {}));\n\nconst escapeRegExp = (str) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n};\nconst removeLeadingZeros = (str) => {\n return str.replace(/^0+(0$|[^0])/, '$1');\n};\nconst count = (str, search) => {\n return (str.match(new RegExp(escapeRegExp(search), 'g')) || []).length;\n};\nconst substringBefore = (str, search) => {\n return str.substring(0, str.indexOf(search));\n};\n\nconst DECIMAL_SEPARATORS = [\n ',',\n '.',\n '٫',\n '。'\n];\nconst INTEGER_PATTERN = '(0|[1-9]\\\\d*)';\nclass CurrencyFormat {\n constructor(options) {\n var _a, _b, _c, _d, _e, _f;\n const { currency, currencyDisplay, locale, precision, accountingSign, useGrouping } = options;\n this.locale = locale;\n this.options = {\n currency,\n useGrouping,\n style: 'currency',\n currencySign: accountingSign ? 'accounting' : undefined,\n currencyDisplay: currencyDisplay !== CurrencyDisplay.hidden ? currencyDisplay : undefined\n };\n const numberFormat = new Intl.NumberFormat(locale, this.options);\n const formatParts = numberFormat.formatToParts(123456);\n this.currency = (_a = formatParts.find(({ type }) => type === 'currency')) === null || _a === void 0 ? void 0 : _a.value;\n this.digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map((i) => i.toLocaleString(locale));\n this.decimalSymbol = (_b = formatParts.find(({ type }) => type === 'decimal')) === null || _b === void 0 ? void 0 : _b.value;\n this.groupingSymbol = (_c = formatParts.find(({ type }) => type === 'group')) === null || _c === void 0 ? void 0 : _c.value;\n this.minusSign = (_d = numberFormat.formatToParts(-1).find(({ type }) => type === 'minusSign')) === null || _d === void 0 ? void 0 : _d.value;\n if (this.decimalSymbol === undefined) {\n this.minimumFractionDigits = this.maximumFractionDigits = 0;\n }\n else if (typeof precision === 'number') {\n this.minimumFractionDigits = this.maximumFractionDigits = precision;\n }\n else {\n this.minimumFractionDigits = (_e = precision === null || precision === void 0 ? void 0 : precision.min) !== null && _e !== void 0 ? _e : numberFormat.resolvedOptions().minimumFractionDigits;\n this.maximumFractionDigits = (_f = precision === null || precision === void 0 ? void 0 : precision.max) !== null && _f !== void 0 ? _f : numberFormat.resolvedOptions().maximumFractionDigits;\n }\n const getPrefix = (str) => {\n return substringBefore(str, this.digits[1]);\n };\n const getSuffix = (str) => {\n return str.substring(str.lastIndexOf(this.decimalSymbol ? this.digits[0] : this.digits[1]) + 1);\n };\n this.prefix = getPrefix(numberFormat.format(1));\n this.suffix = getSuffix(numberFormat.format(1));\n this.negativePrefix = getPrefix(numberFormat.format(-1));\n this.negativeSuffix = getSuffix(numberFormat.format(-1));\n }\n parse(str) {\n if (str) {\n const negative = this.isNegative(str);\n str = this.normalizeDigits(str);\n str = this.stripCurrency(str, negative);\n str = this.stripSignLiterals(str);\n const fraction = this.decimalSymbol ? `(?:${escapeRegExp(this.decimalSymbol)}(\\\\d*))?` : '';\n const match = this.stripGroupingSeparator(str).match(new RegExp(`^${INTEGER_PATTERN}${fraction}$`));\n if (match && this.isValidIntegerFormat(this.decimalSymbol ? str.split(this.decimalSymbol)[0] : str, Number(match[1]))) {\n return Number(`${negative ? '-' : ''}${this.onlyDigits(match[1])}.${this.onlyDigits(match[2] || '')}`);\n }\n }\n return null;\n }\n isValidIntegerFormat(formattedNumber, integerNumber) {\n const options = { ...this.options, minimumFractionDigits: 0 };\n return [\n this.stripCurrency(this.normalizeDigits(integerNumber.toLocaleString(this.locale, { ...options, useGrouping: true })), false),\n this.stripCurrency(this.normalizeDigits(integerNumber.toLocaleString(this.locale, { ...options, useGrouping: false })), false)\n ].includes(formattedNumber);\n }\n format(value, options = {\n minimumFractionDigits: this.minimumFractionDigits,\n maximumFractionDigits: this.maximumFractionDigits\n }) {\n return value != null ? value.toLocaleString(this.locale, { ...this.options, ...options }) : '';\n }\n toFraction(str) {\n return `${this.digits[0]}${this.decimalSymbol}${this.onlyLocaleDigits(str.substring(1)).substring(0, this.maximumFractionDigits)}`;\n }\n isFractionIncomplete(str) {\n return !!this.normalizeDigits(this.stripGroupingSeparator(str)).match(new RegExp(`^${INTEGER_PATTERN}${escapeRegExp(this.decimalSymbol)}$`));\n }\n isNegative(str) {\n return (str.startsWith(this.negativePrefix) ||\n (this.minusSign === undefined && (str.startsWith('(') || str.startsWith('-'))) ||\n (this.minusSign !== undefined && str.replace('-', this.minusSign).startsWith(this.minusSign)));\n }\n insertCurrency(str, negative) {\n return `${negative ? this.negativePrefix : this.prefix}${str}${negative ? this.negativeSuffix : this.suffix}`;\n }\n stripGroupingSeparator(str) {\n return this.groupingSymbol !== undefined ? str.replace(new RegExp(escapeRegExp(this.groupingSymbol), 'g'), '') : str;\n }\n stripSignLiterals(str) {\n if (this.minusSign !== undefined) {\n return str.replace('-', this.minusSign).replace(this.minusSign, '');\n }\n else {\n return str.replace(/[-()]/g, '');\n }\n }\n stripCurrency(str, negative) {\n return str.replace(negative ? this.negativePrefix : this.prefix, '').replace(negative ? this.negativeSuffix : this.suffix, '');\n }\n normalizeDecimalSeparator(str, from) {\n DECIMAL_SEPARATORS.forEach((s) => {\n str = str.substring(0, from) + str.substring(from).replace(s, this.decimalSymbol);\n });\n return str;\n }\n normalizeDigits(str) {\n if (this.digits[0] !== '0') {\n this.digits.forEach((digit, index) => {\n str = str.replace(new RegExp(digit, 'g'), String(index));\n });\n }\n return str;\n }\n onlyDigits(str) {\n return this.normalizeDigits(str).replace(/\\D+/g, '');\n }\n onlyLocaleDigits(str) {\n return str.replace(new RegExp(`[^${this.digits.join('')}]*`, 'g'), '');\n }\n}\n\nclass AbstractInputMask {\n constructor(currencyFormat) {\n this.currencyFormat = currencyFormat;\n }\n}\nclass DefaultInputMask extends AbstractInputMask {\n conformToMask(str, previousConformedValue = '') {\n const negative = this.currencyFormat.isNegative(str);\n const isEmptyNegativeValue = (str) => str === '' &&\n negative &&\n !(this.currencyFormat.minusSign === undefined\n ? previousConformedValue === this.currencyFormat.negativePrefix + this.currencyFormat.negativeSuffix\n : previousConformedValue === this.currencyFormat.negativePrefix);\n const checkIncompleteValue = (str) => {\n if (isEmptyNegativeValue(str)) {\n return '';\n }\n else if (this.currencyFormat.maximumFractionDigits > 0) {\n if (this.currencyFormat.isFractionIncomplete(str)) {\n return str;\n }\n else if (str.startsWith(this.currencyFormat.decimalSymbol)) {\n return this.currencyFormat.toFraction(str);\n }\n }\n return null;\n };\n let value = str;\n value = this.currencyFormat.stripCurrency(value, negative);\n value = this.currencyFormat.stripSignLiterals(value);\n const incompleteValue = checkIncompleteValue(value);\n if (incompleteValue != null) {\n return this.currencyFormat.insertCurrency(incompleteValue, negative);\n }\n const [integer, ...fraction] = value.split(this.currencyFormat.decimalSymbol);\n const integerDigits = removeLeadingZeros(this.currencyFormat.onlyDigits(integer));\n const fractionDigits = this.currencyFormat.onlyDigits(fraction.join('')).substring(0, this.currencyFormat.maximumFractionDigits);\n const invalidFraction = fraction.length > 0 && fractionDigits.length === 0;\n const invalidNegativeValue = integerDigits === '' &&\n negative &&\n (this.currencyFormat.minusSign === undefined\n ? previousConformedValue === str.slice(0, -2) + this.currencyFormat.negativeSuffix\n : previousConformedValue === str.slice(0, -1));\n if (invalidFraction || invalidNegativeValue || isEmptyNegativeValue(integerDigits)) {\n return previousConformedValue;\n }\n else if (integerDigits.match(/\\d+/)) {\n return {\n numberValue: Number(`${negative ? '-' : ''}${integerDigits}.${fractionDigits}`),\n fractionDigits\n };\n }\n else {\n return '';\n }\n }\n}\nclass AutoDecimalDigitsInputMask extends AbstractInputMask {\n conformToMask(str, previousConformedValue = '') {\n if (str === '' ||\n (this.currencyFormat.parse(previousConformedValue) === 0 &&\n this.currencyFormat.stripCurrency(previousConformedValue, true).slice(0, -1) === this.currencyFormat.stripCurrency(str, true))) {\n return '';\n }\n const negative = this.currencyFormat.isNegative(str);\n const numberValue = this.currencyFormat.stripSignLiterals(str) === ''\n ? -0\n : Number(`${negative ? '-' : ''}${removeLeadingZeros(this.currencyFormat.onlyDigits(str))}`) / Math.pow(10, this.currencyFormat.maximumFractionDigits);\n return {\n numberValue,\n fractionDigits: numberValue.toFixed(this.currencyFormat.maximumFractionDigits).slice(-this.currencyFormat.maximumFractionDigits)\n };\n }\n}\n\nconst DEFAULT_OPTIONS = {\n locale: undefined,\n currency: undefined,\n currencyDisplay: undefined,\n hideGroupingSeparatorOnFocus: true,\n hideCurrencySymbolOnFocus: true,\n hideNegligibleDecimalDigitsOnFocus: true,\n precision: undefined,\n autoDecimalDigits: false,\n valueRange: undefined,\n useGrouping: undefined,\n valueScaling: undefined\n};\nclass CurrencyInput {\n constructor(args) {\n this.el = args.el;\n this.onInput = args.onInput;\n this.onChange = args.onChange;\n this.addEventListener();\n this.init(args.options);\n }\n setOptions(options) {\n this.init(options);\n this.format(this.currencyFormat.format(this.validateValueRange(this.numberValue)));\n this.onChange(this.getValue());\n }\n getValue() {\n const numberValue = this.valueScaling && this.numberValue != null ? this.toInteger(this.numberValue, this.valueScaling) : this.numberValue;\n return { number: numberValue, formatted: this.formattedValue };\n }\n setValue(value) {\n const newValue = this.valueScaling !== undefined && value != null ? this.toFloat(value, this.valueScaling) : value;\n if (newValue !== this.numberValue) {\n this.format(this.currencyFormat.format(this.validateValueRange(newValue)));\n this.onChange(this.getValue());\n }\n }\n init(options) {\n this.options = {\n ...DEFAULT_OPTIONS,\n ...options\n };\n if (this.options.autoDecimalDigits) {\n this.options.hideNegligibleDecimalDigitsOnFocus = false;\n }\n if (!this.el.getAttribute('inputmode')) {\n this.el.setAttribute('inputmode', this.options.autoDecimalDigits ? 'numeric' : 'decimal');\n }\n this.currencyFormat = new CurrencyFormat(this.options);\n this.numberMask = this.options.autoDecimalDigits ? new AutoDecimalDigitsInputMask(this.currencyFormat) : new DefaultInputMask(this.currencyFormat);\n const valueScalingOptions = {\n [ValueScaling.precision]: this.currencyFormat.maximumFractionDigits,\n [ValueScaling.thousands]: 3,\n [ValueScaling.millions]: 6,\n [ValueScaling.billions]: 9\n };\n this.valueScaling = this.options.valueScaling ? valueScalingOptions[this.options.valueScaling] : undefined;\n this.valueScalingFractionDigits =\n this.valueScaling !== undefined && this.options.valueScaling !== ValueScaling.precision\n ? this.valueScaling + this.currencyFormat.maximumFractionDigits\n : this.currencyFormat.maximumFractionDigits;\n this.minValue = this.getMinValue();\n this.maxValue = this.getMaxValue();\n }\n getMinValue() {\n var _a, _b;\n let min = this.toFloat(-Number.MAX_SAFE_INTEGER);\n if (((_a = this.options.valueRange) === null || _a === void 0 ? void 0 : _a.min) !== undefined) {\n min = Math.max((_b = this.options.valueRange) === null || _b === void 0 ? void 0 : _b.min, this.toFloat(-Number.MAX_SAFE_INTEGER));\n }\n return min;\n }\n getMaxValue() {\n var _a, _b;\n let max = this.toFloat(Number.MAX_SAFE_INTEGER);\n if (((_a = this.options.valueRange) === null || _a === void 0 ? void 0 : _a.max) !== undefined) {\n max = Math.min((_b = this.options.valueRange) === null || _b === void 0 ? void 0 : _b.max, this.toFloat(Number.MAX_SAFE_INTEGER));\n }\n return max;\n }\n toFloat(value, maxFractionDigits) {\n return value / Math.pow(10, maxFractionDigits !== null && maxFractionDigits !== void 0 ? maxFractionDigits : this.valueScalingFractionDigits);\n }\n toInteger(value, maxFractionDigits) {\n return Number(value\n .toFixed(maxFractionDigits !== null && maxFractionDigits !== void 0 ? maxFractionDigits : this.valueScalingFractionDigits)\n .split('.')\n .join(''));\n }\n validateValueRange(value) {\n return value != null ? Math.min(Math.max(value, this.minValue), this.maxValue) : value;\n }\n format(value, hideNegligibleDecimalDigits = false) {\n if (value != null) {\n if (this.decimalSymbolInsertedAt !== undefined) {\n value = this.currencyFormat.normalizeDecimalSeparator(value, this.decimalSymbolInsertedAt);\n this.decimalSymbolInsertedAt = undefined;\n }\n const conformedValue = this.numberMask.conformToMask(value, this.formattedValue);\n let formattedValue;\n if (typeof conformedValue === 'object') {\n const { numberValue, fractionDigits } = conformedValue;\n let { maximumFractionDigits, minimumFractionDigits } = this.currencyFormat;\n if (this.focus) {\n minimumFractionDigits = hideNegligibleDecimalDigits\n ? fractionDigits.replace(/0+$/, '').length\n : Math.min(maximumFractionDigits, fractionDigits.length);\n }\n else if (Number.isInteger(numberValue) && !this.options.autoDecimalDigits && (this.options.precision === undefined || minimumFractionDigits === 0)) {\n minimumFractionDigits = maximumFractionDigits = 0;\n }\n formattedValue =\n this.toInteger(Math.abs(numberValue)) > Number.MAX_SAFE_INTEGER\n ? this.formattedValue\n : this.currencyFormat.format(numberValue, {\n useGrouping: this.options.useGrouping !== false && !(this.focus && this.options.hideGroupingSeparatorOnFocus),\n minimumFractionDigits,\n maximumFractionDigits\n });\n }\n else {\n formattedValue = conformedValue;\n }\n if (this.maxValue <= 0 && !this.currencyFormat.isNegative(formattedValue) && this.currencyFormat.parse(formattedValue) !== 0) {\n formattedValue = formattedValue.replace(this.currencyFormat.prefix, this.currencyFormat.negativePrefix);\n }\n if (this.minValue >= 0) {\n formattedValue = formattedValue.replace(this.currencyFormat.negativePrefix, this.currencyFormat.prefix);\n }\n if (this.options.currencyDisplay === CurrencyDisplay.hidden || (this.focus && this.options.hideCurrencySymbolOnFocus)) {\n formattedValue = formattedValue\n .replace(this.currencyFormat.negativePrefix, this.currencyFormat.minusSign !== undefined ? this.currencyFormat.minusSign : '(')\n .replace(this.currencyFormat.negativeSuffix, this.currencyFormat.minusSign !== undefined ? '' : ')')\n .replace(this.currencyFormat.prefix, '')\n .replace(this.currencyFormat.suffix, '');\n }\n this.el.value = formattedValue;\n this.numberValue = this.currencyFormat.parse(formattedValue);\n }\n else {\n this.el.value = '';\n this.numberValue = null;\n }\n this.formattedValue = this.el.value;\n this.onInput(this.getValue());\n }\n addEventListener() {\n this.el.addEventListener('input', (e) => {\n const { value, selectionStart } = this.el;\n const inputEvent = e;\n if (selectionStart && inputEvent.data && DECIMAL_SEPARATORS.includes(inputEvent.data)) {\n this.decimalSymbolInsertedAt = selectionStart - 1;\n }\n this.format(value);\n if (this.focus && selectionStart != null) {\n const getCaretPositionAfterFormat = () => {\n const { prefix, suffix, decimalSymbol, maximumFractionDigits, groupingSymbol } = this.currencyFormat;\n let caretPositionFromLeft = value.length - selectionStart;\n const newValueLength = this.formattedValue.length;\n if (this.currencyFormat.minusSign === undefined && (value.startsWith('(') || value.startsWith('-')) && !value.endsWith(')')) {\n return newValueLength - this.currencyFormat.negativeSuffix.length > 1 ? this.formattedValue.substring(selectionStart).length : 1;\n }\n if (this.formattedValue.substring(selectionStart, 1) === groupingSymbol &&\n count(this.formattedValue, groupingSymbol) === count(value, groupingSymbol) + 1) {\n return newValueLength - caretPositionFromLeft - 1;\n }\n if (newValueLength < caretPositionFromLeft) {\n return selectionStart;\n }\n if (decimalSymbol !== undefined && value.indexOf(decimalSymbol) !== -1) {\n const decimalSymbolPosition = value.indexOf(decimalSymbol) + 1;\n if (Math.abs(newValueLength - value.length) > 1 && selectionStart <= decimalSymbolPosition) {\n return this.formattedValue.indexOf(decimalSymbol) + 1;\n }\n else {\n if (!this.options.autoDecimalDigits && selectionStart > decimalSymbolPosition) {\n if (this.currencyFormat.onlyDigits(value.substring(decimalSymbolPosition)).length - 1 === maximumFractionDigits) {\n caretPositionFromLeft -= 1;\n }\n }\n }\n }\n return this.options.hideCurrencySymbolOnFocus || this.options.currencyDisplay === CurrencyDisplay.hidden\n ? newValueLength - caretPositionFromLeft\n : Math.max(newValueLength - Math.max(caretPositionFromLeft, suffix.length), prefix.length);\n };\n this.setCaretPosition(getCaretPositionAfterFormat());\n }\n });\n this.el.addEventListener('focus', () => {\n this.focus = true;\n this.numberValueOnFocus = this.numberValue;\n setTimeout(() => {\n const { value, selectionStart, selectionEnd } = this.el;\n this.format(value, this.options.hideNegligibleDecimalDigitsOnFocus);\n if (selectionStart != null && selectionEnd != null && Math.abs(selectionStart - selectionEnd) > 0) {\n this.setCaretPosition(0, this.el.value.length);\n }\n else if (selectionStart != null) {\n const caretPositionOnFocus = this.getCaretPositionOnFocus(value, selectionStart);\n this.setCaretPosition(caretPositionOnFocus);\n }\n });\n });\n this.el.addEventListener('blur', () => {\n this.focus = false;\n this.format(this.currencyFormat.format(this.validateValueRange(this.numberValue)));\n if (this.numberValueOnFocus !== this.numberValue) {\n this.onChange(this.getValue());\n }\n });\n }\n getCaretPositionOnFocus(value, selectionStart) {\n if (this.numberValue == null) {\n return selectionStart;\n }\n const { prefix, negativePrefix, suffix, negativeSuffix, groupingSymbol, currency } = this.currencyFormat;\n const isNegative = this.numberValue < 0;\n const currentPrefix = isNegative ? negativePrefix : prefix;\n const prefixLength = currentPrefix.length;\n if (this.options.hideCurrencySymbolOnFocus || this.options.currencyDisplay === CurrencyDisplay.hidden) {\n if (isNegative) {\n if (selectionStart <= 1) {\n return 1;\n }\n else if (value.endsWith(')') && selectionStart > value.indexOf(')')) {\n return this.formattedValue.length - 1;\n }\n }\n }\n else {\n const suffixLength = isNegative ? negativeSuffix.length : suffix.length;\n if (selectionStart >= value.length - suffixLength) {\n return this.formattedValue.length - suffixLength;\n }\n else if (selectionStart < prefixLength) {\n return prefixLength;\n }\n }\n let result = selectionStart;\n if (this.options.hideCurrencySymbolOnFocus &&\n this.options.currencyDisplay !== CurrencyDisplay.hidden &&\n selectionStart >= prefixLength &&\n currency !== undefined &&\n currentPrefix.includes(currency)) {\n result -= prefixLength;\n if (isNegative) {\n result += 1;\n }\n }\n if (this.options.hideGroupingSeparatorOnFocus && groupingSymbol !== undefined) {\n result -= count(value.substring(0, selectionStart), groupingSymbol);\n }\n return result;\n }\n setCaretPosition(start, end = start) {\n this.el.setSelectionRange(start, end);\n }\n}\n\nconst findInput = (el) => ((el === null || el === void 0 ? void 0 : el.matches('input')) ? el : el === null || el === void 0 ? void 0 : el.querySelector('input'));\nfunction useCurrencyInput(options, autoEmit) {\n var _a, _b, _c, _d;\n let currencyInput;\n const inputRef = ref(null);\n const formattedValue = ref(null);\n const numberValue = ref(null);\n const vm = getCurrentInstance();\n const emit = (vm === null || vm === void 0 ? void 0 : vm.emit) || ((_b = (_a = vm === null || vm === void 0 ? void 0 : vm.proxy) === null || _a === void 0 ? void 0 : _a.$emit) === null || _b === void 0 ? void 0 : _b.bind(vm === null || vm === void 0 ? void 0 : vm.proxy));\n const props = ((vm === null || vm === void 0 ? void 0 : vm.props) || ((_c = vm === null || vm === void 0 ? void 0 : vm.proxy) === null || _c === void 0 ? void 0 : _c.$props));\n const isVue3 = version.startsWith('3');\n const lazyModel = isVue3 && ((_d = vm === null || vm === void 0 ? void 0 : vm.attrs.modelModifiers) === null || _d === void 0 ? void 0 : _d.lazy);\n const modelValue = computed(() => props === null || props === void 0 ? void 0 : props[isVue3 ? 'modelValue' : 'value']);\n const inputEvent = isVue3 ? 'update:modelValue' : 'input';\n const changeEvent = lazyModel ? 'update:modelValue' : 'change';\n watch(inputRef, (value) => {\n var _a;\n if (value) {\n const el = findInput((_a = value === null || value === void 0 ? void 0 : value.$el) !== null && _a !== void 0 ? _a : value);\n if (el) {\n currencyInput = new CurrencyInput({\n el,\n options,\n onInput: (value) => {\n if (!lazyModel && autoEmit !== false && modelValue.value !== value.number) {\n emit === null || emit === void 0 ? void 0 : emit(inputEvent, value.number);\n }\n numberValue.value = value.number;\n formattedValue.value = value.formatted;\n },\n onChange: (value) => {\n if (autoEmit !== false) {\n emit === null || emit === void 0 ? void 0 : emit(changeEvent, value.number);\n }\n }\n });\n currencyInput.setValue(modelValue.value);\n }\n else {\n console.error('No input element found. Please make sure that the \"inputRef\" template ref is properly assigned.');\n }\n }\n else {\n currencyInput = null;\n }\n });\n return {\n inputRef,\n numberValue,\n formattedValue,\n setValue: (value) => currencyInput === null || currencyInput === void 0 ? void 0 : currencyInput.setValue(value),\n setOptions: (options) => currencyInput === null || currencyInput === void 0 ? void 0 : currencyInput.setOptions(options)\n };\n}\n\nexport { CurrencyDisplay, ValueScaling, useCurrencyInput };\n","<script lang=\"ts\" setup>\n import isEmpty from 'lodash-es/isEmpty';\n import { computed, useAttrs, watch } from 'vue';\n import { CurrencyDisplay, CurrencyInputOptions, useCurrencyInput } from 'vue-currency-input';\n\n import Icon from '../Icon/Icon.vue';\n import Input, { InputProps } from '../Input/Input.vue';\n\n const CURRENCY_INPUT_BASE_OPTIONS: CurrencyInputOptions = {\n currency: 'USD',\n currencyDisplay: CurrencyDisplay.hidden,\n precision: 2,\n hideCurrencySymbolOnFocus: true,\n hideGroupingSeparatorOnFocus: true,\n hideNegligibleDecimalDigitsOnFocus: false,\n autoDecimalDigits: true,\n useGrouping: true,\n accountingSign: false,\n };\n\n export interface CurrencyInputProps extends Omit<InputProps, 'modelValue' | 'type'> {\n inputOptions?: Partial<CurrencyInputOptions>;\n modelValue: string | null;\n }\n\n const props = withDefaults(defineProps<CurrencyInputProps>(), {\n // Todo: this default should be removed if its a required prop...\n modelValue: '',\n errorText: undefined,\n hintText: undefined,\n label: undefined,\n id: undefined,\n inputOptions: undefined,\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when the input value changes.\n */\n (e: 'update:model-value', v: CurrencyInputProps['modelValue']): void;\n }>();\n\n const attrs = useAttrs();\n\n const currencyInputOptions = computed(() => {\n return {\n ...CURRENCY_INPUT_BASE_OPTIONS,\n ...(!isEmpty(props.inputOptions) ? props.inputOptions : {}),\n };\n });\n\n const { inputRef: inputEl, setOptions, setValue, numberValue } = useCurrencyInput(currencyInputOptions.value, false);\n\n defineExpose({ inputEl });\n\n watch(\n () => numberValue.value,\n (newValue: number | null | string) => {\n let stringValue: string | null;\n\n if (Object.is(newValue, -0)) {\n if (typeof currencyInputOptions.value.precision === 'number') {\n stringValue = '-0.' + '0'.repeat(currencyInputOptions.value.precision);\n } else {\n stringValue = '-0.' + '0'.repeat(currencyInputOptions.value.precision?.min || 0);\n }\n } else {\n stringValue = typeof newValue === 'number' ? newValue.toFixed(2) : newValue;\n }\n\n emit('update:model-value', stringValue);\n },\n );\n\n watch(\n () => props.modelValue,\n (newValue: number | null | string) => {\n let numberValue: number | null;\n\n if (typeof newValue === 'string') {\n numberValue = parseFloat(newValue || '0');\n } else {\n numberValue = newValue;\n }\n\n setValue(numberValue);\n },\n );\n\n watch(\n () => props.inputOptions,\n () => {\n setOptions(currencyInputOptions.value);\n },\n );\n\n const inputAttrs = computed(() => {\n const { inputOptions: _, ...propsWithoutCurrencyInputOptions } = props;\n\n return { ...propsWithoutCurrencyInputOptions, ...attrs } as typeof attrs & InputProps;\n });\n</script>\n\n<template>\n <Input\n v-bind=\"inputAttrs\"\n ref=\"inputEl\"\n class=\"stash-currency-input\"\n type=\"text\"\n data-test=\"stash-currency-input\"\n inputmode=\"decimal\"\n >\n <template #prepend>\n <Icon name=\"sign-dollar\" />\n </template>\n </Input>\n</template>\n"],"names":["CurrencyDisplay","ValueScaling","escapeRegExp","str","removeLeadingZeros","count","search","substringBefore","DECIMAL_SEPARATORS","INTEGER_PATTERN","CurrencyFormat","options","_a","_b","_c","_d","_e","_f","currency","currencyDisplay","locale","precision","accountingSign","useGrouping","numberFormat","formatParts","type","i","getPrefix","getSuffix","negative","fraction","match","formattedNumber","integerNumber","value","from","s","digit","index","AbstractInputMask","currencyFormat","DefaultInputMask","previousConformedValue","isEmptyNegativeValue","checkIncompleteValue","incompleteValue","integer","integerDigits","fractionDigits","invalidFraction","invalidNegativeValue","AutoDecimalDigitsInputMask","numberValue","DEFAULT_OPTIONS","CurrencyInput","args","newValue","valueScalingOptions","min","max","maxFractionDigits","hideNegligibleDecimalDigits","conformedValue","formattedValue","maximumFractionDigits","minimumFractionDigits","e","selectionStart","inputEvent","getCaretPositionAfterFormat","prefix","suffix","decimalSymbol","groupingSymbol","caretPositionFromLeft","newValueLength","decimalSymbolPosition","selectionEnd","caretPositionOnFocus","negativePrefix","negativeSuffix","isNegative","currentPrefix","prefixLength","suffixLength","result","start","end","findInput","el","useCurrencyInput","autoEmit","currencyInput","inputRef","ref","vm","getCurrentInstance","emit","props","isVue3","version","lazyModel","modelValue","computed","changeEvent","watch","CURRENCY_INPUT_BASE_OPTIONS","__props","__emit","attrs","useAttrs","currencyInputOptions","isEmpty","inputEl","setOptions","setValue","__expose","stringValue","inputAttrs","_","propsWithoutCurrencyInputOptions"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { AllowedComponentProps } from 'vue';
|
|
2
|
-
import { ComponentCustomProps } from 'vue';
|
|
3
1
|
import { ComponentOptionsMixin } from 'vue';
|
|
2
|
+
import { ComponentProvideOptions } from 'vue';
|
|
4
3
|
import { CurrencyInputOptions } from 'vue-currency-input';
|
|
5
4
|
import { DefineComponent } from 'vue';
|
|
6
5
|
import { ExtractPropTypes } from 'vue';
|
|
7
6
|
import { PropType } from 'vue';
|
|
7
|
+
import { PublicProps } from 'vue';
|
|
8
8
|
import { Ref } from 'vue';
|
|
9
|
-
import { VNodeProps } from 'vue';
|
|
10
9
|
|
|
11
10
|
declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
12
11
|
|
|
@@ -34,34 +33,34 @@ export declare interface CurrencyInputProps extends Omit<InputProps, 'modelValue
|
|
|
34
33
|
modelValue: string | null;
|
|
35
34
|
}
|
|
36
35
|
|
|
37
|
-
declare const _default: DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<CurrencyInputProps>, {
|
|
36
|
+
declare const _default: DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<CurrencyInputProps>, {
|
|
38
37
|
modelValue: string;
|
|
39
38
|
errorText: undefined;
|
|
40
39
|
hintText: undefined;
|
|
41
40
|
label: undefined;
|
|
42
41
|
id: undefined;
|
|
43
42
|
inputOptions: undefined;
|
|
44
|
-
}
|
|
45
|
-
inputEl: Ref<any>;
|
|
46
|
-
},
|
|
43
|
+
}>>, {
|
|
44
|
+
inputEl: Ref<any, any>;
|
|
45
|
+
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
47
46
|
"update:model-value": (v: string | null) => void;
|
|
48
|
-
}, string,
|
|
47
|
+
}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<CurrencyInputProps>, {
|
|
49
48
|
modelValue: string;
|
|
50
49
|
errorText: undefined;
|
|
51
50
|
hintText: undefined;
|
|
52
51
|
label: undefined;
|
|
53
52
|
id: undefined;
|
|
54
53
|
inputOptions: undefined;
|
|
55
|
-
}>>> & {
|
|
54
|
+
}>>> & Readonly<{
|
|
56
55
|
"onUpdate:model-value"?: ((v: string | null) => any) | undefined;
|
|
57
|
-
}
|
|
56
|
+
}>, {
|
|
58
57
|
label: string;
|
|
59
58
|
id: string;
|
|
60
59
|
errorText: string;
|
|
61
60
|
hintText: string;
|
|
62
61
|
modelValue: string | null;
|
|
63
62
|
inputOptions: Partial<CurrencyInputOptions>;
|
|
64
|
-
}, {}>;
|
|
63
|
+
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
|
|
65
64
|
export default _default;
|
|
66
65
|
|
|
67
66
|
declare interface InputProps {
|