@bonlineza/luxity-lib 2.7.5 → 2.9.1

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 (71) hide show
  1. package/Accordion.js +39 -85
  2. package/AddInterest.js +937 -754
  3. package/BrandSelector.js +82 -166
  4. package/Checkbox.js +18 -24
  5. package/CheckboxButton.js +18 -42
  6. package/CountryCodeSelect.js +16 -3
  7. package/CurrencyInputFormatter.js +671 -0
  8. package/GenderSelector.js +31 -81
  9. package/GraphQLMultiSelector.js +45 -87
  10. package/IconHeader.js +8 -17
  11. package/IconWrapper.js +2 -10
  12. package/InterestCatSelector.js +83 -121
  13. package/InterestItem.js +103 -134
  14. package/Interests.js +1029 -895
  15. package/InterestsSubheading.js +5 -23
  16. package/InvertedTextButton.js +17 -48
  17. package/LuxityGraphQLMultiselector.js +73 -143
  18. package/LuxityPageReady.js +15 -8
  19. package/NotificationDropDown.js +66 -63
  20. package/Notify.js +1 -1
  21. package/OutlinePrimaryButton.js +12 -37
  22. package/PriceRangeSelector.js +679 -282
  23. package/PrimaryButton.js +12 -37
  24. package/README.md +1 -1
  25. package/RadioButtons.js +61 -139
  26. package/RangeSlider.js +55 -125
  27. package/ReactSelectWrapper.js +15 -2
  28. package/SecondaryButton.js +12 -37
  29. package/ShoeSizeSelector.js +71 -171
  30. package/SimpleErrorBoundary.js +12 -5
  31. package/StyleSelector.js +82 -166
  32. package/TextButton.js +12 -37
  33. package/Tooltip.js +16 -81
  34. package/WrapperButton.js +8 -32
  35. package/build/bundle.js +1092 -1113
  36. package/build/constants.js +4 -2
  37. package/package.json +10 -12
  38. package/svg/Accessories.js +4 -5
  39. package/svg/Account.js +4 -5
  40. package/svg/Add.js +4 -5
  41. package/svg/ArrowRight.js +3 -4
  42. package/svg/Bags.js +6 -7
  43. package/svg/BurgerMenu.js +3 -4
  44. package/svg/Calendar.js +17 -18
  45. package/svg/CalendarCircled.js +18 -19
  46. package/svg/CheckCircled.js +4 -5
  47. package/svg/Close.js +3 -4
  48. package/svg/Clothing.js +50 -0
  49. package/svg/Dot.js +3 -4
  50. package/svg/Edit.js +3 -4
  51. package/svg/Eye.js +4 -5
  52. package/svg/FileAttach.js +3 -4
  53. package/svg/FileAttachCircled.js +4 -5
  54. package/svg/LightBulb.js +11 -12
  55. package/svg/Logo.js +38 -39
  56. package/svg/LuxityMenu.js +3 -4
  57. package/svg/Minus.js +3 -4
  58. package/svg/MobileAvatar.js +3 -4
  59. package/svg/MyOrder.js +6 -7
  60. package/svg/MyPayment.js +6 -7
  61. package/svg/MyProfile.js +7 -8
  62. package/svg/MySale.js +4 -5
  63. package/svg/Notification.js +4 -5
  64. package/svg/PointerDown.js +3 -4
  65. package/svg/Search.js +3 -4
  66. package/svg/Shoes.js +6 -7
  67. package/svg/SvgWrapper.js +2 -10
  68. package/svg/Trash.js +5 -6
  69. package/svg/Watches.js +11 -12
  70. package/CHANGELOG.md +0 -152
  71. package/CurrencyInput.js +0 -156
@@ -1,31 +1,14 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('@bonlineza/b-lib/functions'), require('rc-slider'), require('styled-components'), require('text-mask-all/addons/dist/createNumberMask'), require('text-mask-all/react/dist/reactTextMask')) :
3
- typeof define === 'function' && define.amd ? define(['react', '@bonlineza/b-lib/functions', 'rc-slider', 'styled-components', 'text-mask-all/addons/dist/createNumberMask', 'text-mask-all/react/dist/reactTextMask'], factory) :
4
- (global = global || self, global.PriceRangeSelector = factory(global.React, global.function, global.rcSlider, global.styled, global.createNumberMask, global.MaskedInput));
5
- }(this, (function (React, functions, rcSlider, styled, createNumberMask, MaskedInput) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('@bonlineza/b-lib/functions'), require('rc-slider'), require('styled-components')) :
3
+ typeof define === 'function' && define.amd ? define(['react', '@bonlineza/b-lib/functions', 'rc-slider', 'styled-components'], factory) :
4
+ (global = global || self, global.PriceRangeSelector = factory(global.React, global.function, global.rcSlider, global.styled));
5
+ }(this, (function (React, functions, rcSlider, styled) { 'use strict';
6
6
 
7
7
  var React__default = 'default' in React ? React['default'] : React;
8
8
  var styled__default = 'default' in styled ? styled['default'] : styled;
9
- createNumberMask = createNumberMask && Object.prototype.hasOwnProperty.call(createNumberMask, 'default') ? createNumberMask['default'] : createNumberMask;
10
- MaskedInput = MaskedInput && Object.prototype.hasOwnProperty.call(MaskedInput, 'default') ? MaskedInput['default'] : MaskedInput;
11
-
12
- function _defineProperty(obj, key, value) {
13
- if (key in obj) {
14
- Object.defineProperty(obj, key, {
15
- value: value,
16
- enumerable: true,
17
- configurable: true,
18
- writable: true
19
- });
20
- } else {
21
- obj[key] = value;
22
- }
23
-
24
- return obj;
25
- }
26
9
 
27
10
  function _extends() {
28
- _extends = Object.assign || function (target) {
11
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
29
12
  for (var i = 1; i < arguments.length; i++) {
30
13
  var source = arguments[i];
31
14
 
@@ -38,44 +21,9 @@
38
21
 
39
22
  return target;
40
23
  };
41
-
42
24
  return _extends.apply(this, arguments);
43
25
  }
44
26
 
45
- function ownKeys(object, enumerableOnly) {
46
- var keys = Object.keys(object);
47
-
48
- if (Object.getOwnPropertySymbols) {
49
- var symbols = Object.getOwnPropertySymbols(object);
50
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
51
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
52
- });
53
- keys.push.apply(keys, symbols);
54
- }
55
-
56
- return keys;
57
- }
58
-
59
- function _objectSpread2(target) {
60
- for (var i = 1; i < arguments.length; i++) {
61
- var source = arguments[i] != null ? arguments[i] : {};
62
-
63
- if (i % 2) {
64
- ownKeys(Object(source), true).forEach(function (key) {
65
- _defineProperty(target, key, source[key]);
66
- });
67
- } else if (Object.getOwnPropertyDescriptors) {
68
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
69
- } else {
70
- ownKeys(Object(source)).forEach(function (key) {
71
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
72
- });
73
- }
74
- }
75
-
76
- return target;
77
- }
78
-
79
27
  function _objectWithoutPropertiesLoose(source, excluded) {
80
28
  if (source == null) return {};
81
29
  var target = {};
@@ -133,14 +81,17 @@
133
81
  }
134
82
 
135
83
  function _iterableToArrayLimit(arr, i) {
136
- if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
84
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
85
+
86
+ if (_i == null) return;
137
87
  var _arr = [];
138
88
  var _n = true;
139
89
  var _d = false;
140
- var _e = undefined;
90
+
91
+ var _s, _e;
141
92
 
142
93
  try {
143
- for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
94
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
144
95
  _arr.push(_s.value);
145
96
 
146
97
  if (i && _arr.length === i) break;
@@ -201,17 +152,17 @@
201
152
  };
202
153
 
203
154
  var themed = (function (Component) {
204
- return React.forwardRef(function (props, ref) {
205
- return React__default.createElement(styled.ThemeProvider, {
155
+ return /*#__PURE__*/React.forwardRef(function (props, ref) {
156
+ return /*#__PURE__*/React__default.createElement(styled.ThemeProvider, {
206
157
  theme: theme
207
- }, React__default.createElement(Component, _extends({}, props, {
158
+ }, /*#__PURE__*/React__default.createElement(Component, _extends({}, props, {
208
159
  ref: ref
209
160
  })));
210
161
  });
211
162
  });
212
163
 
213
164
  function _extends$1() {
214
- _extends$1 = Object.assign || function (target) {
165
+ _extends$1 = Object.assign ? Object.assign.bind() : function (target) {
215
166
  for (var i = 1; i < arguments.length; i++) {
216
167
  var source = arguments[i];
217
168
 
@@ -224,7 +175,6 @@
224
175
 
225
176
  return target;
226
177
  };
227
-
228
178
  return _extends$1.apply(this, arguments);
229
179
  }
230
180
 
@@ -236,28 +186,27 @@
236
186
  return self;
237
187
  }
238
188
 
189
+ function _setPrototypeOf(o, p) {
190
+ _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
191
+ o.__proto__ = p;
192
+ return o;
193
+ };
194
+ return _setPrototypeOf(o, p);
195
+ }
196
+
239
197
  function _inheritsLoose(subClass, superClass) {
240
198
  subClass.prototype = Object.create(superClass.prototype);
241
199
  subClass.prototype.constructor = subClass;
242
- subClass.__proto__ = superClass;
200
+ _setPrototypeOf(subClass, superClass);
243
201
  }
244
202
 
245
203
  function _getPrototypeOf(o) {
246
- _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
204
+ _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
247
205
  return o.__proto__ || Object.getPrototypeOf(o);
248
206
  };
249
207
  return _getPrototypeOf(o);
250
208
  }
251
209
 
252
- function _setPrototypeOf(o, p) {
253
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
254
- o.__proto__ = p;
255
- return o;
256
- };
257
-
258
- return _setPrototypeOf(o, p);
259
- }
260
-
261
210
  function _isNativeFunction(fn) {
262
211
  return Function.toString.call(fn).indexOf("[native code]") !== -1;
263
212
  }
@@ -268,7 +217,7 @@
268
217
  if (typeof Proxy === "function") return true;
269
218
 
270
219
  try {
271
- Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
220
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
272
221
  return true;
273
222
  } catch (e) {
274
223
  return false;
@@ -277,7 +226,7 @@
277
226
 
278
227
  function _construct(Parent, args, Class) {
279
228
  if (_isNativeReflectConstruct()) {
280
- _construct = Reflect.construct;
229
+ _construct = Reflect.construct.bind();
281
230
  } else {
282
231
  _construct = function _construct(Parent, args, Class) {
283
232
  var a = [null];
@@ -406,7 +355,8 @@
406
355
  "71": "Passed invalid pixel value %s to %s(), please pass a value like \"12px\" or 12.\n\n",
407
356
  "72": "Passed invalid base value %s to %s(), please pass a value like \"12px\" or 12.\n\n",
408
357
  "73": "Please provide a valid CSS variable.\n\n",
409
- "74": "CSS variable not found.\n"
358
+ "74": "CSS variable not found.\n\n",
359
+ "75": "fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\n"
410
360
  };
411
361
  /**
412
362
  * super basic version of sprintf
@@ -445,7 +395,7 @@
445
395
  var _this;
446
396
 
447
397
  if (process.env.NODE_ENV === 'production') {
448
- _this = _Error.call(this, "An error occurred. See https://github.com/styled-components/polished/blob/master/src/internalHelpers/errors.md#" + code + " for more information.") || this;
398
+ _this = _Error.call(this, "An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#" + code + " for more information.") || this;
449
399
  } else {
450
400
  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
451
401
  args[_key2 - 1] = arguments[_key2];
@@ -748,7 +698,7 @@
748
698
  };
749
699
  }
750
700
 
751
- var rgbaMatched = rgbaRegex.exec(normalizedColor);
701
+ var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));
752
702
 
753
703
  if (rgbaMatched) {
754
704
  return {
@@ -779,7 +729,7 @@
779
729
  };
780
730
  }
781
731
 
782
- var hslaMatched = hslaRegex.exec(normalizedColor);
732
+ var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));
783
733
 
784
734
  if (hslaMatched) {
785
735
  var _hue = parseInt("" + hslaMatched[1], 10);
@@ -960,7 +910,7 @@
960
910
  var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;
961
911
 
962
912
  var colorWithAlpha = _extends$1({}, parsedColor, {
963
- alpha: guard(0, 1, (alpha * 100 - parseFloat(amount) * 100) / 100)
913
+ alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)
964
914
  });
965
915
 
966
916
  return rgba(colorWithAlpha);
@@ -971,58 +921,12 @@
971
921
  /* ::<number | string, string, string> */
972
922
  (transparentize);
973
923
 
974
- function _templateObject() {
975
- var data = _taggedTemplateLiteral(["\n .rc-slider {\n position: relative;\n height: 14px;\n padding: 5px 0;\n width: 100%;\n border-radius: 6px;\n touch-action: none;\n box-sizing: border-box;\n }\n .rc-slider * {\n box-sizing: border-box;\n }\n .rc-slider-rail {\n position: absolute;\n width: 100%;\n background-color: #e9e9e9;\n height: 4px;\n border-radius: 6px;\n }\n .rc-slider-track {\n position: absolute;\n left: 0;\n height: 4px;\n border-radius: 6px;\n background-color: #abe2fb;\n }\n .rc-slider-handle {\n position: absolute;\n width: 14px;\n height: 14px;\n cursor: pointer;\n margin-top: -5px;\n border-radius: 50%;\n border: solid 2px #96dbfa;\n background-color: #fff;\n -ms-touch-action: pan-x;\n touch-action: pan-x;\n }\n .rc-slider-handle:focus {\n border-color: #57c5f7;\n box-shadow: 0 0 0 5px #96dbfa;\n outline: none;\n }\n .rc-slider-handle-click-focused:focus {\n border-color: #96dbfa;\n box-shadow: unset;\n }\n .rc-slider-handle:hover {\n border-color: #57c5f7;\n }\n .rc-slider-handle:active {\n border-color: #57c5f7;\n box-shadow: 0 0 5px #57c5f7;\n cursor: grabbing;\n }\n .rc-slider-mark {\n position: absolute;\n top: 18px;\n left: 0;\n width: 100%;\n font-size: 12px;\n }\n .rc-slider-mark-text {\n position: absolute;\n display: inline-block;\n vertical-align: middle;\n text-align: center;\n cursor: pointer;\n color: #999;\n }\n .rc-slider-mark-text-active {\n color: #666;\n }\n .rc-slider-step {\n position: absolute;\n width: 100%;\n height: 4px;\n background: transparent;\n }\n .rc-slider-dot {\n position: absolute;\n bottom: -2px;\n margin-left: -4px;\n width: 8px;\n height: 8px;\n border: 2px solid #e9e9e9;\n background-color: #fff;\n cursor: pointer;\n border-radius: 50%;\n vertical-align: middle;\n }\n .rc-slider-dot-active {\n border-color: #96dbfa;\n }\n .rc-slider-dot-reverse {\n margin-left: 0;\n margin-right: -4px;\n }\n .rc-slider-disabled {\n background-color: #e9e9e9;\n }\n .rc-slider-disabled .rc-slider-track {\n background-color: #ccc;\n }\n .rc-slider-disabled .rc-slider-handle,\n .rc-slider-disabled .rc-slider-dot {\n border-color: #ccc;\n box-shadow: none;\n background-color: #fff;\n cursor: not-allowed;\n }\n .rc-slider-disabled .rc-slider-mark-text,\n .rc-slider-disabled .rc-slider-dot {\n cursor: not-allowed !important;\n }\n .rc-slider-vertical {\n width: 14px;\n height: 100%;\n padding: 0 5px;\n }\n .rc-slider-vertical .rc-slider-rail {\n height: 100%;\n width: 4px;\n }\n .rc-slider-vertical .rc-slider-track {\n left: 5px;\n bottom: 0;\n width: 4px;\n }\n .rc-slider-vertical .rc-slider-handle {\n margin-left: -5px;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n }\n .rc-slider-vertical .rc-slider-mark {\n top: 0;\n left: 18px;\n height: 100%;\n }\n .rc-slider-vertical .rc-slider-step {\n height: 100%;\n width: 4px;\n }\n .rc-slider-vertical .rc-slider-dot {\n left: 2px;\n margin-bottom: -4px;\n }\n .rc-slider-vertical .rc-slider-dot:first-child {\n margin-bottom: -4px;\n }\n .rc-slider-vertical .rc-slider-dot:last-child {\n margin-bottom: -4px;\n }\n .rc-slider-tooltip-zoom-down-enter,\n .rc-slider-tooltip-zoom-down-appear {\n animation-duration: 0.3s;\n animation-fill-mode: both;\n display: block !important;\n animation-play-state: paused;\n }\n .rc-slider-tooltip-zoom-down-leave {\n animation-duration: 0.3s;\n animation-fill-mode: both;\n display: block !important;\n animation-play-state: paused;\n }\n .rc-slider-tooltip-zoom-down-enter.rc-slider-tooltip-zoom-down-enter-active,\n .rc-slider-tooltip-zoom-down-appear.rc-slider-tooltip-zoom-down-appear-active {\n animation-name: rcSliderTooltipZoomDownIn;\n animation-play-state: running;\n }\n .rc-slider-tooltip-zoom-down-leave.rc-slider-tooltip-zoom-down-leave-active {\n animation-name: rcSliderTooltipZoomDownOut;\n animation-play-state: running;\n }\n .rc-slider-tooltip-zoom-down-enter,\n .rc-slider-tooltip-zoom-down-appear {\n transform: scale(0, 0);\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n }\n .rc-slider-tooltip-zoom-down-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n }\n @keyframes rcSliderTooltipZoomDownIn {\n 0% {\n opacity: 0;\n transform-origin: 50% 100%;\n transform: scale(0, 0);\n }\n 100% {\n transform-origin: 50% 100%;\n transform: scale(1, 1);\n }\n }\n @keyframes rcSliderTooltipZoomDownOut {\n 0% {\n transform-origin: 50% 100%;\n transform: scale(1, 1);\n }\n 100% {\n opacity: 0;\n transform-origin: 50% 100%;\n transform: scale(0, 0);\n }\n }\n .rc-slider-tooltip {\n position: absolute;\n left: -9999px;\n top: -9999px;\n visibility: visible;\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n }\n .rc-slider-tooltip * {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n }\n .rc-slider-tooltip-hidden {\n display: none;\n }\n .rc-slider-tooltip-placement-top {\n padding: 4px 0 8px 0;\n }\n .rc-slider-tooltip-inner {\n padding: 6px 2px;\n min-width: 24px;\n height: 24px;\n font-size: 12px;\n line-height: 1;\n color: #fff;\n text-align: center;\n text-decoration: none;\n background-color: #6c6c6c;\n border-radius: 6px;\n box-shadow: 0 0 4px #d9d9d9;\n }\n .rc-slider-tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n .rc-slider-tooltip-placement-top .rc-slider-tooltip-arrow {\n bottom: 4px;\n left: 50%;\n margin-left: -4px;\n border-width: 4px 4px 0;\n border-top-color: #6c6c6c;\n }\n"]);
976
-
977
- _templateObject = function _templateObject() {
978
- return data;
979
- };
980
-
981
- return data;
982
- }
983
- var baseSliderStyles = styled.css(_templateObject());
984
-
985
- function _templateObject4() {
986
- var data = _taggedTemplateLiteral(["\n .rc-slider-mark-text {\n color: ", ";\n }\n\n .rc-slider-dot {\n border-color: ", ";\n background-color: white;\n }\n ", "\n "]);
987
-
988
- _templateObject4 = function _templateObject4() {
989
- return data;
990
- };
991
-
992
- return data;
993
- }
994
-
995
- function _templateObject3() {
996
- var data = _taggedTemplateLiteral(["\n .rc-slider-mark-text,\n .rc-slider-dot {\n visibility: hidden;\n }\n "]);
997
-
998
- _templateObject3 = function _templateObject3() {
999
- return data;
1000
- };
924
+ var _templateObject;
925
+ var baseSliderStyles = styled.css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .rc-slider {\n position: relative;\n height: 14px;\n padding: 5px 0;\n width: 100%;\n border-radius: 6px;\n touch-action: none;\n box-sizing: border-box;\n }\n .rc-slider * {\n box-sizing: border-box;\n }\n .rc-slider-rail {\n position: absolute;\n width: 100%;\n background-color: #e9e9e9;\n height: 4px;\n border-radius: 6px;\n }\n .rc-slider-track {\n position: absolute;\n left: 0;\n height: 4px;\n border-radius: 6px;\n background-color: #abe2fb;\n }\n .rc-slider-handle {\n position: absolute;\n width: 14px;\n height: 14px;\n cursor: pointer;\n margin-top: -5px;\n border-radius: 50%;\n border: solid 2px #96dbfa;\n background-color: #fff;\n -ms-touch-action: pan-x;\n touch-action: pan-x;\n }\n .rc-slider-handle:focus {\n border-color: #57c5f7;\n box-shadow: 0 0 0 5px #96dbfa;\n outline: none;\n }\n .rc-slider-handle-click-focused:focus {\n border-color: #96dbfa;\n box-shadow: unset;\n }\n .rc-slider-handle:hover {\n border-color: #57c5f7;\n }\n .rc-slider-handle:active {\n border-color: #57c5f7;\n box-shadow: 0 0 5px #57c5f7;\n cursor: grabbing;\n }\n .rc-slider-mark {\n position: absolute;\n top: 18px;\n left: 0;\n width: 100%;\n font-size: 12px;\n }\n .rc-slider-mark-text {\n position: absolute;\n display: inline-block;\n vertical-align: middle;\n text-align: center;\n cursor: pointer;\n color: #999;\n }\n .rc-slider-mark-text-active {\n color: #666;\n }\n .rc-slider-step {\n position: absolute;\n width: 100%;\n height: 4px;\n background: transparent;\n }\n .rc-slider-dot {\n position: absolute;\n bottom: -2px;\n margin-left: -4px;\n width: 8px;\n height: 8px;\n border: 2px solid #e9e9e9;\n background-color: #fff;\n cursor: pointer;\n border-radius: 50%;\n vertical-align: middle;\n }\n .rc-slider-dot-active {\n border-color: #96dbfa;\n }\n .rc-slider-dot-reverse {\n margin-left: 0;\n margin-right: -4px;\n }\n .rc-slider-disabled {\n background-color: #e9e9e9;\n }\n .rc-slider-disabled .rc-slider-track {\n background-color: #ccc;\n }\n .rc-slider-disabled .rc-slider-handle,\n .rc-slider-disabled .rc-slider-dot {\n border-color: #ccc;\n box-shadow: none;\n background-color: #fff;\n cursor: not-allowed;\n }\n .rc-slider-disabled .rc-slider-mark-text,\n .rc-slider-disabled .rc-slider-dot {\n cursor: not-allowed !important;\n }\n .rc-slider-vertical {\n width: 14px;\n height: 100%;\n padding: 0 5px;\n }\n .rc-slider-vertical .rc-slider-rail {\n height: 100%;\n width: 4px;\n }\n .rc-slider-vertical .rc-slider-track {\n left: 5px;\n bottom: 0;\n width: 4px;\n }\n .rc-slider-vertical .rc-slider-handle {\n margin-left: -5px;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n }\n .rc-slider-vertical .rc-slider-mark {\n top: 0;\n left: 18px;\n height: 100%;\n }\n .rc-slider-vertical .rc-slider-step {\n height: 100%;\n width: 4px;\n }\n .rc-slider-vertical .rc-slider-dot {\n left: 2px;\n margin-bottom: -4px;\n }\n .rc-slider-vertical .rc-slider-dot:first-child {\n margin-bottom: -4px;\n }\n .rc-slider-vertical .rc-slider-dot:last-child {\n margin-bottom: -4px;\n }\n .rc-slider-tooltip-zoom-down-enter,\n .rc-slider-tooltip-zoom-down-appear {\n animation-duration: 0.3s;\n animation-fill-mode: both;\n display: block !important;\n animation-play-state: paused;\n }\n .rc-slider-tooltip-zoom-down-leave {\n animation-duration: 0.3s;\n animation-fill-mode: both;\n display: block !important;\n animation-play-state: paused;\n }\n .rc-slider-tooltip-zoom-down-enter.rc-slider-tooltip-zoom-down-enter-active,\n .rc-slider-tooltip-zoom-down-appear.rc-slider-tooltip-zoom-down-appear-active {\n animation-name: rcSliderTooltipZoomDownIn;\n animation-play-state: running;\n }\n .rc-slider-tooltip-zoom-down-leave.rc-slider-tooltip-zoom-down-leave-active {\n animation-name: rcSliderTooltipZoomDownOut;\n animation-play-state: running;\n }\n .rc-slider-tooltip-zoom-down-enter,\n .rc-slider-tooltip-zoom-down-appear {\n transform: scale(0, 0);\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n }\n .rc-slider-tooltip-zoom-down-leave {\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n }\n @keyframes rcSliderTooltipZoomDownIn {\n 0% {\n opacity: 0;\n transform-origin: 50% 100%;\n transform: scale(0, 0);\n }\n 100% {\n transform-origin: 50% 100%;\n transform: scale(1, 1);\n }\n }\n @keyframes rcSliderTooltipZoomDownOut {\n 0% {\n transform-origin: 50% 100%;\n transform: scale(1, 1);\n }\n 100% {\n opacity: 0;\n transform-origin: 50% 100%;\n transform: scale(0, 0);\n }\n }\n .rc-slider-tooltip {\n position: absolute;\n left: -9999px;\n top: -9999px;\n visibility: visible;\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n }\n .rc-slider-tooltip * {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n }\n .rc-slider-tooltip-hidden {\n display: none;\n }\n .rc-slider-tooltip-placement-top {\n padding: 4px 0 8px 0;\n }\n .rc-slider-tooltip-inner {\n padding: 6px 2px;\n min-width: 24px;\n height: 24px;\n font-size: 12px;\n line-height: 1;\n color: #fff;\n text-align: center;\n text-decoration: none;\n background-color: #6c6c6c;\n border-radius: 6px;\n box-shadow: 0 0 4px #d9d9d9;\n }\n .rc-slider-tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n .rc-slider-tooltip-placement-top .rc-slider-tooltip-arrow {\n bottom: 4px;\n left: 50%;\n margin-left: -4px;\n border-width: 4px 4px 0;\n border-top-color: #6c6c6c;\n }\n"])));
1001
926
 
1002
- return data;
1003
- }
1004
-
1005
- function _templateObject2() {
1006
- var data = _taggedTemplateLiteral([""]);
1007
-
1008
- _templateObject2 = function _templateObject2() {
1009
- return data;
1010
- };
1011
-
1012
- return data;
1013
- }
1014
-
1015
- function _templateObject$1() {
1016
- var data = _taggedTemplateLiteral(["\n ", ";\n position: relative;\n .rc-slider-handle {\n background-color: ", ";\n border-color: ", ";\n }\n\n .rc-slider {\n margin-bottom: ", ";\n max-width: calc(100% - ", ");\n margin-left: auto;\n margin-right: auto;\n }\n .rc-slider-track {\n background-color: ", ";\n }\n\n .rc-slider-handle {\n height: ", ";\n width: ", ";\n transition: border-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;\n &:hover,\n &:focus {\n border: ", ";\n box-shadow: 0 0 0 5px\n ", ";\n }\n }\n ", "\n"]);
1017
-
1018
- _templateObject$1 = function _templateObject() {
1019
- return data;
1020
- };
1021
-
1022
- return data;
1023
- }
927
+ var _templateObject$1, _templateObject2, _templateObject3, _templateObject4;
1024
928
  var handleDimension = '14px';
1025
- var SliderContainer = styled__default.div(_templateObject$1(), baseSliderStyles, function (props) {
929
+ var SliderContainer = styled__default.div(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n ", ";\n position: relative;\n .rc-slider-handle {\n background-color: ", ";\n border-color: ", ";\n }\n\n .rc-slider {\n margin-bottom: ", ";\n max-width: calc(100% - ", ");\n margin-left: auto;\n margin-right: auto;\n }\n .rc-slider-track {\n background-color: ", ";\n }\n\n .rc-slider-handle {\n height: ", ";\n width: ", ";\n transition: border-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;\n &:hover,\n &:focus {\n border: ", ";\n box-shadow: 0 0 0 5px\n ", ";\n }\n }\n ", "\n"])), baseSliderStyles, function (props) {
1026
930
  return props.theme.colors.primary;
1027
931
  }, function (props) {
1028
932
  return props.theme.colors.primary;
@@ -1041,43 +945,22 @@
1041
945
  var getSliderMarkStyle = function getSliderMarkStyle(_ref) {
1042
946
  var showMarks = _ref.showMarks,
1043
947
  primary = _ref.theme.colors.primary;
1044
- var visiblityStyle = showMarks ? styled.css(_templateObject2()) : styled.css(_templateObject3());
1045
- return styled.css(_templateObject4(), primary, primary, visiblityStyle);
948
+ var visiblityStyle = showMarks ? styled.css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([""]))) : styled.css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n .rc-slider-mark-text,\n .rc-slider-dot {\n visibility: hidden;\n }\n "])));
949
+ return styled.css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n .rc-slider-mark-text {\n color: ", ";\n }\n\n .rc-slider-dot {\n border-color: ", ";\n background-color: white;\n }\n ", "\n "])), primary, primary, visiblityStyle);
1046
950
  };
1047
951
 
1048
- function _templateObject$2() {
1049
- var data = _taggedTemplateLiteral(["\n position: absolute;\n right: auto;\n top: 20px;\n transform: translateX(-50%);\n width: 100px;\n text-align: center;\n"]);
1050
-
1051
- _templateObject$2 = function _templateObject() {
1052
- return data;
1053
- };
1054
-
1055
- return data;
1056
- }
1057
- var ToolTipWrapper = styled__default.div(_templateObject$2());
952
+ var _templateObject$2;
953
+ var ToolTipWrapper = styled__default.div(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n position: absolute;\n right: auto;\n top: 20px;\n transform: translateX(-50%);\n width: 100px;\n text-align: center;\n"])));
1058
954
 
1059
- function _templateObject$3() {
1060
- var data = _taggedTemplateLiteral(["\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-end;\n"]);
955
+ var _templateObject$3;
956
+ var Footer = styled__default.div(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteral(["\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-end;\n"])));
1061
957
 
1062
- _templateObject$3 = function _templateObject() {
1063
- return data;
1064
- };
958
+ var _excluded = ["dragging", "value", "offset", "index"],
959
+ _excluded2 = ["renderTitleSection", "marks", "defaultMinValue", "defaultMaxValue", "min", "max", "toolTipComponent", "renderFooterSection", "onChange", "children", "identifier", "showMarks"];
1065
960
 
1066
- return data;
1067
- }
1068
- var Footer = styled__default.div(_templateObject$3());
1069
-
1070
- function _templateObject$4() {
1071
- var data = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n"]);
1072
-
1073
- _templateObject$4 = function _templateObject() {
1074
- return data;
1075
- };
1076
-
1077
- return data;
1078
- }
961
+ var _templateObject$4;
1079
962
  var debounceBuilder = functions.debounced(100);
1080
- var ChildrenWrapper = styled__default.div(_templateObject$4(), function (props) {
963
+ var ChildrenWrapper = styled__default.div(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n"])), function (props) {
1081
964
  return props.theme.marginPaddings[3];
1082
965
  });
1083
966
 
@@ -1090,7 +973,7 @@
1090
973
  value = handleProps.value,
1091
974
  offset = handleProps.offset,
1092
975
  index = handleProps.index,
1093
- restHandleProps = _objectWithoutProperties(handleProps, ["dragging", "value", "offset", "index"]);
976
+ restHandleProps = _objectWithoutProperties(handleProps, _excluded);
1094
977
 
1095
978
  var getToolTipProps = function getToolTipProps() {
1096
979
  var newProps = {}; // Ensures that Tooltip component does not get ref prop
@@ -1104,18 +987,18 @@
1104
987
  };
1105
988
 
1106
989
  var Tooltip = toolTipComponent;
1107
- return React__default.createElement(React.Fragment, {
990
+ return /*#__PURE__*/React__default.createElement(React.Fragment, {
1108
991
  key: index
1109
- }, React__default.createElement(rcSlider.Handle, _extends({
992
+ }, /*#__PURE__*/React__default.createElement(rcSlider.Handle, _extends({
1110
993
  offset: offset,
1111
994
  value: value
1112
995
  }, restHandleProps, {
1113
996
  dragging: dragging.toString()
1114
- })), toolTipComponent && React__default.createElement(ToolTipWrapper, {
997
+ })), toolTipComponent && /*#__PURE__*/React__default.createElement(ToolTipWrapper, {
1115
998
  style: {
1116
999
  left: "".concat(offset, "%")
1117
1000
  }
1118
- }, React__default.createElement(Tooltip, _extends({
1001
+ }, /*#__PURE__*/React__default.createElement(Tooltip, _extends({
1119
1002
  marks: marks
1120
1003
  }, getToolTipProps()))));
1121
1004
  };
@@ -1135,7 +1018,7 @@
1135
1018
  childRenderer = _ref.children,
1136
1019
  identifier = _ref.identifier,
1137
1020
  showMarks = _ref.showMarks,
1138
- restProps = _objectWithoutProperties(_ref, ["renderTitleSection", "marks", "defaultMinValue", "defaultMaxValue", "min", "max", "toolTipComponent", "renderFooterSection", "onChange", "children", "identifier", "showMarks"]);
1021
+ restProps = _objectWithoutProperties(_ref, _excluded2);
1139
1022
 
1140
1023
  var _useState = React.useState(defaultMinValue),
1141
1024
  _useState2 = _slicedToArray(_useState, 2),
@@ -1168,15 +1051,12 @@
1168
1051
  setSeed(Date.now());
1169
1052
  };
1170
1053
 
1171
- var giveFullRange = React.useCallback(function () {
1172
- manuallyChangeMinValue(min);
1173
- manuallyChangeMaxValue(max);
1174
- }, [max, min]);
1175
1054
  var prevMinVal = functions.usePrevious(currMinVal);
1176
1055
  var prevMaxVal = functions.usePrevious(currMaxVal);
1177
1056
  React.useEffect(function () {
1178
- giveFullRange();
1179
- }, [min, max, giveFullRange]);
1057
+ manuallyChangeMinValue(min);
1058
+ manuallyChangeMaxValue(max);
1059
+ }, [min, max]);
1180
1060
  React.useEffect(function () {
1181
1061
  if (prevMinVal !== currMinVal || prevMaxVal !== currMaxVal) {
1182
1062
  var value = {
@@ -1191,16 +1071,15 @@
1191
1071
  var actionsObj = {
1192
1072
  manuallyChangeMinValue: manuallyChangeMinValue,
1193
1073
  manuallyChangeMaxValue: manuallyChangeMaxValue,
1194
- giveFullRange: giveFullRange,
1195
1074
  currMinVal: currMinVal,
1196
1075
  currMaxVal: currMaxVal,
1197
1076
  defaultMinValue: defaultMinValue,
1198
1077
  defaultMaxValue: defaultMaxValue
1199
1078
  };
1200
- return React__default.createElement(SliderContainer, {
1079
+ return /*#__PURE__*/React__default.createElement(SliderContainer, {
1201
1080
  "data-qe-id": identifier,
1202
1081
  showMarks: showMarks
1203
- }, renderTitleSection(actionsObj), childRenderer && React__default.createElement(ChildrenWrapper, null, typeof childRenderer === 'function' ? childRenderer(actionsObj) : childRenderer), React__default.createElement(rcSlider.Range, _extends({
1082
+ }, renderTitleSection(actionsObj), childRenderer && /*#__PURE__*/React__default.createElement(ChildrenWrapper, null, typeof childRenderer === 'function' ? childRenderer(actionsObj) : childRenderer), /*#__PURE__*/React__default.createElement(rcSlider.Range, _extends({
1204
1083
  seed: seed,
1205
1084
  min: min,
1206
1085
  max: max,
@@ -1220,7 +1099,7 @@
1220
1099
  return renderCustomHandle(marks, toolTipComponent, props);
1221
1100
  },
1222
1101
  allowCross: false
1223
- }, restProps)), React__default.createElement(Footer, null, renderFooterSection(actionsObj)));
1102
+ }, restProps)), /*#__PURE__*/React__default.createElement(Footer, null, renderFooterSection(actionsObj)));
1224
1103
  };
1225
1104
 
1226
1105
  RangeSlider.defaultProps = {
@@ -1240,75 +1119,618 @@
1240
1119
  };
1241
1120
  var RangeSlider$1 = themed(RangeSlider);
1242
1121
 
1243
- var defaultMaskOptions = {
1244
- prefix: 'R',
1245
- suffix: '',
1246
- includeThousandsSeparator: true,
1247
- thousandsSeparatorSymbol: ',',
1248
- allowDecimal: true,
1249
- decimalSymbol: '.',
1250
- decimalLimit: 2,
1251
- // how many digits allowed after the decimal
1252
- allowNegative: false,
1253
- allowLeadingZeroes: false
1122
+ /*! *****************************************************************************
1123
+ Copyright (c) Microsoft Corporation.
1124
+
1125
+ Permission to use, copy, modify, and/or distribute this software for any
1126
+ purpose with or without fee is hereby granted.
1127
+
1128
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
1129
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1130
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
1131
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1132
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1133
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1134
+ PERFORMANCE OF THIS SOFTWARE.
1135
+ ***************************************************************************** */
1136
+
1137
+ var __assign = function() {
1138
+ __assign = Object.assign || function __assign(t) {
1139
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
1140
+ s = arguments[i];
1141
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1142
+ }
1143
+ return t;
1144
+ };
1145
+ return __assign.apply(this, arguments);
1146
+ };
1147
+
1148
+ function __rest(s, e) {
1149
+ var t = {};
1150
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
1151
+ t[p] = s[p];
1152
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
1153
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1154
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
1155
+ t[p[i]] = s[p[i]];
1156
+ }
1157
+ return t;
1158
+ }
1159
+
1160
+ function __spreadArray(to, from, pack) {
1161
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
1162
+ if (ar || !(i in from)) {
1163
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
1164
+ ar[i] = from[i];
1165
+ }
1166
+ }
1167
+ return to.concat(ar || from);
1168
+ }
1169
+
1170
+ /**
1171
+ * Escape regex char
1172
+ *
1173
+ * See: https://stackoverflow.com/questions/17885855/use-dynamic-variable-string-as-regex-pattern-in-javascript
1174
+ */
1175
+ var escapeRegExp = function (stringToGoIntoTheRegex) {
1176
+ return stringToGoIntoTheRegex.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
1254
1177
  };
1255
- var unMask = function unMask() {
1256
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
1257
- return value.replace(/\D/g, '');
1178
+
1179
+ var abbrMap = { k: 1000, m: 1000000, b: 1000000000 };
1180
+ /**
1181
+ * Parse a value with abbreviation e.g 1k = 1000
1182
+ */
1183
+ var parseAbbrValue = function (value, decimalSeparator) {
1184
+ if (decimalSeparator === void 0) { decimalSeparator = '.'; }
1185
+ var reg = new RegExp("(\\d+(" + escapeRegExp(decimalSeparator) + "\\d*)?)([kmb])$", 'i');
1186
+ var match = value.match(reg);
1187
+ if (match) {
1188
+ var digits = match[1], abbr = match[3];
1189
+ var multiplier = abbrMap[abbr.toLowerCase()];
1190
+ return Number(digits.replace(decimalSeparator, '.')) * multiplier;
1191
+ }
1192
+ return undefined;
1258
1193
  };
1194
+
1259
1195
  /**
1260
- * Currency Input Masks text to specific format
1196
+ * Remove group separator from value eg. 1,000 > 1000
1261
1197
  */
1198
+ var removeSeparators = function (value, separator) {
1199
+ if (separator === void 0) { separator = ','; }
1200
+ var reg = new RegExp(escapeRegExp(separator), 'g');
1201
+ return value.replace(reg, '');
1202
+ };
1262
1203
 
1263
- var CurrencyInput = function CurrencyInput(_ref) {
1264
- var inputMode = _ref.inputMode,
1265
- maskOptions = _ref.maskOptions,
1266
- inputProps = _objectWithoutProperties(_ref, ["inputMode", "maskOptions"]);
1204
+ /**
1205
+ * Remove invalid characters
1206
+ */
1207
+ var removeInvalidChars = function (value, validChars) {
1208
+ var chars = escapeRegExp(validChars.join(''));
1209
+ var reg = new RegExp("[^\\d" + chars + "]", 'gi');
1210
+ return value.replace(reg, '');
1211
+ };
1267
1212
 
1268
- var currencyMask = createNumberMask(_objectSpread2(_objectSpread2({}, defaultMaskOptions), maskOptions));
1269
- return React__default.createElement(MaskedInput, _extends({}, inputProps, {
1270
- inputMode: inputMode,
1271
- mask: currencyMask
1272
- }));
1213
+ /**
1214
+ * Remove prefix, separators and extra decimals from value
1215
+ */
1216
+ var cleanValue = function (_a) {
1217
+ 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;
1218
+ var transformedValue = transformRawValue(value);
1219
+ if (transformedValue === '-') {
1220
+ return transformedValue;
1221
+ }
1222
+ var abbreviations = disableAbbreviations ? [] : ['k', 'm', 'b'];
1223
+ var reg = new RegExp("((^|\\D)-\\d)|(-" + escapeRegExp(prefix) + ")");
1224
+ var isNegative = reg.test(transformedValue);
1225
+ // Is there a digit before the prefix? eg. 1$
1226
+ var _k = RegExp("(\\d+)-?" + escapeRegExp(prefix)).exec(value) || [], prefixWithValue = _k[0], preValue = _k[1];
1227
+ var withoutPrefix = prefix
1228
+ ? prefixWithValue
1229
+ ? transformedValue.replace(prefixWithValue, '').concat(preValue)
1230
+ : transformedValue.replace(prefix, '')
1231
+ : transformedValue;
1232
+ var withoutSeparators = removeSeparators(withoutPrefix, groupSeparator);
1233
+ var withoutInvalidChars = removeInvalidChars(withoutSeparators, __spreadArray([
1234
+ groupSeparator,
1235
+ decimalSeparator
1236
+ ], abbreviations));
1237
+ var valueOnly = withoutInvalidChars;
1238
+ if (!disableAbbreviations) {
1239
+ // disallow letter without number
1240
+ if (abbreviations.some(function (letter) { return letter === withoutInvalidChars.toLowerCase(); })) {
1241
+ return '';
1242
+ }
1243
+ var parsed = parseAbbrValue(withoutInvalidChars, decimalSeparator);
1244
+ if (parsed) {
1245
+ valueOnly = String(parsed);
1246
+ }
1247
+ }
1248
+ var includeNegative = isNegative && allowNegativeValue ? '-' : '';
1249
+ if (decimalSeparator && valueOnly.includes(decimalSeparator)) {
1250
+ var _l = withoutInvalidChars.split(decimalSeparator), int = _l[0], decimals = _l[1];
1251
+ var trimmedDecimals = decimalsLimit && decimals ? decimals.slice(0, decimalsLimit) : decimals;
1252
+ var includeDecimals = allowDecimals ? "" + decimalSeparator + trimmedDecimals : '';
1253
+ return "" + includeNegative + int + includeDecimals;
1254
+ }
1255
+ return "" + includeNegative + valueOnly;
1273
1256
  };
1274
1257
 
1275
- CurrencyInput.defaultProps = {
1276
- maskOptions: defaultMaskOptions,
1277
- inputMode: 'numeric'
1258
+ var fixedDecimalValue = function (value, decimalSeparator, fixedDecimalLength) {
1259
+ if (fixedDecimalLength && value.length > 1) {
1260
+ if (value.includes(decimalSeparator)) {
1261
+ var _a = value.split(decimalSeparator), int = _a[0], decimals = _a[1];
1262
+ if (decimals.length > fixedDecimalLength) {
1263
+ return "" + int + decimalSeparator + decimals.slice(0, fixedDecimalLength);
1264
+ }
1265
+ }
1266
+ var reg = value.length > fixedDecimalLength
1267
+ ? new RegExp("(\\d+)(\\d{" + fixedDecimalLength + "})")
1268
+ : new RegExp("(\\d)(\\d+)");
1269
+ var match = value.match(reg);
1270
+ if (match) {
1271
+ var int = match[1], decimals = match[2];
1272
+ return "" + int + decimalSeparator + decimals;
1273
+ }
1274
+ }
1275
+ return value;
1278
1276
  };
1279
1277
 
1280
- function _templateObject2$1() {
1281
- var data = _taggedTemplateLiteral(["\n padding: 1rem 3.5rem;\n cursor: pointer;\n letter-spacing: 1.3px;\n border-style: none;\n text-transform: uppercase;\n font-size: 12px;\n color: #fff;\n transition: 0.2s ease-in-out;\n outline: none;\n min-width: 150px;\n"]);
1278
+ var getSuffix = function (value, _a) {
1279
+ var _b = _a.groupSeparator, groupSeparator = _b === void 0 ? ',' : _b, _c = _a.decimalSeparator, decimalSeparator = _c === void 0 ? '.' : _c;
1280
+ var suffixReg = new RegExp("\\d([^" + escapeRegExp(groupSeparator) + escapeRegExp(decimalSeparator) + "0-9]+)");
1281
+ var suffixMatch = value.match(suffixReg);
1282
+ return suffixMatch ? suffixMatch[1] : undefined;
1283
+ };
1282
1284
 
1283
- _templateObject2$1 = function _templateObject2() {
1284
- return data;
1285
- };
1285
+ /**
1286
+ * Format value with decimal separator, group separator and prefix
1287
+ */
1288
+ var formatValue = function (options) {
1289
+ 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;
1290
+ if (_value === '' || _value === undefined) {
1291
+ return '';
1292
+ }
1293
+ if (_value === '-') {
1294
+ return '-';
1295
+ }
1296
+ var isNegative = new RegExp("^\\d?-" + (prefix ? escapeRegExp(prefix) + "?" : '') + "\\d").test(_value);
1297
+ var value = decimalSeparator !== '.'
1298
+ ? replaceDecimalSeparator(_value, decimalSeparator, isNegative)
1299
+ : _value;
1300
+ var numberFormatter = intlConfig
1301
+ ? new Intl.NumberFormat(intlConfig.locale, intlConfig.currency
1302
+ ? {
1303
+ style: 'currency',
1304
+ currency: intlConfig.currency,
1305
+ minimumFractionDigits: decimalScale || 0,
1306
+ maximumFractionDigits: 20,
1307
+ }
1308
+ : undefined)
1309
+ : new Intl.NumberFormat(undefined, {
1310
+ minimumFractionDigits: decimalScale || 0,
1311
+ maximumFractionDigits: 20,
1312
+ });
1313
+ var parts = numberFormatter.formatToParts(Number(value));
1314
+ var formatted = replaceParts(parts, options);
1315
+ // Does intl formatting add a suffix?
1316
+ var intlSuffix = getSuffix(formatted, __assign({}, options));
1317
+ // Include decimal separator if user input ends with decimal separator
1318
+ var includeDecimalSeparator = _value.slice(-1) === decimalSeparator ? decimalSeparator : '';
1319
+ var _c = value.match(RegExp('\\d+\\.(\\d+)')) || [], decimals = _c[1];
1320
+ // Keep original decimal padding if no decimalScale
1321
+ if (decimalScale === undefined && decimals && decimalSeparator) {
1322
+ if (formatted.includes(decimalSeparator)) {
1323
+ formatted = formatted.replace(RegExp("(\\d+)(" + escapeRegExp(decimalSeparator) + ")(\\d+)", 'g'), "$1$2" + decimals);
1324
+ }
1325
+ else {
1326
+ if (intlSuffix && !suffix) {
1327
+ formatted = formatted.replace(intlSuffix, "" + decimalSeparator + decimals + intlSuffix);
1328
+ }
1329
+ else {
1330
+ formatted = "" + formatted + decimalSeparator + decimals;
1331
+ }
1332
+ }
1333
+ }
1334
+ if (suffix && includeDecimalSeparator) {
1335
+ return "" + formatted + includeDecimalSeparator + suffix;
1336
+ }
1337
+ if (intlSuffix && includeDecimalSeparator) {
1338
+ return formatted.replace(intlSuffix, "" + includeDecimalSeparator + intlSuffix);
1339
+ }
1340
+ if (intlSuffix && suffix) {
1341
+ return formatted.replace(intlSuffix, "" + includeDecimalSeparator + suffix);
1342
+ }
1343
+ return [formatted, includeDecimalSeparator, suffix].join('');
1344
+ };
1345
+ /**
1346
+ * Before converting to Number, decimal separator has to be .
1347
+ */
1348
+ var replaceDecimalSeparator = function (value, decimalSeparator, isNegative) {
1349
+ var newValue = value;
1350
+ if (decimalSeparator && decimalSeparator !== '.') {
1351
+ newValue = newValue.replace(RegExp(escapeRegExp(decimalSeparator), 'g'), '.');
1352
+ if (isNegative && decimalSeparator === '-') {
1353
+ newValue = "-" + newValue.slice(1);
1354
+ }
1355
+ }
1356
+ return newValue;
1357
+ };
1358
+ var replaceParts = function (parts, _a) {
1359
+ var prefix = _a.prefix, groupSeparator = _a.groupSeparator, decimalSeparator = _a.decimalSeparator, decimalScale = _a.decimalScale, _b = _a.disableGroupSeparators, disableGroupSeparators = _b === void 0 ? false : _b;
1360
+ return parts
1361
+ .reduce(function (prev, _a, i) {
1362
+ var type = _a.type, value = _a.value;
1363
+ if (i === 0 && prefix) {
1364
+ if (type === 'minusSign') {
1365
+ return [value, prefix];
1366
+ }
1367
+ if (type === 'currency') {
1368
+ return __spreadArray(__spreadArray([], prev), [prefix]);
1369
+ }
1370
+ return [prefix, value];
1371
+ }
1372
+ if (type === 'currency') {
1373
+ return prefix ? prev : __spreadArray(__spreadArray([], prev), [value]);
1374
+ }
1375
+ if (type === 'group') {
1376
+ return !disableGroupSeparators
1377
+ ? __spreadArray(__spreadArray([], prev), [groupSeparator !== undefined ? groupSeparator : value]) : prev;
1378
+ }
1379
+ if (type === 'decimal') {
1380
+ if (decimalScale !== undefined && decimalScale === 0) {
1381
+ return prev;
1382
+ }
1383
+ return __spreadArray(__spreadArray([], prev), [decimalSeparator !== undefined ? decimalSeparator : value]);
1384
+ }
1385
+ if (type === 'fraction') {
1386
+ return __spreadArray(__spreadArray([], prev), [decimalScale !== undefined ? value.slice(0, decimalScale) : value]);
1387
+ }
1388
+ return __spreadArray(__spreadArray([], prev), [value]);
1389
+ }, [''])
1390
+ .join('');
1391
+ };
1286
1392
 
1287
- return data;
1288
- }
1393
+ var defaultConfig = {
1394
+ currencySymbol: '',
1395
+ groupSeparator: '',
1396
+ decimalSeparator: '',
1397
+ prefix: '',
1398
+ suffix: '',
1399
+ };
1400
+ /**
1401
+ * Get locale config from input or default
1402
+ */
1403
+ var getLocaleConfig = function (intlConfig) {
1404
+ var _a = intlConfig || {}, locale = _a.locale, currency = _a.currency;
1405
+ var numberFormatter = locale
1406
+ ? new Intl.NumberFormat(locale, currency ? { currency: currency, style: 'currency' } : undefined)
1407
+ : new Intl.NumberFormat();
1408
+ return numberFormatter.formatToParts(1000.1).reduce(function (prev, curr, i) {
1409
+ if (curr.type === 'currency') {
1410
+ if (i === 0) {
1411
+ return __assign(__assign({}, prev), { currencySymbol: curr.value, prefix: curr.value });
1412
+ }
1413
+ else {
1414
+ return __assign(__assign({}, prev), { currencySymbol: curr.value, suffix: curr.value });
1415
+ }
1416
+ }
1417
+ if (curr.type === 'group') {
1418
+ return __assign(__assign({}, prev), { groupSeparator: curr.value });
1419
+ }
1420
+ if (curr.type === 'decimal') {
1421
+ return __assign(__assign({}, prev), { decimalSeparator: curr.value });
1422
+ }
1423
+ return prev;
1424
+ }, defaultConfig);
1425
+ };
1289
1426
 
1290
- function _templateObject$5() {
1291
- var data = _taggedTemplateLiteral(["\n cursor: not-allowed;\n opacity: 0.4;\n"]);
1427
+ var isNumber = function (input) { return RegExp(/\d/, 'gi').test(input); };
1292
1428
 
1293
- _templateObject$5 = function _templateObject() {
1294
- return data;
1295
- };
1429
+ var padTrimValue = function (value, decimalSeparator, decimalScale) {
1430
+ if (decimalSeparator === void 0) { decimalSeparator = '.'; }
1431
+ if (decimalScale === undefined || value === '' || value === undefined) {
1432
+ return value;
1433
+ }
1434
+ if (!value.match(/\d/g)) {
1435
+ return '';
1436
+ }
1437
+ var _a = value.split(decimalSeparator), int = _a[0], decimals = _a[1];
1438
+ if (decimalScale === 0) {
1439
+ return int;
1440
+ }
1441
+ var newValue = decimals || '';
1442
+ if (newValue.length < decimalScale) {
1443
+ while (newValue.length < decimalScale) {
1444
+ newValue += '0';
1445
+ }
1446
+ }
1447
+ else {
1448
+ newValue = newValue.slice(0, decimalScale);
1449
+ }
1450
+ return "" + int + decimalSeparator + newValue;
1451
+ };
1296
1452
 
1297
- return data;
1298
- }
1299
- var disabledButtonStyle = styled.css(_templateObject$5());
1300
- var baseButtonStyle = styled.css(_templateObject2$1());
1453
+ /**
1454
+ * Based on the last key stroke and the cursor position, update the value
1455
+ * and reposition the cursor to the right place
1456
+ */
1457
+ var repositionCursor = function (_a) {
1458
+ var selectionStart = _a.selectionStart, value = _a.value, lastKeyStroke = _a.lastKeyStroke, stateValue = _a.stateValue, groupSeparator = _a.groupSeparator;
1459
+ var cursorPosition = selectionStart;
1460
+ var modifiedValue = value;
1461
+ if (stateValue && cursorPosition) {
1462
+ var splitValue = value.split('');
1463
+ // if cursor is to right of groupSeparator and backspace pressed, delete the character to the left of the separator and reposition the cursor
1464
+ if (lastKeyStroke === 'Backspace' && stateValue[cursorPosition] === groupSeparator) {
1465
+ splitValue.splice(cursorPosition - 1, 1);
1466
+ cursorPosition -= 1;
1467
+ }
1468
+ // if cursor is to left of groupSeparator and delete pressed, delete the character to the right of the separator and reposition the cursor
1469
+ if (lastKeyStroke === 'Delete' && stateValue[cursorPosition] === groupSeparator) {
1470
+ splitValue.splice(cursorPosition, 1);
1471
+ cursorPosition += 1;
1472
+ }
1473
+ modifiedValue = splitValue.join('');
1474
+ return { modifiedValue: modifiedValue, cursorPosition: cursorPosition };
1475
+ }
1476
+ return { modifiedValue: modifiedValue, cursorPosition: selectionStart };
1477
+ };
1301
1478
 
1302
- function _templateObject$6() {
1303
- var data = _taggedTemplateLiteral(["\n ", ";\n background-color: ", ";\n color: ", ";\n border: 1px solid ", ";\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:disabled {\n ", "\n &:hover {\n background-color: ", ";\n }\n }\n"]);
1479
+ var CurrencyInput = React.forwardRef(function (_a, ref) {
1480
+ 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"]);
1481
+ if (_decimalSeparator && isNumber(_decimalSeparator)) {
1482
+ throw new Error('decimalSeparator cannot be a number');
1483
+ }
1484
+ if (_groupSeparator && isNumber(_groupSeparator)) {
1485
+ throw new Error('groupSeparator cannot be a number');
1486
+ }
1487
+ var localeConfig = React.useMemo(function () { return getLocaleConfig(intlConfig); }, [intlConfig]);
1488
+ var decimalSeparator = _decimalSeparator || localeConfig.decimalSeparator || '';
1489
+ var groupSeparator = _groupSeparator || localeConfig.groupSeparator || '';
1490
+ if (decimalSeparator &&
1491
+ groupSeparator &&
1492
+ decimalSeparator === groupSeparator &&
1493
+ disableGroupSeparators === false) {
1494
+ throw new Error('decimalSeparator cannot be the same as groupSeparator');
1495
+ }
1496
+ var formatValueOptions = {
1497
+ decimalSeparator: decimalSeparator,
1498
+ groupSeparator: groupSeparator,
1499
+ disableGroupSeparators: disableGroupSeparators,
1500
+ intlConfig: intlConfig,
1501
+ prefix: prefix || localeConfig.prefix,
1502
+ suffix: suffix,
1503
+ };
1504
+ var cleanValueOptions = {
1505
+ decimalSeparator: decimalSeparator,
1506
+ groupSeparator: groupSeparator,
1507
+ allowDecimals: allowDecimals,
1508
+ decimalsLimit: decimalsLimit || fixedDecimalLength || 2,
1509
+ allowNegativeValue: allowNegativeValue,
1510
+ disableAbbreviations: disableAbbreviations,
1511
+ prefix: prefix || localeConfig.prefix,
1512
+ transformRawValue: transformRawValue,
1513
+ };
1514
+ var formattedStateValue = defaultValue !== undefined && defaultValue !== null
1515
+ ? formatValue(__assign(__assign({}, formatValueOptions), { decimalScale: decimalScale, value: String(defaultValue) }))
1516
+ : userValue !== undefined && userValue !== null
1517
+ ? formatValue(__assign(__assign({}, formatValueOptions), { decimalScale: decimalScale, value: String(userValue) }))
1518
+ : '';
1519
+ var _g = React.useState(formattedStateValue), stateValue = _g[0], setStateValue = _g[1];
1520
+ var _h = React.useState(false), dirty = _h[0], setDirty = _h[1];
1521
+ var _j = React.useState(0), cursor = _j[0], setCursor = _j[1];
1522
+ var _k = React.useState(0), changeCount = _k[0], setChangeCount = _k[1];
1523
+ var _l = React.useState(null), lastKeyStroke = _l[0], setLastKeyStroke = _l[1];
1524
+ var inputRef = ref || React.useRef(null);
1525
+ /**
1526
+ * Process change in value
1527
+ */
1528
+ var processChange = function (value, selectionStart) {
1529
+ setDirty(true);
1530
+ var _a = repositionCursor({
1531
+ selectionStart: selectionStart,
1532
+ value: value,
1533
+ lastKeyStroke: lastKeyStroke,
1534
+ stateValue: stateValue,
1535
+ groupSeparator: groupSeparator,
1536
+ }), modifiedValue = _a.modifiedValue, cursorPosition = _a.cursorPosition;
1537
+ var stringValue = cleanValue(__assign({ value: modifiedValue }, cleanValueOptions));
1538
+ if (userMaxLength && stringValue.replace(/-/g, '').length > userMaxLength) {
1539
+ return;
1540
+ }
1541
+ if (stringValue === '' || stringValue === '-' || stringValue === decimalSeparator) {
1542
+ onValueChange && onValueChange(undefined, name, { float: null, formatted: '', value: '' });
1543
+ setStateValue(stringValue);
1544
+ return;
1545
+ }
1546
+ var numberValue = parseFloat(stringValue.replace(decimalSeparator, '.'));
1547
+ var formattedValue = formatValue(__assign({ value: stringValue }, formatValueOptions));
1548
+ if (cursorPosition !== undefined && cursorPosition !== null) {
1549
+ // Prevent cursor jumping
1550
+ var newCursor = cursorPosition + (formattedValue.length - value.length);
1551
+ newCursor = newCursor <= 0 ? (prefix ? prefix.length : 0) : newCursor;
1552
+ setCursor(newCursor);
1553
+ setChangeCount(changeCount + 1);
1554
+ }
1555
+ setStateValue(formattedValue);
1556
+ if (onValueChange) {
1557
+ var values = {
1558
+ float: numberValue,
1559
+ formatted: formattedValue,
1560
+ value: stringValue,
1561
+ };
1562
+ onValueChange(stringValue, name, values);
1563
+ }
1564
+ };
1565
+ /**
1566
+ * Handle change event
1567
+ */
1568
+ var handleOnChange = function (event) {
1569
+ var _a = event.target, value = _a.value, selectionStart = _a.selectionStart;
1570
+ processChange(value, selectionStart);
1571
+ onChange && onChange(event);
1572
+ };
1573
+ /**
1574
+ * Handle focus event
1575
+ */
1576
+ var handleOnFocus = function (event) {
1577
+ onFocus && onFocus(event);
1578
+ return stateValue ? stateValue.length : 0;
1579
+ };
1580
+ /**
1581
+ * Handle blur event
1582
+ *
1583
+ * Format value by padding/trimming decimals if required by
1584
+ */
1585
+ var handleOnBlur = function (event) {
1586
+ var value = event.target.value;
1587
+ var valueOnly = cleanValue(__assign({ value: value }, cleanValueOptions));
1588
+ if (valueOnly === '-' || !valueOnly) {
1589
+ setStateValue('');
1590
+ onBlur && onBlur(event);
1591
+ return;
1592
+ }
1593
+ var fixedDecimals = fixedDecimalValue(valueOnly, decimalSeparator, fixedDecimalLength);
1594
+ var newValue = padTrimValue(fixedDecimals, decimalSeparator, decimalScale !== undefined ? decimalScale : fixedDecimalLength);
1595
+ var numberValue = parseFloat(newValue.replace(decimalSeparator, '.'));
1596
+ var formattedValue = formatValue(__assign(__assign({}, formatValueOptions), { value: newValue }));
1597
+ if (onValueChange) {
1598
+ onValueChange(newValue, name, {
1599
+ float: numberValue,
1600
+ formatted: formattedValue,
1601
+ value: newValue,
1602
+ });
1603
+ }
1604
+ setStateValue(formattedValue);
1605
+ onBlur && onBlur(event);
1606
+ };
1607
+ /**
1608
+ * Handle key down event
1609
+ *
1610
+ * Increase or decrease value by step
1611
+ */
1612
+ var handleOnKeyDown = function (event) {
1613
+ var key = event.key;
1614
+ setLastKeyStroke(key);
1615
+ if (step && (key === 'ArrowUp' || key === 'ArrowDown')) {
1616
+ event.preventDefault();
1617
+ setCursor(stateValue.length);
1618
+ var currentValue = parseFloat(userValue !== undefined && userValue !== null
1619
+ ? String(userValue).replace(decimalSeparator, '.')
1620
+ : cleanValue(__assign({ value: stateValue }, cleanValueOptions))) || 0;
1621
+ var newValue = key === 'ArrowUp' ? currentValue + step : currentValue - step;
1622
+ if (min !== undefined && newValue < min) {
1623
+ return;
1624
+ }
1625
+ if (max !== undefined && newValue > max) {
1626
+ return;
1627
+ }
1628
+ var fixedLength = String(step).includes('.')
1629
+ ? Number(String(step).split('.')[1].length)
1630
+ : undefined;
1631
+ processChange(String(fixedLength ? newValue.toFixed(fixedLength) : newValue).replace('.', decimalSeparator));
1632
+ }
1633
+ onKeyDown && onKeyDown(event);
1634
+ };
1635
+ /**
1636
+ * Handle key up event
1637
+ *
1638
+ * Move cursor if there is a suffix to prevent user typing past suffix
1639
+ */
1640
+ var handleOnKeyUp = function (event) {
1641
+ var key = event.key, selectionStart = event.currentTarget.selectionStart;
1642
+ if (key !== 'ArrowUp' && key !== 'ArrowDown' && stateValue !== '-') {
1643
+ var suffix_1 = getSuffix(stateValue, { groupSeparator: groupSeparator, decimalSeparator: decimalSeparator });
1644
+ if (suffix_1 && selectionStart && selectionStart > stateValue.length - suffix_1.length) {
1645
+ /* istanbul ignore else */
1646
+ if (inputRef && typeof inputRef === 'object' && inputRef.current) {
1647
+ var newCursor = stateValue.length - suffix_1.length;
1648
+ inputRef.current.setSelectionRange(newCursor, newCursor);
1649
+ }
1650
+ }
1651
+ }
1652
+ onKeyUp && onKeyUp(event);
1653
+ };
1654
+ React.useEffect(function () {
1655
+ // prevent cursor jumping if editing value
1656
+ if (dirty &&
1657
+ stateValue !== '-' &&
1658
+ inputRef &&
1659
+ typeof inputRef === 'object' &&
1660
+ inputRef.current) {
1661
+ inputRef.current.setSelectionRange(cursor, cursor);
1662
+ }
1663
+ }, [stateValue, cursor, inputRef, dirty, changeCount]);
1664
+ /**
1665
+ * If user has only entered "-" or decimal separator,
1666
+ * keep the char to allow them to enter next value
1667
+ */
1668
+ var getRenderValue = function () {
1669
+ if (userValue !== undefined &&
1670
+ userValue !== null &&
1671
+ stateValue !== '-' &&
1672
+ (!decimalSeparator || stateValue !== decimalSeparator)) {
1673
+ return formatValue(__assign(__assign({}, formatValueOptions), { decimalScale: dirty ? undefined : decimalScale, value: String(userValue) }));
1674
+ }
1675
+ return stateValue;
1676
+ };
1677
+ var inputProps = __assign({ type: 'text', inputMode: 'decimal', id: id,
1678
+ name: name,
1679
+ className: className, onChange: handleOnChange, onBlur: handleOnBlur, onFocus: handleOnFocus, onKeyDown: handleOnKeyDown, onKeyUp: handleOnKeyUp, placeholder: placeholder,
1680
+ disabled: disabled, value: getRenderValue(), ref: inputRef }, props);
1681
+ if (customInput) {
1682
+ var CustomInput = customInput;
1683
+ return React__default.createElement(CustomInput, __assign({}, inputProps));
1684
+ }
1685
+ return React__default.createElement("input", __assign({}, inputProps));
1686
+ });
1687
+ CurrencyInput.displayName = 'CurrencyInput';
1304
1688
 
1305
- _templateObject$6 = function _templateObject() {
1306
- return data;
1307
- };
1689
+ var _excluded$1 = ["value", "onChange", "prefix", "allowNegativeValue", "groupSeparator", "decimalSeparator"];
1690
+ var unMask = function unMask() {
1691
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
1692
+ return value.replace(/\D/g, '');
1693
+ };
1694
+ /**
1695
+ * Currency Input which formats the value to a specific format
1696
+ */
1308
1697
 
1309
- return data;
1310
- }
1311
- var Button = styled__default.button(_templateObject$6(), baseButtonStyle, function (props) {
1698
+ var CurrencyInputFormatter = function CurrencyInputFormatter(_ref) {
1699
+ var value = _ref.value,
1700
+ onChange = _ref.onChange,
1701
+ prefix = _ref.prefix,
1702
+ allowNegativeValue = _ref.allowNegativeValue,
1703
+ groupSeparator = _ref.groupSeparator,
1704
+ decimalSeparator = _ref.decimalSeparator,
1705
+ rest = _objectWithoutProperties(_ref, _excluded$1);
1706
+
1707
+ return /*#__PURE__*/React__default.createElement(CurrencyInput, _extends({}, rest, {
1708
+ value: value,
1709
+ prefix: prefix,
1710
+ onValueChange: onChange,
1711
+ groupSeparator: groupSeparator,
1712
+ decimalSeparator: decimalSeparator,
1713
+ allowNegativeValue: allowNegativeValue
1714
+ }));
1715
+ };
1716
+
1717
+ CurrencyInputFormatter.defaultProps = {
1718
+ value: '',
1719
+ prefix: 'R',
1720
+ groupSeparator: ',',
1721
+ decimalSeparator: '.',
1722
+ allowNegativeValue: false,
1723
+ onChange: function onChange() {}
1724
+ };
1725
+
1726
+ var _templateObject$5, _templateObject2$1;
1727
+ var disabledButtonStyle = styled.css(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteral(["\n cursor: not-allowed;\n opacity: 0.4;\n"])));
1728
+ var baseButtonStyle = styled.css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral(["\n padding: 1rem 3.5rem;\n cursor: pointer;\n letter-spacing: 1.3px;\n border-style: none;\n text-transform: uppercase;\n font-size: 12px;\n color: #fff;\n transition: 0.2s ease-in-out;\n outline: none;\n min-width: 150px;\n"])));
1729
+
1730
+ var _excluded$2 = ["children"];
1731
+
1732
+ var _templateObject$6;
1733
+ var Button = styled__default.button(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteral(["\n ", ";\n background-color: ", ";\n color: ", ";\n border: 1px solid ", ";\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:disabled {\n ", "\n &:hover {\n background-color: ", ";\n }\n }\n"])), baseButtonStyle, function (props) {
1312
1734
  return props.theme.colors.ntrlMin;
1313
1735
  }, function (props) {
1314
1736
  return props.theme.colors.primary;
@@ -1324,36 +1746,18 @@
1324
1746
 
1325
1747
  var SecondaryButton = function SecondaryButton(_ref) {
1326
1748
  var children = _ref.children,
1327
- restProps = _objectWithoutProperties(_ref, ["children"]);
1749
+ restProps = _objectWithoutProperties(_ref, _excluded$2);
1328
1750
 
1329
- return React__default.createElement(Button, restProps, children);
1751
+ return /*#__PURE__*/React__default.createElement(Button, restProps, children);
1330
1752
  };
1331
1753
 
1332
1754
  var SecondaryButton$1 = themed(SecondaryButton);
1333
1755
 
1334
- function _templateObject2$2() {
1335
- var data = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n padding-bottom: ", ";\n border-bottom: 1px solid ", ";\n margin-bottom: ", ";\n margin-top: ", ";\n width: 100%;\n align-items: center;\n"]);
1336
-
1337
- _templateObject2$2 = function _templateObject2() {
1338
- return data;
1339
- };
1340
-
1341
- return data;
1342
- }
1343
-
1344
- function _templateObject$7() {
1345
- var data = _taggedTemplateLiteral(["\n font-size: ", ";\n font-weight: bold;\n margin-bottom: 0;\n text-transform: uppercase;\n"]);
1346
-
1347
- _templateObject$7 = function _templateObject() {
1348
- return data;
1349
- };
1350
-
1351
- return data;
1352
- }
1353
- var Title = styled__default.h1(_templateObject$7(), function (props) {
1756
+ var _templateObject$7, _templateObject2$2;
1757
+ var Title = styled__default.h1(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteral(["\n font-size: ", ";\n font-weight: bold;\n margin-bottom: 0;\n text-transform: uppercase;\n"])), function (props) {
1354
1758
  return props.theme.fontSizes[2];
1355
1759
  });
1356
- var InterestsSubheadingContainer = styled__default.div(_templateObject2$2(), function (props) {
1760
+ var InterestsSubheadingContainer = styled__default.div(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n padding-bottom: ", ";\n border-bottom: 1px solid ", ";\n margin-bottom: ", ";\n margin-top: ", ";\n width: 100%;\n align-items: center;\n"])), function (props) {
1357
1761
  return props.theme.marginPaddings[1];
1358
1762
  }, function (props) {
1359
1763
  return props.theme.colors.primary;
@@ -1367,34 +1771,28 @@
1367
1771
  var title = _ref.title,
1368
1772
  children = _ref.children,
1369
1773
  className = _ref.className;
1370
- return React__default.createElement(InterestsSubheadingContainer, {
1774
+ return /*#__PURE__*/React__default.createElement(InterestsSubheadingContainer, {
1371
1775
  className: className
1372
- }, React__default.createElement(Title, null, title), React__default.createElement("div", null, children));
1776
+ }, /*#__PURE__*/React__default.createElement(Title, null, title), /*#__PURE__*/React__default.createElement("div", null, children));
1373
1777
  };
1374
1778
 
1375
1779
  var interestCategories = {
1376
1780
  SHOES: 'SHOES',
1377
1781
  BAGS: 'BAGS',
1378
1782
  ACCESSORIES: 'ACCESSORIES',
1379
- WATCHES: 'WATCHES'
1783
+ WATCHES: 'WATCHES',
1784
+ APPAREL: 'APPAREL'
1380
1785
  };
1381
1786
  var interestCategoryMaxPrices = {
1382
1787
  SHOES: 50000,
1383
1788
  BAGS: 500000,
1384
1789
  ACCESSORIES: 100000,
1385
- WATCHES: 500000
1790
+ WATCHES: 500000,
1791
+ APPAREL: 100000
1386
1792
  };
1387
1793
 
1388
- function _templateObject$8() {
1389
- var data = _taggedTemplateLiteral(["\n display: flex;\n flex-flow: row nowrap;\n justify-content: space-between;\n\n input[data-qe-id='masked-input-min'],\n input[data-qe-id='masked-input-max'] {\n flex-basis: 30%;\n border-left: none;\n border-right: none;\n border-top: none;\n border-bottom: 1px solid ", ";\n }\n"]);
1390
-
1391
- _templateObject$8 = function _templateObject() {
1392
- return data;
1393
- };
1394
-
1395
- return data;
1396
- }
1397
- var CurrencyInputWrapper = styled__default.div(_templateObject$8(), function (props) {
1794
+ var _templateObject$8;
1795
+ var CurrencyInputWrapper = styled__default.div(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n display: flex;\n flex-flow: row nowrap;\n justify-content: space-between;\n\n input[data-qe-id='masked-input-min'],\n input[data-qe-id='masked-input-max'] {\n flex-basis: 30%;\n border-left: none;\n border-right: none;\n border-top: none;\n border-bottom: 1px solid ", ";\n }\n"])), function (props) {
1398
1796
  return props.theme.colors.primary;
1399
1797
  });
1400
1798
 
@@ -1416,6 +1814,9 @@
1416
1814
  case interestCategories.WATCHES:
1417
1815
  return interestCategoryMaxPrices.WATCHES;
1418
1816
 
1817
+ case interestCategories.APPAREL:
1818
+ return interestCategoryMaxPrices.APPAREL;
1819
+
1419
1820
  default:
1420
1821
  return 0;
1421
1822
  }
@@ -1423,7 +1824,7 @@
1423
1824
 
1424
1825
  var getFooterButtons = function getFooterButtons(actionObj) {
1425
1826
  var giveFullRange = actionObj.giveFullRange;
1426
- return React__default.createElement(SecondaryButton$1, {
1827
+ return /*#__PURE__*/React__default.createElement(SecondaryButton$1, {
1427
1828
  type: "button",
1428
1829
  onClick: giveFullRange
1429
1830
  }, "Full Price Range");
@@ -1472,11 +1873,11 @@
1472
1873
  });
1473
1874
  };
1474
1875
 
1475
- return React__default.createElement("div", {
1876
+ return /*#__PURE__*/React__default.createElement("div", {
1476
1877
  className: "price-ranges"
1477
- }, React__default.createElement(RangeSlider$1, {
1878
+ }, /*#__PURE__*/React__default.createElement(RangeSlider$1, {
1478
1879
  renderTitleSection: function renderTitleSection() {
1479
- return React__default.createElement(InterestsSubheading, {
1880
+ return /*#__PURE__*/React__default.createElement(InterestsSubheading, {
1480
1881
  title: "Price Range"
1481
1882
  });
1482
1883
  },
@@ -1493,21 +1894,17 @@
1493
1894
  manuallyChangeMaxValue = _ref2.manuallyChangeMaxValue,
1494
1895
  currMinVal = _ref2.currMinVal,
1495
1896
  currMaxVal = _ref2.currMaxVal;
1496
- return React__default.createElement(CurrencyInputWrapper, null, React__default.createElement(CurrencyInput, {
1897
+ return /*#__PURE__*/React__default.createElement(CurrencyInputWrapper, null, /*#__PURE__*/React__default.createElement(CurrencyInputFormatter, {
1497
1898
  "data-qe-id": "masked-input-min",
1498
- type: "text",
1499
1899
  value: currMinVal,
1500
- onChange: function onChange(e) {
1501
- e.preventDefault();
1502
- handleMinCurrencyChange(e.target.value, currMaxVal, manuallyChangeMinValue);
1900
+ onChange: function onChange(value) {
1901
+ handleMinCurrencyChange(value, currMaxVal, manuallyChangeMinValue);
1503
1902
  }
1504
- }), React__default.createElement(CurrencyInput, {
1903
+ }), /*#__PURE__*/React__default.createElement(CurrencyInputFormatter, {
1505
1904
  "data-qe-id": "masked-input-max",
1506
- type: "text",
1507
1905
  value: currMaxVal,
1508
- onChange: function onChange(e) {
1509
- e.preventDefault();
1510
- handleMaxCurrencyChange(e.target.value, currMinVal, manuallyChangeMaxValue);
1906
+ onChange: function onChange(value) {
1907
+ handleMaxCurrencyChange(value, currMinVal, manuallyChangeMaxValue);
1511
1908
  }
1512
1909
  }));
1513
1910
  }));