@salutejs/plasma-new-hope 0.239.0-canary.1702.12763507639.0 → 0.239.0-dev.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 (77) hide show
  1. package/cjs/components/DatePicker/RangeDate/RangeDate.js +21 -66
  2. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  3. package/cjs/components/NumberInput/NumberInput.js +10 -3
  4. package/cjs/components/NumberInput/NumberInput.js.map +1 -1
  5. package/cjs/components/NumberInput/ui/Input/Input.js +16 -7
  6. package/cjs/components/NumberInput/ui/Input/Input.js.map +1 -1
  7. package/cjs/components/NumberInput/utils/index.js +10 -0
  8. package/cjs/components/NumberInput/utils/index.js.map +1 -1
  9. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +21 -66
  10. package/emotion/cjs/components/NumberInput/NumberInput.js +10 -3
  11. package/emotion/cjs/components/NumberInput/ui/Input/Input.js +16 -7
  12. package/emotion/cjs/components/NumberInput/utils/index.js +11 -2
  13. package/emotion/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +7 -1
  14. package/emotion/cjs/examples/plasma_b2c/components/NumberInput/NumberInput.stories.tsx +1 -0
  15. package/emotion/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +7 -3
  16. package/emotion/cjs/examples/plasma_web/components/NumberInput/NumberInput.stories.tsx +1 -0
  17. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +21 -66
  18. package/emotion/es/components/NumberInput/NumberInput.js +10 -3
  19. package/emotion/es/components/NumberInput/ui/Input/Input.js +17 -8
  20. package/emotion/es/components/NumberInput/utils/index.js +10 -1
  21. package/emotion/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +7 -1
  22. package/emotion/es/examples/plasma_b2c/components/NumberInput/NumberInput.stories.tsx +1 -0
  23. package/emotion/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +7 -3
  24. package/emotion/es/examples/plasma_web/components/NumberInput/NumberInput.stories.tsx +1 -0
  25. package/es/components/DatePicker/RangeDate/RangeDate.js +21 -66
  26. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  27. package/es/components/NumberInput/NumberInput.js +10 -3
  28. package/es/components/NumberInput/NumberInput.js.map +1 -1
  29. package/es/components/NumberInput/ui/Input/Input.js +17 -8
  30. package/es/components/NumberInput/ui/Input/Input.js.map +1 -1
  31. package/es/components/NumberInput/utils/index.js +10 -1
  32. package/es/components/NumberInput/utils/index.js.map +1 -1
  33. package/package.json +2 -2
  34. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +21 -66
  35. package/styled-components/cjs/components/NumberInput/NumberInput.js +10 -3
  36. package/styled-components/cjs/components/NumberInput/ui/Input/Input.js +16 -7
  37. package/styled-components/cjs/components/NumberInput/utils/index.js +11 -2
  38. package/styled-components/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +7 -1
  39. package/styled-components/cjs/examples/plasma_b2c/components/NumberInput/NumberInput.stories.tsx +1 -0
  40. package/styled-components/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +7 -3
  41. package/styled-components/cjs/examples/plasma_web/components/NumberInput/NumberInput.stories.tsx +1 -0
  42. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +21 -66
  43. package/styled-components/es/components/NumberInput/NumberInput.js +10 -3
  44. package/styled-components/es/components/NumberInput/ui/Input/Input.js +17 -8
  45. package/styled-components/es/components/NumberInput/utils/index.js +10 -1
  46. package/styled-components/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +7 -1
  47. package/styled-components/es/examples/plasma_b2c/components/NumberInput/NumberInput.stories.tsx +1 -0
  48. package/styled-components/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +7 -3
  49. package/styled-components/es/examples/plasma_web/components/NumberInput/NumberInput.stories.tsx +1 -0
  50. package/types/components/DatePicker/RangeDate/RangeDate.d.ts +8 -10
  51. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  52. package/types/components/DatePicker/RangeDate/RangeDate.styles.d.ts +12 -12
  53. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +0 -4
  54. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts.map +1 -1
  55. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +1 -1
  56. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
  57. package/types/components/NumberInput/NumberInput.d.ts.map +1 -1
  58. package/types/components/NumberInput/NumberInput.types.d.ts +5 -0
  59. package/types/components/NumberInput/NumberInput.types.d.ts.map +1 -1
  60. package/types/components/NumberInput/ui/Input/Input.d.ts +1 -0
  61. package/types/components/NumberInput/ui/Input/Input.d.ts.map +1 -1
  62. package/types/components/NumberInput/ui/Input/Input.types.d.ts +1 -0
  63. package/types/components/NumberInput/ui/Input/Input.types.d.ts.map +1 -1
  64. package/types/components/NumberInput/utils/index.d.ts +1 -0
  65. package/types/components/NumberInput/utils/index.d.ts.map +1 -1
  66. package/types/components/Range/Range.types.d.ts +5 -5
  67. package/types/components/Range/Range.types.d.ts.map +1 -1
  68. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts +4 -5
  69. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts.map +1 -1
  70. package/types/examples/plasma_b2c/components/NumberInput/NumberInput.d.ts +2 -0
  71. package/types/examples/plasma_b2c/components/NumberInput/NumberInput.d.ts.map +1 -1
  72. package/types/examples/plasma_b2c/components/Range/Range.d.ts +12 -12
  73. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts +4 -5
  74. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts.map +1 -1
  75. package/types/examples/plasma_web/components/NumberInput/NumberInput.d.ts +2 -0
  76. package/types/examples/plasma_web/components/NumberInput/NumberInput.d.ts.map +1 -1
  77. package/types/examples/plasma_web/components/Range/Range.d.ts +12 -12
@@ -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, 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 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 if (String(newValue).endsWith('.')) {\n setValues(null, Number(newValue));\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 }\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","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","endsWith","resValue","errorAnimation","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":";;;;;;;;;;;;;;;;;AAsBO,IAAMA,WAAW,gBAAGC,gBAAU,CACjC,UAAAC,IAAA,EAsBIC,GAAG,EACF;AAAA,EAAA,IArBGC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,SAAS,GAAAH,IAAA,CAATG,SAAS;IACTC,GAAG,GAAAJ,IAAA,CAAHI,GAAG;IACHC,GAAG,GAAAL,IAAA,CAAHK,GAAG;IACHC,SAAS,GAAAN,IAAA,CAATM,SAAS;IACTC,MAAM,GAAAP,IAAA,CAANO,MAAM;IACNC,QAAQ,GAAAR,IAAA,CAARQ,QAAQ;IACRC,YAAY,GAAAT,IAAA,CAAZS,YAAY;IACZC,UAAU,GAAAV,IAAA,CAAVU,UAAU;IACVC,SAAS,GAAAX,IAAA,CAATW,SAAS;IACTC,aAAa,GAAAZ,IAAA,CAAbY,aAAa;IACbC,cAAc,GAAAb,IAAA,CAAda,cAAc;IACdC,iBAAiB,GAAAd,IAAA,CAAjBc,iBAAiB;IACjBC,iBAAiB,GAAAf,IAAA,CAAjBe,iBAAiB;IACjBC,aAAa,GAAAhB,IAAA,CAAbgB,aAAa;IACbC,QAAQ,GAAAjB,IAAA,CAARiB,QAAQ;IACRC,MAAM,GAAAlB,IAAA,CAANkB,MAAM;IACNC,SAAS,GAAAnB,IAAA,CAATmB,SAAS;AACNC,IAAAA,IAAI,GAAAC,iDAAA,CAAArB,IAAA,EAAAsB,SAAA,CAAA,CAAA;AAIX,EAAA,IAAAC,SAAA,GAAwCC,cAAQ,CAACtB,KAAK,MAAAuB,MAAA,CAAMC,MAAM,CAACxB,KAAK,CAAC,CAACyB,MAAM,EAAA,IAAA,CAAA,GAAOC,2BAAqB,CAAC;IAAAC,UAAA,GAAAC,uCAAA,CAAAP,SAAA,EAAA,CAAA,CAAA;AAAtGQ,IAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,eAAe,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;EACpC,IAAAI,UAAA,GAA4CT,cAAQ,CAAkBU,MAAM,CAAChC,KAAK,CAAC,CAAC;IAAAiC,UAAA,GAAAL,uCAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAA7EG,IAAAA,cAAc,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,iBAAiB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AACxC,EAAA,IAAAG,UAAA,GAAoCd,cAAQ,CAAqBe,SAAS,CAAC;IAAAC,UAAA,GAAAV,uCAAA,CAAAQ,UAAA,EAAA,CAAA,CAAA;AAApEG,IAAAA,UAAU,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,aAAa,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAAG,UAAA,GAAoCnB,cAAQ,EAAU;IAAAoB,UAAA,GAAAd,uCAAA,CAAAa,UAAA,EAAA,CAAA,CAAA;AAA/CE,IAAAA,UAAU,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,aAAa,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAEhC,EAAA,IAAMG,cAAc,GAAGC,YAAM,CAAkB,IAAI,CAAC,CAAA;AACpD,EAAA,IAAMC,UAAU,GAAGD,YAAM,CAAiB,IAAI,CAAC,CAAA;AAC/C,EAAA,IAAME,cAAc,GAAGF,YAAM,CAAiB,IAAI,CAAC,CAAA;AACnD,EAAA,IAAMG,QAAQ,GAAGH,YAAM,CAAmB,IAAI,CAAC,CAAA;AAC/C,EAAA,IAAMI,YAAY,GAAGC,qBAAU,CAACF,QAAQ,EAAElD,GAAG,CAAC,CAAA;EAE9C,IAAMqD,cAAc,GAAG7C,YAAY,KAAK,OAAO,GAAG8C,0BAAO,CAACC,SAAS,GAAGjB,SAAS,CAAA;EAC/E,IAAMkB,gBAAgB,GAAG7C,aAAa,GAAG2C,0BAAO,CAACG,WAAW,GAAGnB,SAAS,CAAA;AAExE,EAAA,IAAMoB,aAAa,GAAG,SAAhBA,aAAaA,GAA2B;AAAA,IAAA,IAAAC,qBAAA,CAAA;AAAA,IAAA,IAAvBC,WAAW,GAAAC,SAAA,CAAAnC,MAAA,GAAA,CAAA,IAAAmC,SAAA,CAAA,CAAA,CAAA,KAAAvB,SAAA,GAAAuB,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AACrC,IAAA,IAAI,CAACD,WAAW,IAAAD,CAAAA,qBAAA,GAAIb,cAAc,CAACgB,OAAO,MAAA,IAAA,IAAAH,qBAAA,KAAA,KAAA,CAAA,IAAtBA,qBAAA,CAAwBI,WAAW,EAAE;AAAA,MAAA,IAAAC,sBAAA,CAAA;AACrD,MAAA,OAAA,EAAA,CAAAxC,MAAA,CAAA,CAAAwC,sBAAA,GAAUlB,cAAc,CAACgB,OAAO,MAAA,IAAA,IAAAE,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtBA,sBAAA,CAAwBD,WAAW,EAAA,IAAA,CAAA,CAAA;AACjD,KAAA;AAEA,IAAA,IAAI9D,KAAK,EAAE;AACP,MAAA,OAAA,EAAA,CAAAuB,MAAA,CAAUC,MAAM,CAACxB,KAAK,CAAC,CAACyB,MAAM,EAAA,IAAA,CAAA,CAAA;AAClC,KAAA;AAEA,IAAA,OAAOC,2BAAqB,CAAA;GAC/B,CAAA;EAED,IAAMsC,SAAS,GAAG,SAAZA,SAASA,CAAIC,KAA2C,EAAEC,QAAyB,EAAK;IAC1F/B,iBAAiB,CAAC+B,QAAQ,CAAC,CAAA;IAC3BpD,aAAa,CAACoD,QAAQ,CAAC,CAAA;AAEvB,IAAA,IAAInD,QAAQ,EAAE;AACVA,MAAAA,QAAQ,CAACkD,KAAK,EAAEC,QAAQ,CAAC,CAAA;AAC7B,KAAA;GACH,CAAA;AAED,EAAA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAID,QAAyB,EAAK;IACjD,IAAI,CAACA,QAAQ,IAAI,CAACE,iBAAQ,CAACF,QAAQ,CAAC,EAAE;AAClCF,MAAAA,SAAS,CAAC,IAAI,EAAE9B,cAAc,CAAC,CAAA;MAC/BrB,iBAAiB,CAAC,KAAK,CAAC,CAAA;AACxB,MAAA,OAAA;AACJ,KAAA;AAEA,IAAA,IAAMwD,QAAQ,GAAGrC,MAAM,CAACkC,QAAQ,CAAC,CAAA;AACjC,IAAA,IAAI/D,GAAG,KAAKkC,SAAS,IAAIgC,QAAQ,GAAGlE,GAAG,EAAE;AACrCqC,MAAAA,aAAa,CAACa,0BAAO,CAACiB,cAAc,CAAC,CAAA;MACrC1B,aAAa,CAACzC,GAAG,CAAC,CAAA;MAClBU,iBAAiB,CAAC,IAAI,CAAC,CAAA;AACvB,MAAA,OAAA;AACJ,KAAA;AAEA,IAAA,IAAIX,GAAG,KAAKmC,SAAS,IAAIgC,QAAQ,GAAGnE,GAAG,EAAE;AACrCsC,MAAAA,aAAa,CAACa,0BAAO,CAACiB,cAAc,CAAC,CAAA;MACrC1B,aAAa,CAAC1C,GAAG,CAAC,CAAA;MAClBW,iBAAiB,CAAC,IAAI,CAAC,CAAA;AACvB,MAAA,OAAA;AACJ,KAAA;IAEA,IAAIW,MAAM,CAAC0C,QAAQ,CAAC,CAACK,QAAQ,CAAC,GAAG,CAAC,EAAE;AAChCP,MAAAA,SAAS,CAAC,IAAI,EAAEhC,MAAM,CAACkC,QAAQ,CAAC,CAAC,CAAA;MACjCrD,iBAAiB,CAAC,KAAK,CAAC,CAAA;AACxB,MAAA,OAAA;AACJ,KAAA;IAEA,IAAIZ,SAAS,KAAKoC,SAAS,EAAE;MACzB,IAAMmC,eAAe,GAAGxC,MAAM,CAACyC,qBAAe,CAACP,QAAQ,EAAEjE,SAAS,CAAC,CAAC,CAAA;AACpE+D,MAAAA,SAAS,CAAC,IAAI,EAAEQ,eAAe,CAAC,CAAA;AACpC,KAAA;IAEA3D,iBAAiB,CAAC,KAAK,CAAC,CAAA;GAC3B,CAAA;AAED,EAAA,IAAM6D,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIT,KAAoC,EAAK;IAAA,IAAAU,qBAAA,EAAAC,mBAAA,CAAA;AACtE,IAAA,IAAI,CAAClE,aAAa,IAAIJ,QAAQ,EAAE;AAC5B,MAAA,OAAA;AACJ,KAAA;IAEAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;AAEvB,IAAA,IAAeqD,QAAQ,GAAKD,KAAK,CAACY,MAAM,CAAhC7E,KAAK,CAAA;IAEb,IAAI,CAACkE,QAAQ,EAAE;MACXpD,aAAa,CAAC,EAAE,CAAC,CAAA;AAEjB,MAAA,IAAIC,QAAQ,EAAE;AACVA,QAAAA,QAAQ,CAACkD,KAAK,EAAE,EAAE,CAAC,CAAA;AACvB,OAAA;AACA,MAAA,OAAA;AACJ,KAAA;IAEA,IAAMa,UAAU,GAAGZ,QAAQ,CAACa,OAAO,CAACC,2BAAqB,EAAE,EAAE,CAAC,CAAA;IAC9D,IAAIF,UAAU,CAACP,QAAQ,CAAC,GAAG,CAAC,IAAIO,UAAU,KAAK,GAAG,EAAE;MAChDhE,aAAa,CAACgE,UAAU,CAAC,CAAA;AAEzB,MAAA,IAAI/D,QAAQ,EAAE;AACVA,QAAAA,QAAQ,CAACkD,KAAK,EAAEa,UAAU,CAAC,CAAA;AAC/B,OAAA;AACA,MAAA,OAAA;AACJ,KAAA;AAEAG,IAAAA,OAAO,CAACC,GAAG,CAAC,MAAM,CAAC,CAAA;AACnB,IAAA,IAAMC,OAAO,GAAGC,kBAAY,CAACC,IAAI,CAACP,UAAU,CAAC,CAAA;IAE7C,IAAI,CAACK,OAAO,EAAE;AACVF,MAAAA,OAAO,CAACC,GAAG,CAAC,WAAW,EAAEJ,UAAU,CAAC,CAAA;AACpCd,MAAAA,SAAS,CAACC,KAAK,EAAE/B,cAAc,CAAC,CAAA;AAChC,MAAA,OAAA;AACJ,KAAA;AACA+C,IAAAA,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEJ,UAAU,CAAC,CAAA;IAEjC,IACI9B,cAAc,aAAdA,cAAc,KAAA,KAAA,CAAA,IAAdA,cAAc,CAAEa,OAAO,IACvBd,UAAU,KAAVA,IAAAA,IAAAA,UAAU,eAAVA,UAAU,CAAEc,OAAO,IACnB,CAAAb,cAAc,KAAdA,IAAAA,IAAAA,cAAc,KAAA2B,KAAAA,CAAAA,IAAAA,CAAAA,qBAAA,GAAd3B,cAAc,CAAEa,OAAO,MAAA,IAAA,IAAAc,qBAAA,KAAvBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAyBb,WAAW,KAAGf,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,KAAA,CAAA,IAAA,CAAA6B,mBAAA,GAAV7B,UAAU,CAAEc,OAAO,MAAA,IAAA,IAAAe,mBAAA,KAAnBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,mBAAA,CAAqBd,WAAW,CACzE,EAAA;AACEf,MAAAA,UAAU,CAACc,OAAO,CAACyB,UAAU,GACzBtC,cAAc,CAACa,OAAO,CAAC0B,WAAW,GAAGvC,cAAc,CAACa,OAAO,CAAC2B,UAAU,IAAI,CAAC,CAAA;AACnF,KAAA;AAEAxB,IAAAA,SAAS,CAACC,KAAK,EAAEa,UAAU,CAAC,CAAA;GAC/B,CAAA;AAED,EAAA,IAAMW,uBAAuB,GAAG,SAA1BA,uBAAuBA,GAAS;AAClC,IAAA,IAAI,CAAC/E,aAAa,IAAI,CAACuC,QAAQ,CAACY,OAAO,EAAE;AACrC,MAAA,OAAA;AACJ,KAAA;IAEA,IAAI,CAAClD,cAAc,EAAE;AACjBsC,MAAAA,QAAQ,CAACY,OAAO,CAAC6B,MAAM,EAAE,CAAA;AAC7B,KAAA;IAEA9E,iBAAiB,CAAC,IAAI,CAAC,CAAA;GAC1B,CAAA;AAED,EAAA,IAAM+E,UAAU,GAAG,SAAbA,UAAUA,CAAI1B,KAAmC,EAAK;IACxDE,aAAa,CAACnE,KAAK,CAAC,CAAA;IACpBY,iBAAiB,CAAC,KAAK,CAAC,CAAA;AAExB,IAAA,IAAII,MAAM,EAAE;MACRA,MAAM,CAACiD,KAAK,CAAC,CAAA;AACjB,KAAA;GACH,CAAA;AAED,EAAA,IAAM2B,aAAa,GAAG,SAAhBA,aAAaA,CAAI3B,KAAsC,EAAK;AAC9D,IAAA,IAAI,CAACvD,aAAa,IAAIJ,QAAQ,EAAE;AAC5B,MAAA,OAAA;AACJ,KAAA;AAEA,IAAA,IAAI2D,KAAK,CAAC4B,OAAO,KAAKC,kBAAQ,CAACC,KAAK,EAAE;MAClC9B,KAAK,CAAC+B,cAAc,EAAE,CAAA;MAEtB7B,aAAa,CAACnE,KAAK,CAAC,CAAA;AAEpB,MAAA,IAAIiB,SAAS,EAAE;QACXA,SAAS,CAACgD,KAAK,CAAC,CAAA;AACpB,OAAA;AACJ,KAAA;GACH,CAAA;AAED,EAAA,IAAMgC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIC,YAAoB,EAAK;IACtDrF,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACxBD,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAExB4B,aAAa,CAACH,SAAS,CAAC,CAAA;AACxB2B,IAAAA,SAAS,CAAC,IAAI,EAAEkC,YAAY,CAAC,CAAA;GAChC,CAAA;AAEDC,EAAAA,eAAS,CAAC,YAAM;AACZrE,IAAAA,eAAe,CAAC2B,aAAa,EAAE,CAAC,CAAA;GACnC,EAAE,EAAE,CAAC,CAAA;AAEN2C,EAAAA,mCAAiB,CAAC,YAAM;AACpBtE,IAAAA,eAAe,CAAC2B,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;AACzC,GAAC,EAAE,CAACzD,KAAK,CAAC,CAAC,CAAA;AAEX,EAAA,oBACIqG,KAAA,CAAAC,aAAA,CAACC,yBAAY,EAAA;AACTxG,IAAAA,GAAG,EAAEgD,UAAW;IAChByD,SAAS,EAAEC,UAAE,CAACrD,cAAc,EAAEb,UAAU,EAAEgB,gBAAgB,CAAE;AAC5D7C,IAAAA,aAAa,EAAEgG,OAAO,CAAChG,aAAa,CAAE;AACtCiG,IAAAA,OAAO,EAAElB,uBAAAA;AAAwB,GAAA,eAEjCY,KAAA,CAAAC,aAAA,CAACM,wBAAW,EAAA;AAAC7G,IAAAA,GAAG,EAAEiD,cAAAA;GACb,EAAA,CAAC5C,SAAS,IAAII,UAAU,iBACrB6F,KAAA,CAAAC,aAAA,CAACO,2BAAc,EAAA;IAACL,SAAS,EAAEnD,0BAAO,CAAC7C,UAAAA;AAAW,GAAA,EAAEA,UAA2B,CAC9E,EACAJ,SAAS,gBACNiG,KAAA,CAAAC,aAAA,CAACQ,mBAAM,QAAEzG,MAAM,IAAA0G,cAAA,KAAAA,cAAA,gBAAIV,KAAA,CAAAC,aAAA,CAACU,0BAAa,EAAE,IAAA,CAAC,CAAS,CAAC,gBAE9CX,KAAA,CAAAC,aAAA,CAACW,yBAAY,qBACTZ,KAAA,CAAAC,aAAA,CAACY,kBAAK,EAAAC,iCAAA,CAAA;AACFpH,IAAAA,GAAG,EAAEmD,YAAa;AAClBrB,IAAAA,YAAY,EAAEA,YAAa;AAC3B7B,IAAAA,KAAK,EAAEA,KAAM;AACbU,IAAAA,aAAa,EAAEgG,OAAO,CAAChG,aAAa,CAAE;IACtC0G,QAAQ,EAAE9G,QAAQ,IAAI,CAACI,aAAa,GAAG,CAAC,CAAC,GAAG,CAAE;AAC9CK,IAAAA,QAAQ,EAAE2D,uBAAwB;AAClC1D,IAAAA,MAAM,EAAE2E,UAAW;AACnB1E,IAAAA,SAAS,EAAE2E,aAAc;IACzByB,cAAc,EAAE,SAAAA,cAAA,GAAA;AAAA,MAAA,OAAMpB,uBAAuB,CAACjE,MAAM,CAACW,UAAU,CAAC,CAAC,CAAA;AAAA,KAAA;GAC7DzB,EAAAA,IAAI,CACX,CAAC,eACFmF,KAAA,CAAAC,aAAA,CAACgB,6BAAgB,EAAA;AAACvH,IAAAA,GAAG,EAAE8C,cAAAA;AAAe,GAAA,EAAE7C,KAAwB,CACtD,CACjB,EACA,CAACI,SAAS,IAAIK,SAAS,iBACpB4F,KAAA,CAAAC,aAAA,CAACO,2BAAc,EAAA;IAACL,SAAS,EAAEnD,0BAAO,CAAC5C,SAAAA;GAAYA,EAAAA,SAA0B,CAEpE,CACH,CAAC,CAAA;AAEvB,CACJ;;;;"}
@@ -5,8 +5,18 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var defaultCharacterWidth = '1ch';
6
6
  var numberSchema = /^(-)?\d+(\.\d+)?$/;
7
7
  var excludingNumberSchema = /[^-.\d]/g;
8
+ var getPreciseValue = function getPreciseValue(value, precision) {
9
+ var innerValue = String(value);
10
+ if (precision !== undefined) {
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);
14
+ }
15
+ return innerValue;
16
+ };
8
17
 
9
18
  exports.defaultCharacterWidth = defaultCharacterWidth;
10
19
  exports.excludingNumberSchema = excludingNumberSchema;
20
+ exports.getPreciseValue = getPreciseValue;
11
21
  exports.numberSchema = numberSchema;
12
22
  //# sourceMappingURL=index.js.map
@@ -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"],"names":["defaultCharacterWidth","numberSchema","excludingNumberSchema"],"mappings":";;;;AAAO,IAAMA,qBAAqB,GAAG,MAAK;AACnC,IAAMC,YAAY,GAAG,oBAAmB;AACxC,IAAMC,qBAAqB,GAAG;;;;;;"}
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;;;;;;;"}
@@ -19,7 +19,7 @@ var _base3 = /*#__PURE__*/require("./variations/_disabled/base");
19
19
  var _base4 = /*#__PURE__*/require("./variations/_readonly/base");
20
20
  var _RangeDate = /*#__PURE__*/require("./RangeDate.styles");
21
21
  var _RangeDatePopover = /*#__PURE__*/require("./RangeDatePopover/RangeDatePopover");
22
- var _excluded = ["className", "autoComplete", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "name", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "required", "requiredPlacement", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "frame", "usePortal", "placement", "closeOnOverlayClick", "closeOnEsc", "closeAfterDateSelect", "offset", "onToggle", "onChange", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
22
+ var _excluded = ["className", "autoComplete", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "name", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "required", "requiredPlacement", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "frame", "usePortal", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onToggle", "onChange", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
23
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
24
24
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
25
25
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -104,8 +104,6 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
104
104
  closeOnOverlayClick = _ref$closeOnOverlayCl === void 0 ? true : _ref$closeOnOverlayCl,
105
105
  _ref$closeOnEsc = _ref.closeOnEsc,
106
106
  closeOnEsc = _ref$closeOnEsc === void 0 ? true : _ref$closeOnEsc,
107
- _ref$closeAfterDateSe = _ref.closeAfterDateSelect,
108
- closeAfterDateSelect = _ref$closeAfterDateSe === void 0 ? true : _ref$closeAfterDateSe,
109
107
  offset = _ref.offset,
110
108
  onToggle = _ref.onToggle,
111
109
  onChange = _ref.onChange,
@@ -158,14 +156,6 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
158
156
  _useState14 = _slicedToArray(_useState13, 2),
159
157
  inputSecondValue = _useState14[0],
160
158
  setInputSecondValue = _useState14[1];
161
- var _useState15 = (0, _react.useState)(Boolean(calendarFirstValue && calendarSecondValue)),
162
- _useState16 = _slicedToArray(_useState15, 2),
163
- fullDateEntered = _useState16[0],
164
- setFullDateEntered = _useState16[1];
165
- var _useState17 = (0, _react.useState)(false),
166
- _useState18 = _slicedToArray(_useState17, 2),
167
- secondTextFieldClicked = _useState18[0],
168
- setSecondTextFieldClicked = _useState18[1];
169
159
  var setFirstInputValue = function setFirstInputValue(value) {
170
160
  setInputFirstValue(value);
171
161
  if (onChange) {
@@ -226,12 +216,12 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
226
216
  }),
227
217
  handleChangeSecondValue = _useDatePicker2.handleChangeValue,
228
218
  handleCommitSecondDate = _useDatePicker2.handleCommitDate;
229
- var handleToggle = function handleToggle(currentOpened, event) {
219
+ var handleToggle = function handleToggle(opened, event) {
230
220
  var _firstInputRef$curren, _secondInputRef$curre;
231
221
  if (disabled || readOnly) {
232
222
  return;
233
223
  }
234
- var isCalendarOpen = (firstInputRef !== null && firstInputRef !== void 0 && (_firstInputRef$curren = firstInputRef.current) !== null && _firstInputRef$curren !== void 0 && _firstInputRef$curren.contains((event === null || event === void 0 ? void 0 : event.target) || null) || secondInputRef !== null && secondInputRef !== void 0 && (_secondInputRef$curre = secondInputRef.current) !== null && _secondInputRef$curre !== void 0 && _secondInputRef$curre.contains((event === null || event === void 0 ? void 0 : event.target) || null)) && (event === null || event === void 0 ? void 0 : event.code) !== _useKeyboardNavigation.keys.Escape ? true : currentOpened;
224
+ var isCalendarOpen = (firstInputRef !== null && firstInputRef !== void 0 && (_firstInputRef$curren = firstInputRef.current) !== null && _firstInputRef$curren !== void 0 && _firstInputRef$curren.contains(event.target || null) || secondInputRef !== null && secondInputRef !== void 0 && (_secondInputRef$curre = secondInputRef.current) !== null && _secondInputRef$curre !== void 0 && _secondInputRef$curre.contains(event.target || null)) && event.code !== _useKeyboardNavigation.keys.Escape ? true : opened;
235
225
  if (!isCalendarOpen) {
236
226
  if (calendarFirstValue && !calendarSecondValue) {
237
227
  var _secondInputRef$curre2;
@@ -242,22 +232,11 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
242
232
  firstInputRef === null || firstInputRef === void 0 || (_firstInputRef$curren2 = firstInputRef.current) === null || _firstInputRef$curren2 === void 0 || _firstInputRef$curren2.focus();
243
233
  }
244
234
  }
245
- if (!isCalendarOpen) {
246
- setSecondTextFieldClicked(false);
247
- }
248
235
  if (onToggle) {
249
236
  return onToggle(isCalendarOpen, event);
250
237
  }
251
238
  setIsInnerOpen(isCalendarOpen);
252
239
  };
253
- var handleFocusFirstTextField = function handleFocusFirstTextField(event) {
254
- onFocusFirstTextfield === null || onFocusFirstTextfield === void 0 || onFocusFirstTextfield(event);
255
- setSecondTextFieldClicked(false);
256
- };
257
- var handleFocusSecondTextField = function handleFocusSecondTextField(event) {
258
- onFocusSecondTextfield === null || onFocusSecondTextfield === void 0 || onFocusSecondTextfield(event);
259
- setSecondTextFieldClicked(true);
260
- };
261
240
  var handleBlur = function handleBlur(event, outerHandler) {
262
241
  if (!inputFirstValue || !inputSecondValue) {
263
242
  outerHandler === null || outerHandler === void 0 || outerHandler(event);
@@ -297,37 +276,6 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
297
276
  closeOnEsc: closeOnEsc
298
277
  }),
299
278
  onKeyDown = _useKeyNavigation.onKeyDown;
300
- var handleChangeStartOfRange = function handleChangeStartOfRange(chosenDate, dateInfo) {
301
- if (!fullDateEntered) {
302
- handleCommitFirstDate(chosenDate, false, true, dateInfo);
303
- handleCommitSecondDate('');
304
- return;
305
- }
306
- var prevValue = secondTextFieldClicked ? calendarFirstValue : calendarSecondValue;
307
- var _getSortedValues3 = (0, _utils2.getSortedValues)([prevValue, chosenDate]),
308
- _getSortedValues4 = _slicedToArray(_getSortedValues3, 2),
309
- first = _getSortedValues4[0],
310
- second = _getSortedValues4[1];
311
- handleCommitFirstDate(first, false, true, dateInfo);
312
- handleCommitSecondDate(second, false, true, dateInfo);
313
- if (!firstValueError && !secondValueError && closeAfterDateSelect) {
314
- handleToggle(false);
315
- }
316
- };
317
- var handleChangeCalendarValue = function handleChangeCalendarValue(_ref2, dateInfo) {
318
- var _ref3 = _slicedToArray(_ref2, 2),
319
- firstDate = _ref3[0],
320
- secondDate = _ref3[1];
321
- if (firstDate) {
322
- handleCommitFirstDate(firstDate, false, true, dateInfo);
323
- }
324
- if (secondDate) {
325
- handleCommitSecondDate(secondDate, false, true, dateInfo);
326
- }
327
- if (firstDate && secondDate && !firstValueError && !secondValueError && closeAfterDateSelect) {
328
- handleToggle(false);
329
- }
330
- };
331
279
  var RangeComponent = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_RangeDate.StyledRange, {
332
280
  ref: rangeRef,
333
281
  autoComplete: autoComplete,
@@ -373,8 +321,8 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
373
321
  rangeRef === null || rangeRef === void 0 || (_rangeRef$current4 = rangeRef.current) === null || _rangeRef$current4 === void 0 || (_rangeRef$current4 = _rangeRef$current4.firstTextField()) === null || _rangeRef$current4 === void 0 || (_rangeRef$current4 = _rangeRef$current4.current) === null || _rangeRef$current4 === void 0 || _rangeRef$current4.focus();
374
322
  }
375
323
  },
376
- onFocusFirstTextfield: handleFocusFirstTextField,
377
- onFocusSecondTextfield: handleFocusSecondTextField,
324
+ onFocusFirstTextfield: onFocusFirstTextfield,
325
+ onFocusSecondTextfield: onFocusSecondTextfield,
378
326
  onBlurFirstTextfield: function onBlurFirstTextfield(event) {
379
327
  return handleBlur(event, _onBlurFirstTextfield);
380
328
  },
@@ -423,13 +371,8 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
423
371
  lang: lang
424
372
  }));
425
373
  }, [format, lang]);
426
- (0, _react.useEffect)(function () {
427
- if (calendarFirstValue && calendarSecondValue) {
428
- setFullDateEntered(true);
429
- }
430
- }, [calendarFirstValue, calendarSecondValue]);
431
- var RootWrapper = (0, _react.useCallback)(function (_ref4) {
432
- var children = _ref4.children;
374
+ var RootWrapper = (0, _react.useCallback)(function (_ref2) {
375
+ var children = _ref2.children;
433
376
  return /*#__PURE__*/_react["default"].createElement(Root, {
434
377
  view: view,
435
378
  size: size,
@@ -471,8 +414,20 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
471
414
  lang: lang,
472
415
  isDoubleCalendar: isDoubleCalendar,
473
416
  rootWrapper: RootWrapper,
474
- onChangeStartOfRange: handleChangeStartOfRange,
475
- onChangeValue: handleChangeCalendarValue
417
+ onChangeStartOfRange: function onChangeStartOfRange(firstDate, dateInfo) {
418
+ handleCommitFirstDate(firstDate, false, true, dateInfo);
419
+ handleCommitSecondDate('');
420
+ },
421
+ onChangeValue: function onChangeValue(_ref3, dateInfo) {
422
+ var _ref4 = _slicedToArray(_ref3, 2),
423
+ firstDate = _ref4[0],
424
+ secondDate = _ref4[1];
425
+ firstDate && handleCommitFirstDate(firstDate, false, true, dateInfo);
426
+ secondDate && handleCommitSecondDate(secondDate, false, true, dateInfo);
427
+ if (firstDate && secondDate && !firstValueError && !secondValueError) {
428
+ setIsInnerOpen(false);
429
+ }
430
+ }
476
431
  }), leftHelper && /*#__PURE__*/_react["default"].createElement(_RangeDate.LeftHelper, null, leftHelper), /*#__PURE__*/_react["default"].createElement(_DatePickerBase.InputHidden, _extends({
477
432
  name: name,
478
433
  type: "hidden",
@@ -17,7 +17,8 @@ var _base3 = /*#__PURE__*/require("./variations/_shape/base");
17
17
  var _base4 = /*#__PURE__*/require("./variations/_background-type/base");
18
18
  var _base5 = /*#__PURE__*/require("./variations/_segmentation/base");
19
19
  var _base6 = /*#__PURE__*/require("./variations/_disabled/base");
20
- var _excluded = ["className", "style", "width", "value", "min", "max", "step", "isLoading", "loader", "size", "view", "clear", "shape", "segmentation", "inputBackgroundType", "disabled", "textBefore", "textAfter", "customIncrementButton", "incrementIcon", "customDecrementButton", "decrementIcon", "isManualInput", "onChange", "onIncrement", "onDecrement"];
20
+ var _utils2 = /*#__PURE__*/require("./utils");
21
+ var _excluded = ["className", "style", "width", "value", "min", "max", "step", "precision", "isLoading", "loader", "size", "view", "clear", "shape", "segmentation", "inputBackgroundType", "disabled", "textBefore", "textAfter", "customIncrementButton", "incrementIcon", "customDecrementButton", "decrementIcon", "isManualInput", "onChange", "onIncrement", "onDecrement"];
21
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
22
23
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
23
24
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -45,6 +46,8 @@ var numberInputRoot = exports.numberInputRoot = function numberInputRoot(Root) {
45
46
  max = _ref.max,
46
47
  _ref$step = _ref.step,
47
48
  step = _ref$step === void 0 ? 1 : _ref$step,
49
+ _ref$precision = _ref.precision,
50
+ precision = _ref$precision === void 0 ? 2 : _ref$precision,
48
51
  isLoading = _ref.isLoading,
49
52
  loader = _ref.loader,
50
53
  size = _ref.size,
@@ -78,6 +81,7 @@ var numberInputRoot = exports.numberInputRoot = function numberInputRoot(Root) {
78
81
  _useState6 = _slicedToArray(_useState5, 2),
79
82
  isAnimationRun = _useState6[0],
80
83
  setIsAnimationRun = _useState6[1];
84
+ console.log('innerValue', innerValue);
81
85
  var innerWidth = width ? (0, _utils.getSizeValueFromProp)(width) : '100%';
82
86
  var actionIconSize = size === 'xs' ? 'xs' : 's';
83
87
  var solidViewClass = segmentation === 'solid' ? _NumberInput.classes.solidView : undefined;
@@ -98,7 +102,8 @@ var numberInputRoot = exports.numberInputRoot = function numberInputRoot(Root) {
98
102
  if (isLoading || disabled || isAnimationRun) {
99
103
  return;
100
104
  }
101
- var diffValue = Number(innerValue) - step;
105
+ var preciseDiff = (0, _utils2.getPreciseValue)(Number(innerValue) - step, precision);
106
+ var diffValue = Number(preciseDiff);
102
107
  var resValue = min !== undefined && diffValue <= min ? min : diffValue;
103
108
  setInnerValue(resValue);
104
109
  if (onDecrement) {
@@ -112,7 +117,8 @@ var numberInputRoot = exports.numberInputRoot = function numberInputRoot(Root) {
112
117
  if (isLoading || disabled || isAnimationRun) {
113
118
  return;
114
119
  }
115
- var diffValue = Number(innerValue) + step;
120
+ var preciseDiff = (0, _utils2.getPreciseValue)(Number(innerValue) + step, precision);
121
+ var diffValue = Number(preciseDiff);
116
122
  var resValue = max !== undefined && diffValue >= max ? max : diffValue;
117
123
  setInnerValue(resValue);
118
124
  if (onIncrement) {
@@ -156,6 +162,7 @@ var numberInputRoot = exports.numberInputRoot = function numberInputRoot(Root) {
156
162
  ref: ref,
157
163
  segmentation: segmentation,
158
164
  value: innerValue,
165
+ precision: precision,
159
166
  min: min,
160
167
  max: max,
161
168
  isManualInput: isManualInput,
@@ -14,7 +14,7 @@ var _utils2 = /*#__PURE__*/require("../../utils");
14
14
  var _constants = /*#__PURE__*/require("../../../../utils/constants");
15
15
  var _Input = /*#__PURE__*/require("./Input.styles");
16
16
  var _StyledSpinner;
17
- var _excluded = ["value", "min", "max", "isLoading", "loader", "disabled", "segmentation", "textBefore", "textAfter", "isManualInput", "isInputFocused", "setIsInputFocused", "setIsAnimationRun", "setInnerValue", "onChange", "onBlur", "onKeyDown"];
17
+ var _excluded = ["value", "precision", "min", "max", "isLoading", "loader", "disabled", "segmentation", "textBefore", "textAfter", "isManualInput", "isInputFocused", "setIsInputFocused", "setIsAnimationRun", "setInnerValue", "onChange", "onBlur", "onKeyDown"];
18
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
20
20
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -28,6 +28,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
28
28
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
29
29
  var NumberInput = exports.NumberInput = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
30
30
  var value = _ref.value,
31
+ precision = _ref.precision,
31
32
  min = _ref.min,
32
33
  max = _ref.max,
33
34
  isLoading = _ref.isLoading,
@@ -93,11 +94,6 @@ var NumberInput = exports.NumberInput = /*#__PURE__*/(0, _react.forwardRef)(func
93
94
  setIsAnimationRun(false);
94
95
  return;
95
96
  }
96
- if (String(newValue).endsWith('.')) {
97
- setValues(null, Number(newValue));
98
- setIsAnimationRun(false);
99
- return;
100
- }
101
97
  var resValue = Number(newValue);
102
98
  if (max !== undefined && resValue > max) {
103
99
  setErrorClass(_NumberInput.classes.errorAnimation);
@@ -109,6 +105,16 @@ var NumberInput = exports.NumberInput = /*#__PURE__*/(0, _react.forwardRef)(func
109
105
  setErrorClass(_NumberInput.classes.errorAnimation);
110
106
  setErrorValue(min);
111
107
  setIsAnimationRun(true);
108
+ return;
109
+ }
110
+ if (String(newValue).endsWith('.')) {
111
+ setValues(null, Number(newValue));
112
+ setIsAnimationRun(false);
113
+ return;
114
+ }
115
+ if (precision !== undefined) {
116
+ var preciseNewValue = Number((0, _utils2.getPreciseValue)(newValue, precision));
117
+ setValues(null, preciseNewValue);
112
118
  }
113
119
  setIsAnimationRun(false);
114
120
  };
@@ -134,15 +140,18 @@ var NumberInput = exports.NumberInput = /*#__PURE__*/(0, _react.forwardRef)(func
134
140
  }
135
141
  return;
136
142
  }
143
+ console.log('here');
137
144
  var isValid = _utils2.numberSchema.test(cleanValue);
138
145
  if (!isValid) {
146
+ console.log('not valid', cleanValue);
139
147
  setValues(event, lastValidValue);
140
148
  return;
141
149
  }
150
+ console.log('valid!', cleanValue);
142
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)) {
143
152
  wrapperRef.current.scrollLeft = textWrapperRef.current.offsetWidth - textWrapperRef.current.offsetLeft || 0;
144
153
  }
145
- setValues(event, Number(cleanValue));
154
+ setValues(event, cleanValue);
146
155
  };
147
156
  var handleClickInputWrapper = function handleClickInputWrapper() {
148
157
  if (!isManualInput || !inputRef.current) {
@@ -3,7 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.numberSchema = exports.excludingNumberSchema = exports.defaultCharacterWidth = void 0;
6
+ exports.numberSchema = exports.getPreciseValue = exports.excludingNumberSchema = exports.defaultCharacterWidth = void 0;
7
7
  var defaultCharacterWidth = exports.defaultCharacterWidth = '1ch';
8
8
  var numberSchema = exports.numberSchema = /^(-)?\d+(\.\d+)?$/;
9
- var excludingNumberSchema = exports.excludingNumberSchema = /[^-.\d]/g;
9
+ var excludingNumberSchema = exports.excludingNumberSchema = /[^-.\d]/g;
10
+ var getPreciseValue = exports.getPreciseValue = function getPreciseValue(value, precision) {
11
+ var innerValue = String(value);
12
+ if (precision !== undefined) {
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);
16
+ }
17
+ return innerValue;
18
+ };
@@ -192,6 +192,7 @@ const StoryRange = ({
192
192
  const rangeRef = useRef<RangeInputRefs>(null);
193
193
 
194
194
  const [isOpen, setIsOpen] = useState(false);
195
+ const [firstDate, setFirstDate] = useState<string | Date>('');
195
196
 
196
197
  const iconSize = size === 'xs' ? 'xs' : 's';
197
198
  const showDividerIcon = dividerVariant === 'icon';
@@ -238,6 +239,12 @@ const StoryRange = ({
238
239
  onChangeSecondValue={(e, currentValue) => {
239
240
  onChangeSecondValue(e, currentValue);
240
241
  }}
242
+ onCommitFirstDate={(currentValue) => {
243
+ setFirstDate(currentValue);
244
+ }}
245
+ onCommitSecondDate={(currentValue) => {
246
+ firstDate && currentValue && setIsOpen(false);
247
+ }}
241
248
  lang={lang}
242
249
  {...dividerIconProps}
243
250
  {...rest}
@@ -272,7 +279,6 @@ export const Range: StoryObj<StoryPropsRange> = {
272
279
  size: 'l',
273
280
  view: 'default',
274
281
  isDoubleCalendar: false,
275
- closeAfterDateSelect: true,
276
282
  dividerVariant: 'dash',
277
283
  min: new Date(2024, 1, 1),
278
284
  max: new Date(2024, 12, 29),
@@ -96,6 +96,7 @@ export const Default: StoryObj<StoryPropsDefault> = {
96
96
  segmentation: 'default',
97
97
  min: 0,
98
98
  max: 9,
99
+ precision: 2,
99
100
  step: 1,
100
101
  width: 188,
101
102
  isManualInput: false,
@@ -186,12 +186,12 @@ const StoryRange = ({
186
186
  secondValueError,
187
187
  secondValueSuccess,
188
188
  size,
189
- lang,
190
189
  ...rest
191
190
  }: StoryPropsRange) => {
192
191
  const rangeRef = useRef<RangeInputRefs>(null);
193
192
 
194
193
  const [isOpen, setIsOpen] = useState(false);
194
+ const [firstDate, setFirstDate] = useState<string | Date>('');
195
195
 
196
196
  const iconSize = size === 'xs' ? 'xs' : 's';
197
197
  const showDividerIcon = dividerVariant === 'icon';
@@ -238,7 +238,12 @@ const StoryRange = ({
238
238
  onChangeSecondValue={(e, currentValue) => {
239
239
  onChangeSecondValue(e, currentValue);
240
240
  }}
241
- lang={lang}
241
+ onCommitFirstDate={(currentValue) => {
242
+ setFirstDate(currentValue);
243
+ }}
244
+ onCommitSecondDate={(currentValue) => {
245
+ firstDate && currentValue && setIsOpen(false);
246
+ }}
242
247
  {...dividerIconProps}
243
248
  {...rest}
244
249
  />
@@ -272,7 +277,6 @@ export const Range: StoryObj<StoryPropsRange> = {
272
277
  size: 'l',
273
278
  view: 'default',
274
279
  isDoubleCalendar: false,
275
- closeAfterDateSelect: true,
276
280
  dividerVariant: 'dash',
277
281
  min: new Date(2024, 1, 1),
278
282
  max: new Date(2024, 12, 29),
@@ -96,6 +96,7 @@ export const Default: StoryObj<StoryPropsDefault> = {
96
96
  segmentation: 'default',
97
97
  min: 0,
98
98
  max: 9,
99
+ precision: 2,
99
100
  step: 1,
100
101
  width: 188,
101
102
  isManualInput: false,