@leaflink/stash 49.3.1 → 49.3.3

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.
Files changed (44) hide show
  1. package/dist/AddressSelect.js +2 -2
  2. package/dist/Badge.vue.d.ts +1 -1
  3. package/dist/CurrencyInput.js +4 -3
  4. package/dist/CurrencyInput.js.map +1 -1
  5. package/dist/CurrencyInput.vue.d.ts +4 -0
  6. package/dist/DataViewFilters.js +68 -65
  7. package/dist/DataViewFilters.js.map +1 -1
  8. package/dist/DataViewFilters.vue.d.ts +12 -5
  9. package/dist/DatePicker.js +2 -2
  10. package/dist/Field.js +2 -2
  11. package/dist/Field.vue.d.ts +7 -0
  12. package/dist/{Field.vue_vue_type_script_setup_true_lang-e1e4ff03.js → Field.vue_vue_type_script_setup_true_lang-3ea26741.js} +22 -19
  13. package/dist/Field.vue_vue_type_script_setup_true_lang-3ea26741.js.map +1 -0
  14. package/dist/FilterSelect.js +2 -2
  15. package/dist/Filters.js +2 -2
  16. package/dist/Filters.vue.d.ts +38 -0
  17. package/dist/InlineEdit.js +2 -2
  18. package/dist/Input.js +61 -59
  19. package/dist/Input.js.map +1 -1
  20. package/dist/Input.vue.d.ts +7 -0
  21. package/dist/InputOptions.js +52 -49
  22. package/dist/InputOptions.js.map +1 -1
  23. package/dist/InputOptions.vue.d.ts +7 -0
  24. package/dist/Label.js +1 -1
  25. package/dist/Label.vue.d.ts +6 -0
  26. package/dist/Label.vue_vue_type_script_setup_true_lang-b6ba2f02.js +43 -0
  27. package/dist/Label.vue_vue_type_script_setup_true_lang-b6ba2f02.js.map +1 -0
  28. package/dist/ListView.js +2 -2
  29. package/dist/ListView.vue.d.ts +76 -19
  30. package/dist/RadioGroup.js +2 -2
  31. package/dist/SearchBar.js +2 -2
  32. package/dist/Select.js +82 -81
  33. package/dist/Select.js.map +1 -1
  34. package/dist/SelectStatus.js +2 -2
  35. package/dist/TextEditor.js +6 -6
  36. package/dist/TextEditor.js.map +1 -1
  37. package/dist/Textarea.js +38 -34
  38. package/dist/Textarea.js.map +1 -1
  39. package/dist/Textarea.vue.d.ts +7 -0
  40. package/dist/components.css +2 -2
  41. package/package.json +1 -1
  42. package/dist/Field.vue_vue_type_script_setup_true_lang-e1e4ff03.js.map +0 -1
  43. package/dist/Label.vue_vue_type_script_setup_true_lang-4b02087f.js +0 -38
  44. package/dist/Label.vue_vue_type_script_setup_true_lang-4b02087f.js.map +0 -1
@@ -25,8 +25,8 @@ import "./Icon.js";
25
25
  import "./index-9e1095ef.js";
26
26
  import "./Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js";
27
27
  import "./_plugin-vue_export-helper-dad06003.js";
28
- import "./Field.vue_vue_type_script_setup_true_lang-e1e4ff03.js";
29
- import "./Label.vue_vue_type_script_setup_true_lang-4b02087f.js";
28
+ import "./Field.vue_vue_type_script_setup_true_lang-3ea26741.js";
29
+ import "./Label.vue_vue_type_script_setup_true_lang-b6ba2f02.js";
30
30
  import "./locale.js";
31
31
  const _ = "address-select-", ye = /* @__PURE__ */ S({
32
32
  __name: "AddressSelect",
@@ -113,9 +113,9 @@ declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes
113
113
  right?: number | undefined;
114
114
  };
115
115
  content: string | number;
116
+ isDisabled: boolean;
116
117
  position: "inline" | "top-right";
117
118
  variant: "standard" | "dot";
118
- isDisabled: boolean;
119
119
  showZero: boolean;
120
120
  }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
121
121
  default?(_: {}): any;
@@ -11,8 +11,8 @@ import "./utils/i18n.js";
11
11
  import "./constants.js";
12
12
  import "./locale.js";
13
13
  import "lodash-es/get";
14
- import "./Field.vue_vue_type_script_setup_true_lang-e1e4ff03.js";
15
- import "./Label.vue_vue_type_script_setup_true_lang-4b02087f.js";
14
+ import "./Field.vue_vue_type_script_setup_true_lang-3ea26741.js";
15
+ import "./Label.vue_vue_type_script_setup_true_lang-b6ba2f02.js";
16
16
  /**
17
17
  * Vue Currency Input 3.1.0
18
18
  * (c) 2018-2024 Matthias Stiller
@@ -333,7 +333,8 @@ const gi = /* @__PURE__ */ A({
333
333
  label: { default: void 0 },
334
334
  showOptionalInLabel: { type: Boolean },
335
335
  autocomplete: {},
336
- value: {}
336
+ value: {},
337
+ disabled: { type: Boolean }
337
338
  },
338
339
  emits: ["update:model-value"],
339
340
  setup(s, { expose: i, emit: t }) {
@@ -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 = 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":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,IAAIA;AAAA,CACH,SAAUA,GAAiB;AACxB,EAAAA,EAAgB,SAAY,UAC5BA,EAAgB,eAAkB,gBAClCA,EAAgB,OAAU,QAC1BA,EAAgB,OAAU,QAC1BA,EAAgB,SAAY;AAChC,GAAGA,MAAoBA,IAAkB,CAAE,EAAC;AAC5C,IAAIC;AAAA,CACH,SAAUA,GAAc;AACrB,EAAAA,EAAa,YAAe,aAC5BA,EAAa,YAAe,aAC5BA,EAAa,WAAc,YAC3BA,EAAa,WAAc;AAC/B,GAAGA,MAAiBA,IAAe,CAAE,EAAC;AAEtC,MAAMC,IAAe,CAACC,MACXA,EAAI,QAAQ,uBAAuB,MAAM,GAE9CC,IAAqB,CAACD,MACjBA,EAAI,QAAQ,gBAAgB,IAAI,GAErCE,IAAQ,CAACF,GAAKG,OACRH,EAAI,MAAM,IAAI,OAAOD,EAAaI,CAAM,GAAG,GAAG,CAAC,KAAK,CAAA,GAAI,QAE9DC,IAAkB,CAACJ,GAAKG,MACnBH,EAAI,UAAU,GAAGA,EAAI,QAAQG,CAAM,CAAC,GAGzCE,IAAqB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GACMC,IAAkB;AACxB,MAAMC,EAAe;AAAA,EACjB,YAAYC,GAAS;AACjB,QAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC;AACxB,UAAM,EAAE,UAAAC,GAAU,iBAAAC,GAAiB,QAAAC,GAAQ,WAAAC,GAAW,gBAAAC,GAAgB,aAAAC,EAAa,IAAGZ;AACtF,SAAK,SAASS,GACd,KAAK,UAAU;AAAA,MACX,UAAAF;AAAA,MACA,aAAAK;AAAA,MACA,OAAO;AAAA,MACP,cAAcD,IAAiB,eAAe;AAAA,MAC9C,iBAAiBH,MAAoBnB,EAAgB,SAASmB,IAAkB;AAAA,IAC5F;AACQ,UAAMK,IAAe,IAAI,KAAK,aAAaJ,GAAQ,KAAK,OAAO,GACzDK,IAAcD,EAAa,cAAc,MAAM;AACrD,SAAK,YAAYZ,IAAKa,EAAY,KAAK,CAAC,EAAE,MAAAC,QAAWA,MAAS,UAAU,OAAO,QAAQd,MAAO,SAAS,SAASA,EAAG,OACnH,KAAK,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,CAACe,MAAMA,EAAE,eAAeP,CAAM,CAAC,GAChF,KAAK,iBAAiBP,IAAKY,EAAY,KAAK,CAAC,EAAE,MAAAC,QAAWA,MAAS,SAAS,OAAO,QAAQb,MAAO,SAAS,SAASA,EAAG,OACvH,KAAK,kBAAkBC,IAAKW,EAAY,KAAK,CAAC,EAAE,MAAAC,QAAWA,MAAS,OAAO,OAAO,QAAQZ,MAAO,SAAS,SAASA,EAAG,OACtH,KAAK,aAAaC,IAAKS,EAAa,cAAc,EAAE,EAAE,KAAK,CAAC,EAAE,MAAAE,EAAM,MAAKA,MAAS,WAAW,OAAO,QAAQX,MAAO,SAAS,SAASA,EAAG,OACpI,KAAK,kBAAkB,SACvB,KAAK,wBAAwB,KAAK,wBAAwB,IAErD,OAAOM,KAAc,WAC1B,KAAK,wBAAwB,KAAK,wBAAwBA,KAG1D,KAAK,yBAAyBL,IAAKK,KAAc,OAA+B,SAASA,EAAU,SAAS,QAAQL,MAAO,SAASA,IAAKQ,EAAa,gBAAiB,EAAC,uBACxK,KAAK,yBAAyBP,IAAKI,KAAc,OAA+B,SAASA,EAAU,SAAS,QAAQJ,MAAO,SAASA,IAAKO,EAAa,gBAAiB,EAAC;AAE5K,UAAMI,IAAY,CAACzB,MACRI,EAAgBJ,GAAK,KAAK,OAAO,CAAC,CAAC,GAExC0B,IAAY,CAAC1B,MACRA,EAAI,UAAUA,EAAI,YAAY,KAAK,gBAAgB,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC;AAElG,SAAK,SAASyB,EAAUJ,EAAa,OAAO,CAAC,CAAC,GAC9C,KAAK,SAASK,EAAUL,EAAa,OAAO,CAAC,CAAC,GAC9C,KAAK,iBAAiBI,EAAUJ,EAAa,OAAO,EAAE,CAAC,GACvD,KAAK,iBAAiBK,EAAUL,EAAa,OAAO,EAAE,CAAC;AAAA,EAC1D;AAAA,EACD,MAAMrB,GAAK;AACP,QAAIA,GAAK;AACL,YAAM2B,IAAW,KAAK,WAAW3B,CAAG;AACpC,MAAAA,IAAM,KAAK,gBAAgBA,CAAG,GAC9BA,IAAM,KAAK,cAAcA,GAAK2B,CAAQ,GACtC3B,IAAM,KAAK,kBAAkBA,CAAG;AAChC,YAAM4B,IAAW,KAAK,gBAAgB,MAAM7B,EAAa,KAAK,aAAa,cAAc,IACnF8B,IAAQ,KAAK,uBAAuB7B,CAAG,EAAE,MAAM,IAAI,OAAO,IAAIM,IAAkBsB,IAAW,CAAC;AAClG,UAAIC,KAAS,KAAK,qBAAqB,KAAK,gBAAgB7B,EAAI,MAAM,KAAK,aAAa,EAAE,CAAC,IAAIA,GAAK,OAAO6B,EAAM,CAAC,CAAC,CAAC;AAChH,eAAO,CAAO,GAAGF,IAAW,MAAM,KAAK,KAAK,WAAWE,EAAM,CAAC,CAAC,KAAK,KAAK,WAAWA,EAAM,CAAC,KAAK,EAAE;AAAA;AAG1G,WAAO;AAAA,EACV;AAAA,EACD,qBAAqBC,GAAiBC,GAAe;AACjD,UAAMvB,IAAU,EAAE,GAAG,KAAK,SAAS,uBAAuB;AAC1D,WAAO;AAAA,MACH,KAAK,cAAc,KAAK,gBAAgBuB,EAAc,eAAe,KAAK,QAAQ,EAAE,GAAGvB,GAAS,aAAa,GAAI,CAAE,CAAC,GAAG,EAAK;AAAA,MAC5H,KAAK,cAAc,KAAK,gBAAgBuB,EAAc,eAAe,KAAK,QAAQ,EAAE,GAAGvB,GAAS,aAAa,GAAK,CAAE,CAAC,GAAG,EAAK;AAAA,IACzI,EAAU,SAASsB,CAAe;AAAA,EAC7B;AAAA,EACD,OAAOE,GAAOxB,IAAU;AAAA,IACpB,uBAAuB,KAAK;AAAA,IAC5B,uBAAuB,KAAK;AAAA,EACpC,GAAO;AACC,WAAOwB,KAAS,OAAOA,EAAM,eAAe,KAAK,QAAQ,EAAE,GAAG,KAAK,SAAS,GAAGxB,EAAS,CAAA,IAAI;AAAA,EAC/F;AAAA,EACD,WAAWR,GAAK;AACZ,WAAO,GAAG,KAAK,OAAO,CAAC,IAAI,KAAK,gBAAgB,KAAK,iBAAiBA,EAAI,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,KAAK,qBAAqB;AAAA,EAClI;AAAA,EACD,qBAAqBA,GAAK;AACtB,WAAO,CAAC,CAAC,KAAK,gBAAgB,KAAK,uBAAuBA,CAAG,CAAC,EAAE,MAAM,IAAI,OAAO,IAAIM,IAAkBP,EAAa,KAAK,aAAa,IAAI,CAAC;AAAA,EAC9I;AAAA,EACD,WAAWC,GAAK;AACZ,WAAQA,EAAI,WAAW,KAAK,cAAc,KACrC,KAAK,cAAc,WAAcA,EAAI,WAAW,GAAG,KAAKA,EAAI,WAAW,GAAG,MAC1E,KAAK,cAAc,UAAaA,EAAI,QAAQ,KAAK,KAAK,SAAS,EAAE,WAAW,KAAK,SAAS;AAAA,EAClG;AAAA,EACD,eAAeA,GAAK2B,GAAU;AAC1B,WAAO,GAAGA,IAAW,KAAK,iBAAiB,KAAK,SAAS3B,IAAM2B,IAAW,KAAK,iBAAiB,KAAK;AAAA,EACxG;AAAA,EACD,uBAAuB3B,GAAK;AACxB,WAAO,KAAK,mBAAmB,SAAYA,EAAI,QAAQ,IAAI,OAAOD,EAAa,KAAK,cAAc,GAAG,GAAG,GAAG,EAAE,IAAIC;AAAA,EACpH;AAAA,EACD,kBAAkBA,GAAK;AACnB,WAAI,KAAK,cAAc,SACZA,EAAI,QAAQ,KAAK,KAAK,SAAS,EAAE,QAAQ,KAAK,WAAW,EAAE,IAG3DA,EAAI,QAAQ,UAAU,EAAE;AAAA,EAEtC;AAAA,EACD,cAAcA,GAAK2B,GAAU;AACzB,WAAO3B,EAAI,QAAQ2B,IAAW,KAAK,iBAAiB,KAAK,QAAQ,EAAE,EAAE,QAAQA,IAAW,KAAK,iBAAiB,KAAK,QAAQ,EAAE;AAAA,EAChI;AAAA,EACD,0BAA0B3B,GAAKiC,GAAM;AACjC,WAAA5B,EAAmB,QAAQ,CAAC6B,MAAM;AAC9B,MAAAlC,IAAMA,EAAI,UAAU,GAAGiC,CAAI,IAAIjC,EAAI,UAAUiC,CAAI,EAAE,QAAQC,GAAG,KAAK,aAAa;AAAA,IAC5F,CAAS,GACMlC;AAAA,EACV;AAAA,EACD,gBAAgBA,GAAK;AACjB,WAAI,KAAK,OAAO,CAAC,MAAM,OACnB,KAAK,OAAO,QAAQ,CAACmC,GAAOC,MAAU;AAClC,MAAApC,IAAMA,EAAI,QAAQ,IAAI,OAAOmC,GAAO,GAAG,GAAG,OAAOC,CAAK,CAAC;AAAA,IACvE,CAAa,GAEEpC;AAAA,EACV;AAAA,EACD,WAAWA,GAAK;AACZ,WAAO,KAAK,gBAAgBA,CAAG,EAAE,QAAQ,QAAQ,EAAE;AAAA,EACtD;AAAA,EACD,iBAAiBA,GAAK;AAClB,WAAOA,EAAI,QAAQ,IAAI,OAAO,KAAK,KAAK,OAAO,KAAK,EAAE,OAAO,GAAG,GAAG,EAAE;AAAA,EACxE;AACL;AAEA,MAAMqC,EAAkB;AAAA,EACpB,YAAYC,GAAgB;AACxB,SAAK,iBAAiBA;AAAA,EACzB;AACL;AACA,MAAMC,UAAyBF,EAAkB;AAAA,EAC7C,cAAcrC,GAAKwC,IAAyB,IAAI;AAC5C,UAAMb,IAAW,KAAK,eAAe,WAAW3B,CAAG,GAC7CyC,IAAuB,CAACzC,MAAQA,MAAQ,MAC1C2B,KACA,EAAE,KAAK,eAAe,cAAc,SAC9Ba,MAA2B,KAAK,eAAe,iBAAiB,KAAK,eAAe,iBACpFA,MAA2B,KAAK,eAAe,iBACnDE,IAAuB,CAAC1C,MAAQ;AAClC,UAAIyC,EAAqBzC,CAAG;AACxB,eAAO;AAEN,UAAI,KAAK,eAAe,wBAAwB,GAAG;AACpD,YAAI,KAAK,eAAe,qBAAqBA,CAAG;AAC5C,iBAAOA;AAEN,YAAIA,EAAI,WAAW,KAAK,eAAe,aAAa;AACrD,iBAAO,KAAK,eAAe,WAAWA,CAAG;AAAA;AAGjD,aAAO;AAAA,IACnB;AACQ,QAAIgC,IAAQhC;AACZ,IAAAgC,IAAQ,KAAK,eAAe,cAAcA,GAAOL,CAAQ,GACzDK,IAAQ,KAAK,eAAe,kBAAkBA,CAAK;AACnD,UAAMW,IAAkBD,EAAqBV,CAAK;AAClD,QAAIW,KAAmB;AACnB,aAAO,KAAK,eAAe,eAAeA,GAAiBhB,CAAQ;AAEvE,UAAM,CAACiB,GAAS,GAAGhB,CAAQ,IAAII,EAAM,MAAM,KAAK,eAAe,aAAa,GACtEa,IAAgB5C,EAAmB,KAAK,eAAe,WAAW2C,CAAO,CAAC,GAC1EE,IAAiB,KAAK,eAAe,WAAWlB,EAAS,KAAK,EAAE,CAAC,EAAE,UAAU,GAAG,KAAK,eAAe,qBAAqB,GACzHmB,IAAkBnB,EAAS,SAAS,KAAKkB,EAAe,WAAW,GACnEE,IAAuBH,MAAkB,MAC3ClB,MACC,KAAK,eAAe,cAAc,SAC7Ba,MAA2BxC,EAAI,MAAM,GAAG,EAAE,IAAI,KAAK,eAAe,iBAClEwC,MAA2BxC,EAAI,MAAM,GAAG,EAAE;AACpD,WAAI+C,KAAmBC,KAAwBP,EAAqBI,CAAa,IACtEL,IAEFK,EAAc,MAAM,KAAK,IACvB;AAAA,MACH,aAAa,CAAO,GAAGlB,IAAW,MAAM,KAAKkB,KAAiBC;AAAA,MAC9D,gBAAAA;AAAA,IAChB,IAGmB;AAAA,EAEd;AACL;AACA,MAAMG,UAAmCZ,EAAkB;AAAA,EACvD,cAAcrC,GAAKwC,IAAyB,IAAI;AAC5C,QAAIxC,MAAQ,MACP,KAAK,eAAe,MAAMwC,CAAsB,MAAM,KACnD,KAAK,eAAe,cAAcA,GAAwB,EAAI,EAAE,MAAM,GAAG,EAAE,MAAM,KAAK,eAAe,cAAcxC,GAAK,EAAI;AAChI,aAAO;AAEX,UAAM2B,IAAW,KAAK,eAAe,WAAW3B,CAAG,GAC7CkD,IAAc,KAAK,eAAe,kBAAkBlD,CAAG,MAAM,KAC7D,KACA,CAAO,GAAG2B,IAAW,MAAM,KAAK1B,EAAmB,KAAK,eAAe,WAAWD,CAAG,CAAC,MAAO,KAAK,IAAI,IAAI,KAAK,eAAe,qBAAqB;AACzJ,WAAO;AAAA,MACH,aAAAkD;AAAA,MACA,gBAAgBA,EAAY,QAAQ,KAAK,eAAe,qBAAqB,EAAE,MAAM,CAAC,KAAK,eAAe,qBAAqB;AAAA,IAC3I;AAAA,EACK;AACL;AAEA,MAAMC,IAAkB;AAAA,EACpB,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,8BAA8B;AAAA,EAC9B,2BAA2B;AAAA,EAC3B,oCAAoC;AAAA,EACpC,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAClB;AACA,MAAMC,EAAc;AAAA,EAChB,YAAYC,GAAM;AACd,SAAK,KAAKA,EAAK,IACf,KAAK,UAAUA,EAAK,SACpB,KAAK,WAAWA,EAAK,UACrB,KAAK,iBAAgB,GACrB,KAAK,KAAKA,EAAK,OAAO;AAAA,EACzB;AAAA,EACD,WAAW7C,GAAS;AAChB,SAAK,KAAKA,CAAO,GACjB,KAAK,OAAO,KAAK,eAAe,OAAO,KAAK,mBAAmB,KAAK,WAAW,CAAC,CAAC,GACjF,KAAK,SAAS,KAAK,SAAU,CAAA;AAAA,EAChC;AAAA,EACD,WAAW;AAEP,WAAO,EAAE,QADW,KAAK,gBAAgB,KAAK,eAAe,OAAO,KAAK,UAAU,KAAK,aAAa,KAAK,YAAY,IAAI,KAAK,aACjG,WAAW,KAAK,eAAc;AAAA,EAC/D;AAAA,EACD,SAASwB,GAAO;AACZ,UAAMsB,IAAW,KAAK,iBAAiB,UAAatB,KAAS,OAAO,KAAK,QAAQA,GAAO,KAAK,YAAY,IAAIA;AAC7G,IAAIsB,MAAa,KAAK,gBAClB,KAAK,OAAO,KAAK,eAAe,OAAO,KAAK,mBAAmBA,CAAQ,CAAC,CAAC,GACzE,KAAK,SAAS,KAAK,SAAU,CAAA;AAAA,EAEpC;AAAA,EACD,KAAK9C,GAAS;AACV,SAAK,UAAU;AAAA,MACX,GAAG2C;AAAA,MACH,GAAG3C;AAAA,IACf,GACY,KAAK,QAAQ,sBACb,KAAK,QAAQ,qCAAqC,KAEjD,KAAK,GAAG,aAAa,WAAW,KACjC,KAAK,GAAG,aAAa,aAAa,KAAK,QAAQ,oBAAoB,YAAY,SAAS,GAE5F,KAAK,iBAAiB,IAAID,EAAe,KAAK,OAAO,GACrD,KAAK,aAAa,KAAK,QAAQ,oBAAoB,IAAI0C,EAA2B,KAAK,cAAc,IAAI,IAAIV,EAAiB,KAAK,cAAc;AACjJ,UAAMgB,IAAsB;AAAA,MACxB,CAACzD,EAAa,SAAS,GAAG,KAAK,eAAe;AAAA,MAC9C,CAACA,EAAa,SAAS,GAAG;AAAA,MAC1B,CAACA,EAAa,QAAQ,GAAG;AAAA,MACzB,CAACA,EAAa,QAAQ,GAAG;AAAA,IACrC;AACQ,SAAK,eAAe,KAAK,QAAQ,eAAeyD,EAAoB,KAAK,QAAQ,YAAY,IAAI,QACjG,KAAK,6BACD,KAAK,iBAAiB,UAAa,KAAK,QAAQ,iBAAiBzD,EAAa,YACxE,KAAK,eAAe,KAAK,eAAe,wBACxC,KAAK,eAAe,uBAC9B,KAAK,WAAW,KAAK,eACrB,KAAK,WAAW,KAAK;EACxB;AAAA,EACD,cAAc;AACV,QAAIW,GAAIC;AACR,QAAI8C,IAAM,KAAK,QAAQ,CAAC,OAAO,gBAAgB;AAC/C,aAAM/C,IAAK,KAAK,QAAQ,gBAAgB,QAAQA,MAAO,SAAS,SAASA,EAAG,SAAS,WACjF+C,IAAM,KAAK,KAAK9C,IAAK,KAAK,QAAQ,gBAAgB,QAAQA,MAAO,SAAS,SAASA,EAAG,KAAK,KAAK,QAAQ,CAAC,OAAO,gBAAgB,CAAC,IAE9H8C;AAAA,EACV;AAAA,EACD,cAAc;AACV,QAAI/C,GAAIC;AACR,QAAI+C,IAAM,KAAK,QAAQ,OAAO,gBAAgB;AAC9C,aAAMhD,IAAK,KAAK,QAAQ,gBAAgB,QAAQA,MAAO,SAAS,SAASA,EAAG,SAAS,WACjFgD,IAAM,KAAK,KAAK/C,IAAK,KAAK,QAAQ,gBAAgB,QAAQA,MAAO,SAAS,SAASA,EAAG,KAAK,KAAK,QAAQ,OAAO,gBAAgB,CAAC,IAE7H+C;AAAA,EACV;AAAA,EACD,QAAQzB,GAAO0B,GAAmB;AAC9B,WAAO1B,IAAQ,KAAK,IAAI,IAAI0B,KAAiF,KAAK,0BAA0B;AAAA,EAC/I;AAAA,EACD,UAAU1B,GAAO0B,GAAmB;AAChC,WAAO,OAAO1B,EACT,QAAQ0B,KAAiF,KAAK,0BAA0B,EACxH,MAAM,GAAG,EACT,KAAK,EAAE,CAAC;AAAA,EAChB;AAAA,EACD,mBAAmB1B,GAAO;AACtB,WAAOA,KAAS,OAAO,KAAK,IAAI,KAAK,IAAIA,GAAO,KAAK,QAAQ,GAAG,KAAK,QAAQ,IAAIA;AAAA,EACpF;AAAA,EACD,OAAOA,GAAO2B,IAA8B,IAAO;AAC/C,QAAI3B,KAAS,MAAM;AACf,MAAI,KAAK,4BAA4B,WACjCA,IAAQ,KAAK,eAAe,0BAA0BA,GAAO,KAAK,uBAAuB,GACzF,KAAK,0BAA0B;AAEnC,YAAM4B,IAAiB,KAAK,WAAW,cAAc5B,GAAO,KAAK,cAAc;AAC/E,UAAI6B;AACJ,UAAI,OAAOD,KAAmB,UAAU;AACpC,cAAM,EAAE,aAAAV,GAAa,gBAAAJ,EAAgB,IAAGc;AACxC,YAAI,EAAE,uBAAAE,GAAuB,uBAAAC,MAA0B,KAAK;AAC5D,QAAI,KAAK,QACLA,IAAwBJ,IAClBb,EAAe,QAAQ,OAAO,EAAE,EAAE,SAClC,KAAK,IAAIgB,GAAuBhB,EAAe,MAAM,IAEtD,OAAO,UAAUI,CAAW,KAAK,CAAC,KAAK,QAAQ,sBAAsB,KAAK,QAAQ,cAAc,UAAaa,MAA0B,OAC5IA,IAAwBD,IAAwB,IAEpDD,IACI,KAAK,UAAU,KAAK,IAAIX,CAAW,CAAC,IAAI,OAAO,mBACzC,KAAK,iBACL,KAAK,eAAe,OAAOA,GAAa;AAAA,UACtC,aAAa,KAAK,QAAQ,gBAAgB,MAAS,EAAE,KAAK,SAAS,KAAK,QAAQ;AAAA,UAChF,uBAAAa;AAAA,UACA,uBAAAD;AAAA,QAC5B,CAAyB;AAAA;AAGT,QAAAD,IAAiBD;AAErB,MAAI,KAAK,YAAY,KAAK,CAAC,KAAK,eAAe,WAAWC,CAAc,KAAK,KAAK,eAAe,MAAMA,CAAc,MAAM,MACvHA,IAAiBA,EAAe,QAAQ,KAAK,eAAe,QAAQ,KAAK,eAAe,cAAc,IAEtG,KAAK,YAAY,MACjBA,IAAiBA,EAAe,QAAQ,KAAK,eAAe,gBAAgB,KAAK,eAAe,MAAM,KAEtG,KAAK,QAAQ,oBAAoBhE,EAAgB,UAAW,KAAK,SAAS,KAAK,QAAQ,+BACvFgE,IAAiBA,EACZ,QAAQ,KAAK,eAAe,gBAAgB,KAAK,eAAe,cAAc,SAAY,KAAK,eAAe,YAAY,GAAG,EAC7H,QAAQ,KAAK,eAAe,gBAAgB,KAAK,eAAe,cAAc,SAAY,KAAK,GAAG,EAClG,QAAQ,KAAK,eAAe,QAAQ,EAAE,EACtC,QAAQ,KAAK,eAAe,QAAQ,EAAE,IAE/C,KAAK,GAAG,QAAQA,GAChB,KAAK,cAAc,KAAK,eAAe,MAAMA,CAAc;AAAA;AAG3D,WAAK,GAAG,QAAQ,IAChB,KAAK,cAAc;AAEvB,SAAK,iBAAiB,KAAK,GAAG,OAC9B,KAAK,QAAQ,KAAK,SAAU,CAAA;AAAA,EAC/B;AAAA,EACD,mBAAmB;AACf,SAAK,GAAG,iBAAiB,SAAS,CAACG,MAAM;AACrC,YAAM,EAAE,OAAAhC,GAAO,gBAAAiC,MAAmB,KAAK,IACjCC,IAAaF;AAKnB,UAJIC,KAAkBC,EAAW,QAAQ7D,EAAmB,SAAS6D,EAAW,IAAI,MAChF,KAAK,0BAA0BD,IAAiB,IAEpD,KAAK,OAAOjC,CAAK,GACb,KAAK,SAASiC,KAAkB,MAAM;AACtC,cAAME,IAA8B,MAAM;AACtC,gBAAM,EAAE,QAAAC,GAAQ,QAAAC,GAAQ,eAAAC,GAAe,uBAAAR,GAAuB,gBAAAS,EAAgB,IAAG,KAAK;AACtF,cAAIC,IAAwBxC,EAAM,SAASiC;AAC3C,gBAAMQ,IAAiB,KAAK,eAAe;AAC3C,cAAI,KAAK,eAAe,cAAc,WAAczC,EAAM,WAAW,GAAG,KAAKA,EAAM,WAAW,GAAG,MAAM,CAACA,EAAM,SAAS,GAAG;AACtH,mBAAOyC,IAAiB,KAAK,eAAe,eAAe,SAAS,IAAI,KAAK,eAAe,UAAUR,CAAc,EAAE,SAAS;AAEnI,cAAI,KAAK,eAAe,UAAUA,GAAgB,CAAC,MAAMM,KACrDrE,EAAM,KAAK,gBAAgBqE,CAAc,MAAMrE,EAAM8B,GAAOuC,CAAc,IAAI;AAC9E,mBAAOE,IAAiBD,IAAwB;AAEpD,cAAIC,IAAiBD;AACjB,mBAAOP;AAEX,cAAIK,MAAkB,UAAatC,EAAM,QAAQsC,CAAa,MAAM,IAAI;AACpE,kBAAMI,IAAwB1C,EAAM,QAAQsC,CAAa,IAAI;AAC7D,gBAAI,KAAK,IAAIG,IAAiBzC,EAAM,MAAM,IAAI,KAAKiC,KAAkBS;AACjE,qBAAO,KAAK,eAAe,QAAQJ,CAAa,IAAI;AAGpD,YAAI,CAAC,KAAK,QAAQ,qBAAqBL,IAAiBS,KAChD,KAAK,eAAe,WAAW1C,EAAM,UAAU0C,CAAqB,CAAC,EAAE,SAAS,MAAMZ,MACtFU,KAAyB;AAAA;AAKzC,iBAAO,KAAK,QAAQ,6BAA6B,KAAK,QAAQ,oBAAoB3E,EAAgB,SAC5F4E,IAAiBD,IACjB,KAAK,IAAIC,IAAiB,KAAK,IAAID,GAAuBH,EAAO,MAAM,GAAGD,EAAO,MAAM;AAAA,QACjH;AACgB,aAAK,iBAAiBD,EAA2B,CAAE;AAAA;AAAA,IAEnE,CAAS,GACD,KAAK,GAAG,iBAAiB,SAAS,MAAM;AACpC,WAAK,QAAQ,IACb,KAAK,qBAAqB,KAAK,aAC/B,WAAW,MAAM;AACb,cAAM,EAAE,OAAAnC,GAAO,gBAAAiC,GAAgB,cAAAU,EAAY,IAAK,KAAK;AAErD,YADA,KAAK,OAAO3C,GAAO,KAAK,QAAQ,kCAAkC,GAC9DiC,KAAkB,QAAQU,KAAgB,QAAQ,KAAK,IAAIV,IAAiBU,CAAY,IAAI;AAC5F,eAAK,iBAAiB,GAAG,KAAK,GAAG,MAAM,MAAM;AAAA,iBAExCV,KAAkB,MAAM;AAC7B,gBAAMW,IAAuB,KAAK,wBAAwB5C,GAAOiC,CAAc;AAC/E,eAAK,iBAAiBW,CAAoB;AAAA;AAAA,MAE9D,CAAa;AAAA,IACb,CAAS,GACD,KAAK,GAAG,iBAAiB,QAAQ,MAAM;AACnC,WAAK,QAAQ,IACb,KAAK,OAAO,KAAK,eAAe,OAAO,KAAK,mBAAmB,KAAK,WAAW,CAAC,CAAC,GAC7E,KAAK,uBAAuB,KAAK,eACjC,KAAK,SAAS,KAAK,SAAU,CAAA;AAAA,IAE7C,CAAS;AAAA,EACJ;AAAA,EACD,wBAAwB5C,GAAOiC,GAAgB;AAC3C,QAAI,KAAK,eAAe;AACpB,aAAOA;AAEX,UAAM,EAAE,QAAAG,GAAQ,gBAAAS,GAAgB,QAAAR,GAAQ,gBAAAS,GAAgB,gBAAAP,GAAgB,UAAAxD,EAAQ,IAAK,KAAK,gBACpFgE,IAAa,KAAK,cAAc,GAChCC,IAAgBD,IAAaF,IAAiBT,GAC9Ca,IAAeD,EAAc;AACnC,QAAI,KAAK,QAAQ,6BAA6B,KAAK,QAAQ,oBAAoBnF,EAAgB;AAC3F,UAAIkF,GAAY;AACZ,YAAId,KAAkB;AAClB,iBAAO;AAEN,YAAIjC,EAAM,SAAS,GAAG,KAAKiC,IAAiBjC,EAAM,QAAQ,GAAG;AAC9D,iBAAO,KAAK,eAAe,SAAS;AAAA;AAAA,WAI3C;AACD,YAAMkD,IAAeH,IAAaD,EAAe,SAAST,EAAO;AACjE,UAAIJ,KAAkBjC,EAAM,SAASkD;AACjC,eAAO,KAAK,eAAe,SAASA;AAEnC,UAAIjB,IAAiBgB;AACtB,eAAOA;AAAA;AAGf,QAAIE,IAASlB;AACb,WAAI,KAAK,QAAQ,6BACb,KAAK,QAAQ,oBAAoBpE,EAAgB,UACjDoE,KAAkBgB,KAClBlE,MAAa,UACbiE,EAAc,SAASjE,CAAQ,MAC/BoE,KAAUF,GACNF,MACAI,KAAU,KAGd,KAAK,QAAQ,gCAAgCZ,MAAmB,WAChEY,KAAUjF,EAAM8B,EAAM,UAAU,GAAGiC,CAAc,GAAGM,CAAc,IAE/DY;AAAA,EACV;AAAA,EACD,iBAAiBC,GAAOC,IAAMD,GAAO;AACjC,SAAK,GAAG,kBAAkBA,GAAOC,CAAG;AAAA,EACvC;AACL;AAEA,MAAMC,IAAY,CAACC,MAASA,KAAO,QAAiCA,EAAG,QAAQ,OAAO,IAAKA,IAAKA,KAAO,OAAwB,SAASA,EAAG,cAAc,OAAO;AAChK,SAASC,EAAiBhF,GAASiF,GAAU;AACzC,MAAIhF,GAAIC,GAAIC,GAAIC;AAChB,MAAI8E;AACJ,QAAMC,IAAWC,EAAI,IAAI,GACnB/B,IAAiB+B,EAAI,IAAI,GACzB1C,IAAc0C,EAAI,IAAI,GACtBC,IAAKC,KACLC,KAAQF,KAAO,OAAwB,SAASA,EAAG,WAAWnF,KAAMD,IAAKoF,KAAO,OAAwB,SAASA,EAAG,WAAW,QAAQpF,MAAO,SAAS,SAASA,EAAG,WAAW,QAAQC,MAAO,SAAS,SAASA,EAAG,KAAKmF,KAAO,OAAwB,SAASA,EAAG,KAAK,IACvQG,KAAUH,KAAO,OAAwB,SAASA,EAAG,YAAYlF,IAAKkF,KAAO,OAAwB,SAASA,EAAG,WAAW,QAAQlF,MAAO,SAAS,SAASA,EAAG,SAChKsF,IAASC,EAAQ,WAAW,GAAG,GAC/BC,IAAYF,OAAYrF,IAAKiF,KAAO,OAAwB,SAASA,EAAG,MAAM,oBAAoB,QAAQjF,MAAO,SAAS,SAASA,EAAG,OACtIwF,IAAaC,EAAS,MAAML,KAAU,OAA2B,SAASA,EAAMC,IAAS,eAAe,OAAO,CAAC,GAChH/B,IAAa+B,IAAS,sBAAsB,SAC5CK,IAAcH,IAAY,sBAAsB;AACtD,SAAAI,EAAMZ,GAAU,CAAC3D,MAAU;AACvB,QAAIvB;AACJ,QAAIuB,GAAO;AACP,YAAMuD,IAAKD,GAAW7E,IAAKuB,KAAU,OAA2B,SAASA,EAAM,SAAS,QAAQvB,MAAO,SAASA,IAAKuB,CAAK;AAC1H,MAAIuD,KACAG,IAAgB,IAAItC,EAAc;AAAA,QAC9B,IAAAmC;AAAA,QACA,SAAA/E;AAAA,QACA,SAAS,CAACwB,MAAU;AAChB,UAAI,CAACmE,KAAaV,MAAa,MAASW,EAAW,UAAUpE,EAAM,WAC/D+D,KAAS,QAAmCA,EAAK7B,GAAYlC,EAAM,MAAM,IAE7EkB,EAAY,QAAQlB,EAAM,QAC1B6B,EAAe,QAAQ7B,EAAM;AAAA,QAChC;AAAA,QACD,UAAU,CAACA,MAAU;AACjB,UAAIyD,MAAa,OACbM,KAAS,QAAmCA,EAAKO,GAAatE,EAAM,MAAM;AAAA,QAEjF;AAAA,MACrB,CAAiB,GACD0D,EAAc,SAASU,EAAW,KAAK,KAGvC,QAAQ,MAAM,iGAAiG;AAAA;AAInH,MAAAV,IAAgB;AAAA,EAE5B,CAAK,GACM;AAAA,IACH,UAAAC;AAAA,IACA,aAAAzC;AAAA,IACA,gBAAAW;AAAA,IACA,UAAU,CAAC7B,MAAU0D,KAAkB,OAAmC,SAASA,EAAc,SAAS1D,CAAK;AAAA,IAC/G,YAAY,CAACxB,MAAYkF,KAAkB,OAAmC,SAASA,EAAc,WAAWlF,CAAO;AAAA,EAC/H;AACA;;;;;;;;;;;;;;;;;AC5hBE,UAAMgG,IAAoD;AAAA,MACxD,UAAU;AAAA,MACV,iBAAiB3G,EAAgB;AAAA,MACjC,WAAW;AAAA,MACX,2BAA2B;AAAA,MAC3B,8BAA8B;AAAA,MAC9B,oCAAoC;AAAA,MACpC,mBAAmB;AAAA,MACnB,aAAa;AAAA,MACb,gBAAgB;AAAA,IAAA,GAQZmG,IAAQS,GAURV,IAAOW,GAOPC,IAAQC,KAERC,IAAuBR,EAAS,OAC7B;AAAA,MACL,GAAGG;AAAA,MACH,GAAKM,EAAQd,EAAM,YAAY,IAAyB,CAAC,IAAtBA,EAAM;AAAA,IAAgB,EAE5D,GAEK,EAAE,UAAUe,GAAS,YAAAC,GAAY,UAAAC,GAAU,aAAA/D,EAAgB,IAAAsC,EAAiBqB,EAAqB,OAAO,EAAK;AAEtG,IAAAK,EAAA,EAAE,SAAAH,GAAS,GAExBR;AAAA,MACE,MAAMrD,EAAY;AAAA,MAClB,CAACI,MAAqC;;AAChC,YAAA6D;AAEJ,QAAI,OAAO,GAAG7D,GAAU,EAAE,IACpB,OAAOuD,EAAqB,MAAM,aAAc,WAClDM,IAAc,QAAQ,IAAI,OAAON,EAAqB,MAAM,SAAS,IAErEM,IAAc,QAAQ,IAAI,SAAO1G,IAAAoG,EAAqB,MAAM,cAA3B,gBAAApG,EAAsC,QAAO,CAAC,IAGjF0G,IAAc,OAAO7D,KAAa,WAAWA,EAAS,QAAQ,CAAC,IAAIA,GAGrEyC,EAAK,sBAAsBoB,CAAW;AAAA,MACxC;AAAA,IAAA,GAGFZ;AAAA,MACE,MAAMP,EAAM;AAAA,MACZ,CAAC1C,MAAqC;AAChCJ,YAAAA;AAEA,QAAA,OAAOI,KAAa,WACtBJ,IAAc,WAAWI,KAAY,GAAG,IAExCJ,IAAcI,GAGhB2D,EAAS/D,CAAW;AAAA,MACtB;AAAA,IAAA,GAGFqD;AAAA,MACE,MAAMP,EAAM;AAAA,MACZ,MAAM;AACJ,QAAAgB,EAAWH,EAAqB,KAAK;AAAA,MACvC;AAAA,IAAA;AAGI,UAAAO,IAAaf,EAAS,MAAM;AAChC,YAAM,EAAE,cAAcgB,GAAG,GAAGC,MAAqCtB;AAEjE,aAAO,EAAE,GAAGsB,GAAkC,GAAGX;IAAM,CACxD;;;;;;;;;;;;;;;;","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]}
@@ -107,6 +107,10 @@ declare interface InputProps {
107
107
  * will still render an input with a type of `text` (for localization).
108
108
  */
109
109
  type?: string extends 'button' | 'checkbox' | 'radio' | 'submit' ? never : string;
110
+ /**
111
+ * Indicates whether the input is disabled.
112
+ */
113
+ disabled?: boolean;
110
114
  }
111
115
 
112
116
  export { }
@@ -1,4 +1,4 @@
1
- import { ref as B, computed as C, defineComponent as j, useSlots as O, inject as J, provide as z, watch as Q, openBlock as p, createBlock as m, normalizeClass as U, unref as t, withCtx as u, mergeProps as $, createCommentVNode as f, createElementBlock as Z, createElementVNode as A, renderSlot as G, createVNode as I, createTextVNode as k, toDisplayString as w } from "vue";
1
+ import { ref as B, computed as C, defineComponent as j, useSlots as O, inject as z, provide as J, watch as Q, openBlock as p, createBlock as m, normalizeClass as U, unref as t, withCtx as u, mergeProps as $, createCommentVNode as f, createElementBlock as Z, createElementVNode as A, renderSlot as G, createVNode as I, createTextVNode as k, toDisplayString as w } from "vue";
2
2
  import q from "./useMediaQuery.js";
3
3
  import { SCREEN_SIZES as H } from "./constants.js";
4
4
  import { t as d } from "./locale.js";
@@ -9,7 +9,7 @@ import P from "./Icon.js";
9
9
  import "./Paginate.vue_used_vue_type_style_index_0_lang.module-18343da7.js";
10
10
  import { D as R } from "./DataView.vue_used_vue_type_style_index_0_lang.module-5c180dba.js";
11
11
  import X from "./FilterChip.js";
12
- import { _ as Y } from "./Label.vue_vue_type_script_setup_true_lang-4b02087f.js";
12
+ import { _ as Y } from "./Label.vue_vue_type_script_setup_true_lang-b6ba2f02.js";
13
13
  import ee from "./Modal.js";
14
14
  import te from "./SearchBar.js";
15
15
  import { D as le } from "./DataViewFilters.keys-c80ffabe.js";
@@ -26,70 +26,71 @@ import "./Backdrop.js";
26
26
  import "./Input.js";
27
27
  import "lodash-es/isNil";
28
28
  import "./utils/i18n.js";
29
- import "./Field.vue_vue_type_script_setup_true_lang-e1e4ff03.js";
30
- function Le({
31
- schema: a,
32
- dataViewRef: V
29
+ import "./Field.vue_vue_type_script_setup_true_lang-3ea26741.js";
30
+ var re = /* @__PURE__ */ ((l) => (l.Cascade = "cascade", l.Nested = "nested", l))(re || {});
31
+ function Pe({
32
+ schema: l,
33
+ dataViewRef: N
33
34
  }) {
34
35
  const e = B({}), o = B({});
35
- for (const l in a)
36
- e.value[l] = a[l].defaultValue, o.value[l] = a[l].defaultValue;
37
- const y = V;
36
+ for (const r in l)
37
+ e.value[r] = l[r].defaultValue, o.value[r] = l[r].defaultValue;
38
+ const y = N;
38
39
  function h() {
39
40
  e.value = L(o.value), y.value.updateCurrentFilters(e.value, { shouldEmit: !0 });
40
41
  }
41
- function N() {
42
- for (const l in a)
43
- e.value[l] = a[l].defaultValue, o.value[l] = a[l].defaultValue;
42
+ function V() {
43
+ for (const r in l)
44
+ e.value[r] = l[r].defaultValue, o.value[r] = l[r].defaultValue;
44
45
  y.value.updateCurrentFilters(e.value, { shouldEmit: !0 });
45
46
  }
46
- function b(l) {
47
- for (const i in a)
48
- a[i].group === l && (e.value[i] = a[i].defaultValue, o.value[i] = a[i].defaultValue);
47
+ function b(r) {
48
+ for (const i in l)
49
+ l[i].group === r && (e.value[i] = l[i].defaultValue, o.value[i] = l[i].defaultValue);
49
50
  y.value.updateCurrentFilters(e.value, { shouldEmit: !0 });
50
51
  }
51
- function D() {
52
+ function E() {
52
53
  o.value = L(e.value);
53
54
  }
54
55
  const g = C(() => {
55
56
  var i;
56
- const l = {};
57
- for (const c in a) {
58
- const n = a[c], s = e.value[c];
59
- (((i = n.isActive) == null ? void 0 : i.call(n, s)) || W(s)) && n.group && (l[n.group] = (l[n.group] ?? 0) + 1);
57
+ const r = {};
58
+ for (const c in l) {
59
+ const n = l[c], s = e.value[c];
60
+ (((i = n.isActive) == null ? void 0 : i.call(n, s)) || W(s)) && n.group && (r[n.group] = (r[n.group] ?? 0) + 1);
60
61
  }
61
- return l;
62
+ return r;
62
63
  }), S = C(() => {
63
64
  var i;
64
- let l = 0;
65
- for (const c in a) {
66
- const n = a[c], s = e.value[c];
67
- (((i = n.isActive) == null ? void 0 : i.call(n, s)) || W(s)) && (l += 1);
65
+ let r = 0;
66
+ for (const c in l) {
67
+ const n = l[c], s = e.value[c];
68
+ (((i = n.isActive) == null ? void 0 : i.call(n, s)) || W(s)) && (r += 1);
68
69
  }
69
- return l;
70
+ return r;
70
71
  });
71
72
  return {
72
73
  applyFilters: h,
73
- resetAllFilters: N,
74
+ resetAllFilters: V,
74
75
  // @ts-expect-error "could be instantiated with a different subtype": TODO: figure out how to resolve the types
75
76
  resetFilterGroup: b,
76
- undoWorkingFilters: D,
77
+ undoWorkingFilters: E,
77
78
  activeFiltersCounts: g,
78
79
  totalActiveFiltersCount: S,
79
80
  appliedFilters: e,
80
81
  workingFilters: o
81
82
  };
82
83
  }
83
- const re = {
84
+ const ae = {
84
85
  key: 1,
85
86
  class: "tw-col-span-12 tw-row-start-2 md:tw-col-start-7 md:tw-row-start-1 lg:tw-col-span-8 lg:tw-col-start-5"
86
- }, ae = { class: "tw-hidden md:tw-block" }, se = { class: "tw-flex tw-gap-4" }, ie = { class: "tw-inline-flex tw-items-center tw-gap-3" }, oe = { class: "tw-flex tw-justify-end tw-gap-gutter" }, Pe = /* @__PURE__ */ j({
87
+ }, se = { class: "tw-hidden md:tw-block" }, ie = { class: "tw-flex tw-gap-4" }, oe = { class: "tw-inline-flex tw-items-center tw-gap-3" }, ne = { class: "tw-flex tw-justify-end tw-gap-gutter" }, Re = /* @__PURE__ */ j({
87
88
  __name: "DataViewFilters",
88
89
  props: {
89
90
  filtersLabelText: { default: d("ll.filterBy") },
90
91
  searchBarProps: { default: void 0 },
91
92
  showSearch: { type: Boolean, default: !0 },
92
- drawerStyle: { default: "nested" },
93
+ drawerStyle: { default: "cascade" },
93
94
  drawerProps: { default: void 0 },
94
95
  showDrawerPreviousButton: { type: Boolean, default: !1 },
95
96
  useFiltersInstance: { default: void 0 },
@@ -97,48 +98,48 @@ const re = {
97
98
  activeGroup: { default: void 0 }
98
99
  },
99
100
  emits: ["open-drawer", "dismiss", "previous", "reset-group", "reset-all"],
100
- setup(a, { emit: V }) {
101
- const e = a, o = V, y = O(), h = q(`(min-width: ${H.lg})`), N = C(() => e.drawerStyle === "nested" && !e.activeGroup), b = C(() => e.drawerStyle === "nested" && e.activeGroup), {
102
- density: D,
101
+ setup(l, { emit: N }) {
102
+ const e = l, o = N, y = O(), h = q(`(min-width: ${H.lg})`), V = C(() => e.drawerStyle === "nested" && !e.activeGroup), b = C(() => e.drawerStyle === "nested" && e.activeGroup), {
103
+ density: E,
103
104
  isLoading: g,
104
105
  isWithinModule: S,
105
- currentSearch: l,
106
+ currentSearch: r,
106
107
  updateCurrentSearch: i
107
- } = J(R.key, R.defaults);
108
- z(le.key, {
108
+ } = z(R.key, R.defaults);
109
+ J(le.key, {
109
110
  useFiltersInstance: e.useFiltersInstance,
110
111
  drawerStyle: e.drawerStyle
111
112
  });
112
113
  const c = C(() => {
113
- var r;
114
- return ((r = e.useFiltersInstance) == null ? void 0 : r.totalActiveFiltersCount.value) ?? 0;
114
+ var a;
115
+ return ((a = e.useFiltersInstance) == null ? void 0 : a.totalActiveFiltersCount.value) ?? 0;
115
116
  }), n = C(
116
117
  () => {
117
- var r;
118
- return Number(e.activeGroup && ((r = e.useFiltersInstance) == null ? void 0 : r.activeFiltersCounts.value[e.activeGroup])) || 0;
118
+ var a;
119
+ return Number(e.activeGroup && ((a = e.useFiltersInstance) == null ? void 0 : a.activeFiltersCounts.value[e.activeGroup])) || 0;
119
120
  }
120
121
  ), s = B(!1);
121
- async function E() {
122
+ async function D() {
122
123
  var v, F;
123
- const { preventDismiss: r } = await ((v = e.onApply) == null ? void 0 : v.call(e)) || ((F = e.useFiltersInstance) == null ? void 0 : F.applyFilters()) || {};
124
- r || (s.value = !1);
124
+ const { preventDismiss: a } = await ((v = e.onApply) == null ? void 0 : v.call(e)) || ((F = e.useFiltersInstance) == null ? void 0 : F.applyFilters()) || {};
125
+ a || (s.value = !1);
125
126
  }
126
127
  function M() {
127
- var r;
128
- e.activeGroup && ((r = e.useFiltersInstance) == null || r.resetFilterGroup(e.activeGroup), o("reset-group"), s.value = !1);
128
+ var a;
129
+ e.activeGroup && ((a = e.useFiltersInstance) == null || a.resetFilterGroup(e.activeGroup), o("reset-group"), s.value = !1);
129
130
  }
130
131
  function x() {
131
- var r;
132
- (r = e.useFiltersInstance) == null || r.resetAllFilters(), o("reset-all"), s.value = !1;
132
+ var a;
133
+ (a = e.useFiltersInstance) == null || a.resetAllFilters(), o("reset-all"), s.value = !1;
133
134
  }
134
135
  function T() {
135
- var r;
136
- (r = e.useFiltersInstance) == null || r.undoWorkingFilters(), s.value = !1, o("dismiss");
136
+ var a;
137
+ (a = e.useFiltersInstance) == null || a.undoWorkingFilters(), s.value = !1, o("dismiss");
137
138
  }
138
139
  return Q(s, () => {
139
140
  s.value && o("open-drawer");
140
- }), (r, v) => (p(), m(K, {
141
- class: U(["stash-data-view-filters tw-grid tw-grid-cols-12 tw-gap-6 tw-p-3", { "lg:tw-p-6": t(D) === "comfortable", "tw-mb-3": !t(S) }]),
141
+ }), (a, v) => (p(), m(K, {
142
+ class: U(["stash-data-view-filters tw-grid tw-grid-cols-12 tw-gap-6 tw-p-3", { "lg:tw-p-6": t(E) === "comfortable", "tw-mb-3": !t(S) }]),
142
143
  radius: t(S) ? "none" : "rounded",
143
144
  "data-test": "stash-data-view-filters",
144
145
  "disable-padding": ""
@@ -150,13 +151,13 @@ const re = {
150
151
  "data-test": "stash-data-view-filters|search-bar",
151
152
  "is-loading": t(g),
152
153
  label: t(d)("ll.search"),
153
- "model-value": t(l)
154
+ "model-value": t(r)
154
155
  }, e.searchBarProps, {
155
156
  onSearch: v[0] || (v[0] = (F) => t(i)(F, { shouldEmit: !0 }))
156
157
  }), null, 16, ["is-loading", "label", "model-value"])) : f("", !0),
157
- y.default ? (p(), Z("div", re, [
158
- A("div", ae, [
159
- G(r.$slots, "filters-label", {}, () => [
158
+ y.default ? (p(), Z("div", ae, [
159
+ A("div", se, [
160
+ G(a.$slots, "filters-label", {}, () => [
160
161
  I(Y, null, {
161
162
  default: u(() => [
162
163
  k(w(e.filtersLabelText), 1)
@@ -165,7 +166,7 @@ const re = {
165
166
  })
166
167
  ])
167
168
  ]),
168
- A("div", se, [
169
+ A("div", ie, [
169
170
  I(X, {
170
171
  secondary: "",
171
172
  class: "!tw-flex tw-w-full tw-justify-center tw-gap-4 md:!tw-inline-flex md:tw-w-auto",
@@ -174,7 +175,7 @@ const re = {
174
175
  onClick: v[1] || (v[1] = (F) => s.value = !0)
175
176
  }, {
176
177
  default: u(() => [
177
- A("span", ie, [
178
+ A("span", oe, [
178
179
  I(P, {
179
180
  name: "filter-line",
180
181
  class: "tw-text-ice-700"
@@ -184,7 +185,7 @@ const re = {
184
185
  ]),
185
186
  _: 1
186
187
  }, 8, ["filter-count"]),
187
- t(h) ? G(r.$slots, "default", { key: 0 }) : f("", !0),
188
+ t(h) ? G(a.$slots, "default", { key: 0 }) : f("", !0),
188
189
  c.value > 0 && t(h) ? (p(), m(_, {
189
190
  key: 1,
190
191
  inline: "",
@@ -202,6 +203,7 @@ const re = {
202
203
  "data-test": "stash-data-view-filters|drawer",
203
204
  "disable-body-padding": "",
204
205
  position: "right",
206
+ size: "narrow",
205
207
  "is-open": s.value,
206
208
  title: t(d)("ll.allFilters")
207
209
  }, e.drawerProps, { onDismiss: T }), {
@@ -222,7 +224,7 @@ const re = {
222
224
  }, 8, ["aria-label", "title"])) : f("", !0)
223
225
  ]),
224
226
  footer: u(() => [
225
- A("div", oe, [
227
+ A("div", ne, [
226
228
  c.value === 0 ? (p(), m(_, {
227
229
  key: 0,
228
230
  secondary: "",
@@ -233,7 +235,7 @@ const re = {
233
235
  ]),
234
236
  _: 1
235
237
  })) : f("", !0),
236
- (N.value || e.drawerStyle === "cascade") && c.value > 0 ? (p(), m(_, {
238
+ (V.value || e.drawerStyle === "cascade") && c.value > 0 ? (p(), m(_, {
237
239
  key: 1,
238
240
  secondary: "",
239
241
  disabled: t(g),
@@ -258,7 +260,7 @@ const re = {
258
260
  b.value || e.drawerStyle === "cascade" ? (p(), m(_, {
259
261
  key: 3,
260
262
  disabled: t(g),
261
- onClick: E
263
+ onClick: D
262
264
  }, {
263
265
  default: u(() => [
264
266
  k(w(t(d)("ll.apply")), 1)
@@ -268,7 +270,7 @@ const re = {
268
270
  ])
269
271
  ]),
270
272
  default: u(() => [
271
- G(r.$slots, "drawer")
273
+ G(a.$slots, "drawer")
272
274
  ]),
273
275
  _: 3
274
276
  }, 16, ["is-open", "title"])) : f("", !0)
@@ -279,7 +281,8 @@ const re = {
279
281
  });
280
282
  export {
281
283
  le as DATA_VIEW_FILTERS_UTILS_INJECTION,
282
- Pe as default,
283
- Le as useFilters
284
+ re as DrawerStyle,
285
+ Re as default,
286
+ Pe as useFilters
284
287
  };
285
288
  //# sourceMappingURL=DataViewFilters.js.map