@semcore/input-number 5.41.2 → 5.41.3-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.
@@ -1,322 +1,454 @@
1
- import A from "@babel/runtime/helpers/esm/slicedToArray";
2
- import D from "@babel/runtime/helpers/esm/objectSpread2";
3
- import x from "@babel/runtime/helpers/esm/classCallCheck";
4
- import I from "@babel/runtime/helpers/esm/createClass";
5
- import f from "@babel/runtime/helpers/esm/assertThisInitialized";
6
- import C from "@babel/runtime/helpers/esm/inherits";
7
- import k from "@babel/runtime/helpers/esm/createSuper";
8
- import l from "@babel/runtime/helpers/esm/defineProperty";
9
- import { sstyled as M } from "@semcore/utils/lib/core/index";
10
- import z, { sstyled as w, assignProps as R, Component as $ } from "@semcore/core";
11
- import g from "react";
12
- import V from "@semcore/input";
13
- import { IncrementIcon as W, DecrementIcon as K } from "./buttons.mjs";
14
- import { localizedMessages as F } from "./translations/__intergalactic-dynamic-locales.mjs";
15
- import L from "@semcore/utils/lib/enhances/i18nEnhance";
16
- import { forkRef as B } from "@semcore/utils/lib/ref";
17
- import { callAllEventHandlers as G } from "@semcore/utils/lib/assignProps";
18
- var N = (
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
5
+ import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
6
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
7
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
8
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
9
+ import { sstyled } from "@semcore/utils/lib/core/index";
10
+ import createComponent, { sstyled as sstyled$1, assignProps, Component } from "@semcore/core";
11
+ import React from "react";
12
+ import Input from "@semcore/input";
13
+ import { IncrementIcon, DecrementIcon } from "./buttons.mjs";
14
+ import { localizedMessages } from "./translations/__intergalactic-dynamic-locales.mjs";
15
+ import i18nEnhance from "@semcore/utils/lib/enhances/i18nEnhance";
16
+ import { forkRef } from "@semcore/utils/lib/ref";
17
+ import { callAllEventHandlers } from "@semcore/utils/lib/assignProps";
18
+ /*!__reshadow-styles__:"./style/input-number.shadow.css"*/
19
+ var style = (
19
20
  /*__reshadow_css_start__*/
20
- (M.insert(
21
+ (sstyled.insert(
21
22
  /*__inner_css_start__*/
22
- ".___SValue_1fgoh_gg_:focus~.___SControls_1fgoh_gg_{display:flex}.___SControls_1fgoh_gg_{display:none;flex-flow:column;justify-content:center;height:100%;box-sizing:border-box}.___SControls_1fgoh_gg_.__showControls_1fgoh_gg_{display:flex}.___SDown_1fgoh_gg_,.___SUp_1fgoh_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_1fgoh_gg_:focus,.___SUp_1fgoh_gg_:focus{outline:0}@media (hover:hover){.___SDown_1fgoh_gg_:hover,.___SUp_1fgoh_gg_:hover{color:var(--intergalactic-icon-secondary-neutral-hover-active, #878992)}}.___SUp_1fgoh_gg_{padding-bottom:1px}.___SDown_1fgoh_gg_{padding-top:1px}.___SValue_1fgoh_gg_::-webkit-inner-spin-button,.___SValue_1fgoh_gg_::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.___SValue_1fgoh_gg_._type_number_1fgoh_gg_{-moz-appearance:textfield}.___SValue_1fgoh_gg_.__disabled_1fgoh_gg_~.___SControls_1fgoh_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SValueHidden_1fgoh_gg_{position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden}",
23
- "1fgoh_gg_"
24
- ), {
25
- __SValue: "___SValue_1fgoh_gg_",
26
- __SControls: "___SControls_1fgoh_gg_",
27
- _showControls: "__showControls_1fgoh_gg_",
28
- __SUp: "___SUp_1fgoh_gg_",
29
- __SDown: "___SDown_1fgoh_gg_",
30
- _disabled: "__disabled_1fgoh_gg_",
31
- __SValueHidden: "___SValueHidden_1fgoh_gg_",
32
- _type_number: "_type_number_1fgoh_gg_"
23
+ ".___SValue_156nn_gg_:focus~.___SControls_156nn_gg_{display:flex}.___SControls_156nn_gg_{display:none;flex-flow:column;justify-content:center;height:100%;box-sizing:border-box}.___SControls_156nn_gg_.__showControls_156nn_gg_{display:flex}.___SDown_156nn_gg_,.___SUp_156nn_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_156nn_gg_:focus,.___SUp_156nn_gg_:focus{outline:0}@media (hover:hover){.___SDown_156nn_gg_:hover,.___SUp_156nn_gg_:hover{color:var(--intergalactic-icon-secondary-neutral-hover-active, #878992)}}.___SUp_156nn_gg_{padding-bottom:1px}.___SDown_156nn_gg_{padding-top:1px}.___SValue_156nn_gg_::-webkit-inner-spin-button,.___SValue_156nn_gg_::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.___SValue_156nn_gg_._type_number_156nn_gg_{-moz-appearance:textfield}.___SValue_156nn_gg_.__disabled_156nn_gg_~.___SControls_156nn_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SValueHidden_156nn_gg_{position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden}",
24
+ /*__inner_css_end__*/
25
+ "156nn_gg_"
26
+ ), /*__reshadow_css_end__*/
27
+ {
28
+ "__SValue": "___SValue_156nn_gg_",
29
+ "__SControls": "___SControls_156nn_gg_",
30
+ "_showControls": "__showControls_156nn_gg_",
31
+ "__SUp": "___SUp_156nn_gg_",
32
+ "__SDown": "___SDown_156nn_gg_",
33
+ "_disabled": "__disabled_156nn_gg_",
34
+ "__SValueHidden": "___SValueHidden_156nn_gg_",
35
+ "_type_number": "_type_number_156nn_gg_"
33
36
  })
34
37
  );
35
- function H(h) {
36
- var v = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Number.MIN_SAFE_INTEGER, c = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Number.MAX_SAFE_INTEGER;
37
- return Math.max(v, Math.min(c, h));
38
+ function parseValueWithMinMax(value) {
39
+ var min = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Number.MIN_SAFE_INTEGER;
40
+ var max = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Number.MAX_SAFE_INTEGER;
41
+ return Math.max(min, Math.min(max, value));
38
42
  }
39
- var P = /* @__PURE__ */ function(h) {
40
- C(c, h);
41
- var v = k(c);
42
- function c() {
43
- var r;
44
- x(this, c);
45
- for (var n = arguments.length, s = new Array(n), i = 0; i < n; i++)
46
- s[i] = arguments[i];
47
- return r = v.call.apply(v, [this].concat(s)), l(f(r), "inputRef", /* @__PURE__ */ g.createRef()), l(f(r), "increment", function(e) {
48
- var t, a;
49
- (t = r.inputRef.current) === null || t === void 0 || (a = t.stepUp) === null || a === void 0 || a.call(t, e);
50
- }), l(f(r), "decrement", function(e) {
51
- var t, a;
52
- (t = r.inputRef.current) === null || t === void 0 || (a = t.stepDown) === null || a === void 0 || a.call(t, e);
53
- }), r;
43
+ var InputNumber = /* @__PURE__ */ function(_Component) {
44
+ _inherits(InputNumber2, _Component);
45
+ var _super = _createSuper(InputNumber2);
46
+ function InputNumber2() {
47
+ var _this;
48
+ _classCallCheck(this, InputNumber2);
49
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
50
+ args[_key] = arguments[_key];
51
+ }
52
+ _this = _super.call.apply(_super, [this].concat(args));
53
+ _defineProperty(_assertThisInitialized(_this), "inputRef", /* @__PURE__ */ React.createRef());
54
+ _defineProperty(_assertThisInitialized(_this), "increment", function(event) {
55
+ var _this$inputRef$curren, _this$inputRef$curren2;
56
+ (_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
+ });
58
+ _defineProperty(_assertThisInitialized(_this), "decrement", function(event) {
59
+ var _this$inputRef$curren3, _this$inputRef$curren4;
60
+ (_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);
61
+ });
62
+ return _this;
54
63
  }
55
- return I(c, [{
64
+ _createClass(InputNumber2, [{
56
65
  key: "getValueProps",
57
- value: function() {
58
- var n = new Intl.NumberFormat(this.asProps.locale, {
66
+ value: function getValueProps() {
67
+ var numberFormatter = new Intl.NumberFormat(this.asProps.locale, {
59
68
  style: "decimal"
60
69
  });
61
70
  return {
62
71
  inputRef: this.inputRef,
63
72
  increment: this.increment,
64
73
  decrement: this.decrement,
65
- numberFormatter: n
74
+ numberFormatter
66
75
  };
67
76
  }
68
77
  }, {
69
78
  key: "getControlsProps",
70
- value: function() {
71
- var n = this.asProps, s = n.size, i = n.getI18nText;
79
+ value: function getControlsProps() {
80
+ var _this$asProps = this.asProps, size = _this$asProps.size, getI18nText = _this$asProps.getI18nText;
72
81
  return {
73
- size: s,
82
+ size,
74
83
  increment: this.increment,
75
84
  decrement: this.decrement,
76
- getI18nText: i
85
+ getI18nText
77
86
  };
78
87
  }
79
88
  }, {
80
89
  key: "render",
81
- value: function() {
82
- var n = this.asProps, s, i = V;
83
- return s = w(this.asProps.style), /* @__PURE__ */ g.createElement(i, s.cn("SInputNumber", D({}, R({}, n))));
90
+ value: function render() {
91
+ var _ref = this.asProps, _ref4;
92
+ var SInputNumber = Input;
93
+ return _ref4 = sstyled$1(this.asProps.style), /* @__PURE__ */ React.createElement(SInputNumber, _ref4.cn("SInputNumber", _objectSpread({}, assignProps({}, _ref))));
84
94
  }
85
- }]), c;
86
- }($);
87
- l(P, "displayName", "InputNumber");
88
- l(P, "style", N);
89
- l(P, "enhance", [L(F)]);
90
- l(P, "defaultProps", {
95
+ }]);
96
+ return InputNumber2;
97
+ }(Component);
98
+ _defineProperty(InputNumber, "displayName", "InputNumber");
99
+ _defineProperty(InputNumber, "style", style);
100
+ _defineProperty(InputNumber, "enhance", [i18nEnhance(localizedMessages)]);
101
+ _defineProperty(InputNumber, "defaultProps", {
91
102
  size: "m",
92
- i18n: F,
103
+ i18n: localizedMessages,
93
104
  locale: "en"
94
105
  });
95
- var E = /* @__PURE__ */ function(h) {
96
- C(c, h);
97
- var v = k(c);
98
- function c() {
99
- var r;
100
- x(this, c);
101
- for (var n = arguments.length, s = new Array(n), i = 0; i < n; i++)
102
- s[i] = arguments[i];
103
- return r = v.call.apply(v, [this].concat(s)), l(f(r), "valueInputRef", /* @__PURE__ */ g.createRef()), l(f(r), "cursorPosition", -1), l(f(r), "getFormattedValue", function(e) {
104
- return e.replace(new RegExp("[".concat(r.separatorThousands, "]"), "g"), "").replace(r.separatorDecimal, ".");
105
- }), l(f(r), "valueParser", function(e, t, a) {
106
- var u = r.props.numberFormatter, o = r.getFormattedValue(String(e));
107
- if (Number.isNaN(Number(o)))
106
+ var Value = /* @__PURE__ */ function(_Component2) {
107
+ _inherits(Value2, _Component2);
108
+ var _super2 = _createSuper(Value2);
109
+ function Value2() {
110
+ var _this2;
111
+ _classCallCheck(this, Value2);
112
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
113
+ args[_key2] = arguments[_key2];
114
+ }
115
+ _this2 = _super2.call.apply(_super2, [this].concat(args));
116
+ _defineProperty(_assertThisInitialized(_this2), "valueInputRef", /* @__PURE__ */ React.createRef());
117
+ _defineProperty(_assertThisInitialized(_this2), "cursorPosition", -1);
118
+ _defineProperty(_assertThisInitialized(_this2), "getFormattedValue", function(value) {
119
+ return value.replace(new RegExp("[".concat(_this2.separatorThousands, "]"), "g"), "").replace(_this2.separatorDecimal, ".");
120
+ });
121
+ _defineProperty(_assertThisInitialized(_this2), "valueParser", function(value, prevValue, prevDisplayValue) {
122
+ var numberFormatter = _this2.props.numberFormatter;
123
+ var stringNumber = _this2.getFormattedValue(String(value));
124
+ if (Number.isNaN(Number(stringNumber))) {
108
125
  return {
109
- parsedValue: t,
110
- displayValue: a
126
+ parsedValue: prevValue,
127
+ displayValue: prevDisplayValue
111
128
  };
112
- var d = "";
113
- if (/\.[0-9]*0$/.test(o)) {
114
- var p = o.split(r.separatorDecimal), _ = A(p, 2), m = _[0], S = _[1];
115
- d = u.format(m) + r.separatorDecimal + S;
116
- } else o !== "" && (d = u.format(o));
129
+ }
130
+ var displayValue = "";
131
+ if (/\.[0-9]*0$/.test(stringNumber)) {
132
+ var _stringNumber$split = stringNumber.split(_this2.separatorDecimal), _stringNumber$split2 = _slicedToArray(_stringNumber$split, 2), _int = _stringNumber$split2[0], decimal = _stringNumber$split2[1];
133
+ displayValue = numberFormatter.format(_int) + _this2.separatorDecimal + decimal;
134
+ } else if (stringNumber !== "") {
135
+ displayValue = numberFormatter.format(stringNumber);
136
+ }
117
137
  return {
118
- parsedValue: o,
119
- displayValue: d
138
+ parsedValue: stringNumber,
139
+ displayValue
120
140
  };
121
- }), l(f(r), "handleValidation", function(e) {
122
- var t = r.asProps, a = t.value, u = t.displayValue, o = t.min, d = t.max, p = t.step, _ = r.valueParser(e.currentTarget.value, a, u), m = _.parsedValue, S = p < 1 ? p.toString().split(".")[1].length : 1;
123
- if (Number.isNaN(a) || Number.isNaN(Number.parseFloat(m)))
124
- e.currentTarget.value = "", r.handlers.value("", e);
125
- else {
126
- var y = H(Number.parseFloat(m), o, d), b = r.round(y % p, p);
127
- b !== 0 && (b >= p / 2 ? y += p - b : Math.abs(b) < p && (y -= b));
128
- var U = Number(y.toFixed(S));
129
- r.handlers.value(String(U), e);
141
+ });
142
+ _defineProperty(_assertThisInitialized(_this2), "handleValidation", function(event) {
143
+ var _this2$asProps = _this2.asProps, value = _this2$asProps.value, displayValue = _this2$asProps.displayValue, min = _this2$asProps.min, max = _this2$asProps.max, step = _this2$asProps.step;
144
+ var _this2$valueParser = _this2.valueParser(event.currentTarget.value, value, displayValue), parsedValue = _this2$valueParser.parsedValue;
145
+ var roundCoefficient = step < 1 ? step.toString().split(".")[1].length : 1;
146
+ if (Number.isNaN(value) || Number.isNaN(Number.parseFloat(parsedValue))) {
147
+ event.currentTarget.value = "";
148
+ _this2.handlers.value("", event);
149
+ } else {
150
+ var numberValue = parseValueWithMinMax(Number.parseFloat(parsedValue), min, max);
151
+ var rounded = _this2.round(numberValue % step, step);
152
+ if (rounded !== 0) {
153
+ if (rounded >= step / 2) {
154
+ numberValue += step - rounded;
155
+ } else if (Math.abs(rounded) < step) {
156
+ numberValue -= rounded;
157
+ }
158
+ }
159
+ var numberValueRounded = Number(numberValue.toFixed(roundCoefficient));
160
+ _this2.handlers.value(String(numberValueRounded), event);
161
+ }
162
+ });
163
+ _defineProperty(_assertThisInitialized(_this2), "onWheel", function(event) {
164
+ callAllEventHandlers(_this2.asProps.onWheel, _this2.handleWheel)(event);
165
+ });
166
+ _defineProperty(_assertThisInitialized(_this2), "handleWheel", function(event) {
167
+ if (event.target !== _this2.valueInputRef.current) return;
168
+ if (document.activeElement !== _this2.valueInputRef.current) return;
169
+ event.preventDefault();
170
+ if (event.wheelDelta > 0) {
171
+ _this2.stepUp(event);
172
+ } else if (event.wheelDelta < 0) {
173
+ _this2.stepDown(event);
174
+ }
175
+ });
176
+ _defineProperty(_assertThisInitialized(_this2), "handleChange", function(event) {
177
+ var value = _this2.getFormattedValue(event.currentTarget.value);
178
+ var _this2$asProps2 = _this2.asProps, numberFormatter = _this2$asProps2.numberFormatter, prevValue = _this2$asProps2.value;
179
+ if (value === "." || value === "-") {
180
+ _this2.handlers.displayValue(value);
181
+ return false;
182
+ }
183
+ if (value.endsWith("-")) {
184
+ return false;
185
+ }
186
+ if (value.endsWith(".")) {
187
+ if (value.length > prevValue.length) {
188
+ _this2.handlers.displayValue(numberFormatter.format(value) + _this2.separatorDecimal);
189
+ return false;
190
+ } else {
191
+ _this2.handlers.value(value.slice(0, -1), event);
192
+ return false;
193
+ }
194
+ }
195
+ var digits = /[0-9.-]+/.test(value);
196
+ if (digits || value === "") {
197
+ _this2.handlers.value(value, event);
130
198
  }
131
- }), l(f(r), "onWheel", function(e) {
132
- G(r.asProps.onWheel, r.handleWheel)(e);
133
- }), l(f(r), "handleWheel", function(e) {
134
- e.target === r.valueInputRef.current && document.activeElement === r.valueInputRef.current && (e.preventDefault(), e.wheelDelta > 0 ? r.stepUp(e) : e.wheelDelta < 0 && r.stepDown(e));
135
- }), l(f(r), "handleChange", function(e) {
136
- var t = r.getFormattedValue(e.currentTarget.value), a = r.asProps, u = a.numberFormatter, o = a.value;
137
- if (t === "." || t === "-")
138
- return r.handlers.displayValue(t), !1;
139
- if (t.endsWith("-"))
140
- return !1;
141
- if (t.endsWith("."))
142
- return t.length > o.length ? (r.handlers.displayValue(u.format(t) + r.separatorDecimal), !1) : (r.handlers.value(t.slice(0, -1), e), !1);
143
- var d = /[0-9.-]+/.test(t);
144
- (d || t === "") && r.handlers.value(t, e);
145
- }), l(f(r), "handleKeyUp", function(e) {
146
- e.key === "Shift" && (r.cursorPosition = -1);
147
- }), l(f(r), "handleKeyDown", function(e) {
148
- var t = e.currentTarget, a = t.value, u = a.length, o = r.asProps.displayValue;
149
- if (e.key === "." || e.key === ",") {
150
- if (a.indexOf(r.separatorDecimal) === -1 && e.key === ",")
151
- e.currentTarget.value = a + ".";
152
- else if (a.indexOf(r.separatorDecimal) !== -1) {
153
- e.preventDefault(), e.stopPropagation();
199
+ });
200
+ _defineProperty(_assertThisInitialized(_this2), "handleKeyUp", function(event) {
201
+ if (event.key === "Shift") {
202
+ _this2.cursorPosition = -1;
203
+ }
204
+ });
205
+ _defineProperty(_assertThisInitialized(_this2), "handleKeyDown", function(event) {
206
+ var element = event.currentTarget;
207
+ var value = element.value;
208
+ var length = value.length;
209
+ var displayValue = _this2.asProps.displayValue;
210
+ if (event.key === "." || event.key === ",") {
211
+ if (value.indexOf(_this2.separatorDecimal) === -1 && event.key === ",") {
212
+ event.currentTarget.value = value + ".";
213
+ } else if (value.indexOf(_this2.separatorDecimal) !== -1) {
214
+ event.preventDefault();
215
+ event.stopPropagation();
154
216
  return;
155
217
  }
156
218
  }
157
- if (e.key === "Backspace" && a.endsWith(r.separatorDecimal))
158
- return e.preventDefault(), e.stopPropagation(), r.handlers.displayValue(o.slice(0, -1)), !1;
159
- if (t.selectionStart !== u && (e.key === "Backspace" || e.key === r.separatorDecimal || ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"].includes(e.key))) {
160
- var d = a.slice(t.selectionEnd);
219
+ if (event.key === "Backspace" && value.endsWith(_this2.separatorDecimal)) {
220
+ event.preventDefault();
221
+ event.stopPropagation();
222
+ _this2.handlers.displayValue(displayValue.slice(0, -1));
223
+ return false;
224
+ }
225
+ if (element.selectionStart !== length && (event.key === "Backspace" || event.key === _this2.separatorDecimal || ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"].includes(event.key))) {
226
+ var afterSelection = value.slice(element.selectionEnd);
161
227
  requestAnimationFrame(function() {
162
- var _ = r.state.displayValue, m = _.lastIndexOf(d), S = m, y = m;
163
- t.setSelectionRange(S, y);
228
+ var newValue = _this2.state.displayValue;
229
+ var index = newValue.lastIndexOf(afterSelection);
230
+ var selectionStart = index;
231
+ var selectionEnd = index;
232
+ element.setSelectionRange(selectionStart, selectionEnd);
164
233
  });
165
234
  }
166
- var p = 2;
167
- switch (e.shiftKey && r.cursorPosition === -1 && (r.cursorPosition = t.selectionStart), e.key) {
235
+ var cursorIndex = 2;
236
+ if (event.shiftKey && _this2.cursorPosition === -1) {
237
+ _this2.cursorPosition = element.selectionStart;
238
+ }
239
+ switch (event.key) {
168
240
  case "ArrowLeft": {
169
- e.preventDefault(), r.moveSelectionLeft(t, p);
241
+ event.preventDefault();
242
+ _this2.moveSelectionLeft(element, cursorIndex);
170
243
  break;
171
244
  }
172
245
  case "ArrowRight": {
173
- e.preventDefault(), r.moveSelectionRight(t, p);
246
+ event.preventDefault();
247
+ _this2.moveSelectionRight(element, cursorIndex);
174
248
  break;
175
249
  }
176
250
  case "ArrowDown": {
177
- e.preventDefault(), r.stepDown(e);
251
+ event.preventDefault();
252
+ _this2.stepDown(event);
178
253
  break;
179
254
  }
180
255
  case "ArrowUp": {
181
- e.preventDefault(), r.stepUp(e);
256
+ event.preventDefault();
257
+ _this2.stepUp(event);
182
258
  break;
183
259
  }
184
260
  }
185
- }), l(f(r), "moveSelectionLeft", function(e, t) {
186
- var a = e.value, u = e.selectionStart - 1 >= 0 ? e.selectionStart - 1 : 0, o = a[e.selectionStart - t] === r.separatorThousands ? e.selectionStart - t : u;
187
- r.cursorPosition === -1 ? e.setSelectionRange(o, o) : e.selectionStart <= r.cursorPosition && e.selectionEnd === r.cursorPosition ? e.setSelectionRange(o, e.selectionEnd) : e.setSelectionRange(e.selectionStart, a[e.selectionEnd - t] === r.separatorThousands ? e.selectionEnd - t : e.selectionEnd - 1);
188
- }), l(f(r), "moveSelectionRight", function(e, t) {
189
- var a = e.value, u = e.selectionEnd + 1, o = a[e.selectionEnd] === r.separatorThousands ? e.selectionEnd + t : u;
190
- r.cursorPosition === -1 ? e.setSelectionRange(o, o) : e.selectionEnd >= r.cursorPosition && e.selectionStart === r.cursorPosition ? e.setSelectionRange(e.selectionStart, o) : e.setSelectionRange(a[e.selectionStart] === r.separatorThousands ? e.selectionStart + t : e.selectionStart + 1, e.selectionEnd);
191
- }), l(f(r), "handleClick", function(e) {
192
- var t = e.target, a = t.value;
193
- a[t.selectionStart - 1] === r.separatorThousands && t.setSelectionRange(t.selectionStart - 1, t.selectionEnd - 1);
194
- }), l(f(r), "handleBlur", function(e) {
195
- r.cursorPosition = -1, r.handleValidation(e);
196
- }), l(f(r), "stepUp", function(e) {
197
- var t = r.asProps, a = t.max, u = a === void 0 ? Number.MAX_SAFE_INTEGER : a, o = t.min, d = t.step, p = t.value, _;
198
- if (p === "" ? _ = o ?? 0 : _ = Number.parseFloat(p), !Number.isNaN(_)) {
199
- var m = _ + d <= u ? _ + d : u;
200
- r.handlers.value(m.toString(), e);
261
+ });
262
+ _defineProperty(_assertThisInitialized(_this2), "moveSelectionLeft", function(element, cursorIndex) {
263
+ var value = element.value;
264
+ var nextPosition = element.selectionStart - 1 >= 0 ? element.selectionStart - 1 : 0;
265
+ var cursorPosition = value[element.selectionStart - cursorIndex] === _this2.separatorThousands ? element.selectionStart - cursorIndex : nextPosition;
266
+ if (_this2.cursorPosition === -1) {
267
+ element.setSelectionRange(cursorPosition, cursorPosition);
268
+ } else {
269
+ if (element.selectionStart <= _this2.cursorPosition && element.selectionEnd === _this2.cursorPosition) {
270
+ element.setSelectionRange(cursorPosition, element.selectionEnd);
271
+ } else {
272
+ element.setSelectionRange(element.selectionStart, value[element.selectionEnd - cursorIndex] === _this2.separatorThousands ? element.selectionEnd - cursorIndex : element.selectionEnd - 1);
273
+ }
274
+ }
275
+ });
276
+ _defineProperty(_assertThisInitialized(_this2), "moveSelectionRight", function(element, cursorIndex) {
277
+ var value = element.value;
278
+ var nextPosition = element.selectionEnd + 1;
279
+ var cursorPosition = value[element.selectionEnd] === _this2.separatorThousands ? element.selectionEnd + cursorIndex : nextPosition;
280
+ if (_this2.cursorPosition === -1) {
281
+ element.setSelectionRange(cursorPosition, cursorPosition);
282
+ } else {
283
+ if (element.selectionEnd >= _this2.cursorPosition && element.selectionStart === _this2.cursorPosition) {
284
+ element.setSelectionRange(element.selectionStart, cursorPosition);
285
+ } else {
286
+ element.setSelectionRange(value[element.selectionStart] === _this2.separatorThousands ? element.selectionStart + cursorIndex : element.selectionStart + 1, element.selectionEnd);
287
+ }
201
288
  }
202
- }), l(f(r), "stepDown", function(e) {
203
- var t = r.asProps, a = t.max, u = t.min, o = u === void 0 ? Number.MIN_SAFE_INTEGER : u, d = t.step, p = t.value, _;
204
- if (p === "" ? _ = a ?? 0 : _ = Number.parseFloat(p), !Number.isNaN(_)) {
205
- var m = _ - d >= o ? _ - d : o;
206
- r.handlers.value(m.toString(), e);
289
+ });
290
+ _defineProperty(_assertThisInitialized(_this2), "handleClick", function(event) {
291
+ var element = event.target;
292
+ var value = element.value;
293
+ if (value[element.selectionStart - 1] === _this2.separatorThousands) {
294
+ element.setSelectionRange(element.selectionStart - 1, element.selectionEnd - 1);
207
295
  }
208
- }), r;
296
+ });
297
+ _defineProperty(_assertThisInitialized(_this2), "handleBlur", function(event) {
298
+ _this2.cursorPosition = -1;
299
+ _this2.handleValidation(event);
300
+ });
301
+ _defineProperty(_assertThisInitialized(_this2), "stepUp", function(event) {
302
+ var _this2$asProps3 = _this2.asProps, _this2$asProps3$max = _this2$asProps3.max, max = _this2$asProps3$max === void 0 ? Number.MAX_SAFE_INTEGER : _this2$asProps3$max, min = _this2$asProps3.min, step = _this2$asProps3.step, value = _this2$asProps3.value;
303
+ var numberValue;
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
+ _defineProperty(_assertThisInitialized(_this2), "stepDown", function(event) {
315
+ var _this2$asProps4 = _this2.asProps, max = _this2$asProps4.max, _this2$asProps4$min = _this2$asProps4.min, min = _this2$asProps4$min === void 0 ? Number.MIN_SAFE_INTEGER : _this2$asProps4$min, step = _this2$asProps4.step, value = _this2$asProps4.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);
325
+ }
326
+ });
327
+ return _this2;
209
328
  }
210
- return I(c, [{
329
+ _createClass(Value2, [{
211
330
  key: "uncontrolledProps",
212
- value: function() {
213
- var n = this;
331
+ value: function uncontrolledProps() {
332
+ var _this3 = this;
214
333
  return {
215
334
  displayValue: null,
216
- value: [null, function(s) {
217
- var i = n.asProps, e = i.value, t = i.displayValue, a = n.valueParser(s, e, t), u = a.parsedValue, o = a.displayValue;
218
- return n.handlers.displayValue(o), u;
335
+ value: [null, function(newValue) {
336
+ var _this3$asProps = _this3.asProps, prevValue = _this3$asProps.value, prevDisplayValue = _this3$asProps.displayValue;
337
+ var _this3$valueParser = _this3.valueParser(newValue, prevValue, prevDisplayValue), parsedValue = _this3$valueParser.parsedValue, displayValue = _this3$valueParser.displayValue;
338
+ _this3.handlers.displayValue(displayValue);
339
+ return parsedValue;
219
340
  }]
220
341
  };
221
342
  }
222
343
  }, {
223
344
  key: "separatorDecimal",
224
- get: function() {
225
- var n = this.props.numberFormatter;
226
- return n.format(11.11).replace(/\d/g, "");
345
+ get: function get() {
346
+ var numberFormatter = this.props.numberFormatter;
347
+ return numberFormatter.format(11.11).replace(/\d/g, "");
227
348
  }
228
349
  }, {
229
350
  key: "separatorThousands",
230
- get: function() {
231
- var n = this.props.numberFormatter;
232
- return n.format(1111).replace(/\d/g, "");
351
+ get: function get() {
352
+ var numberFormatter = this.props.numberFormatter;
353
+ return numberFormatter.format(1111).replace(/\d/g, "");
233
354
  }
234
355
  }, {
235
356
  key: "round",
236
- value: function(n, s) {
237
- var i = Math.floor(s) === s ? 0 : s.toString().split(".")[1].length || 0;
238
- return i === 0 ? Number.parseFloat(n) : Number.parseFloat(n).toPrecision(i);
357
+ value: function round(value, step) {
358
+ var countDecimals = Math.floor(step) === step ? 0 : step.toString().split(".")[1].length || 0;
359
+ return countDecimals === 0 ? Number.parseFloat(value) : Number.parseFloat(value).toPrecision(countDecimals);
239
360
  }
240
361
  }, {
241
362
  key: "componentDidMount",
242
363
  value: (
243
364
  // https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling
244
- function() {
245
- var n;
246
- (n = this.valueInputRef.current) === null || n === void 0 || n.addEventListener("wheel", this.onWheel);
247
- var s = this.asProps, i = s.inputRef, e = s.value;
248
- if (i.current && (i.current.stepUp = this.stepUp, i.current.stepDown = this.stepDown), e !== "") {
249
- var t = this.valueParser(e, "", ""), a = t.displayValue;
250
- this.handlers.displayValue(a);
365
+ function componentDidMount() {
366
+ var _this$valueInputRef$c;
367
+ (_this$valueInputRef$c = this.valueInputRef.current) === null || _this$valueInputRef$c === void 0 ? void 0 : _this$valueInputRef$c.addEventListener("wheel", this.onWheel);
368
+ var _this$asProps2 = this.asProps, inputRef = _this$asProps2.inputRef, value = _this$asProps2.value;
369
+ if (inputRef.current) {
370
+ inputRef.current.stepUp = this.stepUp;
371
+ inputRef.current.stepDown = this.stepDown;
372
+ }
373
+ if (value !== "") {
374
+ var _this$valueParser = this.valueParser(value, "", ""), displayValue = _this$valueParser.displayValue;
375
+ this.handlers.displayValue(displayValue);
251
376
  }
252
377
  }
253
378
  )
254
379
  }, {
255
380
  key: "componentDidUpdate",
256
- value: function(n) {
257
- if (n.value !== this.props.value) {
258
- var s = this.valueParser(this.props.value, n.value, n.displayValue), i = s.displayValue;
259
- this.handlers.displayValue(i);
381
+ value: function componentDidUpdate(prevProps) {
382
+ if (prevProps.value !== this.props.value) {
383
+ var _this$valueParser2 = this.valueParser(this.props.value, prevProps.value, prevProps.displayValue), displayValue = _this$valueParser2.displayValue;
384
+ this.handlers.displayValue(displayValue);
260
385
  }
261
386
  }
262
387
  }, {
263
388
  key: "componentWillUnmount",
264
- value: function() {
265
- var n;
266
- (n = this.valueInputRef.current) === null || n === void 0 || n.removeEventListener("wheel", this.onWheel);
389
+ value: function componentWillUnmount() {
390
+ var _this$valueInputRef$c2;
391
+ (_this$valueInputRef$c2 = this.valueInputRef.current) === null || _this$valueInputRef$c2 === void 0 ? void 0 : _this$valueInputRef$c2.removeEventListener("wheel", this.onWheel);
267
392
  }
268
393
  }, {
269
394
  key: "render",
270
- value: function() {
271
- var n = this.asProps, s, i = V.Value, e = this.asProps, t = e.styles, a = e.min, u = e.max, o = e.step, d = e.forwardRef, p = e.inputRef, _ = e.displayValue;
272
- return s = w(t), /* @__PURE__ */ g.createElement(g.Fragment, null, /* @__PURE__ */ g.createElement(i, s.cn("SValue", D({}, R({
273
- autoComplete: "off",
274
- onBlur: this.handleValidation,
395
+ value: function render() {
396
+ var _ref2 = this.asProps, _ref5;
397
+ var SValue = Input.Value;
398
+ var _this$asProps3 = this.asProps, styles = _this$asProps3.styles, min = _this$asProps3.min, max = _this$asProps3.max, step = _this$asProps3.step, forwardRef = _this$asProps3.forwardRef, inputRef = _this$asProps3.inputRef, displayValue = _this$asProps3.displayValue;
399
+ return _ref5 = sstyled$1(styles), /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(SValue, _ref5.cn("SValue", _objectSpread({}, assignProps({
400
+ "autoComplete": "off",
401
+ "onBlur": this.handleValidation,
275
402
  "use:onChange": this.handleChange,
276
- onKeyDown: this.handleKeyDown,
277
- onKeyUp: this.handleKeyUp,
278
- onClick: this.handleClick,
279
- "use:ref": B(this.valueInputRef, p, d),
280
- "use:value": _,
281
- inputMode: Number.isInteger(o) ? "numeric" : "decimal",
282
- min: a,
283
- max: u,
284
- step: o
285
- }, n)))));
403
+ "onKeyDown": this.handleKeyDown,
404
+ "onKeyUp": this.handleKeyUp,
405
+ "onClick": this.handleClick,
406
+ "use:ref": forkRef(this.valueInputRef, inputRef, forwardRef),
407
+ "use:value": displayValue,
408
+ "inputMode": Number.isInteger(step) ? "numeric" : "decimal",
409
+ "min": min,
410
+ "max": max,
411
+ "step": step
412
+ }, _ref2)))));
286
413
  }
287
- }]), c;
288
- }($);
289
- l(E, "style", N);
290
- l(E, "defaultProps", {
414
+ }]);
415
+ return Value2;
416
+ }(Component);
417
+ _defineProperty(Value, "style", style);
418
+ _defineProperty(Value, "defaultProps", {
291
419
  defaultValue: "",
292
420
  defaultDisplayValue: "",
293
421
  step: 1
294
422
  });
295
- function T(h) {
296
- var v = arguments[0], c, r = h.Children, n = h.increment, s = h.decrement, i = h.size, e = h.styles, t = h.getI18nText, a = V.Addon, u = "button", o = "button";
297
- return c = w(e), /* @__PURE__ */ g.createElement(a, c.cn("SControls", D({}, R({
423
+ function Controls(props) {
424
+ var _ref3 = arguments[0], _ref6;
425
+ var Children = props.Children, increment = props.increment, decrement = props.decrement, size = props.size, styles = props.styles, getI18nText = props.getI18nText;
426
+ var SControls = Input.Addon;
427
+ var SUp = "button";
428
+ var SDown = "button";
429
+ return _ref6 = sstyled$1(styles), /* @__PURE__ */ React.createElement(SControls, _ref6.cn("SControls", _objectSpread({}, assignProps({
298
430
  "aria-hidden": "true"
299
- }, v))), /* @__PURE__ */ g.createElement(u, c.cn("SUp", {
300
- onClick: n,
301
- tabIndex: -1,
302
- type: "button",
303
- size: i,
304
- "aria-label": t("increment")
305
- }), /* @__PURE__ */ g.createElement(W, c.cn("IncrementIcon", {}))), /* @__PURE__ */ g.createElement(o, c.cn("SDown", {
306
- onClick: s,
307
- tabIndex: -1,
308
- type: "button",
309
- size: i,
310
- "aria-label": t("decrement")
311
- }), /* @__PURE__ */ g.createElement(K, c.cn("DecrementIcon", {}))), /* @__PURE__ */ g.createElement(r, c.cn("Children", {})));
431
+ }, _ref3))), /* @__PURE__ */ React.createElement(SUp, _ref6.cn("SUp", {
432
+ "onClick": increment,
433
+ "tabIndex": -1,
434
+ "type": "button",
435
+ "size": size,
436
+ "aria-label": getI18nText("increment")
437
+ }), /* @__PURE__ */ React.createElement(IncrementIcon, _ref6.cn("IncrementIcon", {}))), /* @__PURE__ */ React.createElement(SDown, _ref6.cn("SDown", {
438
+ "onClick": decrement,
439
+ "tabIndex": -1,
440
+ "type": "button",
441
+ "size": size,
442
+ "aria-label": getI18nText("decrement")
443
+ }), /* @__PURE__ */ React.createElement(DecrementIcon, _ref6.cn("DecrementIcon", {}))), /* @__PURE__ */ React.createElement(Children, _ref6.cn("Children", {})));
312
444
  }
313
- T.style = N;
314
- const ue = z(P, {
315
- Value: E,
316
- Controls: T,
317
- Addon: V.Addon
445
+ Controls.style = style;
446
+ const InputNumber$1 = createComponent(InputNumber, {
447
+ Value,
448
+ Controls,
449
+ Addon: Input.Addon
318
450
  });
319
451
  export {
320
- ue as default,
321
- H as parseValueWithMinMax
452
+ InputNumber$1 as default,
453
+ parseValueWithMinMax
322
454
  };