@semcore/input-number 17.0.0-prerelease.27 → 17.0.0-prerelease.30

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,7 +2,7 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [17.0.0] - 2026-02-23
5
+ ## [17.0.0] - 2026-03-09
6
6
 
7
7
  ### BREAK
8
8
 
@@ -375,8 +375,14 @@ class Value extends _core.Component {
375
375
  this.valueInputRef.current?.addEventListener('wheel', this.onWheel);
376
376
  const {
377
377
  inputRef,
378
- value
378
+ value,
379
+ autoFocus
379
380
  } = this.asProps;
381
+ if (autoFocus) {
382
+ setTimeout(() => {
383
+ this.valueInputRef.current?.focus();
384
+ });
385
+ }
380
386
  if (inputRef.current) {
381
387
  inputRef.current.stepUp = this.stepUp;
382
388
  inputRef.current.stepDown = this.stepDown;
@@ -1 +1 @@
1
- {"version":3,"file":"InputNumber.js","names":["_core","require","_assignProps4","_i18nEnhance","_interopRequireDefault","_ref7","_input","_react","_buttons","_intergalacticDynamicLocales","style","sstyled","insert","parseValueWithMinMax","value","min","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","InputNumber","Component","constructor","args","_defineProperty2","default","React","createRef","event","inputRef","current","stepUp","stepDown","getValueProps","numberFormatter","Intl","NumberFormat","asProps","locale","increment","decrement","getControlsProps","size","getI18nText","render","_ref","_ref4","SInputNumber","Input","createElement","cn","assignProps","i18nEnhance","localizedMessages","i18n","Value","replace","RegExp","separatorThousands","separatorDecimal","prevValue","prevDisplayValue","props","stringNumber","getFormattedValue","String","isNaN","parsedValue","displayValue","test","int","decimal","split","format","step","valueParser","currentTarget","roundCoefficient","toString","length","parseFloat","handlers","numberValue","rounded","round","abs","numberValueRounded","toFixed","callAllEventHandlers","onWheel","handleWheel","target","valueInputRef","document","activeElement","preventDefault","wheelDelta","endsWith","slice","digits","key","cursorPosition","element","indexOf","stopPropagation","selectionStart","includes","afterSelection","selectionEnd","requestAnimationFrame","newValue","state","index","lastIndexOf","setSelectionRange","cursorIndex","shiftKey","moveSelectionLeft","moveSelectionRight","nextPosition","handleValidation","uncontrolledProps","countDecimals","floor","toPrecision","componentDidMount","addEventListener","componentDidUpdate","prevProps","componentWillUnmount","removeEventListener","_ref2","_ref5","SValue","styles","forwardRef","Fragment","handleChange","handleKeyDown","handleKeyUp","handleClick","forkRef","isInteger","defaultValue","defaultDisplayValue","Controls","_ref3","arguments[0]","_ref6","Children","SControls","Addon","SUp","SDown","IncrementIcon","DecrementIcon","_default","exports","createComponent"],"sources":["../../src/InputNumber.jsx"],"sourcesContent":["import { Component, createComponent, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport Input from '@semcore/input';\nimport React from 'react';\n\nimport { DecrementIcon, IncrementIcon } from './buttons';\nimport style from './style/input-number.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nexport function parseValueWithMinMax(\n value,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n) {\n return Math.max(min, Math.min(max, value));\n}\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n size: 'm',\n i18n: localizedMessages,\n locale: 'en',\n };\n\n inputRef = React.createRef();\n\n increment = (event) => {\n this.inputRef.current?.stepUp?.(event);\n };\n\n decrement = (event) => {\n this.inputRef.current?.stepDown?.(event);\n };\n\n getValueProps() {\n const numberFormatter = new Intl.NumberFormat(this.asProps.locale, { style: 'decimal' });\n\n return {\n inputRef: this.inputRef,\n increment: this.increment,\n decrement: this.decrement,\n numberFormatter,\n };\n }\n\n getControlsProps() {\n const { size, getI18nText } = this.asProps;\n return {\n size,\n increment: this.increment,\n decrement: this.decrement,\n getI18nText,\n };\n }\n\n render() {\n const SInputNumber = Root;\n return sstyled(this.asProps.style)(<SInputNumber render={Input} />);\n }\n}\n\nclass Value extends Component {\n static style = style;\n static defaultProps = {\n defaultValue: '',\n defaultDisplayValue: '',\n step: 1,\n };\n\n valueInputRef = React.createRef();\n\n cursorPosition = -1;\n\n uncontrolledProps() {\n return {\n displayValue: null,\n value: [\n null,\n (newValue) => {\n const { value: prevValue, displayValue: prevDisplayValue } = this.asProps;\n\n const { parsedValue, displayValue } = this.valueParser(\n newValue,\n prevValue,\n prevDisplayValue,\n );\n\n this.handlers.displayValue(displayValue);\n\n return parsedValue;\n },\n ],\n };\n }\n\n get separatorDecimal() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(11.11).replace(/\\d/g, '');\n }\n\n get separatorThousands() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(1111).replace(/\\d/g, '');\n }\n\n getFormattedValue = (value) => {\n return value\n .replace(new RegExp(`[${this.separatorThousands}]`, 'g'), '')\n .replace(this.separatorDecimal, '.');\n };\n\n valueParser = (value, prevValue, prevDisplayValue) => {\n const { numberFormatter } = this.props;\n\n const stringNumber = this.getFormattedValue(String(value));\n\n if (Number.isNaN(Number(stringNumber))) {\n return {\n parsedValue: prevValue,\n displayValue: prevDisplayValue,\n };\n }\n\n let displayValue = '';\n\n if (/\\.[0-9]*0$/.test(stringNumber)) {\n const [int, decimal] = stringNumber.split(this.separatorDecimal);\n displayValue = numberFormatter.format(int) + this.separatorDecimal + decimal;\n } else if (stringNumber !== '') {\n displayValue = numberFormatter.format(stringNumber);\n }\n\n return {\n parsedValue: stringNumber,\n displayValue: displayValue,\n };\n };\n\n round(value, step) {\n const countDecimals = Math.floor(step) === step ? 0 : step.toString().split('.')[1].length || 0;\n return countDecimals === 0\n ? Number.parseFloat(value)\n : Number.parseFloat(value).toPrecision(countDecimals);\n }\n\n handleValidation = (event) => {\n const { value, displayValue, min, max, step } = this.asProps;\n const { parsedValue } = this.valueParser(event.currentTarget.value, value, displayValue);\n const roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;\n\n if (Number.isNaN(value) || Number.isNaN(Number.parseFloat(parsedValue))) {\n event.currentTarget.value = '';\n this.handlers.value('', event);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(parsedValue), min, max);\n const rounded = this.round(numberValue % step, step);\n if (rounded !== 0) {\n if (rounded >= step / 2) {\n numberValue += step - rounded;\n } else if (Math.abs(rounded) < step) {\n numberValue -= rounded;\n }\n }\n const numberValueRounded = Number(numberValue.toFixed(roundCoefficient));\n\n this.handlers.value(String(numberValueRounded), event);\n }\n };\n\n // https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling\n componentDidMount() {\n this.valueInputRef.current?.addEventListener('wheel', this.onWheel);\n\n const { inputRef, value } = this.asProps;\n\n if (inputRef.current) {\n inputRef.current.stepUp = this.stepUp;\n inputRef.current.stepDown = this.stepDown;\n }\n\n if (value !== '') {\n const { displayValue } = this.valueParser(value, '', '');\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.value !== this.props.value) {\n const { displayValue } = this.valueParser(\n this.props.value,\n prevProps.value,\n prevProps.displayValue,\n );\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentWillUnmount() {\n this.valueInputRef.current?.removeEventListener('wheel', this.onWheel);\n }\n\n onWheel = (event) => {\n callAllEventHandlers(this.asProps.onWheel, this.handleWheel)(event);\n };\n\n handleWheel = (event) => {\n if (event.target !== this.valueInputRef.current) return;\n if (document.activeElement !== this.valueInputRef.current) return;\n event.preventDefault();\n if (event.wheelDelta > 0) {\n this.stepUp(event);\n } else if (event.wheelDelta < 0) {\n this.stepDown(event);\n }\n };\n\n handleChange = (event) => {\n const value = this.getFormattedValue(event.currentTarget.value);\n const { numberFormatter, value: prevValue } = this.asProps;\n\n if (value === '.' || value === '-') {\n this.handlers.displayValue(value);\n return false;\n }\n\n if (value.endsWith('-')) {\n return false;\n }\n\n if (value.endsWith('.')) {\n if (value.length > prevValue.length) {\n this.handlers.displayValue(numberFormatter.format(value) + this.separatorDecimal);\n return false;\n } else {\n this.handlers.value(value.slice(0, -1), event);\n return false;\n }\n }\n\n const digits = /^[0-9.-]+$/.test(value);\n\n if (digits || value === '') {\n this.handlers.value(value, event);\n }\n };\n\n handleKeyUp = (event) => {\n if (event.key === 'Shift') {\n this.cursorPosition = -1;\n }\n };\n\n handleKeyDown = (event) => {\n const element = event.currentTarget;\n const value = element.value;\n const length = value.length;\n const { displayValue } = this.asProps;\n\n if (event.key === '.' || event.key === ',') {\n // for the first decimal separator we should replace both ',' and '.' to '.' because of how js convert strings to numbers (with ',' it will be Number.NaN)\n if (value.indexOf(this.separatorDecimal) === -1 && event.key === ',') {\n event.currentTarget.value = value + '.';\n } else if (value.indexOf(this.separatorDecimal) !== -1) { // we could press decimal separator second time - prevent this '1.5.'\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n\n if (event.key === 'Backspace' && value.endsWith(this.separatorDecimal)) {\n event.preventDefault();\n event.stopPropagation();\n this.handlers.displayValue(displayValue.slice(0, -1));\n return false;\n }\n\n if (\n element.selectionStart !== length &&\n (event.key === 'Backspace' ||\n event.key === this.separatorDecimal ||\n ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(event.key))\n ) {\n const afterSelection = value.slice(element.selectionEnd);\n\n requestAnimationFrame(() => {\n const newValue = this.state.displayValue;\n const index = newValue.lastIndexOf(afterSelection);\n const selectionStart = index;\n const selectionEnd = index;\n\n element.setSelectionRange(selectionStart, selectionEnd);\n });\n }\n\n // For correct moving cursor with skip separatorThousands.\n // Examples:\n // - Press ArrowLeft: `12,3|4 -> 12|,34`\n // - Press ArrowRight: `1|,55 -> 1,5|5`\n const cursorIndex = 2;\n\n if (event.shiftKey && this.cursorPosition === -1) {\n this.cursorPosition = element.selectionStart;\n }\n\n switch (event.key) {\n case 'ArrowLeft': {\n event.preventDefault();\n this.moveSelectionLeft(element, cursorIndex);\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n this.moveSelectionRight(element, cursorIndex);\n break;\n }\n case 'ArrowDown': {\n event.preventDefault();\n this.stepDown(event);\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.stepUp(event);\n break;\n }\n }\n };\n\n moveSelectionLeft = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionStart - 1 >= 0 ? element.selectionStart - 1 : 0;\n\n const cursorPosition =\n value[element.selectionStart - cursorIndex] === this.separatorThousands\n ? element.selectionStart - cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionStart <= this.cursorPosition &&\n element.selectionEnd === this.cursorPosition\n ) {\n element.setSelectionRange(cursorPosition, element.selectionEnd);\n } else {\n element.setSelectionRange(\n element.selectionStart,\n value[element.selectionEnd - cursorIndex] === this.separatorThousands\n ? element.selectionEnd - cursorIndex\n : element.selectionEnd - 1,\n );\n }\n }\n };\n\n moveSelectionRight = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionEnd + 1;\n\n const cursorPosition =\n value[element.selectionEnd] === this.separatorThousands\n ? element.selectionEnd + cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionEnd >= this.cursorPosition &&\n element.selectionStart === this.cursorPosition\n ) {\n element.setSelectionRange(element.selectionStart, cursorPosition);\n } else {\n element.setSelectionRange(\n value[element.selectionStart] === this.separatorThousands\n ? element.selectionStart + cursorIndex\n : element.selectionStart + 1,\n element.selectionEnd,\n );\n }\n }\n };\n\n handleClick = (event) => {\n const element = event.target;\n const value = element.value;\n\n if (value[element.selectionStart - 1] === this.separatorThousands) {\n element.setSelectionRange(element.selectionStart - 1, element.selectionEnd - 1);\n }\n };\n\n handleBlur = (event) => {\n this.cursorPosition = -1;\n this.handleValidation(event);\n };\n\n stepUp = (event) => {\n const { max = Number.MAX_SAFE_INTEGER, min, step, value } = this.asProps;\n\n let numberValue;\n\n // https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value\n if (value === '') {\n numberValue = min ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue + step <= max ? numberValue + step : max;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n stepDown = (event) => {\n const { max, min = Number.MIN_SAFE_INTEGER, step, value } = this.asProps;\n\n let numberValue;\n\n if (value === '') {\n numberValue = max ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue - step >= min ? numberValue - step : min;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n render() {\n const SValue = Root;\n const { styles, min, max, step, forwardRef, inputRef, displayValue } = this.asProps;\n\n return sstyled(styles)(\n <>\n <SValue\n render={Input.Value}\n autoComplete='off'\n onBlur={this.handleValidation}\n use:onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onKeyUp={this.handleKeyUp}\n onClick={this.handleClick}\n use:ref={forkRef(this.valueInputRef, inputRef, forwardRef)}\n use:value={displayValue}\n inputMode={Number.isInteger(step) ? 'numeric' : 'decimal'}\n min={min}\n max={max}\n step={step}\n />\n </>,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, increment, decrement, size, styles, getI18nText } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon} aria-hidden='true'>\n <SUp\n onClick={increment}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('increment')}\n >\n <IncrementIcon />\n </SUp>\n <SDown\n onClick={decrement}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('decrement')}\n >\n <DecrementIcon />\n </SDown>\n <Children />\n </SControls>,\n );\n}\nControls.style = style;\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"InputNumber.js","names":["_core","require","_assignProps4","_i18nEnhance","_interopRequireDefault","_ref7","_input","_react","_buttons","_intergalacticDynamicLocales","style","sstyled","insert","parseValueWithMinMax","value","min","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","InputNumber","Component","constructor","args","_defineProperty2","default","React","createRef","event","inputRef","current","stepUp","stepDown","getValueProps","numberFormatter","Intl","NumberFormat","asProps","locale","increment","decrement","getControlsProps","size","getI18nText","render","_ref","_ref4","SInputNumber","Input","createElement","cn","assignProps","i18nEnhance","localizedMessages","i18n","Value","replace","RegExp","separatorThousands","separatorDecimal","prevValue","prevDisplayValue","props","stringNumber","getFormattedValue","String","isNaN","parsedValue","displayValue","test","int","decimal","split","format","step","valueParser","currentTarget","roundCoefficient","toString","length","parseFloat","handlers","numberValue","rounded","round","abs","numberValueRounded","toFixed","callAllEventHandlers","onWheel","handleWheel","target","valueInputRef","document","activeElement","preventDefault","wheelDelta","endsWith","slice","digits","key","cursorPosition","element","indexOf","stopPropagation","selectionStart","includes","afterSelection","selectionEnd","requestAnimationFrame","newValue","state","index","lastIndexOf","setSelectionRange","cursorIndex","shiftKey","moveSelectionLeft","moveSelectionRight","nextPosition","handleValidation","uncontrolledProps","countDecimals","floor","toPrecision","componentDidMount","addEventListener","autoFocus","setTimeout","focus","componentDidUpdate","prevProps","componentWillUnmount","removeEventListener","_ref2","_ref5","SValue","styles","forwardRef","Fragment","handleChange","handleKeyDown","handleKeyUp","handleClick","forkRef","isInteger","defaultValue","defaultDisplayValue","Controls","_ref3","arguments[0]","_ref6","Children","SControls","Addon","SUp","SDown","IncrementIcon","DecrementIcon","_default","exports","createComponent"],"sources":["../../src/InputNumber.jsx"],"sourcesContent":["import { Component, createComponent, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport Input from '@semcore/input';\nimport React from 'react';\n\nimport { DecrementIcon, IncrementIcon } from './buttons';\nimport style from './style/input-number.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nexport function parseValueWithMinMax(\n value,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n) {\n return Math.max(min, Math.min(max, value));\n}\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n size: 'm',\n i18n: localizedMessages,\n locale: 'en',\n };\n\n inputRef = React.createRef();\n\n increment = (event) => {\n this.inputRef.current?.stepUp?.(event);\n };\n\n decrement = (event) => {\n this.inputRef.current?.stepDown?.(event);\n };\n\n getValueProps() {\n const numberFormatter = new Intl.NumberFormat(this.asProps.locale, { style: 'decimal' });\n\n return {\n inputRef: this.inputRef,\n increment: this.increment,\n decrement: this.decrement,\n numberFormatter,\n };\n }\n\n getControlsProps() {\n const { size, getI18nText } = this.asProps;\n return {\n size,\n increment: this.increment,\n decrement: this.decrement,\n getI18nText,\n };\n }\n\n render() {\n const SInputNumber = Root;\n return sstyled(this.asProps.style)(<SInputNumber render={Input} />);\n }\n}\n\nclass Value extends Component {\n static style = style;\n static defaultProps = {\n defaultValue: '',\n defaultDisplayValue: '',\n step: 1,\n };\n\n valueInputRef = React.createRef();\n\n cursorPosition = -1;\n\n uncontrolledProps() {\n return {\n displayValue: null,\n value: [\n null,\n (newValue) => {\n const { value: prevValue, displayValue: prevDisplayValue } = this.asProps;\n\n const { parsedValue, displayValue } = this.valueParser(\n newValue,\n prevValue,\n prevDisplayValue,\n );\n\n this.handlers.displayValue(displayValue);\n\n return parsedValue;\n },\n ],\n };\n }\n\n get separatorDecimal() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(11.11).replace(/\\d/g, '');\n }\n\n get separatorThousands() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(1111).replace(/\\d/g, '');\n }\n\n getFormattedValue = (value) => {\n return value\n .replace(new RegExp(`[${this.separatorThousands}]`, 'g'), '')\n .replace(this.separatorDecimal, '.');\n };\n\n valueParser = (value, prevValue, prevDisplayValue) => {\n const { numberFormatter } = this.props;\n\n const stringNumber = this.getFormattedValue(String(value));\n\n if (Number.isNaN(Number(stringNumber))) {\n return {\n parsedValue: prevValue,\n displayValue: prevDisplayValue,\n };\n }\n\n let displayValue = '';\n\n if (/\\.[0-9]*0$/.test(stringNumber)) {\n const [int, decimal] = stringNumber.split(this.separatorDecimal);\n displayValue = numberFormatter.format(int) + this.separatorDecimal + decimal;\n } else if (stringNumber !== '') {\n displayValue = numberFormatter.format(stringNumber);\n }\n\n return {\n parsedValue: stringNumber,\n displayValue: displayValue,\n };\n };\n\n round(value, step) {\n const countDecimals = Math.floor(step) === step ? 0 : step.toString().split('.')[1].length || 0;\n return countDecimals === 0\n ? Number.parseFloat(value)\n : Number.parseFloat(value).toPrecision(countDecimals);\n }\n\n handleValidation = (event) => {\n const { value, displayValue, min, max, step } = this.asProps;\n const { parsedValue } = this.valueParser(event.currentTarget.value, value, displayValue);\n const roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;\n\n if (Number.isNaN(value) || Number.isNaN(Number.parseFloat(parsedValue))) {\n event.currentTarget.value = '';\n this.handlers.value('', event);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(parsedValue), min, max);\n const rounded = this.round(numberValue % step, step);\n if (rounded !== 0) {\n if (rounded >= step / 2) {\n numberValue += step - rounded;\n } else if (Math.abs(rounded) < step) {\n numberValue -= rounded;\n }\n }\n const numberValueRounded = Number(numberValue.toFixed(roundCoefficient));\n\n this.handlers.value(String(numberValueRounded), event);\n }\n };\n\n // https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling\n componentDidMount() {\n this.valueInputRef.current?.addEventListener('wheel', this.onWheel);\n\n const { inputRef, value, autoFocus } = this.asProps;\n\n if (autoFocus) {\n setTimeout(() => {\n this.valueInputRef.current?.focus();\n });\n }\n\n if (inputRef.current) {\n inputRef.current.stepUp = this.stepUp;\n inputRef.current.stepDown = this.stepDown;\n }\n\n if (value !== '') {\n const { displayValue } = this.valueParser(value, '', '');\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.value !== this.props.value) {\n const { displayValue } = this.valueParser(\n this.props.value,\n prevProps.value,\n prevProps.displayValue,\n );\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentWillUnmount() {\n this.valueInputRef.current?.removeEventListener('wheel', this.onWheel);\n }\n\n onWheel = (event) => {\n callAllEventHandlers(this.asProps.onWheel, this.handleWheel)(event);\n };\n\n handleWheel = (event) => {\n if (event.target !== this.valueInputRef.current) return;\n if (document.activeElement !== this.valueInputRef.current) return;\n event.preventDefault();\n if (event.wheelDelta > 0) {\n this.stepUp(event);\n } else if (event.wheelDelta < 0) {\n this.stepDown(event);\n }\n };\n\n handleChange = (event) => {\n const value = this.getFormattedValue(event.currentTarget.value);\n const { numberFormatter, value: prevValue } = this.asProps;\n\n if (value === '.' || value === '-') {\n this.handlers.displayValue(value);\n return false;\n }\n\n if (value.endsWith('-')) {\n return false;\n }\n\n if (value.endsWith('.')) {\n if (value.length > prevValue.length) {\n this.handlers.displayValue(numberFormatter.format(value) + this.separatorDecimal);\n return false;\n } else {\n this.handlers.value(value.slice(0, -1), event);\n return false;\n }\n }\n\n const digits = /^[0-9.-]+$/.test(value);\n\n if (digits || value === '') {\n this.handlers.value(value, event);\n }\n };\n\n handleKeyUp = (event) => {\n if (event.key === 'Shift') {\n this.cursorPosition = -1;\n }\n };\n\n handleKeyDown = (event) => {\n const element = event.currentTarget;\n const value = element.value;\n const length = value.length;\n const { displayValue } = this.asProps;\n\n if (event.key === '.' || event.key === ',') {\n // for the first decimal separator we should replace both ',' and '.' to '.' because of how js convert strings to numbers (with ',' it will be Number.NaN)\n if (value.indexOf(this.separatorDecimal) === -1 && event.key === ',') {\n event.currentTarget.value = value + '.';\n } else if (value.indexOf(this.separatorDecimal) !== -1) { // we could press decimal separator second time - prevent this '1.5.'\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n\n if (event.key === 'Backspace' && value.endsWith(this.separatorDecimal)) {\n event.preventDefault();\n event.stopPropagation();\n this.handlers.displayValue(displayValue.slice(0, -1));\n return false;\n }\n\n if (\n element.selectionStart !== length &&\n (event.key === 'Backspace' ||\n event.key === this.separatorDecimal ||\n ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(event.key))\n ) {\n const afterSelection = value.slice(element.selectionEnd);\n\n requestAnimationFrame(() => {\n const newValue = this.state.displayValue;\n const index = newValue.lastIndexOf(afterSelection);\n const selectionStart = index;\n const selectionEnd = index;\n\n element.setSelectionRange(selectionStart, selectionEnd);\n });\n }\n\n // For correct moving cursor with skip separatorThousands.\n // Examples:\n // - Press ArrowLeft: `12,3|4 -> 12|,34`\n // - Press ArrowRight: `1|,55 -> 1,5|5`\n const cursorIndex = 2;\n\n if (event.shiftKey && this.cursorPosition === -1) {\n this.cursorPosition = element.selectionStart;\n }\n\n switch (event.key) {\n case 'ArrowLeft': {\n event.preventDefault();\n this.moveSelectionLeft(element, cursorIndex);\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n this.moveSelectionRight(element, cursorIndex);\n break;\n }\n case 'ArrowDown': {\n event.preventDefault();\n this.stepDown(event);\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.stepUp(event);\n break;\n }\n }\n };\n\n moveSelectionLeft = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionStart - 1 >= 0 ? element.selectionStart - 1 : 0;\n\n const cursorPosition =\n value[element.selectionStart - cursorIndex] === this.separatorThousands\n ? element.selectionStart - cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionStart <= this.cursorPosition &&\n element.selectionEnd === this.cursorPosition\n ) {\n element.setSelectionRange(cursorPosition, element.selectionEnd);\n } else {\n element.setSelectionRange(\n element.selectionStart,\n value[element.selectionEnd - cursorIndex] === this.separatorThousands\n ? element.selectionEnd - cursorIndex\n : element.selectionEnd - 1,\n );\n }\n }\n };\n\n moveSelectionRight = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionEnd + 1;\n\n const cursorPosition =\n value[element.selectionEnd] === this.separatorThousands\n ? element.selectionEnd + cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionEnd >= this.cursorPosition &&\n element.selectionStart === this.cursorPosition\n ) {\n element.setSelectionRange(element.selectionStart, cursorPosition);\n } else {\n element.setSelectionRange(\n value[element.selectionStart] === this.separatorThousands\n ? element.selectionStart + cursorIndex\n : element.selectionStart + 1,\n element.selectionEnd,\n );\n }\n }\n };\n\n handleClick = (event) => {\n const element = event.target;\n const value = element.value;\n\n if (value[element.selectionStart - 1] === this.separatorThousands) {\n element.setSelectionRange(element.selectionStart - 1, element.selectionEnd - 1);\n }\n };\n\n handleBlur = (event) => {\n this.cursorPosition = -1;\n this.handleValidation(event);\n };\n\n stepUp = (event) => {\n const { max = Number.MAX_SAFE_INTEGER, min, step, value } = this.asProps;\n\n let numberValue;\n\n // https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value\n if (value === '') {\n numberValue = min ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue + step <= max ? numberValue + step : max;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n stepDown = (event) => {\n const { max, min = Number.MIN_SAFE_INTEGER, step, value } = this.asProps;\n\n let numberValue;\n\n if (value === '') {\n numberValue = max ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue - step >= min ? numberValue - step : min;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n render() {\n const SValue = Root;\n const { styles, min, max, step, forwardRef, inputRef, displayValue } = this.asProps;\n\n return sstyled(styles)(\n <>\n <SValue\n render={Input.Value}\n autoComplete='off'\n onBlur={this.handleValidation}\n use:onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onKeyUp={this.handleKeyUp}\n onClick={this.handleClick}\n use:ref={forkRef(this.valueInputRef, inputRef, forwardRef)}\n use:value={displayValue}\n inputMode={Number.isInteger(step) ? 'numeric' : 'decimal'}\n min={min}\n max={max}\n step={step}\n />\n </>,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, increment, decrement, size, styles, getI18nText } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon} aria-hidden='true'>\n <SUp\n onClick={increment}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('increment')}\n >\n <IncrementIcon />\n </SUp>\n <SDown\n onClick={decrement}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('decrement')}\n >\n <DecrementIcon />\n </SDown>\n <Children />\n </SControls>,\n );\n}\nControls.style = style;\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"mappings":"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","ignoreList":[]}
@@ -371,8 +371,14 @@ class Value extends Component {
371
371
  this.valueInputRef.current?.addEventListener('wheel', this.onWheel);
372
372
  const {
373
373
  inputRef,
374
- value
374
+ value,
375
+ autoFocus
375
376
  } = this.asProps;
377
+ if (autoFocus) {
378
+ setTimeout(() => {
379
+ this.valueInputRef.current?.focus();
380
+ });
381
+ }
376
382
  if (inputRef.current) {
377
383
  inputRef.current.stepUp = this.stepUp;
378
384
  inputRef.current.stepDown = this.stepDown;
@@ -1 +1 @@
1
- {"version":3,"file":"InputNumber.js","names":["Component","createComponent","Root","sstyled","callAllEventHandlers","i18nEnhance","forkRef","Input","React","DecrementIcon","IncrementIcon","style","_sstyled","insert","localizedMessages","parseValueWithMinMax","value","min","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","InputNumber","constructor","args","_defineProperty","createRef","event","inputRef","current","stepUp","stepDown","getValueProps","numberFormatter","Intl","NumberFormat","asProps","locale","increment","decrement","getControlsProps","size","getI18nText","render","_ref","_ref4","SInputNumber","createElement","cn","_assignProps","i18n","Value","replace","RegExp","separatorThousands","separatorDecimal","prevValue","prevDisplayValue","props","stringNumber","getFormattedValue","String","isNaN","parsedValue","displayValue","test","int","decimal","split","format","step","valueParser","currentTarget","roundCoefficient","toString","length","parseFloat","handlers","numberValue","rounded","round","abs","numberValueRounded","toFixed","onWheel","handleWheel","target","valueInputRef","document","activeElement","preventDefault","wheelDelta","endsWith","slice","digits","key","cursorPosition","element","indexOf","stopPropagation","selectionStart","includes","afterSelection","selectionEnd","requestAnimationFrame","newValue","state","index","lastIndexOf","setSelectionRange","cursorIndex","shiftKey","moveSelectionLeft","moveSelectionRight","nextPosition","handleValidation","uncontrolledProps","countDecimals","floor","toPrecision","componentDidMount","addEventListener","componentDidUpdate","prevProps","componentWillUnmount","removeEventListener","_ref2","_ref5","SValue","styles","forwardRef","Fragment","_assignProps2","handleChange","handleKeyDown","handleKeyUp","handleClick","isInteger","defaultValue","defaultDisplayValue","Controls","_ref3","arguments[0]","_ref6","Children","SControls","Addon","SUp","SDown","_assignProps3"],"sources":["../../src/InputNumber.jsx"],"sourcesContent":["import { Component, createComponent, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport Input from '@semcore/input';\nimport React from 'react';\n\nimport { DecrementIcon, IncrementIcon } from './buttons';\nimport style from './style/input-number.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nexport function parseValueWithMinMax(\n value,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n) {\n return Math.max(min, Math.min(max, value));\n}\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n size: 'm',\n i18n: localizedMessages,\n locale: 'en',\n };\n\n inputRef = React.createRef();\n\n increment = (event) => {\n this.inputRef.current?.stepUp?.(event);\n };\n\n decrement = (event) => {\n this.inputRef.current?.stepDown?.(event);\n };\n\n getValueProps() {\n const numberFormatter = new Intl.NumberFormat(this.asProps.locale, { style: 'decimal' });\n\n return {\n inputRef: this.inputRef,\n increment: this.increment,\n decrement: this.decrement,\n numberFormatter,\n };\n }\n\n getControlsProps() {\n const { size, getI18nText } = this.asProps;\n return {\n size,\n increment: this.increment,\n decrement: this.decrement,\n getI18nText,\n };\n }\n\n render() {\n const SInputNumber = Root;\n return sstyled(this.asProps.style)(<SInputNumber render={Input} />);\n }\n}\n\nclass Value extends Component {\n static style = style;\n static defaultProps = {\n defaultValue: '',\n defaultDisplayValue: '',\n step: 1,\n };\n\n valueInputRef = React.createRef();\n\n cursorPosition = -1;\n\n uncontrolledProps() {\n return {\n displayValue: null,\n value: [\n null,\n (newValue) => {\n const { value: prevValue, displayValue: prevDisplayValue } = this.asProps;\n\n const { parsedValue, displayValue } = this.valueParser(\n newValue,\n prevValue,\n prevDisplayValue,\n );\n\n this.handlers.displayValue(displayValue);\n\n return parsedValue;\n },\n ],\n };\n }\n\n get separatorDecimal() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(11.11).replace(/\\d/g, '');\n }\n\n get separatorThousands() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(1111).replace(/\\d/g, '');\n }\n\n getFormattedValue = (value) => {\n return value\n .replace(new RegExp(`[${this.separatorThousands}]`, 'g'), '')\n .replace(this.separatorDecimal, '.');\n };\n\n valueParser = (value, prevValue, prevDisplayValue) => {\n const { numberFormatter } = this.props;\n\n const stringNumber = this.getFormattedValue(String(value));\n\n if (Number.isNaN(Number(stringNumber))) {\n return {\n parsedValue: prevValue,\n displayValue: prevDisplayValue,\n };\n }\n\n let displayValue = '';\n\n if (/\\.[0-9]*0$/.test(stringNumber)) {\n const [int, decimal] = stringNumber.split(this.separatorDecimal);\n displayValue = numberFormatter.format(int) + this.separatorDecimal + decimal;\n } else if (stringNumber !== '') {\n displayValue = numberFormatter.format(stringNumber);\n }\n\n return {\n parsedValue: stringNumber,\n displayValue: displayValue,\n };\n };\n\n round(value, step) {\n const countDecimals = Math.floor(step) === step ? 0 : step.toString().split('.')[1].length || 0;\n return countDecimals === 0\n ? Number.parseFloat(value)\n : Number.parseFloat(value).toPrecision(countDecimals);\n }\n\n handleValidation = (event) => {\n const { value, displayValue, min, max, step } = this.asProps;\n const { parsedValue } = this.valueParser(event.currentTarget.value, value, displayValue);\n const roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;\n\n if (Number.isNaN(value) || Number.isNaN(Number.parseFloat(parsedValue))) {\n event.currentTarget.value = '';\n this.handlers.value('', event);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(parsedValue), min, max);\n const rounded = this.round(numberValue % step, step);\n if (rounded !== 0) {\n if (rounded >= step / 2) {\n numberValue += step - rounded;\n } else if (Math.abs(rounded) < step) {\n numberValue -= rounded;\n }\n }\n const numberValueRounded = Number(numberValue.toFixed(roundCoefficient));\n\n this.handlers.value(String(numberValueRounded), event);\n }\n };\n\n // https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling\n componentDidMount() {\n this.valueInputRef.current?.addEventListener('wheel', this.onWheel);\n\n const { inputRef, value } = this.asProps;\n\n if (inputRef.current) {\n inputRef.current.stepUp = this.stepUp;\n inputRef.current.stepDown = this.stepDown;\n }\n\n if (value !== '') {\n const { displayValue } = this.valueParser(value, '', '');\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.value !== this.props.value) {\n const { displayValue } = this.valueParser(\n this.props.value,\n prevProps.value,\n prevProps.displayValue,\n );\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentWillUnmount() {\n this.valueInputRef.current?.removeEventListener('wheel', this.onWheel);\n }\n\n onWheel = (event) => {\n callAllEventHandlers(this.asProps.onWheel, this.handleWheel)(event);\n };\n\n handleWheel = (event) => {\n if (event.target !== this.valueInputRef.current) return;\n if (document.activeElement !== this.valueInputRef.current) return;\n event.preventDefault();\n if (event.wheelDelta > 0) {\n this.stepUp(event);\n } else if (event.wheelDelta < 0) {\n this.stepDown(event);\n }\n };\n\n handleChange = (event) => {\n const value = this.getFormattedValue(event.currentTarget.value);\n const { numberFormatter, value: prevValue } = this.asProps;\n\n if (value === '.' || value === '-') {\n this.handlers.displayValue(value);\n return false;\n }\n\n if (value.endsWith('-')) {\n return false;\n }\n\n if (value.endsWith('.')) {\n if (value.length > prevValue.length) {\n this.handlers.displayValue(numberFormatter.format(value) + this.separatorDecimal);\n return false;\n } else {\n this.handlers.value(value.slice(0, -1), event);\n return false;\n }\n }\n\n const digits = /^[0-9.-]+$/.test(value);\n\n if (digits || value === '') {\n this.handlers.value(value, event);\n }\n };\n\n handleKeyUp = (event) => {\n if (event.key === 'Shift') {\n this.cursorPosition = -1;\n }\n };\n\n handleKeyDown = (event) => {\n const element = event.currentTarget;\n const value = element.value;\n const length = value.length;\n const { displayValue } = this.asProps;\n\n if (event.key === '.' || event.key === ',') {\n // for the first decimal separator we should replace both ',' and '.' to '.' because of how js convert strings to numbers (with ',' it will be Number.NaN)\n if (value.indexOf(this.separatorDecimal) === -1 && event.key === ',') {\n event.currentTarget.value = value + '.';\n } else if (value.indexOf(this.separatorDecimal) !== -1) { // we could press decimal separator second time - prevent this '1.5.'\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n\n if (event.key === 'Backspace' && value.endsWith(this.separatorDecimal)) {\n event.preventDefault();\n event.stopPropagation();\n this.handlers.displayValue(displayValue.slice(0, -1));\n return false;\n }\n\n if (\n element.selectionStart !== length &&\n (event.key === 'Backspace' ||\n event.key === this.separatorDecimal ||\n ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(event.key))\n ) {\n const afterSelection = value.slice(element.selectionEnd);\n\n requestAnimationFrame(() => {\n const newValue = this.state.displayValue;\n const index = newValue.lastIndexOf(afterSelection);\n const selectionStart = index;\n const selectionEnd = index;\n\n element.setSelectionRange(selectionStart, selectionEnd);\n });\n }\n\n // For correct moving cursor with skip separatorThousands.\n // Examples:\n // - Press ArrowLeft: `12,3|4 -> 12|,34`\n // - Press ArrowRight: `1|,55 -> 1,5|5`\n const cursorIndex = 2;\n\n if (event.shiftKey && this.cursorPosition === -1) {\n this.cursorPosition = element.selectionStart;\n }\n\n switch (event.key) {\n case 'ArrowLeft': {\n event.preventDefault();\n this.moveSelectionLeft(element, cursorIndex);\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n this.moveSelectionRight(element, cursorIndex);\n break;\n }\n case 'ArrowDown': {\n event.preventDefault();\n this.stepDown(event);\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.stepUp(event);\n break;\n }\n }\n };\n\n moveSelectionLeft = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionStart - 1 >= 0 ? element.selectionStart - 1 : 0;\n\n const cursorPosition =\n value[element.selectionStart - cursorIndex] === this.separatorThousands\n ? element.selectionStart - cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionStart <= this.cursorPosition &&\n element.selectionEnd === this.cursorPosition\n ) {\n element.setSelectionRange(cursorPosition, element.selectionEnd);\n } else {\n element.setSelectionRange(\n element.selectionStart,\n value[element.selectionEnd - cursorIndex] === this.separatorThousands\n ? element.selectionEnd - cursorIndex\n : element.selectionEnd - 1,\n );\n }\n }\n };\n\n moveSelectionRight = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionEnd + 1;\n\n const cursorPosition =\n value[element.selectionEnd] === this.separatorThousands\n ? element.selectionEnd + cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionEnd >= this.cursorPosition &&\n element.selectionStart === this.cursorPosition\n ) {\n element.setSelectionRange(element.selectionStart, cursorPosition);\n } else {\n element.setSelectionRange(\n value[element.selectionStart] === this.separatorThousands\n ? element.selectionStart + cursorIndex\n : element.selectionStart + 1,\n element.selectionEnd,\n );\n }\n }\n };\n\n handleClick = (event) => {\n const element = event.target;\n const value = element.value;\n\n if (value[element.selectionStart - 1] === this.separatorThousands) {\n element.setSelectionRange(element.selectionStart - 1, element.selectionEnd - 1);\n }\n };\n\n handleBlur = (event) => {\n this.cursorPosition = -1;\n this.handleValidation(event);\n };\n\n stepUp = (event) => {\n const { max = Number.MAX_SAFE_INTEGER, min, step, value } = this.asProps;\n\n let numberValue;\n\n // https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value\n if (value === '') {\n numberValue = min ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue + step <= max ? numberValue + step : max;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n stepDown = (event) => {\n const { max, min = Number.MIN_SAFE_INTEGER, step, value } = this.asProps;\n\n let numberValue;\n\n if (value === '') {\n numberValue = max ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue - step >= min ? numberValue - step : min;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n render() {\n const SValue = Root;\n const { styles, min, max, step, forwardRef, inputRef, displayValue } = this.asProps;\n\n return sstyled(styles)(\n <>\n <SValue\n render={Input.Value}\n autoComplete='off'\n onBlur={this.handleValidation}\n use:onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onKeyUp={this.handleKeyUp}\n onClick={this.handleClick}\n use:ref={forkRef(this.valueInputRef, inputRef, forwardRef)}\n use:value={displayValue}\n inputMode={Number.isInteger(step) ? 'numeric' : 'decimal'}\n min={min}\n max={max}\n step={step}\n />\n </>,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, increment, decrement, size, styles, getI18nText } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon} aria-hidden='true'>\n <SUp\n onClick={increment}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('increment')}\n >\n <IncrementIcon />\n </SUp>\n <SDown\n onClick={decrement}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('decrement')}\n >\n <DecrementIcon />\n </SDown>\n <Children />\n </SControls>,\n );\n}\nControls.style = style;\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"InputNumber.js","names":["Component","createComponent","Root","sstyled","callAllEventHandlers","i18nEnhance","forkRef","Input","React","DecrementIcon","IncrementIcon","style","_sstyled","insert","localizedMessages","parseValueWithMinMax","value","min","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","InputNumber","constructor","args","_defineProperty","createRef","event","inputRef","current","stepUp","stepDown","getValueProps","numberFormatter","Intl","NumberFormat","asProps","locale","increment","decrement","getControlsProps","size","getI18nText","render","_ref","_ref4","SInputNumber","createElement","cn","_assignProps","i18n","Value","replace","RegExp","separatorThousands","separatorDecimal","prevValue","prevDisplayValue","props","stringNumber","getFormattedValue","String","isNaN","parsedValue","displayValue","test","int","decimal","split","format","step","valueParser","currentTarget","roundCoefficient","toString","length","parseFloat","handlers","numberValue","rounded","round","abs","numberValueRounded","toFixed","onWheel","handleWheel","target","valueInputRef","document","activeElement","preventDefault","wheelDelta","endsWith","slice","digits","key","cursorPosition","element","indexOf","stopPropagation","selectionStart","includes","afterSelection","selectionEnd","requestAnimationFrame","newValue","state","index","lastIndexOf","setSelectionRange","cursorIndex","shiftKey","moveSelectionLeft","moveSelectionRight","nextPosition","handleValidation","uncontrolledProps","countDecimals","floor","toPrecision","componentDidMount","addEventListener","autoFocus","setTimeout","focus","componentDidUpdate","prevProps","componentWillUnmount","removeEventListener","_ref2","_ref5","SValue","styles","forwardRef","Fragment","_assignProps2","handleChange","handleKeyDown","handleKeyUp","handleClick","isInteger","defaultValue","defaultDisplayValue","Controls","_ref3","arguments[0]","_ref6","Children","SControls","Addon","SUp","SDown","_assignProps3"],"sources":["../../src/InputNumber.jsx"],"sourcesContent":["import { Component, createComponent, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport Input from '@semcore/input';\nimport React from 'react';\n\nimport { DecrementIcon, IncrementIcon } from './buttons';\nimport style from './style/input-number.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nexport function parseValueWithMinMax(\n value,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n) {\n return Math.max(min, Math.min(max, value));\n}\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n size: 'm',\n i18n: localizedMessages,\n locale: 'en',\n };\n\n inputRef = React.createRef();\n\n increment = (event) => {\n this.inputRef.current?.stepUp?.(event);\n };\n\n decrement = (event) => {\n this.inputRef.current?.stepDown?.(event);\n };\n\n getValueProps() {\n const numberFormatter = new Intl.NumberFormat(this.asProps.locale, { style: 'decimal' });\n\n return {\n inputRef: this.inputRef,\n increment: this.increment,\n decrement: this.decrement,\n numberFormatter,\n };\n }\n\n getControlsProps() {\n const { size, getI18nText } = this.asProps;\n return {\n size,\n increment: this.increment,\n decrement: this.decrement,\n getI18nText,\n };\n }\n\n render() {\n const SInputNumber = Root;\n return sstyled(this.asProps.style)(<SInputNumber render={Input} />);\n }\n}\n\nclass Value extends Component {\n static style = style;\n static defaultProps = {\n defaultValue: '',\n defaultDisplayValue: '',\n step: 1,\n };\n\n valueInputRef = React.createRef();\n\n cursorPosition = -1;\n\n uncontrolledProps() {\n return {\n displayValue: null,\n value: [\n null,\n (newValue) => {\n const { value: prevValue, displayValue: prevDisplayValue } = this.asProps;\n\n const { parsedValue, displayValue } = this.valueParser(\n newValue,\n prevValue,\n prevDisplayValue,\n );\n\n this.handlers.displayValue(displayValue);\n\n return parsedValue;\n },\n ],\n };\n }\n\n get separatorDecimal() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(11.11).replace(/\\d/g, '');\n }\n\n get separatorThousands() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(1111).replace(/\\d/g, '');\n }\n\n getFormattedValue = (value) => {\n return value\n .replace(new RegExp(`[${this.separatorThousands}]`, 'g'), '')\n .replace(this.separatorDecimal, '.');\n };\n\n valueParser = (value, prevValue, prevDisplayValue) => {\n const { numberFormatter } = this.props;\n\n const stringNumber = this.getFormattedValue(String(value));\n\n if (Number.isNaN(Number(stringNumber))) {\n return {\n parsedValue: prevValue,\n displayValue: prevDisplayValue,\n };\n }\n\n let displayValue = '';\n\n if (/\\.[0-9]*0$/.test(stringNumber)) {\n const [int, decimal] = stringNumber.split(this.separatorDecimal);\n displayValue = numberFormatter.format(int) + this.separatorDecimal + decimal;\n } else if (stringNumber !== '') {\n displayValue = numberFormatter.format(stringNumber);\n }\n\n return {\n parsedValue: stringNumber,\n displayValue: displayValue,\n };\n };\n\n round(value, step) {\n const countDecimals = Math.floor(step) === step ? 0 : step.toString().split('.')[1].length || 0;\n return countDecimals === 0\n ? Number.parseFloat(value)\n : Number.parseFloat(value).toPrecision(countDecimals);\n }\n\n handleValidation = (event) => {\n const { value, displayValue, min, max, step } = this.asProps;\n const { parsedValue } = this.valueParser(event.currentTarget.value, value, displayValue);\n const roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;\n\n if (Number.isNaN(value) || Number.isNaN(Number.parseFloat(parsedValue))) {\n event.currentTarget.value = '';\n this.handlers.value('', event);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(parsedValue), min, max);\n const rounded = this.round(numberValue % step, step);\n if (rounded !== 0) {\n if (rounded >= step / 2) {\n numberValue += step - rounded;\n } else if (Math.abs(rounded) < step) {\n numberValue -= rounded;\n }\n }\n const numberValueRounded = Number(numberValue.toFixed(roundCoefficient));\n\n this.handlers.value(String(numberValueRounded), event);\n }\n };\n\n // https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling\n componentDidMount() {\n this.valueInputRef.current?.addEventListener('wheel', this.onWheel);\n\n const { inputRef, value, autoFocus } = this.asProps;\n\n if (autoFocus) {\n setTimeout(() => {\n this.valueInputRef.current?.focus();\n });\n }\n\n if (inputRef.current) {\n inputRef.current.stepUp = this.stepUp;\n inputRef.current.stepDown = this.stepDown;\n }\n\n if (value !== '') {\n const { displayValue } = this.valueParser(value, '', '');\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.value !== this.props.value) {\n const { displayValue } = this.valueParser(\n this.props.value,\n prevProps.value,\n prevProps.displayValue,\n );\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentWillUnmount() {\n this.valueInputRef.current?.removeEventListener('wheel', this.onWheel);\n }\n\n onWheel = (event) => {\n callAllEventHandlers(this.asProps.onWheel, this.handleWheel)(event);\n };\n\n handleWheel = (event) => {\n if (event.target !== this.valueInputRef.current) return;\n if (document.activeElement !== this.valueInputRef.current) return;\n event.preventDefault();\n if (event.wheelDelta > 0) {\n this.stepUp(event);\n } else if (event.wheelDelta < 0) {\n this.stepDown(event);\n }\n };\n\n handleChange = (event) => {\n const value = this.getFormattedValue(event.currentTarget.value);\n const { numberFormatter, value: prevValue } = this.asProps;\n\n if (value === '.' || value === '-') {\n this.handlers.displayValue(value);\n return false;\n }\n\n if (value.endsWith('-')) {\n return false;\n }\n\n if (value.endsWith('.')) {\n if (value.length > prevValue.length) {\n this.handlers.displayValue(numberFormatter.format(value) + this.separatorDecimal);\n return false;\n } else {\n this.handlers.value(value.slice(0, -1), event);\n return false;\n }\n }\n\n const digits = /^[0-9.-]+$/.test(value);\n\n if (digits || value === '') {\n this.handlers.value(value, event);\n }\n };\n\n handleKeyUp = (event) => {\n if (event.key === 'Shift') {\n this.cursorPosition = -1;\n }\n };\n\n handleKeyDown = (event) => {\n const element = event.currentTarget;\n const value = element.value;\n const length = value.length;\n const { displayValue } = this.asProps;\n\n if (event.key === '.' || event.key === ',') {\n // for the first decimal separator we should replace both ',' and '.' to '.' because of how js convert strings to numbers (with ',' it will be Number.NaN)\n if (value.indexOf(this.separatorDecimal) === -1 && event.key === ',') {\n event.currentTarget.value = value + '.';\n } else if (value.indexOf(this.separatorDecimal) !== -1) { // we could press decimal separator second time - prevent this '1.5.'\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n\n if (event.key === 'Backspace' && value.endsWith(this.separatorDecimal)) {\n event.preventDefault();\n event.stopPropagation();\n this.handlers.displayValue(displayValue.slice(0, -1));\n return false;\n }\n\n if (\n element.selectionStart !== length &&\n (event.key === 'Backspace' ||\n event.key === this.separatorDecimal ||\n ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(event.key))\n ) {\n const afterSelection = value.slice(element.selectionEnd);\n\n requestAnimationFrame(() => {\n const newValue = this.state.displayValue;\n const index = newValue.lastIndexOf(afterSelection);\n const selectionStart = index;\n const selectionEnd = index;\n\n element.setSelectionRange(selectionStart, selectionEnd);\n });\n }\n\n // For correct moving cursor with skip separatorThousands.\n // Examples:\n // - Press ArrowLeft: `12,3|4 -> 12|,34`\n // - Press ArrowRight: `1|,55 -> 1,5|5`\n const cursorIndex = 2;\n\n if (event.shiftKey && this.cursorPosition === -1) {\n this.cursorPosition = element.selectionStart;\n }\n\n switch (event.key) {\n case 'ArrowLeft': {\n event.preventDefault();\n this.moveSelectionLeft(element, cursorIndex);\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n this.moveSelectionRight(element, cursorIndex);\n break;\n }\n case 'ArrowDown': {\n event.preventDefault();\n this.stepDown(event);\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.stepUp(event);\n break;\n }\n }\n };\n\n moveSelectionLeft = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionStart - 1 >= 0 ? element.selectionStart - 1 : 0;\n\n const cursorPosition =\n value[element.selectionStart - cursorIndex] === this.separatorThousands\n ? element.selectionStart - cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionStart <= this.cursorPosition &&\n element.selectionEnd === this.cursorPosition\n ) {\n element.setSelectionRange(cursorPosition, element.selectionEnd);\n } else {\n element.setSelectionRange(\n element.selectionStart,\n value[element.selectionEnd - cursorIndex] === this.separatorThousands\n ? element.selectionEnd - cursorIndex\n : element.selectionEnd - 1,\n );\n }\n }\n };\n\n moveSelectionRight = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionEnd + 1;\n\n const cursorPosition =\n value[element.selectionEnd] === this.separatorThousands\n ? element.selectionEnd + cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionEnd >= this.cursorPosition &&\n element.selectionStart === this.cursorPosition\n ) {\n element.setSelectionRange(element.selectionStart, cursorPosition);\n } else {\n element.setSelectionRange(\n value[element.selectionStart] === this.separatorThousands\n ? element.selectionStart + cursorIndex\n : element.selectionStart + 1,\n element.selectionEnd,\n );\n }\n }\n };\n\n handleClick = (event) => {\n const element = event.target;\n const value = element.value;\n\n if (value[element.selectionStart - 1] === this.separatorThousands) {\n element.setSelectionRange(element.selectionStart - 1, element.selectionEnd - 1);\n }\n };\n\n handleBlur = (event) => {\n this.cursorPosition = -1;\n this.handleValidation(event);\n };\n\n stepUp = (event) => {\n const { max = Number.MAX_SAFE_INTEGER, min, step, value } = this.asProps;\n\n let numberValue;\n\n // https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value\n if (value === '') {\n numberValue = min ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue + step <= max ? numberValue + step : max;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n stepDown = (event) => {\n const { max, min = Number.MIN_SAFE_INTEGER, step, value } = this.asProps;\n\n let numberValue;\n\n if (value === '') {\n numberValue = max ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue - step >= min ? numberValue - step : min;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n render() {\n const SValue = Root;\n const { styles, min, max, step, forwardRef, inputRef, displayValue } = this.asProps;\n\n return sstyled(styles)(\n <>\n <SValue\n render={Input.Value}\n autoComplete='off'\n onBlur={this.handleValidation}\n use:onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onKeyUp={this.handleKeyUp}\n onClick={this.handleClick}\n use:ref={forkRef(this.valueInputRef, inputRef, forwardRef)}\n use:value={displayValue}\n inputMode={Number.isInteger(step) ? 'numeric' : 'decimal'}\n min={min}\n max={max}\n step={step}\n />\n </>,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, increment, decrement, size, styles, getI18nText } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon} aria-hidden='true'>\n <SUp\n onClick={increment}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('increment')}\n >\n <IncrementIcon />\n </SUp>\n <SDown\n onClick={decrement}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('decrement')}\n >\n <DecrementIcon />\n </SDown>\n <Children />\n </SControls>,\n );\n}\nControls.style = style;\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"mappings":"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","ignoreList":[]}
@@ -361,8 +361,15 @@ class Value extends Component {
361
361
  (_a = this.valueInputRef.current) == null ? void 0 : _a.addEventListener("wheel", this.onWheel);
362
362
  const {
363
363
  inputRef,
364
- value
364
+ value,
365
+ autoFocus
365
366
  } = this.asProps;
367
+ if (autoFocus) {
368
+ setTimeout(() => {
369
+ var _a2;
370
+ (_a2 = this.valueInputRef.current) == null ? void 0 : _a2.focus();
371
+ });
372
+ }
366
373
  if (inputRef.current) {
367
374
  inputRef.current.stepUp = this.stepUp;
368
375
  inputRef.current.stepDown = this.stepDown;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/input-number",
3
3
  "description": "Semrush InputNumber Component",
4
- "version": "17.0.0-prerelease.27",
4
+ "version": "17.0.0-prerelease.30",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,7 +14,7 @@
14
14
  "types": "./lib/types/index.d.ts"
15
15
  },
16
16
  "dependencies": {
17
- "@semcore/input": "^17.0.0-prerelease.27"
17
+ "@semcore/input": "^17.0.0-prerelease.30"
18
18
  },
19
19
  "peerDependencies": {
20
20
  "@semcore/base-components": "^17.0.0 || ^17.0.0-0"
@@ -26,8 +26,8 @@
26
26
  },
27
27
  "devDependencies": {
28
28
  "@semcore/testing-utils": "1.0.0",
29
- "@semcore/base-components": "17.0.0-prerelease.27",
30
- "@semcore/core": "17.0.0-prerelease.27"
29
+ "@semcore/core": "17.0.0-prerelease.30",
30
+ "@semcore/base-components": "17.0.0-prerelease.30"
31
31
  },
32
32
  "scripts": {
33
33
  "build": "pnpm semcore-builder --source=js && pnpm vite build"