@semcore/input-number 5.23.0-prerelease.1 → 5.24.0-prerelease.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/lib/cjs/InputNumber.js +274 -46
- package/lib/cjs/InputNumber.js.map +1 -1
- package/lib/es6/InputNumber.js +274 -46
- package/lib/es6/InputNumber.js.map +1 -1
- package/package.json +5 -4
package/CHANGELOG.md
CHANGED
package/lib/cjs/InputNumber.js
CHANGED
|
@@ -20,16 +20,17 @@ var _input = _interopRequireDefault(require("@semcore/input"));
|
|
|
20
20
|
var _buttons = require("./buttons");
|
|
21
21
|
var _intergalacticDynamicLocales = require("./translations/__intergalactic-dynamic-locales");
|
|
22
22
|
var _i18nEnhance = _interopRequireDefault(require("@semcore/utils/lib/enhances/i18nEnhance"));
|
|
23
|
+
var _ref7 = require("@semcore/utils/lib/ref");
|
|
23
24
|
/*__reshadow-styles__:"./style/input-number.shadow.css"*/
|
|
24
|
-
var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".
|
|
25
|
-
"__SValue": "
|
|
26
|
-
"__SControls": "
|
|
27
|
-
"_showControls": "
|
|
28
|
-
"__SUp": "
|
|
29
|
-
"__SDown": "
|
|
30
|
-
"_disabled": "
|
|
31
|
-
"__SValueHidden": "
|
|
32
|
-
"_type_number": "
|
|
25
|
+
var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SValue_u6qn1_gg_:focus~.___SControls_u6qn1_gg_{display:flex}.___SControls_u6qn1_gg_{display:none;flex-flow:column;justify-content:center;height:100%;box-sizing:border-box}.___SControls_u6qn1_gg_.__showControls_u6qn1_gg_{display:flex}.___SDown_u6qn1_gg_,.___SUp_u6qn1_gg_{padding:0;width:16px;color:var(--intergalactic-icon-secondary-neutral, #a9abb6);box-sizing:border-box;display:inline-flex;justify-content:center;border:0;background:0 0;cursor:pointer}.___SDown_u6qn1_gg_:focus,.___SUp_u6qn1_gg_:focus{outline:0}@media (hover:hover){.___SDown_u6qn1_gg_:hover,.___SUp_u6qn1_gg_:hover{color:var(--intergalactic-icon-secondary-neutral-hover-active, #878992)}}.___SUp_u6qn1_gg_{padding-bottom:1px}.___SDown_u6qn1_gg_{padding-top:1px}.___SValue_u6qn1_gg_::-webkit-inner-spin-button,.___SValue_u6qn1_gg_::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.___SValue_u6qn1_gg_._type_number_u6qn1_gg_{-moz-appearance:textfield}.___SValue_u6qn1_gg_.__disabled_u6qn1_gg_~.___SControls_u6qn1_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SValueHidden_u6qn1_gg_{position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden}" /*__inner_css_end__*/, "u6qn1_gg_") /*__reshadow_css_end__*/, {
|
|
26
|
+
"__SValue": "___SValue_u6qn1_gg_",
|
|
27
|
+
"__SControls": "___SControls_u6qn1_gg_",
|
|
28
|
+
"_showControls": "__showControls_u6qn1_gg_",
|
|
29
|
+
"__SUp": "___SUp_u6qn1_gg_",
|
|
30
|
+
"__SDown": "___SDown_u6qn1_gg_",
|
|
31
|
+
"_disabled": "__disabled_u6qn1_gg_",
|
|
32
|
+
"__SValueHidden": "___SValueHidden_u6qn1_gg_",
|
|
33
|
+
"_type_number": "_type_number_u6qn1_gg_"
|
|
33
34
|
});
|
|
34
35
|
function parseValueWithMinMax(value) {
|
|
35
36
|
var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MIN_SAFE_INTEGER;
|
|
@@ -47,30 +48,27 @@ var InputNumber = /*#__PURE__*/function (_Component) {
|
|
|
47
48
|
}
|
|
48
49
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
49
50
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "inputRef", /*#__PURE__*/_react["default"].createRef());
|
|
50
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "inputHandlersRef", /*#__PURE__*/_react["default"].createRef());
|
|
51
51
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "increment", function (event) {
|
|
52
|
-
var _this$inputRef$curren, _this$inputRef$curren2
|
|
53
|
-
|
|
54
|
-
if (((_this$inputRef$curren = _this.inputRef.current) === null || _this$inputRef$curren === void 0 ? void 0 : _this$inputRef$curren.value) === '') _this.inputRef.current.value = _this.inputRef.current.min || '0';
|
|
55
|
-
(_this$inputRef$curren2 = _this.inputRef.current) === null || _this$inputRef$curren2 === void 0 ? void 0 : (_this$inputRef$curren3 = _this$inputRef$curren2.stepUp) === null || _this$inputRef$curren3 === void 0 ? void 0 : _this$inputRef$curren3.call(_this$inputRef$curren2);
|
|
56
|
-
(_this$inputHandlersRe = _this.inputHandlersRef.current) === null || _this$inputHandlersRe === void 0 ? void 0 : _this$inputHandlersRe.value(_this.inputRef.current.value, event);
|
|
52
|
+
var _this$inputRef$curren, _this$inputRef$curren2;
|
|
53
|
+
(_this$inputRef$curren = _this.inputRef.current) === null || _this$inputRef$curren === void 0 ? void 0 : (_this$inputRef$curren2 = _this$inputRef$curren.stepUp) === null || _this$inputRef$curren2 === void 0 ? void 0 : _this$inputRef$curren2.call(_this$inputRef$curren, event);
|
|
57
54
|
});
|
|
58
55
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "decrement", function (event) {
|
|
59
|
-
var _this$inputRef$
|
|
60
|
-
|
|
61
|
-
(_this$inputRef$curren5 = _this.inputRef.current) === null || _this$inputRef$curren5 === void 0 ? void 0 : (_this$inputRef$curren6 = _this$inputRef$curren5.stepDown) === null || _this$inputRef$curren6 === void 0 ? void 0 : _this$inputRef$curren6.call(_this$inputRef$curren5);
|
|
62
|
-
(_this$inputHandlersRe2 = _this.inputHandlersRef.current) === null || _this$inputHandlersRe2 === void 0 ? void 0 : _this$inputHandlersRe2.value(_this.inputRef.current.value, event);
|
|
56
|
+
var _this$inputRef$curren3, _this$inputRef$curren4;
|
|
57
|
+
(_this$inputRef$curren3 = _this.inputRef.current) === null || _this$inputRef$curren3 === void 0 ? void 0 : (_this$inputRef$curren4 = _this$inputRef$curren3.stepDown) === null || _this$inputRef$curren4 === void 0 ? void 0 : _this$inputRef$curren4.call(_this$inputRef$curren3, event);
|
|
63
58
|
});
|
|
64
59
|
return _this;
|
|
65
60
|
}
|
|
66
61
|
(0, _createClass2["default"])(InputNumber, [{
|
|
67
62
|
key: "getValueProps",
|
|
68
63
|
value: function getValueProps() {
|
|
64
|
+
var numberFormatter = new Intl.NumberFormat(this.asProps.locale, {
|
|
65
|
+
style: 'decimal'
|
|
66
|
+
});
|
|
69
67
|
return {
|
|
70
|
-
|
|
71
|
-
inputHandlerRefs: this.inputHandlersRef,
|
|
68
|
+
inputRef: this.inputRef,
|
|
72
69
|
increment: this.increment,
|
|
73
|
-
decrement: this.decrement
|
|
70
|
+
decrement: this.decrement,
|
|
71
|
+
numberFormatter: numberFormatter
|
|
74
72
|
};
|
|
75
73
|
}
|
|
76
74
|
}, {
|
|
@@ -115,19 +113,52 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
115
113
|
args[_key2] = arguments[_key2];
|
|
116
114
|
}
|
|
117
115
|
_this2 = _super2.call.apply(_super2, [this].concat(args));
|
|
118
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "
|
|
116
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "valueInputRef", /*#__PURE__*/_react["default"].createRef());
|
|
117
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "cursorPosition", -1);
|
|
118
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "valueParser", function (value, prevValue, prevDisplayValue) {
|
|
119
|
+
var numberFormatter = _this2.props.numberFormatter;
|
|
120
|
+
var stringNumber = value.replace(new RegExp("[".concat(_this2.separatorThousands, "]"), 'g'), '').replace(_this2.separatorDecimal, '.');
|
|
121
|
+
if (stringNumber[stringNumber.length - 1] === '.' && !Number.isNaN(Number(prevValue)) && !stringNumber.slice(0, -1).includes('.')) {
|
|
122
|
+
if (value.length > prevValue.length) {
|
|
123
|
+
// type new value
|
|
124
|
+
return {
|
|
125
|
+
parsedValue: prevValue + _this2.separatorDecimal,
|
|
126
|
+
displayValue: numberFormatter.format(prevValue) + _this2.separatorDecimal
|
|
127
|
+
};
|
|
128
|
+
} else {
|
|
129
|
+
// backspace value
|
|
130
|
+
return {
|
|
131
|
+
parsedValue: stringNumber,
|
|
132
|
+
displayValue: value
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
if (Number.isNaN(Number(stringNumber))) {
|
|
137
|
+
return {
|
|
138
|
+
parsedValue: prevValue,
|
|
139
|
+
displayValue: prevDisplayValue
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
parsedValue: stringNumber,
|
|
144
|
+
displayValue: stringNumber === '' ? '' : numberFormatter.format(stringNumber)
|
|
145
|
+
};
|
|
146
|
+
});
|
|
119
147
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "handleValidation", function (event) {
|
|
120
148
|
var _this2$asProps = _this2.asProps,
|
|
121
149
|
value = _this2$asProps.value,
|
|
150
|
+
displayValue = _this2$asProps.displayValue,
|
|
122
151
|
min = _this2$asProps.min,
|
|
123
152
|
max = _this2$asProps.max,
|
|
124
153
|
step = _this2$asProps.step;
|
|
154
|
+
var _this2$valueParser = _this2.valueParser(event.currentTarget.value, value, displayValue),
|
|
155
|
+
parsedValue = _this2$valueParser.parsedValue;
|
|
125
156
|
var roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;
|
|
126
|
-
if (Number.isNaN(
|
|
157
|
+
if (Number.isNaN(value) || Number.isNaN(Number.parseFloat(parsedValue))) {
|
|
127
158
|
event.currentTarget.value = '';
|
|
128
159
|
_this2.handlers.value('', event);
|
|
129
160
|
} else {
|
|
130
|
-
var numberValue = parseValueWithMinMax(Number.parseFloat(
|
|
161
|
+
var numberValue = parseValueWithMinMax(Number.parseFloat(parsedValue), min, max);
|
|
131
162
|
var rounded = _this2.round(numberValue % step, step);
|
|
132
163
|
if (rounded !== 0) {
|
|
133
164
|
if (rounded >= step / 2) {
|
|
@@ -141,13 +172,161 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
141
172
|
}
|
|
142
173
|
});
|
|
143
174
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "handleWheel", function (event) {
|
|
144
|
-
if (event.target !== _this2.
|
|
145
|
-
if (document.activeElement !== _this2.
|
|
175
|
+
if (event.target !== _this2.valueInputRef.current) return;
|
|
176
|
+
if (document.activeElement !== _this2.valueInputRef.current) return;
|
|
146
177
|
event.preventDefault();
|
|
147
178
|
if (event.wheelDelta > 0) {
|
|
148
|
-
_this2.
|
|
179
|
+
_this2.stepUp(event);
|
|
149
180
|
} else if (event.wheelDelta < 0) {
|
|
150
|
-
_this2.
|
|
181
|
+
_this2.stepDown(event);
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "handleChange", function (event) {
|
|
185
|
+
var value = event.currentTarget.value;
|
|
186
|
+
var digits = /[0-9,.-]+/.test(value);
|
|
187
|
+
if (digits || value === '') {
|
|
188
|
+
_this2.handlers.value(value, event);
|
|
189
|
+
}
|
|
190
|
+
return false;
|
|
191
|
+
});
|
|
192
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "handleKeyUp", function (event) {
|
|
193
|
+
if (event.key === 'Shift') {
|
|
194
|
+
_this2.cursorPosition = -1;
|
|
195
|
+
}
|
|
196
|
+
var element = event.currentTarget;
|
|
197
|
+
element.role = 'input';
|
|
198
|
+
});
|
|
199
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "handleKeyDown", function (event) {
|
|
200
|
+
var element = event.currentTarget;
|
|
201
|
+
var value = element.value;
|
|
202
|
+
var length = value.length;
|
|
203
|
+
|
|
204
|
+
// we need this dirty hack for screen readers, because they couldn't read full value in input after adding there ','.
|
|
205
|
+
// so, we change role to `region` here and back to `input` in handleKeyUp
|
|
206
|
+
element.role = 'region';
|
|
207
|
+
if (element.selectionStart !== length && (event.key === 'Backspace' || event.key === _this2.separatorDecimal || ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(event.key))) {
|
|
208
|
+
var afterSelection = value.slice(element.selectionEnd);
|
|
209
|
+
requestAnimationFrame(function () {
|
|
210
|
+
var newValue = _this2.state.displayValue;
|
|
211
|
+
var index = newValue.lastIndexOf(afterSelection);
|
|
212
|
+
var selectionStart = index;
|
|
213
|
+
var selectionEnd = index;
|
|
214
|
+
element.setSelectionRange(selectionStart, selectionEnd);
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// For correct moving cursor with skip separatorThousands.
|
|
219
|
+
// Examples:
|
|
220
|
+
// - Press ArrowLeft: `12,3|4 -> 12|,34`
|
|
221
|
+
// - Press ArrowRight: `1|,55 -> 1,5|5`
|
|
222
|
+
var cursorIndex = 2;
|
|
223
|
+
if (event.shiftKey && _this2.cursorPosition === -1) {
|
|
224
|
+
_this2.cursorPosition = element.selectionStart;
|
|
225
|
+
}
|
|
226
|
+
switch (event.key) {
|
|
227
|
+
case 'ArrowLeft':
|
|
228
|
+
{
|
|
229
|
+
event.preventDefault();
|
|
230
|
+
_this2.moveSelectionLeft(element, cursorIndex);
|
|
231
|
+
break;
|
|
232
|
+
}
|
|
233
|
+
case 'ArrowRight':
|
|
234
|
+
{
|
|
235
|
+
event.preventDefault();
|
|
236
|
+
_this2.moveSelectionRight(element, cursorIndex);
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
case 'ArrowDown':
|
|
240
|
+
{
|
|
241
|
+
event.preventDefault();
|
|
242
|
+
_this2.stepDown(event);
|
|
243
|
+
break;
|
|
244
|
+
}
|
|
245
|
+
case 'ArrowUp':
|
|
246
|
+
{
|
|
247
|
+
event.preventDefault();
|
|
248
|
+
_this2.stepUp(event);
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "moveSelectionLeft", function (element, cursorIndex) {
|
|
254
|
+
var value = element.value;
|
|
255
|
+
var nextPosition = element.selectionStart - 1 >= 0 ? element.selectionStart - 1 : 0;
|
|
256
|
+
var cursorPosition = value[element.selectionStart - cursorIndex] === _this2.separatorThousands ? element.selectionStart - cursorIndex : nextPosition;
|
|
257
|
+
if (_this2.cursorPosition === -1) {
|
|
258
|
+
// without shift
|
|
259
|
+
element.setSelectionRange(cursorPosition, cursorPosition);
|
|
260
|
+
} else {
|
|
261
|
+
if (element.selectionStart <= _this2.cursorPosition && element.selectionEnd === _this2.cursorPosition) {
|
|
262
|
+
element.setSelectionRange(cursorPosition, element.selectionEnd);
|
|
263
|
+
} else {
|
|
264
|
+
element.setSelectionRange(element.selectionStart, value[element.selectionEnd - cursorIndex] === _this2.separatorThousands ? element.selectionEnd - cursorIndex : element.selectionEnd - 1);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "moveSelectionRight", function (element, cursorIndex) {
|
|
269
|
+
var value = element.value;
|
|
270
|
+
var nextPosition = element.selectionEnd + 1;
|
|
271
|
+
var cursorPosition = value[element.selectionEnd] === _this2.separatorThousands ? element.selectionEnd + cursorIndex : nextPosition;
|
|
272
|
+
if (_this2.cursorPosition === -1) {
|
|
273
|
+
// without shift
|
|
274
|
+
element.setSelectionRange(cursorPosition, cursorPosition);
|
|
275
|
+
} else {
|
|
276
|
+
if (element.selectionEnd >= _this2.cursorPosition && element.selectionStart === _this2.cursorPosition) {
|
|
277
|
+
element.setSelectionRange(element.selectionStart, cursorPosition);
|
|
278
|
+
} else {
|
|
279
|
+
element.setSelectionRange(value[element.selectionStart] === _this2.separatorThousands ? element.selectionStart + cursorIndex : element.selectionStart + 1, element.selectionEnd);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "handleClick", function (event) {
|
|
284
|
+
var element = event.target;
|
|
285
|
+
var value = element.value;
|
|
286
|
+
if (value[element.selectionStart - 1] === _this2.separatorThousands) {
|
|
287
|
+
element.setSelectionRange(element.selectionStart - 1, element.selectionEnd - 1);
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "handleBlur", function (event) {
|
|
291
|
+
_this2.cursorPosition = -1;
|
|
292
|
+
_this2.handleValidation(event);
|
|
293
|
+
});
|
|
294
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "stepUp", function (event) {
|
|
295
|
+
var _this2$asProps2 = _this2.asProps,
|
|
296
|
+
_this2$asProps2$max = _this2$asProps2.max,
|
|
297
|
+
max = _this2$asProps2$max === void 0 ? Number.MAX_SAFE_INTEGER : _this2$asProps2$max,
|
|
298
|
+
min = _this2$asProps2.min,
|
|
299
|
+
step = _this2$asProps2.step,
|
|
300
|
+
value = _this2$asProps2.value;
|
|
301
|
+
var numberValue;
|
|
302
|
+
|
|
303
|
+
// https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value
|
|
304
|
+
if (value === '') {
|
|
305
|
+
numberValue = min !== null && min !== void 0 ? min : 0;
|
|
306
|
+
} else {
|
|
307
|
+
numberValue = Number.parseFloat(value);
|
|
308
|
+
}
|
|
309
|
+
if (!Number.isNaN(numberValue)) {
|
|
310
|
+
var newValue = numberValue + step <= max ? numberValue + step : max;
|
|
311
|
+
_this2.handlers.value(newValue.toString(), event);
|
|
312
|
+
}
|
|
313
|
+
});
|
|
314
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "stepDown", function (event) {
|
|
315
|
+
var _this2$asProps3 = _this2.asProps,
|
|
316
|
+
max = _this2$asProps3.max,
|
|
317
|
+
_this2$asProps3$min = _this2$asProps3.min,
|
|
318
|
+
min = _this2$asProps3$min === void 0 ? Number.MIN_SAFE_INTEGER : _this2$asProps3$min,
|
|
319
|
+
step = _this2$asProps3.step,
|
|
320
|
+
value = _this2$asProps3.value;
|
|
321
|
+
var numberValue;
|
|
322
|
+
if (value === '') {
|
|
323
|
+
numberValue = max !== null && max !== void 0 ? max : 0;
|
|
324
|
+
} else {
|
|
325
|
+
numberValue = Number.parseFloat(value);
|
|
326
|
+
}
|
|
327
|
+
if (!Number.isNaN(numberValue)) {
|
|
328
|
+
var newValue = numberValue - step >= min ? numberValue - step : min;
|
|
329
|
+
_this2.handlers.value(newValue.toString(), event);
|
|
151
330
|
}
|
|
152
331
|
});
|
|
153
332
|
return _this2;
|
|
@@ -155,10 +334,38 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
155
334
|
(0, _createClass2["default"])(Value, [{
|
|
156
335
|
key: "uncontrolledProps",
|
|
157
336
|
value: function uncontrolledProps() {
|
|
337
|
+
var _this3 = this;
|
|
158
338
|
return {
|
|
159
|
-
|
|
339
|
+
displayValue: null,
|
|
340
|
+
value: [null, function (newValue) {
|
|
341
|
+
var _this3$asProps = _this3.asProps,
|
|
342
|
+
prevValue = _this3$asProps.value,
|
|
343
|
+
prevDisplayValue = _this3$asProps.displayValue;
|
|
344
|
+
if (newValue === '-') {
|
|
345
|
+
_this3.handlers.displayValue(newValue);
|
|
346
|
+
return newValue;
|
|
347
|
+
} else {
|
|
348
|
+
var _this3$valueParser = _this3.valueParser(newValue, prevValue, prevDisplayValue),
|
|
349
|
+
parsedValue = _this3$valueParser.parsedValue,
|
|
350
|
+
displayValue = _this3$valueParser.displayValue;
|
|
351
|
+
_this3.handlers.displayValue(displayValue);
|
|
352
|
+
return parsedValue;
|
|
353
|
+
}
|
|
354
|
+
}]
|
|
160
355
|
};
|
|
161
356
|
}
|
|
357
|
+
}, {
|
|
358
|
+
key: "separatorDecimal",
|
|
359
|
+
get: function get() {
|
|
360
|
+
var numberFormatter = this.props.numberFormatter;
|
|
361
|
+
return numberFormatter.format(11.11).replace(/\d/g, '');
|
|
362
|
+
}
|
|
363
|
+
}, {
|
|
364
|
+
key: "separatorThousands",
|
|
365
|
+
get: function get() {
|
|
366
|
+
var numberFormatter = this.props.numberFormatter;
|
|
367
|
+
return numberFormatter.format(1111).replace(/\d/g, '');
|
|
368
|
+
}
|
|
162
369
|
}, {
|
|
163
370
|
key: "round",
|
|
164
371
|
value: function round(value, step) {
|
|
@@ -170,14 +377,26 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
170
377
|
value:
|
|
171
378
|
// https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling
|
|
172
379
|
function componentDidMount() {
|
|
173
|
-
var _this$
|
|
174
|
-
(_this$
|
|
380
|
+
var _this$valueInputRef$c;
|
|
381
|
+
(_this$valueInputRef$c = this.valueInputRef.current) === null || _this$valueInputRef$c === void 0 ? void 0 : _this$valueInputRef$c.addEventListener('wheel', this.handleWheel);
|
|
382
|
+
var _this$asProps2 = this.asProps,
|
|
383
|
+
inputRef = _this$asProps2.inputRef,
|
|
384
|
+
value = _this$asProps2.value;
|
|
385
|
+
if (inputRef.current) {
|
|
386
|
+
inputRef.current.stepUp = this.stepUp;
|
|
387
|
+
inputRef.current.stepDown = this.stepDown;
|
|
388
|
+
}
|
|
389
|
+
if (value !== '') {
|
|
390
|
+
var _this$valueParser = this.valueParser(value, '', ''),
|
|
391
|
+
displayValue = _this$valueParser.displayValue;
|
|
392
|
+
this.handlers.displayValue(displayValue);
|
|
393
|
+
}
|
|
175
394
|
}
|
|
176
395
|
}, {
|
|
177
396
|
key: "componentWillUnmount",
|
|
178
397
|
value: function componentWillUnmount() {
|
|
179
|
-
var _this$
|
|
180
|
-
(_this$
|
|
398
|
+
var _this$valueInputRef$c2;
|
|
399
|
+
(_this$valueInputRef$c2 = this.valueInputRef.current) === null || _this$valueInputRef$c2 === void 0 ? void 0 : _this$valueInputRef$c2.removeEventListener('wheel', this.handleWheel);
|
|
181
400
|
}
|
|
182
401
|
}, {
|
|
183
402
|
key: "render",
|
|
@@ -186,22 +405,30 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
186
405
|
_ref5;
|
|
187
406
|
var SValue = _input["default"].Value;
|
|
188
407
|
var SValueHidden = 'div';
|
|
189
|
-
var _this$
|
|
190
|
-
styles = _this$
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
408
|
+
var _this$asProps3 = this.asProps,
|
|
409
|
+
styles = _this$asProps3.styles,
|
|
410
|
+
min = _this$asProps3.min,
|
|
411
|
+
max = _this$asProps3.max,
|
|
412
|
+
step = _this$asProps3.step,
|
|
413
|
+
forwardRef = _this$asProps3.forwardRef,
|
|
414
|
+
inputRef = _this$asProps3.inputRef,
|
|
415
|
+
value = _this$asProps3.value,
|
|
416
|
+
displayValue = _this$asProps3.displayValue;
|
|
196
417
|
return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(SValue, _ref5.cn("SValue", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
|
|
197
|
-
"type": 'number',
|
|
198
418
|
"autoComplete": 'off',
|
|
199
419
|
"onBlur": this.handleValidation,
|
|
200
|
-
"
|
|
201
|
-
"
|
|
202
|
-
"
|
|
420
|
+
"use:onChange": this.handleChange,
|
|
421
|
+
"onKeyDown": this.handleKeyDown,
|
|
422
|
+
"onKeyUp": this.handleKeyUp,
|
|
423
|
+
"onClick": this.handleClick,
|
|
424
|
+
"use:ref": (0, _ref7.forkRef)(this.valueInputRef, inputRef, forwardRef),
|
|
425
|
+
"use:value": displayValue,
|
|
426
|
+
"inputMode": 'decimal',
|
|
203
427
|
"aria-valuemin": min,
|
|
204
|
-
"aria-valuemax": max
|
|
428
|
+
"aria-valuemax": max,
|
|
429
|
+
"min": min,
|
|
430
|
+
"max": max,
|
|
431
|
+
"step": step
|
|
205
432
|
}, _ref2)))), /*#__PURE__*/_react["default"].createElement(SValueHidden, _ref5.cn("SValueHidden", {
|
|
206
433
|
"aria-live": 'polite',
|
|
207
434
|
"aria-atomic": true
|
|
@@ -212,6 +439,7 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
212
439
|
}(_core.Component);
|
|
213
440
|
(0, _defineProperty2["default"])(Value, "defaultProps", {
|
|
214
441
|
defaultValue: '',
|
|
442
|
+
defaultDisplayValue: '',
|
|
215
443
|
step: 1
|
|
216
444
|
});
|
|
217
445
|
function Controls(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputNumber.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_input","_buttons","_intergalacticDynamicLocales","_i18nEnhance","style","sstyled","insert","parseValueWithMinMax","value","min","arguments","length","undefined","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","InputNumber","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","React","createRef","event","_this$inputRef$curren","_this$inputRef$curren2","_this$inputRef$curren3","_this$inputHandlersRe","inputRef","current","stepUp","inputHandlersRef","_this$inputRef$curren4","_this$inputRef$curren5","_this$inputRef$curren6","_this$inputHandlersRe2","stepDown","_createClass2","key","getValueProps","ref","inputHandlerRefs","increment","decrement","getControlsProps","_this$asProps","asProps","size","getI18nText","render","_ref","_ref4","SInputNumber","Input","createElement","cn","_objectSpread2","assignProps","Component","i18nEnhance","localizedMessages","i18n","locale","Value","_Component2","_super2","_this2","_len2","_key2","_this2$asProps","step","roundCoefficient","toString","split","isNaN","currentTarget","valueAsNumber","handlers","numberValue","parseFloat","rounded","round","abs","numberValueRounded","toFixed","String","target","document","activeElement","preventDefault","wheelDelta","uncontrolledProps","countDecimals","floor","toPrecision","componentDidMount","_this$inputRef$curren7","addEventListener","handleWheel","componentWillUnmount","_this$inputRef$curren8","removeEventListener","_ref2","_ref5","SValue","SValueHidden","_this$asProps2","styles","Fragment","handleValidation","defaultValue","Controls","props","_ref3","arguments[0]","_ref6","Children","SControls","Addon","SUp","SDown","IncrementIcon","DecrementIcon","_default","createComponent","exports"],"sources":["../../src/InputNumber.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { IncrementIcon, DecrementIcon } from './buttons';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\n\nimport style from './style/input-number.shadow.css';\n\nexport function parseValueWithMinMax(\n value,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n) {\n return Math.max(min, Math.min(max, value));\n}\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n size: 'm',\n i18n: localizedMessages,\n locale: 'en',\n };\n\n inputRef = React.createRef();\n inputHandlersRef = React.createRef();\n\n increment = (event) => {\n // https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value\n if (this.inputRef.current?.value === '')\n this.inputRef.current.value = this.inputRef.current.min || '0';\n this.inputRef.current?.stepUp?.();\n this.inputHandlersRef.current?.value(this.inputRef.current.value, event);\n };\n\n decrement = (event) => {\n if (this.inputRef.current?.value === '')\n this.inputRef.current.value = this.inputRef.current.max || '0';\n this.inputRef.current?.stepDown?.();\n this.inputHandlersRef.current?.value(this.inputRef.current.value, event);\n };\n\n getValueProps() {\n return {\n ref: this.inputRef,\n inputHandlerRefs: this.inputHandlersRef,\n increment: this.increment,\n decrement: this.decrement,\n };\n }\n\n getControlsProps() {\n const { size, getI18nText } = this.asProps;\n return {\n size,\n increment: this.increment,\n decrement: this.decrement,\n getI18nText,\n };\n }\n\n render() {\n const SInputNumber = Root;\n return sstyled(this.asProps.style)(<SInputNumber render={Input} />);\n }\n}\n\nclass Value extends Component {\n static defaultProps = {\n defaultValue: '',\n step: 1,\n };\n\n inputRef = React.createRef();\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n round(value, step) {\n const countDecimals = Math.floor(step) === step ? 0 : step.toString().split('.')[1].length || 0;\n return countDecimals === 0\n ? Number.parseFloat(value)\n : Number.parseFloat(value).toPrecision(countDecimals);\n }\n\n handleValidation = (event) => {\n const { value, min, max, step } = this.asProps;\n const roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;\n if (Number.isNaN(event.currentTarget.valueAsNumber)) {\n event.currentTarget.value = '';\n this.handlers.value('', event);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(value), min, max);\n const rounded = this.round(numberValue % step, step);\n if (rounded !== 0) {\n if (rounded >= step / 2) {\n numberValue += step - rounded;\n } else if (Math.abs(rounded) < step) {\n numberValue -= rounded;\n }\n }\n const numberValueRounded = Number(numberValue.toFixed(roundCoefficient));\n this.handlers.value(String(numberValueRounded), event);\n }\n };\n\n // https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling\n componentDidMount() {\n this.inputRef.current?.addEventListener('wheel', this.handleWheel);\n }\n componentWillUnmount() {\n this.inputRef.current?.removeEventListener('wheel', this.handleWheel);\n }\n\n handleWheel = (event) => {\n if (event.target !== this.inputRef.current) return;\n if (document.activeElement !== this.inputRef.current) return;\n event.preventDefault();\n if (event.wheelDelta > 0) {\n this.asProps.increment(event);\n } else if (event.wheelDelta < 0) {\n this.asProps.decrement(event);\n }\n };\n\n render() {\n const SValue = Root;\n const SValueHidden = 'div';\n const { styles, inputHandlerRefs, value, min, max } = this.asProps;\n\n inputHandlerRefs.current = this.handlers;\n\n return sstyled(styles)(\n <>\n <SValue\n render={Input.Value}\n type='number'\n autoComplete='off'\n onBlur={this.handleValidation}\n onInvalid={this.handleValidation}\n ref={this.inputRef}\n aria-valuenow={value}\n aria-valuemin={min}\n aria-valuemax={max}\n />\n {/* the next hidden div is necessary for the screen reader to report the value\n in the input, because after validation the value can change to the `min` or `max` \n if entered less than `min` or more than `max` */}\n <SValueHidden aria-live='polite' aria-atomic={true}>\n {value}\n </SValueHidden>\n </>,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, increment, decrement, size, styles, getI18nText } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon} aria-hidden='true'>\n <SUp\n onClick={increment}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('increment')}\n >\n <IncrementIcon />\n </SUp>\n <SDown\n onClick={decrement}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('decrement')}\n >\n <DecrementIcon />\n </SDown>\n <Children />\n </SControls>,\n );\n}\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InputNumber.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_input","_buttons","_intergalacticDynamicLocales","_i18nEnhance","_ref7","style","sstyled","insert","parseValueWithMinMax","value","min","arguments","length","undefined","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","InputNumber","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","React","createRef","event","_this$inputRef$curren","_this$inputRef$curren2","inputRef","current","stepUp","_this$inputRef$curren3","_this$inputRef$curren4","stepDown","_createClass2","key","getValueProps","numberFormatter","Intl","NumberFormat","asProps","locale","increment","decrement","getControlsProps","_this$asProps","size","getI18nText","render","_ref","_ref4","SInputNumber","Input","createElement","cn","_objectSpread2","assignProps","Component","i18nEnhance","localizedMessages","i18n","Value","_Component2","_super2","_this2","_len2","_key2","prevValue","prevDisplayValue","props","stringNumber","replace","RegExp","separatorThousands","separatorDecimal","isNaN","slice","includes","parsedValue","displayValue","format","_this2$asProps","step","_this2$valueParser","valueParser","currentTarget","roundCoefficient","toString","split","parseFloat","handlers","numberValue","rounded","round","abs","numberValueRounded","toFixed","String","target","valueInputRef","document","activeElement","preventDefault","wheelDelta","digits","test","cursorPosition","element","role","selectionStart","afterSelection","selectionEnd","requestAnimationFrame","newValue","state","index","lastIndexOf","setSelectionRange","cursorIndex","shiftKey","moveSelectionLeft","moveSelectionRight","nextPosition","handleValidation","_this2$asProps2","_this2$asProps2$max","_this2$asProps3","_this2$asProps3$min","uncontrolledProps","_this3","_this3$asProps","_this3$valueParser","get","countDecimals","floor","toPrecision","componentDidMount","_this$valueInputRef$c","addEventListener","handleWheel","_this$asProps2","_this$valueParser","componentWillUnmount","_this$valueInputRef$c2","removeEventListener","_ref2","_ref5","SValue","SValueHidden","_this$asProps3","styles","forwardRef","Fragment","handleChange","handleKeyDown","handleKeyUp","handleClick","forkRef","defaultValue","defaultDisplayValue","Controls","_ref3","arguments[0]","_ref6","Children","SControls","Addon","SUp","SDown","IncrementIcon","DecrementIcon","_default","createComponent","exports"],"sources":["../../src/InputNumber.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { IncrementIcon, DecrementIcon } from './buttons';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\n\nimport style from './style/input-number.shadow.css';\nimport { forkRef } from '@semcore/utils/lib/ref';\n\nexport function parseValueWithMinMax(\n value,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n) {\n return Math.max(min, Math.min(max, value));\n}\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n size: 'm',\n i18n: localizedMessages,\n locale: 'en',\n };\n\n inputRef = React.createRef();\n\n increment = (event) => {\n this.inputRef.current?.stepUp?.(event);\n };\n\n decrement = (event) => {\n this.inputRef.current?.stepDown?.(event);\n };\n\n getValueProps() {\n const numberFormatter = new Intl.NumberFormat(this.asProps.locale, { style: 'decimal' });\n\n return {\n inputRef: this.inputRef,\n increment: this.increment,\n decrement: this.decrement,\n numberFormatter,\n };\n }\n\n getControlsProps() {\n const { size, getI18nText } = this.asProps;\n return {\n size,\n increment: this.increment,\n decrement: this.decrement,\n getI18nText,\n };\n }\n\n render() {\n const SInputNumber = Root;\n return sstyled(this.asProps.style)(<SInputNumber render={Input} />);\n }\n}\n\nclass Value extends Component {\n static defaultProps = {\n defaultValue: '',\n defaultDisplayValue: '',\n step: 1,\n };\n\n valueInputRef = React.createRef();\n\n cursorPosition = -1;\n\n uncontrolledProps() {\n return {\n displayValue: null,\n value: [\n null,\n (newValue) => {\n const { value: prevValue, displayValue: prevDisplayValue } = this.asProps;\n\n if (newValue === '-') {\n this.handlers.displayValue(newValue);\n\n return newValue;\n } else {\n const { parsedValue, displayValue } = this.valueParser(\n newValue,\n prevValue,\n prevDisplayValue,\n );\n\n this.handlers.displayValue(displayValue);\n\n return parsedValue;\n }\n },\n ],\n };\n }\n\n get separatorDecimal() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(11.11).replace(/\\d/g, '');\n }\n\n get separatorThousands() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(1111).replace(/\\d/g, '');\n }\n\n valueParser = (value, prevValue, prevDisplayValue) => {\n const { numberFormatter } = this.props;\n\n const stringNumber = value\n .replace(new RegExp(`[${this.separatorThousands}]`, 'g'), '')\n .replace(this.separatorDecimal, '.');\n\n if (\n stringNumber[stringNumber.length - 1] === '.' &&\n !Number.isNaN(Number(prevValue)) &&\n !stringNumber.slice(0, -1).includes('.')\n ) {\n if (value.length > prevValue.length) {\n // type new value\n return {\n parsedValue: prevValue + this.separatorDecimal,\n displayValue: numberFormatter.format(prevValue) + this.separatorDecimal,\n };\n } else {\n // backspace value\n return {\n parsedValue: stringNumber,\n displayValue: value,\n };\n }\n }\n\n if (Number.isNaN(Number(stringNumber))) {\n return {\n parsedValue: prevValue,\n displayValue: prevDisplayValue,\n };\n }\n\n return {\n parsedValue: stringNumber,\n displayValue: stringNumber === '' ? '' : numberFormatter.format(stringNumber),\n };\n };\n\n round(value, step) {\n const countDecimals = Math.floor(step) === step ? 0 : step.toString().split('.')[1].length || 0;\n return countDecimals === 0\n ? Number.parseFloat(value)\n : Number.parseFloat(value).toPrecision(countDecimals);\n }\n\n handleValidation = (event) => {\n const { value, displayValue, min, max, step } = this.asProps;\n const { parsedValue } = this.valueParser(event.currentTarget.value, value, displayValue);\n const roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;\n\n if (Number.isNaN(value) || Number.isNaN(Number.parseFloat(parsedValue))) {\n event.currentTarget.value = '';\n this.handlers.value('', event);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(parsedValue), min, max);\n const rounded = this.round(numberValue % step, step);\n if (rounded !== 0) {\n if (rounded >= step / 2) {\n numberValue += step - rounded;\n } else if (Math.abs(rounded) < step) {\n numberValue -= rounded;\n }\n }\n const numberValueRounded = Number(numberValue.toFixed(roundCoefficient));\n\n this.handlers.value(String(numberValueRounded), event);\n }\n };\n\n // https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling\n componentDidMount() {\n this.valueInputRef.current?.addEventListener('wheel', this.handleWheel);\n\n const { inputRef, value } = this.asProps;\n\n if (inputRef.current) {\n inputRef.current.stepUp = this.stepUp;\n inputRef.current.stepDown = this.stepDown;\n }\n\n if (value !== '') {\n const { displayValue } = this.valueParser(value, '', '');\n this.handlers.displayValue(displayValue);\n }\n }\n componentWillUnmount() {\n this.valueInputRef.current?.removeEventListener('wheel', this.handleWheel);\n }\n\n handleWheel = (event) => {\n if (event.target !== this.valueInputRef.current) return;\n if (document.activeElement !== this.valueInputRef.current) return;\n event.preventDefault();\n if (event.wheelDelta > 0) {\n this.stepUp(event);\n } else if (event.wheelDelta < 0) {\n this.stepDown(event);\n }\n };\n\n handleChange = (event) => {\n const value = event.currentTarget.value;\n const digits = /[0-9,.-]+/.test(value);\n\n if (digits || value === '') {\n this.handlers.value(value, event);\n }\n\n return false;\n };\n\n handleKeyUp = (event) => {\n if (event.key === 'Shift') {\n this.cursorPosition = -1;\n }\n\n const element = event.currentTarget;\n\n element.role = 'input';\n };\n\n handleKeyDown = (event) => {\n const element = event.currentTarget;\n const value = element.value;\n const length = value.length;\n\n // we need this dirty hack for screen readers, because they couldn't read full value in input after adding there ','.\n // so, we change role to `region` here and back to `input` in handleKeyUp\n element.role = 'region';\n\n if (\n element.selectionStart !== length &&\n (event.key === 'Backspace' ||\n event.key === this.separatorDecimal ||\n ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(event.key))\n ) {\n const afterSelection = value.slice(element.selectionEnd);\n\n requestAnimationFrame(() => {\n const newValue = this.state.displayValue;\n const index = newValue.lastIndexOf(afterSelection);\n const selectionStart = index;\n const selectionEnd = index;\n\n element.setSelectionRange(selectionStart, selectionEnd);\n });\n }\n\n // For correct moving cursor with skip separatorThousands.\n // Examples:\n // - Press ArrowLeft: `12,3|4 -> 12|,34`\n // - Press ArrowRight: `1|,55 -> 1,5|5`\n const cursorIndex = 2;\n\n if (event.shiftKey && this.cursorPosition === -1) {\n this.cursorPosition = element.selectionStart;\n }\n\n switch (event.key) {\n case 'ArrowLeft': {\n event.preventDefault();\n this.moveSelectionLeft(element, cursorIndex);\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n this.moveSelectionRight(element, cursorIndex);\n break;\n }\n case 'ArrowDown': {\n event.preventDefault();\n this.stepDown(event);\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.stepUp(event);\n break;\n }\n }\n };\n\n moveSelectionLeft = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionStart - 1 >= 0 ? element.selectionStart - 1 : 0;\n\n const cursorPosition =\n value[element.selectionStart - cursorIndex] === this.separatorThousands\n ? element.selectionStart - cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionStart <= this.cursorPosition &&\n element.selectionEnd === this.cursorPosition\n ) {\n element.setSelectionRange(cursorPosition, element.selectionEnd);\n } else {\n element.setSelectionRange(\n element.selectionStart,\n value[element.selectionEnd - cursorIndex] === this.separatorThousands\n ? element.selectionEnd - cursorIndex\n : element.selectionEnd - 1,\n );\n }\n }\n };\n\n moveSelectionRight = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionEnd + 1;\n\n const cursorPosition =\n value[element.selectionEnd] === this.separatorThousands\n ? element.selectionEnd + cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionEnd >= this.cursorPosition &&\n element.selectionStart === this.cursorPosition\n ) {\n element.setSelectionRange(element.selectionStart, cursorPosition);\n } else {\n element.setSelectionRange(\n value[element.selectionStart] === this.separatorThousands\n ? element.selectionStart + cursorIndex\n : element.selectionStart + 1,\n element.selectionEnd,\n );\n }\n }\n };\n\n handleClick = (event) => {\n const element = event.target;\n const value = element.value;\n\n if (value[element.selectionStart - 1] === this.separatorThousands) {\n element.setSelectionRange(element.selectionStart - 1, element.selectionEnd - 1);\n }\n };\n\n handleBlur = (event) => {\n this.cursorPosition = -1;\n this.handleValidation(event);\n };\n\n stepUp = (event) => {\n const { max = Number.MAX_SAFE_INTEGER, min, step, value } = this.asProps;\n\n let numberValue;\n\n // https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value\n if (value === '') {\n numberValue = min ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue + step <= max ? numberValue + step : max;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n stepDown = (event) => {\n const { max, min = Number.MIN_SAFE_INTEGER, step, value } = this.asProps;\n\n let numberValue;\n\n if (value === '') {\n numberValue = max ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue - step >= min ? numberValue - step : min;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n render() {\n const SValue = Root;\n const SValueHidden = 'div';\n const { styles, min, max, step, forwardRef, inputRef, value, displayValue } = this.asProps;\n\n return sstyled(styles)(\n <>\n <SValue\n render={Input.Value}\n autoComplete='off'\n onBlur={this.handleValidation}\n use:onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onKeyUp={this.handleKeyUp}\n onClick={this.handleClick}\n use:ref={forkRef(this.valueInputRef, inputRef, forwardRef)}\n use:value={displayValue}\n inputMode='decimal'\n aria-valuemin={min}\n aria-valuemax={max}\n min={min}\n max={max}\n step={step}\n />\n {/* the next hidden div is necessary for the screen reader to report the value\n in the input, because after validation the value can change to the `min` or `max`\n if entered less than `min` or more than `max` */}\n <SValueHidden aria-live='polite' aria-atomic={true}>\n {value}\n </SValueHidden>\n </>,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, increment, decrement, size, styles, getI18nText } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon} aria-hidden='true'>\n <SUp\n onClick={increment}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('increment')}\n >\n <IncrementIcon />\n </SUp>\n <SDown\n onClick={decrement}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('decrement')}\n >\n <DecrementIcon />\n </SDown>\n <Children />\n </SControls>,\n );\n}\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"mappings":"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"}
|
package/lib/es6/InputNumber.js
CHANGED
|
@@ -16,16 +16,17 @@ import { IncrementIcon, DecrementIcon } from './buttons';
|
|
|
16
16
|
import { localizedMessages } from './translations/__intergalactic-dynamic-locales';
|
|
17
17
|
import i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';
|
|
18
18
|
/*__reshadow-styles__:"./style/input-number.shadow.css"*/
|
|
19
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
|
20
|
-
"__SValue": "
|
|
21
|
-
"__SControls": "
|
|
22
|
-
"_showControls": "
|
|
23
|
-
"__SUp": "
|
|
24
|
-
"__SDown": "
|
|
25
|
-
"_disabled": "
|
|
26
|
-
"__SValueHidden": "
|
|
27
|
-
"_type_number": "
|
|
19
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SValue_u6qn1_gg_:focus~.___SControls_u6qn1_gg_{display:flex}.___SControls_u6qn1_gg_{display:none;flex-flow:column;justify-content:center;height:100%;box-sizing:border-box}.___SControls_u6qn1_gg_.__showControls_u6qn1_gg_{display:flex}.___SDown_u6qn1_gg_,.___SUp_u6qn1_gg_{padding:0;width:16px;color:var(--intergalactic-icon-secondary-neutral, #a9abb6);box-sizing:border-box;display:inline-flex;justify-content:center;border:0;background:0 0;cursor:pointer}.___SDown_u6qn1_gg_:focus,.___SUp_u6qn1_gg_:focus{outline:0}@media (hover:hover){.___SDown_u6qn1_gg_:hover,.___SUp_u6qn1_gg_:hover{color:var(--intergalactic-icon-secondary-neutral-hover-active, #878992)}}.___SUp_u6qn1_gg_{padding-bottom:1px}.___SDown_u6qn1_gg_{padding-top:1px}.___SValue_u6qn1_gg_::-webkit-inner-spin-button,.___SValue_u6qn1_gg_::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.___SValue_u6qn1_gg_._type_number_u6qn1_gg_{-moz-appearance:textfield}.___SValue_u6qn1_gg_.__disabled_u6qn1_gg_~.___SControls_u6qn1_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SValueHidden_u6qn1_gg_{position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden}" /*__inner_css_end__*/, "u6qn1_gg_") /*__reshadow_css_end__*/, {
|
|
20
|
+
"__SValue": "___SValue_u6qn1_gg_",
|
|
21
|
+
"__SControls": "___SControls_u6qn1_gg_",
|
|
22
|
+
"_showControls": "__showControls_u6qn1_gg_",
|
|
23
|
+
"__SUp": "___SUp_u6qn1_gg_",
|
|
24
|
+
"__SDown": "___SDown_u6qn1_gg_",
|
|
25
|
+
"_disabled": "__disabled_u6qn1_gg_",
|
|
26
|
+
"__SValueHidden": "___SValueHidden_u6qn1_gg_",
|
|
27
|
+
"_type_number": "_type_number_u6qn1_gg_"
|
|
28
28
|
});
|
|
29
|
+
import { forkRef } from '@semcore/utils/lib/ref';
|
|
29
30
|
export function parseValueWithMinMax(value) {
|
|
30
31
|
var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MIN_SAFE_INTEGER;
|
|
31
32
|
var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.MAX_SAFE_INTEGER;
|
|
@@ -42,30 +43,27 @@ var InputNumber = /*#__PURE__*/function (_Component) {
|
|
|
42
43
|
}
|
|
43
44
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
44
45
|
_defineProperty(_assertThisInitialized(_this), "inputRef", /*#__PURE__*/React.createRef());
|
|
45
|
-
_defineProperty(_assertThisInitialized(_this), "inputHandlersRef", /*#__PURE__*/React.createRef());
|
|
46
46
|
_defineProperty(_assertThisInitialized(_this), "increment", function (event) {
|
|
47
|
-
var _this$inputRef$curren, _this$inputRef$curren2
|
|
48
|
-
|
|
49
|
-
if (((_this$inputRef$curren = _this.inputRef.current) === null || _this$inputRef$curren === void 0 ? void 0 : _this$inputRef$curren.value) === '') _this.inputRef.current.value = _this.inputRef.current.min || '0';
|
|
50
|
-
(_this$inputRef$curren2 = _this.inputRef.current) === null || _this$inputRef$curren2 === void 0 ? void 0 : (_this$inputRef$curren3 = _this$inputRef$curren2.stepUp) === null || _this$inputRef$curren3 === void 0 ? void 0 : _this$inputRef$curren3.call(_this$inputRef$curren2);
|
|
51
|
-
(_this$inputHandlersRe = _this.inputHandlersRef.current) === null || _this$inputHandlersRe === void 0 ? void 0 : _this$inputHandlersRe.value(_this.inputRef.current.value, event);
|
|
47
|
+
var _this$inputRef$curren, _this$inputRef$curren2;
|
|
48
|
+
(_this$inputRef$curren = _this.inputRef.current) === null || _this$inputRef$curren === void 0 ? void 0 : (_this$inputRef$curren2 = _this$inputRef$curren.stepUp) === null || _this$inputRef$curren2 === void 0 ? void 0 : _this$inputRef$curren2.call(_this$inputRef$curren, event);
|
|
52
49
|
});
|
|
53
50
|
_defineProperty(_assertThisInitialized(_this), "decrement", function (event) {
|
|
54
|
-
var _this$inputRef$
|
|
55
|
-
|
|
56
|
-
(_this$inputRef$curren5 = _this.inputRef.current) === null || _this$inputRef$curren5 === void 0 ? void 0 : (_this$inputRef$curren6 = _this$inputRef$curren5.stepDown) === null || _this$inputRef$curren6 === void 0 ? void 0 : _this$inputRef$curren6.call(_this$inputRef$curren5);
|
|
57
|
-
(_this$inputHandlersRe2 = _this.inputHandlersRef.current) === null || _this$inputHandlersRe2 === void 0 ? void 0 : _this$inputHandlersRe2.value(_this.inputRef.current.value, event);
|
|
51
|
+
var _this$inputRef$curren3, _this$inputRef$curren4;
|
|
52
|
+
(_this$inputRef$curren3 = _this.inputRef.current) === null || _this$inputRef$curren3 === void 0 ? void 0 : (_this$inputRef$curren4 = _this$inputRef$curren3.stepDown) === null || _this$inputRef$curren4 === void 0 ? void 0 : _this$inputRef$curren4.call(_this$inputRef$curren3, event);
|
|
58
53
|
});
|
|
59
54
|
return _this;
|
|
60
55
|
}
|
|
61
56
|
_createClass(InputNumber, [{
|
|
62
57
|
key: "getValueProps",
|
|
63
58
|
value: function getValueProps() {
|
|
59
|
+
var numberFormatter = new Intl.NumberFormat(this.asProps.locale, {
|
|
60
|
+
style: 'decimal'
|
|
61
|
+
});
|
|
64
62
|
return {
|
|
65
|
-
|
|
66
|
-
inputHandlerRefs: this.inputHandlersRef,
|
|
63
|
+
inputRef: this.inputRef,
|
|
67
64
|
increment: this.increment,
|
|
68
|
-
decrement: this.decrement
|
|
65
|
+
decrement: this.decrement,
|
|
66
|
+
numberFormatter: numberFormatter
|
|
69
67
|
};
|
|
70
68
|
}
|
|
71
69
|
}, {
|
|
@@ -110,19 +108,52 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
110
108
|
args[_key2] = arguments[_key2];
|
|
111
109
|
}
|
|
112
110
|
_this2 = _super2.call.apply(_super2, [this].concat(args));
|
|
113
|
-
_defineProperty(_assertThisInitialized(_this2), "
|
|
111
|
+
_defineProperty(_assertThisInitialized(_this2), "valueInputRef", /*#__PURE__*/React.createRef());
|
|
112
|
+
_defineProperty(_assertThisInitialized(_this2), "cursorPosition", -1);
|
|
113
|
+
_defineProperty(_assertThisInitialized(_this2), "valueParser", function (value, prevValue, prevDisplayValue) {
|
|
114
|
+
var numberFormatter = _this2.props.numberFormatter;
|
|
115
|
+
var stringNumber = value.replace(new RegExp("[".concat(_this2.separatorThousands, "]"), 'g'), '').replace(_this2.separatorDecimal, '.');
|
|
116
|
+
if (stringNumber[stringNumber.length - 1] === '.' && !Number.isNaN(Number(prevValue)) && !stringNumber.slice(0, -1).includes('.')) {
|
|
117
|
+
if (value.length > prevValue.length) {
|
|
118
|
+
// type new value
|
|
119
|
+
return {
|
|
120
|
+
parsedValue: prevValue + _this2.separatorDecimal,
|
|
121
|
+
displayValue: numberFormatter.format(prevValue) + _this2.separatorDecimal
|
|
122
|
+
};
|
|
123
|
+
} else {
|
|
124
|
+
// backspace value
|
|
125
|
+
return {
|
|
126
|
+
parsedValue: stringNumber,
|
|
127
|
+
displayValue: value
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (Number.isNaN(Number(stringNumber))) {
|
|
132
|
+
return {
|
|
133
|
+
parsedValue: prevValue,
|
|
134
|
+
displayValue: prevDisplayValue
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
parsedValue: stringNumber,
|
|
139
|
+
displayValue: stringNumber === '' ? '' : numberFormatter.format(stringNumber)
|
|
140
|
+
};
|
|
141
|
+
});
|
|
114
142
|
_defineProperty(_assertThisInitialized(_this2), "handleValidation", function (event) {
|
|
115
143
|
var _this2$asProps = _this2.asProps,
|
|
116
144
|
value = _this2$asProps.value,
|
|
145
|
+
displayValue = _this2$asProps.displayValue,
|
|
117
146
|
min = _this2$asProps.min,
|
|
118
147
|
max = _this2$asProps.max,
|
|
119
148
|
step = _this2$asProps.step;
|
|
149
|
+
var _this2$valueParser = _this2.valueParser(event.currentTarget.value, value, displayValue),
|
|
150
|
+
parsedValue = _this2$valueParser.parsedValue;
|
|
120
151
|
var roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;
|
|
121
|
-
if (Number.isNaN(
|
|
152
|
+
if (Number.isNaN(value) || Number.isNaN(Number.parseFloat(parsedValue))) {
|
|
122
153
|
event.currentTarget.value = '';
|
|
123
154
|
_this2.handlers.value('', event);
|
|
124
155
|
} else {
|
|
125
|
-
var numberValue = parseValueWithMinMax(Number.parseFloat(
|
|
156
|
+
var numberValue = parseValueWithMinMax(Number.parseFloat(parsedValue), min, max);
|
|
126
157
|
var rounded = _this2.round(numberValue % step, step);
|
|
127
158
|
if (rounded !== 0) {
|
|
128
159
|
if (rounded >= step / 2) {
|
|
@@ -136,13 +167,161 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
136
167
|
}
|
|
137
168
|
});
|
|
138
169
|
_defineProperty(_assertThisInitialized(_this2), "handleWheel", function (event) {
|
|
139
|
-
if (event.target !== _this2.
|
|
140
|
-
if (document.activeElement !== _this2.
|
|
170
|
+
if (event.target !== _this2.valueInputRef.current) return;
|
|
171
|
+
if (document.activeElement !== _this2.valueInputRef.current) return;
|
|
141
172
|
event.preventDefault();
|
|
142
173
|
if (event.wheelDelta > 0) {
|
|
143
|
-
_this2.
|
|
174
|
+
_this2.stepUp(event);
|
|
144
175
|
} else if (event.wheelDelta < 0) {
|
|
145
|
-
_this2.
|
|
176
|
+
_this2.stepDown(event);
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
_defineProperty(_assertThisInitialized(_this2), "handleChange", function (event) {
|
|
180
|
+
var value = event.currentTarget.value;
|
|
181
|
+
var digits = /[0-9,.-]+/.test(value);
|
|
182
|
+
if (digits || value === '') {
|
|
183
|
+
_this2.handlers.value(value, event);
|
|
184
|
+
}
|
|
185
|
+
return false;
|
|
186
|
+
});
|
|
187
|
+
_defineProperty(_assertThisInitialized(_this2), "handleKeyUp", function (event) {
|
|
188
|
+
if (event.key === 'Shift') {
|
|
189
|
+
_this2.cursorPosition = -1;
|
|
190
|
+
}
|
|
191
|
+
var element = event.currentTarget;
|
|
192
|
+
element.role = 'input';
|
|
193
|
+
});
|
|
194
|
+
_defineProperty(_assertThisInitialized(_this2), "handleKeyDown", function (event) {
|
|
195
|
+
var element = event.currentTarget;
|
|
196
|
+
var value = element.value;
|
|
197
|
+
var length = value.length;
|
|
198
|
+
|
|
199
|
+
// we need this dirty hack for screen readers, because they couldn't read full value in input after adding there ','.
|
|
200
|
+
// so, we change role to `region` here and back to `input` in handleKeyUp
|
|
201
|
+
element.role = 'region';
|
|
202
|
+
if (element.selectionStart !== length && (event.key === 'Backspace' || event.key === _this2.separatorDecimal || ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(event.key))) {
|
|
203
|
+
var afterSelection = value.slice(element.selectionEnd);
|
|
204
|
+
requestAnimationFrame(function () {
|
|
205
|
+
var newValue = _this2.state.displayValue;
|
|
206
|
+
var index = newValue.lastIndexOf(afterSelection);
|
|
207
|
+
var selectionStart = index;
|
|
208
|
+
var selectionEnd = index;
|
|
209
|
+
element.setSelectionRange(selectionStart, selectionEnd);
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// For correct moving cursor with skip separatorThousands.
|
|
214
|
+
// Examples:
|
|
215
|
+
// - Press ArrowLeft: `12,3|4 -> 12|,34`
|
|
216
|
+
// - Press ArrowRight: `1|,55 -> 1,5|5`
|
|
217
|
+
var cursorIndex = 2;
|
|
218
|
+
if (event.shiftKey && _this2.cursorPosition === -1) {
|
|
219
|
+
_this2.cursorPosition = element.selectionStart;
|
|
220
|
+
}
|
|
221
|
+
switch (event.key) {
|
|
222
|
+
case 'ArrowLeft':
|
|
223
|
+
{
|
|
224
|
+
event.preventDefault();
|
|
225
|
+
_this2.moveSelectionLeft(element, cursorIndex);
|
|
226
|
+
break;
|
|
227
|
+
}
|
|
228
|
+
case 'ArrowRight':
|
|
229
|
+
{
|
|
230
|
+
event.preventDefault();
|
|
231
|
+
_this2.moveSelectionRight(element, cursorIndex);
|
|
232
|
+
break;
|
|
233
|
+
}
|
|
234
|
+
case 'ArrowDown':
|
|
235
|
+
{
|
|
236
|
+
event.preventDefault();
|
|
237
|
+
_this2.stepDown(event);
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
case 'ArrowUp':
|
|
241
|
+
{
|
|
242
|
+
event.preventDefault();
|
|
243
|
+
_this2.stepUp(event);
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
_defineProperty(_assertThisInitialized(_this2), "moveSelectionLeft", function (element, cursorIndex) {
|
|
249
|
+
var value = element.value;
|
|
250
|
+
var nextPosition = element.selectionStart - 1 >= 0 ? element.selectionStart - 1 : 0;
|
|
251
|
+
var cursorPosition = value[element.selectionStart - cursorIndex] === _this2.separatorThousands ? element.selectionStart - cursorIndex : nextPosition;
|
|
252
|
+
if (_this2.cursorPosition === -1) {
|
|
253
|
+
// without shift
|
|
254
|
+
element.setSelectionRange(cursorPosition, cursorPosition);
|
|
255
|
+
} else {
|
|
256
|
+
if (element.selectionStart <= _this2.cursorPosition && element.selectionEnd === _this2.cursorPosition) {
|
|
257
|
+
element.setSelectionRange(cursorPosition, element.selectionEnd);
|
|
258
|
+
} else {
|
|
259
|
+
element.setSelectionRange(element.selectionStart, value[element.selectionEnd - cursorIndex] === _this2.separatorThousands ? element.selectionEnd - cursorIndex : element.selectionEnd - 1);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
_defineProperty(_assertThisInitialized(_this2), "moveSelectionRight", function (element, cursorIndex) {
|
|
264
|
+
var value = element.value;
|
|
265
|
+
var nextPosition = element.selectionEnd + 1;
|
|
266
|
+
var cursorPosition = value[element.selectionEnd] === _this2.separatorThousands ? element.selectionEnd + cursorIndex : nextPosition;
|
|
267
|
+
if (_this2.cursorPosition === -1) {
|
|
268
|
+
// without shift
|
|
269
|
+
element.setSelectionRange(cursorPosition, cursorPosition);
|
|
270
|
+
} else {
|
|
271
|
+
if (element.selectionEnd >= _this2.cursorPosition && element.selectionStart === _this2.cursorPosition) {
|
|
272
|
+
element.setSelectionRange(element.selectionStart, cursorPosition);
|
|
273
|
+
} else {
|
|
274
|
+
element.setSelectionRange(value[element.selectionStart] === _this2.separatorThousands ? element.selectionStart + cursorIndex : element.selectionStart + 1, element.selectionEnd);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
_defineProperty(_assertThisInitialized(_this2), "handleClick", function (event) {
|
|
279
|
+
var element = event.target;
|
|
280
|
+
var value = element.value;
|
|
281
|
+
if (value[element.selectionStart - 1] === _this2.separatorThousands) {
|
|
282
|
+
element.setSelectionRange(element.selectionStart - 1, element.selectionEnd - 1);
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
_defineProperty(_assertThisInitialized(_this2), "handleBlur", function (event) {
|
|
286
|
+
_this2.cursorPosition = -1;
|
|
287
|
+
_this2.handleValidation(event);
|
|
288
|
+
});
|
|
289
|
+
_defineProperty(_assertThisInitialized(_this2), "stepUp", function (event) {
|
|
290
|
+
var _this2$asProps2 = _this2.asProps,
|
|
291
|
+
_this2$asProps2$max = _this2$asProps2.max,
|
|
292
|
+
max = _this2$asProps2$max === void 0 ? Number.MAX_SAFE_INTEGER : _this2$asProps2$max,
|
|
293
|
+
min = _this2$asProps2.min,
|
|
294
|
+
step = _this2$asProps2.step,
|
|
295
|
+
value = _this2$asProps2.value;
|
|
296
|
+
var numberValue;
|
|
297
|
+
|
|
298
|
+
// https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value
|
|
299
|
+
if (value === '') {
|
|
300
|
+
numberValue = min !== null && min !== void 0 ? min : 0;
|
|
301
|
+
} else {
|
|
302
|
+
numberValue = Number.parseFloat(value);
|
|
303
|
+
}
|
|
304
|
+
if (!Number.isNaN(numberValue)) {
|
|
305
|
+
var newValue = numberValue + step <= max ? numberValue + step : max;
|
|
306
|
+
_this2.handlers.value(newValue.toString(), event);
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
_defineProperty(_assertThisInitialized(_this2), "stepDown", function (event) {
|
|
310
|
+
var _this2$asProps3 = _this2.asProps,
|
|
311
|
+
max = _this2$asProps3.max,
|
|
312
|
+
_this2$asProps3$min = _this2$asProps3.min,
|
|
313
|
+
min = _this2$asProps3$min === void 0 ? Number.MIN_SAFE_INTEGER : _this2$asProps3$min,
|
|
314
|
+
step = _this2$asProps3.step,
|
|
315
|
+
value = _this2$asProps3.value;
|
|
316
|
+
var numberValue;
|
|
317
|
+
if (value === '') {
|
|
318
|
+
numberValue = max !== null && max !== void 0 ? max : 0;
|
|
319
|
+
} else {
|
|
320
|
+
numberValue = Number.parseFloat(value);
|
|
321
|
+
}
|
|
322
|
+
if (!Number.isNaN(numberValue)) {
|
|
323
|
+
var newValue = numberValue - step >= min ? numberValue - step : min;
|
|
324
|
+
_this2.handlers.value(newValue.toString(), event);
|
|
146
325
|
}
|
|
147
326
|
});
|
|
148
327
|
return _this2;
|
|
@@ -150,10 +329,38 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
150
329
|
_createClass(Value, [{
|
|
151
330
|
key: "uncontrolledProps",
|
|
152
331
|
value: function uncontrolledProps() {
|
|
332
|
+
var _this3 = this;
|
|
153
333
|
return {
|
|
154
|
-
|
|
334
|
+
displayValue: null,
|
|
335
|
+
value: [null, function (newValue) {
|
|
336
|
+
var _this3$asProps = _this3.asProps,
|
|
337
|
+
prevValue = _this3$asProps.value,
|
|
338
|
+
prevDisplayValue = _this3$asProps.displayValue;
|
|
339
|
+
if (newValue === '-') {
|
|
340
|
+
_this3.handlers.displayValue(newValue);
|
|
341
|
+
return newValue;
|
|
342
|
+
} else {
|
|
343
|
+
var _this3$valueParser = _this3.valueParser(newValue, prevValue, prevDisplayValue),
|
|
344
|
+
parsedValue = _this3$valueParser.parsedValue,
|
|
345
|
+
displayValue = _this3$valueParser.displayValue;
|
|
346
|
+
_this3.handlers.displayValue(displayValue);
|
|
347
|
+
return parsedValue;
|
|
348
|
+
}
|
|
349
|
+
}]
|
|
155
350
|
};
|
|
156
351
|
}
|
|
352
|
+
}, {
|
|
353
|
+
key: "separatorDecimal",
|
|
354
|
+
get: function get() {
|
|
355
|
+
var numberFormatter = this.props.numberFormatter;
|
|
356
|
+
return numberFormatter.format(11.11).replace(/\d/g, '');
|
|
357
|
+
}
|
|
358
|
+
}, {
|
|
359
|
+
key: "separatorThousands",
|
|
360
|
+
get: function get() {
|
|
361
|
+
var numberFormatter = this.props.numberFormatter;
|
|
362
|
+
return numberFormatter.format(1111).replace(/\d/g, '');
|
|
363
|
+
}
|
|
157
364
|
}, {
|
|
158
365
|
key: "round",
|
|
159
366
|
value: function round(value, step) {
|
|
@@ -165,14 +372,26 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
165
372
|
value:
|
|
166
373
|
// https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling
|
|
167
374
|
function componentDidMount() {
|
|
168
|
-
var _this$
|
|
169
|
-
(_this$
|
|
375
|
+
var _this$valueInputRef$c;
|
|
376
|
+
(_this$valueInputRef$c = this.valueInputRef.current) === null || _this$valueInputRef$c === void 0 ? void 0 : _this$valueInputRef$c.addEventListener('wheel', this.handleWheel);
|
|
377
|
+
var _this$asProps2 = this.asProps,
|
|
378
|
+
inputRef = _this$asProps2.inputRef,
|
|
379
|
+
value = _this$asProps2.value;
|
|
380
|
+
if (inputRef.current) {
|
|
381
|
+
inputRef.current.stepUp = this.stepUp;
|
|
382
|
+
inputRef.current.stepDown = this.stepDown;
|
|
383
|
+
}
|
|
384
|
+
if (value !== '') {
|
|
385
|
+
var _this$valueParser = this.valueParser(value, '', ''),
|
|
386
|
+
displayValue = _this$valueParser.displayValue;
|
|
387
|
+
this.handlers.displayValue(displayValue);
|
|
388
|
+
}
|
|
170
389
|
}
|
|
171
390
|
}, {
|
|
172
391
|
key: "componentWillUnmount",
|
|
173
392
|
value: function componentWillUnmount() {
|
|
174
|
-
var _this$
|
|
175
|
-
(_this$
|
|
393
|
+
var _this$valueInputRef$c2;
|
|
394
|
+
(_this$valueInputRef$c2 = this.valueInputRef.current) === null || _this$valueInputRef$c2 === void 0 ? void 0 : _this$valueInputRef$c2.removeEventListener('wheel', this.handleWheel);
|
|
176
395
|
}
|
|
177
396
|
}, {
|
|
178
397
|
key: "render",
|
|
@@ -181,22 +400,30 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
181
400
|
_ref5;
|
|
182
401
|
var SValue = Input.Value;
|
|
183
402
|
var SValueHidden = 'div';
|
|
184
|
-
var _this$
|
|
185
|
-
styles = _this$
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
403
|
+
var _this$asProps3 = this.asProps,
|
|
404
|
+
styles = _this$asProps3.styles,
|
|
405
|
+
min = _this$asProps3.min,
|
|
406
|
+
max = _this$asProps3.max,
|
|
407
|
+
step = _this$asProps3.step,
|
|
408
|
+
forwardRef = _this$asProps3.forwardRef,
|
|
409
|
+
inputRef = _this$asProps3.inputRef,
|
|
410
|
+
value = _this$asProps3.value,
|
|
411
|
+
displayValue = _this$asProps3.displayValue;
|
|
191
412
|
return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SValue, _ref5.cn("SValue", _objectSpread({}, _assignProps2({
|
|
192
|
-
"type": 'number',
|
|
193
413
|
"autoComplete": 'off',
|
|
194
414
|
"onBlur": this.handleValidation,
|
|
195
|
-
"
|
|
196
|
-
"
|
|
197
|
-
"
|
|
415
|
+
"use:onChange": this.handleChange,
|
|
416
|
+
"onKeyDown": this.handleKeyDown,
|
|
417
|
+
"onKeyUp": this.handleKeyUp,
|
|
418
|
+
"onClick": this.handleClick,
|
|
419
|
+
"use:ref": forkRef(this.valueInputRef, inputRef, forwardRef),
|
|
420
|
+
"use:value": displayValue,
|
|
421
|
+
"inputMode": 'decimal',
|
|
198
422
|
"aria-valuemin": min,
|
|
199
|
-
"aria-valuemax": max
|
|
423
|
+
"aria-valuemax": max,
|
|
424
|
+
"min": min,
|
|
425
|
+
"max": max,
|
|
426
|
+
"step": step
|
|
200
427
|
}, _ref2)))), /*#__PURE__*/React.createElement(SValueHidden, _ref5.cn("SValueHidden", {
|
|
201
428
|
"aria-live": 'polite',
|
|
202
429
|
"aria-atomic": true
|
|
@@ -207,6 +434,7 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
207
434
|
}(Component);
|
|
208
435
|
_defineProperty(Value, "defaultProps", {
|
|
209
436
|
defaultValue: '',
|
|
437
|
+
defaultDisplayValue: '',
|
|
210
438
|
step: 1
|
|
211
439
|
});
|
|
212
440
|
function Controls(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputNumber.js","names":["React","createComponent","Component","sstyled","Root","Input","IncrementIcon","DecrementIcon","localizedMessages","i18nEnhance","style","_sstyled","insert","parseValueWithMinMax","value","min","arguments","length","undefined","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","InputNumber","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","event","_this$inputRef$curren","_this$inputRef$curren2","_this$inputRef$curren3","_this$inputHandlersRe","inputRef","current","stepUp","inputHandlersRef","_this$inputRef$curren4","_this$inputRef$curren5","_this$inputRef$curren6","_this$inputHandlersRe2","stepDown","_createClass","key","getValueProps","ref","inputHandlerRefs","increment","decrement","getControlsProps","_this$asProps","asProps","size","getI18nText","render","_ref","_ref4","SInputNumber","createElement","cn","_objectSpread","_assignProps","i18n","locale","Value","_Component2","_super2","_this2","_len2","_key2","_this2$asProps","step","roundCoefficient","toString","split","isNaN","currentTarget","valueAsNumber","handlers","numberValue","parseFloat","rounded","round","abs","numberValueRounded","toFixed","String","target","document","activeElement","preventDefault","wheelDelta","uncontrolledProps","countDecimals","floor","toPrecision","componentDidMount","_this$inputRef$curren7","addEventListener","handleWheel","componentWillUnmount","_this$inputRef$curren8","removeEventListener","_ref2","_ref5","SValue","SValueHidden","_this$asProps2","styles","Fragment","_assignProps2","handleValidation","defaultValue","Controls","props","_ref3","arguments[0]","_ref6","Children","SControls","Addon","SUp","SDown","_assignProps3"],"sources":["../../src/InputNumber.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { IncrementIcon, DecrementIcon } from './buttons';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\n\nimport style from './style/input-number.shadow.css';\n\nexport function parseValueWithMinMax(\n value,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n) {\n return Math.max(min, Math.min(max, value));\n}\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n size: 'm',\n i18n: localizedMessages,\n locale: 'en',\n };\n\n inputRef = React.createRef();\n inputHandlersRef = React.createRef();\n\n increment = (event) => {\n // https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value\n if (this.inputRef.current?.value === '')\n this.inputRef.current.value = this.inputRef.current.min || '0';\n this.inputRef.current?.stepUp?.();\n this.inputHandlersRef.current?.value(this.inputRef.current.value, event);\n };\n\n decrement = (event) => {\n if (this.inputRef.current?.value === '')\n this.inputRef.current.value = this.inputRef.current.max || '0';\n this.inputRef.current?.stepDown?.();\n this.inputHandlersRef.current?.value(this.inputRef.current.value, event);\n };\n\n getValueProps() {\n return {\n ref: this.inputRef,\n inputHandlerRefs: this.inputHandlersRef,\n increment: this.increment,\n decrement: this.decrement,\n };\n }\n\n getControlsProps() {\n const { size, getI18nText } = this.asProps;\n return {\n size,\n increment: this.increment,\n decrement: this.decrement,\n getI18nText,\n };\n }\n\n render() {\n const SInputNumber = Root;\n return sstyled(this.asProps.style)(<SInputNumber render={Input} />);\n }\n}\n\nclass Value extends Component {\n static defaultProps = {\n defaultValue: '',\n step: 1,\n };\n\n inputRef = React.createRef();\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n round(value, step) {\n const countDecimals = Math.floor(step) === step ? 0 : step.toString().split('.')[1].length || 0;\n return countDecimals === 0\n ? Number.parseFloat(value)\n : Number.parseFloat(value).toPrecision(countDecimals);\n }\n\n handleValidation = (event) => {\n const { value, min, max, step } = this.asProps;\n const roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;\n if (Number.isNaN(event.currentTarget.valueAsNumber)) {\n event.currentTarget.value = '';\n this.handlers.value('', event);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(value), min, max);\n const rounded = this.round(numberValue % step, step);\n if (rounded !== 0) {\n if (rounded >= step / 2) {\n numberValue += step - rounded;\n } else if (Math.abs(rounded) < step) {\n numberValue -= rounded;\n }\n }\n const numberValueRounded = Number(numberValue.toFixed(roundCoefficient));\n this.handlers.value(String(numberValueRounded), event);\n }\n };\n\n // https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling\n componentDidMount() {\n this.inputRef.current?.addEventListener('wheel', this.handleWheel);\n }\n componentWillUnmount() {\n this.inputRef.current?.removeEventListener('wheel', this.handleWheel);\n }\n\n handleWheel = (event) => {\n if (event.target !== this.inputRef.current) return;\n if (document.activeElement !== this.inputRef.current) return;\n event.preventDefault();\n if (event.wheelDelta > 0) {\n this.asProps.increment(event);\n } else if (event.wheelDelta < 0) {\n this.asProps.decrement(event);\n }\n };\n\n render() {\n const SValue = Root;\n const SValueHidden = 'div';\n const { styles, inputHandlerRefs, value, min, max } = this.asProps;\n\n inputHandlerRefs.current = this.handlers;\n\n return sstyled(styles)(\n <>\n <SValue\n render={Input.Value}\n type='number'\n autoComplete='off'\n onBlur={this.handleValidation}\n onInvalid={this.handleValidation}\n ref={this.inputRef}\n aria-valuenow={value}\n aria-valuemin={min}\n aria-valuemax={max}\n />\n {/* the next hidden div is necessary for the screen reader to report the value\n in the input, because after validation the value can change to the `min` or `max` \n if entered less than `min` or more than `max` */}\n <SValueHidden aria-live='polite' aria-atomic={true}>\n {value}\n </SValueHidden>\n </>,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, increment, decrement, size, styles, getI18nText } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon} aria-hidden='true'>\n <SUp\n onClick={increment}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('increment')}\n >\n <IncrementIcon />\n </SUp>\n <SDown\n onClick={decrement}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('decrement')}\n >\n <DecrementIcon />\n </SDown>\n <Children />\n </SControls>,\n );\n}\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InputNumber.js","names":["React","createComponent","Component","sstyled","Root","Input","IncrementIcon","DecrementIcon","localizedMessages","i18nEnhance","style","_sstyled","insert","forkRef","parseValueWithMinMax","value","min","arguments","length","undefined","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","InputNumber","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","event","_this$inputRef$curren","_this$inputRef$curren2","inputRef","current","stepUp","_this$inputRef$curren3","_this$inputRef$curren4","stepDown","_createClass","key","getValueProps","numberFormatter","Intl","NumberFormat","asProps","locale","increment","decrement","getControlsProps","_this$asProps","size","getI18nText","render","_ref","_ref4","SInputNumber","createElement","cn","_objectSpread","_assignProps","i18n","Value","_Component2","_super2","_this2","_len2","_key2","prevValue","prevDisplayValue","props","stringNumber","replace","RegExp","separatorThousands","separatorDecimal","isNaN","slice","includes","parsedValue","displayValue","format","_this2$asProps","step","_this2$valueParser","valueParser","currentTarget","roundCoefficient","toString","split","parseFloat","handlers","numberValue","rounded","round","abs","numberValueRounded","toFixed","String","target","valueInputRef","document","activeElement","preventDefault","wheelDelta","digits","test","cursorPosition","element","role","selectionStart","afterSelection","selectionEnd","requestAnimationFrame","newValue","state","index","lastIndexOf","setSelectionRange","cursorIndex","shiftKey","moveSelectionLeft","moveSelectionRight","nextPosition","handleValidation","_this2$asProps2","_this2$asProps2$max","_this2$asProps3","_this2$asProps3$min","uncontrolledProps","_this3","_this3$asProps","_this3$valueParser","get","countDecimals","floor","toPrecision","componentDidMount","_this$valueInputRef$c","addEventListener","handleWheel","_this$asProps2","_this$valueParser","componentWillUnmount","_this$valueInputRef$c2","removeEventListener","_ref2","_ref5","SValue","SValueHidden","_this$asProps3","styles","forwardRef","Fragment","_assignProps2","handleChange","handleKeyDown","handleKeyUp","handleClick","defaultValue","defaultDisplayValue","Controls","_ref3","arguments[0]","_ref6","Children","SControls","Addon","SUp","SDown","_assignProps3"],"sources":["../../src/InputNumber.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { IncrementIcon, DecrementIcon } from './buttons';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\n\nimport style from './style/input-number.shadow.css';\nimport { forkRef } from '@semcore/utils/lib/ref';\n\nexport function parseValueWithMinMax(\n value,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n) {\n return Math.max(min, Math.min(max, value));\n}\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n size: 'm',\n i18n: localizedMessages,\n locale: 'en',\n };\n\n inputRef = React.createRef();\n\n increment = (event) => {\n this.inputRef.current?.stepUp?.(event);\n };\n\n decrement = (event) => {\n this.inputRef.current?.stepDown?.(event);\n };\n\n getValueProps() {\n const numberFormatter = new Intl.NumberFormat(this.asProps.locale, { style: 'decimal' });\n\n return {\n inputRef: this.inputRef,\n increment: this.increment,\n decrement: this.decrement,\n numberFormatter,\n };\n }\n\n getControlsProps() {\n const { size, getI18nText } = this.asProps;\n return {\n size,\n increment: this.increment,\n decrement: this.decrement,\n getI18nText,\n };\n }\n\n render() {\n const SInputNumber = Root;\n return sstyled(this.asProps.style)(<SInputNumber render={Input} />);\n }\n}\n\nclass Value extends Component {\n static defaultProps = {\n defaultValue: '',\n defaultDisplayValue: '',\n step: 1,\n };\n\n valueInputRef = React.createRef();\n\n cursorPosition = -1;\n\n uncontrolledProps() {\n return {\n displayValue: null,\n value: [\n null,\n (newValue) => {\n const { value: prevValue, displayValue: prevDisplayValue } = this.asProps;\n\n if (newValue === '-') {\n this.handlers.displayValue(newValue);\n\n return newValue;\n } else {\n const { parsedValue, displayValue } = this.valueParser(\n newValue,\n prevValue,\n prevDisplayValue,\n );\n\n this.handlers.displayValue(displayValue);\n\n return parsedValue;\n }\n },\n ],\n };\n }\n\n get separatorDecimal() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(11.11).replace(/\\d/g, '');\n }\n\n get separatorThousands() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(1111).replace(/\\d/g, '');\n }\n\n valueParser = (value, prevValue, prevDisplayValue) => {\n const { numberFormatter } = this.props;\n\n const stringNumber = value\n .replace(new RegExp(`[${this.separatorThousands}]`, 'g'), '')\n .replace(this.separatorDecimal, '.');\n\n if (\n stringNumber[stringNumber.length - 1] === '.' &&\n !Number.isNaN(Number(prevValue)) &&\n !stringNumber.slice(0, -1).includes('.')\n ) {\n if (value.length > prevValue.length) {\n // type new value\n return {\n parsedValue: prevValue + this.separatorDecimal,\n displayValue: numberFormatter.format(prevValue) + this.separatorDecimal,\n };\n } else {\n // backspace value\n return {\n parsedValue: stringNumber,\n displayValue: value,\n };\n }\n }\n\n if (Number.isNaN(Number(stringNumber))) {\n return {\n parsedValue: prevValue,\n displayValue: prevDisplayValue,\n };\n }\n\n return {\n parsedValue: stringNumber,\n displayValue: stringNumber === '' ? '' : numberFormatter.format(stringNumber),\n };\n };\n\n round(value, step) {\n const countDecimals = Math.floor(step) === step ? 0 : step.toString().split('.')[1].length || 0;\n return countDecimals === 0\n ? Number.parseFloat(value)\n : Number.parseFloat(value).toPrecision(countDecimals);\n }\n\n handleValidation = (event) => {\n const { value, displayValue, min, max, step } = this.asProps;\n const { parsedValue } = this.valueParser(event.currentTarget.value, value, displayValue);\n const roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;\n\n if (Number.isNaN(value) || Number.isNaN(Number.parseFloat(parsedValue))) {\n event.currentTarget.value = '';\n this.handlers.value('', event);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(parsedValue), min, max);\n const rounded = this.round(numberValue % step, step);\n if (rounded !== 0) {\n if (rounded >= step / 2) {\n numberValue += step - rounded;\n } else if (Math.abs(rounded) < step) {\n numberValue -= rounded;\n }\n }\n const numberValueRounded = Number(numberValue.toFixed(roundCoefficient));\n\n this.handlers.value(String(numberValueRounded), event);\n }\n };\n\n // https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling\n componentDidMount() {\n this.valueInputRef.current?.addEventListener('wheel', this.handleWheel);\n\n const { inputRef, value } = this.asProps;\n\n if (inputRef.current) {\n inputRef.current.stepUp = this.stepUp;\n inputRef.current.stepDown = this.stepDown;\n }\n\n if (value !== '') {\n const { displayValue } = this.valueParser(value, '', '');\n this.handlers.displayValue(displayValue);\n }\n }\n componentWillUnmount() {\n this.valueInputRef.current?.removeEventListener('wheel', this.handleWheel);\n }\n\n handleWheel = (event) => {\n if (event.target !== this.valueInputRef.current) return;\n if (document.activeElement !== this.valueInputRef.current) return;\n event.preventDefault();\n if (event.wheelDelta > 0) {\n this.stepUp(event);\n } else if (event.wheelDelta < 0) {\n this.stepDown(event);\n }\n };\n\n handleChange = (event) => {\n const value = event.currentTarget.value;\n const digits = /[0-9,.-]+/.test(value);\n\n if (digits || value === '') {\n this.handlers.value(value, event);\n }\n\n return false;\n };\n\n handleKeyUp = (event) => {\n if (event.key === 'Shift') {\n this.cursorPosition = -1;\n }\n\n const element = event.currentTarget;\n\n element.role = 'input';\n };\n\n handleKeyDown = (event) => {\n const element = event.currentTarget;\n const value = element.value;\n const length = value.length;\n\n // we need this dirty hack for screen readers, because they couldn't read full value in input after adding there ','.\n // so, we change role to `region` here and back to `input` in handleKeyUp\n element.role = 'region';\n\n if (\n element.selectionStart !== length &&\n (event.key === 'Backspace' ||\n event.key === this.separatorDecimal ||\n ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(event.key))\n ) {\n const afterSelection = value.slice(element.selectionEnd);\n\n requestAnimationFrame(() => {\n const newValue = this.state.displayValue;\n const index = newValue.lastIndexOf(afterSelection);\n const selectionStart = index;\n const selectionEnd = index;\n\n element.setSelectionRange(selectionStart, selectionEnd);\n });\n }\n\n // For correct moving cursor with skip separatorThousands.\n // Examples:\n // - Press ArrowLeft: `12,3|4 -> 12|,34`\n // - Press ArrowRight: `1|,55 -> 1,5|5`\n const cursorIndex = 2;\n\n if (event.shiftKey && this.cursorPosition === -1) {\n this.cursorPosition = element.selectionStart;\n }\n\n switch (event.key) {\n case 'ArrowLeft': {\n event.preventDefault();\n this.moveSelectionLeft(element, cursorIndex);\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n this.moveSelectionRight(element, cursorIndex);\n break;\n }\n case 'ArrowDown': {\n event.preventDefault();\n this.stepDown(event);\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.stepUp(event);\n break;\n }\n }\n };\n\n moveSelectionLeft = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionStart - 1 >= 0 ? element.selectionStart - 1 : 0;\n\n const cursorPosition =\n value[element.selectionStart - cursorIndex] === this.separatorThousands\n ? element.selectionStart - cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionStart <= this.cursorPosition &&\n element.selectionEnd === this.cursorPosition\n ) {\n element.setSelectionRange(cursorPosition, element.selectionEnd);\n } else {\n element.setSelectionRange(\n element.selectionStart,\n value[element.selectionEnd - cursorIndex] === this.separatorThousands\n ? element.selectionEnd - cursorIndex\n : element.selectionEnd - 1,\n );\n }\n }\n };\n\n moveSelectionRight = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionEnd + 1;\n\n const cursorPosition =\n value[element.selectionEnd] === this.separatorThousands\n ? element.selectionEnd + cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionEnd >= this.cursorPosition &&\n element.selectionStart === this.cursorPosition\n ) {\n element.setSelectionRange(element.selectionStart, cursorPosition);\n } else {\n element.setSelectionRange(\n value[element.selectionStart] === this.separatorThousands\n ? element.selectionStart + cursorIndex\n : element.selectionStart + 1,\n element.selectionEnd,\n );\n }\n }\n };\n\n handleClick = (event) => {\n const element = event.target;\n const value = element.value;\n\n if (value[element.selectionStart - 1] === this.separatorThousands) {\n element.setSelectionRange(element.selectionStart - 1, element.selectionEnd - 1);\n }\n };\n\n handleBlur = (event) => {\n this.cursorPosition = -1;\n this.handleValidation(event);\n };\n\n stepUp = (event) => {\n const { max = Number.MAX_SAFE_INTEGER, min, step, value } = this.asProps;\n\n let numberValue;\n\n // https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value\n if (value === '') {\n numberValue = min ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue + step <= max ? numberValue + step : max;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n stepDown = (event) => {\n const { max, min = Number.MIN_SAFE_INTEGER, step, value } = this.asProps;\n\n let numberValue;\n\n if (value === '') {\n numberValue = max ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue - step >= min ? numberValue - step : min;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n render() {\n const SValue = Root;\n const SValueHidden = 'div';\n const { styles, min, max, step, forwardRef, inputRef, value, displayValue } = this.asProps;\n\n return sstyled(styles)(\n <>\n <SValue\n render={Input.Value}\n autoComplete='off'\n onBlur={this.handleValidation}\n use:onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onKeyUp={this.handleKeyUp}\n onClick={this.handleClick}\n use:ref={forkRef(this.valueInputRef, inputRef, forwardRef)}\n use:value={displayValue}\n inputMode='decimal'\n aria-valuemin={min}\n aria-valuemax={max}\n min={min}\n max={max}\n step={step}\n />\n {/* the next hidden div is necessary for the screen reader to report the value\n in the input, because after validation the value can change to the `min` or `max`\n if entered less than `min` or more than `max` */}\n <SValueHidden aria-live='polite' aria-atomic={true}>\n {value}\n </SValueHidden>\n </>,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, increment, decrement, size, styles, getI18nText } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon} aria-hidden='true'>\n <SUp\n onClick={increment}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('increment')}\n >\n <IncrementIcon />\n </SUp>\n <SDown\n onClick={decrement}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('decrement')}\n >\n <DecrementIcon />\n </SDown>\n <Children />\n </SControls>,\n );\n}\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/input-number",
|
|
3
3
|
"description": "Semrush InputNumber Component",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.24.0-prerelease.0",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -9,11 +9,12 @@
|
|
|
9
9
|
"author": "UI-kit team <ui-kit-team@semrush.com>",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@semcore/input": "4.23.
|
|
13
|
-
"@semcore/utils": "4.23.
|
|
12
|
+
"@semcore/input": "4.23.1-prerelease.0",
|
|
13
|
+
"@semcore/utils": "4.23.1-prerelease.0",
|
|
14
|
+
"@semcore/flex-box": "5.22.1-prerelease.0"
|
|
14
15
|
},
|
|
15
16
|
"peerDependencies": {
|
|
16
|
-
"@semcore/core": "^2.20.
|
|
17
|
+
"@semcore/core": "^2.20.1-prerelease.0",
|
|
17
18
|
"react": "16.8 - 18",
|
|
18
19
|
"react-dom": "16.8 - 18"
|
|
19
20
|
},
|