@salutejs/plasma-new-hope 0.239.0-canary.1699.12742131493.0 → 0.239.0-canary.1699.12749937190.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/cjs/components/NumberInput/NumberInput.js +1 -0
  2. package/cjs/components/NumberInput/NumberInput.js.map +1 -1
  3. package/cjs/components/NumberInput/ui/Input/Input.js +4 -1
  4. package/cjs/components/NumberInput/ui/Input/Input.js.map +1 -1
  5. package/cjs/components/NumberInput/utils/index.js +3 -1
  6. package/cjs/components/NumberInput/utils/index.js.map +1 -1
  7. package/emotion/cjs/components/NumberInput/NumberInput.js +1 -0
  8. package/emotion/cjs/components/NumberInput/ui/Input/Input.js +4 -1
  9. package/emotion/cjs/components/NumberInput/utils/index.js +3 -1
  10. package/emotion/es/components/NumberInput/NumberInput.js +1 -0
  11. package/emotion/es/components/NumberInput/ui/Input/Input.js +4 -1
  12. package/emotion/es/components/NumberInput/utils/index.js +3 -1
  13. package/es/components/NumberInput/NumberInput.js +1 -0
  14. package/es/components/NumberInput/NumberInput.js.map +1 -1
  15. package/es/components/NumberInput/ui/Input/Input.js +5 -2
  16. package/es/components/NumberInput/ui/Input/Input.js.map +1 -1
  17. package/es/components/NumberInput/utils/index.js +3 -1
  18. package/es/components/NumberInput/utils/index.js.map +1 -1
  19. package/package.json +2 -2
  20. package/styled-components/cjs/components/NumberInput/NumberInput.js +1 -0
  21. package/styled-components/cjs/components/NumberInput/ui/Input/Input.js +4 -1
  22. package/styled-components/cjs/components/NumberInput/utils/index.js +3 -1
  23. package/styled-components/es/components/NumberInput/NumberInput.js +1 -0
  24. package/styled-components/es/components/NumberInput/ui/Input/Input.js +4 -1
  25. package/styled-components/es/components/NumberInput/utils/index.js +3 -1
  26. package/types/components/NumberInput/NumberInput.d.ts.map +1 -1
  27. package/types/components/NumberInput/ui/Input/Input.d.ts.map +1 -1
  28. package/types/components/NumberInput/utils/index.d.ts.map +1 -1
@@ -68,6 +68,7 @@ var numberInputRoot = function numberInputRoot(Root) {
68
68
  _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
69
69
  isAnimationRun = _useState6[0],
70
70
  setIsAnimationRun = _useState6[1];
71
+ console.log('innerValue', innerValue);
71
72
  var innerWidth = width ? getSizeValueFromProp.getSizeValueFromProp(width) : '100%';
72
73
  var actionIconSize = size === 'xs' ? 'xs' : 's';
73
74
  var solidViewClass = segmentation === 'solid' ? NumberInput_tokens.classes.solidView : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.js","sources":["../../../src/components/NumberInput/NumberInput.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, useEffect, useState } from 'react';\n\nimport type { RootProps } from '../../engines';\nimport { cx, getSizeValueFromProp, isNumber } from '../../utils';\nimport { IconMinus, IconPlus } from '../_Icon';\n\nimport type { NumberInputProps, NumberInputRootProps } from './NumberInput.types';\nimport { ActionButton, NumberInput } from './ui';\nimport { classes, privateTokens } from './NumberInput.tokens';\nimport { base } from './NumberInput.styles';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as shapeCSS } from './variations/_shape/base';\nimport { base as inputBackgroundTypeCSS } from './variations/_background-type/base';\nimport { base as segmentationCSS } from './variations/_segmentation/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { getPreciseValue } from './utils';\n\nexport const numberInputRoot = (Root: RootProps<HTMLDivElement, NumberInputRootProps>) =>\n forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n className,\n style,\n width,\n value,\n min,\n max,\n step = 1,\n precision = 2,\n isLoading,\n loader,\n size,\n view,\n clear,\n shape,\n segmentation,\n inputBackgroundType = 'fill',\n disabled,\n textBefore,\n textAfter,\n customIncrementButton,\n incrementIcon,\n customDecrementButton,\n decrementIcon,\n isManualInput,\n onChange,\n onIncrement,\n onDecrement,\n ...rest\n },\n ref,\n ) => {\n const [innerValue, setInnerValue] = useState<number | string>(value ?? min ?? 0);\n const [isInputFocused, setIsInputFocused] = useState(false);\n const [isAnimationRun, setIsAnimationRun] = useState(false);\n\n const innerWidth = width ? getSizeValueFromProp(width) : '100%';\n\n const actionIconSize = size === 'xs' ? 'xs' : 's';\n const solidViewClass = segmentation === 'solid' ? classes.solidView : undefined;\n const segmentedViewClass = segmentation === 'segmented' ? classes.segmentedView : undefined;\n const clearViewClass = clear ? classes.clearView : undefined;\n const disabledClass = disabled ? classes.disabled : undefined;\n const loadingClass = isLoading ? classes.loading : undefined;\n const focusedClass = isInputFocused ? classes.focused : undefined;\n\n const isMinValue = (currentValue: number) => min !== undefined && currentValue <= min;\n const isMaxValue = (currentValue: number) => max !== undefined && currentValue >= max;\n\n const decrementButtonDisabled =\n (isMinValue(Number(innerValue)) && !isAnimationRun) || isLoading\n ? classes.actionButtonDecrementDisabled\n : undefined;\n const incrementButtonDisabled =\n (isMaxValue(Number(innerValue)) && !isAnimationRun) || isLoading\n ? classes.actionButtonIncrementDisabled\n : undefined;\n\n const handleDecrement = () => {\n if (isLoading || disabled || isAnimationRun) {\n return;\n }\n\n const preciseDiff = getPreciseValue(Number(innerValue) - step, precision);\n const diffValue = Number(preciseDiff);\n const resValue = min !== undefined && diffValue <= min ? min : diffValue;\n\n setInnerValue(resValue);\n\n if (onDecrement) {\n onDecrement(resValue);\n }\n\n if (onChange) {\n onChange(null, resValue);\n }\n };\n\n const handleIncrement = () => {\n if (isLoading || disabled || isAnimationRun) {\n return;\n }\n\n const preciseDiff = getPreciseValue(Number(innerValue) + step, precision);\n const diffValue = Number(preciseDiff);\n const resValue = max !== undefined && diffValue >= max ? max : diffValue;\n\n setInnerValue(resValue);\n\n if (onIncrement) {\n onIncrement(resValue);\n }\n\n if (onChange) {\n onChange(null, resValue);\n }\n };\n\n useEffect(() => {\n if (value === undefined || !isNumber(value)) {\n return;\n }\n\n setInnerValue((prevValue) => (prevValue !== value ? value : prevValue));\n }, [value]);\n\n return (\n <Root\n view={view}\n size={size}\n disabled={disabled}\n clear={clear}\n shape={shape}\n segmentation={segmentation}\n isLoading={isLoading}\n {...(segmentation === 'solid' ? { inputBackgroundType: 'clear' } : { inputBackgroundType })}\n className={cx(\n className,\n solidViewClass,\n segmentedViewClass,\n clearViewClass,\n disabledClass,\n loadingClass,\n focusedClass,\n )}\n style={\n {\n ...style,\n [privateTokens.inputWidth]: innerWidth,\n } as CSSProperties\n }\n >\n {customDecrementButton || (\n <ActionButton\n className={cx(\n classes.actionButtonDecrement,\n decrementButtonDisabled,\n solidViewClass,\n segmentedViewClass,\n )}\n icon={decrementIcon || <IconMinus color=\"inherit\" size={actionIconSize} />}\n onClick={handleDecrement}\n />\n )}\n <NumberInput\n ref={ref}\n segmentation={segmentation}\n value={innerValue}\n precision={precision}\n min={min}\n max={max}\n isManualInput={isManualInput}\n textBefore={textBefore}\n textAfter={textAfter}\n isLoading={isLoading}\n loader={loader}\n disabled={disabled}\n isInputFocused={isInputFocused}\n setIsInputFocused={setIsInputFocused}\n setIsAnimationRun={setIsAnimationRun}\n setInnerValue={setInnerValue}\n onChange={onChange}\n {...rest}\n />\n {customIncrementButton || (\n <ActionButton\n className={cx(\n classes.actionButtonIncrement,\n incrementButtonDisabled,\n solidViewClass,\n segmentedViewClass,\n )}\n icon={incrementIcon || <IconPlus color=\"inherit\" size={actionIconSize} />}\n onClick={handleIncrement}\n />\n )}\n </Root>\n );\n },\n );\n\nexport const numberInputConfig = {\n name: 'NumberInput',\n tag: 'div',\n layout: numberInputRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n shape: {\n css: shapeCSS,\n },\n inputBackgroundType: {\n css: inputBackgroundTypeCSS,\n },\n segmentation: {\n css: segmentationCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'default',\n size: 'l',\n shape: 'cornered',\n segmentation: 'default',\n },\n};\n"],"names":["numberInputRoot","Root","forwardRef","_ref","ref","_ref2","className","style","width","value","min","max","_ref$step","step","_ref$precision","precision","isLoading","loader","size","view","clear","shape","segmentation","_ref$inputBackgroundT","inputBackgroundType","disabled","textBefore","textAfter","customIncrementButton","incrementIcon","customDecrementButton","decrementIcon","isManualInput","onChange","onIncrement","onDecrement","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","innerValue","setInnerValue","_useState3","_useState4","isInputFocused","setIsInputFocused","_useState5","_useState6","isAnimationRun","setIsAnimationRun","innerWidth","getSizeValueFromProp","actionIconSize","solidViewClass","classes","solidView","undefined","segmentedViewClass","segmentedView","clearViewClass","clearView","disabledClass","loadingClass","loading","focusedClass","focused","isMinValue","currentValue","isMaxValue","decrementButtonDisabled","Number","actionButtonDecrementDisabled","incrementButtonDisabled","actionButtonIncrementDisabled","handleDecrement","preciseDiff","getPreciseValue","diffValue","resValue","handleIncrement","useEffect","isNumber","prevValue","React","createElement","_extends","cx","_objectSpread","_defineProperty","privateTokens","inputWidth","ActionButton","actionButtonDecrement","icon","IconMinus","color","onClick","NumberInput","actionButtonIncrement","IconPlus","numberInputConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","shapeCSS","inputBackgroundTypeCSS","segmentationCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"NumberInput.js","sources":["../../../src/components/NumberInput/NumberInput.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, useEffect, useState } from 'react';\n\nimport type { RootProps } from '../../engines';\nimport { cx, getSizeValueFromProp, isNumber } from '../../utils';\nimport { IconMinus, IconPlus } from '../_Icon';\n\nimport type { NumberInputProps, NumberInputRootProps } from './NumberInput.types';\nimport { ActionButton, NumberInput } from './ui';\nimport { classes, privateTokens } from './NumberInput.tokens';\nimport { base } from './NumberInput.styles';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as shapeCSS } from './variations/_shape/base';\nimport { base as inputBackgroundTypeCSS } from './variations/_background-type/base';\nimport { base as segmentationCSS } from './variations/_segmentation/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { getPreciseValue } from './utils';\n\nexport const numberInputRoot = (Root: RootProps<HTMLDivElement, NumberInputRootProps>) =>\n forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n className,\n style,\n width,\n value,\n min,\n max,\n step = 1,\n precision = 2,\n isLoading,\n loader,\n size,\n view,\n clear,\n shape,\n segmentation,\n inputBackgroundType = 'fill',\n disabled,\n textBefore,\n textAfter,\n customIncrementButton,\n incrementIcon,\n customDecrementButton,\n decrementIcon,\n isManualInput,\n onChange,\n onIncrement,\n onDecrement,\n ...rest\n },\n ref,\n ) => {\n const [innerValue, setInnerValue] = useState<number | string>(value ?? min ?? 0);\n const [isInputFocused, setIsInputFocused] = useState(false);\n const [isAnimationRun, setIsAnimationRun] = useState(false);\n\n console.log('innerValue', innerValue);\n\n const innerWidth = width ? getSizeValueFromProp(width) : '100%';\n\n const actionIconSize = size === 'xs' ? 'xs' : 's';\n const solidViewClass = segmentation === 'solid' ? classes.solidView : undefined;\n const segmentedViewClass = segmentation === 'segmented' ? classes.segmentedView : undefined;\n const clearViewClass = clear ? classes.clearView : undefined;\n const disabledClass = disabled ? classes.disabled : undefined;\n const loadingClass = isLoading ? classes.loading : undefined;\n const focusedClass = isInputFocused ? classes.focused : undefined;\n\n const isMinValue = (currentValue: number) => min !== undefined && currentValue <= min;\n const isMaxValue = (currentValue: number) => max !== undefined && currentValue >= max;\n\n const decrementButtonDisabled =\n (isMinValue(Number(innerValue)) && !isAnimationRun) || isLoading\n ? classes.actionButtonDecrementDisabled\n : undefined;\n const incrementButtonDisabled =\n (isMaxValue(Number(innerValue)) && !isAnimationRun) || isLoading\n ? classes.actionButtonIncrementDisabled\n : undefined;\n\n const handleDecrement = () => {\n if (isLoading || disabled || isAnimationRun) {\n return;\n }\n\n const preciseDiff = getPreciseValue(Number(innerValue) - step, precision);\n const diffValue = Number(preciseDiff);\n const resValue = min !== undefined && diffValue <= min ? min : diffValue;\n\n setInnerValue(resValue);\n\n if (onDecrement) {\n onDecrement(resValue);\n }\n\n if (onChange) {\n onChange(null, resValue);\n }\n };\n\n const handleIncrement = () => {\n if (isLoading || disabled || isAnimationRun) {\n return;\n }\n\n const preciseDiff = getPreciseValue(Number(innerValue) + step, precision);\n const diffValue = Number(preciseDiff);\n const resValue = max !== undefined && diffValue >= max ? max : diffValue;\n\n setInnerValue(resValue);\n\n if (onIncrement) {\n onIncrement(resValue);\n }\n\n if (onChange) {\n onChange(null, resValue);\n }\n };\n\n useEffect(() => {\n if (value === undefined || !isNumber(value)) {\n return;\n }\n\n setInnerValue((prevValue) => (prevValue !== value ? value : prevValue));\n }, [value]);\n\n return (\n <Root\n view={view}\n size={size}\n disabled={disabled}\n clear={clear}\n shape={shape}\n segmentation={segmentation}\n isLoading={isLoading}\n {...(segmentation === 'solid' ? { inputBackgroundType: 'clear' } : { inputBackgroundType })}\n className={cx(\n className,\n solidViewClass,\n segmentedViewClass,\n clearViewClass,\n disabledClass,\n loadingClass,\n focusedClass,\n )}\n style={\n {\n ...style,\n [privateTokens.inputWidth]: innerWidth,\n } as CSSProperties\n }\n >\n {customDecrementButton || (\n <ActionButton\n className={cx(\n classes.actionButtonDecrement,\n decrementButtonDisabled,\n solidViewClass,\n segmentedViewClass,\n )}\n icon={decrementIcon || <IconMinus color=\"inherit\" size={actionIconSize} />}\n onClick={handleDecrement}\n />\n )}\n <NumberInput\n ref={ref}\n segmentation={segmentation}\n value={innerValue}\n precision={precision}\n min={min}\n max={max}\n isManualInput={isManualInput}\n textBefore={textBefore}\n textAfter={textAfter}\n isLoading={isLoading}\n loader={loader}\n disabled={disabled}\n isInputFocused={isInputFocused}\n setIsInputFocused={setIsInputFocused}\n setIsAnimationRun={setIsAnimationRun}\n setInnerValue={setInnerValue}\n onChange={onChange}\n {...rest}\n />\n {customIncrementButton || (\n <ActionButton\n className={cx(\n classes.actionButtonIncrement,\n incrementButtonDisabled,\n solidViewClass,\n segmentedViewClass,\n )}\n icon={incrementIcon || <IconPlus color=\"inherit\" size={actionIconSize} />}\n onClick={handleIncrement}\n />\n )}\n </Root>\n );\n },\n );\n\nexport const numberInputConfig = {\n name: 'NumberInput',\n tag: 'div',\n layout: numberInputRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n shape: {\n css: shapeCSS,\n },\n inputBackgroundType: {\n css: inputBackgroundTypeCSS,\n },\n segmentation: {\n css: segmentationCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'default',\n size: 'l',\n shape: 'cornered',\n segmentation: 'default',\n },\n};\n"],"names":["numberInputRoot","Root","forwardRef","_ref","ref","_ref2","className","style","width","value","min","max","_ref$step","step","_ref$precision","precision","isLoading","loader","size","view","clear","shape","segmentation","_ref$inputBackgroundT","inputBackgroundType","disabled","textBefore","textAfter","customIncrementButton","incrementIcon","customDecrementButton","decrementIcon","isManualInput","onChange","onIncrement","onDecrement","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","innerValue","setInnerValue","_useState3","_useState4","isInputFocused","setIsInputFocused","_useState5","_useState6","isAnimationRun","setIsAnimationRun","console","log","innerWidth","getSizeValueFromProp","actionIconSize","solidViewClass","classes","solidView","undefined","segmentedViewClass","segmentedView","clearViewClass","clearView","disabledClass","loadingClass","loading","focusedClass","focused","isMinValue","currentValue","isMaxValue","decrementButtonDisabled","Number","actionButtonDecrementDisabled","incrementButtonDisabled","actionButtonIncrementDisabled","handleDecrement","preciseDiff","getPreciseValue","diffValue","resValue","handleIncrement","useEffect","isNumber","prevValue","React","createElement","_extends","cx","_objectSpread","_defineProperty","privateTokens","inputWidth","ActionButton","actionButtonDecrement","icon","IconMinus","color","onClick","NumberInput","actionButtonIncrement","IconPlus","numberInputConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","shapeCSS","inputBackgroundTypeCSS","segmentationCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
@@ -129,15 +129,18 @@ var NumberInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
129
129
  }
130
130
  return;
131
131
  }
132
+ console.log('here');
132
133
  var isValid = index.numberSchema.test(cleanValue);
133
134
  if (!isValid) {
135
+ console.log('not valid', cleanValue);
134
136
  setValues(event, lastValidValue);
135
137
  return;
136
138
  }
139
+ console.log('valid!', cleanValue);
137
140
  if (textWrapperRef !== null && textWrapperRef !== void 0 && textWrapperRef.current && wrapperRef !== null && wrapperRef !== void 0 && wrapperRef.current && (textWrapperRef === null || textWrapperRef === void 0 || (_textWrapperRef$curre = textWrapperRef.current) === null || _textWrapperRef$curre === void 0 ? void 0 : _textWrapperRef$curre.clientWidth) > (wrapperRef === null || wrapperRef === void 0 || (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.clientWidth)) {
138
141
  wrapperRef.current.scrollLeft = textWrapperRef.current.offsetWidth - textWrapperRef.current.offsetLeft || 0;
139
142
  }
140
- setValues(event, Number(cleanValue));
143
+ setValues(event, cleanValue);
141
144
  };
142
145
  var handleClickInputWrapper = function handleClickInputWrapper() {
143
146
  if (!isManualInput || !inputRef.current) {
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../../../../src/components/NumberInput/ui/Input/Input.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport type { KeyboardEvent, ChangeEvent, FocusEvent } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { classes } from '../../NumberInput.tokens';\nimport { cx, isNumber } from '../../../../utils';\nimport { useDidMountEffect } from '../../../../hooks';\nimport { defaultCharacterWidth, excludingNumberSchema, getPreciseValue, numberSchema } from '../../utils';\nimport { keyCodes } from '../../../../utils/constants';\n\nimport type { InputProps } from './Input.types';\nimport {\n AdditionalText,\n Input,\n InputWrapper,\n DynamicInput,\n InputWidthHelper,\n TextWrapper,\n StyledSpinner,\n Loader,\n} from './Input.styles';\n\nexport const NumberInput = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n value,\n precision,\n min,\n max,\n isLoading,\n loader,\n disabled,\n segmentation,\n textBefore,\n textAfter,\n isManualInput,\n isInputFocused,\n setIsInputFocused,\n setIsAnimationRun,\n setInnerValue,\n onChange,\n onBlur,\n onKeyDown,\n ...rest\n },\n ref,\n ) => {\n const [dynamicWidth, setDynamicWidth] = useState(value ? `${String(value).length}ch` : defaultCharacterWidth);\n const [lastValidValue, setLastValidValue] = useState(Number(value));\n const [errorClass, setErrorClass] = useState<string | undefined>(undefined);\n const [errorValue, setErrorValue] = useState<number>();\n\n const inputHelperRef = useRef<HTMLSpanElement>(null);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const textWrapperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const inputForkRef = useForkRef(inputRef, ref);\n\n const solidViewClass = segmentation === 'solid' ? classes.solidView : undefined;\n const manualInputClass = isManualInput ? classes.manualInput : undefined;\n\n const getInputWidth = (firstRender = true) => {\n if (!firstRender && inputHelperRef.current?.clientWidth) {\n return `${inputHelperRef.current?.clientWidth}px`;\n }\n\n if (value) {\n return `${String(value).length}ch`;\n }\n\n return defaultCharacterWidth;\n };\n\n const setValues = (event: ChangeEvent<HTMLInputElement> | null, newValue: number) => {\n setLastValidValue(newValue);\n setInnerValue(newValue);\n\n if (onChange) {\n onChange(event, newValue);\n }\n };\n\n const validateValue = (newValue: number | string) => {\n if (!newValue || !isNumber(newValue)) {\n setValues(null, lastValidValue);\n setIsAnimationRun(false);\n return;\n }\n\n const resValue = Number(newValue);\n if (max !== undefined && resValue > max) {\n setErrorClass(classes.errorAnimation);\n setErrorValue(max);\n setIsAnimationRun(true);\n return;\n }\n\n if (min !== undefined && resValue < min) {\n setErrorClass(classes.errorAnimation);\n setErrorValue(min);\n setIsAnimationRun(true);\n return;\n }\n\n if (String(newValue).endsWith('.')) {\n setValues(null, Number(newValue));\n setIsAnimationRun(false);\n return;\n }\n\n if (precision !== undefined) {\n const preciseNewValue = Number(getPreciseValue(newValue, precision));\n setValues(null, preciseNewValue);\n }\n\n setIsAnimationRun(false);\n };\n\n const handleManualInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (!isManualInput || disabled) {\n return;\n }\n\n setIsAnimationRun(true);\n\n const { value: newValue } = event.target;\n\n if (!newValue) {\n setInnerValue('');\n\n if (onChange) {\n onChange(event, '');\n }\n return;\n }\n\n const cleanValue = newValue.replace(excludingNumberSchema, '');\n if (cleanValue.endsWith('.') || cleanValue === '-') {\n setInnerValue(cleanValue);\n\n if (onChange) {\n onChange(event, cleanValue);\n }\n return;\n }\n\n const isValid = numberSchema.test(cleanValue);\n\n if (!isValid) {\n setValues(event, lastValidValue);\n return;\n }\n\n if (\n textWrapperRef?.current &&\n wrapperRef?.current &&\n textWrapperRef?.current?.clientWidth > wrapperRef?.current?.clientWidth\n ) {\n wrapperRef.current.scrollLeft =\n textWrapperRef.current.offsetWidth - textWrapperRef.current.offsetLeft || 0;\n }\n\n setValues(event, Number(cleanValue));\n };\n\n const handleClickInputWrapper = () => {\n if (!isManualInput || !inputRef.current) {\n return;\n }\n\n if (!isInputFocused) {\n inputRef.current.select();\n }\n\n setIsInputFocused(true);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n validateValue(value);\n setIsInputFocused(false);\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (!isManualInput || disabled) {\n return;\n }\n\n if (event.keyCode === keyCodes.Enter) {\n event.preventDefault();\n\n validateValue(value);\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n }\n };\n\n const handleEndErrorAnimation = (correctValue: number) => {\n setIsAnimationRun(false);\n setIsInputFocused(false);\n\n setErrorClass(undefined);\n setValues(null, correctValue);\n };\n\n useEffect(() => {\n setDynamicWidth(getInputWidth());\n }, []);\n\n useDidMountEffect(() => {\n setDynamicWidth(getInputWidth(false));\n }, [value]);\n\n return (\n <InputWrapper\n ref={wrapperRef}\n className={cx(solidViewClass, errorClass, manualInputClass)}\n isManualInput={Boolean(isManualInput)}\n onClick={handleClickInputWrapper}\n >\n <TextWrapper ref={textWrapperRef}>\n {!isLoading && textBefore && (\n <AdditionalText className={classes.textBefore}>{textBefore}</AdditionalText>\n )}\n {isLoading ? (\n <Loader>{loader || <StyledSpinner />}</Loader>\n ) : (\n <DynamicInput>\n <Input\n ref={inputForkRef}\n dynamicWidth={dynamicWidth}\n value={value}\n isManualInput={Boolean(isManualInput)}\n tabIndex={disabled || !isManualInput ? -1 : 0}\n onChange={handleManualInputChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onAnimationEnd={() => handleEndErrorAnimation(Number(errorValue))}\n {...rest}\n />\n <InputWidthHelper ref={inputHelperRef}>{value}</InputWidthHelper>\n </DynamicInput>\n )}\n {!isLoading && textAfter && (\n <AdditionalText className={classes.textAfter}>{textAfter}</AdditionalText>\n )}\n </TextWrapper>\n </InputWrapper>\n );\n },\n);\n"],"names":["NumberInput","forwardRef","_ref","ref","value","precision","min","max","isLoading","loader","disabled","segmentation","textBefore","textAfter","isManualInput","isInputFocused","setIsInputFocused","setIsAnimationRun","setInnerValue","onChange","onBlur","onKeyDown","rest","_objectWithoutProperties","_excluded","_useState","useState","concat","String","length","defaultCharacterWidth","_useState2","_slicedToArray","dynamicWidth","setDynamicWidth","_useState3","Number","_useState4","lastValidValue","setLastValidValue","_useState5","undefined","_useState6","errorClass","setErrorClass","_useState7","_useState8","errorValue","setErrorValue","inputHelperRef","useRef","wrapperRef","textWrapperRef","inputRef","inputForkRef","useForkRef","solidViewClass","classes","solidView","manualInputClass","manualInput","getInputWidth","_inputHelperRef$curre","firstRender","arguments","current","clientWidth","_inputHelperRef$curre2","setValues","event","newValue","validateValue","isNumber","resValue","errorAnimation","endsWith","preciseNewValue","getPreciseValue","handleManualInputChange","_textWrapperRef$curre","_wrapperRef$current","target","cleanValue","replace","excludingNumberSchema","isValid","numberSchema","test","scrollLeft","offsetWidth","offsetLeft","handleClickInputWrapper","select","handleBlur","handleKeyDown","keyCode","keyCodes","Enter","preventDefault","handleEndErrorAnimation","correctValue","useEffect","useDidMountEffect","React","createElement","InputWrapper","className","cx","Boolean","onClick","TextWrapper","AdditionalText","Loader","_StyledSpinner","StyledSpinner","DynamicInput","Input","_extends","tabIndex","onAnimationEnd","InputWidthHelper"],"mappings":"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"}
1
+ {"version":3,"file":"Input.js","sources":["../../../../../src/components/NumberInput/ui/Input/Input.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport type { KeyboardEvent, ChangeEvent, FocusEvent } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { classes } from '../../NumberInput.tokens';\nimport { cx, isNumber } from '../../../../utils';\nimport { useDidMountEffect } from '../../../../hooks';\nimport { defaultCharacterWidth, excludingNumberSchema, getPreciseValue, numberSchema } from '../../utils';\nimport { keyCodes } from '../../../../utils/constants';\n\nimport type { InputProps } from './Input.types';\nimport {\n AdditionalText,\n Input,\n InputWrapper,\n DynamicInput,\n InputWidthHelper,\n TextWrapper,\n StyledSpinner,\n Loader,\n} from './Input.styles';\n\nexport const NumberInput = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n value,\n precision,\n min,\n max,\n isLoading,\n loader,\n disabled,\n segmentation,\n textBefore,\n textAfter,\n isManualInput,\n isInputFocused,\n setIsInputFocused,\n setIsAnimationRun,\n setInnerValue,\n onChange,\n onBlur,\n onKeyDown,\n ...rest\n },\n ref,\n ) => {\n const [dynamicWidth, setDynamicWidth] = useState(value ? `${String(value).length}ch` : defaultCharacterWidth);\n const [lastValidValue, setLastValidValue] = useState<number | string>(Number(value));\n const [errorClass, setErrorClass] = useState<string | undefined>(undefined);\n const [errorValue, setErrorValue] = useState<number>();\n\n const inputHelperRef = useRef<HTMLSpanElement>(null);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const textWrapperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const inputForkRef = useForkRef(inputRef, ref);\n\n const solidViewClass = segmentation === 'solid' ? classes.solidView : undefined;\n const manualInputClass = isManualInput ? classes.manualInput : undefined;\n\n const getInputWidth = (firstRender = true) => {\n if (!firstRender && inputHelperRef.current?.clientWidth) {\n return `${inputHelperRef.current?.clientWidth}px`;\n }\n\n if (value) {\n return `${String(value).length}ch`;\n }\n\n return defaultCharacterWidth;\n };\n\n const setValues = (event: ChangeEvent<HTMLInputElement> | null, newValue: number | string) => {\n setLastValidValue(newValue);\n setInnerValue(newValue);\n\n if (onChange) {\n onChange(event, newValue);\n }\n };\n\n const validateValue = (newValue: number | string) => {\n if (!newValue || !isNumber(newValue)) {\n setValues(null, lastValidValue);\n setIsAnimationRun(false);\n return;\n }\n\n const resValue = Number(newValue);\n if (max !== undefined && resValue > max) {\n setErrorClass(classes.errorAnimation);\n setErrorValue(max);\n setIsAnimationRun(true);\n return;\n }\n\n if (min !== undefined && resValue < min) {\n setErrorClass(classes.errorAnimation);\n setErrorValue(min);\n setIsAnimationRun(true);\n return;\n }\n\n if (String(newValue).endsWith('.')) {\n setValues(null, Number(newValue));\n setIsAnimationRun(false);\n return;\n }\n\n if (precision !== undefined) {\n const preciseNewValue = Number(getPreciseValue(newValue, precision));\n setValues(null, preciseNewValue);\n }\n\n setIsAnimationRun(false);\n };\n\n const handleManualInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (!isManualInput || disabled) {\n return;\n }\n\n setIsAnimationRun(true);\n\n const { value: newValue } = event.target;\n\n if (!newValue) {\n setInnerValue('');\n\n if (onChange) {\n onChange(event, '');\n }\n return;\n }\n\n const cleanValue = newValue.replace(excludingNumberSchema, '');\n if (cleanValue.endsWith('.') || cleanValue === '-') {\n setInnerValue(cleanValue);\n\n if (onChange) {\n onChange(event, cleanValue);\n }\n return;\n }\n\n console.log('here');\n const isValid = numberSchema.test(cleanValue);\n\n if (!isValid) {\n console.log('not valid', cleanValue);\n setValues(event, lastValidValue);\n return;\n }\n console.log('valid!', cleanValue);\n\n if (\n textWrapperRef?.current &&\n wrapperRef?.current &&\n textWrapperRef?.current?.clientWidth > wrapperRef?.current?.clientWidth\n ) {\n wrapperRef.current.scrollLeft =\n textWrapperRef.current.offsetWidth - textWrapperRef.current.offsetLeft || 0;\n }\n\n setValues(event, cleanValue);\n };\n\n const handleClickInputWrapper = () => {\n if (!isManualInput || !inputRef.current) {\n return;\n }\n\n if (!isInputFocused) {\n inputRef.current.select();\n }\n\n setIsInputFocused(true);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n validateValue(value);\n setIsInputFocused(false);\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (!isManualInput || disabled) {\n return;\n }\n\n if (event.keyCode === keyCodes.Enter) {\n event.preventDefault();\n\n validateValue(value);\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n }\n };\n\n const handleEndErrorAnimation = (correctValue: number) => {\n setIsAnimationRun(false);\n setIsInputFocused(false);\n\n setErrorClass(undefined);\n setValues(null, correctValue);\n };\n\n useEffect(() => {\n setDynamicWidth(getInputWidth());\n }, []);\n\n useDidMountEffect(() => {\n setDynamicWidth(getInputWidth(false));\n }, [value]);\n\n return (\n <InputWrapper\n ref={wrapperRef}\n className={cx(solidViewClass, errorClass, manualInputClass)}\n isManualInput={Boolean(isManualInput)}\n onClick={handleClickInputWrapper}\n >\n <TextWrapper ref={textWrapperRef}>\n {!isLoading && textBefore && (\n <AdditionalText className={classes.textBefore}>{textBefore}</AdditionalText>\n )}\n {isLoading ? (\n <Loader>{loader || <StyledSpinner />}</Loader>\n ) : (\n <DynamicInput>\n <Input\n ref={inputForkRef}\n dynamicWidth={dynamicWidth}\n value={value}\n isManualInput={Boolean(isManualInput)}\n tabIndex={disabled || !isManualInput ? -1 : 0}\n onChange={handleManualInputChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onAnimationEnd={() => handleEndErrorAnimation(Number(errorValue))}\n {...rest}\n />\n <InputWidthHelper ref={inputHelperRef}>{value}</InputWidthHelper>\n </DynamicInput>\n )}\n {!isLoading && textAfter && (\n <AdditionalText className={classes.textAfter}>{textAfter}</AdditionalText>\n )}\n </TextWrapper>\n </InputWrapper>\n );\n },\n);\n"],"names":["NumberInput","forwardRef","_ref","ref","value","precision","min","max","isLoading","loader","disabled","segmentation","textBefore","textAfter","isManualInput","isInputFocused","setIsInputFocused","setIsAnimationRun","setInnerValue","onChange","onBlur","onKeyDown","rest","_objectWithoutProperties","_excluded","_useState","useState","concat","String","length","defaultCharacterWidth","_useState2","_slicedToArray","dynamicWidth","setDynamicWidth","_useState3","Number","_useState4","lastValidValue","setLastValidValue","_useState5","undefined","_useState6","errorClass","setErrorClass","_useState7","_useState8","errorValue","setErrorValue","inputHelperRef","useRef","wrapperRef","textWrapperRef","inputRef","inputForkRef","useForkRef","solidViewClass","classes","solidView","manualInputClass","manualInput","getInputWidth","_inputHelperRef$curre","firstRender","arguments","current","clientWidth","_inputHelperRef$curre2","setValues","event","newValue","validateValue","isNumber","resValue","errorAnimation","endsWith","preciseNewValue","getPreciseValue","handleManualInputChange","_textWrapperRef$curre","_wrapperRef$current","target","cleanValue","replace","excludingNumberSchema","console","log","isValid","numberSchema","test","scrollLeft","offsetWidth","offsetLeft","handleClickInputWrapper","select","handleBlur","handleKeyDown","keyCode","keyCodes","Enter","preventDefault","handleEndErrorAnimation","correctValue","useEffect","useDidMountEffect","React","createElement","InputWrapper","className","cx","Boolean","onClick","TextWrapper","AdditionalText","Loader","_StyledSpinner","StyledSpinner","DynamicInput","Input","_extends","tabIndex","onAnimationEnd","InputWidthHelper"],"mappings":"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"}
@@ -8,7 +8,9 @@ var excludingNumberSchema = /[^-.\d]/g;
8
8
  var getPreciseValue = function getPreciseValue(value, precision) {
9
9
  var innerValue = String(value);
10
10
  if (precision !== undefined) {
11
- return Number(innerValue).toFixed(precision);
11
+ var factor = Math.pow(10, precision);
12
+ var preparedValue = Number(innerValue) < 0 ? Number(innerValue) - Number.EPSILON : Number(innerValue) + Number.EPSILON;
13
+ return String(Math.round(preparedValue * factor) / factor);
12
14
  }
13
15
  return innerValue;
14
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/NumberInput/utils/index.ts"],"sourcesContent":["export const defaultCharacterWidth = '1ch';\nexport const numberSchema = /^(-)?\\d+(\\.\\d+)?$/;\nexport const excludingNumberSchema = /[^-.\\d]/g;\n\nexport const getPreciseValue = (value: number | string, precision?: number) => {\n const innerValue = String(value);\n\n if (precision !== undefined) {\n return Number(innerValue).toFixed(precision);\n }\n\n return innerValue;\n};\n"],"names":["defaultCharacterWidth","numberSchema","excludingNumberSchema","getPreciseValue","value","precision","innerValue","String","undefined","Number","toFixed"],"mappings":";;;;AAAO,IAAMA,qBAAqB,GAAG,MAAK;AACnC,IAAMC,YAAY,GAAG,oBAAmB;AACxC,IAAMC,qBAAqB,GAAG,WAAU;AAExC,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,KAAsB,EAAEC,SAAkB,EAAK;AAC3E,EAAA,IAAMC,UAAU,GAAGC,MAAM,CAACH,KAAK,CAAC,CAAA;EAEhC,IAAIC,SAAS,KAAKG,SAAS,EAAE;IACzB,OAAOC,MAAM,CAACH,UAAU,CAAC,CAACI,OAAO,CAACL,SAAS,CAAC,CAAA;AAChD,GAAA;AAEA,EAAA,OAAOC,UAAU,CAAA;AACrB;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/NumberInput/utils/index.ts"],"sourcesContent":["export const defaultCharacterWidth = '1ch';\nexport const numberSchema = /^(-)?\\d+(\\.\\d+)?$/;\nexport const excludingNumberSchema = /[^-.\\d]/g;\n\nexport const getPreciseValue = (value: number | string, precision?: number) => {\n const innerValue = String(value);\n\n if (precision !== undefined) {\n const factor = 10 ** precision;\n const preparedValue =\n Number(innerValue) < 0 ? Number(innerValue) - Number.EPSILON : Number(innerValue) + Number.EPSILON;\n\n return String(Math.round(preparedValue * factor) / factor);\n }\n\n return innerValue;\n};\n"],"names":["defaultCharacterWidth","numberSchema","excludingNumberSchema","getPreciseValue","value","precision","innerValue","String","undefined","factor","Math","pow","preparedValue","Number","EPSILON","round"],"mappings":";;;;AAAO,IAAMA,qBAAqB,GAAG,MAAK;AACnC,IAAMC,YAAY,GAAG,oBAAmB;AACxC,IAAMC,qBAAqB,GAAG,WAAU;AAExC,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,KAAsB,EAAEC,SAAkB,EAAK;AAC3E,EAAA,IAAMC,UAAU,GAAGC,MAAM,CAACH,KAAK,CAAC,CAAA;EAEhC,IAAIC,SAAS,KAAKG,SAAS,EAAE;IACzB,IAAMC,MAAM,GAAAC,IAAA,CAAAC,GAAA,CAAG,EAAE,EAAIN,SAAS,CAAA,CAAA;IAC9B,IAAMO,aAAa,GACfC,MAAM,CAACP,UAAU,CAAC,GAAG,CAAC,GAAGO,MAAM,CAACP,UAAU,CAAC,GAAGO,MAAM,CAACC,OAAO,GAAGD,MAAM,CAACP,UAAU,CAAC,GAAGO,MAAM,CAACC,OAAO,CAAA;AAEtG,IAAA,OAAOP,MAAM,CAACG,IAAI,CAACK,KAAK,CAACH,aAAa,GAAGH,MAAM,CAAC,GAAGA,MAAM,CAAC,CAAA;AAC9D,GAAA;AAEA,EAAA,OAAOH,UAAU,CAAA;AACrB;;;;;;;"}
@@ -81,6 +81,7 @@ var numberInputRoot = exports.numberInputRoot = function numberInputRoot(Root) {
81
81
  _useState6 = _slicedToArray(_useState5, 2),
82
82
  isAnimationRun = _useState6[0],
83
83
  setIsAnimationRun = _useState6[1];
84
+ console.log('innerValue', innerValue);
84
85
  var innerWidth = width ? (0, _utils.getSizeValueFromProp)(width) : '100%';
85
86
  var actionIconSize = size === 'xs' ? 'xs' : 's';
86
87
  var solidViewClass = segmentation === 'solid' ? _NumberInput.classes.solidView : undefined;
@@ -140,15 +140,18 @@ var NumberInput = exports.NumberInput = /*#__PURE__*/(0, _react.forwardRef)(func
140
140
  }
141
141
  return;
142
142
  }
143
+ console.log('here');
143
144
  var isValid = _utils2.numberSchema.test(cleanValue);
144
145
  if (!isValid) {
146
+ console.log('not valid', cleanValue);
145
147
  setValues(event, lastValidValue);
146
148
  return;
147
149
  }
150
+ console.log('valid!', cleanValue);
148
151
  if (textWrapperRef !== null && textWrapperRef !== void 0 && textWrapperRef.current && wrapperRef !== null && wrapperRef !== void 0 && wrapperRef.current && (textWrapperRef === null || textWrapperRef === void 0 || (_textWrapperRef$curre = textWrapperRef.current) === null || _textWrapperRef$curre === void 0 ? void 0 : _textWrapperRef$curre.clientWidth) > (wrapperRef === null || wrapperRef === void 0 || (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.clientWidth)) {
149
152
  wrapperRef.current.scrollLeft = textWrapperRef.current.offsetWidth - textWrapperRef.current.offsetLeft || 0;
150
153
  }
151
- setValues(event, Number(cleanValue));
154
+ setValues(event, cleanValue);
152
155
  };
153
156
  var handleClickInputWrapper = function handleClickInputWrapper() {
154
157
  if (!isManualInput || !inputRef.current) {
@@ -10,7 +10,9 @@ var excludingNumberSchema = exports.excludingNumberSchema = /[^-.\d]/g;
10
10
  var getPreciseValue = exports.getPreciseValue = function getPreciseValue(value, precision) {
11
11
  var innerValue = String(value);
12
12
  if (precision !== undefined) {
13
- return Number(innerValue).toFixed(precision);
13
+ var factor = Math.pow(10, precision);
14
+ var preparedValue = Number(innerValue) < 0 ? Number(innerValue) - Number.EPSILON : Number(innerValue) + Number.EPSILON;
15
+ return String(Math.round(preparedValue * factor) / factor);
14
16
  }
15
17
  return innerValue;
16
18
  };
@@ -73,6 +73,7 @@ export var numberInputRoot = function numberInputRoot(Root) {
73
73
  _useState6 = _slicedToArray(_useState5, 2),
74
74
  isAnimationRun = _useState6[0],
75
75
  setIsAnimationRun = _useState6[1];
76
+ console.log('innerValue', innerValue);
76
77
  var innerWidth = width ? getSizeValueFromProp(width) : '100%';
77
78
  var actionIconSize = size === 'xs' ? 'xs' : 's';
78
79
  var solidViewClass = segmentation === 'solid' ? classes.solidView : undefined;
@@ -131,15 +131,18 @@ export var NumberInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
131
131
  }
132
132
  return;
133
133
  }
134
+ console.log('here');
134
135
  var isValid = numberSchema.test(cleanValue);
135
136
  if (!isValid) {
137
+ console.log('not valid', cleanValue);
136
138
  setValues(event, lastValidValue);
137
139
  return;
138
140
  }
141
+ console.log('valid!', cleanValue);
139
142
  if (textWrapperRef !== null && textWrapperRef !== void 0 && textWrapperRef.current && wrapperRef !== null && wrapperRef !== void 0 && wrapperRef.current && (textWrapperRef === null || textWrapperRef === void 0 || (_textWrapperRef$curre = textWrapperRef.current) === null || _textWrapperRef$curre === void 0 ? void 0 : _textWrapperRef$curre.clientWidth) > (wrapperRef === null || wrapperRef === void 0 || (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.clientWidth)) {
140
143
  wrapperRef.current.scrollLeft = textWrapperRef.current.offsetWidth - textWrapperRef.current.offsetLeft || 0;
141
144
  }
142
- setValues(event, Number(cleanValue));
145
+ setValues(event, cleanValue);
143
146
  };
144
147
  var handleClickInputWrapper = function handleClickInputWrapper() {
145
148
  if (!isManualInput || !inputRef.current) {
@@ -4,7 +4,9 @@ export var excludingNumberSchema = /[^-.\d]/g;
4
4
  export var getPreciseValue = function getPreciseValue(value, precision) {
5
5
  var innerValue = String(value);
6
6
  if (precision !== undefined) {
7
- return Number(innerValue).toFixed(precision);
7
+ var factor = Math.pow(10, precision);
8
+ var preparedValue = Number(innerValue) < 0 ? Number(innerValue) - Number.EPSILON : Number(innerValue) + Number.EPSILON;
9
+ return String(Math.round(preparedValue * factor) / factor);
8
10
  }
9
11
  return innerValue;
10
12
  };
@@ -64,6 +64,7 @@ var numberInputRoot = function numberInputRoot(Root) {
64
64
  _useState6 = _slicedToArray(_useState5, 2),
65
65
  isAnimationRun = _useState6[0],
66
66
  setIsAnimationRun = _useState6[1];
67
+ console.log('innerValue', innerValue);
67
68
  var innerWidth = width ? getSizeValueFromProp(width) : '100%';
68
69
  var actionIconSize = size === 'xs' ? 'xs' : 's';
69
70
  var solidViewClass = segmentation === 'solid' ? classes.solidView : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.js","sources":["../../../src/components/NumberInput/NumberInput.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, useEffect, useState } from 'react';\n\nimport type { RootProps } from '../../engines';\nimport { cx, getSizeValueFromProp, isNumber } from '../../utils';\nimport { IconMinus, IconPlus } from '../_Icon';\n\nimport type { NumberInputProps, NumberInputRootProps } from './NumberInput.types';\nimport { ActionButton, NumberInput } from './ui';\nimport { classes, privateTokens } from './NumberInput.tokens';\nimport { base } from './NumberInput.styles';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as shapeCSS } from './variations/_shape/base';\nimport { base as inputBackgroundTypeCSS } from './variations/_background-type/base';\nimport { base as segmentationCSS } from './variations/_segmentation/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { getPreciseValue } from './utils';\n\nexport const numberInputRoot = (Root: RootProps<HTMLDivElement, NumberInputRootProps>) =>\n forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n className,\n style,\n width,\n value,\n min,\n max,\n step = 1,\n precision = 2,\n isLoading,\n loader,\n size,\n view,\n clear,\n shape,\n segmentation,\n inputBackgroundType = 'fill',\n disabled,\n textBefore,\n textAfter,\n customIncrementButton,\n incrementIcon,\n customDecrementButton,\n decrementIcon,\n isManualInput,\n onChange,\n onIncrement,\n onDecrement,\n ...rest\n },\n ref,\n ) => {\n const [innerValue, setInnerValue] = useState<number | string>(value ?? min ?? 0);\n const [isInputFocused, setIsInputFocused] = useState(false);\n const [isAnimationRun, setIsAnimationRun] = useState(false);\n\n const innerWidth = width ? getSizeValueFromProp(width) : '100%';\n\n const actionIconSize = size === 'xs' ? 'xs' : 's';\n const solidViewClass = segmentation === 'solid' ? classes.solidView : undefined;\n const segmentedViewClass = segmentation === 'segmented' ? classes.segmentedView : undefined;\n const clearViewClass = clear ? classes.clearView : undefined;\n const disabledClass = disabled ? classes.disabled : undefined;\n const loadingClass = isLoading ? classes.loading : undefined;\n const focusedClass = isInputFocused ? classes.focused : undefined;\n\n const isMinValue = (currentValue: number) => min !== undefined && currentValue <= min;\n const isMaxValue = (currentValue: number) => max !== undefined && currentValue >= max;\n\n const decrementButtonDisabled =\n (isMinValue(Number(innerValue)) && !isAnimationRun) || isLoading\n ? classes.actionButtonDecrementDisabled\n : undefined;\n const incrementButtonDisabled =\n (isMaxValue(Number(innerValue)) && !isAnimationRun) || isLoading\n ? classes.actionButtonIncrementDisabled\n : undefined;\n\n const handleDecrement = () => {\n if (isLoading || disabled || isAnimationRun) {\n return;\n }\n\n const preciseDiff = getPreciseValue(Number(innerValue) - step, precision);\n const diffValue = Number(preciseDiff);\n const resValue = min !== undefined && diffValue <= min ? min : diffValue;\n\n setInnerValue(resValue);\n\n if (onDecrement) {\n onDecrement(resValue);\n }\n\n if (onChange) {\n onChange(null, resValue);\n }\n };\n\n const handleIncrement = () => {\n if (isLoading || disabled || isAnimationRun) {\n return;\n }\n\n const preciseDiff = getPreciseValue(Number(innerValue) + step, precision);\n const diffValue = Number(preciseDiff);\n const resValue = max !== undefined && diffValue >= max ? max : diffValue;\n\n setInnerValue(resValue);\n\n if (onIncrement) {\n onIncrement(resValue);\n }\n\n if (onChange) {\n onChange(null, resValue);\n }\n };\n\n useEffect(() => {\n if (value === undefined || !isNumber(value)) {\n return;\n }\n\n setInnerValue((prevValue) => (prevValue !== value ? value : prevValue));\n }, [value]);\n\n return (\n <Root\n view={view}\n size={size}\n disabled={disabled}\n clear={clear}\n shape={shape}\n segmentation={segmentation}\n isLoading={isLoading}\n {...(segmentation === 'solid' ? { inputBackgroundType: 'clear' } : { inputBackgroundType })}\n className={cx(\n className,\n solidViewClass,\n segmentedViewClass,\n clearViewClass,\n disabledClass,\n loadingClass,\n focusedClass,\n )}\n style={\n {\n ...style,\n [privateTokens.inputWidth]: innerWidth,\n } as CSSProperties\n }\n >\n {customDecrementButton || (\n <ActionButton\n className={cx(\n classes.actionButtonDecrement,\n decrementButtonDisabled,\n solidViewClass,\n segmentedViewClass,\n )}\n icon={decrementIcon || <IconMinus color=\"inherit\" size={actionIconSize} />}\n onClick={handleDecrement}\n />\n )}\n <NumberInput\n ref={ref}\n segmentation={segmentation}\n value={innerValue}\n precision={precision}\n min={min}\n max={max}\n isManualInput={isManualInput}\n textBefore={textBefore}\n textAfter={textAfter}\n isLoading={isLoading}\n loader={loader}\n disabled={disabled}\n isInputFocused={isInputFocused}\n setIsInputFocused={setIsInputFocused}\n setIsAnimationRun={setIsAnimationRun}\n setInnerValue={setInnerValue}\n onChange={onChange}\n {...rest}\n />\n {customIncrementButton || (\n <ActionButton\n className={cx(\n classes.actionButtonIncrement,\n incrementButtonDisabled,\n solidViewClass,\n segmentedViewClass,\n )}\n icon={incrementIcon || <IconPlus color=\"inherit\" size={actionIconSize} />}\n onClick={handleIncrement}\n />\n )}\n </Root>\n );\n },\n );\n\nexport const numberInputConfig = {\n name: 'NumberInput',\n tag: 'div',\n layout: numberInputRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n shape: {\n css: shapeCSS,\n },\n inputBackgroundType: {\n css: inputBackgroundTypeCSS,\n },\n segmentation: {\n css: segmentationCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'default',\n size: 'l',\n shape: 'cornered',\n segmentation: 'default',\n },\n};\n"],"names":["numberInputRoot","Root","forwardRef","_ref","ref","_ref2","className","style","width","value","min","max","_ref$step","step","_ref$precision","precision","isLoading","loader","size","view","clear","shape","segmentation","_ref$inputBackgroundT","inputBackgroundType","disabled","textBefore","textAfter","customIncrementButton","incrementIcon","customDecrementButton","decrementIcon","isManualInput","onChange","onIncrement","onDecrement","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","innerValue","setInnerValue","_useState3","_useState4","isInputFocused","setIsInputFocused","_useState5","_useState6","isAnimationRun","setIsAnimationRun","innerWidth","getSizeValueFromProp","actionIconSize","solidViewClass","classes","solidView","undefined","segmentedViewClass","segmentedView","clearViewClass","clearView","disabledClass","loadingClass","loading","focusedClass","focused","isMinValue","currentValue","isMaxValue","decrementButtonDisabled","Number","actionButtonDecrementDisabled","incrementButtonDisabled","actionButtonIncrementDisabled","handleDecrement","preciseDiff","getPreciseValue","diffValue","resValue","handleIncrement","useEffect","isNumber","prevValue","React","createElement","_extends","cx","_objectSpread","_defineProperty","privateTokens","inputWidth","ActionButton","actionButtonDecrement","icon","IconMinus","color","onClick","NumberInput","actionButtonIncrement","IconPlus","numberInputConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","shapeCSS","inputBackgroundTypeCSS","segmentationCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"NumberInput.js","sources":["../../../src/components/NumberInput/NumberInput.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, useEffect, useState } from 'react';\n\nimport type { RootProps } from '../../engines';\nimport { cx, getSizeValueFromProp, isNumber } from '../../utils';\nimport { IconMinus, IconPlus } from '../_Icon';\n\nimport type { NumberInputProps, NumberInputRootProps } from './NumberInput.types';\nimport { ActionButton, NumberInput } from './ui';\nimport { classes, privateTokens } from './NumberInput.tokens';\nimport { base } from './NumberInput.styles';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as shapeCSS } from './variations/_shape/base';\nimport { base as inputBackgroundTypeCSS } from './variations/_background-type/base';\nimport { base as segmentationCSS } from './variations/_segmentation/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { getPreciseValue } from './utils';\n\nexport const numberInputRoot = (Root: RootProps<HTMLDivElement, NumberInputRootProps>) =>\n forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n className,\n style,\n width,\n value,\n min,\n max,\n step = 1,\n precision = 2,\n isLoading,\n loader,\n size,\n view,\n clear,\n shape,\n segmentation,\n inputBackgroundType = 'fill',\n disabled,\n textBefore,\n textAfter,\n customIncrementButton,\n incrementIcon,\n customDecrementButton,\n decrementIcon,\n isManualInput,\n onChange,\n onIncrement,\n onDecrement,\n ...rest\n },\n ref,\n ) => {\n const [innerValue, setInnerValue] = useState<number | string>(value ?? min ?? 0);\n const [isInputFocused, setIsInputFocused] = useState(false);\n const [isAnimationRun, setIsAnimationRun] = useState(false);\n\n console.log('innerValue', innerValue);\n\n const innerWidth = width ? getSizeValueFromProp(width) : '100%';\n\n const actionIconSize = size === 'xs' ? 'xs' : 's';\n const solidViewClass = segmentation === 'solid' ? classes.solidView : undefined;\n const segmentedViewClass = segmentation === 'segmented' ? classes.segmentedView : undefined;\n const clearViewClass = clear ? classes.clearView : undefined;\n const disabledClass = disabled ? classes.disabled : undefined;\n const loadingClass = isLoading ? classes.loading : undefined;\n const focusedClass = isInputFocused ? classes.focused : undefined;\n\n const isMinValue = (currentValue: number) => min !== undefined && currentValue <= min;\n const isMaxValue = (currentValue: number) => max !== undefined && currentValue >= max;\n\n const decrementButtonDisabled =\n (isMinValue(Number(innerValue)) && !isAnimationRun) || isLoading\n ? classes.actionButtonDecrementDisabled\n : undefined;\n const incrementButtonDisabled =\n (isMaxValue(Number(innerValue)) && !isAnimationRun) || isLoading\n ? classes.actionButtonIncrementDisabled\n : undefined;\n\n const handleDecrement = () => {\n if (isLoading || disabled || isAnimationRun) {\n return;\n }\n\n const preciseDiff = getPreciseValue(Number(innerValue) - step, precision);\n const diffValue = Number(preciseDiff);\n const resValue = min !== undefined && diffValue <= min ? min : diffValue;\n\n setInnerValue(resValue);\n\n if (onDecrement) {\n onDecrement(resValue);\n }\n\n if (onChange) {\n onChange(null, resValue);\n }\n };\n\n const handleIncrement = () => {\n if (isLoading || disabled || isAnimationRun) {\n return;\n }\n\n const preciseDiff = getPreciseValue(Number(innerValue) + step, precision);\n const diffValue = Number(preciseDiff);\n const resValue = max !== undefined && diffValue >= max ? max : diffValue;\n\n setInnerValue(resValue);\n\n if (onIncrement) {\n onIncrement(resValue);\n }\n\n if (onChange) {\n onChange(null, resValue);\n }\n };\n\n useEffect(() => {\n if (value === undefined || !isNumber(value)) {\n return;\n }\n\n setInnerValue((prevValue) => (prevValue !== value ? value : prevValue));\n }, [value]);\n\n return (\n <Root\n view={view}\n size={size}\n disabled={disabled}\n clear={clear}\n shape={shape}\n segmentation={segmentation}\n isLoading={isLoading}\n {...(segmentation === 'solid' ? { inputBackgroundType: 'clear' } : { inputBackgroundType })}\n className={cx(\n className,\n solidViewClass,\n segmentedViewClass,\n clearViewClass,\n disabledClass,\n loadingClass,\n focusedClass,\n )}\n style={\n {\n ...style,\n [privateTokens.inputWidth]: innerWidth,\n } as CSSProperties\n }\n >\n {customDecrementButton || (\n <ActionButton\n className={cx(\n classes.actionButtonDecrement,\n decrementButtonDisabled,\n solidViewClass,\n segmentedViewClass,\n )}\n icon={decrementIcon || <IconMinus color=\"inherit\" size={actionIconSize} />}\n onClick={handleDecrement}\n />\n )}\n <NumberInput\n ref={ref}\n segmentation={segmentation}\n value={innerValue}\n precision={precision}\n min={min}\n max={max}\n isManualInput={isManualInput}\n textBefore={textBefore}\n textAfter={textAfter}\n isLoading={isLoading}\n loader={loader}\n disabled={disabled}\n isInputFocused={isInputFocused}\n setIsInputFocused={setIsInputFocused}\n setIsAnimationRun={setIsAnimationRun}\n setInnerValue={setInnerValue}\n onChange={onChange}\n {...rest}\n />\n {customIncrementButton || (\n <ActionButton\n className={cx(\n classes.actionButtonIncrement,\n incrementButtonDisabled,\n solidViewClass,\n segmentedViewClass,\n )}\n icon={incrementIcon || <IconPlus color=\"inherit\" size={actionIconSize} />}\n onClick={handleIncrement}\n />\n )}\n </Root>\n );\n },\n );\n\nexport const numberInputConfig = {\n name: 'NumberInput',\n tag: 'div',\n layout: numberInputRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n shape: {\n css: shapeCSS,\n },\n inputBackgroundType: {\n css: inputBackgroundTypeCSS,\n },\n segmentation: {\n css: segmentationCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'default',\n size: 'l',\n shape: 'cornered',\n segmentation: 'default',\n },\n};\n"],"names":["numberInputRoot","Root","forwardRef","_ref","ref","_ref2","className","style","width","value","min","max","_ref$step","step","_ref$precision","precision","isLoading","loader","size","view","clear","shape","segmentation","_ref$inputBackgroundT","inputBackgroundType","disabled","textBefore","textAfter","customIncrementButton","incrementIcon","customDecrementButton","decrementIcon","isManualInput","onChange","onIncrement","onDecrement","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","innerValue","setInnerValue","_useState3","_useState4","isInputFocused","setIsInputFocused","_useState5","_useState6","isAnimationRun","setIsAnimationRun","console","log","innerWidth","getSizeValueFromProp","actionIconSize","solidViewClass","classes","solidView","undefined","segmentedViewClass","segmentedView","clearViewClass","clearView","disabledClass","loadingClass","loading","focusedClass","focused","isMinValue","currentValue","isMaxValue","decrementButtonDisabled","Number","actionButtonDecrementDisabled","incrementButtonDisabled","actionButtonIncrementDisabled","handleDecrement","preciseDiff","getPreciseValue","diffValue","resValue","handleIncrement","useEffect","isNumber","prevValue","React","createElement","_extends","cx","_objectSpread","_defineProperty","privateTokens","inputWidth","ActionButton","actionButtonDecrement","icon","IconMinus","color","onClick","NumberInput","actionButtonIncrement","IconPlus","numberInputConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","shapeCSS","inputBackgroundTypeCSS","segmentationCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
@@ -3,7 +3,7 @@ import React, { forwardRef, useState, useRef, useEffect } from 'react';
3
3
  import { useForkRef } from '@salutejs/plasma-core';
4
4
  import { classes } from '../../NumberInput.tokens.js';
5
5
  import { cx } from '../../../../utils/index.js';
6
- import { defaultCharacterWidth, excludingNumberSchema, getPreciseValue, numberSchema } from '../../utils/index.js';
6
+ import { defaultCharacterWidth, excludingNumberSchema, numberSchema, getPreciseValue } from '../../utils/index.js';
7
7
  import { keyCodes } from '../../../../utils/constants.js';
8
8
  import { InputWrapper, TextWrapper, AdditionalText, Loader, StyledSpinner, DynamicInput, Input, InputWidthHelper } from './Input.styles.js';
9
9
  import { useDidMountEffect } from '../../../../hooks/useDidMountEffect.js';
@@ -125,15 +125,18 @@ var NumberInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
125
125
  }
126
126
  return;
127
127
  }
128
+ console.log('here');
128
129
  var isValid = numberSchema.test(cleanValue);
129
130
  if (!isValid) {
131
+ console.log('not valid', cleanValue);
130
132
  setValues(event, lastValidValue);
131
133
  return;
132
134
  }
135
+ console.log('valid!', cleanValue);
133
136
  if (textWrapperRef !== null && textWrapperRef !== void 0 && textWrapperRef.current && wrapperRef !== null && wrapperRef !== void 0 && wrapperRef.current && (textWrapperRef === null || textWrapperRef === void 0 || (_textWrapperRef$curre = textWrapperRef.current) === null || _textWrapperRef$curre === void 0 ? void 0 : _textWrapperRef$curre.clientWidth) > (wrapperRef === null || wrapperRef === void 0 || (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.clientWidth)) {
134
137
  wrapperRef.current.scrollLeft = textWrapperRef.current.offsetWidth - textWrapperRef.current.offsetLeft || 0;
135
138
  }
136
- setValues(event, Number(cleanValue));
139
+ setValues(event, cleanValue);
137
140
  };
138
141
  var handleClickInputWrapper = function handleClickInputWrapper() {
139
142
  if (!isManualInput || !inputRef.current) {
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../../../../src/components/NumberInput/ui/Input/Input.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport type { KeyboardEvent, ChangeEvent, FocusEvent } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { classes } from '../../NumberInput.tokens';\nimport { cx, isNumber } from '../../../../utils';\nimport { useDidMountEffect } from '../../../../hooks';\nimport { defaultCharacterWidth, excludingNumberSchema, getPreciseValue, numberSchema } from '../../utils';\nimport { keyCodes } from '../../../../utils/constants';\n\nimport type { InputProps } from './Input.types';\nimport {\n AdditionalText,\n Input,\n InputWrapper,\n DynamicInput,\n InputWidthHelper,\n TextWrapper,\n StyledSpinner,\n Loader,\n} from './Input.styles';\n\nexport const NumberInput = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n value,\n precision,\n min,\n max,\n isLoading,\n loader,\n disabled,\n segmentation,\n textBefore,\n textAfter,\n isManualInput,\n isInputFocused,\n setIsInputFocused,\n setIsAnimationRun,\n setInnerValue,\n onChange,\n onBlur,\n onKeyDown,\n ...rest\n },\n ref,\n ) => {\n const [dynamicWidth, setDynamicWidth] = useState(value ? `${String(value).length}ch` : defaultCharacterWidth);\n const [lastValidValue, setLastValidValue] = useState(Number(value));\n const [errorClass, setErrorClass] = useState<string | undefined>(undefined);\n const [errorValue, setErrorValue] = useState<number>();\n\n const inputHelperRef = useRef<HTMLSpanElement>(null);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const textWrapperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const inputForkRef = useForkRef(inputRef, ref);\n\n const solidViewClass = segmentation === 'solid' ? classes.solidView : undefined;\n const manualInputClass = isManualInput ? classes.manualInput : undefined;\n\n const getInputWidth = (firstRender = true) => {\n if (!firstRender && inputHelperRef.current?.clientWidth) {\n return `${inputHelperRef.current?.clientWidth}px`;\n }\n\n if (value) {\n return `${String(value).length}ch`;\n }\n\n return defaultCharacterWidth;\n };\n\n const setValues = (event: ChangeEvent<HTMLInputElement> | null, newValue: number) => {\n setLastValidValue(newValue);\n setInnerValue(newValue);\n\n if (onChange) {\n onChange(event, newValue);\n }\n };\n\n const validateValue = (newValue: number | string) => {\n if (!newValue || !isNumber(newValue)) {\n setValues(null, lastValidValue);\n setIsAnimationRun(false);\n return;\n }\n\n const resValue = Number(newValue);\n if (max !== undefined && resValue > max) {\n setErrorClass(classes.errorAnimation);\n setErrorValue(max);\n setIsAnimationRun(true);\n return;\n }\n\n if (min !== undefined && resValue < min) {\n setErrorClass(classes.errorAnimation);\n setErrorValue(min);\n setIsAnimationRun(true);\n return;\n }\n\n if (String(newValue).endsWith('.')) {\n setValues(null, Number(newValue));\n setIsAnimationRun(false);\n return;\n }\n\n if (precision !== undefined) {\n const preciseNewValue = Number(getPreciseValue(newValue, precision));\n setValues(null, preciseNewValue);\n }\n\n setIsAnimationRun(false);\n };\n\n const handleManualInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (!isManualInput || disabled) {\n return;\n }\n\n setIsAnimationRun(true);\n\n const { value: newValue } = event.target;\n\n if (!newValue) {\n setInnerValue('');\n\n if (onChange) {\n onChange(event, '');\n }\n return;\n }\n\n const cleanValue = newValue.replace(excludingNumberSchema, '');\n if (cleanValue.endsWith('.') || cleanValue === '-') {\n setInnerValue(cleanValue);\n\n if (onChange) {\n onChange(event, cleanValue);\n }\n return;\n }\n\n const isValid = numberSchema.test(cleanValue);\n\n if (!isValid) {\n setValues(event, lastValidValue);\n return;\n }\n\n if (\n textWrapperRef?.current &&\n wrapperRef?.current &&\n textWrapperRef?.current?.clientWidth > wrapperRef?.current?.clientWidth\n ) {\n wrapperRef.current.scrollLeft =\n textWrapperRef.current.offsetWidth - textWrapperRef.current.offsetLeft || 0;\n }\n\n setValues(event, Number(cleanValue));\n };\n\n const handleClickInputWrapper = () => {\n if (!isManualInput || !inputRef.current) {\n return;\n }\n\n if (!isInputFocused) {\n inputRef.current.select();\n }\n\n setIsInputFocused(true);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n validateValue(value);\n setIsInputFocused(false);\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (!isManualInput || disabled) {\n return;\n }\n\n if (event.keyCode === keyCodes.Enter) {\n event.preventDefault();\n\n validateValue(value);\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n }\n };\n\n const handleEndErrorAnimation = (correctValue: number) => {\n setIsAnimationRun(false);\n setIsInputFocused(false);\n\n setErrorClass(undefined);\n setValues(null, correctValue);\n };\n\n useEffect(() => {\n setDynamicWidth(getInputWidth());\n }, []);\n\n useDidMountEffect(() => {\n setDynamicWidth(getInputWidth(false));\n }, [value]);\n\n return (\n <InputWrapper\n ref={wrapperRef}\n className={cx(solidViewClass, errorClass, manualInputClass)}\n isManualInput={Boolean(isManualInput)}\n onClick={handleClickInputWrapper}\n >\n <TextWrapper ref={textWrapperRef}>\n {!isLoading && textBefore && (\n <AdditionalText className={classes.textBefore}>{textBefore}</AdditionalText>\n )}\n {isLoading ? (\n <Loader>{loader || <StyledSpinner />}</Loader>\n ) : (\n <DynamicInput>\n <Input\n ref={inputForkRef}\n dynamicWidth={dynamicWidth}\n value={value}\n isManualInput={Boolean(isManualInput)}\n tabIndex={disabled || !isManualInput ? -1 : 0}\n onChange={handleManualInputChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onAnimationEnd={() => handleEndErrorAnimation(Number(errorValue))}\n {...rest}\n />\n <InputWidthHelper ref={inputHelperRef}>{value}</InputWidthHelper>\n </DynamicInput>\n )}\n {!isLoading && textAfter && (\n <AdditionalText className={classes.textAfter}>{textAfter}</AdditionalText>\n )}\n </TextWrapper>\n </InputWrapper>\n );\n },\n);\n"],"names":["NumberInput","forwardRef","_ref","ref","value","precision","min","max","isLoading","loader","disabled","segmentation","textBefore","textAfter","isManualInput","isInputFocused","setIsInputFocused","setIsAnimationRun","setInnerValue","onChange","onBlur","onKeyDown","rest","_objectWithoutProperties","_excluded","_useState","useState","concat","String","length","defaultCharacterWidth","_useState2","_slicedToArray","dynamicWidth","setDynamicWidth","_useState3","Number","_useState4","lastValidValue","setLastValidValue","_useState5","undefined","_useState6","errorClass","setErrorClass","_useState7","_useState8","errorValue","setErrorValue","inputHelperRef","useRef","wrapperRef","textWrapperRef","inputRef","inputForkRef","useForkRef","solidViewClass","classes","solidView","manualInputClass","manualInput","getInputWidth","_inputHelperRef$curre","firstRender","arguments","current","clientWidth","_inputHelperRef$curre2","setValues","event","newValue","validateValue","isNumber","resValue","errorAnimation","endsWith","preciseNewValue","getPreciseValue","handleManualInputChange","_textWrapperRef$curre","_wrapperRef$current","target","cleanValue","replace","excludingNumberSchema","isValid","numberSchema","test","scrollLeft","offsetWidth","offsetLeft","handleClickInputWrapper","select","handleBlur","handleKeyDown","keyCode","keyCodes","Enter","preventDefault","handleEndErrorAnimation","correctValue","useEffect","useDidMountEffect","React","createElement","InputWrapper","className","cx","Boolean","onClick","TextWrapper","AdditionalText","Loader","_StyledSpinner","StyledSpinner","DynamicInput","Input","_extends","tabIndex","onAnimationEnd","InputWidthHelper"],"mappings":"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"}
1
+ {"version":3,"file":"Input.js","sources":["../../../../../src/components/NumberInput/ui/Input/Input.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport type { KeyboardEvent, ChangeEvent, FocusEvent } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\n\nimport { classes } from '../../NumberInput.tokens';\nimport { cx, isNumber } from '../../../../utils';\nimport { useDidMountEffect } from '../../../../hooks';\nimport { defaultCharacterWidth, excludingNumberSchema, getPreciseValue, numberSchema } from '../../utils';\nimport { keyCodes } from '../../../../utils/constants';\n\nimport type { InputProps } from './Input.types';\nimport {\n AdditionalText,\n Input,\n InputWrapper,\n DynamicInput,\n InputWidthHelper,\n TextWrapper,\n StyledSpinner,\n Loader,\n} from './Input.styles';\n\nexport const NumberInput = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n value,\n precision,\n min,\n max,\n isLoading,\n loader,\n disabled,\n segmentation,\n textBefore,\n textAfter,\n isManualInput,\n isInputFocused,\n setIsInputFocused,\n setIsAnimationRun,\n setInnerValue,\n onChange,\n onBlur,\n onKeyDown,\n ...rest\n },\n ref,\n ) => {\n const [dynamicWidth, setDynamicWidth] = useState(value ? `${String(value).length}ch` : defaultCharacterWidth);\n const [lastValidValue, setLastValidValue] = useState<number | string>(Number(value));\n const [errorClass, setErrorClass] = useState<string | undefined>(undefined);\n const [errorValue, setErrorValue] = useState<number>();\n\n const inputHelperRef = useRef<HTMLSpanElement>(null);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const textWrapperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const inputForkRef = useForkRef(inputRef, ref);\n\n const solidViewClass = segmentation === 'solid' ? classes.solidView : undefined;\n const manualInputClass = isManualInput ? classes.manualInput : undefined;\n\n const getInputWidth = (firstRender = true) => {\n if (!firstRender && inputHelperRef.current?.clientWidth) {\n return `${inputHelperRef.current?.clientWidth}px`;\n }\n\n if (value) {\n return `${String(value).length}ch`;\n }\n\n return defaultCharacterWidth;\n };\n\n const setValues = (event: ChangeEvent<HTMLInputElement> | null, newValue: number | string) => {\n setLastValidValue(newValue);\n setInnerValue(newValue);\n\n if (onChange) {\n onChange(event, newValue);\n }\n };\n\n const validateValue = (newValue: number | string) => {\n if (!newValue || !isNumber(newValue)) {\n setValues(null, lastValidValue);\n setIsAnimationRun(false);\n return;\n }\n\n const resValue = Number(newValue);\n if (max !== undefined && resValue > max) {\n setErrorClass(classes.errorAnimation);\n setErrorValue(max);\n setIsAnimationRun(true);\n return;\n }\n\n if (min !== undefined && resValue < min) {\n setErrorClass(classes.errorAnimation);\n setErrorValue(min);\n setIsAnimationRun(true);\n return;\n }\n\n if (String(newValue).endsWith('.')) {\n setValues(null, Number(newValue));\n setIsAnimationRun(false);\n return;\n }\n\n if (precision !== undefined) {\n const preciseNewValue = Number(getPreciseValue(newValue, precision));\n setValues(null, preciseNewValue);\n }\n\n setIsAnimationRun(false);\n };\n\n const handleManualInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (!isManualInput || disabled) {\n return;\n }\n\n setIsAnimationRun(true);\n\n const { value: newValue } = event.target;\n\n if (!newValue) {\n setInnerValue('');\n\n if (onChange) {\n onChange(event, '');\n }\n return;\n }\n\n const cleanValue = newValue.replace(excludingNumberSchema, '');\n if (cleanValue.endsWith('.') || cleanValue === '-') {\n setInnerValue(cleanValue);\n\n if (onChange) {\n onChange(event, cleanValue);\n }\n return;\n }\n\n console.log('here');\n const isValid = numberSchema.test(cleanValue);\n\n if (!isValid) {\n console.log('not valid', cleanValue);\n setValues(event, lastValidValue);\n return;\n }\n console.log('valid!', cleanValue);\n\n if (\n textWrapperRef?.current &&\n wrapperRef?.current &&\n textWrapperRef?.current?.clientWidth > wrapperRef?.current?.clientWidth\n ) {\n wrapperRef.current.scrollLeft =\n textWrapperRef.current.offsetWidth - textWrapperRef.current.offsetLeft || 0;\n }\n\n setValues(event, cleanValue);\n };\n\n const handleClickInputWrapper = () => {\n if (!isManualInput || !inputRef.current) {\n return;\n }\n\n if (!isInputFocused) {\n inputRef.current.select();\n }\n\n setIsInputFocused(true);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n validateValue(value);\n setIsInputFocused(false);\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (!isManualInput || disabled) {\n return;\n }\n\n if (event.keyCode === keyCodes.Enter) {\n event.preventDefault();\n\n validateValue(value);\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n }\n };\n\n const handleEndErrorAnimation = (correctValue: number) => {\n setIsAnimationRun(false);\n setIsInputFocused(false);\n\n setErrorClass(undefined);\n setValues(null, correctValue);\n };\n\n useEffect(() => {\n setDynamicWidth(getInputWidth());\n }, []);\n\n useDidMountEffect(() => {\n setDynamicWidth(getInputWidth(false));\n }, [value]);\n\n return (\n <InputWrapper\n ref={wrapperRef}\n className={cx(solidViewClass, errorClass, manualInputClass)}\n isManualInput={Boolean(isManualInput)}\n onClick={handleClickInputWrapper}\n >\n <TextWrapper ref={textWrapperRef}>\n {!isLoading && textBefore && (\n <AdditionalText className={classes.textBefore}>{textBefore}</AdditionalText>\n )}\n {isLoading ? (\n <Loader>{loader || <StyledSpinner />}</Loader>\n ) : (\n <DynamicInput>\n <Input\n ref={inputForkRef}\n dynamicWidth={dynamicWidth}\n value={value}\n isManualInput={Boolean(isManualInput)}\n tabIndex={disabled || !isManualInput ? -1 : 0}\n onChange={handleManualInputChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onAnimationEnd={() => handleEndErrorAnimation(Number(errorValue))}\n {...rest}\n />\n <InputWidthHelper ref={inputHelperRef}>{value}</InputWidthHelper>\n </DynamicInput>\n )}\n {!isLoading && textAfter && (\n <AdditionalText className={classes.textAfter}>{textAfter}</AdditionalText>\n )}\n </TextWrapper>\n </InputWrapper>\n );\n },\n);\n"],"names":["NumberInput","forwardRef","_ref","ref","value","precision","min","max","isLoading","loader","disabled","segmentation","textBefore","textAfter","isManualInput","isInputFocused","setIsInputFocused","setIsAnimationRun","setInnerValue","onChange","onBlur","onKeyDown","rest","_objectWithoutProperties","_excluded","_useState","useState","concat","String","length","defaultCharacterWidth","_useState2","_slicedToArray","dynamicWidth","setDynamicWidth","_useState3","Number","_useState4","lastValidValue","setLastValidValue","_useState5","undefined","_useState6","errorClass","setErrorClass","_useState7","_useState8","errorValue","setErrorValue","inputHelperRef","useRef","wrapperRef","textWrapperRef","inputRef","inputForkRef","useForkRef","solidViewClass","classes","solidView","manualInputClass","manualInput","getInputWidth","_inputHelperRef$curre","firstRender","arguments","current","clientWidth","_inputHelperRef$curre2","setValues","event","newValue","validateValue","isNumber","resValue","errorAnimation","endsWith","preciseNewValue","getPreciseValue","handleManualInputChange","_textWrapperRef$curre","_wrapperRef$current","target","cleanValue","replace","excludingNumberSchema","console","log","isValid","numberSchema","test","scrollLeft","offsetWidth","offsetLeft","handleClickInputWrapper","select","handleBlur","handleKeyDown","keyCode","keyCodes","Enter","preventDefault","handleEndErrorAnimation","correctValue","useEffect","useDidMountEffect","React","createElement","InputWrapper","className","cx","Boolean","onClick","TextWrapper","AdditionalText","Loader","_StyledSpinner","StyledSpinner","DynamicInput","Input","_extends","tabIndex","onAnimationEnd","InputWidthHelper"],"mappings":"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"}
@@ -4,7 +4,9 @@ var excludingNumberSchema = /[^-.\d]/g;
4
4
  var getPreciseValue = function getPreciseValue(value, precision) {
5
5
  var innerValue = String(value);
6
6
  if (precision !== undefined) {
7
- return Number(innerValue).toFixed(precision);
7
+ var factor = Math.pow(10, precision);
8
+ var preparedValue = Number(innerValue) < 0 ? Number(innerValue) - Number.EPSILON : Number(innerValue) + Number.EPSILON;
9
+ return String(Math.round(preparedValue * factor) / factor);
8
10
  }
9
11
  return innerValue;
10
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/NumberInput/utils/index.ts"],"sourcesContent":["export const defaultCharacterWidth = '1ch';\nexport const numberSchema = /^(-)?\\d+(\\.\\d+)?$/;\nexport const excludingNumberSchema = /[^-.\\d]/g;\n\nexport const getPreciseValue = (value: number | string, precision?: number) => {\n const innerValue = String(value);\n\n if (precision !== undefined) {\n return Number(innerValue).toFixed(precision);\n }\n\n return innerValue;\n};\n"],"names":["defaultCharacterWidth","numberSchema","excludingNumberSchema","getPreciseValue","value","precision","innerValue","String","undefined","Number","toFixed"],"mappings":"AAAO,IAAMA,qBAAqB,GAAG,MAAK;AACnC,IAAMC,YAAY,GAAG,oBAAmB;AACxC,IAAMC,qBAAqB,GAAG,WAAU;AAExC,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,KAAsB,EAAEC,SAAkB,EAAK;AAC3E,EAAA,IAAMC,UAAU,GAAGC,MAAM,CAACH,KAAK,CAAC,CAAA;EAEhC,IAAIC,SAAS,KAAKG,SAAS,EAAE;IACzB,OAAOC,MAAM,CAACH,UAAU,CAAC,CAACI,OAAO,CAACL,SAAS,CAAC,CAAA;AAChD,GAAA;AAEA,EAAA,OAAOC,UAAU,CAAA;AACrB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/NumberInput/utils/index.ts"],"sourcesContent":["export const defaultCharacterWidth = '1ch';\nexport const numberSchema = /^(-)?\\d+(\\.\\d+)?$/;\nexport const excludingNumberSchema = /[^-.\\d]/g;\n\nexport const getPreciseValue = (value: number | string, precision?: number) => {\n const innerValue = String(value);\n\n if (precision !== undefined) {\n const factor = 10 ** precision;\n const preparedValue =\n Number(innerValue) < 0 ? Number(innerValue) - Number.EPSILON : Number(innerValue) + Number.EPSILON;\n\n return String(Math.round(preparedValue * factor) / factor);\n }\n\n return innerValue;\n};\n"],"names":["defaultCharacterWidth","numberSchema","excludingNumberSchema","getPreciseValue","value","precision","innerValue","String","undefined","factor","Math","pow","preparedValue","Number","EPSILON","round"],"mappings":"AAAO,IAAMA,qBAAqB,GAAG,MAAK;AACnC,IAAMC,YAAY,GAAG,oBAAmB;AACxC,IAAMC,qBAAqB,GAAG,WAAU;AAExC,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,KAAsB,EAAEC,SAAkB,EAAK;AAC3E,EAAA,IAAMC,UAAU,GAAGC,MAAM,CAACH,KAAK,CAAC,CAAA;EAEhC,IAAIC,SAAS,KAAKG,SAAS,EAAE;IACzB,IAAMC,MAAM,GAAAC,IAAA,CAAAC,GAAA,CAAG,EAAE,EAAIN,SAAS,CAAA,CAAA;IAC9B,IAAMO,aAAa,GACfC,MAAM,CAACP,UAAU,CAAC,GAAG,CAAC,GAAGO,MAAM,CAACP,UAAU,CAAC,GAAGO,MAAM,CAACC,OAAO,GAAGD,MAAM,CAACP,UAAU,CAAC,GAAGO,MAAM,CAACC,OAAO,CAAA;AAEtG,IAAA,OAAOP,MAAM,CAACG,IAAI,CAACK,KAAK,CAACH,aAAa,GAAGH,MAAM,CAAC,GAAGA,MAAM,CAAC,CAAA;AAC9D,GAAA;AAEA,EAAA,OAAOH,UAAU,CAAA;AACrB;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salutejs/plasma-new-hope",
3
- "version": "0.239.0-canary.1699.12742131493.0",
3
+ "version": "0.239.0-canary.1699.12749937190.0",
4
4
  "description": "Salute Design System blueprint",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./es/index.js",
@@ -148,5 +148,5 @@
148
148
  "sideEffects": [
149
149
  "*.css"
150
150
  ],
151
- "gitHead": "c3741cc3651146374ae4564cce5d5fddfb0b5941"
151
+ "gitHead": "22790490a734ffdf9d21f828d3428c8859605129"
152
152
  }
@@ -81,6 +81,7 @@ var numberInputRoot = exports.numberInputRoot = function numberInputRoot(Root) {
81
81
  _useState6 = _slicedToArray(_useState5, 2),
82
82
  isAnimationRun = _useState6[0],
83
83
  setIsAnimationRun = _useState6[1];
84
+ console.log('innerValue', innerValue);
84
85
  var innerWidth = width ? (0, _utils.getSizeValueFromProp)(width) : '100%';
85
86
  var actionIconSize = size === 'xs' ? 'xs' : 's';
86
87
  var solidViewClass = segmentation === 'solid' ? _NumberInput.classes.solidView : undefined;
@@ -140,15 +140,18 @@ var NumberInput = exports.NumberInput = /*#__PURE__*/(0, _react.forwardRef)(func
140
140
  }
141
141
  return;
142
142
  }
143
+ console.log('here');
143
144
  var isValid = _utils2.numberSchema.test(cleanValue);
144
145
  if (!isValid) {
146
+ console.log('not valid', cleanValue);
145
147
  setValues(event, lastValidValue);
146
148
  return;
147
149
  }
150
+ console.log('valid!', cleanValue);
148
151
  if (textWrapperRef !== null && textWrapperRef !== void 0 && textWrapperRef.current && wrapperRef !== null && wrapperRef !== void 0 && wrapperRef.current && (textWrapperRef === null || textWrapperRef === void 0 || (_textWrapperRef$curre = textWrapperRef.current) === null || _textWrapperRef$curre === void 0 ? void 0 : _textWrapperRef$curre.clientWidth) > (wrapperRef === null || wrapperRef === void 0 || (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.clientWidth)) {
149
152
  wrapperRef.current.scrollLeft = textWrapperRef.current.offsetWidth - textWrapperRef.current.offsetLeft || 0;
150
153
  }
151
- setValues(event, Number(cleanValue));
154
+ setValues(event, cleanValue);
152
155
  };
153
156
  var handleClickInputWrapper = function handleClickInputWrapper() {
154
157
  if (!isManualInput || !inputRef.current) {
@@ -10,7 +10,9 @@ var excludingNumberSchema = exports.excludingNumberSchema = /[^-.\d]/g;
10
10
  var getPreciseValue = exports.getPreciseValue = function getPreciseValue(value, precision) {
11
11
  var innerValue = String(value);
12
12
  if (precision !== undefined) {
13
- return Number(innerValue).toFixed(precision);
13
+ var factor = Math.pow(10, precision);
14
+ var preparedValue = Number(innerValue) < 0 ? Number(innerValue) - Number.EPSILON : Number(innerValue) + Number.EPSILON;
15
+ return String(Math.round(preparedValue * factor) / factor);
14
16
  }
15
17
  return innerValue;
16
18
  };
@@ -73,6 +73,7 @@ export var numberInputRoot = function numberInputRoot(Root) {
73
73
  _useState6 = _slicedToArray(_useState5, 2),
74
74
  isAnimationRun = _useState6[0],
75
75
  setIsAnimationRun = _useState6[1];
76
+ console.log('innerValue', innerValue);
76
77
  var innerWidth = width ? getSizeValueFromProp(width) : '100%';
77
78
  var actionIconSize = size === 'xs' ? 'xs' : 's';
78
79
  var solidViewClass = segmentation === 'solid' ? classes.solidView : undefined;
@@ -131,15 +131,18 @@ export var NumberInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
131
131
  }
132
132
  return;
133
133
  }
134
+ console.log('here');
134
135
  var isValid = numberSchema.test(cleanValue);
135
136
  if (!isValid) {
137
+ console.log('not valid', cleanValue);
136
138
  setValues(event, lastValidValue);
137
139
  return;
138
140
  }
141
+ console.log('valid!', cleanValue);
139
142
  if (textWrapperRef !== null && textWrapperRef !== void 0 && textWrapperRef.current && wrapperRef !== null && wrapperRef !== void 0 && wrapperRef.current && (textWrapperRef === null || textWrapperRef === void 0 || (_textWrapperRef$curre = textWrapperRef.current) === null || _textWrapperRef$curre === void 0 ? void 0 : _textWrapperRef$curre.clientWidth) > (wrapperRef === null || wrapperRef === void 0 || (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.clientWidth)) {
140
143
  wrapperRef.current.scrollLeft = textWrapperRef.current.offsetWidth - textWrapperRef.current.offsetLeft || 0;
141
144
  }
142
- setValues(event, Number(cleanValue));
145
+ setValues(event, cleanValue);
143
146
  };
144
147
  var handleClickInputWrapper = function handleClickInputWrapper() {
145
148
  if (!isManualInput || !inputRef.current) {
@@ -4,7 +4,9 @@ export var excludingNumberSchema = /[^-.\d]/g;
4
4
  export var getPreciseValue = function getPreciseValue(value, precision) {
5
5
  var innerValue = String(value);
6
6
  if (precision !== undefined) {
7
- return Number(innerValue).toFixed(precision);
7
+ var factor = Math.pow(10, precision);
8
+ var preparedValue = Number(innerValue) < 0 ? Number(innerValue) - Number.EPSILON : Number(innerValue) + Number.EPSILON;
9
+ return String(Math.round(preparedValue * factor) / factor);
8
10
  }
9
11
  return innerValue;
10
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../../src/components/NumberInput/NumberInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAE9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAYlF,eAAO,MAAM,eAAe,SAAU,UAAU,cAAc,EAAE,oBAAoB,CAAC,8FAsLhF,CAAC;AAEN,eAAO,MAAM,iBAAiB;;;mBAxLQ,UAAU,cAAc,EAAE,oBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwNpF,CAAC"}
1
+ {"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../../src/components/NumberInput/NumberInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAE9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAYlF,eAAO,MAAM,eAAe,SAAU,UAAU,cAAc,EAAE,oBAAoB,CAAC,8FAwLhF,CAAC;AAEN,eAAO,MAAM,iBAAiB;;;mBA1LQ,UAAU,cAAc,EAAE,oBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0NpF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../../../src/components/NumberInput/ui/Input/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAsBvE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;oHAyOvB,CAAC"}
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../../../src/components/NumberInput/ui/Input/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAsBvE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;oHA4OvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/NumberInput/utils/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAC3C,eAAO,MAAM,YAAY,QAAsB,CAAC;AAChD,eAAO,MAAM,qBAAqB,QAAa,CAAC;AAEhD,eAAO,MAAM,eAAe,UAAW,MAAM,GAAG,MAAM,2CAQrD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/NumberInput/utils/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAC3C,eAAO,MAAM,YAAY,QAAsB,CAAC;AAChD,eAAO,MAAM,qBAAqB,QAAa,CAAC;AAEhD,eAAO,MAAM,eAAe,UAAW,MAAM,GAAG,MAAM,2CAYrD,CAAC"}