@pie-lib/config-ui 11.30.0-mui-update.0 → 11.30.1-beta-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 (105) hide show
  1. package/CHANGELOG.md +12 -9
  2. package/lib/__tests__/choice-utils.test.js +16 -0
  3. package/lib/__tests__/langs.test.js +55 -0
  4. package/lib/__tests__/number-text-field.test.js +128 -0
  5. package/lib/__tests__/settings-panel.test.js +201 -0
  6. package/lib/__tests__/two-choice.test.js +33 -0
  7. package/lib/alert-dialog.js +42 -23
  8. package/lib/alert-dialog.js.map +1 -1
  9. package/lib/checkbox.js +71 -56
  10. package/lib/checkbox.js.map +1 -1
  11. package/lib/choice-configuration/__tests__/feedback-menu.test.js +20 -0
  12. package/lib/choice-configuration/__tests__/index.test.js +119 -0
  13. package/lib/choice-configuration/feedback-menu.js +63 -24
  14. package/lib/choice-configuration/feedback-menu.js.map +1 -1
  15. package/lib/choice-configuration/index.js +257 -201
  16. package/lib/choice-configuration/index.js.map +1 -1
  17. package/lib/choice-utils.js +18 -6
  18. package/lib/choice-utils.js.map +1 -1
  19. package/lib/feedback-config/__tests__/feedback-config.test.js +78 -0
  20. package/lib/feedback-config/__tests__/feedback-selector.test.js +71 -0
  21. package/lib/feedback-config/feedback-selector.js +114 -77
  22. package/lib/feedback-config/feedback-selector.js.map +1 -1
  23. package/lib/feedback-config/group.js +40 -26
  24. package/lib/feedback-config/group.js.map +1 -1
  25. package/lib/feedback-config/index.js +90 -38
  26. package/lib/feedback-config/index.js.map +1 -1
  27. package/lib/form-section.js +33 -24
  28. package/lib/form-section.js.map +1 -1
  29. package/lib/help.js +80 -39
  30. package/lib/help.js.map +1 -1
  31. package/lib/index.js +31 -1
  32. package/lib/index.js.map +1 -1
  33. package/lib/input.js +54 -21
  34. package/lib/input.js.map +1 -1
  35. package/lib/inputs.js +95 -61
  36. package/lib/inputs.js.map +1 -1
  37. package/lib/langs.js +100 -56
  38. package/lib/langs.js.map +1 -1
  39. package/lib/layout/__tests__/config.layout.test.js +33 -0
  40. package/lib/layout/__tests__/layout-content.test.js +6 -0
  41. package/lib/layout/config-layout.js +99 -48
  42. package/lib/layout/config-layout.js.map +1 -1
  43. package/lib/layout/index.js +3 -0
  44. package/lib/layout/index.js.map +1 -1
  45. package/lib/layout/layout-contents.js +101 -72
  46. package/lib/layout/layout-contents.js.map +1 -1
  47. package/lib/layout/settings-box.js +56 -27
  48. package/lib/layout/settings-box.js.map +1 -1
  49. package/lib/mui-box/index.js +57 -41
  50. package/lib/mui-box/index.js.map +1 -1
  51. package/lib/number-text-field-custom.js +161 -79
  52. package/lib/number-text-field-custom.js.map +1 -1
  53. package/lib/number-text-field.js +115 -57
  54. package/lib/number-text-field.js.map +1 -1
  55. package/lib/radio-with-label.js +31 -23
  56. package/lib/radio-with-label.js.map +1 -1
  57. package/lib/settings/display-size.js +32 -16
  58. package/lib/settings/display-size.js.map +1 -1
  59. package/lib/settings/index.js +47 -14
  60. package/lib/settings/index.js.map +1 -1
  61. package/lib/settings/panel.js +228 -142
  62. package/lib/settings/panel.js.map +1 -1
  63. package/lib/settings/settings-radio-label.js +30 -21
  64. package/lib/settings/settings-radio-label.js.map +1 -1
  65. package/lib/settings/toggle.js +46 -34
  66. package/lib/settings/toggle.js.map +1 -1
  67. package/lib/tabs/index.js +57 -22
  68. package/lib/tabs/index.js.map +1 -1
  69. package/lib/tags-input/__tests__/index.test.js +88 -0
  70. package/lib/tags-input/index.js +99 -50
  71. package/lib/tags-input/index.js.map +1 -1
  72. package/lib/two-choice.js +90 -46
  73. package/lib/two-choice.js.map +1 -1
  74. package/lib/with-stateful-model.js +31 -8
  75. package/lib/with-stateful-model.js.map +1 -1
  76. package/package.json +10 -12
  77. package/src/__tests__/number-text-field.test.jsx +1 -1
  78. package/src/alert-dialog.jsx +18 -14
  79. package/src/checkbox.jsx +46 -42
  80. package/src/choice-configuration/feedback-menu.jsx +5 -5
  81. package/src/choice-configuration/index.jsx +193 -205
  82. package/src/feedback-config/feedback-selector.jsx +53 -51
  83. package/src/feedback-config/group.jsx +22 -21
  84. package/src/feedback-config/index.jsx +29 -27
  85. package/src/form-section.jsx +18 -18
  86. package/src/help.jsx +28 -20
  87. package/src/input.jsx +1 -1
  88. package/src/inputs.jsx +50 -34
  89. package/src/langs.jsx +46 -40
  90. package/src/layout/config-layout.jsx +36 -25
  91. package/src/layout/layout-contents.jsx +34 -34
  92. package/src/layout/settings-box.jsx +19 -16
  93. package/src/mui-box/index.jsx +43 -35
  94. package/src/number-text-field-custom.jsx +36 -30
  95. package/src/number-text-field.jsx +30 -22
  96. package/src/radio-with-label.jsx +13 -17
  97. package/src/settings/display-size.jsx +11 -12
  98. package/src/settings/panel.jsx +89 -83
  99. package/src/settings/settings-radio-label.jsx +13 -17
  100. package/src/settings/toggle.jsx +29 -29
  101. package/src/tabs/index.jsx +8 -8
  102. package/src/tags-input/index.jsx +38 -35
  103. package/src/two-choice.jsx +19 -15
  104. package/LICENSE.md +0 -5
  105. package/NEXT.CHANGELOG.json +0 -1
@@ -1,73 +1,114 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports["default"] = exports.NumberTextFieldCustom = void 0;
11
+
9
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
10
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
11
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
12
22
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
13
24
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
+
15
26
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
16
28
  var _propTypes = _interopRequireDefault(require("prop-types"));
29
+
17
30
  var _react = _interopRequireDefault(require("react"));
18
- var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
19
- var _styles = require("@mui/material/styles");
31
+
32
+ var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
33
+
34
+ var _classnames = _interopRequireDefault(require("classnames"));
35
+
36
+ var _styles = require("@material-ui/core/styles");
37
+
20
38
  var _isFinite = _interopRequireDefault(require("lodash/isFinite"));
21
- var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
22
- var _InputAdornment = _interopRequireDefault(require("@mui/material/InputAdornment"));
23
- var _Remove = _interopRequireDefault(require("@mui/icons-material/Remove"));
24
- var _Add = _interopRequireDefault(require("@mui/icons-material/Add"));
39
+
40
+ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
41
+
42
+ var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
43
+
44
+ var _Remove = _interopRequireDefault(require("@material-ui/icons/Remove"));
45
+
46
+ var _Add = _interopRequireDefault(require("@material-ui/icons/Add"));
47
+
25
48
  var math = _interopRequireWildcard(require("mathjs"));
26
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
27
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
28
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
29
- var StyledTextField = (0, _styles.styled)(_TextField["default"])(function () {
49
+
50
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
51
+
52
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
53
+
54
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
55
+
56
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
57
+
58
+ var styles = function styles() {
30
59
  return {
31
- '& input[type=number]': {
32
- MozAppearance: 'textfield'
33
- },
34
- '& input[type=number]::-webkit-outer-spin-button': {
35
- WebkitAppearance: 'none',
36
- margin: 0
60
+ input: {
61
+ '& input[type=number]': {
62
+ '-moz-appearance': 'textfield'
63
+ },
64
+ '& input[type=number]::-webkit-outer-spin-button': {
65
+ '-webkit-appearance': 'none',
66
+ margin: 0
67
+ },
68
+ '& input[type=number]::-webkit-inner-spin-button': {
69
+ '-webkit-appearance': 'none',
70
+ margin: 0
71
+ }
37
72
  },
38
- '& input[type=number]::-webkit-inner-spin-button': {
39
- WebkitAppearance: 'none',
40
- margin: 0
73
+ iconButton: {
74
+ padding: '2px'
41
75
  }
42
76
  };
43
- });
44
- var StyledIconButton = (0, _styles.styled)(_IconButton["default"])(function () {
45
- return {
46
- padding: '2px'
47
- };
48
- });
77
+ };
78
+
49
79
  var fallbackNumber = function fallbackNumber(min, max) {
50
80
  if (!(0, _isFinite["default"])(min) && !(0, _isFinite["default"])(max)) {
51
81
  return 0;
52
82
  }
83
+
53
84
  if (!(0, _isFinite["default"])(min) && (0, _isFinite["default"])(max)) {
54
85
  return max;
55
86
  }
87
+
56
88
  if ((0, _isFinite["default"])(min)) {
57
89
  return min;
58
90
  }
59
91
  };
60
- var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
92
+
93
+ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
94
+ (0, _inherits2["default"])(NumberTextFieldCustom, _React$Component);
95
+
96
+ var _super = _createSuper(NumberTextFieldCustom);
97
+
61
98
  function NumberTextFieldCustom(props) {
62
99
  var _this;
100
+
63
101
  (0, _classCallCheck2["default"])(this, NumberTextFieldCustom);
64
- _this = _callSuper(this, NumberTextFieldCustom, [props]);
65
- (0, _defineProperty2["default"])(_this, "normalizeValueAndIndex", function (customValues, number, min, max) {
102
+ _this = _super.call(this, props);
103
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "normalizeValueAndIndex", function (customValues, number, min, max) {
66
104
  var type = _this.props.type;
105
+
67
106
  var value = _this.clamp(number, min, max);
107
+
68
108
  var currentIndex = (customValues || []).findIndex(function (val) {
69
109
  return val === value;
70
110
  });
111
+
71
112
  if ((customValues || []).length > 0 && currentIndex === -1) {
72
113
  var closestValue = type === 'text' ? _this.getClosestFractionValue(customValues, value) : _this.getClosestValue(customValues, value);
73
114
  return {
@@ -75,12 +116,13 @@ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/functio
75
116
  currentIndex: closestValue.index
76
117
  };
77
118
  }
119
+
78
120
  return {
79
121
  value: value,
80
122
  currentIndex: currentIndex
81
123
  };
82
124
  });
83
- (0, _defineProperty2["default"])(_this, "getClosestValue", function (customValues, number) {
125
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getClosestValue", function (customValues, number) {
84
126
  return customValues.reduce(function (closest, value, index) {
85
127
  return Math.abs(value - number) < Math.abs(closest.value - number) ? {
86
128
  value: value,
@@ -91,7 +133,7 @@ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/functio
91
133
  index: 0
92
134
  });
93
135
  });
94
- (0, _defineProperty2["default"])(_this, "getClosestFractionValue", function (customValues, number) {
136
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getClosestFractionValue", function (customValues, number) {
95
137
  return customValues.reduce(function (closest, value, index) {
96
138
  return Math.abs(math.number(math.fraction(value)) - math.number(math.fraction(number))) < Math.abs(math.number(math.fraction(closest.value)) - math.number(math.fraction(number))) ? {
97
139
  value: value,
@@ -102,54 +144,67 @@ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/functio
102
144
  index: 0
103
145
  });
104
146
  });
105
- (0, _defineProperty2["default"])(_this, "getValidFraction", function (value) {
147
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getValidFraction", function (value) {
106
148
  if (_this.isPositiveInteger(value.trim())) {
107
149
  return value.trim();
108
150
  }
151
+
109
152
  if (value.trim() === '' || value.trim().split('/').length !== 2) {
110
153
  return false;
111
154
  }
155
+
112
156
  var _value$trim$split = value.trim().split('/'),
113
- _value$trim$split2 = (0, _slicedToArray2["default"])(_value$trim$split, 2),
114
- numerator = _value$trim$split2[0],
115
- denominator = _value$trim$split2[1];
157
+ _value$trim$split2 = (0, _slicedToArray2["default"])(_value$trim$split, 2),
158
+ numerator = _value$trim$split2[0],
159
+ denominator = _value$trim$split2[1];
160
+
116
161
  if (isNaN(numerator) || isNaN(denominator)) {
117
162
  return false;
118
163
  }
164
+
119
165
  numerator = parseFloat(numerator);
120
166
  denominator = parseFloat(denominator);
167
+
121
168
  if (!Number.isInteger(numerator) || !Number.isInteger(denominator)) {
122
169
  return false;
123
170
  }
171
+
124
172
  if (numerator < 0 || denominator < 1) {
125
173
  return false;
126
174
  }
175
+
127
176
  return numerator + '/' + denominator;
128
177
  });
129
- (0, _defineProperty2["default"])(_this, "isPositiveInteger", function (n) {
178
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "isPositiveInteger", function (n) {
130
179
  return n >>> 0 === parseFloat(n);
131
180
  });
132
- (0, _defineProperty2["default"])(_this, "onBlur", function (event) {
181
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBlur", function (event) {
133
182
  var _this$props = _this.props,
134
- customValues = _this$props.customValues,
135
- onlyIntegersAllowed = _this$props.onlyIntegersAllowed,
136
- type = _this$props.type;
183
+ customValues = _this$props.customValues,
184
+ onlyIntegersAllowed = _this$props.onlyIntegersAllowed,
185
+ type = _this$props.type;
137
186
  var value = event.target.value;
187
+
138
188
  if (type === 'text') {
139
189
  var tempValue = _this.getValidFraction(value);
190
+
140
191
  if (tempValue) {
141
192
  value = tempValue;
142
193
  } else {
143
194
  value = _this.props.value;
144
195
  }
145
196
  }
197
+
146
198
  var rawNumber = onlyIntegersAllowed ? Math.round(parseFloat(value)) : parseFloat(value);
199
+
147
200
  if (type === 'text') {
148
201
  rawNumber = value.trim();
149
202
  }
203
+
150
204
  var _this$normalizeValueA = _this.normalizeValueAndIndex(customValues, rawNumber),
151
- number = _this$normalizeValueA.value,
152
- currentIndex = _this$normalizeValueA.currentIndex;
205
+ number = _this$normalizeValueA.value,
206
+ currentIndex = _this$normalizeValueA.currentIndex;
207
+
153
208
  _this.setState({
154
209
  value: number.toString(),
155
210
  currentIndex: currentIndex
@@ -157,26 +212,31 @@ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/functio
157
212
  return _this.props.onChange(event, number);
158
213
  });
159
214
  });
215
+
160
216
  var _this$normalizeValueA2 = _this.normalizeValueAndIndex(props.customValues, props.value),
161
- _value = _this$normalizeValueA2.value,
162
- _currentIndex = _this$normalizeValueA2.currentIndex;
217
+ _value = _this$normalizeValueA2.value,
218
+ _currentIndex = _this$normalizeValueA2.currentIndex;
219
+
163
220
  _this.state = {
164
221
  value: _value,
165
222
  currentIndex: _currentIndex
166
223
  };
224
+
167
225
  if (_value !== props.value) {
168
226
  _this.props.onChange({}, _value);
169
227
  }
170
- _this.onChange = _this.onChange.bind(_this);
228
+
229
+ _this.onChange = _this.onChange.bind((0, _assertThisInitialized2["default"])(_this));
171
230
  return _this;
172
231
  }
173
- (0, _inherits2["default"])(NumberTextFieldCustom, _React$Component);
174
- return (0, _createClass2["default"])(NumberTextFieldCustom, [{
232
+
233
+ (0, _createClass2["default"])(NumberTextFieldCustom, [{
175
234
  key: "UNSAFE_componentWillReceiveProps",
176
235
  value: function UNSAFE_componentWillReceiveProps(props) {
177
236
  var _this$normalizeValueA3 = this.normalizeValueAndIndex(props.customValues, props.value, props.min, props.max),
178
- value = _this$normalizeValueA3.value,
179
- currentIndex = _this$normalizeValueA3.currentIndex;
237
+ value = _this$normalizeValueA3.value,
238
+ currentIndex = _this$normalizeValueA3.currentIndex;
239
+
180
240
  this.setState({
181
241
  value: value,
182
242
  currentIndex: currentIndex
@@ -188,18 +248,23 @@ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/functio
188
248
  var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props.min;
189
249
  var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props.max;
190
250
  var customValues = this.props.customValues;
251
+
191
252
  if ((customValues || []).length > 0) {
192
253
  return value;
193
254
  }
255
+
194
256
  if (!(0, _isFinite["default"])(value)) {
195
257
  return fallbackNumber(min, max);
196
258
  }
259
+
197
260
  if ((0, _isFinite["default"])(max)) {
198
261
  value = Math.min(value, max);
199
262
  }
263
+
200
264
  if ((0, _isFinite["default"])(min)) {
201
265
  value = Math.max(value, min);
202
266
  }
267
+
203
268
  return value;
204
269
  }
205
270
  }, {
@@ -207,9 +272,11 @@ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/functio
207
272
  value: function onChange(event) {
208
273
  var type = this.props.type;
209
274
  var value = event.target.value;
275
+
210
276
  if (type !== 'text' && typeof value === 'string' && value.trim() === '') {
211
277
  return;
212
278
  }
279
+
213
280
  this.setState({
214
281
  value: value
215
282
  });
@@ -221,25 +288,28 @@ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/functio
221
288
  var shouldUpdate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
222
289
  event.preventDefault();
223
290
  var _this$props2 = this.props,
224
- customValues = _this$props2.customValues,
225
- step = _this$props2.step,
226
- onlyIntegersAllowed = _this$props2.onlyIntegersAllowed,
227
- onChange = _this$props2.onChange;
291
+ customValues = _this$props2.customValues,
292
+ step = _this$props2.step,
293
+ onlyIntegersAllowed = _this$props2.onlyIntegersAllowed,
294
+ onChange = _this$props2.onChange;
228
295
  var _this$state = this.state,
229
- currentIndex = _this$state.currentIndex,
230
- value = _this$state.value;
296
+ currentIndex = _this$state.currentIndex,
297
+ value = _this$state.value;
231
298
  var updatedIndex = currentIndex + sign * 1;
232
299
  var number;
300
+
233
301
  if (customValues.length > 0) {
234
302
  if (updatedIndex < 0 || updatedIndex >= customValues.length) {
235
303
  return;
236
304
  }
305
+
237
306
  number = customValues[updatedIndex];
238
307
  } else {
239
308
  var rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);
240
309
  var updatedValue = (rawNumber * 10000 + step * sign * 10000) / 10000;
241
310
  number = this.clamp(updatedValue);
242
311
  }
312
+
243
313
  this.setState({
244
314
  value: number.toString(),
245
315
  currentIndex: updatedIndex
@@ -253,26 +323,29 @@ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/functio
253
323
  key: "render",
254
324
  value: function render() {
255
325
  var _this2 = this;
326
+
256
327
  var _this$props3 = this.props,
257
- className = _this$props3.className,
258
- label = _this$props3.label,
259
- disabled = _this$props3.disabled,
260
- error = _this$props3.error,
261
- min = _this$props3.min,
262
- max = _this$props3.max,
263
- customValues = _this$props3.customValues,
264
- inputClassName = _this$props3.inputClassName,
265
- disableUnderline = _this$props3.disableUnderline,
266
- helperText = _this$props3.helperText,
267
- variant = _this$props3.variant,
268
- textAlign = _this$props3.textAlign,
269
- _this$props3$type = _this$props3.type,
270
- type = _this$props3$type === void 0 ? 'number' : _this$props3$type;
328
+ className = _this$props3.className,
329
+ classes = _this$props3.classes,
330
+ label = _this$props3.label,
331
+ disabled = _this$props3.disabled,
332
+ error = _this$props3.error,
333
+ min = _this$props3.min,
334
+ max = _this$props3.max,
335
+ customValues = _this$props3.customValues,
336
+ inputClassName = _this$props3.inputClassName,
337
+ disableUnderline = _this$props3.disableUnderline,
338
+ helperText = _this$props3.helperText,
339
+ variant = _this$props3.variant,
340
+ textAlign = _this$props3.textAlign,
341
+ _this$props3$type = _this$props3.type,
342
+ type = _this$props3$type === void 0 ? 'number' : _this$props3$type;
271
343
  var value = this.state.value;
272
- var names = className;
273
- //Logic to disable the increment and decrement buttons
344
+ var names = (0, _classnames["default"])(className, classes.input); //Logic to disable the increment and decrement buttons
345
+
274
346
  var disabledStart = false;
275
347
  var disabledEnd = false;
348
+
276
349
  if (customValues.length > 0) {
277
350
  disabledStart = value === customValues[0];
278
351
  disabledEnd = value === customValues[customValues.length - 1];
@@ -280,7 +353,8 @@ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/functio
280
353
  disabledStart = value === min;
281
354
  disabledEnd = value === max;
282
355
  }
283
- return /*#__PURE__*/_react["default"].createElement(StyledTextField, {
356
+
357
+ return /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
284
358
  variant: variant,
285
359
  inputRef: function inputRef(ref) {
286
360
  return _this2.inputRef = ref;
@@ -302,6 +376,7 @@ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/functio
302
376
  if (e.key === 'ArrowUp') {
303
377
  _this2.changeValue(e);
304
378
  }
379
+
305
380
  if (e.key === 'ArrowDown') {
306
381
  _this2.changeValue(e, -1);
307
382
  }
@@ -314,23 +389,23 @@ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/functio
314
389
  disableUnderline: disableUnderline,
315
390
  startAdornment: /*#__PURE__*/_react["default"].createElement(_InputAdornment["default"], {
316
391
  position: "start"
317
- }, /*#__PURE__*/_react["default"].createElement(StyledIconButton, {
392
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
393
+ className: classes.iconButton,
318
394
  disabled: disabled ? disabled : disabledStart,
319
395
  onClick: function onClick(e) {
320
396
  return _this2.changeValue(e, -1, true);
321
- },
322
- size: "large"
397
+ }
323
398
  }, /*#__PURE__*/_react["default"].createElement(_Remove["default"], {
324
399
  fontSize: "small"
325
400
  }))),
326
401
  endAdornment: /*#__PURE__*/_react["default"].createElement(_InputAdornment["default"], {
327
402
  position: "end"
328
- }, /*#__PURE__*/_react["default"].createElement(StyledIconButton, {
403
+ }, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
404
+ className: classes.iconButton,
329
405
  disabled: disabled ? disabled : disabledEnd,
330
406
  onClick: function onClick(e) {
331
407
  return _this2.changeValue(e, 1, true);
332
- },
333
- size: "large"
408
+ }
334
409
  }, /*#__PURE__*/_react["default"].createElement(_Add["default"], {
335
410
  fontSize: "small"
336
411
  })))
@@ -345,8 +420,12 @@ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/functio
345
420
  });
346
421
  }
347
422
  }]);
423
+ return NumberTextFieldCustom;
348
424
  }(_react["default"].Component);
425
+
426
+ exports.NumberTextFieldCustom = NumberTextFieldCustom;
349
427
  (0, _defineProperty2["default"])(NumberTextFieldCustom, "propTypes", {
428
+ classes: _propTypes["default"].object.isRequired,
350
429
  className: _propTypes["default"].string,
351
430
  customValues: _propTypes["default"].array,
352
431
  disabled: _propTypes["default"].bool,
@@ -372,5 +451,8 @@ var NumberTextFieldCustom = exports.NumberTextFieldCustom = /*#__PURE__*/functio
372
451
  variant: 'standard',
373
452
  onlyIntegersAllowed: false
374
453
  });
375
- var _default = exports["default"] = NumberTextFieldCustom;
454
+
455
+ var _default = (0, _styles.withStyles)(styles)(NumberTextFieldCustom);
456
+
457
+ exports["default"] = _default;
376
458
  //# sourceMappingURL=number-text-field-custom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number-text-field-custom.js","names":["_propTypes","_interopRequireDefault","require","_react","_TextField","_styles","_isFinite","_IconButton","_InputAdornment","_Remove","_Add","math","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","StyledTextField","styled","TextField","MozAppearance","WebkitAppearance","margin","StyledIconButton","IconButton","padding","fallbackNumber","min","max","isFinite","NumberTextFieldCustom","exports","_React$Component","props","_this","_classCallCheck2","_defineProperty2","customValues","number","type","value","clamp","currentIndex","findIndex","val","length","closestValue","getClosestFractionValue","getClosestValue","index","reduce","closest","Math","abs","fraction","isPositiveInteger","trim","split","_value$trim$split","_value$trim$split2","_slicedToArray2","numerator","denominator","isNaN","parseFloat","Number","isInteger","event","_this$props","onlyIntegersAllowed","target","tempValue","getValidFraction","rawNumber","round","_this$normalizeValueA","normalizeValueAndIndex","setState","toString","onChange","_this$normalizeValueA2","state","bind","_inherits2","_createClass2","key","UNSAFE_componentWillReceiveProps","_this$normalizeValueA3","arguments","undefined","changeValue","sign","shouldUpdate","preventDefault","_this$props2","step","_this$state","updatedIndex","parseInt","updatedValue","render","_this2","_this$props3","className","label","disabled","error","inputClassName","disableUnderline","helperText","variant","textAlign","_this$props3$type","names","disabledStart","disabledEnd","createElement","inputRef","ref","onBlur","onKeyPress","blur","onKeyDown","title","InputProps","startAdornment","position","onClick","size","fontSize","endAdornment","inputProps","style","React","Component","PropTypes","string","array","bool","func","isRequired","any","_default"],"sources":["../src/number-text-field-custom.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport TextField from '@mui/material/TextField';\nimport { styled } from '@mui/material/styles';\nimport isFinite from 'lodash/isFinite';\nimport IconButton from '@mui/material/IconButton';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport Remove from '@mui/icons-material/Remove';\nimport Add from '@mui/icons-material/Add';\nimport * as math from 'mathjs';\n\nconst StyledTextField = styled(TextField)(() => ({\n '& input[type=number]': {\n MozAppearance: 'textfield',\n },\n '& input[type=number]::-webkit-outer-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n '& input[type=number]::-webkit-inner-spin-button': {\n WebkitAppearance: 'none',\n margin: 0,\n },\n}));\n\nconst StyledIconButton = styled(IconButton)(() => ({\n padding: '2px',\n}));\n\nconst fallbackNumber = (min, max) => {\n if (!isFinite(min) && !isFinite(max)) {\n return 0;\n }\n\n if (!isFinite(min) && isFinite(max)) {\n return max;\n }\n\n if (isFinite(min)) {\n return min;\n }\n};\n\nexport class NumberTextFieldCustom extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n customValues: PropTypes.array,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n inputClassName: PropTypes.string,\n helperText: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n onlyIntegersAllowed: PropTypes.bool,\n value: PropTypes.any,\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n label: PropTypes.string,\n disableUnderline: PropTypes.bool,\n textAlign: PropTypes.string,\n variant: PropTypes.string,\n type: PropTypes.string,\n };\n\n static defaultProps = {\n step: 1,\n customValues: [],\n textAlign: 'center',\n variant: 'standard',\n onlyIntegersAllowed: false,\n };\n\n constructor(props) {\n super(props);\n\n const { value, currentIndex } = this.normalizeValueAndIndex(props.customValues, props.value);\n\n this.state = {\n value,\n currentIndex,\n };\n\n if (value !== props.value) {\n this.props.onChange({}, value);\n }\n\n this.onChange = this.onChange.bind(this);\n }\n\n UNSAFE_componentWillReceiveProps(props) {\n const { value, currentIndex } = this.normalizeValueAndIndex(props.customValues, props.value, props.min, props.max);\n\n this.setState({ value, currentIndex });\n }\n\n clamp(value, min = this.props.min, max = this.props.max) {\n const { customValues } = this.props;\n\n if ((customValues || []).length > 0) {\n return value;\n }\n\n if (!isFinite(value)) {\n return fallbackNumber(min, max);\n }\n\n if (isFinite(max)) {\n value = Math.min(value, max);\n }\n\n if (isFinite(min)) {\n value = Math.max(value, min);\n }\n\n return value;\n }\n\n normalizeValueAndIndex = (customValues, number, min, max) => {\n const { type } = this.props;\n const value = this.clamp(number, min, max);\n const currentIndex = (customValues || []).findIndex((val) => val === value);\n\n if ((customValues || []).length > 0 && currentIndex === -1) {\n const closestValue =\n type === 'text' ? this.getClosestFractionValue(customValues, value) : this.getClosestValue(customValues, value);\n\n return { value: closestValue.value, currentIndex: closestValue.index };\n }\n\n return { value, currentIndex };\n };\n\n getClosestValue = (customValues, number) =>\n customValues.reduce(\n (closest, value, index) =>\n Math.abs(value - number) < Math.abs(closest.value - number) ? { value, index } : closest,\n { value: customValues[0], index: 0 },\n );\n\n getClosestFractionValue = (customValues, number) =>\n customValues.reduce(\n (closest, value, index) =>\n Math.abs(math.number(math.fraction(value)) - math.number(math.fraction(number))) <\n Math.abs(math.number(math.fraction(closest.value)) - math.number(math.fraction(number)))\n ? { value, index }\n : closest,\n { value: customValues[0], index: 0 },\n );\n\n getValidFraction = (value) => {\n if (this.isPositiveInteger(value.trim())) {\n return value.trim();\n }\n if (value.trim() === '' || value.trim().split('/').length !== 2) {\n return false;\n }\n let [numerator, denominator] = value.trim().split('/');\n if (isNaN(numerator) || isNaN(denominator)) {\n return false;\n }\n numerator = parseFloat(numerator);\n denominator = parseFloat(denominator);\n if (!Number.isInteger(numerator) || !Number.isInteger(denominator)) {\n return false;\n }\n if (numerator < 0 || denominator < 1) {\n return false;\n }\n return numerator + '/' + denominator;\n };\n\n isPositiveInteger = (n) => {\n return n >>> 0 === parseFloat(n);\n };\n\n onBlur = (event) => {\n const { customValues, onlyIntegersAllowed, type } = this.props;\n let { value } = event.target;\n if (type === 'text') {\n let tempValue = this.getValidFraction(value);\n if (tempValue) {\n value = tempValue;\n } else {\n value = this.props.value;\n }\n }\n let rawNumber = onlyIntegersAllowed ? Math.round(parseFloat(value)) : parseFloat(value);\n if (type === 'text') {\n rawNumber = value.trim();\n }\n const { value: number, currentIndex } = this.normalizeValueAndIndex(customValues, rawNumber);\n this.setState(\n {\n value: number.toString(),\n currentIndex,\n },\n () => this.props.onChange(event, number),\n );\n };\n\n onChange(event) {\n const { type } = this.props;\n const { value } = event.target;\n if (type !== 'text' && typeof value === 'string' && value.trim() === '') {\n return;\n }\n this.setState({ value });\n }\n\n changeValue(event, sign = 1, shouldUpdate = false) {\n event.preventDefault();\n const { customValues, step, onlyIntegersAllowed, onChange } = this.props;\n const { currentIndex, value } = this.state;\n const updatedIndex = currentIndex + sign * 1;\n let number;\n if (customValues.length > 0) {\n if (updatedIndex < 0 || updatedIndex >= customValues.length) {\n return;\n }\n number = customValues[updatedIndex];\n } else {\n const rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);\n const updatedValue = (rawNumber * 10000 + step * sign * 10000) / 10000;\n number = this.clamp(updatedValue);\n }\n this.setState(\n {\n value: number.toString(),\n currentIndex: updatedIndex,\n },\n () => {\n if (shouldUpdate) {\n onChange(event, number);\n }\n },\n );\n }\n\n render() {\n const {\n className,\n label,\n disabled,\n error,\n min,\n max,\n customValues,\n inputClassName,\n disableUnderline,\n helperText,\n variant,\n textAlign,\n type = 'number',\n } = this.props;\n const { value } = this.state;\n const names = className;\n //Logic to disable the increment and decrement buttons\n let disabledStart = false;\n let disabledEnd = false;\n if (customValues.length > 0) {\n disabledStart = value === customValues[0];\n disabledEnd = value === customValues[customValues.length - 1];\n } else if (isFinite(min) && isFinite(max)) {\n disabledStart = value === min;\n disabledEnd = value === max;\n }\n\n return (\n <StyledTextField\n variant={variant}\n inputRef={(ref) => (this.inputRef = ref)}\n disabled={disabled}\n label={label}\n value={value}\n error={error}\n helperText={helperText}\n onChange={this.onChange}\n onBlur={this.onBlur}\n onKeyPress={(e) => {\n // once the Enter key is pressed, we force input blur\n if (e.key === 'Enter' && this.inputRef) {\n this.inputRef.blur();\n }\n }}\n onKeyDown={(e) => {\n if (e.key === 'ArrowUp') {\n this.changeValue(e);\n }\n\n if (e.key === 'ArrowDown') {\n this.changeValue(e, -1);\n }\n }}\n title={''}\n type={type}\n className={names}\n InputProps={{\n className: inputClassName,\n disableUnderline: disableUnderline,\n startAdornment: (\n <InputAdornment position=\"start\">\n <StyledIconButton\n disabled={disabled ? disabled : disabledStart}\n onClick={(e) => this.changeValue(e, -1, true)}\n size=\"large\">\n <Remove fontSize=\"small\" />\n </StyledIconButton>\n </InputAdornment>\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <StyledIconButton\n disabled={disabled ? disabled : disabledEnd}\n onClick={(e) => this.changeValue(e, 1, true)}\n size=\"large\">\n <Add fontSize=\"small\" />\n </StyledIconButton>\n </InputAdornment>\n ),\n }}\n inputProps={{\n style: { textAlign },\n min,\n max,\n }}\n />\n );\n }\n}\n\nexport default NumberTextFieldCustom;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"sources":["../src/number-text-field-custom.jsx"],"names":["styles","input","margin","iconButton","padding","fallbackNumber","min","max","NumberTextFieldCustom","props","customValues","number","type","value","clamp","currentIndex","findIndex","val","length","closestValue","getClosestFractionValue","getClosestValue","index","reduce","closest","Math","abs","math","fraction","isPositiveInteger","trim","split","numerator","denominator","isNaN","parseFloat","Number","isInteger","n","event","onlyIntegersAllowed","target","tempValue","getValidFraction","rawNumber","round","normalizeValueAndIndex","setState","toString","onChange","state","bind","sign","shouldUpdate","preventDefault","step","updatedIndex","parseInt","updatedValue","className","classes","label","disabled","error","inputClassName","disableUnderline","helperText","variant","textAlign","names","disabledStart","disabledEnd","ref","inputRef","onBlur","e","key","blur","changeValue","startAdornment","endAdornment","style","React","Component","PropTypes","object","isRequired","string","array","bool","func","any"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport TextField from '@material-ui/core/TextField';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport isFinite from 'lodash/isFinite';\nimport IconButton from '@material-ui/core/IconButton';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport Remove from '@material-ui/icons/Remove';\nimport Add from '@material-ui/icons/Add';\nimport * as math from 'mathjs';\n\nconst styles = () => ({\n input: {\n '& input[type=number]': {\n '-moz-appearance': 'textfield',\n },\n '& input[type=number]::-webkit-outer-spin-button': {\n '-webkit-appearance': 'none',\n margin: 0,\n },\n '& input[type=number]::-webkit-inner-spin-button': {\n '-webkit-appearance': 'none',\n margin: 0,\n },\n },\n iconButton: {\n padding: '2px',\n },\n});\n\nconst fallbackNumber = (min, max) => {\n if (!isFinite(min) && !isFinite(max)) {\n return 0;\n }\n\n if (!isFinite(min) && isFinite(max)) {\n return max;\n }\n\n if (isFinite(min)) {\n return min;\n }\n};\n\nexport class NumberTextFieldCustom extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n customValues: PropTypes.array,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n inputClassName: PropTypes.string,\n helperText: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n onlyIntegersAllowed: PropTypes.bool,\n value: PropTypes.any,\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n label: PropTypes.string,\n disableUnderline: PropTypes.bool,\n textAlign: PropTypes.string,\n variant: PropTypes.string,\n type: PropTypes.string,\n };\n\n static defaultProps = {\n step: 1,\n customValues: [],\n textAlign: 'center',\n variant: 'standard',\n onlyIntegersAllowed: false,\n };\n\n constructor(props) {\n super(props);\n\n const { value, currentIndex } = this.normalizeValueAndIndex(props.customValues, props.value);\n\n this.state = {\n value,\n currentIndex,\n };\n\n if (value !== props.value) {\n this.props.onChange({}, value);\n }\n\n this.onChange = this.onChange.bind(this);\n }\n\n UNSAFE_componentWillReceiveProps(props) {\n const { value, currentIndex } = this.normalizeValueAndIndex(props.customValues, props.value, props.min, props.max);\n\n this.setState({ value, currentIndex });\n }\n\n clamp(value, min = this.props.min, max = this.props.max) {\n const { customValues } = this.props;\n\n if ((customValues || []).length > 0) {\n return value;\n }\n\n if (!isFinite(value)) {\n return fallbackNumber(min, max);\n }\n\n if (isFinite(max)) {\n value = Math.min(value, max);\n }\n\n if (isFinite(min)) {\n value = Math.max(value, min);\n }\n\n return value;\n }\n\n normalizeValueAndIndex = (customValues, number, min, max) => {\n const { type } = this.props;\n const value = this.clamp(number, min, max);\n const currentIndex = (customValues || []).findIndex((val) => val === value);\n\n if ((customValues || []).length > 0 && currentIndex === -1) {\n const closestValue =\n type === 'text' ? this.getClosestFractionValue(customValues, value) : this.getClosestValue(customValues, value);\n\n return { value: closestValue.value, currentIndex: closestValue.index };\n }\n\n return { value, currentIndex };\n };\n\n getClosestValue = (customValues, number) =>\n customValues.reduce(\n (closest, value, index) =>\n Math.abs(value - number) < Math.abs(closest.value - number) ? { value, index } : closest,\n { value: customValues[0], index: 0 },\n );\n\n getClosestFractionValue = (customValues, number) =>\n customValues.reduce(\n (closest, value, index) =>\n Math.abs(math.number(math.fraction(value)) - math.number(math.fraction(number))) <\n Math.abs(math.number(math.fraction(closest.value)) - math.number(math.fraction(number)))\n ? { value, index }\n : closest,\n { value: customValues[0], index: 0 },\n );\n\n getValidFraction = (value) => {\n if (this.isPositiveInteger(value.trim())) {\n return value.trim();\n }\n if (value.trim() === '' || value.trim().split('/').length !== 2) {\n return false;\n }\n let [numerator, denominator] = value.trim().split('/');\n if (isNaN(numerator) || isNaN(denominator)) {\n return false;\n }\n numerator = parseFloat(numerator);\n denominator = parseFloat(denominator);\n if (!Number.isInteger(numerator) || !Number.isInteger(denominator)) {\n return false;\n }\n if (numerator < 0 || denominator < 1) {\n return false;\n }\n return numerator + '/' + denominator;\n };\n\n isPositiveInteger = (n) => {\n return n >>> 0 === parseFloat(n);\n };\n\n onBlur = (event) => {\n const { customValues, onlyIntegersAllowed, type } = this.props;\n let { value } = event.target;\n if (type === 'text') {\n let tempValue = this.getValidFraction(value);\n if (tempValue) {\n value = tempValue;\n } else {\n value = this.props.value;\n }\n }\n let rawNumber = onlyIntegersAllowed ? Math.round(parseFloat(value)) : parseFloat(value);\n if (type === 'text') {\n rawNumber = value.trim();\n }\n const { value: number, currentIndex } = this.normalizeValueAndIndex(customValues, rawNumber);\n this.setState(\n {\n value: number.toString(),\n currentIndex,\n },\n () => this.props.onChange(event, number),\n );\n };\n\n onChange(event) {\n const { type } = this.props;\n const { value } = event.target;\n if (type !== 'text' && typeof value === 'string' && value.trim() === '') {\n return;\n }\n this.setState({ value });\n }\n\n changeValue(event, sign = 1, shouldUpdate = false) {\n event.preventDefault();\n const { customValues, step, onlyIntegersAllowed, onChange } = this.props;\n const { currentIndex, value } = this.state;\n const updatedIndex = currentIndex + sign * 1;\n let number;\n if (customValues.length > 0) {\n if (updatedIndex < 0 || updatedIndex >= customValues.length) {\n return;\n }\n number = customValues[updatedIndex];\n } else {\n const rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);\n const updatedValue = (rawNumber * 10000 + step * sign * 10000) / 10000;\n number = this.clamp(updatedValue);\n }\n this.setState(\n {\n value: number.toString(),\n currentIndex: updatedIndex,\n },\n () => {\n if (shouldUpdate) {\n onChange(event, number);\n }\n },\n );\n }\n\n render() {\n const {\n className,\n classes,\n label,\n disabled,\n error,\n min,\n max,\n customValues,\n inputClassName,\n disableUnderline,\n helperText,\n variant,\n textAlign,\n type = 'number',\n } = this.props;\n const { value } = this.state;\n const names = classNames(className, classes.input);\n //Logic to disable the increment and decrement buttons\n let disabledStart = false;\n let disabledEnd = false;\n if (customValues.length > 0) {\n disabledStart = value === customValues[0];\n disabledEnd = value === customValues[customValues.length - 1];\n } else if (isFinite(min) && isFinite(max)) {\n disabledStart = value === min;\n disabledEnd = value === max;\n }\n\n return (\n <TextField\n variant={variant}\n inputRef={(ref) => (this.inputRef = ref)}\n disabled={disabled}\n label={label}\n value={value}\n error={error}\n helperText={helperText}\n onChange={this.onChange}\n onBlur={this.onBlur}\n onKeyPress={(e) => {\n // once the Enter key is pressed, we force input blur\n if (e.key === 'Enter' && this.inputRef) {\n this.inputRef.blur();\n }\n }}\n onKeyDown={(e) => {\n if (e.key === 'ArrowUp') {\n this.changeValue(e);\n }\n\n if (e.key === 'ArrowDown') {\n this.changeValue(e, -1);\n }\n }}\n title={''}\n type={type}\n className={names}\n InputProps={{\n className: inputClassName,\n disableUnderline: disableUnderline,\n startAdornment: (\n <InputAdornment position=\"start\">\n <IconButton\n className={classes.iconButton}\n disabled={disabled ? disabled : disabledStart}\n onClick={(e) => this.changeValue(e, -1, true)}\n >\n <Remove fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n className={classes.iconButton}\n disabled={disabled ? disabled : disabledEnd}\n onClick={(e) => this.changeValue(e, 1, true)}\n >\n <Add fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n ),\n }}\n inputProps={{\n style: { textAlign },\n min,\n max,\n }}\n />\n );\n }\n}\n\nexport default withStyles(styles)(NumberTextFieldCustom);\n"],"file":"number-text-field-custom.js"}