@pie-lib/config-ui 12.0.0-beta.4 → 12.0.0-beta.5

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 (94) hide show
  1. package/CHANGELOG.md +221 -80
  2. package/lib/alert-dialog.js +5 -11
  3. package/lib/alert-dialog.js.map +1 -1
  4. package/lib/checkbox.js +8 -20
  5. package/lib/checkbox.js.map +1 -1
  6. package/lib/choice-configuration/feedback-menu.js +6 -39
  7. package/lib/choice-configuration/feedback-menu.js.map +1 -1
  8. package/lib/choice-configuration/index.js +96 -106
  9. package/lib/choice-configuration/index.js.map +1 -1
  10. package/lib/choice-utils.js +2 -12
  11. package/lib/choice-utils.js.map +1 -1
  12. package/lib/feedback-config/feedback-selector.js +25 -47
  13. package/lib/feedback-config/feedback-selector.js.map +1 -1
  14. package/lib/feedback-config/group.js +8 -19
  15. package/lib/feedback-config/group.js.map +1 -1
  16. package/lib/feedback-config/index.js +21 -50
  17. package/lib/feedback-config/index.js.map +1 -1
  18. package/lib/form-section.js +5 -13
  19. package/lib/form-section.js.map +1 -1
  20. package/lib/help.js +14 -43
  21. package/lib/help.js.map +1 -1
  22. package/lib/index.js +1 -30
  23. package/lib/index.js.map +1 -1
  24. package/lib/input.js +12 -40
  25. package/lib/input.js.map +1 -1
  26. package/lib/inputs.js +28 -45
  27. package/lib/inputs.js.map +1 -1
  28. package/lib/langs.js +11 -40
  29. package/lib/langs.js.map +1 -1
  30. package/lib/layout/config-layout.js +42 -45
  31. package/lib/layout/config-layout.js.map +1 -1
  32. package/lib/layout/index.js +1 -4
  33. package/lib/layout/index.js.map +1 -1
  34. package/lib/layout/layout-contents.js +101 -44
  35. package/lib/layout/layout-contents.js.map +1 -1
  36. package/lib/layout/settings-box.js +8 -30
  37. package/lib/layout/settings-box.js.map +1 -1
  38. package/lib/mui-box/index.js +4 -11
  39. package/lib/mui-box/index.js.map +1 -1
  40. package/lib/number-text-field-custom.js +34 -84
  41. package/lib/number-text-field-custom.js.map +1 -1
  42. package/lib/number-text-field.js +29 -72
  43. package/lib/number-text-field.js.map +1 -1
  44. package/lib/radio-with-label.js +5 -12
  45. package/lib/radio-with-label.js.map +1 -1
  46. package/lib/settings/display-size.js +4 -16
  47. package/lib/settings/display-size.js.map +1 -1
  48. package/lib/settings/index.js +15 -29
  49. package/lib/settings/index.js.map +1 -1
  50. package/lib/settings/panel.js +142 -160
  51. package/lib/settings/panel.js.map +1 -1
  52. package/lib/settings/settings-radio-label.js +14 -19
  53. package/lib/settings/settings-radio-label.js.map +1 -1
  54. package/lib/settings/toggle.js +5 -12
  55. package/lib/settings/toggle.js.map +1 -1
  56. package/lib/tabs/index.js +10 -29
  57. package/lib/tabs/index.js.map +1 -1
  58. package/lib/tags-input/index.js +7 -44
  59. package/lib/tags-input/index.js.map +1 -1
  60. package/lib/two-choice.js +15 -49
  61. package/lib/two-choice.js.map +1 -1
  62. package/lib/with-stateful-model.js +3 -22
  63. package/lib/with-stateful-model.js.map +1 -1
  64. package/package.json +4 -4
  65. package/src/alert-dialog.jsx +2 -9
  66. package/src/checkbox.jsx +10 -10
  67. package/src/choice-configuration/feedback-menu.jsx +10 -23
  68. package/src/choice-configuration/index.jsx +88 -53
  69. package/src/choice-utils.js +1 -1
  70. package/src/feedback-config/feedback-selector.jsx +29 -23
  71. package/src/feedback-config/group.jsx +10 -12
  72. package/src/feedback-config/index.jsx +49 -35
  73. package/src/form-section.jsx +4 -4
  74. package/src/help.jsx +14 -15
  75. package/src/index.js +2 -5
  76. package/src/input.jsx +8 -8
  77. package/src/inputs.jsx +15 -20
  78. package/src/langs.jsx +28 -39
  79. package/src/layout/config-layout.jsx +26 -23
  80. package/src/layout/layout-contents.jsx +81 -22
  81. package/src/layout/settings-box.jsx +12 -8
  82. package/src/mui-box/index.jsx +9 -9
  83. package/src/number-text-field-custom.jsx +28 -25
  84. package/src/number-text-field.jsx +17 -12
  85. package/src/radio-with-label.jsx +2 -2
  86. package/src/settings/display-size.jsx +5 -5
  87. package/src/settings/index.js +18 -11
  88. package/src/settings/panel.jsx +89 -61
  89. package/src/settings/settings-radio-label.jsx +5 -5
  90. package/src/settings/toggle.jsx +7 -7
  91. package/src/tabs/index.jsx +11 -15
  92. package/src/tags-input/index.jsx +17 -19
  93. package/src/two-choice.jsx +8 -8
  94. package/src/with-stateful-model.jsx +5 -5
@@ -1,51 +1,30 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = exports.NumberTextFieldCustom = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
11
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
16
  var _react = _interopRequireDefault(require("react"));
27
-
28
17
  var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
29
-
30
18
  var _classnames = _interopRequireDefault(require("classnames"));
31
-
32
19
  var _styles = require("@material-ui/core/styles");
33
-
34
20
  var _isFinite = _interopRequireDefault(require("lodash/isFinite"));
35
-
36
21
  var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
37
-
38
22
  var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
39
-
40
23
  var _Remove = _interopRequireDefault(require("@material-ui/icons/Remove"));
41
-
42
24
  var _Add = _interopRequireDefault(require("@material-ui/icons/Add"));
43
-
44
25
  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); }; }
45
-
46
26
  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; } }
47
-
48
- var styles = function styles(theme) {
27
+ var styles = function styles() {
49
28
  return {
50
29
  input: {
51
30
  '& input[type=number]': {
@@ -65,47 +44,36 @@ var styles = function styles(theme) {
65
44
  }
66
45
  };
67
46
  };
68
-
69
47
  var fallbackNumber = function fallbackNumber(min, max) {
70
48
  if (!(0, _isFinite["default"])(min) && !(0, _isFinite["default"])(max)) {
71
49
  return 0;
72
50
  }
73
-
74
51
  if (!(0, _isFinite["default"])(min) && (0, _isFinite["default"])(max)) {
75
52
  return max;
76
53
  }
77
-
78
54
  if ((0, _isFinite["default"])(min)) {
79
55
  return min;
80
56
  }
81
57
  };
82
-
83
58
  var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
84
59
  (0, _inherits2["default"])(NumberTextFieldCustom, _React$Component);
85
-
86
60
  var _super = _createSuper(NumberTextFieldCustom);
87
-
88
61
  function NumberTextFieldCustom(props) {
89
62
  var _this;
90
-
91
63
  (0, _classCallCheck2["default"])(this, NumberTextFieldCustom);
92
64
  _this = _super.call(this, props);
93
65
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "normalizeValueAndIndex", function (customValues, number) {
94
66
  var value = _this.clamp(number);
95
-
96
67
  var currentIndex = (customValues || []).findIndex(function (val) {
97
68
  return val === value;
98
69
  });
99
-
100
70
  if ((customValues || []).length > 0 && currentIndex === -1) {
101
71
  var closestValue = _this.getClosestValue(customValues, value);
102
-
103
72
  return {
104
73
  value: closestValue.value,
105
74
  currentIndex: closestValue.index
106
75
  };
107
76
  }
108
-
109
77
  return {
110
78
  value: value,
111
79
  currentIndex: currentIndex
@@ -124,15 +92,13 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
124
92
  });
125
93
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBlur", function (event) {
126
94
  var _this$props = _this.props,
127
- customValues = _this$props.customValues,
128
- onlyIntegersAllowed = _this$props.onlyIntegersAllowed;
95
+ customValues = _this$props.customValues,
96
+ onlyIntegersAllowed = _this$props.onlyIntegersAllowed;
129
97
  var value = event.target.value;
130
98
  var rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);
131
-
132
99
  var _this$normalizeValueA = _this.normalizeValueAndIndex(customValues, rawNumber),
133
- number = _this$normalizeValueA.value,
134
- currentIndex = _this$normalizeValueA.currentIndex;
135
-
100
+ number = _this$normalizeValueA.value,
101
+ currentIndex = _this$normalizeValueA.currentIndex;
136
102
  if (number !== _this.state.value) {
137
103
  _this.setState({
138
104
  value: number.toString(),
@@ -142,31 +108,25 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
142
108
  });
143
109
  }
144
110
  });
145
-
146
111
  var _this$normalizeValueA2 = _this.normalizeValueAndIndex(props.customValues, props.value),
147
- _value = _this$normalizeValueA2.value,
148
- _currentIndex = _this$normalizeValueA2.currentIndex;
149
-
112
+ _value = _this$normalizeValueA2.value,
113
+ _currentIndex = _this$normalizeValueA2.currentIndex;
150
114
  _this.state = {
151
115
  value: _value,
152
116
  currentIndex: _currentIndex
153
117
  };
154
-
155
118
  if (_value !== props.value) {
156
119
  _this.props.onChange({}, _value);
157
120
  }
158
-
159
121
  _this.onChange = _this.onChange.bind((0, _assertThisInitialized2["default"])(_this));
160
122
  return _this;
161
123
  }
162
-
163
124
  (0, _createClass2["default"])(NumberTextFieldCustom, [{
164
125
  key: "UNSAFE_componentWillReceiveProps",
165
126
  value: function UNSAFE_componentWillReceiveProps(props) {
166
127
  var _this$normalizeValueA3 = this.normalizeValueAndIndex(props.customValues, props.value),
167
- value = _this$normalizeValueA3.value,
168
- currentIndex = _this$normalizeValueA3.currentIndex;
169
-
128
+ value = _this$normalizeValueA3.value,
129
+ currentIndex = _this$normalizeValueA3.currentIndex;
170
130
  this.setState({
171
131
  value: value,
172
132
  currentIndex: currentIndex
@@ -176,26 +136,21 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
176
136
  key: "clamp",
177
137
  value: function clamp(value) {
178
138
  var _this$props2 = this.props,
179
- min = _this$props2.min,
180
- max = _this$props2.max,
181
- customValues = _this$props2.customValues;
182
-
139
+ min = _this$props2.min,
140
+ max = _this$props2.max,
141
+ customValues = _this$props2.customValues;
183
142
  if ((customValues || []).length > 0) {
184
143
  return value;
185
144
  }
186
-
187
145
  if (!(0, _isFinite["default"])(value)) {
188
146
  return fallbackNumber(min, max);
189
147
  }
190
-
191
148
  if ((0, _isFinite["default"])(max)) {
192
149
  value = Math.min(value, max);
193
150
  }
194
-
195
151
  if ((0, _isFinite["default"])(min)) {
196
152
  value = Math.max(value, min);
197
153
  }
198
-
199
154
  return value;
200
155
  }
201
156
  }, {
@@ -213,28 +168,25 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
213
168
  var shouldUpdate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
214
169
  event.preventDefault();
215
170
  var _this$props3 = this.props,
216
- customValues = _this$props3.customValues,
217
- step = _this$props3.step,
218
- onlyIntegersAllowed = _this$props3.onlyIntegersAllowed,
219
- onChange = _this$props3.onChange;
171
+ customValues = _this$props3.customValues,
172
+ step = _this$props3.step,
173
+ onlyIntegersAllowed = _this$props3.onlyIntegersAllowed,
174
+ onChange = _this$props3.onChange;
220
175
  var _this$state = this.state,
221
- currentIndex = _this$state.currentIndex,
222
- value = _this$state.value;
176
+ currentIndex = _this$state.currentIndex,
177
+ value = _this$state.value;
223
178
  var updatedIndex = currentIndex + sign * 1;
224
179
  var number;
225
-
226
180
  if (customValues.length > 0) {
227
181
  if (updatedIndex < 0 || updatedIndex >= customValues.length) {
228
182
  return;
229
183
  }
230
-
231
184
  number = customValues[updatedIndex];
232
185
  } else {
233
186
  var rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);
234
187
  var updatedValue = (rawNumber * 10000 + step * sign * 10000) / 10000;
235
188
  number = this.clamp(updatedValue);
236
189
  }
237
-
238
190
  this.setState({
239
191
  value: number.toString(),
240
192
  currentIndex: updatedIndex
@@ -248,20 +200,19 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
248
200
  key: "render",
249
201
  value: function render() {
250
202
  var _this2 = this;
251
-
252
203
  var _this$props4 = this.props,
253
- className = _this$props4.className,
254
- classes = _this$props4.classes,
255
- label = _this$props4.label,
256
- disabled = _this$props4.disabled,
257
- error = _this$props4.error,
258
- min = _this$props4.min,
259
- max = _this$props4.max,
260
- inputClassName = _this$props4.inputClassName,
261
- disableUnderline = _this$props4.disableUnderline,
262
- helperText = _this$props4.helperText,
263
- variant = _this$props4.variant,
264
- textAlign = _this$props4.textAlign;
204
+ className = _this$props4.className,
205
+ classes = _this$props4.classes,
206
+ label = _this$props4.label,
207
+ disabled = _this$props4.disabled,
208
+ error = _this$props4.error,
209
+ min = _this$props4.min,
210
+ max = _this$props4.max,
211
+ inputClassName = _this$props4.inputClassName,
212
+ disableUnderline = _this$props4.disableUnderline,
213
+ helperText = _this$props4.helperText,
214
+ variant = _this$props4.variant,
215
+ textAlign = _this$props4.textAlign;
265
216
  var value = this.state.value;
266
217
  var names = (0, _classnames["default"])(className, classes.input);
267
218
  return /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
@@ -286,11 +237,11 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
286
237
  if (e.key === 'ArrowUp') {
287
238
  _this2.changeValue(e);
288
239
  }
289
-
290
240
  if (e.key === 'ArrowDown') {
291
241
  _this2.changeValue(e, -1);
292
242
  }
293
243
  },
244
+ title: '',
294
245
  type: "number",
295
246
  className: names,
296
247
  InputProps: {
@@ -331,7 +282,6 @@ var NumberTextFieldCustom = /*#__PURE__*/function (_React$Component) {
331
282
  }]);
332
283
  return NumberTextFieldCustom;
333
284
  }(_react["default"].Component);
334
-
335
285
  exports.NumberTextFieldCustom = NumberTextFieldCustom;
336
286
  (0, _defineProperty2["default"])(NumberTextFieldCustom, "propTypes", {
337
287
  classes: _propTypes["default"].object.isRequired,
@@ -340,6 +290,7 @@ exports.NumberTextFieldCustom = NumberTextFieldCustom;
340
290
  disabled: _propTypes["default"].bool,
341
291
  error: _propTypes["default"].bool,
342
292
  inputClassName: _propTypes["default"].string,
293
+ helperText: _propTypes["default"].string,
343
294
  onChange: _propTypes["default"].func.isRequired,
344
295
  onlyIntegersAllowed: _propTypes["default"].bool,
345
296
  value: _propTypes["default"].number,
@@ -348,6 +299,7 @@ exports.NumberTextFieldCustom = NumberTextFieldCustom;
348
299
  step: _propTypes["default"].number,
349
300
  label: _propTypes["default"].string,
350
301
  disableUnderline: _propTypes["default"].bool,
302
+ textAlign: _propTypes["default"].string,
351
303
  variant: _propTypes["default"].string
352
304
  });
353
305
  (0, _defineProperty2["default"])(NumberTextFieldCustom, "defaultProps", {
@@ -357,8 +309,6 @@ exports.NumberTextFieldCustom = NumberTextFieldCustom;
357
309
  variant: 'standard',
358
310
  onlyIntegersAllowed: false
359
311
  });
360
-
361
312
  var _default = (0, _styles.withStyles)(styles)(NumberTextFieldCustom);
362
-
363
313
  exports["default"] = _default;
364
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZXMiLCJ0aGVtZSIsImlucHV0IiwibWFyZ2luIiwiaWNvbkJ1dHRvbiIsInBhZGRpbmciLCJmYWxsYmFja051bWJlciIsIm1pbiIsIm1heCIsImlzRmluaXRlIiwiTnVtYmVyVGV4dEZpZWxkQ3VzdG9tIiwicHJvcHMiLCJjdXN0b21WYWx1ZXMiLCJudW1iZXIiLCJ2YWx1ZSIsImNsYW1wIiwiY3VycmVudEluZGV4IiwiZmluZEluZGV4IiwidmFsIiwibGVuZ3RoIiwiY2xvc2VzdFZhbHVlIiwiZ2V0Q2xvc2VzdFZhbHVlIiwiaW5kZXgiLCJyZWR1Y2UiLCJjbG9zZXN0IiwiTWF0aCIsImFicyIsImV2ZW50Iiwib25seUludGVnZXJzQWxsb3dlZCIsInRhcmdldCIsInJhd051bWJlciIsInBhcnNlSW50IiwicGFyc2VGbG9hdCIsIm5vcm1hbGl6ZVZhbHVlQW5kSW5kZXgiLCJzdGF0ZSIsInNldFN0YXRlIiwidG9TdHJpbmciLCJvbkNoYW5nZSIsImJpbmQiLCJzaWduIiwic2hvdWxkVXBkYXRlIiwicHJldmVudERlZmF1bHQiLCJzdGVwIiwidXBkYXRlZEluZGV4IiwidXBkYXRlZFZhbHVlIiwiY2xhc3NOYW1lIiwiY2xhc3NlcyIsImxhYmVsIiwiZGlzYWJsZWQiLCJlcnJvciIsImlucHV0Q2xhc3NOYW1lIiwiZGlzYWJsZVVuZGVybGluZSIsImhlbHBlclRleHQiLCJ2YXJpYW50IiwidGV4dEFsaWduIiwibmFtZXMiLCJjbGFzc05hbWVzIiwicmVmIiwiaW5wdXRSZWYiLCJvbkJsdXIiLCJlIiwia2V5IiwiYmx1ciIsImNoYW5nZVZhbHVlIiwic3RhcnRBZG9ybm1lbnQiLCJlbmRBZG9ybm1lbnQiLCJzdHlsZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImFycmF5IiwiYm9vbCIsImZ1bmMiLCJ3aXRoU3R5bGVzIl0sInNvdXJjZXMiOlsiLi4vc3JjL251bWJlci10ZXh0LWZpZWxkLWN1c3RvbS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVGV4dEZpZWxkIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1RleHRGaWVsZCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IGlzRmluaXRlIGZyb20gJ2xvZGFzaC9pc0Zpbml0ZSc7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9JY29uQnV0dG9uJztcbmltcG9ydCBJbnB1dEFkb3JubWVudCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9JbnB1dEFkb3JubWVudCc7XG5pbXBvcnQgUmVtb3ZlIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9SZW1vdmUnO1xuaW1wb3J0IEFkZCBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvQWRkJztcblxuY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgaW5wdXQ6IHtcbiAgICAnJiBpbnB1dFt0eXBlPW51bWJlcl0nOiB7XG4gICAgICAnLW1vei1hcHBlYXJhbmNlJzogJ3RleHRmaWVsZCdcbiAgICB9LFxuICAgICcmIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbic6IHtcbiAgICAgICctd2Via2l0LWFwcGVhcmFuY2UnOiAnbm9uZScsXG4gICAgICBtYXJnaW46IDBcbiAgICB9LFxuICAgICcmIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbic6IHtcbiAgICAgICctd2Via2l0LWFwcGVhcmFuY2UnOiAnbm9uZScsXG4gICAgICBtYXJnaW46IDBcbiAgICB9XG4gIH0sXG4gIGljb25CdXR0b246IHtcbiAgICBwYWRkaW5nOiAnMnB4J1xuICB9XG59KTtcblxuY29uc3QgZmFsbGJhY2tOdW1iZXIgPSAobWluLCBtYXgpID0+IHtcbiAgaWYgKCFpc0Zpbml0ZShtaW4pICYmICFpc0Zpbml0ZShtYXgpKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBpZiAoIWlzRmluaXRlKG1pbikgJiYgaXNGaW5pdGUobWF4KSkge1xuICAgIHJldHVybiBtYXg7XG4gIH1cblxuICBpZiAoaXNGaW5pdGUobWluKSkge1xuICAgIHJldHVybiBtaW47XG4gIH1cbn07XG5cbmV4cG9ydCBjbGFzcyBOdW1iZXJUZXh0RmllbGRDdXN0b20gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY3VzdG9tVmFsdWVzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIGVycm9yOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpbnB1dENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbmx5SW50ZWdlcnNBbGxvd2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgICBtaW46IFByb3BUeXBlcy5udW1iZXIsXG4gICAgbWF4OiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHN0ZXA6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGlzYWJsZVVuZGVybGluZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgdmFyaWFudDogUHJvcFR5cGVzLnN0cmluZ1xuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgc3RlcDogMSxcbiAgICBjdXN0b21WYWx1ZXM6IFtdLFxuICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgdmFyaWFudDogJ3N0YW5kYXJkJyxcbiAgICBvbmx5SW50ZWdlcnNBbGxvd2VkOiBmYWxzZVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgY29uc3QgeyB2YWx1ZSwgY3VycmVudEluZGV4IH0gPSB0aGlzLm5vcm1hbGl6ZVZhbHVlQW5kSW5kZXgocHJvcHMuY3VzdG9tVmFsdWVzLCBwcm9wcy52YWx1ZSk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgdmFsdWUsXG4gICAgICBjdXJyZW50SW5kZXhcbiAgICB9O1xuXG4gICAgaWYgKHZhbHVlICE9PSBwcm9wcy52YWx1ZSkge1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh7fSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhwcm9wcykge1xuICAgIGNvbnN0IHsgdmFsdWUsIGN1cnJlbnRJbmRleCB9ID0gdGhpcy5ub3JtYWxpemVWYWx1ZUFuZEluZGV4KHByb3BzLmN1c3RvbVZhbHVlcywgcHJvcHMudmFsdWUpO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlLCBjdXJyZW50SW5kZXggfSk7XG4gIH1cblxuICBjbGFtcCh2YWx1ZSkge1xuICAgIGNvbnN0IHsgbWluLCBtYXgsIGN1c3RvbVZhbHVlcyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmICgoY3VzdG9tVmFsdWVzIHx8IFtdKS5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKCFpc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBmYWxsYmFja051bWJlcihtaW4sIG1heCk7XG4gICAgfVxuXG4gICAgaWYgKGlzRmluaXRlKG1heCkpIHtcbiAgICAgIHZhbHVlID0gTWF0aC5taW4odmFsdWUsIG1heCk7XG4gICAgfVxuXG4gICAgaWYgKGlzRmluaXRlKG1pbikpIHtcbiAgICAgIHZhbHVlID0gTWF0aC5tYXgodmFsdWUsIG1pbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgbm9ybWFsaXplVmFsdWVBbmRJbmRleCA9IChjdXN0b21WYWx1ZXMsIG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jbGFtcChudW1iZXIpO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IChjdXN0b21WYWx1ZXMgfHwgW10pLmZpbmRJbmRleCh2YWwgPT4gdmFsID09PSB2YWx1ZSk7XG5cbiAgICBpZiAoKGN1c3RvbVZhbHVlcyB8fCBbXSkubGVuZ3RoID4gMCAmJiBjdXJyZW50SW5kZXggPT09IC0xKSB7XG4gICAgICBjb25zdCBjbG9zZXN0VmFsdWUgPSB0aGlzLmdldENsb3Nlc3RWYWx1ZShjdXN0b21WYWx1ZXMsIHZhbHVlKTtcblxuICAgICAgcmV0dXJuIHsgdmFsdWU6IGNsb3Nlc3RWYWx1ZS52YWx1ZSwgY3VycmVudEluZGV4OiBjbG9zZXN0VmFsdWUuaW5kZXggfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyB2YWx1ZSwgY3VycmVudEluZGV4IH07XG4gIH07XG5cbiAgZ2V0Q2xvc2VzdFZhbHVlID0gKGN1c3RvbVZhbHVlcywgbnVtYmVyKSA9PlxuICAgIGN1c3RvbVZhbHVlcy5yZWR1Y2UoXG4gICAgICAoY2xvc2VzdCwgdmFsdWUsIGluZGV4KSA9PlxuICAgICAgICBNYXRoLmFicyh2YWx1ZSAtIG51bWJlcikgPCBNYXRoLmFicyhjbG9zZXN0LnZhbHVlIC0gbnVtYmVyKSA/IHsgdmFsdWUsIGluZGV4IH0gOiBjbG9zZXN0LFxuICAgICAgeyB2YWx1ZTogY3VzdG9tVmFsdWVzWzBdLCBpbmRleDogMCB9XG4gICAgKTtcblxuICBvbkJsdXIgPSBldmVudCA9PiB7XG4gICAgY29uc3QgeyBjdXN0b21WYWx1ZXMsIG9ubHlJbnRlZ2Vyc0FsbG93ZWQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0O1xuICAgIGNvbnN0IHJhd051bWJlciA9IG9ubHlJbnRlZ2Vyc0FsbG93ZWQgPyBwYXJzZUludCh2YWx1ZSkgOiBwYXJzZUZsb2F0KHZhbHVlKTtcblxuICAgIGNvbnN0IHsgdmFsdWU6IG51bWJlciwgY3VycmVudEluZGV4IH0gPSB0aGlzLm5vcm1hbGl6ZVZhbHVlQW5kSW5kZXgoY3VzdG9tVmFsdWVzLCByYXdOdW1iZXIpO1xuXG4gICAgaWYgKG51bWJlciAhPT0gdGhpcy5zdGF0ZS52YWx1ZSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiBudW1iZXIudG9TdHJpbmcoKSxcbiAgICAgICAgICBjdXJyZW50SW5kZXhcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4gdGhpcy5wcm9wcy5vbkNoYW5nZShldmVudCwgbnVtYmVyKVxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgb25DaGFuZ2UoZXZlbnQpIHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XG5cbiAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWUgfSk7XG4gIH1cblxuICBjaGFuZ2VWYWx1ZShldmVudCwgc2lnbiA9IDEsIHNob3VsZFVwZGF0ZSA9IGZhbHNlKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IHsgY3VzdG9tVmFsdWVzLCBzdGVwLCBvbmx5SW50ZWdlcnNBbGxvd2VkLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IGN1cnJlbnRJbmRleCwgdmFsdWUgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgdXBkYXRlZEluZGV4ID0gY3VycmVudEluZGV4ICsgc2lnbiAqIDE7XG4gICAgbGV0IG51bWJlcjtcblxuICAgIGlmIChjdXN0b21WYWx1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHVwZGF0ZWRJbmRleCA8IDAgfHwgdXBkYXRlZEluZGV4ID49IGN1c3RvbVZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBudW1iZXIgPSBjdXN0b21WYWx1ZXNbdXBkYXRlZEluZGV4XTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmF3TnVtYmVyID0gb25seUludGVnZXJzQWxsb3dlZCA/IHBhcnNlSW50KHZhbHVlKSA6IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gKHJhd051bWJlciAqIDEwMDAwICsgc3RlcCAqIHNpZ24gKiAxMDAwMCkgLyAxMDAwMDtcbiAgICAgIG51bWJlciA9IHRoaXMuY2xhbXAodXBkYXRlZFZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKFxuICAgICAge1xuICAgICAgICB2YWx1ZTogbnVtYmVyLnRvU3RyaW5nKCksXG4gICAgICAgIGN1cnJlbnRJbmRleDogdXBkYXRlZEluZGV4XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAoc2hvdWxkVXBkYXRlKSB7XG4gICAgICAgICAgb25DaGFuZ2UoZXZlbnQsIG51bWJlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNsYXNzZXMsXG4gICAgICBsYWJlbCxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgZXJyb3IsXG4gICAgICBtaW4sXG4gICAgICBtYXgsXG4gICAgICBpbnB1dENsYXNzTmFtZSxcbiAgICAgIGRpc2FibGVVbmRlcmxpbmUsXG4gICAgICBoZWxwZXJUZXh0LFxuICAgICAgdmFyaWFudCxcbiAgICAgIHRleHRBbGlnblxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgbmFtZXMgPSBjbGFzc05hbWVzKGNsYXNzTmFtZSwgY2xhc3Nlcy5pbnB1dCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFRleHRGaWVsZFxuICAgICAgICB2YXJpYW50PXt2YXJpYW50fVxuICAgICAgICBpbnB1dFJlZj17cmVmID0+ICh0aGlzLmlucHV0UmVmID0gcmVmKX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgZXJyb3I9e2Vycm9yfVxuICAgICAgICBoZWxwZXJUZXh0PXtoZWxwZXJUZXh0fVxuICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZX1cbiAgICAgICAgb25CbHVyPXt0aGlzLm9uQmx1cn1cbiAgICAgICAgb25LZXlQcmVzcz17ZSA9PiB7XG4gICAgICAgICAgLy8gb25jZSB0aGUgRW50ZXIga2V5IGlzIHByZXNzZWQsIHdlIGZvcmNlIGlucHV0IGJsdXJcbiAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgdGhpcy5pbnB1dFJlZikge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5ibHVyKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBvbktleURvd249e2UgPT4ge1xuICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVZhbHVlKGUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVmFsdWUoZSwgLTEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIGNsYXNzTmFtZT17bmFtZXN9XG4gICAgICAgIElucHV0UHJvcHM9e3tcbiAgICAgICAgICBjbGFzc05hbWU6IGlucHV0Q2xhc3NOYW1lLFxuICAgICAgICAgIGRpc2FibGVVbmRlcmxpbmU6IGRpc2FibGVVbmRlcmxpbmUsXG4gICAgICAgICAgc3RhcnRBZG9ybm1lbnQ6IChcbiAgICAgICAgICAgIDxJbnB1dEFkb3JubWVudCBwb3NpdGlvbj1cInN0YXJ0XCI+XG4gICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmljb25CdXR0b259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gdGhpcy5jaGFuZ2VWYWx1ZShlLCAtMSwgdHJ1ZSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVtb3ZlIGZvbnRTaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICA8L0lucHV0QWRvcm5tZW50PlxuICAgICAgICAgICksXG4gICAgICAgICAgZW5kQWRvcm5tZW50OiAoXG4gICAgICAgICAgICA8SW5wdXRBZG9ybm1lbnQgcG9zaXRpb249XCJlbmRcIj5cbiAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuaWNvbkJ1dHRvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB0aGlzLmNoYW5nZVZhbHVlKGUsIDEsIHRydWUpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEFkZCBmb250U2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgPC9JbnB1dEFkb3JubWVudD5cbiAgICAgICAgICApXG4gICAgICAgIH19XG4gICAgICAgIGlucHV0UHJvcHM9e3tcbiAgICAgICAgICBzdHlsZTogeyB0ZXh0QWxpZ24gfSxcbiAgICAgICAgICBtaW4sXG4gICAgICAgICAgbWF4XG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMpKE51bWJlclRleHRGaWVsZEN1c3RvbSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUFDLEtBQUs7RUFBQSxPQUFLO0lBQ3ZCQyxLQUFLLEVBQUU7TUFDTCx3QkFBd0I7UUFDdEIsbUJBQW1CO01BREcsQ0FEbkI7TUFJTCxtREFBbUQ7UUFDakQsc0JBQXNCLE1BRDJCO1FBRWpEQyxNQUFNLEVBQUU7TUFGeUMsQ0FKOUM7TUFRTCxtREFBbUQ7UUFDakQsc0JBQXNCLE1BRDJCO1FBRWpEQSxNQUFNLEVBQUU7TUFGeUM7SUFSOUMsQ0FEZ0I7SUFjdkJDLFVBQVUsRUFBRTtNQUNWQyxPQUFPLEVBQUU7SUFEQztFQWRXLENBQUw7QUFBQSxDQUFwQjs7QUFtQkEsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBYztFQUNuQyxJQUFJLENBQUMsSUFBQUMsb0JBQUEsRUFBU0YsR0FBVCxDQUFELElBQWtCLENBQUMsSUFBQUUsb0JBQUEsRUFBU0QsR0FBVCxDQUF2QixFQUFzQztJQUNwQyxPQUFPLENBQVA7RUFDRDs7RUFFRCxJQUFJLENBQUMsSUFBQUMsb0JBQUEsRUFBU0YsR0FBVCxDQUFELElBQWtCLElBQUFFLG9CQUFBLEVBQVNELEdBQVQsQ0FBdEIsRUFBcUM7SUFDbkMsT0FBT0EsR0FBUDtFQUNEOztFQUVELElBQUksSUFBQUMsb0JBQUEsRUFBU0YsR0FBVCxDQUFKLEVBQW1CO0lBQ2pCLE9BQU9BLEdBQVA7RUFDRDtBQUNGLENBWkQ7O0lBY2FHLHFCOzs7OztFQTJCWCwrQkFBWUMsS0FBWixFQUFtQjtJQUFBOztJQUFBO0lBQ2pCLDBCQUFN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
314
+ //# sourceMappingURL=number-text-field-custom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number-text-field-custom.js","names":["styles","theme","input","margin","iconButton","padding","fallbackNumber","min","max","isFinite","NumberTextFieldCustom","props","customValues","number","value","clamp","currentIndex","findIndex","val","length","closestValue","getClosestValue","index","reduce","closest","Math","abs","event","onlyIntegersAllowed","target","rawNumber","parseInt","parseFloat","normalizeValueAndIndex","state","setState","toString","onChange","bind","sign","shouldUpdate","preventDefault","step","updatedIndex","updatedValue","className","classes","label","disabled","error","inputClassName","disableUnderline","helperText","variant","textAlign","names","classNames","ref","inputRef","onBlur","e","key","blur","changeValue","startAdornment","endAdornment","style","React","Component","PropTypes","object","isRequired","string","array","bool","func","withStyles"],"sources":["../src/number-text-field-custom.jsx"],"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';\n\nconst styles = theme => ({\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 onChange: PropTypes.func.isRequired,\n onlyIntegersAllowed: PropTypes.bool,\n value: PropTypes.number,\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n label: PropTypes.string,\n disableUnderline: PropTypes.bool,\n variant: 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);\n\n this.setState({ value, currentIndex });\n }\n\n clamp(value) {\n const { min, max, 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) => {\n const value = this.clamp(number);\n const currentIndex = (customValues || []).findIndex(val => val === value);\n\n if ((customValues || []).length > 0 && currentIndex === -1) {\n const closestValue = 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 onBlur = event => {\n const { customValues, onlyIntegersAllowed } = this.props;\n const { value } = event.target;\n const rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);\n\n const { value: number, currentIndex } = this.normalizeValueAndIndex(customValues, rawNumber);\n\n if (number !== this.state.value) {\n this.setState(\n {\n value: number.toString(),\n currentIndex\n },\n () => this.props.onChange(event, number)\n );\n }\n };\n\n onChange(event) {\n const { value } = event.target;\n\n this.setState({ value });\n }\n\n changeValue(event, sign = 1, shouldUpdate = false) {\n event.preventDefault();\n\n const { customValues, step, onlyIntegersAllowed, onChange } = this.props;\n const { currentIndex, value } = this.state;\n const updatedIndex = currentIndex + sign * 1;\n let number;\n\n if (customValues.length > 0) {\n if (updatedIndex < 0 || updatedIndex >= customValues.length) {\n return;\n }\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\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 inputClassName,\n disableUnderline,\n helperText,\n variant,\n textAlign\n } = this.props;\n const { value } = this.state;\n const names = classNames(className, classes.input);\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 type=\"number\"\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}\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}\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"],"mappings":"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"}
1
+ {"version":3,"file":"number-text-field-custom.js","names":["_propTypes","_interopRequireDefault","require","_react","_TextField","_classnames","_styles","_isFinite","_IconButton","_InputAdornment","_Remove","_Add","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","styles","input","margin","iconButton","padding","fallbackNumber","min","max","isFinite","NumberTextFieldCustom","_React$Component","_inherits2","_super","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","customValues","number","value","clamp","currentIndex","findIndex","val","length","closestValue","getClosestValue","index","reduce","closest","Math","abs","event","_this$props","onlyIntegersAllowed","target","rawNumber","parseInt","parseFloat","_this$normalizeValueA","normalizeValueAndIndex","state","setState","toString","onChange","_this$normalizeValueA2","bind","_createClass2","key","UNSAFE_componentWillReceiveProps","_this$normalizeValueA3","_this$props2","changeValue","sign","undefined","shouldUpdate","preventDefault","_this$props3","step","_this$state","updatedIndex","updatedValue","render","_this2","_this$props4","className","classes","label","disabled","error","inputClassName","disableUnderline","helperText","variant","textAlign","names","classNames","createElement","inputRef","ref","onBlur","onKeyPress","blur","onKeyDown","title","type","InputProps","startAdornment","position","onClick","fontSize","endAdornment","inputProps","style","React","Component","exports","PropTypes","object","isRequired","string","array","bool","func","_default","withStyles"],"sources":["../src/number-text-field-custom.jsx"],"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';\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.number,\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 };\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);\n\n this.setState({ value, currentIndex });\n }\n\n clamp(value) {\n const { min, max, 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) => {\n const value = this.clamp(number);\n const currentIndex = (customValues || []).findIndex((val) => val === value);\n\n if ((customValues || []).length > 0 && currentIndex === -1) {\n const closestValue = 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 onBlur = (event) => {\n const { customValues, onlyIntegersAllowed } = this.props;\n const { value } = event.target;\n const rawNumber = onlyIntegersAllowed ? parseInt(value) : parseFloat(value);\n\n const { value: number, currentIndex } = this.normalizeValueAndIndex(customValues, rawNumber);\n\n if (number !== this.state.value) {\n this.setState(\n {\n value: number.toString(),\n currentIndex,\n },\n () => this.props.onChange(event, number),\n );\n }\n };\n\n onChange(event) {\n const { value } = event.target;\n\n this.setState({ value });\n }\n\n changeValue(event, sign = 1, shouldUpdate = false) {\n event.preventDefault();\n\n const { customValues, step, onlyIntegersAllowed, onChange } = this.props;\n const { currentIndex, value } = this.state;\n const updatedIndex = currentIndex + sign * 1;\n let number;\n\n if (customValues.length > 0) {\n if (updatedIndex < 0 || updatedIndex >= customValues.length) {\n return;\n }\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\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 inputClassName,\n disableUnderline,\n helperText,\n variant,\n textAlign,\n } = this.props;\n const { value } = this.state;\n const names = classNames(className, classes.input);\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=\"number\"\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}\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}\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"],"mappings":"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"}