@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/build/bundle.js CHANGED
@@ -1398,573 +1398,6 @@
1398
1398
  return /*#__PURE__*/React__default.createElement(Button$4, restProps, children);
1399
1399
  };
1400
1400
 
1401
- /*! *****************************************************************************
1402
- Copyright (c) Microsoft Corporation.
1403
-
1404
- Permission to use, copy, modify, and/or distribute this software for any
1405
- purpose with or without fee is hereby granted.
1406
-
1407
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
1408
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1409
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
1410
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1411
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1412
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1413
- PERFORMANCE OF THIS SOFTWARE.
1414
- ***************************************************************************** */
1415
-
1416
- var __assign = function() {
1417
- __assign = Object.assign || function __assign(t) {
1418
- for (var s, i = 1, n = arguments.length; i < n; i++) {
1419
- s = arguments[i];
1420
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1421
- }
1422
- return t;
1423
- };
1424
- return __assign.apply(this, arguments);
1425
- };
1426
-
1427
- function __rest(s, e) {
1428
- var t = {};
1429
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
1430
- t[p] = s[p];
1431
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
1432
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1433
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
1434
- t[p[i]] = s[p[i]];
1435
- }
1436
- return t;
1437
- }
1438
-
1439
- function __spreadArray(to, from, pack) {
1440
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
1441
- if (ar || !(i in from)) {
1442
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
1443
- ar[i] = from[i];
1444
- }
1445
- }
1446
- return to.concat(ar || from);
1447
- }
1448
-
1449
- /**
1450
- * Escape regex char
1451
- *
1452
- * See: https://stackoverflow.com/questions/17885855/use-dynamic-variable-string-as-regex-pattern-in-javascript
1453
- */
1454
- var escapeRegExp = function (stringToGoIntoTheRegex) {
1455
- return stringToGoIntoTheRegex.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
1456
- };
1457
-
1458
- var abbrMap = { k: 1000, m: 1000000, b: 1000000000 };
1459
- /**
1460
- * Parse a value with abbreviation e.g 1k = 1000
1461
- */
1462
- var parseAbbrValue = function (value, decimalSeparator) {
1463
- if (decimalSeparator === void 0) { decimalSeparator = '.'; }
1464
- var reg = new RegExp("(\\d+(" + escapeRegExp(decimalSeparator) + "\\d*)?)([kmb])$", 'i');
1465
- var match = value.match(reg);
1466
- if (match) {
1467
- var digits = match[1], abbr = match[3];
1468
- var multiplier = abbrMap[abbr.toLowerCase()];
1469
- return Number(digits.replace(decimalSeparator, '.')) * multiplier;
1470
- }
1471
- return undefined;
1472
- };
1473
-
1474
- /**
1475
- * Remove group separator from value eg. 1,000 > 1000
1476
- */
1477
- var removeSeparators = function (value, separator) {
1478
- if (separator === void 0) { separator = ','; }
1479
- var reg = new RegExp(escapeRegExp(separator), 'g');
1480
- return value.replace(reg, '');
1481
- };
1482
-
1483
- /**
1484
- * Remove invalid characters
1485
- */
1486
- var removeInvalidChars = function (value, validChars) {
1487
- var chars = escapeRegExp(validChars.join(''));
1488
- var reg = new RegExp("[^\\d" + chars + "]", 'gi');
1489
- return value.replace(reg, '');
1490
- };
1491
-
1492
- /**
1493
- * Remove prefix, separators and extra decimals from value
1494
- */
1495
- var cleanValue = function (_a) {
1496
- 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;
1497
- var transformedValue = transformRawValue(value);
1498
- if (transformedValue === '-') {
1499
- return transformedValue;
1500
- }
1501
- var abbreviations = disableAbbreviations ? [] : ['k', 'm', 'b'];
1502
- var reg = new RegExp("((^|\\D)-\\d)|(-" + escapeRegExp(prefix) + ")");
1503
- var isNegative = reg.test(transformedValue);
1504
- // Is there a digit before the prefix? eg. 1$
1505
- var _k = RegExp("(\\d+)-?" + escapeRegExp(prefix)).exec(value) || [], prefixWithValue = _k[0], preValue = _k[1];
1506
- var withoutPrefix = prefix
1507
- ? prefixWithValue
1508
- ? transformedValue.replace(prefixWithValue, '').concat(preValue)
1509
- : transformedValue.replace(prefix, '')
1510
- : transformedValue;
1511
- var withoutSeparators = removeSeparators(withoutPrefix, groupSeparator);
1512
- var withoutInvalidChars = removeInvalidChars(withoutSeparators, __spreadArray([
1513
- groupSeparator,
1514
- decimalSeparator
1515
- ], abbreviations));
1516
- var valueOnly = withoutInvalidChars;
1517
- if (!disableAbbreviations) {
1518
- // disallow letter without number
1519
- if (abbreviations.some(function (letter) { return letter === withoutInvalidChars.toLowerCase(); })) {
1520
- return '';
1521
- }
1522
- var parsed = parseAbbrValue(withoutInvalidChars, decimalSeparator);
1523
- if (parsed) {
1524
- valueOnly = String(parsed);
1525
- }
1526
- }
1527
- var includeNegative = isNegative && allowNegativeValue ? '-' : '';
1528
- if (decimalSeparator && valueOnly.includes(decimalSeparator)) {
1529
- var _l = withoutInvalidChars.split(decimalSeparator), int = _l[0], decimals = _l[1];
1530
- var trimmedDecimals = decimalsLimit && decimals ? decimals.slice(0, decimalsLimit) : decimals;
1531
- var includeDecimals = allowDecimals ? "" + decimalSeparator + trimmedDecimals : '';
1532
- return "" + includeNegative + int + includeDecimals;
1533
- }
1534
- return "" + includeNegative + valueOnly;
1535
- };
1536
-
1537
- var fixedDecimalValue = function (value, decimalSeparator, fixedDecimalLength) {
1538
- if (fixedDecimalLength && value.length > 1) {
1539
- if (value.includes(decimalSeparator)) {
1540
- var _a = value.split(decimalSeparator), int = _a[0], decimals = _a[1];
1541
- if (decimals.length > fixedDecimalLength) {
1542
- return "" + int + decimalSeparator + decimals.slice(0, fixedDecimalLength);
1543
- }
1544
- }
1545
- var reg = value.length > fixedDecimalLength
1546
- ? new RegExp("(\\d+)(\\d{" + fixedDecimalLength + "})")
1547
- : new RegExp("(\\d)(\\d+)");
1548
- var match = value.match(reg);
1549
- if (match) {
1550
- var int = match[1], decimals = match[2];
1551
- return "" + int + decimalSeparator + decimals;
1552
- }
1553
- }
1554
- return value;
1555
- };
1556
-
1557
- var getSuffix = function (value, _a) {
1558
- var _b = _a.groupSeparator, groupSeparator = _b === void 0 ? ',' : _b, _c = _a.decimalSeparator, decimalSeparator = _c === void 0 ? '.' : _c;
1559
- var suffixReg = new RegExp("\\d([^" + escapeRegExp(groupSeparator) + escapeRegExp(decimalSeparator) + "0-9]+)");
1560
- var suffixMatch = value.match(suffixReg);
1561
- return suffixMatch ? suffixMatch[1] : undefined;
1562
- };
1563
-
1564
- /**
1565
- * Format value with decimal separator, group separator and prefix
1566
- */
1567
- var formatValue = function (options) {
1568
- 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;
1569
- if (_value === '' || _value === undefined) {
1570
- return '';
1571
- }
1572
- if (_value === '-') {
1573
- return '-';
1574
- }
1575
- var isNegative = new RegExp("^\\d?-" + (prefix ? escapeRegExp(prefix) + "?" : '') + "\\d").test(_value);
1576
- var value = decimalSeparator !== '.'
1577
- ? replaceDecimalSeparator(_value, decimalSeparator, isNegative)
1578
- : _value;
1579
- var numberFormatter = intlConfig
1580
- ? new Intl.NumberFormat(intlConfig.locale, intlConfig.currency
1581
- ? {
1582
- style: 'currency',
1583
- currency: intlConfig.currency,
1584
- minimumFractionDigits: decimalScale || 0,
1585
- maximumFractionDigits: 20,
1586
- }
1587
- : undefined)
1588
- : new Intl.NumberFormat(undefined, {
1589
- minimumFractionDigits: decimalScale || 0,
1590
- maximumFractionDigits: 20,
1591
- });
1592
- var parts = numberFormatter.formatToParts(Number(value));
1593
- var formatted = replaceParts(parts, options);
1594
- // Does intl formatting add a suffix?
1595
- var intlSuffix = getSuffix(formatted, __assign({}, options));
1596
- // Include decimal separator if user input ends with decimal separator
1597
- var includeDecimalSeparator = _value.slice(-1) === decimalSeparator ? decimalSeparator : '';
1598
- var _c = value.match(RegExp('\\d+\\.(\\d+)')) || [], decimals = _c[1];
1599
- // Keep original decimal padding if no decimalScale
1600
- if (decimalScale === undefined && decimals && decimalSeparator) {
1601
- if (formatted.includes(decimalSeparator)) {
1602
- formatted = formatted.replace(RegExp("(\\d+)(" + escapeRegExp(decimalSeparator) + ")(\\d+)", 'g'), "$1$2" + decimals);
1603
- }
1604
- else {
1605
- if (intlSuffix && !suffix) {
1606
- formatted = formatted.replace(intlSuffix, "" + decimalSeparator + decimals + intlSuffix);
1607
- }
1608
- else {
1609
- formatted = "" + formatted + decimalSeparator + decimals;
1610
- }
1611
- }
1612
- }
1613
- if (suffix && includeDecimalSeparator) {
1614
- return "" + formatted + includeDecimalSeparator + suffix;
1615
- }
1616
- if (intlSuffix && includeDecimalSeparator) {
1617
- return formatted.replace(intlSuffix, "" + includeDecimalSeparator + intlSuffix);
1618
- }
1619
- if (intlSuffix && suffix) {
1620
- return formatted.replace(intlSuffix, "" + includeDecimalSeparator + suffix);
1621
- }
1622
- return [formatted, includeDecimalSeparator, suffix].join('');
1623
- };
1624
- /**
1625
- * Before converting to Number, decimal separator has to be .
1626
- */
1627
- var replaceDecimalSeparator = function (value, decimalSeparator, isNegative) {
1628
- var newValue = value;
1629
- if (decimalSeparator && decimalSeparator !== '.') {
1630
- newValue = newValue.replace(RegExp(escapeRegExp(decimalSeparator), 'g'), '.');
1631
- if (isNegative && decimalSeparator === '-') {
1632
- newValue = "-" + newValue.slice(1);
1633
- }
1634
- }
1635
- return newValue;
1636
- };
1637
- var replaceParts = function (parts, _a) {
1638
- var prefix = _a.prefix, groupSeparator = _a.groupSeparator, decimalSeparator = _a.decimalSeparator, decimalScale = _a.decimalScale, _b = _a.disableGroupSeparators, disableGroupSeparators = _b === void 0 ? false : _b;
1639
- return parts
1640
- .reduce(function (prev, _a, i) {
1641
- var type = _a.type, value = _a.value;
1642
- if (i === 0 && prefix) {
1643
- if (type === 'minusSign') {
1644
- return [value, prefix];
1645
- }
1646
- if (type === 'currency') {
1647
- return __spreadArray(__spreadArray([], prev), [prefix]);
1648
- }
1649
- return [prefix, value];
1650
- }
1651
- if (type === 'currency') {
1652
- return prefix ? prev : __spreadArray(__spreadArray([], prev), [value]);
1653
- }
1654
- if (type === 'group') {
1655
- return !disableGroupSeparators
1656
- ? __spreadArray(__spreadArray([], prev), [groupSeparator !== undefined ? groupSeparator : value]) : prev;
1657
- }
1658
- if (type === 'decimal') {
1659
- if (decimalScale !== undefined && decimalScale === 0) {
1660
- return prev;
1661
- }
1662
- return __spreadArray(__spreadArray([], prev), [decimalSeparator !== undefined ? decimalSeparator : value]);
1663
- }
1664
- if (type === 'fraction') {
1665
- return __spreadArray(__spreadArray([], prev), [decimalScale !== undefined ? value.slice(0, decimalScale) : value]);
1666
- }
1667
- return __spreadArray(__spreadArray([], prev), [value]);
1668
- }, [''])
1669
- .join('');
1670
- };
1671
-
1672
- var defaultConfig = {
1673
- currencySymbol: '',
1674
- groupSeparator: '',
1675
- decimalSeparator: '',
1676
- prefix: '',
1677
- suffix: '',
1678
- };
1679
- /**
1680
- * Get locale config from input or default
1681
- */
1682
- var getLocaleConfig = function (intlConfig) {
1683
- var _a = intlConfig || {}, locale = _a.locale, currency = _a.currency;
1684
- var numberFormatter = locale
1685
- ? new Intl.NumberFormat(locale, currency ? { currency: currency, style: 'currency' } : undefined)
1686
- : new Intl.NumberFormat();
1687
- return numberFormatter.formatToParts(1000.1).reduce(function (prev, curr, i) {
1688
- if (curr.type === 'currency') {
1689
- if (i === 0) {
1690
- return __assign(__assign({}, prev), { currencySymbol: curr.value, prefix: curr.value });
1691
- }
1692
- else {
1693
- return __assign(__assign({}, prev), { currencySymbol: curr.value, suffix: curr.value });
1694
- }
1695
- }
1696
- if (curr.type === 'group') {
1697
- return __assign(__assign({}, prev), { groupSeparator: curr.value });
1698
- }
1699
- if (curr.type === 'decimal') {
1700
- return __assign(__assign({}, prev), { decimalSeparator: curr.value });
1701
- }
1702
- return prev;
1703
- }, defaultConfig);
1704
- };
1705
-
1706
- var isNumber = function (input) { return RegExp(/\d/, 'gi').test(input); };
1707
-
1708
- var padTrimValue = function (value, decimalSeparator, decimalScale) {
1709
- if (decimalSeparator === void 0) { decimalSeparator = '.'; }
1710
- if (decimalScale === undefined || value === '' || value === undefined) {
1711
- return value;
1712
- }
1713
- if (!value.match(/\d/g)) {
1714
- return '';
1715
- }
1716
- var _a = value.split(decimalSeparator), int = _a[0], decimals = _a[1];
1717
- if (decimalScale === 0) {
1718
- return int;
1719
- }
1720
- var newValue = decimals || '';
1721
- if (newValue.length < decimalScale) {
1722
- while (newValue.length < decimalScale) {
1723
- newValue += '0';
1724
- }
1725
- }
1726
- else {
1727
- newValue = newValue.slice(0, decimalScale);
1728
- }
1729
- return "" + int + decimalSeparator + newValue;
1730
- };
1731
-
1732
- /**
1733
- * Based on the last key stroke and the cursor position, update the value
1734
- * and reposition the cursor to the right place
1735
- */
1736
- var repositionCursor = function (_a) {
1737
- var selectionStart = _a.selectionStart, value = _a.value, lastKeyStroke = _a.lastKeyStroke, stateValue = _a.stateValue, groupSeparator = _a.groupSeparator;
1738
- var cursorPosition = selectionStart;
1739
- var modifiedValue = value;
1740
- if (stateValue && cursorPosition) {
1741
- var splitValue = value.split('');
1742
- // if cursor is to right of groupSeparator and backspace pressed, delete the character to the left of the separator and reposition the cursor
1743
- if (lastKeyStroke === 'Backspace' && stateValue[cursorPosition] === groupSeparator) {
1744
- splitValue.splice(cursorPosition - 1, 1);
1745
- cursorPosition -= 1;
1746
- }
1747
- // if cursor is to left of groupSeparator and delete pressed, delete the character to the right of the separator and reposition the cursor
1748
- if (lastKeyStroke === 'Delete' && stateValue[cursorPosition] === groupSeparator) {
1749
- splitValue.splice(cursorPosition, 1);
1750
- cursorPosition += 1;
1751
- }
1752
- modifiedValue = splitValue.join('');
1753
- return { modifiedValue: modifiedValue, cursorPosition: cursorPosition };
1754
- }
1755
- return { modifiedValue: modifiedValue, cursorPosition: selectionStart };
1756
- };
1757
-
1758
- var CurrencyInput = React.forwardRef(function (_a, ref) {
1759
- 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"]);
1760
- if (_decimalSeparator && isNumber(_decimalSeparator)) {
1761
- throw new Error('decimalSeparator cannot be a number');
1762
- }
1763
- if (_groupSeparator && isNumber(_groupSeparator)) {
1764
- throw new Error('groupSeparator cannot be a number');
1765
- }
1766
- var localeConfig = React.useMemo(function () { return getLocaleConfig(intlConfig); }, [intlConfig]);
1767
- var decimalSeparator = _decimalSeparator || localeConfig.decimalSeparator || '';
1768
- var groupSeparator = _groupSeparator || localeConfig.groupSeparator || '';
1769
- if (decimalSeparator &&
1770
- groupSeparator &&
1771
- decimalSeparator === groupSeparator &&
1772
- disableGroupSeparators === false) {
1773
- throw new Error('decimalSeparator cannot be the same as groupSeparator');
1774
- }
1775
- var formatValueOptions = {
1776
- decimalSeparator: decimalSeparator,
1777
- groupSeparator: groupSeparator,
1778
- disableGroupSeparators: disableGroupSeparators,
1779
- intlConfig: intlConfig,
1780
- prefix: prefix || localeConfig.prefix,
1781
- suffix: suffix,
1782
- };
1783
- var cleanValueOptions = {
1784
- decimalSeparator: decimalSeparator,
1785
- groupSeparator: groupSeparator,
1786
- allowDecimals: allowDecimals,
1787
- decimalsLimit: decimalsLimit || fixedDecimalLength || 2,
1788
- allowNegativeValue: allowNegativeValue,
1789
- disableAbbreviations: disableAbbreviations,
1790
- prefix: prefix || localeConfig.prefix,
1791
- transformRawValue: transformRawValue,
1792
- };
1793
- var formattedStateValue = defaultValue !== undefined && defaultValue !== null
1794
- ? formatValue(__assign(__assign({}, formatValueOptions), { decimalScale: decimalScale, value: String(defaultValue) }))
1795
- : userValue !== undefined && userValue !== null
1796
- ? formatValue(__assign(__assign({}, formatValueOptions), { decimalScale: decimalScale, value: String(userValue) }))
1797
- : '';
1798
- var _g = React.useState(formattedStateValue), stateValue = _g[0], setStateValue = _g[1];
1799
- var _h = React.useState(false), dirty = _h[0], setDirty = _h[1];
1800
- var _j = React.useState(0), cursor = _j[0], setCursor = _j[1];
1801
- var _k = React.useState(0), changeCount = _k[0], setChangeCount = _k[1];
1802
- var _l = React.useState(null), lastKeyStroke = _l[0], setLastKeyStroke = _l[1];
1803
- var inputRef = ref || React.useRef(null);
1804
- /**
1805
- * Process change in value
1806
- */
1807
- var processChange = function (value, selectionStart) {
1808
- setDirty(true);
1809
- var _a = repositionCursor({
1810
- selectionStart: selectionStart,
1811
- value: value,
1812
- lastKeyStroke: lastKeyStroke,
1813
- stateValue: stateValue,
1814
- groupSeparator: groupSeparator,
1815
- }), modifiedValue = _a.modifiedValue, cursorPosition = _a.cursorPosition;
1816
- var stringValue = cleanValue(__assign({ value: modifiedValue }, cleanValueOptions));
1817
- if (userMaxLength && stringValue.replace(/-/g, '').length > userMaxLength) {
1818
- return;
1819
- }
1820
- if (stringValue === '' || stringValue === '-' || stringValue === decimalSeparator) {
1821
- onValueChange && onValueChange(undefined, name, { float: null, formatted: '', value: '' });
1822
- setStateValue(stringValue);
1823
- return;
1824
- }
1825
- var numberValue = parseFloat(stringValue.replace(decimalSeparator, '.'));
1826
- var formattedValue = formatValue(__assign({ value: stringValue }, formatValueOptions));
1827
- if (cursorPosition !== undefined && cursorPosition !== null) {
1828
- // Prevent cursor jumping
1829
- var newCursor = cursorPosition + (formattedValue.length - value.length);
1830
- newCursor = newCursor <= 0 ? (prefix ? prefix.length : 0) : newCursor;
1831
- setCursor(newCursor);
1832
- setChangeCount(changeCount + 1);
1833
- }
1834
- setStateValue(formattedValue);
1835
- if (onValueChange) {
1836
- var values = {
1837
- float: numberValue,
1838
- formatted: formattedValue,
1839
- value: stringValue,
1840
- };
1841
- onValueChange(stringValue, name, values);
1842
- }
1843
- };
1844
- /**
1845
- * Handle change event
1846
- */
1847
- var handleOnChange = function (event) {
1848
- var _a = event.target, value = _a.value, selectionStart = _a.selectionStart;
1849
- processChange(value, selectionStart);
1850
- onChange && onChange(event);
1851
- };
1852
- /**
1853
- * Handle focus event
1854
- */
1855
- var handleOnFocus = function (event) {
1856
- onFocus && onFocus(event);
1857
- return stateValue ? stateValue.length : 0;
1858
- };
1859
- /**
1860
- * Handle blur event
1861
- *
1862
- * Format value by padding/trimming decimals if required by
1863
- */
1864
- var handleOnBlur = function (event) {
1865
- var value = event.target.value;
1866
- var valueOnly = cleanValue(__assign({ value: value }, cleanValueOptions));
1867
- if (valueOnly === '-' || !valueOnly) {
1868
- setStateValue('');
1869
- onBlur && onBlur(event);
1870
- return;
1871
- }
1872
- var fixedDecimals = fixedDecimalValue(valueOnly, decimalSeparator, fixedDecimalLength);
1873
- var newValue = padTrimValue(fixedDecimals, decimalSeparator, decimalScale !== undefined ? decimalScale : fixedDecimalLength);
1874
- var numberValue = parseFloat(newValue.replace(decimalSeparator, '.'));
1875
- var formattedValue = formatValue(__assign(__assign({}, formatValueOptions), { value: newValue }));
1876
- if (onValueChange) {
1877
- onValueChange(newValue, name, {
1878
- float: numberValue,
1879
- formatted: formattedValue,
1880
- value: newValue,
1881
- });
1882
- }
1883
- setStateValue(formattedValue);
1884
- onBlur && onBlur(event);
1885
- };
1886
- /**
1887
- * Handle key down event
1888
- *
1889
- * Increase or decrease value by step
1890
- */
1891
- var handleOnKeyDown = function (event) {
1892
- var key = event.key;
1893
- setLastKeyStroke(key);
1894
- if (step && (key === 'ArrowUp' || key === 'ArrowDown')) {
1895
- event.preventDefault();
1896
- setCursor(stateValue.length);
1897
- var currentValue = parseFloat(userValue !== undefined && userValue !== null
1898
- ? String(userValue).replace(decimalSeparator, '.')
1899
- : cleanValue(__assign({ value: stateValue }, cleanValueOptions))) || 0;
1900
- var newValue = key === 'ArrowUp' ? currentValue + step : currentValue - step;
1901
- if (min !== undefined && newValue < min) {
1902
- return;
1903
- }
1904
- if (max !== undefined && newValue > max) {
1905
- return;
1906
- }
1907
- var fixedLength = String(step).includes('.')
1908
- ? Number(String(step).split('.')[1].length)
1909
- : undefined;
1910
- processChange(String(fixedLength ? newValue.toFixed(fixedLength) : newValue).replace('.', decimalSeparator));
1911
- }
1912
- onKeyDown && onKeyDown(event);
1913
- };
1914
- /**
1915
- * Handle key up event
1916
- *
1917
- * Move cursor if there is a suffix to prevent user typing past suffix
1918
- */
1919
- var handleOnKeyUp = function (event) {
1920
- var key = event.key, selectionStart = event.currentTarget.selectionStart;
1921
- if (key !== 'ArrowUp' && key !== 'ArrowDown' && stateValue !== '-') {
1922
- var suffix_1 = getSuffix(stateValue, { groupSeparator: groupSeparator, decimalSeparator: decimalSeparator });
1923
- if (suffix_1 && selectionStart && selectionStart > stateValue.length - suffix_1.length) {
1924
- /* istanbul ignore else */
1925
- if (inputRef && typeof inputRef === 'object' && inputRef.current) {
1926
- var newCursor = stateValue.length - suffix_1.length;
1927
- inputRef.current.setSelectionRange(newCursor, newCursor);
1928
- }
1929
- }
1930
- }
1931
- onKeyUp && onKeyUp(event);
1932
- };
1933
- React.useEffect(function () {
1934
- // prevent cursor jumping if editing value
1935
- if (dirty &&
1936
- stateValue !== '-' &&
1937
- inputRef &&
1938
- typeof inputRef === 'object' &&
1939
- inputRef.current) {
1940
- inputRef.current.setSelectionRange(cursor, cursor);
1941
- }
1942
- }, [stateValue, cursor, inputRef, dirty, changeCount]);
1943
- /**
1944
- * If user has only entered "-" or decimal separator,
1945
- * keep the char to allow them to enter next value
1946
- */
1947
- var getRenderValue = function () {
1948
- if (userValue !== undefined &&
1949
- userValue !== null &&
1950
- stateValue !== '-' &&
1951
- (!decimalSeparator || stateValue !== decimalSeparator)) {
1952
- return formatValue(__assign(__assign({}, formatValueOptions), { decimalScale: dirty ? undefined : decimalScale, value: String(userValue) }));
1953
- }
1954
- return stateValue;
1955
- };
1956
- var inputProps = __assign({ type: 'text', inputMode: 'decimal', id: id,
1957
- name: name,
1958
- className: className, onChange: handleOnChange, onBlur: handleOnBlur, onFocus: handleOnFocus, onKeyDown: handleOnKeyDown, onKeyUp: handleOnKeyUp, placeholder: placeholder,
1959
- disabled: disabled, value: getRenderValue(), ref: inputRef }, props);
1960
- if (customInput) {
1961
- var CustomInput = customInput;
1962
- return React__default.createElement(CustomInput, __assign({}, inputProps));
1963
- }
1964
- return React__default.createElement("input", __assign({}, inputProps));
1965
- });
1966
- CurrencyInput.displayName = 'CurrencyInput';
1967
-
1968
1401
  var _excluded$5 = ["value", "onChange", "prefix", "allowNegativeValue", "groupSeparator", "decimalSeparator"];
1969
1402
  var unMask = function unMask() {
1970
1403
  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
@@ -1983,13 +1416,23 @@
1983
1416
  decimalSeparator = _ref.decimalSeparator,
1984
1417
  rest = _objectWithoutProperties(_ref, _excluded$5);
1985
1418
 
1986
- return /*#__PURE__*/React__default.createElement(CurrencyInput, _extends({}, rest, {
1987
- value: value,
1988
- prefix: prefix,
1989
- onValueChange: onChange,
1990
- groupSeparator: groupSeparator,
1991
- decimalSeparator: decimalSeparator,
1992
- allowNegativeValue: allowNegativeValue
1419
+ var handleValueChange = function handleValueChange(event) {
1420
+ var inputValue = event.target.value;
1421
+ var unmaskedValue = unMask(inputValue);
1422
+ onChange(unmaskedValue);
1423
+ };
1424
+
1425
+ var formatCurrency = function formatCurrency(originalValue) {
1426
+ var numericValue = Number(originalValue);
1427
+ var formattedValue = numericValue.toLocaleString('en-US');
1428
+ return prefix + formattedValue;
1429
+ };
1430
+
1431
+ var formattedValue = formatCurrency(value);
1432
+ return /*#__PURE__*/React__default.createElement("input", _extends({}, rest, {
1433
+ type: "text",
1434
+ value: formattedValue,
1435
+ onChange: handleValueChange
1993
1436
  }));
1994
1437
  };
1995
1438
 
@@ -3530,7 +2973,7 @@
3530
2973
  // Clean Value
3531
2974
  // ==============================
3532
2975
 
3533
- var cleanValue$1 = function cleanValue(value) {
2976
+ var cleanValue = function cleanValue(value) {
3534
2977
  if (Array.isArray(value)) return value.filter(Boolean);
3535
2978
  if (_typeof(value) === 'object' && value !== null) return [value];
3536
2979
  return [];
@@ -6797,7 +6240,7 @@
6797
6240
 
6798
6241
  _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);
6799
6242
 
6800
- var _selectValue = cleanValue$1(value);
6243
+ var _selectValue = cleanValue(value);
6801
6244
 
6802
6245
  var _menuOptions = _this.buildMenuOptions(_props, _selectValue);
6803
6246
 
@@ -6832,7 +6275,7 @@
6832
6275
  this.cacheComponents(nextProps.components); // rebuild the menu options
6833
6276
 
6834
6277
  if (nextProps.value !== value || nextProps.options !== options || nextProps.inputValue !== inputValue) {
6835
- var selectValue = cleanValue$1(nextProps.value);
6278
+ var selectValue = cleanValue(nextProps.value);
6836
6279
  var menuOptions = this.buildMenuOptions(nextProps, selectValue);
6837
6280
  var focusedValue = this.getNextFocusedValue(selectValue);
6838
6281
  var focusedOption = this.getNextFocusedOption(menuOptions.focusable);
@@ -8239,7 +7682,7 @@
8239
7682
  };
8240
7683
 
8241
7684
  if (isMulti) {
8242
- onChange([].concat(_toConsumableArray$1(cleanValue$1(value)), [newOptionData]), newActionMeta);
7685
+ onChange([].concat(_toConsumableArray$1(cleanValue(value)), [newOptionData]), newActionMeta);
8243
7686
  } else {
8244
7687
  onChange(newOptionData, newActionMeta);
8245
7688
  }
@@ -8272,7 +7715,7 @@
8272
7715
  var options = nextProps.options || [];
8273
7716
  var newOption = this.state.newOption;
8274
7717
 
8275
- if (isValidNewOption(inputValue, cleanValue$1(value), options)) {
7718
+ if (isValidNewOption(inputValue, cleanValue(value), options)) {
8276
7719
  newOption = getNewOptionData(inputValue, formatCreateLabel(inputValue));
8277
7720
  } else {
8278
7721
  newOption = undefined;
@@ -12417,7 +11860,7 @@
12417
11860
  }, function (props) {
12418
11861
  return props.theme.rareStepColors.ntrlMin;
12419
11862
  });
12420
- 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"])));
11863
+ 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"])));
12421
11864
  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) {
12422
11865
  return props.theme.marginPaddings[4];
12423
11866
  }, function (props) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bonlineza/luxity-lib",
3
- "version": "2.18.2",
3
+ "version": "2.18.4",
4
4
  "scripts": {
5
5
  "start": "start-storybook -p 9001 -c .storybook -s ./public",
6
6
  "clean": "rimraf ./build/*.*",