@helpdice/ui 2.1.8 → 2.2.2

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 (101) hide show
  1. package/dist/auto-complete/index.js +2147 -8
  2. package/dist/button/index.js +2 -2
  3. package/dist/carousal/index.js +2 -2
  4. package/dist/container/box.d.ts +47 -0
  5. package/dist/container/index.d.ts +2 -0
  6. package/dist/container/index.js +952 -0
  7. package/dist/copy-to-clipboard/clipboard.d.ts +13 -1
  8. package/dist/copy-to-clipboard/index.d.ts +1 -1
  9. package/dist/copy-to-clipboard/index.js +142 -157
  10. package/dist/grid/index.d.ts +2 -3
  11. package/dist/grid/index.js +0 -1
  12. package/dist/index.d.ts +3 -4
  13. package/dist/index.js +14693 -14649
  14. package/dist/input/index.d.ts +4 -0
  15. package/dist/input/index.js +2151 -9
  16. package/dist/input/phone-input/phone.d.ts +13 -0
  17. package/dist/modal/index.js +2 -2
  18. package/dist/placeholder/index.js +643 -8
  19. package/dist/table/index.js +3516 -1368
  20. package/dist/text/child.d.ts +1 -0
  21. package/dist/text/index.js +686 -8
  22. package/dist/text/text.d.ts +1 -0
  23. package/esm/button/button.js +2 -2
  24. package/esm/container/box.d.ts +47 -0
  25. package/esm/container/box.js +43 -0
  26. package/esm/container/index.d.ts +2 -0
  27. package/esm/container/index.js +2 -0
  28. package/esm/copy-to-clipboard/clipboard.d.ts +13 -1
  29. package/esm/copy-to-clipboard/clipboard.js +91 -0
  30. package/esm/copy-to-clipboard/index.d.ts +1 -1
  31. package/esm/copy-to-clipboard/index.js +1 -1
  32. package/esm/grid/index.d.ts +2 -3
  33. package/esm/grid/index.js +5 -3
  34. package/esm/index.d.ts +3 -4
  35. package/esm/index.js +4 -3
  36. package/esm/input/index.d.ts +4 -0
  37. package/esm/input/index.js +4 -0
  38. package/esm/input/phone-input/phone.d.ts +13 -0
  39. package/esm/input/phone-input/phone.js +166 -0
  40. package/esm/table/table-cell.js +2 -1
  41. package/esm/text/child.d.ts +1 -0
  42. package/esm/text/text.d.ts +1 -0
  43. package/esm/text/text.js +25 -3
  44. package/package.json +8 -15
  45. package/dist/currency-input/index.js +0 -862
  46. package/dist/phone-input/index.js +0 -2033
  47. package/dist/phone-input/phone.d.ts +0 -11
  48. package/esm/phone-input/phone.d.ts +0 -11
  49. package/esm/phone-input/phone.js +0 -161
  50. /package/dist/{currency-input → input/currency-input}/components/CurrencyInput.d.ts +0 -0
  51. /package/dist/{currency-input → input/currency-input}/components/CurrencyInputProps.d.ts +0 -0
  52. /package/dist/{currency-input → input/currency-input}/components/utils/cleanValue.d.ts +0 -0
  53. /package/dist/{currency-input → input/currency-input}/components/utils/escapeRegExp.d.ts +0 -0
  54. /package/dist/{currency-input → input/currency-input}/components/utils/fixedDecimalValue.d.ts +0 -0
  55. /package/dist/{currency-input → input/currency-input}/components/utils/formatValue.d.ts +0 -0
  56. /package/dist/{currency-input → input/currency-input}/components/utils/getLocaleConfig.d.ts +0 -0
  57. /package/dist/{currency-input → input/currency-input}/components/utils/getSuffix.d.ts +0 -0
  58. /package/dist/{currency-input → input/currency-input}/components/utils/index.d.ts +0 -0
  59. /package/dist/{currency-input → input/currency-input}/components/utils/isNumber.d.ts +0 -0
  60. /package/dist/{currency-input → input/currency-input}/components/utils/padTrimValue.d.ts +0 -0
  61. /package/dist/{currency-input → input/currency-input}/components/utils/parseAbbrValue.d.ts +0 -0
  62. /package/dist/{currency-input → input/currency-input}/components/utils/removeInvalidChars.d.ts +0 -0
  63. /package/dist/{currency-input → input/currency-input}/components/utils/removeSeparators.d.ts +0 -0
  64. /package/dist/{currency-input → input/currency-input}/components/utils/repositionCursor.d.ts +0 -0
  65. /package/dist/{currency-input → input/currency-input}/index.d.ts +0 -0
  66. /package/dist/{phone-input → input/phone-input}/index.d.ts +0 -0
  67. /package/esm/{currency-input → input/currency-input}/components/CurrencyInput.d.ts +0 -0
  68. /package/esm/{currency-input → input/currency-input}/components/CurrencyInput.js +0 -0
  69. /package/esm/{currency-input → input/currency-input}/components/CurrencyInputProps.d.ts +0 -0
  70. /package/esm/{currency-input → input/currency-input}/components/CurrencyInputProps.js +0 -0
  71. /package/esm/{currency-input → input/currency-input}/components/utils/addSeparators.js +0 -0
  72. /package/esm/{currency-input → input/currency-input}/components/utils/cleanValue.d.ts +0 -0
  73. /package/esm/{currency-input → input/currency-input}/components/utils/cleanValue.js +0 -0
  74. /package/esm/{currency-input → input/currency-input}/components/utils/escapeRegExp.d.ts +0 -0
  75. /package/esm/{currency-input → input/currency-input}/components/utils/escapeRegExp.js +0 -0
  76. /package/esm/{currency-input → input/currency-input}/components/utils/fixedDecimalValue.d.ts +0 -0
  77. /package/esm/{currency-input → input/currency-input}/components/utils/fixedDecimalValue.js +0 -0
  78. /package/esm/{currency-input → input/currency-input}/components/utils/formatValue.d.ts +0 -0
  79. /package/esm/{currency-input → input/currency-input}/components/utils/formatValue.js +0 -0
  80. /package/esm/{currency-input → input/currency-input}/components/utils/getLocaleConfig.d.ts +0 -0
  81. /package/esm/{currency-input → input/currency-input}/components/utils/getLocaleConfig.js +0 -0
  82. /package/esm/{currency-input → input/currency-input}/components/utils/getSuffix.d.ts +0 -0
  83. /package/esm/{currency-input → input/currency-input}/components/utils/getSuffix.js +0 -0
  84. /package/esm/{currency-input → input/currency-input}/components/utils/index.d.ts +0 -0
  85. /package/esm/{currency-input → input/currency-input}/components/utils/index.js +0 -0
  86. /package/esm/{currency-input → input/currency-input}/components/utils/isNumber.d.ts +0 -0
  87. /package/esm/{currency-input → input/currency-input}/components/utils/isNumber.js +0 -0
  88. /package/esm/{currency-input → input/currency-input}/components/utils/padTrimValue.d.ts +0 -0
  89. /package/esm/{currency-input → input/currency-input}/components/utils/padTrimValue.js +0 -0
  90. /package/esm/{currency-input → input/currency-input}/components/utils/parseAbbrValue.d.ts +0 -0
  91. /package/esm/{currency-input → input/currency-input}/components/utils/parseAbbrValue.js +0 -0
  92. /package/esm/{currency-input → input/currency-input}/components/utils/removeInvalidChars.d.ts +0 -0
  93. /package/esm/{currency-input → input/currency-input}/components/utils/removeInvalidChars.js +0 -0
  94. /package/esm/{currency-input → input/currency-input}/components/utils/removeSeparators.d.ts +0 -0
  95. /package/esm/{currency-input → input/currency-input}/components/utils/removeSeparators.js +0 -0
  96. /package/esm/{currency-input → input/currency-input}/components/utils/repositionCursor.d.ts +0 -0
  97. /package/esm/{currency-input → input/currency-input}/components/utils/repositionCursor.js +0 -0
  98. /package/esm/{currency-input → input/currency-input}/index.d.ts +0 -0
  99. /package/esm/{currency-input → input/currency-input}/index.js +0 -0
  100. /package/esm/{phone-input → input/phone-input}/index.d.ts +0 -0
  101. /package/esm/{phone-input → input/phone-input}/index.js +0 -0
@@ -13,6 +13,9 @@ function _arrayLikeToArray(r, a) {
13
13
  function _arrayWithHoles(r) {
14
14
  if (Array.isArray(r)) return r;
15
15
  }
16
+ function _arrayWithoutHoles(r) {
17
+ if (Array.isArray(r)) return _arrayLikeToArray(r);
18
+ }
16
19
  function _createForOfIteratorHelper(r, e) {
17
20
  var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
18
21
  if (!t) {
@@ -78,6 +81,9 @@ function _extends() {
78
81
  return n;
79
82
  }, _extends.apply(null, arguments);
80
83
  }
84
+ function _iterableToArray(r) {
85
+ if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
86
+ }
81
87
  function _iterableToArrayLimit(r, l) {
82
88
  var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
83
89
  if (null != t) {
@@ -89,7 +95,10 @@ function _iterableToArrayLimit(r, l) {
89
95
  f = true,
90
96
  o = false;
91
97
  try {
92
- if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
98
+ if (i = (t = t.call(r)).next, 0 === l) {
99
+ if (Object(t) !== t) return;
100
+ f = !1;
101
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
93
102
  } catch (r) {
94
103
  o = true, n = r;
95
104
  } finally {
@@ -105,6 +114,9 @@ function _iterableToArrayLimit(r, l) {
105
114
  function _nonIterableRest() {
106
115
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
107
116
  }
117
+ function _nonIterableSpread() {
118
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
119
+ }
108
120
  function ownKeys(e, r) {
109
121
  var t = Object.keys(e);
110
122
  if (Object.getOwnPropertySymbols) {
@@ -149,6 +161,9 @@ function _objectWithoutPropertiesLoose(r, e) {
149
161
  function _slicedToArray(r, e) {
150
162
  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
151
163
  }
164
+ function _toConsumableArray(r) {
165
+ return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
166
+ }
152
167
  function _toPrimitive(t, r) {
153
168
  if ("object" != typeof t || !t) return t;
154
169
  var e = t[Symbol.toPrimitive];
@@ -916,7 +931,7 @@ var generateGetAllScaleProps = function generateGetAllScaleProps(props) {
916
931
  return getAllScaleProps;
917
932
  };
918
933
 
919
- var _excluded$3 = ["children"];
934
+ var _excluded$4 = ["children"];
920
935
  var reduceScaleCoefficient = function reduceScaleCoefficient(scale) {
921
936
  if (scale === 1) return scale;
922
937
  var diff = Math.abs((scale - 1) / 2);
@@ -926,7 +941,7 @@ var withScale = function withScale(Render) {
926
941
  var ScaleFC = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
927
942
  var _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref0, _ref1, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _ref25, _ref26, _ref27, _ref28, _ref29, _ref30, _ref31;
928
943
  var children = _ref.children,
929
- props = _objectWithoutProperties(_ref, _excluded$3);
944
+ props = _objectWithoutProperties(_ref, _excluded$4);
930
945
  var _useTheme = theme.useTheme(),
931
946
  layout = _useTheme.layout;
932
947
  var paddingLeft = props.paddingLeft,
@@ -1009,7 +1024,7 @@ var withScale = function withScale(Render) {
1009
1024
  return ScaleFC;
1010
1025
  };
1011
1026
 
1012
- var _excluded$2 = ["label", "labelRight", "color", "error", "type", "icon", "variant", "iconRight", "iconClickable", "onIconClick", "initialValue", "onChange", "readOnly", "value", "onClearClick", "clearable", "className", "onBlur", "onFocus", "autoComplete", "placeholder", "children", "disabled", "fullWidth"];
1027
+ var _excluded$3 = ["label", "labelRight", "color", "error", "type", "icon", "variant", "iconRight", "iconClickable", "onIconClick", "initialValue", "onChange", "readOnly", "value", "onClearClick", "clearable", "className", "onBlur", "onFocus", "autoComplete", "placeholder", "children", "disabled", "fullWidth"];
1013
1028
  var simulateChangeEvent = function simulateChangeEvent(el, event) {
1014
1029
  return _objectSpread2(_objectSpread2({}, event), {}, {
1015
1030
  target: el,
@@ -1053,7 +1068,7 @@ var InputComponent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1053
1068
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
1054
1069
  _ref$fullWidth = _ref.fullWidth,
1055
1070
  fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
1056
- props = _objectWithoutProperties(_ref, _excluded$2);
1071
+ props = _objectWithoutProperties(_ref, _excluded$3);
1057
1072
  var theme$1 = theme.useTheme();
1058
1073
  var _useScale = useScale(),
1059
1074
  SCALES = _useScale.SCALES;
@@ -1197,7 +1212,7 @@ tuple('hover', 'click');
1197
1212
  tuple('top', 'topStart', 'topEnd', 'left', 'leftStart', 'leftEnd', 'bottom', 'bottomStart', 'bottomEnd', 'right', 'rightStart', 'rightEnd');
1198
1213
  tuple('start', 'center', 'end', 'left', 'right');
1199
1214
 
1200
- var _excluded$1 = ["type", "disabled", "readOnly", "onFocus", "onBlur", "className", "initialValue", "onChange", "value", "placeholder", "resize"];
1215
+ var _excluded$2 = ["type", "disabled", "readOnly", "onFocus", "onBlur", "className", "initialValue", "onChange", "value", "placeholder", "resize"];
1201
1216
  tuple('none', 'both', 'horizontal', 'vertical', 'initial', 'inherit');
1202
1217
  var TextareaComponent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1203
1218
  var _ref$type = _ref.type,
@@ -1217,7 +1232,7 @@ var TextareaComponent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1217
1232
  placeholder = _ref.placeholder,
1218
1233
  _ref$resize = _ref.resize,
1219
1234
  resize = _ref$resize === void 0 ? 'none' : _ref$resize,
1220
- props = _objectWithoutProperties(_ref, _excluded$1);
1235
+ props = _objectWithoutProperties(_ref, _excluded$2);
1221
1236
  var theme$1 = theme.useTheme();
1222
1237
  var _useScale = useScale(),
1223
1238
  SCALES = _useScale.SCALES;
@@ -1317,11 +1332,11 @@ var PasswordIcon = function PasswordIcon(_ref) {
1317
1332
  };
1318
1333
  var MemoPasswordIcon = /*#__PURE__*/React.memo(PasswordIcon);
1319
1334
 
1320
- var _excluded = ["hideToggle", "children"];
1335
+ var _excluded$1 = ["hideToggle", "children"];
1321
1336
  var InputPasswordComponent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1322
1337
  var hideToggle = _ref.hideToggle,
1323
1338
  children = _ref.children,
1324
- props = _objectWithoutProperties(_ref, _excluded);
1339
+ props = _objectWithoutProperties(_ref, _excluded$1);
1325
1340
  var _useScale = useScale(),
1326
1341
  getAllScaleProps = _useScale.getAllScaleProps;
1327
1342
  var inputRef = React.useRef(null);
@@ -1363,9 +1378,2136 @@ var InputPasswordComponent = /*#__PURE__*/React.forwardRef(function (_ref, ref)
1363
1378
  InputPasswordComponent.displayName = 'InputPassword';
1364
1379
  var InputPassword = withScale(InputPasswordComponent);
1365
1380
 
1381
+ var countries = [
1382
+ {
1383
+ code: "AD",
1384
+ label: "Andorra",
1385
+ phone: "+376"
1386
+ },
1387
+ {
1388
+ code: "AE",
1389
+ label: "United Arab Emirates",
1390
+ phone: "+971"
1391
+ },
1392
+ {
1393
+ code: "AF",
1394
+ label: "Afghanistan",
1395
+ phone: "+93"
1396
+ },
1397
+ {
1398
+ code: "AG",
1399
+ label: "Antigua and Barbuda",
1400
+ phone: "+1-268"
1401
+ },
1402
+ {
1403
+ code: "AI",
1404
+ label: "Anguilla",
1405
+ phone: "+1-264"
1406
+ },
1407
+ {
1408
+ code: "AL",
1409
+ label: "Albania",
1410
+ phone: "+355"
1411
+ },
1412
+ {
1413
+ code: "AM",
1414
+ label: "Armenia",
1415
+ phone: "+374"
1416
+ },
1417
+ {
1418
+ code: "AO",
1419
+ label: "Angola",
1420
+ phone: "+244"
1421
+ },
1422
+ {
1423
+ code: "AQ",
1424
+ label: "Antarctica",
1425
+ phone: "+672"
1426
+ },
1427
+ {
1428
+ code: "AR",
1429
+ label: "Argentina",
1430
+ phone: "+54"
1431
+ },
1432
+ {
1433
+ code: "AS",
1434
+ label: "American Samoa",
1435
+ phone: "+1-684"
1436
+ },
1437
+ {
1438
+ code: "AT",
1439
+ label: "Austria",
1440
+ phone: "+43"
1441
+ },
1442
+ {
1443
+ code: "AU",
1444
+ label: "Australia",
1445
+ phone: "+61",
1446
+ suggested: true
1447
+ },
1448
+ {
1449
+ code: "AW",
1450
+ label: "Aruba",
1451
+ phone: "+297"
1452
+ },
1453
+ {
1454
+ code: "AX",
1455
+ label: "Alland Islands",
1456
+ phone: "+358"
1457
+ },
1458
+ {
1459
+ code: "AZ",
1460
+ label: "Azerbaijan",
1461
+ phone: "+994"
1462
+ },
1463
+ {
1464
+ code: "BA",
1465
+ label: "Bosnia and Herzegovina",
1466
+ phone: "+387"
1467
+ },
1468
+ {
1469
+ code: "BB",
1470
+ label: "Barbados",
1471
+ phone: "+1-246"
1472
+ },
1473
+ {
1474
+ code: "BD",
1475
+ label: "Bangladesh",
1476
+ phone: "+880"
1477
+ },
1478
+ {
1479
+ code: "BE",
1480
+ label: "Belgium",
1481
+ phone: "+32"
1482
+ },
1483
+ {
1484
+ code: "BF",
1485
+ label: "Burkina Faso",
1486
+ phone: "+226"
1487
+ },
1488
+ {
1489
+ code: "BG",
1490
+ label: "Bulgaria",
1491
+ phone: "+359"
1492
+ },
1493
+ {
1494
+ code: "BH",
1495
+ label: "Bahrain",
1496
+ phone: "+973"
1497
+ },
1498
+ {
1499
+ code: "BI",
1500
+ label: "Burundi",
1501
+ phone: "+257"
1502
+ },
1503
+ {
1504
+ code: "BJ",
1505
+ label: "Benin",
1506
+ phone: "+229"
1507
+ },
1508
+ {
1509
+ code: "BL",
1510
+ label: "Saint Barthelemy",
1511
+ phone: "+590"
1512
+ },
1513
+ {
1514
+ code: "BM",
1515
+ label: "Bermuda",
1516
+ phone: "+1-441"
1517
+ },
1518
+ {
1519
+ code: "BN",
1520
+ label: "Brunei Darussalam",
1521
+ phone: "+673"
1522
+ },
1523
+ {
1524
+ code: "BO",
1525
+ label: "Bolivia",
1526
+ phone: "+591"
1527
+ },
1528
+ {
1529
+ code: "BR",
1530
+ label: "Brazil",
1531
+ phone: "+55"
1532
+ },
1533
+ {
1534
+ code: "BS",
1535
+ label: "Bahamas",
1536
+ phone: "+1-242"
1537
+ },
1538
+ {
1539
+ code: "BT",
1540
+ label: "Bhutan",
1541
+ phone: "+975"
1542
+ },
1543
+ {
1544
+ code: "BV",
1545
+ label: "Bouvet Island",
1546
+ phone: "+47"
1547
+ },
1548
+ {
1549
+ code: "BW",
1550
+ label: "Botswana",
1551
+ phone: "+267"
1552
+ },
1553
+ {
1554
+ code: "BY",
1555
+ label: "Belarus",
1556
+ phone: "+375"
1557
+ },
1558
+ {
1559
+ code: "BZ",
1560
+ label: "Belize",
1561
+ phone: "+501"
1562
+ },
1563
+ {
1564
+ code: "CA",
1565
+ label: "Canada",
1566
+ phone: "+1",
1567
+ suggested: true
1568
+ },
1569
+ {
1570
+ code: "CC",
1571
+ label: "Cocos (Keeling) Islands",
1572
+ phone: "+61"
1573
+ },
1574
+ {
1575
+ code: "CD",
1576
+ label: "Congo, Democratic Republic of the",
1577
+ phone: "+243"
1578
+ },
1579
+ {
1580
+ code: "CF",
1581
+ label: "Central African Republic",
1582
+ phone: "+236"
1583
+ },
1584
+ {
1585
+ code: "CG",
1586
+ label: "Congo, Republic of the",
1587
+ phone: "+242"
1588
+ },
1589
+ {
1590
+ code: "CH",
1591
+ label: "Switzerland",
1592
+ phone: "+41"
1593
+ },
1594
+ {
1595
+ code: "CI",
1596
+ label: "Cote d'Ivoire",
1597
+ phone: "+225"
1598
+ },
1599
+ {
1600
+ code: "CK",
1601
+ label: "Cook Islands",
1602
+ phone: "+682"
1603
+ },
1604
+ {
1605
+ code: "CL",
1606
+ label: "Chile",
1607
+ phone: "+56"
1608
+ },
1609
+ {
1610
+ code: "CM",
1611
+ label: "Cameroon",
1612
+ phone: "+237"
1613
+ },
1614
+ {
1615
+ code: "CN",
1616
+ label: "China",
1617
+ phone: "+86"
1618
+ },
1619
+ {
1620
+ code: "CO",
1621
+ label: "Colombia",
1622
+ phone: "+57"
1623
+ },
1624
+ {
1625
+ code: "CR",
1626
+ label: "Costa Rica",
1627
+ phone: "+506"
1628
+ },
1629
+ {
1630
+ code: "CU",
1631
+ label: "Cuba",
1632
+ phone: "+53"
1633
+ },
1634
+ {
1635
+ code: "CV",
1636
+ label: "Cape Verde",
1637
+ phone: "+238"
1638
+ },
1639
+ {
1640
+ code: "CW",
1641
+ label: "Curacao",
1642
+ phone: "+599"
1643
+ },
1644
+ {
1645
+ code: "CX",
1646
+ label: "Christmas Island",
1647
+ phone: "+61"
1648
+ },
1649
+ {
1650
+ code: "CY",
1651
+ label: "Cyprus",
1652
+ phone: "+357"
1653
+ },
1654
+ {
1655
+ code: "CZ",
1656
+ label: "Czech Republic",
1657
+ phone: "+420"
1658
+ },
1659
+ {
1660
+ code: "DE",
1661
+ label: "Germany",
1662
+ phone: "+49",
1663
+ suggested: true
1664
+ },
1665
+ {
1666
+ code: "DJ",
1667
+ label: "Djibouti",
1668
+ phone: "+253"
1669
+ },
1670
+ {
1671
+ code: "DK",
1672
+ label: "Denmark",
1673
+ phone: "+45"
1674
+ },
1675
+ {
1676
+ code: "DM",
1677
+ label: "Dominica",
1678
+ phone: "+1-767"
1679
+ },
1680
+ {
1681
+ code: "DO",
1682
+ label: "Dominican Republic",
1683
+ phone: "+1-809"
1684
+ },
1685
+ {
1686
+ code: "DZ",
1687
+ label: "Algeria",
1688
+ phone: "+213"
1689
+ },
1690
+ {
1691
+ code: "EC",
1692
+ label: "Ecuador",
1693
+ phone: "+593"
1694
+ },
1695
+ {
1696
+ code: "EE",
1697
+ label: "Estonia",
1698
+ phone: "+372"
1699
+ },
1700
+ {
1701
+ code: "EG",
1702
+ label: "Egypt",
1703
+ phone: "+20"
1704
+ },
1705
+ {
1706
+ code: "EH",
1707
+ label: "Western Sahara",
1708
+ phone: "+212"
1709
+ },
1710
+ {
1711
+ code: "ER",
1712
+ label: "Eritrea",
1713
+ phone: "+291"
1714
+ },
1715
+ {
1716
+ code: "ES",
1717
+ label: "Spain",
1718
+ phone: "+34"
1719
+ },
1720
+ {
1721
+ code: "ET",
1722
+ label: "Ethiopia",
1723
+ phone: "+251"
1724
+ },
1725
+ {
1726
+ code: "FI",
1727
+ label: "Finland",
1728
+ phone: "+358"
1729
+ },
1730
+ {
1731
+ code: "FJ",
1732
+ label: "Fiji",
1733
+ phone: "+679"
1734
+ },
1735
+ {
1736
+ code: "FK",
1737
+ label: "Falkland Islands (Malvinas)",
1738
+ phone: "+500"
1739
+ },
1740
+ {
1741
+ code: "FM",
1742
+ label: "Micronesia, Federated States of",
1743
+ phone: "+691"
1744
+ },
1745
+ {
1746
+ code: "FO",
1747
+ label: "Faroe Islands",
1748
+ phone: "+298"
1749
+ },
1750
+ {
1751
+ code: "FR",
1752
+ label: "France",
1753
+ phone: "+33",
1754
+ suggested: true
1755
+ },
1756
+ {
1757
+ code: "GA",
1758
+ label: "Gabon",
1759
+ phone: "+241"
1760
+ },
1761
+ {
1762
+ code: "GB",
1763
+ label: "United Kingdom",
1764
+ phone: "+44"
1765
+ },
1766
+ {
1767
+ code: "GD",
1768
+ label: "Grenada",
1769
+ phone: "+1-473"
1770
+ },
1771
+ {
1772
+ code: "GE",
1773
+ label: "Georgia",
1774
+ phone: "+995"
1775
+ },
1776
+ {
1777
+ code: "GF",
1778
+ label: "French Guiana",
1779
+ phone: "+594"
1780
+ },
1781
+ {
1782
+ code: "GG",
1783
+ label: "Guernsey",
1784
+ phone: "+44"
1785
+ },
1786
+ {
1787
+ code: "GH",
1788
+ label: "Ghana",
1789
+ phone: "+233"
1790
+ },
1791
+ {
1792
+ code: "GI",
1793
+ label: "Gibraltar",
1794
+ phone: "+350"
1795
+ },
1796
+ {
1797
+ code: "GL",
1798
+ label: "Greenland",
1799
+ phone: "+299"
1800
+ },
1801
+ {
1802
+ code: "GM",
1803
+ label: "Gambia",
1804
+ phone: "+220"
1805
+ },
1806
+ {
1807
+ code: "GN",
1808
+ label: "Guinea",
1809
+ phone: "+224"
1810
+ },
1811
+ {
1812
+ code: "GP",
1813
+ label: "Guadeloupe",
1814
+ phone: "+590"
1815
+ },
1816
+ {
1817
+ code: "GQ",
1818
+ label: "Equatorial Guinea",
1819
+ phone: "+240"
1820
+ },
1821
+ {
1822
+ code: "GR",
1823
+ label: "Greece",
1824
+ phone: "+30"
1825
+ },
1826
+ {
1827
+ code: "GS",
1828
+ label: "South Georgia and the South Sandwich Islands",
1829
+ phone: "+500"
1830
+ },
1831
+ {
1832
+ code: "GT",
1833
+ label: "Guatemala",
1834
+ phone: "+502"
1835
+ },
1836
+ {
1837
+ code: "GU",
1838
+ label: "Guam",
1839
+ phone: "+1-671"
1840
+ },
1841
+ {
1842
+ code: "GW",
1843
+ label: "Guinea-Bissau",
1844
+ phone: "+245"
1845
+ },
1846
+ {
1847
+ code: "GY",
1848
+ label: "Guyana",
1849
+ phone: "+592"
1850
+ },
1851
+ {
1852
+ code: "HK",
1853
+ label: "Hong Kong",
1854
+ phone: "+852"
1855
+ },
1856
+ {
1857
+ code: "HM",
1858
+ label: "Heard Island and McDonald Islands",
1859
+ phone: "+672"
1860
+ },
1861
+ {
1862
+ code: "HN",
1863
+ label: "Honduras",
1864
+ phone: "+504"
1865
+ },
1866
+ {
1867
+ code: "HR",
1868
+ label: "Croatia",
1869
+ phone: "+385"
1870
+ },
1871
+ {
1872
+ code: "HT",
1873
+ label: "Haiti",
1874
+ phone: "+509"
1875
+ },
1876
+ {
1877
+ code: "HU",
1878
+ label: "Hungary",
1879
+ phone: "+36"
1880
+ },
1881
+ {
1882
+ code: "ID",
1883
+ label: "Indonesia",
1884
+ phone: "+62"
1885
+ },
1886
+ {
1887
+ code: "IE",
1888
+ label: "Ireland",
1889
+ phone: "+353"
1890
+ },
1891
+ {
1892
+ code: "IL",
1893
+ label: "Israel",
1894
+ phone: "+972"
1895
+ },
1896
+ {
1897
+ code: "IM",
1898
+ label: "Isle of Man",
1899
+ phone: "+44"
1900
+ },
1901
+ {
1902
+ code: "IN",
1903
+ label: "India",
1904
+ phone: "+91"
1905
+ },
1906
+ {
1907
+ code: "IO",
1908
+ label: "British Indian Ocean Territory",
1909
+ phone: "+246"
1910
+ },
1911
+ {
1912
+ code: "IQ",
1913
+ label: "Iraq",
1914
+ phone: "+964"
1915
+ },
1916
+ {
1917
+ code: "IR",
1918
+ label: "Iran, Islamic Republic of",
1919
+ phone: "+98"
1920
+ },
1921
+ {
1922
+ code: "IS",
1923
+ label: "Iceland",
1924
+ phone: "+354"
1925
+ },
1926
+ {
1927
+ code: "IT",
1928
+ label: "Italy",
1929
+ phone: "+39"
1930
+ },
1931
+ {
1932
+ code: "JE",
1933
+ label: "Jersey",
1934
+ phone: "+44"
1935
+ },
1936
+ {
1937
+ code: "JM",
1938
+ label: "Jamaica",
1939
+ phone: "+1-876"
1940
+ },
1941
+ {
1942
+ code: "JO",
1943
+ label: "Jordan",
1944
+ phone: "+962"
1945
+ },
1946
+ {
1947
+ code: "JP",
1948
+ label: "Japan",
1949
+ phone: "+81",
1950
+ suggested: true
1951
+ },
1952
+ {
1953
+ code: "KE",
1954
+ label: "Kenya",
1955
+ phone: "+254"
1956
+ },
1957
+ {
1958
+ code: "KG",
1959
+ label: "Kyrgyzstan",
1960
+ phone: "+996"
1961
+ },
1962
+ {
1963
+ code: "KH",
1964
+ label: "Cambodia",
1965
+ phone: "+855"
1966
+ },
1967
+ {
1968
+ code: "KI",
1969
+ label: "Kiribati",
1970
+ phone: "+686"
1971
+ },
1972
+ {
1973
+ code: "KM",
1974
+ label: "Comoros",
1975
+ phone: "+269"
1976
+ },
1977
+ {
1978
+ code: "KN",
1979
+ label: "Saint Kitts and Nevis",
1980
+ phone: "+1-869"
1981
+ },
1982
+ {
1983
+ code: "KP",
1984
+ label: "Korea, Democratic People's Republic of",
1985
+ phone: "+850"
1986
+ },
1987
+ {
1988
+ code: "KR",
1989
+ label: "Korea, Republic of",
1990
+ phone: "+82"
1991
+ },
1992
+ {
1993
+ code: "KW",
1994
+ label: "Kuwait",
1995
+ phone: "+965"
1996
+ },
1997
+ {
1998
+ code: "KY",
1999
+ label: "Cayman Islands",
2000
+ phone: "+1-345"
2001
+ },
2002
+ {
2003
+ code: "KZ",
2004
+ label: "Kazakhstan",
2005
+ phone: "+7"
2006
+ },
2007
+ {
2008
+ code: "LA",
2009
+ label: "Lao People's Democratic Republic",
2010
+ phone: "+856"
2011
+ },
2012
+ {
2013
+ code: "LB",
2014
+ label: "Lebanon",
2015
+ phone: "+961"
2016
+ },
2017
+ {
2018
+ code: "LC",
2019
+ label: "Saint Lucia",
2020
+ phone: "+1-758"
2021
+ },
2022
+ {
2023
+ code: "LI",
2024
+ label: "Liechtenstein",
2025
+ phone: "+423"
2026
+ },
2027
+ {
2028
+ code: "LK",
2029
+ label: "Sri Lanka",
2030
+ phone: "+94"
2031
+ },
2032
+ {
2033
+ code: "LR",
2034
+ label: "Liberia",
2035
+ phone: "+231"
2036
+ },
2037
+ {
2038
+ code: "LS",
2039
+ label: "Lesotho",
2040
+ phone: "+266"
2041
+ },
2042
+ {
2043
+ code: "LT",
2044
+ label: "Lithuania",
2045
+ phone: "+370"
2046
+ },
2047
+ {
2048
+ code: "LU",
2049
+ label: "Luxembourg",
2050
+ phone: "+352"
2051
+ },
2052
+ {
2053
+ code: "LV",
2054
+ label: "Latvia",
2055
+ phone: "+371"
2056
+ },
2057
+ {
2058
+ code: "LY",
2059
+ label: "Libya",
2060
+ phone: "+218"
2061
+ },
2062
+ {
2063
+ code: "MA",
2064
+ label: "Morocco",
2065
+ phone: "+212"
2066
+ },
2067
+ {
2068
+ code: "MC",
2069
+ label: "Monaco",
2070
+ phone: "+377"
2071
+ },
2072
+ {
2073
+ code: "MD",
2074
+ label: "Moldova, Republic of",
2075
+ phone: "+373"
2076
+ },
2077
+ {
2078
+ code: "ME",
2079
+ label: "Montenegro",
2080
+ phone: "+382"
2081
+ },
2082
+ {
2083
+ code: "MF",
2084
+ label: "Saint Martin (French part)",
2085
+ phone: "+590"
2086
+ },
2087
+ {
2088
+ code: "MG",
2089
+ label: "Madagascar",
2090
+ phone: "+261"
2091
+ },
2092
+ {
2093
+ code: "MH",
2094
+ label: "Marshall Islands",
2095
+ phone: "+692"
2096
+ },
2097
+ {
2098
+ code: "MK",
2099
+ label: "Macedonia, the Former Yugoslav Republic of",
2100
+ phone: "+389"
2101
+ },
2102
+ {
2103
+ code: "ML",
2104
+ label: "Mali",
2105
+ phone: "+223"
2106
+ },
2107
+ {
2108
+ code: "MM",
2109
+ label: "Myanmar",
2110
+ phone: "+95"
2111
+ },
2112
+ {
2113
+ code: "MN",
2114
+ label: "Mongolia",
2115
+ phone: "+976"
2116
+ },
2117
+ {
2118
+ code: "MO",
2119
+ label: "Macao",
2120
+ phone: "+853"
2121
+ },
2122
+ {
2123
+ code: "MP",
2124
+ label: "Northern Mariana Islands",
2125
+ phone: "+1-670"
2126
+ },
2127
+ {
2128
+ code: "MQ",
2129
+ label: "Martinique",
2130
+ phone: "+596"
2131
+ },
2132
+ {
2133
+ code: "MR",
2134
+ label: "Mauritania",
2135
+ phone: "+222"
2136
+ },
2137
+ {
2138
+ code: "MS",
2139
+ label: "Montserrat",
2140
+ phone: "+1-664"
2141
+ },
2142
+ {
2143
+ code: "MT",
2144
+ label: "Malta",
2145
+ phone: "+356"
2146
+ },
2147
+ {
2148
+ code: "MU",
2149
+ label: "Mauritius",
2150
+ phone: "+230"
2151
+ },
2152
+ {
2153
+ code: "MV",
2154
+ label: "Maldives",
2155
+ phone: "+960"
2156
+ },
2157
+ {
2158
+ code: "MW",
2159
+ label: "Malawi",
2160
+ phone: "+265"
2161
+ },
2162
+ {
2163
+ code: "MX",
2164
+ label: "Mexico",
2165
+ phone: "+52"
2166
+ },
2167
+ {
2168
+ code: "MY",
2169
+ label: "Malaysia",
2170
+ phone: "+60"
2171
+ },
2172
+ {
2173
+ code: "MZ",
2174
+ label: "Mozambique",
2175
+ phone: "+258"
2176
+ },
2177
+ {
2178
+ code: "NA",
2179
+ label: "Namibia",
2180
+ phone: "+264"
2181
+ },
2182
+ {
2183
+ code: "NC",
2184
+ label: "New Caledonia",
2185
+ phone: "+687"
2186
+ },
2187
+ {
2188
+ code: "NE",
2189
+ label: "Niger",
2190
+ phone: "+227"
2191
+ },
2192
+ {
2193
+ code: "NF",
2194
+ label: "Norfolk Island",
2195
+ phone: "+672"
2196
+ },
2197
+ {
2198
+ code: "NG",
2199
+ label: "Nigeria",
2200
+ phone: "+234"
2201
+ },
2202
+ {
2203
+ code: "NI",
2204
+ label: "Nicaragua",
2205
+ phone: "+505"
2206
+ },
2207
+ {
2208
+ code: "NL",
2209
+ label: "Netherlands",
2210
+ phone: "+31"
2211
+ },
2212
+ {
2213
+ code: "NO",
2214
+ label: "Norway",
2215
+ phone: "+47"
2216
+ },
2217
+ {
2218
+ code: "NP",
2219
+ label: "Nepal",
2220
+ phone: "+977"
2221
+ },
2222
+ {
2223
+ code: "NR",
2224
+ label: "Nauru",
2225
+ phone: "+674"
2226
+ },
2227
+ {
2228
+ code: "NU",
2229
+ label: "Niue",
2230
+ phone: "+683"
2231
+ },
2232
+ {
2233
+ code: "NZ",
2234
+ label: "New Zealand",
2235
+ phone: "+64"
2236
+ },
2237
+ {
2238
+ code: "OM",
2239
+ label: "Oman",
2240
+ phone: "+968"
2241
+ },
2242
+ {
2243
+ code: "PA",
2244
+ label: "Panama",
2245
+ phone: "+507"
2246
+ },
2247
+ {
2248
+ code: "PE",
2249
+ label: "Peru",
2250
+ phone: "+51"
2251
+ },
2252
+ {
2253
+ code: "PF",
2254
+ label: "French Polynesia",
2255
+ phone: "+689"
2256
+ },
2257
+ {
2258
+ code: "PG",
2259
+ label: "Papua New Guinea",
2260
+ phone: "+675"
2261
+ },
2262
+ {
2263
+ code: "PH",
2264
+ label: "Philippines",
2265
+ phone: "+63"
2266
+ },
2267
+ {
2268
+ code: "PK",
2269
+ label: "Pakistan",
2270
+ phone: "+92"
2271
+ },
2272
+ {
2273
+ code: "PL",
2274
+ label: "Poland",
2275
+ phone: "+48"
2276
+ },
2277
+ {
2278
+ code: "PM",
2279
+ label: "Saint Pierre and Miquelon",
2280
+ phone: "+508"
2281
+ },
2282
+ {
2283
+ code: "PN",
2284
+ label: "Pitcairn",
2285
+ phone: "+870"
2286
+ },
2287
+ {
2288
+ code: "PR",
2289
+ label: "Puerto Rico",
2290
+ phone: "+1"
2291
+ },
2292
+ {
2293
+ code: "PS",
2294
+ label: "Palestine, State of",
2295
+ phone: "+970"
2296
+ },
2297
+ {
2298
+ code: "PT",
2299
+ label: "Portugal",
2300
+ phone: "+351"
2301
+ },
2302
+ {
2303
+ code: "PW",
2304
+ label: "Palau",
2305
+ phone: "+680"
2306
+ },
2307
+ {
2308
+ code: "PY",
2309
+ label: "Paraguay",
2310
+ phone: "+595"
2311
+ },
2312
+ {
2313
+ code: "QA",
2314
+ label: "Qatar",
2315
+ phone: "+974"
2316
+ },
2317
+ {
2318
+ code: "RE",
2319
+ label: "Reunion",
2320
+ phone: "+262"
2321
+ },
2322
+ {
2323
+ code: "RO",
2324
+ label: "Romania",
2325
+ phone: "+40"
2326
+ },
2327
+ {
2328
+ code: "RS",
2329
+ label: "Serbia",
2330
+ phone: "+381"
2331
+ },
2332
+ {
2333
+ code: "RU",
2334
+ label: "Russian Federation",
2335
+ phone: "+7"
2336
+ },
2337
+ {
2338
+ code: "RW",
2339
+ label: "Rwanda",
2340
+ phone: "+250"
2341
+ },
2342
+ {
2343
+ code: "SA",
2344
+ label: "Saudi Arabia",
2345
+ phone: "+966"
2346
+ },
2347
+ {
2348
+ code: "SB",
2349
+ label: "Solomon Islands",
2350
+ phone: "+677"
2351
+ },
2352
+ {
2353
+ code: "SC",
2354
+ label: "Seychelles",
2355
+ phone: "+248"
2356
+ },
2357
+ {
2358
+ code: "SD",
2359
+ label: "Sudan",
2360
+ phone: "+249"
2361
+ },
2362
+ {
2363
+ code: "SE",
2364
+ label: "Sweden",
2365
+ phone: "+46"
2366
+ },
2367
+ {
2368
+ code: "SG",
2369
+ label: "Singapore",
2370
+ phone: "+65"
2371
+ },
2372
+ {
2373
+ code: "SH",
2374
+ label: "Saint Helena",
2375
+ phone: "+290"
2376
+ },
2377
+ {
2378
+ code: "SI",
2379
+ label: "Slovenia",
2380
+ phone: "+386"
2381
+ },
2382
+ {
2383
+ code: "SJ",
2384
+ label: "Svalbard and Jan Mayen",
2385
+ phone: "+47"
2386
+ },
2387
+ {
2388
+ code: "SK",
2389
+ label: "Slovakia",
2390
+ phone: "+421"
2391
+ },
2392
+ {
2393
+ code: "SL",
2394
+ label: "Sierra Leone",
2395
+ phone: "+232"
2396
+ },
2397
+ {
2398
+ code: "SM",
2399
+ label: "San Marino",
2400
+ phone: "+378"
2401
+ },
2402
+ {
2403
+ code: "SN",
2404
+ label: "Senegal",
2405
+ phone: "+221"
2406
+ },
2407
+ {
2408
+ code: "SO",
2409
+ label: "Somalia",
2410
+ phone: "+252"
2411
+ },
2412
+ {
2413
+ code: "SR",
2414
+ label: "Suriname",
2415
+ phone: "+597"
2416
+ },
2417
+ {
2418
+ code: "SS",
2419
+ label: "South Sudan",
2420
+ phone: "+211"
2421
+ },
2422
+ {
2423
+ code: "ST",
2424
+ label: "Sao Tome and Principe",
2425
+ phone: "+239"
2426
+ },
2427
+ {
2428
+ code: "SV",
2429
+ label: "El Salvador",
2430
+ phone: "+503"
2431
+ },
2432
+ {
2433
+ code: "SX",
2434
+ label: "Sint Maarten (Dutch part)",
2435
+ phone: "+1-721"
2436
+ },
2437
+ {
2438
+ code: "SY",
2439
+ label: "Syrian Arab Republic",
2440
+ phone: "+963"
2441
+ },
2442
+ {
2443
+ code: "SZ",
2444
+ label: "Swaziland",
2445
+ phone: "+268"
2446
+ },
2447
+ {
2448
+ code: "TC",
2449
+ label: "Turks and Caicos Islands",
2450
+ phone: "+1-649"
2451
+ },
2452
+ {
2453
+ code: "TD",
2454
+ label: "Chad",
2455
+ phone: "+235"
2456
+ },
2457
+ {
2458
+ code: "TF",
2459
+ label: "French Southern Territories",
2460
+ phone: "+262"
2461
+ },
2462
+ {
2463
+ code: "TG",
2464
+ label: "Togo",
2465
+ phone: "+228"
2466
+ },
2467
+ {
2468
+ code: "TH",
2469
+ label: "Thailand",
2470
+ phone: "+66"
2471
+ },
2472
+ {
2473
+ code: "TJ",
2474
+ label: "Tajikistan",
2475
+ phone: "+992"
2476
+ },
2477
+ {
2478
+ code: "TK",
2479
+ label: "Tokelau",
2480
+ phone: "+690"
2481
+ },
2482
+ {
2483
+ code: "TL",
2484
+ label: "Timor-Leste",
2485
+ phone: "+670"
2486
+ },
2487
+ {
2488
+ code: "TM",
2489
+ label: "Turkmenistan",
2490
+ phone: "+993"
2491
+ },
2492
+ {
2493
+ code: "TN",
2494
+ label: "Tunisia",
2495
+ phone: "+216"
2496
+ },
2497
+ {
2498
+ code: "TO",
2499
+ label: "Tonga",
2500
+ phone: "+676"
2501
+ },
2502
+ {
2503
+ code: "TR",
2504
+ label: "Turkey",
2505
+ phone: "+90"
2506
+ },
2507
+ {
2508
+ code: "TT",
2509
+ label: "Trinidad and Tobago",
2510
+ phone: "+1-868"
2511
+ },
2512
+ {
2513
+ code: "TV",
2514
+ label: "Tuvalu",
2515
+ phone: "+688"
2516
+ },
2517
+ {
2518
+ code: "TW",
2519
+ label: "Taiwan, Province of China",
2520
+ phone: "+886"
2521
+ },
2522
+ {
2523
+ code: "TZ",
2524
+ label: "United Republic of Tanzania",
2525
+ phone: "+255"
2526
+ },
2527
+ {
2528
+ code: "UA",
2529
+ label: "Ukraine",
2530
+ phone: "+380"
2531
+ },
2532
+ {
2533
+ code: "UG",
2534
+ label: "Uganda",
2535
+ phone: "+256"
2536
+ },
2537
+ {
2538
+ code: "US",
2539
+ label: "United States",
2540
+ phone: "+1",
2541
+ suggested: true
2542
+ },
2543
+ {
2544
+ code: "UY",
2545
+ label: "Uruguay",
2546
+ phone: "+598"
2547
+ },
2548
+ {
2549
+ code: "UZ",
2550
+ label: "Uzbekistan",
2551
+ phone: "+998"
2552
+ },
2553
+ {
2554
+ code: "VA",
2555
+ label: "Holy See (Vatican City State)",
2556
+ phone: "+379"
2557
+ },
2558
+ {
2559
+ code: "VC",
2560
+ label: "Saint Vincent and the Grenadines",
2561
+ phone: "+1-784"
2562
+ },
2563
+ {
2564
+ code: "VE",
2565
+ label: "Venezuela",
2566
+ phone: "+58"
2567
+ },
2568
+ {
2569
+ code: "VG",
2570
+ label: "British Virgin Islands",
2571
+ phone: "+1-284"
2572
+ },
2573
+ {
2574
+ code: "VI",
2575
+ label: "US Virgin Islands",
2576
+ phone: "+1-340"
2577
+ },
2578
+ {
2579
+ code: "VN",
2580
+ label: "Vietnam",
2581
+ phone: "+84"
2582
+ },
2583
+ {
2584
+ code: "VU",
2585
+ label: "Vanuatu",
2586
+ phone: "+678"
2587
+ },
2588
+ {
2589
+ code: "WF",
2590
+ label: "Wallis and Futuna",
2591
+ phone: "+681"
2592
+ },
2593
+ {
2594
+ code: "WS",
2595
+ label: "Samoa",
2596
+ phone: "+685"
2597
+ },
2598
+ {
2599
+ code: "XK",
2600
+ label: "Kosovo",
2601
+ phone: "+383"
2602
+ },
2603
+ {
2604
+ code: "YE",
2605
+ label: "Yemen",
2606
+ phone: "+967"
2607
+ },
2608
+ {
2609
+ code: "YT",
2610
+ label: "Mayotte",
2611
+ phone: "+262"
2612
+ },
2613
+ {
2614
+ code: "ZA",
2615
+ label: "South Africa",
2616
+ phone: "+27"
2617
+ },
2618
+ {
2619
+ code: "ZM",
2620
+ label: "Zambia",
2621
+ phone: "+260"
2622
+ },
2623
+ {
2624
+ code: "ZW",
2625
+ label: "Zimbabwe",
2626
+ phone: "+263"
2627
+ }
2628
+ ];
2629
+
2630
+ function PhoneInput(_ref) {
2631
+ var onChange = _ref.onChange,
2632
+ _ref$value = _ref.value,
2633
+ value = _ref$value === void 0 ? '' : _ref$value,
2634
+ country = _ref.country,
2635
+ _ref$placeholder = _ref.placeholder,
2636
+ placeholder = _ref$placeholder === void 0 ? 'Enter phone number' : _ref$placeholder,
2637
+ _ref$color = _ref.color,
2638
+ _color = _ref$color === void 0 ? 'default' : _ref$color,
2639
+ children = _ref.children,
2640
+ fullWidth = _ref.fullWidth;
2641
+ var theme$1 = theme.useTheme();
2642
+ var _useScale = useScale(),
2643
+ SCALES = _useScale.SCALES;
2644
+ var defaultValue = country ? countries.findIndex(function (cn) {
2645
+ return cn.code == country;
2646
+ }) : 103;
2647
+ var _useState = React.useState(countries[defaultValue]),
2648
+ _useState2 = _slicedToArray(_useState, 2),
2649
+ selectedCountry = _useState2[0],
2650
+ setSelectedCountry = _useState2[1];
2651
+ var _useState3 = React.useState(value),
2652
+ _useState4 = _slicedToArray(_useState3, 2),
2653
+ phoneNumber = _useState4[0],
2654
+ setPhoneNumber = _useState4[1];
2655
+ var _useState5 = React.useState(false),
2656
+ _useState6 = _slicedToArray(_useState5, 2),
2657
+ isFocused = _useState6[0],
2658
+ setIsFocused = _useState6[1];
2659
+ var _useState7 = React.useState(false),
2660
+ _useState8 = _slicedToArray(_useState7, 2),
2661
+ dropdownOpen = _useState8[0],
2662
+ setDropdownOpen = _useState8[1];
2663
+ var _useState9 = React.useState(''),
2664
+ _useState0 = _slicedToArray(_useState9, 2),
2665
+ searchTerm = _useState0[0],
2666
+ setSearchTerm = _useState0[1];
2667
+ var dropdownRef = React.useRef(null);
2668
+ var _useMemo = React.useMemo(function () {
2669
+ return getColors(theme$1.palette, _color);
2670
+ }, [theme$1.palette]),
2671
+ borderColor = _useMemo.borderColor,
2672
+ hoverBorder = _useMemo.hoverBorder;
2673
+ var handleSelectCountry = function handleSelectCountry(country) {
2674
+ setSelectedCountry(country);
2675
+ setDropdownOpen(false);
2676
+ setSearchTerm('');
2677
+ if (onChange) onChange("".concat(country.code, ":").concat(phoneNumber));
2678
+ };
2679
+ var handlePhoneChange = function handlePhoneChange(e) {
2680
+ var value = e.target.value.replace(/[^\d]/g, '');
2681
+ setPhoneNumber(value);
2682
+ if (onChange) onChange("".concat(selectedCountry.phone, ",").concat(value));
2683
+ };
2684
+ var handleClickOutside = function handleClickOutside(e) {
2685
+ if (dropdownRef.current && !dropdownRef.current.contains(e.target)) {
2686
+ setDropdownOpen(false);
2687
+ setSearchTerm('');
2688
+ }
2689
+ };
2690
+ React.useEffect(function () {
2691
+ document.addEventListener('mousedown', handleClickOutside);
2692
+ return function () {
2693
+ return document.removeEventListener('mousedown', handleClickOutside);
2694
+ };
2695
+ }, []);
2696
+ var filteredCountries = countries.filter(function (c) {
2697
+ return "".concat(c.label, " ").concat(c.code, " ").concat(c.phone).toLowerCase().includes(searchTerm.toLowerCase());
2698
+ });
2699
+ var defaultWidth = fullWidth ? '100%' : 'initial';
2700
+ return /*#__PURE__*/React.createElement("div", {
2701
+ ref: dropdownRef,
2702
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]]) + " " + "phone-input-container ".concat(isFocused ? 'focused' : '')
2703
+ }, children && /*#__PURE__*/React.createElement(InputBlockLabel, null, children), /*#__PURE__*/React.createElement("div", {
2704
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]]) + " " + "input-wrapper"
2705
+ }, /*#__PURE__*/React.createElement("div", {
2706
+ onClick: function onClick() {
2707
+ return setDropdownOpen(!dropdownOpen);
2708
+ },
2709
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]]) + " " + "dropdown-toggle"
2710
+ }, /*#__PURE__*/React.createElement("span", {
2711
+ style: {
2712
+ display: 'flex',
2713
+ alignItems: 'center',
2714
+ gap: 5
2715
+ },
2716
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]])
2717
+ }, /*#__PURE__*/React.createElement("img", {
2718
+ loading: "lazy",
2719
+ width: "20",
2720
+ height: "20",
2721
+ src: "https://flagcdn.com/w20/".concat(selectedCountry.code.toLowerCase(), ".png"),
2722
+ srcSet: "https://flagcdn.com/w40/".concat(selectedCountry.code.toLowerCase(), ".png 2x"),
2723
+ alt: "Flag of ".concat(selectedCountry.label),
2724
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]])
2725
+ }), /*#__PURE__*/React.createElement("span", {
2726
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]])
2727
+ }, selectedCountry.phone))), /*#__PURE__*/React.createElement("input", {
2728
+ type: "tel",
2729
+ placeholder: placeholder,
2730
+ value: phoneNumber,
2731
+ onChange: handlePhoneChange,
2732
+ onFocus: function onFocus() {
2733
+ return setIsFocused(true);
2734
+ },
2735
+ onBlur: function onBlur() {
2736
+ return setIsFocused(false);
2737
+ },
2738
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]]) + " " + "phone-input"
2739
+ })), dropdownOpen && /*#__PURE__*/React.createElement("div", {
2740
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]]) + " " + "dropdown"
2741
+ }, /*#__PURE__*/React.createElement("input", {
2742
+ type: "text",
2743
+ placeholder: "Search country...",
2744
+ value: searchTerm,
2745
+ onChange: function onChange(e) {
2746
+ return setSearchTerm(e.target.value);
2747
+ },
2748
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]]) + " " + "search-input"
2749
+ }), /*#__PURE__*/React.createElement("div", {
2750
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]]) + " " + "country-list"
2751
+ }, filteredCountries.length > 0 ? filteredCountries.map(function (c) {
2752
+ return /*#__PURE__*/React.createElement("div", {
2753
+ key: c.code,
2754
+ onClick: function onClick() {
2755
+ return handleSelectCountry(c);
2756
+ },
2757
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]]) + " " + "dropdown-item"
2758
+ }, /*#__PURE__*/React.createElement("span", {
2759
+ style: {
2760
+ display: 'flex',
2761
+ alignItems: 'center',
2762
+ gap: 5
2763
+ },
2764
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]])
2765
+ }, /*#__PURE__*/React.createElement("img", {
2766
+ loading: "lazy",
2767
+ width: "23",
2768
+ height: "23",
2769
+ src: "https://flagcdn.com/w20/".concat(c.code.toLowerCase(), ".png"),
2770
+ srcSet: "https://flagcdn.com/w40/".concat(c.code.toLowerCase(), ".png 2x"),
2771
+ alt: "Flag of ".concat(c.label),
2772
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]])
2773
+ }), c.phone, " ", /*#__PURE__*/React.createElement("span", {
2774
+ style: {
2775
+ color: 'grey'
2776
+ },
2777
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]])
2778
+ }, c.label)));
2779
+ }) : /*#__PURE__*/React.createElement("div", {
2780
+ className: _JSXStyle.dynamic([["3237870810", [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']]]) + " " + "dropdown-item disabled"
2781
+ }, "No results"))), /*#__PURE__*/React.createElement(_JSXStyle, {
2782
+ id: "3237870810",
2783
+ dynamic: [SCALES.width(1, defaultWidth), SCALES.height(2.25), hoverBorder, borderColor, borderColor, SCALES.width(1, defaultWidth), theme$1.type == 'dark' ? 'black' : 'white', borderColor, borderColor, theme$1.type == 'dark' ? '#3a3d3d' : '#efefef']
2784
+ }, ".phone-input-container.__jsx-style-dynamic-selector{position:relative;width:".concat(SCALES.width(1, defaultWidth), ";height:").concat(SCALES.height(2.25), ";}.phone-input-container.focused.__jsx-style-dynamic-selector{outline:1px solid ").concat(hoverBorder, ";border-radius:6px;}.input-wrapper.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid ").concat(borderColor, ";border-radius:6px;overflow:hidden;}.dropdown-toggle.__jsx-style-dynamic-selector{padding:7px 12px;border-radius:6px 0px 0px 6px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:14px;border-right:1px solid ").concat(borderColor, ";}.phone-input.__jsx-style-dynamic-selector{width:100%;min-width:0;padding:5px 10px;background-color:transparent;font-size:14px;border:none;}.phone-input.__jsx-style-dynamic-selector:focus{outline:none;}.dropdown.__jsx-style-dynamic-selector{position:absolute;top:100%;left:0;width:").concat(SCALES.width(1, defaultWidth), ";background:").concat(theme$1.type == 'dark' ? 'black' : 'white', ";border:1px solid ").concat(borderColor, ";border-radius:6px;margin-top:4px;z-index:999;box-shadow:0 4px 10px rgba(0,0,0,0.1);}.search-input.__jsx-style-dynamic-selector{width:100%;padding:8px 10px;border:none;background-color:transparent;border-bottom:1px solid ").concat(borderColor, ";font-size:14px;}.search-input.__jsx-style-dynamic-selector:focus{outline:none;}.country-list.__jsx-style-dynamic-selector{max-height:200px;overflow-y:auto;}.dropdown-item.__jsx-style-dynamic-selector{padding:10px;cursor:pointer;font-size:14px;}.dropdown-item.__jsx-style-dynamic-selector:hover{background:").concat(theme$1.type == 'dark' ? '#3a3d3d' : '#efefef', ";}.dropdown-item.disabled.__jsx-style-dynamic-selector{color:#888;cursor:default;}")));
2785
+ }
2786
+
2787
+ /**
2788
+ * Escape regex char
2789
+ *
2790
+ * See: https://stackoverflow.com/questions/17885855/use-dynamic-variable-string-as-regex-pattern-in-javascript
2791
+ */
2792
+ var escapeRegExp = function escapeRegExp(stringToGoIntoTheRegex) {
2793
+ return stringToGoIntoTheRegex.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
2794
+ };
2795
+
2796
+ var abbrMap = {
2797
+ k: 1000,
2798
+ m: 1000000,
2799
+ b: 1000000000
2800
+ };
2801
+
2802
+ /**
2803
+ * Parse a value with abbreviation e.g 1k = 1000
2804
+ */
2805
+ var parseAbbrValue = function parseAbbrValue(value) {
2806
+ var decimalSeparator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.';
2807
+ var reg = new RegExp("(\\d+(".concat(escapeRegExp(decimalSeparator), "\\d*)?)([kmb])$"), 'i');
2808
+ var match = value.match(reg);
2809
+ if (match) {
2810
+ var _match = _slicedToArray(match, 4),
2811
+ digits = _match[1],
2812
+ abbr = _match[3];
2813
+ var multiplier = abbrMap[abbr.toLowerCase()];
2814
+ return Number(digits.replace(decimalSeparator, '.')) * multiplier;
2815
+ }
2816
+ return undefined;
2817
+ };
2818
+
2819
+ /**
2820
+ * Remove group separator from value eg. 1,000 > 1000
2821
+ */
2822
+ var removeSeparators = function removeSeparators(value) {
2823
+ var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';
2824
+ var reg = new RegExp(escapeRegExp(separator), 'g');
2825
+ return value.replace(reg, '');
2826
+ };
2827
+
2828
+ /**
2829
+ * Remove invalid characters
2830
+ */
2831
+ var removeInvalidChars = function removeInvalidChars(value, validChars) {
2832
+ var chars = escapeRegExp(validChars.join(''));
2833
+ var reg = new RegExp("[^\\d".concat(chars, "]"), 'gi');
2834
+ return value.replace(reg, '');
2835
+ };
2836
+
2837
+ /**
2838
+ * Remove prefix, separators and extra decimals from value
2839
+ */
2840
+ var cleanValue = function cleanValue(_ref) {
2841
+ var value = _ref.value,
2842
+ _ref$groupSeparator = _ref.groupSeparator,
2843
+ groupSeparator = _ref$groupSeparator === void 0 ? ',' : _ref$groupSeparator,
2844
+ _ref$decimalSeparator = _ref.decimalSeparator,
2845
+ decimalSeparator = _ref$decimalSeparator === void 0 ? '.' : _ref$decimalSeparator,
2846
+ _ref$allowDecimals = _ref.allowDecimals,
2847
+ allowDecimals = _ref$allowDecimals === void 0 ? true : _ref$allowDecimals,
2848
+ _ref$decimalsLimit = _ref.decimalsLimit,
2849
+ decimalsLimit = _ref$decimalsLimit === void 0 ? 2 : _ref$decimalsLimit,
2850
+ _ref$allowNegativeVal = _ref.allowNegativeValue,
2851
+ allowNegativeValue = _ref$allowNegativeVal === void 0 ? true : _ref$allowNegativeVal,
2852
+ _ref$disableAbbreviat = _ref.disableAbbreviations,
2853
+ disableAbbreviations = _ref$disableAbbreviat === void 0 ? false : _ref$disableAbbreviat,
2854
+ _ref$prefix = _ref.prefix,
2855
+ prefix = _ref$prefix === void 0 ? '' : _ref$prefix,
2856
+ _ref$transformRawValu = _ref.transformRawValue,
2857
+ transformRawValue = _ref$transformRawValu === void 0 ? function (rawValue) {
2858
+ return rawValue;
2859
+ } : _ref$transformRawValu;
2860
+ var transformedValue = transformRawValue(value);
2861
+ if (transformedValue === '-') {
2862
+ return transformedValue;
2863
+ }
2864
+ var abbreviations = disableAbbreviations ? [] : ['k', 'm', 'b'];
2865
+ var reg = new RegExp("((^|\\D)-\\d)|(-".concat(escapeRegExp(prefix), ")"));
2866
+ var isNegative = reg.test(transformedValue);
2867
+
2868
+ // Is there a digit before the prefix? eg. 1$
2869
+ var _ref2 = RegExp("(\\d+)-?".concat(escapeRegExp(prefix))).exec(value) || [],
2870
+ _ref3 = _slicedToArray(_ref2, 2),
2871
+ prefixWithValue = _ref3[0],
2872
+ preValue = _ref3[1];
2873
+ var withoutPrefix = prefix ? prefixWithValue ? transformedValue.replace(prefixWithValue, '').concat(preValue) : transformedValue.replace(prefix, '') : transformedValue;
2874
+ var withoutSeparators = removeSeparators(withoutPrefix, groupSeparator);
2875
+ var withoutInvalidChars = removeInvalidChars(withoutSeparators, [groupSeparator, decimalSeparator].concat(abbreviations));
2876
+ var valueOnly = withoutInvalidChars;
2877
+ if (!disableAbbreviations) {
2878
+ // disallow letter without number
2879
+ if (abbreviations.some(function (letter) {
2880
+ return letter === withoutInvalidChars.toLowerCase().replace(decimalSeparator, '');
2881
+ })) {
2882
+ return '';
2883
+ }
2884
+ var parsed = parseAbbrValue(withoutInvalidChars, decimalSeparator);
2885
+ if (parsed) {
2886
+ valueOnly = String(parsed);
2887
+ }
2888
+ }
2889
+ var includeNegative = isNegative && allowNegativeValue ? '-' : '';
2890
+ if (decimalSeparator && valueOnly.includes(decimalSeparator)) {
2891
+ var _withoutInvalidChars$ = withoutInvalidChars.split(decimalSeparator),
2892
+ _withoutInvalidChars$2 = _slicedToArray(_withoutInvalidChars$, 2),
2893
+ _int = _withoutInvalidChars$2[0],
2894
+ decimals = _withoutInvalidChars$2[1];
2895
+ var trimmedDecimals = decimalsLimit && decimals ? decimals.slice(0, decimalsLimit) : decimals;
2896
+ var includeDecimals = allowDecimals ? "".concat(decimalSeparator).concat(trimmedDecimals) : '';
2897
+ return "".concat(includeNegative).concat(_int).concat(includeDecimals);
2898
+ }
2899
+ return "".concat(includeNegative).concat(valueOnly);
2900
+ };
2901
+
2902
+ var fixedDecimalValue = function fixedDecimalValue(value, decimalSeparator, fixedDecimalLength) {
2903
+ if (fixedDecimalLength !== undefined && value.length > 1) {
2904
+ if (fixedDecimalLength === 0) {
2905
+ return value.replace(decimalSeparator, '');
2906
+ }
2907
+ if (value.includes(decimalSeparator)) {
2908
+ var _value$split = value.split(decimalSeparator),
2909
+ _value$split2 = _slicedToArray(_value$split, 2),
2910
+ _int = _value$split2[0],
2911
+ decimals = _value$split2[1];
2912
+ if (decimals.length === fixedDecimalLength) {
2913
+ return value;
2914
+ }
2915
+ if (decimals.length > fixedDecimalLength) {
2916
+ return "".concat(_int).concat(decimalSeparator).concat(decimals.slice(0, fixedDecimalLength));
2917
+ }
2918
+ }
2919
+ var reg = value.length > fixedDecimalLength ? new RegExp("(\\d+)(\\d{".concat(fixedDecimalLength, "})")) : new RegExp("(\\d)(\\d+)");
2920
+ var match = value.match(reg);
2921
+ if (match) {
2922
+ var _match = _slicedToArray(match, 3),
2923
+ _int2 = _match[1],
2924
+ _decimals = _match[2];
2925
+ return "".concat(_int2).concat(decimalSeparator).concat(_decimals);
2926
+ }
2927
+ }
2928
+ return value;
2929
+ };
2930
+
2931
+ var getSuffix = function getSuffix(value, _ref) {
2932
+ var _ref$groupSeparator = _ref.groupSeparator,
2933
+ groupSeparator = _ref$groupSeparator === void 0 ? ',' : _ref$groupSeparator,
2934
+ _ref$decimalSeparator = _ref.decimalSeparator,
2935
+ decimalSeparator = _ref$decimalSeparator === void 0 ? '.' : _ref$decimalSeparator;
2936
+ var suffixReg = new RegExp("\\d([^".concat(escapeRegExp(groupSeparator)).concat(escapeRegExp(decimalSeparator), "0-9]+)"));
2937
+ var suffixMatch = value.match(suffixReg);
2938
+ return suffixMatch ? suffixMatch[1] : undefined;
2939
+ };
2940
+
2941
+ /**
2942
+ * Format value with decimal separator, group separator and prefix
2943
+ */
2944
+ var formatValue = function formatValue(options) {
2945
+ var _value = options.value,
2946
+ decimalSeparator = options.decimalSeparator,
2947
+ intlConfig = options.intlConfig,
2948
+ decimalScale = options.decimalScale,
2949
+ _options$prefix = options.prefix,
2950
+ prefix = _options$prefix === void 0 ? '' : _options$prefix,
2951
+ _options$suffix = options.suffix,
2952
+ suffix = _options$suffix === void 0 ? '' : _options$suffix;
2953
+ if (_value === '' || _value === undefined) {
2954
+ return '';
2955
+ }
2956
+ if (_value === '-') {
2957
+ return '-';
2958
+ }
2959
+ var isNegative = new RegExp("^\\d?-".concat(prefix ? "".concat(escapeRegExp(prefix), "?") : '', "\\d")).test(_value);
2960
+ var value = decimalSeparator !== '.' ? replaceDecimalSeparator(_value, decimalSeparator, isNegative) : _value;
2961
+ if (decimalSeparator && decimalSeparator !== '-' && value.startsWith(decimalSeparator)) {
2962
+ value = '0' + value;
2963
+ }
2964
+ var defaultNumberFormatOptions = {
2965
+ minimumFractionDigits: decimalScale || 0,
2966
+ maximumFractionDigits: 20
2967
+ };
2968
+ var numberFormatter = intlConfig ? new Intl.NumberFormat(intlConfig.locale, intlConfig.currency ? _objectSpread2(_objectSpread2({}, defaultNumberFormatOptions), {}, {
2969
+ style: 'currency',
2970
+ currency: intlConfig.currency
2971
+ }) : defaultNumberFormatOptions) : new Intl.NumberFormat(undefined, defaultNumberFormatOptions);
2972
+ var parts = numberFormatter.formatToParts(Number(value));
2973
+ var formatted = replaceParts(parts, options);
2974
+
2975
+ // Does intl formatting add a suffix?
2976
+ var intlSuffix = getSuffix(formatted, _objectSpread2({}, options));
2977
+
2978
+ // Include decimal separator if user input ends with decimal separator
2979
+ var includeDecimalSeparator = _value.slice(-1) === decimalSeparator ? decimalSeparator : '';
2980
+ var _ref = value.match(RegExp('\\d+\\.(\\d+)')) || [],
2981
+ _ref2 = _slicedToArray(_ref, 2),
2982
+ decimals = _ref2[1];
2983
+
2984
+ // Keep original decimal padding if no decimalScale
2985
+ if (decimalScale === undefined && decimals && decimalSeparator) {
2986
+ if (formatted.includes(decimalSeparator)) {
2987
+ formatted = formatted.replace(RegExp("(\\d+)(".concat(escapeRegExp(decimalSeparator), ")(\\d+)"), 'g'), "$1$2".concat(decimals));
2988
+ } else {
2989
+ if (intlSuffix && !suffix) {
2990
+ formatted = formatted.replace(intlSuffix, "".concat(decimalSeparator).concat(decimals).concat(intlSuffix));
2991
+ } else {
2992
+ formatted = "".concat(formatted).concat(decimalSeparator).concat(decimals);
2993
+ }
2994
+ }
2995
+ }
2996
+ if (suffix && includeDecimalSeparator) {
2997
+ return "".concat(formatted).concat(includeDecimalSeparator).concat(suffix);
2998
+ }
2999
+ if (intlSuffix && includeDecimalSeparator) {
3000
+ return formatted.replace(intlSuffix, "".concat(includeDecimalSeparator).concat(intlSuffix));
3001
+ }
3002
+ if (intlSuffix && suffix) {
3003
+ return formatted.replace(intlSuffix, "".concat(includeDecimalSeparator).concat(suffix));
3004
+ }
3005
+ return [formatted, includeDecimalSeparator, suffix].join('');
3006
+ };
3007
+
3008
+ /**
3009
+ * Before converting to Number, decimal separator has to be .
3010
+ */
3011
+ var replaceDecimalSeparator = function replaceDecimalSeparator(value, decimalSeparator, isNegative) {
3012
+ var newValue = value;
3013
+ if (decimalSeparator && decimalSeparator !== '.') {
3014
+ newValue = newValue.replace(RegExp(escapeRegExp(decimalSeparator), 'g'), '.');
3015
+ if (isNegative && decimalSeparator === '-') {
3016
+ newValue = "-".concat(newValue.slice(1));
3017
+ }
3018
+ }
3019
+ return newValue;
3020
+ };
3021
+ var replaceParts = function replaceParts(parts, _ref3) {
3022
+ var prefix = _ref3.prefix,
3023
+ groupSeparator = _ref3.groupSeparator,
3024
+ decimalSeparator = _ref3.decimalSeparator,
3025
+ decimalScale = _ref3.decimalScale,
3026
+ _ref3$disableGroupSep = _ref3.disableGroupSeparators,
3027
+ disableGroupSeparators = _ref3$disableGroupSep === void 0 ? false : _ref3$disableGroupSep;
3028
+ return parts.reduce(function (prev, _ref4, i) {
3029
+ var type = _ref4.type,
3030
+ value = _ref4.value;
3031
+ if (i === 0 && prefix) {
3032
+ if (type === 'minusSign') {
3033
+ return [value, prefix];
3034
+ }
3035
+ if (type === 'currency') {
3036
+ return [].concat(_toConsumableArray(prev), [prefix]);
3037
+ }
3038
+ return [prefix, value];
3039
+ }
3040
+ if (type === 'currency') {
3041
+ return prefix ? prev : [].concat(_toConsumableArray(prev), [value]);
3042
+ }
3043
+ if (type === 'group') {
3044
+ return !disableGroupSeparators ? [].concat(_toConsumableArray(prev), [groupSeparator !== undefined ? groupSeparator : value]) : prev;
3045
+ }
3046
+ if (type === 'decimal') {
3047
+ if (decimalScale !== undefined && decimalScale === 0) {
3048
+ return prev;
3049
+ }
3050
+ return [].concat(_toConsumableArray(prev), [decimalSeparator !== undefined ? decimalSeparator : value]);
3051
+ }
3052
+ if (type === 'fraction') {
3053
+ return [].concat(_toConsumableArray(prev), [decimalScale !== undefined ? value.slice(0, decimalScale) : value]);
3054
+ }
3055
+ return [].concat(_toConsumableArray(prev), [value]);
3056
+ }, ['']).join('');
3057
+ };
3058
+
3059
+ var defaultConfig = {
3060
+ currencySymbol: '',
3061
+ groupSeparator: '',
3062
+ decimalSeparator: '',
3063
+ prefix: '',
3064
+ suffix: ''
3065
+ };
3066
+
3067
+ /**
3068
+ * Get locale config from input or default
3069
+ */
3070
+ var getLocaleConfig = function getLocaleConfig(intlConfig) {
3071
+ var _ref = intlConfig || {},
3072
+ locale = _ref.locale,
3073
+ currency = _ref.currency;
3074
+ var numberFormatter = locale ? new Intl.NumberFormat(locale, currency ? {
3075
+ currency: currency,
3076
+ style: 'currency'
3077
+ } : undefined) : new Intl.NumberFormat();
3078
+ return numberFormatter.formatToParts(1000.1).reduce(function (prev, curr, i) {
3079
+ if (curr.type === 'currency') {
3080
+ if (i === 0) {
3081
+ return _objectSpread2(_objectSpread2({}, prev), {}, {
3082
+ currencySymbol: curr.value,
3083
+ prefix: curr.value
3084
+ });
3085
+ } else {
3086
+ return _objectSpread2(_objectSpread2({}, prev), {}, {
3087
+ currencySymbol: curr.value,
3088
+ suffix: curr.value
3089
+ });
3090
+ }
3091
+ }
3092
+ if (curr.type === 'group') {
3093
+ return _objectSpread2(_objectSpread2({}, prev), {}, {
3094
+ groupSeparator: curr.value
3095
+ });
3096
+ }
3097
+ if (curr.type === 'decimal') {
3098
+ return _objectSpread2(_objectSpread2({}, prev), {}, {
3099
+ decimalSeparator: curr.value
3100
+ });
3101
+ }
3102
+ return prev;
3103
+ }, defaultConfig);
3104
+ };
3105
+
3106
+ var isNumber = function isNumber(input) {
3107
+ return RegExp(/\d/, 'gi').test(input);
3108
+ };
3109
+
3110
+ var padTrimValue = function padTrimValue(value) {
3111
+ var decimalSeparator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.';
3112
+ var decimalScale = arguments.length > 2 ? arguments[2] : undefined;
3113
+ if (decimalScale === undefined || value === '' || value === undefined) {
3114
+ return value;
3115
+ }
3116
+ if (!value.match(/\d/g)) {
3117
+ return '';
3118
+ }
3119
+ var _value$split = value.split(decimalSeparator),
3120
+ _value$split2 = _slicedToArray(_value$split, 2),
3121
+ _int = _value$split2[0],
3122
+ decimals = _value$split2[1];
3123
+ if (decimalScale === 0) {
3124
+ return _int;
3125
+ }
3126
+ var newValue = decimals || '';
3127
+ if (newValue.length < decimalScale) {
3128
+ while (newValue.length < decimalScale) {
3129
+ newValue += '0';
3130
+ }
3131
+ } else {
3132
+ newValue = newValue.slice(0, decimalScale);
3133
+ }
3134
+ return "".concat(_int).concat(decimalSeparator).concat(newValue);
3135
+ };
3136
+
3137
+ /**
3138
+ * Based on the last key stroke and the cursor position, update the value
3139
+ * and reposition the cursor to the right place
3140
+ */
3141
+ var repositionCursor = function repositionCursor(_ref) {
3142
+ var selectionStart = _ref.selectionStart,
3143
+ value = _ref.value,
3144
+ lastKeyStroke = _ref.lastKeyStroke,
3145
+ stateValue = _ref.stateValue,
3146
+ groupSeparator = _ref.groupSeparator;
3147
+ var cursorPosition = selectionStart;
3148
+ var modifiedValue = value;
3149
+ if (stateValue && cursorPosition) {
3150
+ var splitValue = value.split('');
3151
+ // if cursor is to right of groupSeparator and backspace pressed, delete the character to the left of the separator and reposition the cursor
3152
+ if (lastKeyStroke === 'Backspace' && stateValue[cursorPosition] === groupSeparator) {
3153
+ splitValue.splice(cursorPosition - 1, 1);
3154
+ cursorPosition -= 1;
3155
+ }
3156
+ // if cursor is to left of groupSeparator and delete pressed, delete the character to the right of the separator and reposition the cursor
3157
+ if (lastKeyStroke === 'Delete' && stateValue[cursorPosition] === groupSeparator) {
3158
+ splitValue.splice(cursorPosition, 1);
3159
+ cursorPosition += 1;
3160
+ }
3161
+ modifiedValue = splitValue.join('');
3162
+ return {
3163
+ modifiedValue: modifiedValue,
3164
+ cursorPosition: cursorPosition
3165
+ };
3166
+ }
3167
+ return {
3168
+ modifiedValue: modifiedValue,
3169
+ cursorPosition: selectionStart
3170
+ };
3171
+ };
3172
+
3173
+ var _excluded = ["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", "formatValueOnBlur", "children"];
3174
+ var InputCurrency = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
3175
+ var _ref$allowDecimals = _ref.allowDecimals,
3176
+ allowDecimals = _ref$allowDecimals === void 0 ? true : _ref$allowDecimals,
3177
+ _ref$allowNegativeVal = _ref.allowNegativeValue,
3178
+ allowNegativeValue = _ref$allowNegativeVal === void 0 ? true : _ref$allowNegativeVal,
3179
+ id = _ref.id,
3180
+ name = _ref.name,
3181
+ className = _ref.className,
3182
+ customInput = _ref.customInput,
3183
+ decimalsLimit = _ref.decimalsLimit,
3184
+ defaultValue = _ref.defaultValue,
3185
+ _ref$disabled = _ref.disabled,
3186
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
3187
+ userMaxLength = _ref.maxLength,
3188
+ userValue = _ref.value,
3189
+ onValueChange = _ref.onValueChange,
3190
+ fixedDecimalLength = _ref.fixedDecimalLength,
3191
+ placeholder = _ref.placeholder,
3192
+ decimalScale = _ref.decimalScale,
3193
+ prefix = _ref.prefix,
3194
+ suffix = _ref.suffix,
3195
+ intlConfig = _ref.intlConfig,
3196
+ step = _ref.step,
3197
+ min = _ref.min,
3198
+ max = _ref.max,
3199
+ _ref$disableGroupSepa = _ref.disableGroupSeparators,
3200
+ disableGroupSeparators = _ref$disableGroupSepa === void 0 ? false : _ref$disableGroupSepa,
3201
+ _ref$disableAbbreviat = _ref.disableAbbreviations,
3202
+ disableAbbreviations = _ref$disableAbbreviat === void 0 ? false : _ref$disableAbbreviat,
3203
+ _decimalSeparator = _ref.decimalSeparator,
3204
+ _groupSeparator = _ref.groupSeparator,
3205
+ onChange = _ref.onChange,
3206
+ onFocus = _ref.onFocus,
3207
+ onBlur = _ref.onBlur,
3208
+ onKeyDown = _ref.onKeyDown,
3209
+ onKeyUp = _ref.onKeyUp,
3210
+ transformRawValue = _ref.transformRawValue,
3211
+ _ref$formatValueOnBlu = _ref.formatValueOnBlur,
3212
+ formatValueOnBlur = _ref$formatValueOnBlu === void 0 ? true : _ref$formatValueOnBlu,
3213
+ children = _ref.children,
3214
+ props = _objectWithoutProperties(_ref, _excluded);
3215
+ var theme$1 = theme.useTheme();
3216
+ if (_decimalSeparator && isNumber(_decimalSeparator)) {
3217
+ throw new Error('decimalSeparator cannot be a number');
3218
+ }
3219
+ if (_groupSeparator && isNumber(_groupSeparator)) {
3220
+ throw new Error('groupSeparator cannot be a number');
3221
+ }
3222
+ var localeConfig = React.useMemo(function () {
3223
+ return getLocaleConfig(intlConfig);
3224
+ }, [intlConfig]);
3225
+ var decimalSeparator = _decimalSeparator || localeConfig.decimalSeparator || '';
3226
+ var groupSeparator = _groupSeparator || localeConfig.groupSeparator || '';
3227
+ if (decimalSeparator && groupSeparator && decimalSeparator === groupSeparator && disableGroupSeparators === false) {
3228
+ throw new Error('decimalSeparator cannot be the same as groupSeparator');
3229
+ }
3230
+ var formatValueOptions = {
3231
+ decimalSeparator: decimalSeparator,
3232
+ groupSeparator: groupSeparator,
3233
+ disableGroupSeparators: disableGroupSeparators,
3234
+ intlConfig: intlConfig,
3235
+ prefix: prefix || localeConfig.prefix,
3236
+ suffix: suffix
3237
+ };
3238
+ var cleanValueOptions = {
3239
+ decimalSeparator: decimalSeparator,
3240
+ groupSeparator: groupSeparator,
3241
+ allowDecimals: allowDecimals,
3242
+ decimalsLimit: decimalsLimit || fixedDecimalLength || 2,
3243
+ allowNegativeValue: allowNegativeValue,
3244
+ disableAbbreviations: disableAbbreviations,
3245
+ prefix: prefix || localeConfig.prefix,
3246
+ transformRawValue: transformRawValue
3247
+ };
3248
+ var _useState = React.useState(function () {
3249
+ return defaultValue != null ? formatValue(_objectSpread2(_objectSpread2({}, formatValueOptions), {}, {
3250
+ decimalScale: decimalScale,
3251
+ value: String(defaultValue)
3252
+ })) : userValue != null ? formatValue(_objectSpread2(_objectSpread2({}, formatValueOptions), {}, {
3253
+ decimalScale: decimalScale,
3254
+ value: String(userValue)
3255
+ })) : '';
3256
+ }),
3257
+ _useState2 = _slicedToArray(_useState, 2),
3258
+ stateValue = _useState2[0],
3259
+ setStateValue = _useState2[1];
3260
+ var _useState3 = React.useState(false),
3261
+ _useState4 = _slicedToArray(_useState3, 2),
3262
+ dirty = _useState4[0],
3263
+ setDirty = _useState4[1];
3264
+ var _useState5 = React.useState(0),
3265
+ _useState6 = _slicedToArray(_useState5, 2),
3266
+ cursor = _useState6[0],
3267
+ setCursor = _useState6[1];
3268
+ var _useState7 = React.useState(0),
3269
+ _useState8 = _slicedToArray(_useState7, 2),
3270
+ changeCount = _useState8[0],
3271
+ setChangeCount = _useState8[1];
3272
+ var _useState9 = React.useState(null),
3273
+ _useState0 = _slicedToArray(_useState9, 2),
3274
+ lastKeyStroke = _useState0[0],
3275
+ setLastKeyStroke = _useState0[1];
3276
+ var inputRef = React.useRef(null);
3277
+ React.useImperativeHandle(ref, function () {
3278
+ return inputRef.current;
3279
+ });
3280
+
3281
+ /**
3282
+ * Process change in value
3283
+ */
3284
+ var processChange = function processChange(value, selectionStart) {
3285
+ setDirty(true);
3286
+ var _repositionCursor = repositionCursor({
3287
+ selectionStart: selectionStart,
3288
+ value: value,
3289
+ lastKeyStroke: lastKeyStroke,
3290
+ stateValue: stateValue,
3291
+ groupSeparator: groupSeparator
3292
+ }),
3293
+ modifiedValue = _repositionCursor.modifiedValue,
3294
+ cursorPosition = _repositionCursor.cursorPosition;
3295
+ var stringValue = cleanValue(_objectSpread2({
3296
+ value: modifiedValue
3297
+ }, cleanValueOptions));
3298
+ if (userMaxLength && stringValue.replace(/-/g, '').length > userMaxLength) {
3299
+ return;
3300
+ }
3301
+ if (stringValue === '' || stringValue === '-' || stringValue === decimalSeparator) {
3302
+ onValueChange && onValueChange(undefined, name, {
3303
+ "float": null,
3304
+ formatted: '',
3305
+ value: ''
3306
+ });
3307
+ setStateValue(stringValue);
3308
+ // Always sets cursor after '-' or decimalSeparator input
3309
+ setCursor(1);
3310
+ return;
3311
+ }
3312
+ var stringValueWithoutSeparator = decimalSeparator ? stringValue.replace(decimalSeparator, '.') : stringValue;
3313
+ var numberValue = parseFloat(stringValueWithoutSeparator);
3314
+ var formattedValue = formatValue(_objectSpread2({
3315
+ value: stringValue
3316
+ }, formatValueOptions));
3317
+ if (cursorPosition != null) {
3318
+ // Prevent cursor jumping
3319
+ var newCursor = cursorPosition + (formattedValue.length - value.length);
3320
+ newCursor = newCursor <= 0 ? prefix ? prefix.length : 0 : newCursor;
3321
+ setCursor(newCursor);
3322
+ setChangeCount(changeCount + 1);
3323
+ }
3324
+ setStateValue(formattedValue);
3325
+ if (onValueChange) {
3326
+ var values = {
3327
+ "float": numberValue,
3328
+ formatted: formattedValue,
3329
+ value: stringValue
3330
+ };
3331
+ onValueChange(stringValue, name, values);
3332
+ }
3333
+ };
3334
+
3335
+ /**
3336
+ * Handle change event
3337
+ */
3338
+ var handleOnChange = function handleOnChange(event) {
3339
+ var _event$target = event.target,
3340
+ value = _event$target.value,
3341
+ selectionStart = _event$target.selectionStart;
3342
+ processChange(value, selectionStart);
3343
+ onChange && onChange(event);
3344
+ };
3345
+
3346
+ /**
3347
+ * Handle focus event
3348
+ */
3349
+ var handleOnFocus = function handleOnFocus(event) {
3350
+ onFocus && onFocus(event);
3351
+ return stateValue ? stateValue.length : 0;
3352
+ };
3353
+
3354
+ /**
3355
+ * Handle blur event
3356
+ *
3357
+ * Format value by padding/trimming decimals if required by
3358
+ */
3359
+ var handleOnBlur = function handleOnBlur(event) {
3360
+ var value = event.target.value;
3361
+ var valueOnly = cleanValue(_objectSpread2({
3362
+ value: value
3363
+ }, cleanValueOptions));
3364
+ if (valueOnly === '-' || valueOnly === decimalSeparator || !valueOnly) {
3365
+ setStateValue('');
3366
+ onBlur && onBlur(event);
3367
+ return;
3368
+ }
3369
+ var fixedDecimals = fixedDecimalValue(valueOnly, decimalSeparator, fixedDecimalLength);
3370
+ var newValue = padTrimValue(fixedDecimals, decimalSeparator, decimalScale !== undefined ? decimalScale : fixedDecimalLength);
3371
+ var numberValue = parseFloat(newValue.replace(decimalSeparator, '.'));
3372
+ var formattedValue = formatValue(_objectSpread2(_objectSpread2({}, formatValueOptions), {}, {
3373
+ value: newValue
3374
+ }));
3375
+ if (onValueChange && formatValueOnBlur) {
3376
+ onValueChange(newValue, name, {
3377
+ "float": numberValue,
3378
+ formatted: formattedValue,
3379
+ value: newValue
3380
+ });
3381
+ }
3382
+ setStateValue(formattedValue);
3383
+ onBlur && onBlur(event);
3384
+ };
3385
+
3386
+ /**
3387
+ * Handle key down event
3388
+ *
3389
+ * Increase or decrease value by step
3390
+ */
3391
+ var handleOnKeyDown = function handleOnKeyDown(event) {
3392
+ var key = event.key;
3393
+ setLastKeyStroke(key);
3394
+ if (step && (key === 'ArrowUp' || key === 'ArrowDown')) {
3395
+ event.preventDefault();
3396
+ setCursor(stateValue.length);
3397
+ var currentValue = parseFloat(userValue != null ? String(userValue).replace(decimalSeparator, '.') : cleanValue(_objectSpread2({
3398
+ value: stateValue
3399
+ }, cleanValueOptions))) || 0;
3400
+ var newValue = key === 'ArrowUp' ? currentValue + step : currentValue - step;
3401
+ if (min !== undefined && newValue < Number(min)) {
3402
+ return;
3403
+ }
3404
+ if (max !== undefined && newValue > Number(max)) {
3405
+ return;
3406
+ }
3407
+ var fixedLength = String(step).includes('.') ? Number(String(step).split('.')[1].length) : undefined;
3408
+ processChange(String(fixedLength ? newValue.toFixed(fixedLength) : newValue).replace('.', decimalSeparator));
3409
+ }
3410
+ onKeyDown && onKeyDown(event);
3411
+ };
3412
+
3413
+ /**
3414
+ * Handle key up event
3415
+ *
3416
+ * Move cursor if there is a suffix to prevent user typing past suffix
3417
+ */
3418
+ var handleOnKeyUp = function handleOnKeyUp(event) {
3419
+ var key = event.key,
3420
+ selectionStart = event.currentTarget.selectionStart;
3421
+ if (key !== 'ArrowUp' && key !== 'ArrowDown' && stateValue !== '-') {
3422
+ var _suffix = getSuffix(stateValue, {
3423
+ groupSeparator: groupSeparator,
3424
+ decimalSeparator: decimalSeparator
3425
+ });
3426
+ if (_suffix && selectionStart && selectionStart > stateValue.length - _suffix.length) {
3427
+ /* istanbul ignore else */
3428
+ if (inputRef.current) {
3429
+ var newCursor = stateValue.length - _suffix.length;
3430
+ inputRef.current.setSelectionRange(newCursor, newCursor);
3431
+ }
3432
+ }
3433
+ }
3434
+ onKeyUp && onKeyUp(event);
3435
+ };
3436
+
3437
+ // Update state if userValue changes to undefined
3438
+ React.useEffect(function () {
3439
+ if (userValue == null && defaultValue == null) {
3440
+ setStateValue('');
3441
+ }
3442
+ }, [defaultValue, userValue]);
3443
+ React.useEffect(function () {
3444
+ // prevent cursor jumping if editing value
3445
+ if (dirty && stateValue !== '-' && inputRef.current && document.activeElement === inputRef.current) {
3446
+ inputRef.current.setSelectionRange(cursor, cursor);
3447
+ }
3448
+ }, [stateValue, cursor, inputRef, dirty, changeCount]);
3449
+
3450
+ /**
3451
+ * If user has only entered "-" or decimal separator,
3452
+ * keep the char to allow them to enter next value
3453
+ */
3454
+ var getRenderValue = function getRenderValue() {
3455
+ if (userValue != null && stateValue !== '-' && (!decimalSeparator || stateValue !== decimalSeparator)) {
3456
+ return formatValue(_objectSpread2(_objectSpread2({}, formatValueOptions), {}, {
3457
+ decimalScale: dirty ? undefined : decimalScale,
3458
+ value: String(userValue)
3459
+ }));
3460
+ }
3461
+ return stateValue;
3462
+ };
3463
+ var inputProps = _objectSpread2({
3464
+ type: 'text',
3465
+ inputMode: 'decimal',
3466
+ id: id,
3467
+ name: name,
3468
+ className: className,
3469
+ onChange: handleOnChange,
3470
+ onBlur: handleOnBlur,
3471
+ onFocus: handleOnFocus,
3472
+ onKeyDown: handleOnKeyDown,
3473
+ onKeyUp: handleOnKeyUp,
3474
+ placeholder: placeholder,
3475
+ disabled: disabled,
3476
+ value: getRenderValue(),
3477
+ ref: inputRef
3478
+ }, props);
3479
+ if (customInput) {
3480
+ var CustomInput = customInput;
3481
+ return /*#__PURE__*/React.createElement(CustomInput, inputProps);
3482
+ }
3483
+ return /*#__PURE__*/React.createElement("div", null, children && /*#__PURE__*/React.createElement("label", {
3484
+ style: {
3485
+ display: 'block',
3486
+ marginBottom: '0.7rem',
3487
+ fontSize: '14px',
3488
+ fontWeight: 'light'
3489
+ }
3490
+ }, children), /*#__PURE__*/React.createElement("input", _extends({}, inputProps, {
3491
+ style: {
3492
+ textAlign: 'right',
3493
+ border: "1px solid ".concat(theme$1.palette.border),
3494
+ fontSize: '14px',
3495
+ borderRadius: '5px',
3496
+ height: '35px',
3497
+ padding: '5px 10px',
3498
+ fontWeight: 'light',
3499
+ width: 'auto',
3500
+ background: 'transparent',
3501
+ minWidth: '200px'
3502
+ }
3503
+ })));
3504
+ });
3505
+
1366
3506
  /* "use client" */
1367
3507
  Input.Textarea = Textarea;
1368
3508
  Input.Password = InputPassword;
3509
+ Input.Phone = PhoneInput;
3510
+ Input.Currency = InputCurrency;
1369
3511
 
1370
3512
  exports.default = Input;
1371
3513
  exports.getColors = getColors;