@semcore/input-number 3.0.2 → 3.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/lib/cjs/InputNumber.js +24 -24
- package/lib/cjs/InputNumber.js.map +1 -1
- package/lib/cjs/index.js +5 -1
- package/lib/es6/InputNumber.js +18 -23
- package/lib/es6/InputNumber.js.map +1 -1
- package/package.json +8 -2
- package/src/InputNumber.js +2 -6
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
+
## [3.0.5] - 2022-02-24
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added repository field to package.json file.
|
|
10
|
+
|
|
11
|
+
## [3.0.4] - 2021-8-26
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Add 'sideEffect=false' for more optimal build via webpack
|
|
16
|
+
|
|
17
|
+
## [3.0.3] - 2020-08-17
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- Fixed entering invalid values.
|
|
22
|
+
|
|
5
23
|
## [3.0.2] - 2020-06-16
|
|
6
24
|
|
|
7
25
|
### Added
|
package/lib/cjs/InputNumber.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
4
|
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
@@ -31,9 +31,13 @@ var _input = _interopRequireDefault(require("@semcore/input"));
|
|
|
31
31
|
|
|
32
32
|
var _buttons = _interopRequireDefault(require("./buttons"));
|
|
33
33
|
|
|
34
|
-
function
|
|
34
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
35
|
+
|
|
36
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
37
|
|
|
36
|
-
function
|
|
38
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
39
|
+
|
|
40
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
37
41
|
|
|
38
42
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
39
43
|
|
|
@@ -44,23 +48,23 @@ var style = (
|
|
|
44
48
|
/*__reshadow_css_start__*/
|
|
45
49
|
_core.sstyled.insert(
|
|
46
50
|
/*__inner_css_start__*/
|
|
47
|
-
".
|
|
51
|
+
".___SInputNumber_14xqd_gg_:hover .___SValue_14xqd_gg_:not(.__disabled_14xqd_gg_)~.___SControls_14xqd_gg_{visibility:visible}.___SValue_14xqd_gg_:focus~.___SControls_14xqd_gg_{visibility:visible}.___SControls_14xqd_gg_{display:flex;flex-flow:column;justify-content:center;height:100%;visibility:hidden;box-sizing:border-box}.___SControls_14xqd_gg_._size_s_14xqd_gg_{width:20px}.___SControls_14xqd_gg_._size_m_14xqd_gg_{width:20px}.___SControls_14xqd_gg_._size_l_14xqd_gg_{width:25px}.___SControls_14xqd_gg_._size_xl_14xqd_gg_{width:32px}.___SControls_14xqd_gg_.__showControls_14xqd_gg_{visibility:visible}.___SDown_14xqd_gg_,.___SUp_14xqd_gg_{color:#aaaaaa;box-sizing:border-box;display:inline-flex;justify-content:center;border:none;background:none}.___SDown_14xqd_gg_:focus,.___SUp_14xqd_gg_:focus{outline:none}.___SValue_14xqd_gg_::-webkit-inner-spin-button,.___SValue_14xqd_gg_::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.___SValue_14xqd_gg_._type_number_14xqd_gg_{-moz-appearance:textfield}.___SValue_14xqd_gg_.__disabled_14xqd_gg_~.___SControls_14xqd_gg_{opacity:0.3}.___SValue_14xqd_gg_:not(.__disabled_14xqd_gg_)~.___SControls_14xqd_gg_ .___SUp_14xqd_gg_:hover{cursor:pointer;color:#666666}.___SValue_14xqd_gg_:not(.__disabled_14xqd_gg_)~.___SControls_14xqd_gg_ .___SDown_14xqd_gg_:hover{cursor:pointer;color:#666666}.___SUp_14xqd_gg_._size_m_14xqd_gg_{padding:6px 6px 2px}.___SDown_14xqd_gg_._size_m_14xqd_gg_{padding:2px 6px 6px}.___SUp_14xqd_gg_._size_l_14xqd_gg_{padding:7px 8px 3px}.___SDown_14xqd_gg_._size_l_14xqd_gg_{padding:3px 8px 7px}.___SUp_14xqd_gg_._size_xl_14xqd_gg_{padding:11px 11px 4px}.___SDown_14xqd_gg_._size_xl_14xqd_gg_{padding:4px 11px 11px}"
|
|
48
52
|
/*__inner_css_end__*/
|
|
49
53
|
, "tqkzei_gg_")
|
|
50
54
|
/*__reshadow_css_end__*/
|
|
51
55
|
, {
|
|
52
|
-
"__SInputNumber": "
|
|
53
|
-
"__SValue": "
|
|
54
|
-
"_disabled": "
|
|
55
|
-
"__SControls": "
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"_size_l": "
|
|
59
|
-
"_size_xl": "
|
|
60
|
-
"_showControls": "
|
|
61
|
-
"__SDown": "
|
|
62
|
-
"__SUp": "
|
|
63
|
-
"_type_number": "
|
|
56
|
+
"__SInputNumber": "___SInputNumber_14xqd_gg_",
|
|
57
|
+
"__SValue": "___SValue_14xqd_gg_",
|
|
58
|
+
"_disabled": "__disabled_14xqd_gg_",
|
|
59
|
+
"__SControls": "___SControls_14xqd_gg_",
|
|
60
|
+
"_size_s": "_size_s_14xqd_gg_",
|
|
61
|
+
"_size_m": "_size_m_14xqd_gg_",
|
|
62
|
+
"_size_l": "_size_l_14xqd_gg_",
|
|
63
|
+
"_size_xl": "_size_xl_14xqd_gg_",
|
|
64
|
+
"_showControls": "__showControls_14xqd_gg_",
|
|
65
|
+
"__SDown": "___SDown_14xqd_gg_",
|
|
66
|
+
"__SUp": "___SUp_14xqd_gg_",
|
|
67
|
+
"_type_number": "_type_number_14xqd_gg_"
|
|
64
68
|
});
|
|
65
69
|
|
|
66
70
|
function parseValueWithMinMax(value) {
|
|
@@ -165,9 +169,6 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
165
169
|
}
|
|
166
170
|
|
|
167
171
|
_this2 = _super2.call.apply(_super2, [this].concat(args));
|
|
168
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "state", {
|
|
169
|
-
reactKey: undefined
|
|
170
|
-
});
|
|
171
172
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "handleValidation", function (e) {
|
|
172
173
|
var _this2$asProps = _this2.asProps,
|
|
173
174
|
value = _this2$asProps.value,
|
|
@@ -176,9 +177,9 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
176
177
|
step = _this2$asProps.step;
|
|
177
178
|
|
|
178
179
|
if (Number.isNaN(e.currentTarget.valueAsNumber)) {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
180
|
+
e.currentTarget.value = '';
|
|
181
|
+
|
|
182
|
+
_this2.handlers.value('', e);
|
|
182
183
|
} else {
|
|
183
184
|
var numberValue = parseValueWithMinMax(Number.parseFloat(value), min, max);
|
|
184
185
|
|
|
@@ -224,7 +225,6 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
224
225
|
|
|
225
226
|
$inputHandlers.current = this.handlers;
|
|
226
227
|
return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SValue, _ref5.cn("SValue", _objectSpread({}, (0, _core.assignProps)({
|
|
227
|
-
"key": this.state.reactKey,
|
|
228
228
|
"type": "number",
|
|
229
229
|
"autoComplete": "off",
|
|
230
230
|
"onBlur": this.handleValidation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/InputNumber.js"],"names":["parseValueWithMinMax","value","min","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","IconUp","size","BUTTONS","up","IconDown","down","InputNumber","React","createRef","e","inputRef","current","stepUp","inputHandlersRef","stepDown","ref","$inputHandlers","asProps","inc","handlerInc","dec","handlerDec","SInputNumber","Input","style","Component","Value","
|
|
1
|
+
{"version":3,"sources":["../../src/InputNumber.js"],"names":["parseValueWithMinMax","value","min","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","IconUp","size","BUTTONS","up","IconDown","down","InputNumber","React","createRef","e","inputRef","current","stepUp","inputHandlersRef","stepDown","ref","$inputHandlers","asProps","inc","handlerInc","dec","handlerDec","SInputNumber","Input","style","Component","Value","step","isNaN","currentTarget","valueAsNumber","handlers","numberValue","parseFloat","r","roundRemainder","abs","String","countDecimals","floor","toString","split","length","toPrecision","SValue","styles","handleValidation","defaultValue","Controls","props","Children","SControls","Addon","SUp","SDown"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport BUTTONS from './buttons';\n\nimport style from './style/input-number.shadow.css';\n\nfunction parseValueWithMinMax(value, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(max, value));\n}\n\nconst IconUp = ({ size }) => BUTTONS.up[size] || BUTTONS.up['m'];\nconst IconDown = ({ size }) => BUTTONS.down[size] || BUTTONS.down['m'];\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static defaultProps = {\n size: 'm',\n };\n\n inputRef = React.createRef();\n inputHandlersRef = React.createRef();\n\n handlerInc = (e) => {\n // TODO: IE11 dont work\n this.inputRef.current?.stepUp && this.inputRef.current?.stepUp();\n this.inputHandlersRef.current?.value(this.inputRef.current.value, e);\n };\n\n handlerDec = (e) => {\n // TODO: IE11 dont work\n this.inputRef.current?.stepDown && this.inputRef.current?.stepDown();\n this.inputHandlersRef.current?.value(this.inputRef.current.value, e);\n };\n\n getValueProps() {\n return {\n ref: this.inputRef,\n $inputHandlers: this.inputHandlersRef,\n };\n }\n\n getControlsProps() {\n const { size } = this.asProps;\n return {\n size,\n inc: this.handlerInc,\n dec: this.handlerDec,\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 uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n roundRemainder(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 = (e) => {\n const { value, min, max, step } = this.asProps;\n if (Number.isNaN(e.currentTarget.valueAsNumber)) {\n e.currentTarget.value = '';\n this.handlers.value('', e);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(value), min, max);\n const r = this.roundRemainder(numberValue % step, step);\n if (r !== 0) {\n if (r >= step / 2) {\n numberValue += step - r;\n } else if (Math.abs(r) < step) {\n numberValue -= r;\n }\n }\n this.handlers.value(String(numberValue), e);\n }\n };\n\n render() {\n const SValue = Root;\n const { styles, $inputHandlers } = this.asProps;\n\n // 🐒 не делайте так\n $inputHandlers.current = this.handlers;\n\n return sstyled(styles)(\n <SValue\n render={Input.Value}\n type=\"number\"\n autoComplete=\"off\"\n onBlur={this.handleValidation}\n onInvalid={this.handleValidation}\n />,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, inc, dec, size, styles } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon}>\n <SUp onClick={inc} tabIndex={-1} type=\"button\" size={size} aria-label=\"Increment number\">\n <IconUp size={size} />\n </SUp>\n <SDown onClick={dec} tabIndex={-1} type=\"button\" size={size} aria-label=\"Decrement number\">\n <IconDown size={size} />\n </SDown>\n <Children />\n </SControls>,\n );\n}\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"file":"InputNumber.js"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
@@ -26,4 +26,8 @@ Object.keys(_InputNumber).forEach(function (key) {
|
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
28
|
});
|
|
29
|
+
|
|
30
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
|
+
|
|
32
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
33
|
//# sourceMappingURL=index.js.map
|
package/lib/es6/InputNumber.js
CHANGED
|
@@ -10,9 +10,9 @@ import { assignProps as _assignProps3 } from "@semcore/core";
|
|
|
10
10
|
import { assignProps as _assignProps2 } from "@semcore/core";
|
|
11
11
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
12
12
|
|
|
13
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
13
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
14
14
|
|
|
15
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
16
|
|
|
17
17
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
18
18
|
|
|
@@ -28,23 +28,23 @@ var style = (
|
|
|
28
28
|
/*__reshadow_css_start__*/
|
|
29
29
|
_sstyled.insert(
|
|
30
30
|
/*__inner_css_start__*/
|
|
31
|
-
".
|
|
31
|
+
".___SInputNumber_14xqd_gg_:hover .___SValue_14xqd_gg_:not(.__disabled_14xqd_gg_)~.___SControls_14xqd_gg_{visibility:visible}.___SValue_14xqd_gg_:focus~.___SControls_14xqd_gg_{visibility:visible}.___SControls_14xqd_gg_{display:flex;flex-flow:column;justify-content:center;height:100%;visibility:hidden;box-sizing:border-box}.___SControls_14xqd_gg_._size_s_14xqd_gg_{width:20px}.___SControls_14xqd_gg_._size_m_14xqd_gg_{width:20px}.___SControls_14xqd_gg_._size_l_14xqd_gg_{width:25px}.___SControls_14xqd_gg_._size_xl_14xqd_gg_{width:32px}.___SControls_14xqd_gg_.__showControls_14xqd_gg_{visibility:visible}.___SDown_14xqd_gg_,.___SUp_14xqd_gg_{color:#aaaaaa;box-sizing:border-box;display:inline-flex;justify-content:center;border:none;background:none}.___SDown_14xqd_gg_:focus,.___SUp_14xqd_gg_:focus{outline:none}.___SValue_14xqd_gg_::-webkit-inner-spin-button,.___SValue_14xqd_gg_::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.___SValue_14xqd_gg_._type_number_14xqd_gg_{-moz-appearance:textfield}.___SValue_14xqd_gg_.__disabled_14xqd_gg_~.___SControls_14xqd_gg_{opacity:0.3}.___SValue_14xqd_gg_:not(.__disabled_14xqd_gg_)~.___SControls_14xqd_gg_ .___SUp_14xqd_gg_:hover{cursor:pointer;color:#666666}.___SValue_14xqd_gg_:not(.__disabled_14xqd_gg_)~.___SControls_14xqd_gg_ .___SDown_14xqd_gg_:hover{cursor:pointer;color:#666666}.___SUp_14xqd_gg_._size_m_14xqd_gg_{padding:6px 6px 2px}.___SDown_14xqd_gg_._size_m_14xqd_gg_{padding:2px 6px 6px}.___SUp_14xqd_gg_._size_l_14xqd_gg_{padding:7px 8px 3px}.___SDown_14xqd_gg_._size_l_14xqd_gg_{padding:3px 8px 7px}.___SUp_14xqd_gg_._size_xl_14xqd_gg_{padding:11px 11px 4px}.___SDown_14xqd_gg_._size_xl_14xqd_gg_{padding:4px 11px 11px}"
|
|
32
32
|
/*__inner_css_end__*/
|
|
33
33
|
, "tqkzei_gg_")
|
|
34
34
|
/*__reshadow_css_end__*/
|
|
35
35
|
, {
|
|
36
|
-
"__SInputNumber": "
|
|
37
|
-
"__SValue": "
|
|
38
|
-
"_disabled": "
|
|
39
|
-
"__SControls": "
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"_size_l": "
|
|
43
|
-
"_size_xl": "
|
|
44
|
-
"_showControls": "
|
|
45
|
-
"__SDown": "
|
|
46
|
-
"__SUp": "
|
|
47
|
-
"_type_number": "
|
|
36
|
+
"__SInputNumber": "___SInputNumber_14xqd_gg_",
|
|
37
|
+
"__SValue": "___SValue_14xqd_gg_",
|
|
38
|
+
"_disabled": "__disabled_14xqd_gg_",
|
|
39
|
+
"__SControls": "___SControls_14xqd_gg_",
|
|
40
|
+
"_size_s": "_size_s_14xqd_gg_",
|
|
41
|
+
"_size_m": "_size_m_14xqd_gg_",
|
|
42
|
+
"_size_l": "_size_l_14xqd_gg_",
|
|
43
|
+
"_size_xl": "_size_xl_14xqd_gg_",
|
|
44
|
+
"_showControls": "__showControls_14xqd_gg_",
|
|
45
|
+
"__SDown": "___SDown_14xqd_gg_",
|
|
46
|
+
"__SUp": "___SUp_14xqd_gg_",
|
|
47
|
+
"_type_number": "_type_number_14xqd_gg_"
|
|
48
48
|
});
|
|
49
49
|
|
|
50
50
|
function parseValueWithMinMax(value) {
|
|
@@ -158,10 +158,6 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
158
158
|
|
|
159
159
|
_this2 = _super2.call.apply(_super2, [this].concat(args));
|
|
160
160
|
|
|
161
|
-
_defineProperty(_assertThisInitialized(_this2), "state", {
|
|
162
|
-
reactKey: undefined
|
|
163
|
-
});
|
|
164
|
-
|
|
165
161
|
_defineProperty(_assertThisInitialized(_this2), "handleValidation", function (e) {
|
|
166
162
|
var _this2$asProps = _this2.asProps,
|
|
167
163
|
value = _this2$asProps.value,
|
|
@@ -170,9 +166,9 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
170
166
|
step = _this2$asProps.step;
|
|
171
167
|
|
|
172
168
|
if (Number.isNaN(e.currentTarget.valueAsNumber)) {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
169
|
+
e.currentTarget.value = '';
|
|
170
|
+
|
|
171
|
+
_this2.handlers.value('', e);
|
|
176
172
|
} else {
|
|
177
173
|
var numberValue = parseValueWithMinMax(Number.parseFloat(value), min, max);
|
|
178
174
|
|
|
@@ -219,7 +215,6 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
|
219
215
|
|
|
220
216
|
$inputHandlers.current = this.handlers;
|
|
221
217
|
return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SValue, _ref5.cn("SValue", _objectSpread({}, _assignProps2({
|
|
222
|
-
"key": this.state.reactKey,
|
|
223
218
|
"type": "number",
|
|
224
219
|
"autoComplete": "off",
|
|
225
220
|
"onBlur": this.handleValidation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/InputNumber.js"],"names":["React","createComponent","Component","sstyled","Root","Input","BUTTONS","parseValueWithMinMax","value","min","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","IconUp","size","up","IconDown","down","InputNumber","createRef","e","inputRef","current","stepUp","inputHandlersRef","stepDown","ref","$inputHandlers","asProps","inc","handlerInc","dec","handlerDec","SInputNumber","style","Value","
|
|
1
|
+
{"version":3,"sources":["../../src/InputNumber.js"],"names":["React","createComponent","Component","sstyled","Root","Input","BUTTONS","parseValueWithMinMax","value","min","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","IconUp","size","up","IconDown","down","InputNumber","createRef","e","inputRef","current","stepUp","inputHandlersRef","stepDown","ref","$inputHandlers","asProps","inc","handlerInc","dec","handlerDec","SInputNumber","style","Value","step","isNaN","currentTarget","valueAsNumber","handlers","numberValue","parseFloat","r","roundRemainder","abs","String","countDecimals","floor","toString","split","length","toPrecision","SValue","styles","handleValidation","defaultValue","Controls","props","Children","SControls","Addon","SUp","SDown"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport BUTTONS from './buttons';\n\nimport style from './style/input-number.shadow.css';\n\nfunction parseValueWithMinMax(value, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(max, value));\n}\n\nconst IconUp = ({ size }) => BUTTONS.up[size] || BUTTONS.up['m'];\nconst IconDown = ({ size }) => BUTTONS.down[size] || BUTTONS.down['m'];\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static defaultProps = {\n size: 'm',\n };\n\n inputRef = React.createRef();\n inputHandlersRef = React.createRef();\n\n handlerInc = (e) => {\n // TODO: IE11 dont work\n this.inputRef.current?.stepUp && this.inputRef.current?.stepUp();\n this.inputHandlersRef.current?.value(this.inputRef.current.value, e);\n };\n\n handlerDec = (e) => {\n // TODO: IE11 dont work\n this.inputRef.current?.stepDown && this.inputRef.current?.stepDown();\n this.inputHandlersRef.current?.value(this.inputRef.current.value, e);\n };\n\n getValueProps() {\n return {\n ref: this.inputRef,\n $inputHandlers: this.inputHandlersRef,\n };\n }\n\n getControlsProps() {\n const { size } = this.asProps;\n return {\n size,\n inc: this.handlerInc,\n dec: this.handlerDec,\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 uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n roundRemainder(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 = (e) => {\n const { value, min, max, step } = this.asProps;\n if (Number.isNaN(e.currentTarget.valueAsNumber)) {\n e.currentTarget.value = '';\n this.handlers.value('', e);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(value), min, max);\n const r = this.roundRemainder(numberValue % step, step);\n if (r !== 0) {\n if (r >= step / 2) {\n numberValue += step - r;\n } else if (Math.abs(r) < step) {\n numberValue -= r;\n }\n }\n this.handlers.value(String(numberValue), e);\n }\n };\n\n render() {\n const SValue = Root;\n const { styles, $inputHandlers } = this.asProps;\n\n // 🐒 не делайте так\n $inputHandlers.current = this.handlers;\n\n return sstyled(styles)(\n <SValue\n render={Input.Value}\n type=\"number\"\n autoComplete=\"off\"\n onBlur={this.handleValidation}\n onInvalid={this.handleValidation}\n />,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, inc, dec, size, styles } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon}>\n <SUp onClick={inc} tabIndex={-1} type=\"button\" size={size} aria-label=\"Increment number\">\n <IconUp size={size} />\n </SUp>\n <SDown onClick={dec} tabIndex={-1} type=\"button\" size={size} aria-label=\"Decrement number\">\n <IconDown size={size} />\n </SDown>\n <Children />\n </SControls>,\n );\n}\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"file":"InputNumber.js"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/input-number",
|
|
3
3
|
"description": "SEMRush InputNumber Component",
|
|
4
|
-
"version": "3.0.
|
|
4
|
+
"version": "3.0.5",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
8
|
+
"sideEffects": false,
|
|
8
9
|
"author": "Roman Lysov <r.lysov@semrush.com>",
|
|
9
10
|
"license": "MIT",
|
|
10
11
|
"scripts": {
|
|
@@ -20,6 +21,11 @@
|
|
|
20
21
|
"react": "16.8 - 17"
|
|
21
22
|
},
|
|
22
23
|
"jest": {
|
|
23
|
-
"preset": "jest-preset-ui"
|
|
24
|
+
"preset": "@semcore/jest-preset-ui"
|
|
25
|
+
},
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "https://github.com/semrush/intergalactic.git",
|
|
29
|
+
"directory": "semcore/input-number"
|
|
24
30
|
}
|
|
25
31
|
}
|
package/src/InputNumber.js
CHANGED
|
@@ -62,10 +62,6 @@ class Value extends Component {
|
|
|
62
62
|
step: 1,
|
|
63
63
|
};
|
|
64
64
|
|
|
65
|
-
state = {
|
|
66
|
-
reactKey: undefined,
|
|
67
|
-
};
|
|
68
|
-
|
|
69
65
|
uncontrolledProps() {
|
|
70
66
|
return {
|
|
71
67
|
value: null,
|
|
@@ -82,7 +78,8 @@ class Value extends Component {
|
|
|
82
78
|
handleValidation = (e) => {
|
|
83
79
|
const { value, min, max, step } = this.asProps;
|
|
84
80
|
if (Number.isNaN(e.currentTarget.valueAsNumber)) {
|
|
85
|
-
|
|
81
|
+
e.currentTarget.value = '';
|
|
82
|
+
this.handlers.value('', e);
|
|
86
83
|
} else {
|
|
87
84
|
let numberValue = parseValueWithMinMax(Number.parseFloat(value), min, max);
|
|
88
85
|
const r = this.roundRemainder(numberValue % step, step);
|
|
@@ -107,7 +104,6 @@ class Value extends Component {
|
|
|
107
104
|
return sstyled(styles)(
|
|
108
105
|
<SValue
|
|
109
106
|
render={Input.Value}
|
|
110
|
-
key={this.state.reactKey}
|
|
111
107
|
type="number"
|
|
112
108
|
autoComplete="off"
|
|
113
109
|
onBlur={this.handleValidation}
|