@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 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
@@ -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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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 _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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
- ".___SInputNumber_ym629_gg_:hover .___SValue_ym629_gg_:not(.__disabled_ym629_gg_)~.___SControls_ym629_gg_,.___SValue_ym629_gg_:focus~.___SControls_ym629_gg_{visibility:visible}.___SControls_ym629_gg_{display:flex;flex-flow:column;justify-content:center;height:100%;visibility:hidden;box-sizing:border-box}.___SControls_ym629_gg_._size_m_ym629_gg_,.___SControls_ym629_gg_._size_s_ym629_gg_{width:20px}.___SControls_ym629_gg_._size_l_ym629_gg_{width:25px}.___SControls_ym629_gg_._size_xl_ym629_gg_{width:32px}.___SControls_ym629_gg_.__showControls_ym629_gg_{visibility:visible}.___SDown_ym629_gg_,.___SUp_ym629_gg_{color:#aaa;box-sizing:border-box;display:inline-flex;justify-content:center;border:none;background:none}.___SDown_ym629_gg_:focus,.___SUp_ym629_gg_:focus{outline:none}.___SValue_ym629_gg_::-webkit-inner-spin-button,.___SValue_ym629_gg_::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.___SValue_ym629_gg_._type_number_ym629_gg_{-moz-appearance:textfield}.___SValue_ym629_gg_.__disabled_ym629_gg_~.___SControls_ym629_gg_{opacity:.3}.___SValue_ym629_gg_:not(.__disabled_ym629_gg_)~.___SControls_ym629_gg_ .___SDown_ym629_gg_:hover,.___SValue_ym629_gg_:not(.__disabled_ym629_gg_)~.___SControls_ym629_gg_ .___SUp_ym629_gg_:hover{cursor:pointer;color:#666}.___SUp_ym629_gg_._size_m_ym629_gg_{padding:6px 6px 2px}.___SDown_ym629_gg_._size_m_ym629_gg_{padding:2px 6px 6px}.___SUp_ym629_gg_._size_l_ym629_gg_{padding:7px 8px 3px}.___SDown_ym629_gg_._size_l_ym629_gg_{padding:3px 8px 7px}.___SUp_ym629_gg_._size_xl_ym629_gg_{padding:11px 11px 4px}.___SDown_ym629_gg_._size_xl_ym629_gg_{padding:4px 11px 11px}"
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": "___SInputNumber_ym629_gg_",
53
- "__SValue": "___SValue_ym629_gg_",
54
- "_disabled": "__disabled_ym629_gg_",
55
- "__SControls": "___SControls_ym629_gg_",
56
- "_size_m": "_size_m_ym629_gg_",
57
- "_size_s": "_size_s_ym629_gg_",
58
- "_size_l": "_size_l_ym629_gg_",
59
- "_size_xl": "_size_xl_ym629_gg_",
60
- "_showControls": "__showControls_ym629_gg_",
61
- "__SDown": "___SDown_ym629_gg_",
62
- "__SUp": "___SUp_ym629_gg_",
63
- "_type_number": "_type_number_ym629_gg_"
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
- _this2.setState({
180
- reactKey: Math.random()
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","reactKey","undefined","step","isNaN","currentTarget","valueAsNumber","setState","random","numberValue","parseFloat","r","roundRemainder","abs","handlers","String","countDecimals","floor","toString","split","length","toPrecision","SValue","styles","state","handleValidation","defaultValue","Controls","props","Children","SControls","Addon","SUp","SDown"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AADA;;AAEA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,oBAAT,CAA8BC,KAA9B,EAAmG;AAAA,MAA9DC,GAA8D,uEAAxDC,MAAM,CAACC,gBAAiD;AAAA,MAA/BC,GAA+B,uEAAzBF,MAAM,CAACG,gBAAkB;AACjG,SAAOC,IAAI,CAACF,GAAL,CAASH,GAAT,EAAcK,IAAI,CAACL,GAAL,CAASG,GAAT,EAAcJ,KAAd,CAAd,CAAP;AACD;;AAED,IAAMO,MAAM,GAAG,SAATA,MAAS;AAAA,MAAGC,IAAH,SAAGA,IAAH;AAAA,SAAcC,oBAAQC,EAAR,CAAWF,IAAX,KAAoBC,oBAAQC,EAAR,CAAW,GAAX,CAAlC;AAAA,CAAf;;AACA,IAAMC,QAAQ,GAAG,SAAXA,QAAW;AAAA,MAAGH,IAAH,SAAGA,IAAH;AAAA,SAAcC,oBAAQG,IAAR,CAAaJ,IAAb,KAAsBC,oBAAQG,IAAR,CAAa,GAAb,CAApC;AAAA,CAAjB;;IAEMC,W;;;;;;;;;;;;;;;8GAOOC,kBAAMC,SAAN,E;sHACQD,kBAAMC,SAAN,E;mGAEN,UAACC,CAAD,EAAO;AAAA;;AAClB;AACA,sCAAKC,QAAL,CAAcC,OAAd,gFAAuBC,MAAvB,gCAAiC,MAAKF,QAAL,CAAcC,OAA/C,2DAAiC,uBAAuBC,MAAvB,EAAjC;AACA,qCAAKC,gBAAL,CAAsBF,OAAtB,gFAA+BlB,KAA/B,CAAqC,MAAKiB,QAAL,CAAcC,OAAd,CAAsBlB,KAA3D,EAAkEgB,CAAlE;AACD,K;mGAEY,UAACA,CAAD,EAAO;AAAA;;AAClB;AACA,uCAAKC,QAAL,CAAcC,OAAd,kFAAuBG,QAAvB,gCAAmC,MAAKJ,QAAL,CAAcC,OAAjD,2DAAmC,uBAAuBG,QAAvB,EAAnC;AACA,sCAAKD,gBAAL,CAAsBF,OAAtB,kFAA+BlB,KAA/B,CAAqC,MAAKiB,QAAL,CAAcC,OAAd,CAAsBlB,KAA3D,EAAkEgB,CAAlE;AACD,K;;;;;;WAED,yBAAgB;AACd,aAAO;AACLM,QAAAA,GAAG,EAAE,KAAKL,QADL;AAELM,QAAAA,cAAc,EAAE,KAAKH;AAFhB,OAAP;AAID;;;WAED,4BAAmB;AAAA,UACTZ,IADS,GACA,KAAKgB,OADL,CACThB,IADS;AAEjB,aAAO;AACLA,QAAAA,IAAI,EAAJA,IADK;AAELiB,QAAAA,GAAG,EAAE,KAAKC,UAFL;AAGLC,QAAAA,GAAG,EAAE,KAAKC;AAHL,OAAP;AAKD;;;WAED,kBAAS;AAAA;AAAA;;AACP,UAAMC,YAAY,GACuCC,iBADzD;AACA,qBAAO,mBAAQ,KAAKN,OAAL,CAAaO,KAArB,CAAP,eAAmC,gCAAC,YAAD,gFAAnC;AACD;;;EAzCuBC,e;;iCAApBnB,W,iBACiB,a;iCADjBA,W,WAEWkB,K;iCAFXlB,W,kBAGkB;AACpBL,EAAAA,IAAI,EAAE;AADc,C;;IAyClByB,K;;;;;;;;;;;;;;;+FAMI;AACNC,MAAAA,QAAQ,EAAEC;AADJ,K;0GAiBW,UAACnB,CAAD,EAAO;AAAA,2BACU,OAAKQ,OADf;AAAA,UAChBxB,KADgB,kBAChBA,KADgB;AAAA,UACTC,GADS,kBACTA,GADS;AAAA,UACJG,GADI,kBACJA,GADI;AAAA,UACCgC,IADD,kBACCA,IADD;;AAExB,UAAIlC,MAAM,CAACmC,KAAP,CAAarB,CAAC,CAACsB,aAAF,CAAgBC,aAA7B,CAAJ,EAAiD;AAC/C,eAAKC,QAAL,CAAc;AAAEN,UAAAA,QAAQ,EAAE5B,IAAI,CAACmC,MAAL;AAAZ,SAAd;AACD,OAFD,MAEO;AACL,YAAIC,WAAW,GAAG3C,oBAAoB,CAACG,MAAM,CAACyC,UAAP,CAAkB3C,KAAlB,CAAD,EAA2BC,GAA3B,EAAgCG,GAAhC,CAAtC;;AACA,YAAMwC,CAAC,GAAG,OAAKC,cAAL,CAAoBH,WAAW,GAAGN,IAAlC,EAAwCA,IAAxC,CAAV;;AACA,YAAIQ,CAAC,KAAK,CAAV,EAAa;AACX,cAAIA,CAAC,IAAIR,IAAI,GAAG,CAAhB,EAAmB;AACjBM,YAAAA,WAAW,IAAIN,IAAI,GAAGQ,CAAtB;AACD,WAFD,MAEO,IAAItC,IAAI,CAACwC,GAAL,CAASF,CAAT,IAAcR,IAAlB,EAAwB;AAC7BM,YAAAA,WAAW,IAAIE,CAAf;AACD;AACF;;AACD,eAAKG,QAAL,CAAc/C,KAAd,CAAoBgD,MAAM,CAACN,WAAD,CAA1B,EAAyC1B,CAAzC;AACD;AACF,K;;;;;;WA7BD,6BAAoB;AAClB,aAAO;AACLhB,QAAAA,KAAK,EAAE;AADF,OAAP;AAGD;;;WAED,wBAAeA,KAAf,EAAsBoC,IAAtB,EAA4B;AAC1B,UAAMa,aAAa,GAAG3C,IAAI,CAAC4C,KAAL,CAAWd,IAAX,MAAqBA,IAArB,GAA4B,CAA5B,GAAgCA,IAAI,CAACe,QAAL,GAAgBC,KAAhB,CAAsB,GAAtB,EAA2B,CAA3B,EAA8BC,MAA9B,IAAwC,CAA9F;AACA,aAAOJ,aAAa,KAAK,CAAlB,GACH/C,MAAM,CAACyC,UAAP,CAAkB3C,KAAlB,CADG,GAEHE,MAAM,CAACyC,UAAP,CAAkB3C,KAAlB,EAAyBsD,WAAzB,CAAqCL,aAArC,CAFJ;AAGD;;;WAoBD,kBAAS;AAAA;AAAA;;AACP,UAAMM,MAAM,GAQAzB,kBAAMG,KARlB;AADO,0BAE4B,KAAKT,OAFjC;AAAA,UAECgC,MAFD,iBAECA,MAFD;AAAA,UAESjC,cAFT,iBAESA,cAFT,EAIP;;AACAA,MAAAA,cAAc,CAACL,OAAf,GAAyB,KAAK6B,QAA9B;AAEA,qBAAO,mBAAQS,MAAR,CAAP,eACE,gCAAC,MAAD;AAAA,eAEO,KAAKC,KAAL,CAAWvB,QAFlB;AAAA,gBAGO,QAHP;AAAA,wBAIe,KAJf;AAAA,kBAKU,KAAKwB,gBALf;AAAA,qBAMa,KAAKA;AANlB,kBADF;AAUD;;;EA1DiB1B,e;;iCAAdC,K,kBACkB;AACpB0B,EAAAA,YAAY,EAAE,EADM;AAEpBvB,EAAAA,IAAI,EAAE;AAFc,C;;AA4DxB,SAASwB,QAAT,CAAkBC,KAAlB,EAAyB;AAAA;AAAA;;AAAA,MACfC,QADe,GACsBD,KADtB,CACfC,QADe;AAAA,MACLrC,GADK,GACsBoC,KADtB,CACLpC,GADK;AAAA,MACAE,GADA,GACsBkC,KADtB,CACAlC,GADA;AAAA,MACKnB,IADL,GACsBqD,KADtB,CACKrD,IADL;AAAA,MACWgD,MADX,GACsBK,KADtB,CACWL,MADX;AAEvB,MAAMO,SAAS,GAKMjC,kBAAMkC,KAL3B;AACA,MAAMC,GAAG,GAAG,QAAZ;AACA,MAAMC,KAAK,GAAG,QAAd;AAEA,iBAAO,mBAAQV,MAAR,CAAP,eACE,gCAAC,SAAD,4FACE,gCAAC,GAAD;AAAA,eAAc/B,GAAd;AAAA,gBAA6B,CAAC,CAA9B;AAAA,YAAsC,QAAtC;AAAA,YAAqDjB,IAArD;AAAA,kBAAsE;AAAtE,mBACE,gCAAC,MAAD;AAAA,YAAcA;AAAd,KADF,CADF,eAIE,gCAAC,KAAD;AAAA,eAAgBmB,GAAhB;AAAA,gBAA+B,CAAC,CAAhC;AAAA,YAAwC,QAAxC;AAAA,YAAuDnB,IAAvD;AAAA,kBAAwE;AAAxE,mBACE,gCAAC,QAAD;AAAA,YAAgBA;AAAhB,KADF,CAJF,eAOE,gCAAC,QAAD,2BAPF,CADF;AAWD;;eAEc,sBAAgBK,WAAhB,EAA6B;AAC1CoB,EAAAA,KAAK,EAALA,KAD0C;AAE1C2B,EAAAA,QAAQ,EAARA,QAF0C;AAG1CI,EAAAA,KAAK,EAAElC,kBAAMkC;AAH6B,CAA7B,C","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 state = {\n reactKey: undefined,\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 this.setState({ reactKey: Math.random() });\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 key={this.state.reactKey}\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"}
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 _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
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
@@ -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); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
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] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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
- ".___SInputNumber_ym629_gg_:hover .___SValue_ym629_gg_:not(.__disabled_ym629_gg_)~.___SControls_ym629_gg_,.___SValue_ym629_gg_:focus~.___SControls_ym629_gg_{visibility:visible}.___SControls_ym629_gg_{display:flex;flex-flow:column;justify-content:center;height:100%;visibility:hidden;box-sizing:border-box}.___SControls_ym629_gg_._size_m_ym629_gg_,.___SControls_ym629_gg_._size_s_ym629_gg_{width:20px}.___SControls_ym629_gg_._size_l_ym629_gg_{width:25px}.___SControls_ym629_gg_._size_xl_ym629_gg_{width:32px}.___SControls_ym629_gg_.__showControls_ym629_gg_{visibility:visible}.___SDown_ym629_gg_,.___SUp_ym629_gg_{color:#aaa;box-sizing:border-box;display:inline-flex;justify-content:center;border:none;background:none}.___SDown_ym629_gg_:focus,.___SUp_ym629_gg_:focus{outline:none}.___SValue_ym629_gg_::-webkit-inner-spin-button,.___SValue_ym629_gg_::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.___SValue_ym629_gg_._type_number_ym629_gg_{-moz-appearance:textfield}.___SValue_ym629_gg_.__disabled_ym629_gg_~.___SControls_ym629_gg_{opacity:.3}.___SValue_ym629_gg_:not(.__disabled_ym629_gg_)~.___SControls_ym629_gg_ .___SDown_ym629_gg_:hover,.___SValue_ym629_gg_:not(.__disabled_ym629_gg_)~.___SControls_ym629_gg_ .___SUp_ym629_gg_:hover{cursor:pointer;color:#666}.___SUp_ym629_gg_._size_m_ym629_gg_{padding:6px 6px 2px}.___SDown_ym629_gg_._size_m_ym629_gg_{padding:2px 6px 6px}.___SUp_ym629_gg_._size_l_ym629_gg_{padding:7px 8px 3px}.___SDown_ym629_gg_._size_l_ym629_gg_{padding:3px 8px 7px}.___SUp_ym629_gg_._size_xl_ym629_gg_{padding:11px 11px 4px}.___SDown_ym629_gg_._size_xl_ym629_gg_{padding:4px 11px 11px}"
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": "___SInputNumber_ym629_gg_",
37
- "__SValue": "___SValue_ym629_gg_",
38
- "_disabled": "__disabled_ym629_gg_",
39
- "__SControls": "___SControls_ym629_gg_",
40
- "_size_m": "_size_m_ym629_gg_",
41
- "_size_s": "_size_s_ym629_gg_",
42
- "_size_l": "_size_l_ym629_gg_",
43
- "_size_xl": "_size_xl_ym629_gg_",
44
- "_showControls": "__showControls_ym629_gg_",
45
- "__SDown": "___SDown_ym629_gg_",
46
- "__SUp": "___SUp_ym629_gg_",
47
- "_type_number": "_type_number_ym629_gg_"
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
- _this2.setState({
174
- reactKey: Math.random()
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","reactKey","undefined","step","isNaN","currentTarget","valueAsNumber","setState","random","numberValue","parseFloat","r","roundRemainder","abs","handlers","String","countDecimals","floor","toString","split","length","toPrecision","SValue","styles","state","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 state = {\n reactKey: undefined,\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 this.setState({ reactKey: Math.random() });\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 key={this.state.reactKey}\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"}
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.2",
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
  }
@@ -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
- this.setState({ reactKey: Math.random() });
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}