@bonlineza/luxity-lib 2.18.2 → 2.18.4

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/AddInterest.js CHANGED
@@ -1352,573 +1352,6 @@
1352
1352
 
1353
1353
  var InvertedTextButton$1 = themed(InvertedTextButton);
1354
1354
 
1355
- /*! *****************************************************************************
1356
- Copyright (c) Microsoft Corporation.
1357
-
1358
- Permission to use, copy, modify, and/or distribute this software for any
1359
- purpose with or without fee is hereby granted.
1360
-
1361
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
1362
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1363
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
1364
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1365
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1366
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1367
- PERFORMANCE OF THIS SOFTWARE.
1368
- ***************************************************************************** */
1369
-
1370
- var __assign = function() {
1371
- __assign = Object.assign || function __assign(t) {
1372
- for (var s, i = 1, n = arguments.length; i < n; i++) {
1373
- s = arguments[i];
1374
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1375
- }
1376
- return t;
1377
- };
1378
- return __assign.apply(this, arguments);
1379
- };
1380
-
1381
- function __rest(s, e) {
1382
- var t = {};
1383
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
1384
- t[p] = s[p];
1385
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
1386
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1387
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
1388
- t[p[i]] = s[p[i]];
1389
- }
1390
- return t;
1391
- }
1392
-
1393
- function __spreadArray(to, from, pack) {
1394
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
1395
- if (ar || !(i in from)) {
1396
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
1397
- ar[i] = from[i];
1398
- }
1399
- }
1400
- return to.concat(ar || from);
1401
- }
1402
-
1403
- /**
1404
- * Escape regex char
1405
- *
1406
- * See: https://stackoverflow.com/questions/17885855/use-dynamic-variable-string-as-regex-pattern-in-javascript
1407
- */
1408
- var escapeRegExp = function (stringToGoIntoTheRegex) {
1409
- return stringToGoIntoTheRegex.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
1410
- };
1411
-
1412
- var abbrMap = { k: 1000, m: 1000000, b: 1000000000 };
1413
- /**
1414
- * Parse a value with abbreviation e.g 1k = 1000
1415
- */
1416
- var parseAbbrValue = function (value, decimalSeparator) {
1417
- if (decimalSeparator === void 0) { decimalSeparator = '.'; }
1418
- var reg = new RegExp("(\\d+(" + escapeRegExp(decimalSeparator) + "\\d*)?)([kmb])$", 'i');
1419
- var match = value.match(reg);
1420
- if (match) {
1421
- var digits = match[1], abbr = match[3];
1422
- var multiplier = abbrMap[abbr.toLowerCase()];
1423
- return Number(digits.replace(decimalSeparator, '.')) * multiplier;
1424
- }
1425
- return undefined;
1426
- };
1427
-
1428
- /**
1429
- * Remove group separator from value eg. 1,000 > 1000
1430
- */
1431
- var removeSeparators = function (value, separator) {
1432
- if (separator === void 0) { separator = ','; }
1433
- var reg = new RegExp(escapeRegExp(separator), 'g');
1434
- return value.replace(reg, '');
1435
- };
1436
-
1437
- /**
1438
- * Remove invalid characters
1439
- */
1440
- var removeInvalidChars = function (value, validChars) {
1441
- var chars = escapeRegExp(validChars.join(''));
1442
- var reg = new RegExp("[^\\d" + chars + "]", 'gi');
1443
- return value.replace(reg, '');
1444
- };
1445
-
1446
- /**
1447
- * Remove prefix, separators and extra decimals from value
1448
- */
1449
- var cleanValue = function (_a) {
1450
- var value = _a.value, _b = _a.groupSeparator, groupSeparator = _b === void 0 ? ',' : _b, _c = _a.decimalSeparator, decimalSeparator = _c === void 0 ? '.' : _c, _d = _a.allowDecimals, allowDecimals = _d === void 0 ? true : _d, _e = _a.decimalsLimit, decimalsLimit = _e === void 0 ? 2 : _e, _f = _a.allowNegativeValue, allowNegativeValue = _f === void 0 ? true : _f, _g = _a.disableAbbreviations, disableAbbreviations = _g === void 0 ? false : _g, _h = _a.prefix, prefix = _h === void 0 ? '' : _h, _j = _a.transformRawValue, transformRawValue = _j === void 0 ? function (rawValue) { return rawValue; } : _j;
1451
- var transformedValue = transformRawValue(value);
1452
- if (transformedValue === '-') {
1453
- return transformedValue;
1454
- }
1455
- var abbreviations = disableAbbreviations ? [] : ['k', 'm', 'b'];
1456
- var reg = new RegExp("((^|\\D)-\\d)|(-" + escapeRegExp(prefix) + ")");
1457
- var isNegative = reg.test(transformedValue);
1458
- // Is there a digit before the prefix? eg. 1$
1459
- var _k = RegExp("(\\d+)-?" + escapeRegExp(prefix)).exec(value) || [], prefixWithValue = _k[0], preValue = _k[1];
1460
- var withoutPrefix = prefix
1461
- ? prefixWithValue
1462
- ? transformedValue.replace(prefixWithValue, '').concat(preValue)
1463
- : transformedValue.replace(prefix, '')
1464
- : transformedValue;
1465
- var withoutSeparators = removeSeparators(withoutPrefix, groupSeparator);
1466
- var withoutInvalidChars = removeInvalidChars(withoutSeparators, __spreadArray([
1467
- groupSeparator,
1468
- decimalSeparator
1469
- ], abbreviations));
1470
- var valueOnly = withoutInvalidChars;
1471
- if (!disableAbbreviations) {
1472
- // disallow letter without number
1473
- if (abbreviations.some(function (letter) { return letter === withoutInvalidChars.toLowerCase(); })) {
1474
- return '';
1475
- }
1476
- var parsed = parseAbbrValue(withoutInvalidChars, decimalSeparator);
1477
- if (parsed) {
1478
- valueOnly = String(parsed);
1479
- }
1480
- }
1481
- var includeNegative = isNegative && allowNegativeValue ? '-' : '';
1482
- if (decimalSeparator && valueOnly.includes(decimalSeparator)) {
1483
- var _l = withoutInvalidChars.split(decimalSeparator), int = _l[0], decimals = _l[1];
1484
- var trimmedDecimals = decimalsLimit && decimals ? decimals.slice(0, decimalsLimit) : decimals;
1485
- var includeDecimals = allowDecimals ? "" + decimalSeparator + trimmedDecimals : '';
1486
- return "" + includeNegative + int + includeDecimals;
1487
- }
1488
- return "" + includeNegative + valueOnly;
1489
- };
1490
-
1491
- var fixedDecimalValue = function (value, decimalSeparator, fixedDecimalLength) {
1492
- if (fixedDecimalLength && value.length > 1) {
1493
- if (value.includes(decimalSeparator)) {
1494
- var _a = value.split(decimalSeparator), int = _a[0], decimals = _a[1];
1495
- if (decimals.length > fixedDecimalLength) {
1496
- return "" + int + decimalSeparator + decimals.slice(0, fixedDecimalLength);
1497
- }
1498
- }
1499
- var reg = value.length > fixedDecimalLength
1500
- ? new RegExp("(\\d+)(\\d{" + fixedDecimalLength + "})")
1501
- : new RegExp("(\\d)(\\d+)");
1502
- var match = value.match(reg);
1503
- if (match) {
1504
- var int = match[1], decimals = match[2];
1505
- return "" + int + decimalSeparator + decimals;
1506
- }
1507
- }
1508
- return value;
1509
- };
1510
-
1511
- var getSuffix = function (value, _a) {
1512
- var _b = _a.groupSeparator, groupSeparator = _b === void 0 ? ',' : _b, _c = _a.decimalSeparator, decimalSeparator = _c === void 0 ? '.' : _c;
1513
- var suffixReg = new RegExp("\\d([^" + escapeRegExp(groupSeparator) + escapeRegExp(decimalSeparator) + "0-9]+)");
1514
- var suffixMatch = value.match(suffixReg);
1515
- return suffixMatch ? suffixMatch[1] : undefined;
1516
- };
1517
-
1518
- /**
1519
- * Format value with decimal separator, group separator and prefix
1520
- */
1521
- var formatValue = function (options) {
1522
- var _value = options.value, decimalSeparator = options.decimalSeparator, intlConfig = options.intlConfig, decimalScale = options.decimalScale, _a = options.prefix, prefix = _a === void 0 ? '' : _a, _b = options.suffix, suffix = _b === void 0 ? '' : _b;
1523
- if (_value === '' || _value === undefined) {
1524
- return '';
1525
- }
1526
- if (_value === '-') {
1527
- return '-';
1528
- }
1529
- var isNegative = new RegExp("^\\d?-" + (prefix ? escapeRegExp(prefix) + "?" : '') + "\\d").test(_value);
1530
- var value = decimalSeparator !== '.'
1531
- ? replaceDecimalSeparator(_value, decimalSeparator, isNegative)
1532
- : _value;
1533
- var numberFormatter = intlConfig
1534
- ? new Intl.NumberFormat(intlConfig.locale, intlConfig.currency
1535
- ? {
1536
- style: 'currency',
1537
- currency: intlConfig.currency,
1538
- minimumFractionDigits: decimalScale || 0,
1539
- maximumFractionDigits: 20,
1540
- }
1541
- : undefined)
1542
- : new Intl.NumberFormat(undefined, {
1543
- minimumFractionDigits: decimalScale || 0,
1544
- maximumFractionDigits: 20,
1545
- });
1546
- var parts = numberFormatter.formatToParts(Number(value));
1547
- var formatted = replaceParts(parts, options);
1548
- // Does intl formatting add a suffix?
1549
- var intlSuffix = getSuffix(formatted, __assign({}, options));
1550
- // Include decimal separator if user input ends with decimal separator
1551
- var includeDecimalSeparator = _value.slice(-1) === decimalSeparator ? decimalSeparator : '';
1552
- var _c = value.match(RegExp('\\d+\\.(\\d+)')) || [], decimals = _c[1];
1553
- // Keep original decimal padding if no decimalScale
1554
- if (decimalScale === undefined && decimals && decimalSeparator) {
1555
- if (formatted.includes(decimalSeparator)) {
1556
- formatted = formatted.replace(RegExp("(\\d+)(" + escapeRegExp(decimalSeparator) + ")(\\d+)", 'g'), "$1$2" + decimals);
1557
- }
1558
- else {
1559
- if (intlSuffix && !suffix) {
1560
- formatted = formatted.replace(intlSuffix, "" + decimalSeparator + decimals + intlSuffix);
1561
- }
1562
- else {
1563
- formatted = "" + formatted + decimalSeparator + decimals;
1564
- }
1565
- }
1566
- }
1567
- if (suffix && includeDecimalSeparator) {
1568
- return "" + formatted + includeDecimalSeparator + suffix;
1569
- }
1570
- if (intlSuffix && includeDecimalSeparator) {
1571
- return formatted.replace(intlSuffix, "" + includeDecimalSeparator + intlSuffix);
1572
- }
1573
- if (intlSuffix && suffix) {
1574
- return formatted.replace(intlSuffix, "" + includeDecimalSeparator + suffix);
1575
- }
1576
- return [formatted, includeDecimalSeparator, suffix].join('');
1577
- };
1578
- /**
1579
- * Before converting to Number, decimal separator has to be .
1580
- */
1581
- var replaceDecimalSeparator = function (value, decimalSeparator, isNegative) {
1582
- var newValue = value;
1583
- if (decimalSeparator && decimalSeparator !== '.') {
1584
- newValue = newValue.replace(RegExp(escapeRegExp(decimalSeparator), 'g'), '.');
1585
- if (isNegative && decimalSeparator === '-') {
1586
- newValue = "-" + newValue.slice(1);
1587
- }
1588
- }
1589
- return newValue;
1590
- };
1591
- var replaceParts = function (parts, _a) {
1592
- var prefix = _a.prefix, groupSeparator = _a.groupSeparator, decimalSeparator = _a.decimalSeparator, decimalScale = _a.decimalScale, _b = _a.disableGroupSeparators, disableGroupSeparators = _b === void 0 ? false : _b;
1593
- return parts
1594
- .reduce(function (prev, _a, i) {
1595
- var type = _a.type, value = _a.value;
1596
- if (i === 0 && prefix) {
1597
- if (type === 'minusSign') {
1598
- return [value, prefix];
1599
- }
1600
- if (type === 'currency') {
1601
- return __spreadArray(__spreadArray([], prev), [prefix]);
1602
- }
1603
- return [prefix, value];
1604
- }
1605
- if (type === 'currency') {
1606
- return prefix ? prev : __spreadArray(__spreadArray([], prev), [value]);
1607
- }
1608
- if (type === 'group') {
1609
- return !disableGroupSeparators
1610
- ? __spreadArray(__spreadArray([], prev), [groupSeparator !== undefined ? groupSeparator : value]) : prev;
1611
- }
1612
- if (type === 'decimal') {
1613
- if (decimalScale !== undefined && decimalScale === 0) {
1614
- return prev;
1615
- }
1616
- return __spreadArray(__spreadArray([], prev), [decimalSeparator !== undefined ? decimalSeparator : value]);
1617
- }
1618
- if (type === 'fraction') {
1619
- return __spreadArray(__spreadArray([], prev), [decimalScale !== undefined ? value.slice(0, decimalScale) : value]);
1620
- }
1621
- return __spreadArray(__spreadArray([], prev), [value]);
1622
- }, [''])
1623
- .join('');
1624
- };
1625
-
1626
- var defaultConfig = {
1627
- currencySymbol: '',
1628
- groupSeparator: '',
1629
- decimalSeparator: '',
1630
- prefix: '',
1631
- suffix: '',
1632
- };
1633
- /**
1634
- * Get locale config from input or default
1635
- */
1636
- var getLocaleConfig = function (intlConfig) {
1637
- var _a = intlConfig || {}, locale = _a.locale, currency = _a.currency;
1638
- var numberFormatter = locale
1639
- ? new Intl.NumberFormat(locale, currency ? { currency: currency, style: 'currency' } : undefined)
1640
- : new Intl.NumberFormat();
1641
- return numberFormatter.formatToParts(1000.1).reduce(function (prev, curr, i) {
1642
- if (curr.type === 'currency') {
1643
- if (i === 0) {
1644
- return __assign(__assign({}, prev), { currencySymbol: curr.value, prefix: curr.value });
1645
- }
1646
- else {
1647
- return __assign(__assign({}, prev), { currencySymbol: curr.value, suffix: curr.value });
1648
- }
1649
- }
1650
- if (curr.type === 'group') {
1651
- return __assign(__assign({}, prev), { groupSeparator: curr.value });
1652
- }
1653
- if (curr.type === 'decimal') {
1654
- return __assign(__assign({}, prev), { decimalSeparator: curr.value });
1655
- }
1656
- return prev;
1657
- }, defaultConfig);
1658
- };
1659
-
1660
- var isNumber = function (input) { return RegExp(/\d/, 'gi').test(input); };
1661
-
1662
- var padTrimValue = function (value, decimalSeparator, decimalScale) {
1663
- if (decimalSeparator === void 0) { decimalSeparator = '.'; }
1664
- if (decimalScale === undefined || value === '' || value === undefined) {
1665
- return value;
1666
- }
1667
- if (!value.match(/\d/g)) {
1668
- return '';
1669
- }
1670
- var _a = value.split(decimalSeparator), int = _a[0], decimals = _a[1];
1671
- if (decimalScale === 0) {
1672
- return int;
1673
- }
1674
- var newValue = decimals || '';
1675
- if (newValue.length < decimalScale) {
1676
- while (newValue.length < decimalScale) {
1677
- newValue += '0';
1678
- }
1679
- }
1680
- else {
1681
- newValue = newValue.slice(0, decimalScale);
1682
- }
1683
- return "" + int + decimalSeparator + newValue;
1684
- };
1685
-
1686
- /**
1687
- * Based on the last key stroke and the cursor position, update the value
1688
- * and reposition the cursor to the right place
1689
- */
1690
- var repositionCursor = function (_a) {
1691
- var selectionStart = _a.selectionStart, value = _a.value, lastKeyStroke = _a.lastKeyStroke, stateValue = _a.stateValue, groupSeparator = _a.groupSeparator;
1692
- var cursorPosition = selectionStart;
1693
- var modifiedValue = value;
1694
- if (stateValue && cursorPosition) {
1695
- var splitValue = value.split('');
1696
- // if cursor is to right of groupSeparator and backspace pressed, delete the character to the left of the separator and reposition the cursor
1697
- if (lastKeyStroke === 'Backspace' && stateValue[cursorPosition] === groupSeparator) {
1698
- splitValue.splice(cursorPosition - 1, 1);
1699
- cursorPosition -= 1;
1700
- }
1701
- // if cursor is to left of groupSeparator and delete pressed, delete the character to the right of the separator and reposition the cursor
1702
- if (lastKeyStroke === 'Delete' && stateValue[cursorPosition] === groupSeparator) {
1703
- splitValue.splice(cursorPosition, 1);
1704
- cursorPosition += 1;
1705
- }
1706
- modifiedValue = splitValue.join('');
1707
- return { modifiedValue: modifiedValue, cursorPosition: cursorPosition };
1708
- }
1709
- return { modifiedValue: modifiedValue, cursorPosition: selectionStart };
1710
- };
1711
-
1712
- var CurrencyInput = React.forwardRef(function (_a, ref) {
1713
- var _b = _a.allowDecimals, allowDecimals = _b === void 0 ? true : _b, _c = _a.allowNegativeValue, allowNegativeValue = _c === void 0 ? true : _c, id = _a.id, name = _a.name, className = _a.className, customInput = _a.customInput, decimalsLimit = _a.decimalsLimit, defaultValue = _a.defaultValue, _d = _a.disabled, disabled = _d === void 0 ? false : _d, userMaxLength = _a.maxLength, userValue = _a.value, onValueChange = _a.onValueChange, fixedDecimalLength = _a.fixedDecimalLength, placeholder = _a.placeholder, decimalScale = _a.decimalScale, prefix = _a.prefix, suffix = _a.suffix, intlConfig = _a.intlConfig, step = _a.step, min = _a.min, max = _a.max, _e = _a.disableGroupSeparators, disableGroupSeparators = _e === void 0 ? false : _e, _f = _a.disableAbbreviations, disableAbbreviations = _f === void 0 ? false : _f, _decimalSeparator = _a.decimalSeparator, _groupSeparator = _a.groupSeparator, onChange = _a.onChange, onFocus = _a.onFocus, onBlur = _a.onBlur, onKeyDown = _a.onKeyDown, onKeyUp = _a.onKeyUp, transformRawValue = _a.transformRawValue, props = __rest(_a, ["allowDecimals", "allowNegativeValue", "id", "name", "className", "customInput", "decimalsLimit", "defaultValue", "disabled", "maxLength", "value", "onValueChange", "fixedDecimalLength", "placeholder", "decimalScale", "prefix", "suffix", "intlConfig", "step", "min", "max", "disableGroupSeparators", "disableAbbreviations", "decimalSeparator", "groupSeparator", "onChange", "onFocus", "onBlur", "onKeyDown", "onKeyUp", "transformRawValue"]);
1714
- if (_decimalSeparator && isNumber(_decimalSeparator)) {
1715
- throw new Error('decimalSeparator cannot be a number');
1716
- }
1717
- if (_groupSeparator && isNumber(_groupSeparator)) {
1718
- throw new Error('groupSeparator cannot be a number');
1719
- }
1720
- var localeConfig = React.useMemo(function () { return getLocaleConfig(intlConfig); }, [intlConfig]);
1721
- var decimalSeparator = _decimalSeparator || localeConfig.decimalSeparator || '';
1722
- var groupSeparator = _groupSeparator || localeConfig.groupSeparator || '';
1723
- if (decimalSeparator &&
1724
- groupSeparator &&
1725
- decimalSeparator === groupSeparator &&
1726
- disableGroupSeparators === false) {
1727
- throw new Error('decimalSeparator cannot be the same as groupSeparator');
1728
- }
1729
- var formatValueOptions = {
1730
- decimalSeparator: decimalSeparator,
1731
- groupSeparator: groupSeparator,
1732
- disableGroupSeparators: disableGroupSeparators,
1733
- intlConfig: intlConfig,
1734
- prefix: prefix || localeConfig.prefix,
1735
- suffix: suffix,
1736
- };
1737
- var cleanValueOptions = {
1738
- decimalSeparator: decimalSeparator,
1739
- groupSeparator: groupSeparator,
1740
- allowDecimals: allowDecimals,
1741
- decimalsLimit: decimalsLimit || fixedDecimalLength || 2,
1742
- allowNegativeValue: allowNegativeValue,
1743
- disableAbbreviations: disableAbbreviations,
1744
- prefix: prefix || localeConfig.prefix,
1745
- transformRawValue: transformRawValue,
1746
- };
1747
- var formattedStateValue = defaultValue !== undefined && defaultValue !== null
1748
- ? formatValue(__assign(__assign({}, formatValueOptions), { decimalScale: decimalScale, value: String(defaultValue) }))
1749
- : userValue !== undefined && userValue !== null
1750
- ? formatValue(__assign(__assign({}, formatValueOptions), { decimalScale: decimalScale, value: String(userValue) }))
1751
- : '';
1752
- var _g = React.useState(formattedStateValue), stateValue = _g[0], setStateValue = _g[1];
1753
- var _h = React.useState(false), dirty = _h[0], setDirty = _h[1];
1754
- var _j = React.useState(0), cursor = _j[0], setCursor = _j[1];
1755
- var _k = React.useState(0), changeCount = _k[0], setChangeCount = _k[1];
1756
- var _l = React.useState(null), lastKeyStroke = _l[0], setLastKeyStroke = _l[1];
1757
- var inputRef = ref || React.useRef(null);
1758
- /**
1759
- * Process change in value
1760
- */
1761
- var processChange = function (value, selectionStart) {
1762
- setDirty(true);
1763
- var _a = repositionCursor({
1764
- selectionStart: selectionStart,
1765
- value: value,
1766
- lastKeyStroke: lastKeyStroke,
1767
- stateValue: stateValue,
1768
- groupSeparator: groupSeparator,
1769
- }), modifiedValue = _a.modifiedValue, cursorPosition = _a.cursorPosition;
1770
- var stringValue = cleanValue(__assign({ value: modifiedValue }, cleanValueOptions));
1771
- if (userMaxLength && stringValue.replace(/-/g, '').length > userMaxLength) {
1772
- return;
1773
- }
1774
- if (stringValue === '' || stringValue === '-' || stringValue === decimalSeparator) {
1775
- onValueChange && onValueChange(undefined, name, { float: null, formatted: '', value: '' });
1776
- setStateValue(stringValue);
1777
- return;
1778
- }
1779
- var numberValue = parseFloat(stringValue.replace(decimalSeparator, '.'));
1780
- var formattedValue = formatValue(__assign({ value: stringValue }, formatValueOptions));
1781
- if (cursorPosition !== undefined && cursorPosition !== null) {
1782
- // Prevent cursor jumping
1783
- var newCursor = cursorPosition + (formattedValue.length - value.length);
1784
- newCursor = newCursor <= 0 ? (prefix ? prefix.length : 0) : newCursor;
1785
- setCursor(newCursor);
1786
- setChangeCount(changeCount + 1);
1787
- }
1788
- setStateValue(formattedValue);
1789
- if (onValueChange) {
1790
- var values = {
1791
- float: numberValue,
1792
- formatted: formattedValue,
1793
- value: stringValue,
1794
- };
1795
- onValueChange(stringValue, name, values);
1796
- }
1797
- };
1798
- /**
1799
- * Handle change event
1800
- */
1801
- var handleOnChange = function (event) {
1802
- var _a = event.target, value = _a.value, selectionStart = _a.selectionStart;
1803
- processChange(value, selectionStart);
1804
- onChange && onChange(event);
1805
- };
1806
- /**
1807
- * Handle focus event
1808
- */
1809
- var handleOnFocus = function (event) {
1810
- onFocus && onFocus(event);
1811
- return stateValue ? stateValue.length : 0;
1812
- };
1813
- /**
1814
- * Handle blur event
1815
- *
1816
- * Format value by padding/trimming decimals if required by
1817
- */
1818
- var handleOnBlur = function (event) {
1819
- var value = event.target.value;
1820
- var valueOnly = cleanValue(__assign({ value: value }, cleanValueOptions));
1821
- if (valueOnly === '-' || !valueOnly) {
1822
- setStateValue('');
1823
- onBlur && onBlur(event);
1824
- return;
1825
- }
1826
- var fixedDecimals = fixedDecimalValue(valueOnly, decimalSeparator, fixedDecimalLength);
1827
- var newValue = padTrimValue(fixedDecimals, decimalSeparator, decimalScale !== undefined ? decimalScale : fixedDecimalLength);
1828
- var numberValue = parseFloat(newValue.replace(decimalSeparator, '.'));
1829
- var formattedValue = formatValue(__assign(__assign({}, formatValueOptions), { value: newValue }));
1830
- if (onValueChange) {
1831
- onValueChange(newValue, name, {
1832
- float: numberValue,
1833
- formatted: formattedValue,
1834
- value: newValue,
1835
- });
1836
- }
1837
- setStateValue(formattedValue);
1838
- onBlur && onBlur(event);
1839
- };
1840
- /**
1841
- * Handle key down event
1842
- *
1843
- * Increase or decrease value by step
1844
- */
1845
- var handleOnKeyDown = function (event) {
1846
- var key = event.key;
1847
- setLastKeyStroke(key);
1848
- if (step && (key === 'ArrowUp' || key === 'ArrowDown')) {
1849
- event.preventDefault();
1850
- setCursor(stateValue.length);
1851
- var currentValue = parseFloat(userValue !== undefined && userValue !== null
1852
- ? String(userValue).replace(decimalSeparator, '.')
1853
- : cleanValue(__assign({ value: stateValue }, cleanValueOptions))) || 0;
1854
- var newValue = key === 'ArrowUp' ? currentValue + step : currentValue - step;
1855
- if (min !== undefined && newValue < min) {
1856
- return;
1857
- }
1858
- if (max !== undefined && newValue > max) {
1859
- return;
1860
- }
1861
- var fixedLength = String(step).includes('.')
1862
- ? Number(String(step).split('.')[1].length)
1863
- : undefined;
1864
- processChange(String(fixedLength ? newValue.toFixed(fixedLength) : newValue).replace('.', decimalSeparator));
1865
- }
1866
- onKeyDown && onKeyDown(event);
1867
- };
1868
- /**
1869
- * Handle key up event
1870
- *
1871
- * Move cursor if there is a suffix to prevent user typing past suffix
1872
- */
1873
- var handleOnKeyUp = function (event) {
1874
- var key = event.key, selectionStart = event.currentTarget.selectionStart;
1875
- if (key !== 'ArrowUp' && key !== 'ArrowDown' && stateValue !== '-') {
1876
- var suffix_1 = getSuffix(stateValue, { groupSeparator: groupSeparator, decimalSeparator: decimalSeparator });
1877
- if (suffix_1 && selectionStart && selectionStart > stateValue.length - suffix_1.length) {
1878
- /* istanbul ignore else */
1879
- if (inputRef && typeof inputRef === 'object' && inputRef.current) {
1880
- var newCursor = stateValue.length - suffix_1.length;
1881
- inputRef.current.setSelectionRange(newCursor, newCursor);
1882
- }
1883
- }
1884
- }
1885
- onKeyUp && onKeyUp(event);
1886
- };
1887
- React.useEffect(function () {
1888
- // prevent cursor jumping if editing value
1889
- if (dirty &&
1890
- stateValue !== '-' &&
1891
- inputRef &&
1892
- typeof inputRef === 'object' &&
1893
- inputRef.current) {
1894
- inputRef.current.setSelectionRange(cursor, cursor);
1895
- }
1896
- }, [stateValue, cursor, inputRef, dirty, changeCount]);
1897
- /**
1898
- * If user has only entered "-" or decimal separator,
1899
- * keep the char to allow them to enter next value
1900
- */
1901
- var getRenderValue = function () {
1902
- if (userValue !== undefined &&
1903
- userValue !== null &&
1904
- stateValue !== '-' &&
1905
- (!decimalSeparator || stateValue !== decimalSeparator)) {
1906
- return formatValue(__assign(__assign({}, formatValueOptions), { decimalScale: dirty ? undefined : decimalScale, value: String(userValue) }));
1907
- }
1908
- return stateValue;
1909
- };
1910
- var inputProps = __assign({ type: 'text', inputMode: 'decimal', id: id,
1911
- name: name,
1912
- className: className, onChange: handleOnChange, onBlur: handleOnBlur, onFocus: handleOnFocus, onKeyDown: handleOnKeyDown, onKeyUp: handleOnKeyUp, placeholder: placeholder,
1913
- disabled: disabled, value: getRenderValue(), ref: inputRef }, props);
1914
- if (customInput) {
1915
- var CustomInput = customInput;
1916
- return React__default.createElement(CustomInput, __assign({}, inputProps));
1917
- }
1918
- return React__default.createElement("input", __assign({}, inputProps));
1919
- });
1920
- CurrencyInput.displayName = 'CurrencyInput';
1921
-
1922
1355
  var _excluded$5 = ["value", "onChange", "prefix", "allowNegativeValue", "groupSeparator", "decimalSeparator"];
1923
1356
  var unMask = function unMask() {
1924
1357
  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
@@ -1937,13 +1370,23 @@
1937
1370
  decimalSeparator = _ref.decimalSeparator,
1938
1371
  rest = _objectWithoutProperties(_ref, _excluded$5);
1939
1372
 
1940
- return /*#__PURE__*/React__default.createElement(CurrencyInput, _extends({}, rest, {
1941
- value: value,
1942
- prefix: prefix,
1943
- onValueChange: onChange,
1944
- groupSeparator: groupSeparator,
1945
- decimalSeparator: decimalSeparator,
1946
- allowNegativeValue: allowNegativeValue
1373
+ var handleValueChange = function handleValueChange(event) {
1374
+ var inputValue = event.target.value;
1375
+ var unmaskedValue = unMask(inputValue);
1376
+ onChange(unmaskedValue);
1377
+ };
1378
+
1379
+ var formatCurrency = function formatCurrency(originalValue) {
1380
+ var numericValue = Number(originalValue);
1381
+ var formattedValue = numericValue.toLocaleString('en-US');
1382
+ return prefix + formattedValue;
1383
+ };
1384
+
1385
+ var formattedValue = formatCurrency(value);
1386
+ return /*#__PURE__*/React__default.createElement("input", _extends({}, rest, {
1387
+ type: "text",
1388
+ value: formattedValue,
1389
+ onChange: handleValueChange
1947
1390
  }));
1948
1391
  };
1949
1392
 
@@ -3484,7 +2927,7 @@
3484
2927
  // Clean Value
3485
2928
  // ==============================
3486
2929
 
3487
- var cleanValue$1 = function cleanValue(value) {
2930
+ var cleanValue = function cleanValue(value) {
3488
2931
  if (Array.isArray(value)) return value.filter(Boolean);
3489
2932
  if (_typeof(value) === 'object' && value !== null) return [value];
3490
2933
  return [];
@@ -6751,7 +6194,7 @@
6751
6194
 
6752
6195
  _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);
6753
6196
 
6754
- var _selectValue = cleanValue$1(value);
6197
+ var _selectValue = cleanValue(value);
6755
6198
 
6756
6199
  var _menuOptions = _this.buildMenuOptions(_props, _selectValue);
6757
6200
 
@@ -6786,7 +6229,7 @@
6786
6229
  this.cacheComponents(nextProps.components); // rebuild the menu options
6787
6230
 
6788
6231
  if (nextProps.value !== value || nextProps.options !== options || nextProps.inputValue !== inputValue) {
6789
- var selectValue = cleanValue$1(nextProps.value);
6232
+ var selectValue = cleanValue(nextProps.value);
6790
6233
  var menuOptions = this.buildMenuOptions(nextProps, selectValue);
6791
6234
  var focusedValue = this.getNextFocusedValue(selectValue);
6792
6235
  var focusedOption = this.getNextFocusedOption(menuOptions.focusable);
@@ -8193,7 +7636,7 @@
8193
7636
  };
8194
7637
 
8195
7638
  if (isMulti) {
8196
- onChange([].concat(_toConsumableArray$1(cleanValue$1(value)), [newOptionData]), newActionMeta);
7639
+ onChange([].concat(_toConsumableArray$1(cleanValue(value)), [newOptionData]), newActionMeta);
8197
7640
  } else {
8198
7641
  onChange(newOptionData, newActionMeta);
8199
7642
  }
@@ -8226,7 +7669,7 @@
8226
7669
  var options = nextProps.options || [];
8227
7670
  var newOption = this.state.newOption;
8228
7671
 
8229
- if (isValidNewOption(inputValue, cleanValue$1(value), options)) {
7672
+ if (isValidNewOption(inputValue, cleanValue(value), options)) {
8230
7673
  newOption = getNewOptionData(inputValue, formatCreateLabel(inputValue));
8231
7674
  } else {
8232
7675
  newOption = undefined;
@@ -10353,7 +9796,7 @@
10353
9796
  }, function (props) {
10354
9797
  return props.theme.rareStepColors.ntrlMin;
10355
9798
  });
10356
- var SideNavLinksContainer = styled__default.div(_templateObject19$1 || (_templateObject19$1 = _taggedTemplateLiteral(["\n {\n overflow-y: scroll;\n overflow-x: hidden;\n height: 90%;\n padding-bottom: 50px;\n }\n"])));
9799
+ var SideNavLinksContainer = styled__default.div(_templateObject19$1 || (_templateObject19$1 = _taggedTemplateLiteral(["\n {\n overflow-y: auto;\n overflow-x: hidden;\n height: 90%;\n padding-bottom: 50px;\n overscroll-behavior: contain;\n }\n"])));
10357
9800
  var MenuSideNavWrapper = styled__default.div(_templateObject20$1 || (_templateObject20$1 = _taggedTemplateLiteral(["\n {\n .side-nav {\n transition: left 1s ease-in-out;\n\n &--open {\n left: 0;\n }\n\n &--close {\n left: -100%;\n }\n\n &__currency {\n margin: ", " 0 0\n ", ";\n }\n }\n\n .overlay {\n transition: right 1s ease-in-out;\n\n &--open {\n right: 0;\n }\n\n &--close {\n right: 200%;\n }\n }\n }\n"])), function (props) {
10358
9801
  return props.theme.marginPaddings[4];
10359
9802
  }, function (props) {