@semcore/input-number 3.0.5 → 3.0.6

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,12 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [3.0.6] - 2022-03-14
6
+
7
+ ### Changed
8
+
9
+ - Version patch update due to children dependencies update (`@semcore/utils` [3.31.2 ~> 3.31.2], `@semcore/input` [2.2.4 ~> 2.2.5]).
10
+
5
11
  ## [3.0.5] - 2022-02-24
6
12
 
7
13
  ### Added
@@ -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","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":";;;;;;;;;;;;;;;;;;;;;;;;;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;AACjB,UAAQZ,IAAR,GAAiB,KAAKgB,OAAtB,CAAQhB,IAAR;AACA,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;;;;;;;;;;;;;;;0GAmBe,UAACjB,CAAD,EAAO;AACxB,2BAAkC,OAAKQ,OAAvC;AAAA,UAAQxB,KAAR,kBAAQA,KAAR;AAAA,UAAeC,GAAf,kBAAeA,GAAf;AAAA,UAAoBG,GAApB,kBAAoBA,GAApB;AAAA,UAAyB8B,IAAzB,kBAAyBA,IAAzB;;AACA,UAAIhC,MAAM,CAACiC,KAAP,CAAanB,CAAC,CAACoB,aAAF,CAAgBC,aAA7B,CAAJ,EAAiD;AAC/CrB,QAAAA,CAAC,CAACoB,aAAF,CAAgBpC,KAAhB,GAAwB,EAAxB;;AACA,eAAKsC,QAAL,CAActC,KAAd,CAAoB,EAApB,EAAwBgB,CAAxB;AACD,OAHD,MAGO;AACL,YAAIuB,WAAW,GAAGxC,oBAAoB,CAACG,MAAM,CAACsC,UAAP,CAAkBxC,KAAlB,CAAD,EAA2BC,GAA3B,EAAgCG,GAAhC,CAAtC;;AACA,YAAMqC,CAAC,GAAG,OAAKC,cAAL,CAAoBH,WAAW,GAAGL,IAAlC,EAAwCA,IAAxC,CAAV;;AACA,YAAIO,CAAC,KAAK,CAAV,EAAa;AACX,cAAIA,CAAC,IAAIP,IAAI,GAAG,CAAhB,EAAmB;AACjBK,YAAAA,WAAW,IAAIL,IAAI,GAAGO,CAAtB;AACD,WAFD,MAEO,IAAInC,IAAI,CAACqC,GAAL,CAASF,CAAT,IAAcP,IAAlB,EAAwB;AAC7BK,YAAAA,WAAW,IAAIE,CAAf;AACD;AACF;;AACD,eAAKH,QAAL,CAActC,KAAd,CAAoB4C,MAAM,CAACL,WAAD,CAA1B,EAAyCvB,CAAzC;AACD;AACF,K;;;;;;WA9BD,6BAAoB;AAClB,aAAO;AACLhB,QAAAA,KAAK,EAAE;AADF,OAAP;AAGD;;;WAED,wBAAeA,KAAf,EAAsBkC,IAAtB,EAA4B;AAC1B,UAAMW,aAAa,GAAGvC,IAAI,CAACwC,KAAL,CAAWZ,IAAX,MAAqBA,IAArB,GAA4B,CAA5B,GAAgCA,IAAI,CAACa,QAAL,GAAgBC,KAAhB,CAAsB,GAAtB,EAA2B,CAA3B,EAA8BC,MAA9B,IAAwC,CAA9F;AACA,aAAOJ,aAAa,KAAK,CAAlB,GACH3C,MAAM,CAACsC,UAAP,CAAkBxC,KAAlB,CADG,GAEHE,MAAM,CAACsC,UAAP,CAAkBxC,KAAlB,EAAyBkD,WAAzB,CAAqCL,aAArC,CAFJ;AAGD;;;WAqBD,kBAAS;AAAA;AAAA;;AACP,UAAMM,MAAM,GAQArB,kBAAMG,KARlB;AACA,0BAAmC,KAAKT,OAAxC;AAAA,UAAQ4B,MAAR,iBAAQA,MAAR;AAAA,UAAgB7B,cAAhB,iBAAgBA,cAAhB,CAFO,CAIP;;AACAA,MAAAA,cAAc,CAACL,OAAf,GAAyB,KAAKoB,QAA9B;AAEA,qBAAO,mBAAQc,MAAR,CAAP,eACE,gCAAC,MAAD;AAAA,gBAEO,QAFP;AAAA,wBAGe,KAHf;AAAA,kBAIU,KAAKC,gBAJf;AAAA,qBAKa,KAAKA;AALlB,kBADF;AASD;;;EAtDiBrB,e;;iCAAdC,K,kBACkB;AACpBqB,EAAAA,YAAY,EAAE,EADM;AAEpBpB,EAAAA,IAAI,EAAE;AAFc,C;;AAwDxB,SAASqB,QAAT,CAAkBC,KAAlB,EAAyB;AAAA;AAAA;;AACvB,MAAQC,QAAR,GAA6CD,KAA7C,CAAQC,QAAR;AAAA,MAAkBhC,GAAlB,GAA6C+B,KAA7C,CAAkB/B,GAAlB;AAAA,MAAuBE,GAAvB,GAA6C6B,KAA7C,CAAuB7B,GAAvB;AAAA,MAA4BnB,IAA5B,GAA6CgD,KAA7C,CAA4BhD,IAA5B;AAAA,MAAkC4C,MAAlC,GAA6CI,KAA7C,CAAkCJ,MAAlC;AACA,MAAMM,SAAS,GAKM5B,kBAAM6B,KAL3B;AACA,MAAMC,GAAG,GAAG,QAAZ;AACA,MAAMC,KAAK,GAAG,QAAd;AAEA,iBAAO,mBAAQT,MAAR,CAAP,eACE,gCAAC,SAAD,4FACE,gCAAC,GAAD;AAAA,eAAc3B,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;AAE1CsB,EAAAA,QAAQ,EAARA,QAF0C;AAG1CI,EAAAA,KAAK,EAAE7B,kBAAM6B;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 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"}
1
+ {"version":3,"sources":["../../src/InputNumber.jsx"],"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/buttons.js"],"names":["svg","orientation","width","height","up","xl","l","m","down"],"mappings":";;;;;;;;;AAAA;;AAEA,IAAMA,GAAG,GAAG,SAANA,GAAM,CAACC,WAAD,EAAcC,KAAd,EAAqBC,MAArB;AAAA,sBACV;AACE,IAAA,KAAK,EAAC,4BADR;AAEE,IAAA,IAAI,EAAC,cAFP;AAGE,IAAA,KAAK,EAAED,KAHT;AAIE,IAAA,MAAM,EAAEC,MAJV;AAKE,IAAA,OAAO,gBAASD,KAAT,cAAkBC,MAAlB;AALT,KAOGF,WAAW,KAAK,IAAhB,gBACC;AAAM,IAAA,CAAC,eAAQE,MAAR,cAAkBA,MAAlB,eAA6BA,MAA7B,cAAuCA,MAAvC,cAAiDA,MAAjD;AAAP,IADD,gBAGC;AAAM,IAAA,CAAC,iBAAUD,KAAV,iBAAsBC,MAAtB,cAAgCA,MAAhC;AAAP,IAVJ,CADU;AAAA,CAAZ;;eAgBe;AACbC,EAAAA,EAAE,EAAE;AACFC,IAAAA,EAAE,EAAEL,GAAG,CAAC,IAAD,EAAO,EAAP,EAAW,CAAX,CADL;AAEFM,IAAAA,CAAC,EAAEN,GAAG,CAAC,IAAD,EAAO,EAAP,EAAW,CAAX,CAFJ;AAGFO,IAAAA,CAAC,EAAEP,GAAG,CAAC,IAAD,EAAO,CAAP,EAAU,CAAV;AAHJ,GADS;AAMbQ,EAAAA,IAAI,EAAE;AACJH,IAAAA,EAAE,EAAEL,GAAG,CAAC,MAAD,EAAS,EAAT,EAAa,CAAb,CADH;AAEJM,IAAAA,CAAC,EAAEN,GAAG,CAAC,MAAD,EAAS,EAAT,EAAa,CAAb,CAFF;AAGJO,IAAAA,CAAC,EAAEP,GAAG,CAAC,MAAD,EAAS,CAAT,EAAY,CAAZ;AAHF;AANO,C","sourcesContent":["import React from 'react';\n\nconst svg = (orientation, width, height) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n width={width}\n height={height}\n viewBox={`0 0 ${width} ${height}`}\n >\n {orientation === 'up' ? (\n <path d={`M0,${height}l${height},-${height}l${height},${height}Z`} />\n ) : (\n <path d={`M0,0l${width},0l-${height},${height}Z`} />\n )}\n </svg>\n);\n\nexport default {\n up: {\n xl: svg('up', 10, 5),\n l: svg('up', 10, 5),\n m: svg('up', 8, 4),\n },\n down: {\n xl: svg('down', 10, 5),\n l: svg('down', 10, 5),\n m: svg('down', 8, 4),\n },\n};\n"],"file":"buttons.js"}
1
+ {"version":3,"sources":["../../src/buttons.jsx"],"names":["svg","orientation","width","height","up","xl","l","m","down"],"mappings":";;;;;;;;;AAAA;;AAEA,IAAMA,GAAG,GAAG,SAANA,GAAM,CAACC,WAAD,EAAcC,KAAd,EAAqBC,MAArB;AAAA,sBACV;AACE,IAAA,KAAK,EAAC,4BADR;AAEE,IAAA,IAAI,EAAC,cAFP;AAGE,IAAA,KAAK,EAAED,KAHT;AAIE,IAAA,MAAM,EAAEC,MAJV;AAKE,IAAA,OAAO,gBAASD,KAAT,cAAkBC,MAAlB;AALT,KAOGF,WAAW,KAAK,IAAhB,gBACC;AAAM,IAAA,CAAC,eAAQE,MAAR,cAAkBA,MAAlB,eAA6BA,MAA7B,cAAuCA,MAAvC,cAAiDA,MAAjD;AAAP,IADD,gBAGC;AAAM,IAAA,CAAC,iBAAUD,KAAV,iBAAsBC,MAAtB,cAAgCA,MAAhC;AAAP,IAVJ,CADU;AAAA,CAAZ;;eAgBe;AACbC,EAAAA,EAAE,EAAE;AACFC,IAAAA,EAAE,EAAEL,GAAG,CAAC,IAAD,EAAO,EAAP,EAAW,CAAX,CADL;AAEFM,IAAAA,CAAC,EAAEN,GAAG,CAAC,IAAD,EAAO,EAAP,EAAW,CAAX,CAFJ;AAGFO,IAAAA,CAAC,EAAEP,GAAG,CAAC,IAAD,EAAO,CAAP,EAAU,CAAV;AAHJ,GADS;AAMbQ,EAAAA,IAAI,EAAE;AACJH,IAAAA,EAAE,EAAEL,GAAG,CAAC,MAAD,EAAS,EAAT,EAAa,CAAb,CADH;AAEJM,IAAAA,CAAC,EAAEN,GAAG,CAAC,MAAD,EAAS,EAAT,EAAa,CAAb,CAFF;AAGJO,IAAAA,CAAC,EAAEP,GAAG,CAAC,MAAD,EAAS,CAAT,EAAY,CAAZ;AAHF;AANO,C","sourcesContent":["import React from 'react';\n\nconst svg = (orientation, width, height) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n width={width}\n height={height}\n viewBox={`0 0 ${width} ${height}`}\n >\n {orientation === 'up' ? (\n <path d={`M0,${height}l${height},-${height}l${height},${height}Z`} />\n ) : (\n <path d={`M0,0l${width},0l-${height},${height}Z`} />\n )}\n </svg>\n);\n\nexport default {\n up: {\n xl: svg('up', 10, 5),\n l: svg('up', 10, 5),\n m: svg('up', 8, 4),\n },\n down: {\n xl: svg('down', 10, 5),\n l: svg('down', 10, 5),\n m: svg('down', 8, 4),\n },\n};\n"],"file":"buttons.js"}
@@ -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","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"}
1
+ {"version":3,"sources":["../../src/InputNumber.jsx"],"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/buttons.js"],"names":["React","svg","orientation","width","height","up","xl","l","m","down"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,IAAMC,GAAG,GAAG,SAANA,GAAM,CAACC,WAAD,EAAcC,KAAd,EAAqBC,MAArB;AAAA,sBACV;AACE,IAAA,KAAK,EAAC,4BADR;AAEE,IAAA,IAAI,EAAC,cAFP;AAGE,IAAA,KAAK,EAAED,KAHT;AAIE,IAAA,MAAM,EAAEC,MAJV;AAKE,IAAA,OAAO,gBAASD,KAAT,cAAkBC,MAAlB;AALT,KAOGF,WAAW,KAAK,IAAhB,gBACC;AAAM,IAAA,CAAC,eAAQE,MAAR,cAAkBA,MAAlB,eAA6BA,MAA7B,cAAuCA,MAAvC,cAAiDA,MAAjD;AAAP,IADD,gBAGC;AAAM,IAAA,CAAC,iBAAUD,KAAV,iBAAsBC,MAAtB,cAAgCA,MAAhC;AAAP,IAVJ,CADU;AAAA,CAAZ;;AAgBA,eAAe;AACbC,EAAAA,EAAE,EAAE;AACFC,IAAAA,EAAE,EAAEL,GAAG,CAAC,IAAD,EAAO,EAAP,EAAW,CAAX,CADL;AAEFM,IAAAA,CAAC,EAAEN,GAAG,CAAC,IAAD,EAAO,EAAP,EAAW,CAAX,CAFJ;AAGFO,IAAAA,CAAC,EAAEP,GAAG,CAAC,IAAD,EAAO,CAAP,EAAU,CAAV;AAHJ,GADS;AAMbQ,EAAAA,IAAI,EAAE;AACJH,IAAAA,EAAE,EAAEL,GAAG,CAAC,MAAD,EAAS,EAAT,EAAa,CAAb,CADH;AAEJM,IAAAA,CAAC,EAAEN,GAAG,CAAC,MAAD,EAAS,EAAT,EAAa,CAAb,CAFF;AAGJO,IAAAA,CAAC,EAAEP,GAAG,CAAC,MAAD,EAAS,CAAT,EAAY,CAAZ;AAHF;AANO,CAAf","sourcesContent":["import React from 'react';\n\nconst svg = (orientation, width, height) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n width={width}\n height={height}\n viewBox={`0 0 ${width} ${height}`}\n >\n {orientation === 'up' ? (\n <path d={`M0,${height}l${height},-${height}l${height},${height}Z`} />\n ) : (\n <path d={`M0,0l${width},0l-${height},${height}Z`} />\n )}\n </svg>\n);\n\nexport default {\n up: {\n xl: svg('up', 10, 5),\n l: svg('up', 10, 5),\n m: svg('up', 8, 4),\n },\n down: {\n xl: svg('down', 10, 5),\n l: svg('down', 10, 5),\n m: svg('down', 8, 4),\n },\n};\n"],"file":"buttons.js"}
1
+ {"version":3,"sources":["../../src/buttons.jsx"],"names":["React","svg","orientation","width","height","up","xl","l","m","down"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,IAAMC,GAAG,GAAG,SAANA,GAAM,CAACC,WAAD,EAAcC,KAAd,EAAqBC,MAArB;AAAA,sBACV;AACE,IAAA,KAAK,EAAC,4BADR;AAEE,IAAA,IAAI,EAAC,cAFP;AAGE,IAAA,KAAK,EAAED,KAHT;AAIE,IAAA,MAAM,EAAEC,MAJV;AAKE,IAAA,OAAO,gBAASD,KAAT,cAAkBC,MAAlB;AALT,KAOGF,WAAW,KAAK,IAAhB,gBACC;AAAM,IAAA,CAAC,eAAQE,MAAR,cAAkBA,MAAlB,eAA6BA,MAA7B,cAAuCA,MAAvC,cAAiDA,MAAjD;AAAP,IADD,gBAGC;AAAM,IAAA,CAAC,iBAAUD,KAAV,iBAAsBC,MAAtB,cAAgCA,MAAhC;AAAP,IAVJ,CADU;AAAA,CAAZ;;AAgBA,eAAe;AACbC,EAAAA,EAAE,EAAE;AACFC,IAAAA,EAAE,EAAEL,GAAG,CAAC,IAAD,EAAO,EAAP,EAAW,CAAX,CADL;AAEFM,IAAAA,CAAC,EAAEN,GAAG,CAAC,IAAD,EAAO,EAAP,EAAW,CAAX,CAFJ;AAGFO,IAAAA,CAAC,EAAEP,GAAG,CAAC,IAAD,EAAO,CAAP,EAAU,CAAV;AAHJ,GADS;AAMbQ,EAAAA,IAAI,EAAE;AACJH,IAAAA,EAAE,EAAEL,GAAG,CAAC,MAAD,EAAS,EAAT,EAAa,CAAb,CADH;AAEJM,IAAAA,CAAC,EAAEN,GAAG,CAAC,MAAD,EAAS,EAAT,EAAa,CAAb,CAFF;AAGJO,IAAAA,CAAC,EAAEP,GAAG,CAAC,MAAD,EAAS,CAAT,EAAY,CAAZ;AAHF;AANO,CAAf","sourcesContent":["import React from 'react';\n\nconst svg = (orientation, width, height) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n width={width}\n height={height}\n viewBox={`0 0 ${width} ${height}`}\n >\n {orientation === 'up' ? (\n <path d={`M0,${height}l${height},-${height}l${height},${height}Z`} />\n ) : (\n <path d={`M0,0l${width},0l-${height},${height}Z`} />\n )}\n </svg>\n);\n\nexport default {\n up: {\n xl: svg('up', 10, 5),\n l: svg('up', 10, 5),\n m: svg('up', 8, 4),\n },\n down: {\n xl: svg('down', 10, 5),\n l: svg('down', 10, 5),\n m: svg('down', 8, 4),\n },\n};\n"],"file":"buttons.js"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/input-number",
3
3
  "description": "SEMRush InputNumber Component",
4
- "version": "3.0.5",
4
+ "version": "3.0.6",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
File without changes
File without changes