@skbkontur/react-ui 5.4.0 → 5.4.2

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 (81) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +10 -2
  3. package/cjs/components/Autocomplete/Autocomplete.js +18 -2
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +23 -13
  6. package/cjs/components/Button/Button.js +13 -3
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +11 -22
  9. package/cjs/components/CurrencyInput/CurrencyInput.js +10 -17
  10. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  11. package/cjs/components/FxInput/FxInput.d.ts +23 -16
  12. package/cjs/components/FxInput/FxInput.js +142 -65
  13. package/cjs/components/FxInput/FxInput.js.map +1 -1
  14. package/cjs/components/Input/Input.d.ts +27 -37
  15. package/cjs/components/Input/Input.js +9 -19
  16. package/cjs/components/Input/Input.js.map +1 -1
  17. package/cjs/components/Link/Link.d.ts +10 -10
  18. package/cjs/components/Link/Link.js +1 -1
  19. package/cjs/components/Link/Link.js.map +1 -1
  20. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
  21. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +107 -78
  22. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  23. package/cjs/components/MaskedInput/MaskedInput.js +5 -3
  24. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  25. package/cjs/components/PasswordInput/PasswordInput.d.ts +5 -6
  26. package/cjs/components/PasswordInput/PasswordInput.js +4 -5
  27. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  28. package/cjs/components/__stories__/Form.js +95 -0
  29. package/cjs/components/__stories__/Form.js.map +1 -0
  30. package/cjs/internal/CommonWrapper/types.d.ts +1 -1
  31. package/cjs/internal/CommonWrapper/types.js.map +1 -1
  32. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  33. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  34. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +2 -0
  35. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  36. package/cjs/lib/utils.d.ts +5 -1
  37. package/cjs/lib/utils.js +20 -4
  38. package/cjs/lib/utils.js.map +1 -1
  39. package/cjs/test-setup.d.ts +1 -0
  40. package/cjs/vitest.config.d.ts +2 -0
  41. package/components/Autocomplete/Autocomplete/Autocomplete.js +10 -2
  42. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  43. package/components/Autocomplete/Autocomplete.d.ts +10 -2
  44. package/components/Button/Button/Button.js +4 -2
  45. package/components/Button/Button/Button.js.map +1 -1
  46. package/components/Button/Button.d.ts +23 -13
  47. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +6 -17
  48. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  49. package/components/CurrencyInput/CurrencyInput.d.ts +11 -22
  50. package/components/FxInput/FxInput/FxInput.js +122 -71
  51. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  52. package/components/FxInput/FxInput.d.ts +23 -16
  53. package/components/Input/Input/Input.js +8 -16
  54. package/components/Input/Input/Input.js.map +1 -1
  55. package/components/Input/Input.d.ts +27 -37
  56. package/components/Link/Link/Link.js +1 -1
  57. package/components/Link/Link/Link.js.map +1 -1
  58. package/components/Link/Link.d.ts +10 -10
  59. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +81 -66
  60. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
  61. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
  62. package/components/MaskedInput/MaskedInput/MaskedInput.js +4 -2
  63. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  64. package/components/PasswordInput/PasswordInput/PasswordInput.js +4 -5
  65. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  66. package/components/PasswordInput/PasswordInput.d.ts +5 -6
  67. package/components/__stories__/Form/Form.js +98 -0
  68. package/components/__stories__/Form/Form.js.map +1 -0
  69. package/components/__stories__/Form/package.json +6 -0
  70. package/internal/CommonWrapper/types/types.js.map +1 -1
  71. package/internal/CommonWrapper/types.d.ts +1 -1
  72. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  73. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +1 -0
  74. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  75. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  76. package/lib/utils/utils.js +18 -2
  77. package/lib/utils/utils.js.map +1 -1
  78. package/lib/utils.d.ts +5 -1
  79. package/package.json +8 -14
  80. package/test-setup.d.ts +1 -0
  81. package/vitest.config.d.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_client","_keyListener","_ThemeHelpers","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_ThemeFactory","_createPropsGetter","_Link","_SizeDecorator","_Button2","_ButtonIcon","_ButtonArrow","_getInnerLinkTheme","_LoadingButtonIcon","_class","_Button","_excluded","_excluded2","BUTTON_DEFAULT_COMPONENT","exports","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose2","default","createElement","Button","withSize","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","node","renderMain","props","_cx","_cx4","_cx5","corners","active","disabled","borderless","checked","error","warning","loading","narrow","arrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","disableFocus","width","tabIndex","_component","component","useProp","use","theme","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","useButtonArrow","_extends2","Boolean","size","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","nonInteractive","rootClassName","cx","styles","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","globalClasses","activeStyles","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","buttonOnlyProps","innerShadowNode","outlineNode","_cx2","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","ButtonIcon","position","rightIconNode","hasBothIcons","_cx3","link","linkLineHeight","isSafari","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","undefined","hasLoadingNode","loadingNode","LoadingButtonIcon","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","ThemeContext","Provider","value","getInnerLinkTheme","Link","focused","renderIcon2022","Root","ref","e","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","_inheritsLoose2","_proto","prototype","componentDidMount","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this2","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","isKonturIcon","_icon$props$size","sizes","getButtonIconSizes","React","cloneElement","_this$getProps2","isThemeGTE_5_3","isThemeGTE","_commonClasses","_themeSpecificClasses","commonClasses","sizeLargeIE11","isIE11","isEdge","sizeLargeWithIcon","sizeLargeWithIconWithoutText","themeSpecificClasses","sizeLargeWithRightIcon","sizeLargeWithIconWithoutText5_3","sizeLarge","_commonClasses3","_themeSpecificClasses3","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeMediumWithRightIcon","sizeMediumWithIconWithoutText5_3","sizeMedium","_commonClasses5","_themeSpecificClasses5","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","sizeSmallWithRightIcon","sizeSmallWithIconWithoutText5_3","sizeSmall","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type"],"sources":["Button.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport type { ButtonIconProps } from './ButtonIcon';\nimport { ButtonIcon, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /** Применяет к кнопке стили псевдокласса `:active`. */\n active?: boolean;\n\n /** Задаёт выравнивание тексту в кнопке. */\n align?: React.CSSProperties['textAlign'];\n\n /** Превращает обычную кнопку в кнопку со стрелкой. */\n arrow?: boolean | 'left';\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы.*/\n autoFocus?: boolean;\n\n /** Убирает обводку у кнопки. */\n borderless?: boolean;\n\n /** @ignore */\n checked?: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от текста кнопки. */\n rightIcon?: React.ReactElement;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Сужает кнопку. */\n narrow?: boolean;\n\n /** Задаёт размер кнопки. */\n size?: SizeProp;\n\n /** Задаёт HTML-атрибут `type`. */\n type?: ButtonType;\n\n /** Задаёт HTML-атрибут `title`. */\n title?: string;\n\n /** Задаёт стиль кнопки.\n * **Вариант `link` устарел.**\n * Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задаёт ширину кнопки. */\n width?: number | string;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n@withSize\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n // By default, the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n // warning(\n // this.props.use !== 'link',\n // `[Button]: Use 'Link' has been deprecated. Please, use Link with 'component=button' prop instead.`,\n // );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n theme,\n ...rest\n } = props;\n const { use, component, children } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n const [rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused), size: this.size },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const nonInteractive = disabled || loading;\n const rootClassName = cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(nonInteractive\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n borderless && styles.borderless(),\n use === 'backless' && styles.backlessDisabled(this.theme),\n use === 'text' && styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: nonInteractive, tabIndex }),\n };\n\n const wrapProps = {\n className: cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const buttonOnlyProps = component === 'button' ? { disabled: nonInteractive } : {};\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !nonInteractive) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari,\n [styles.linkLineHeightSafariFallback()]: isSafari,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: nonInteractive,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={this.size} />;\n\n let captionNode = (\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={cx(globalClasses.text, {\n [styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps} {...buttonOnlyProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n const { icon, rightIcon, children } = this.getProps();\n const isThemeGTE_5_3 = isThemeGTE(this.theme, '5.3');\n\n switch (this.size) {\n case 'large': {\n const commonClasses = {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: !!icon && !children,\n };\n\n const themeSpecificClasses = {\n [styles.sizeLargeWithRightIcon(this.theme)]: !!rightIcon,\n [styles.sizeLargeWithIconWithoutText5_3(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n return cx(styles.sizeLarge(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);\n }\n case 'medium': {\n const commonClasses = {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: !!icon && !children,\n };\n\n const themeSpecificClasses = {\n [styles.sizeMediumWithRightIcon(this.theme)]: !!rightIcon,\n [styles.sizeMediumWithIconWithoutText5_3(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return cx(styles.sizeMedium(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);\n }\n case 'small':\n default: {\n const commonClasses = {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: !!icon && !children,\n };\n\n const themeSpecificClasses = {\n [styles.sizeSmallWithRightIcon(this.theme)]: !!rightIcon,\n [styles.sizeSmallWithIconWithoutText5_3(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return cx(styles.sizeSmall(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);\n }\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_client","_keyListener","_ThemeHelpers","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_ThemeFactory","_createPropsGetter","_Link","_SizeDecorator","_Button2","_ButtonIcon","_ButtonArrow","_getInnerLinkTheme","_LoadingButtonIcon","_class","_Button","_excluded","_excluded2","BUTTON_DEFAULT_COMPONENT","exports","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose2","default","createElement","Button","withSize","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","node","renderMain","props","_cx","_cx4","_cx5","corners","active","disabled","borderless","checked","error","warning","loading","narrow","arrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","disableFocus","width","tabIndex","_component","component","useProp","use","theme","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","useButtonArrow","_extends2","Boolean","size","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","nonInteractive","rootClassName","cx","styles","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","globalClasses","activeStyles","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","buttonOnlyProps","innerShadowNode","outlineNode","_cx2","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","ButtonIcon","position","rightIconNode","hasBothIcons","_cx3","link","linkLineHeight","isSafari","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","undefined","hasLoadingNode","loadingNode","LoadingButtonIcon","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","ThemeContext","Provider","value","getInnerLinkTheme","Link","focused","renderIcon2022","Root","ref","e","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","_inheritsLoose2","_proto","prototype","componentDidMount","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this2","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","isKonturIcon","_icon$props$size","sizes","getButtonIconSizes","React","cloneElement","_this$getProps2","isThemeGTE_5_3","isThemeGTE","_commonClasses","_themeSpecificClasses","commonClasses","sizeLargeIE11","isIE11","isEdge","sizeLargeWithIcon","sizeLargeWithIconWithoutText","themeSpecificClasses","sizeLargeWithRightIcon","sizeLargeWithIconWithoutText5_3","sizeLarge","_commonClasses3","_themeSpecificClasses3","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeMediumWithRightIcon","sizeMediumWithIconWithoutText5_3","sizeMedium","_commonClasses5","_themeSpecificClasses5","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","sizeSmallWithRightIcon","sizeSmallWithIconWithoutText5_3","sizeSmall","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type"],"sources":["Button.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport type { ButtonIconProps } from './ButtonIcon';\nimport { ButtonIcon, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /** Применяет к кнопке стили псевдокласса `:active`. */\n active?: boolean;\n\n /** Задаёт выравнивание текста в кнопке. */\n align?: React.CSSProperties['textAlign'];\n\n /** Преобразует обычную кнопку в кнопку со стрелкой. */\n arrow?: boolean | 'left';\n\n /** Устанавливает фокус на кнопке после окончания загрузки страницы.*/\n autoFocus?: boolean;\n\n /** Убирает обводку у кнопки.\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.**\n */\n borderless?: boolean;\n\n /** @ignore */\n checked?: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Блокирует кнопку и перекрашивает в серый. */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Ошибка\".\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.** */\n error?: boolean;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от текста кнопки. */\n rightIcon?: React.ReactElement;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Сужает кнопку.\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.** */\n narrow?: boolean;\n\n /** Задаёт размер кнопки. */\n size?: SizeProp;\n\n /** Задаёт HTML-атрибут `type`. */\n type?: ButtonType;\n\n /** Задаёт HTML-атрибут `title`. */\n title?: string;\n\n /** Задаёт стиль кнопки.\n * **Вариант `link` устарел.** Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Предупреждение\".\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.**\n */\n warning?: boolean;\n\n /** Задаёт ширину кнопки. */\n width?: number | string;\n\n /** Задаёт объект с переменными темы. */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n/** Кнопка запускает действие, сценарий или позволяет перейти на другую страницу. */\n@withSize\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n // By default, the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n // warning(\n // this.props.use !== 'link',\n // `[Button]: Use 'Link' has been deprecated. Please, use Link with 'component=button' prop instead.`,\n // );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /** Программно устанавливает фокус на кнопке. Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n theme,\n ...rest\n } = props;\n const { use, component, children } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n const [rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused), size: this.size },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const nonInteractive = disabled || loading;\n const rootClassName = cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(nonInteractive\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n borderless && styles.borderless(),\n use === 'backless' && styles.backlessDisabled(this.theme),\n use === 'text' && styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: nonInteractive, tabIndex }),\n };\n\n const wrapProps = {\n className: cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const buttonOnlyProps = component === 'button' ? { disabled: nonInteractive } : {};\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !nonInteractive) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari,\n [styles.linkLineHeightSafariFallback()]: isSafari,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: nonInteractive,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={this.size} />;\n\n let captionNode = (\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={cx(globalClasses.text, {\n [styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps} {...buttonOnlyProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n const { icon, rightIcon, children } = this.getProps();\n const isThemeGTE_5_3 = isThemeGTE(this.theme, '5.3');\n\n switch (this.size) {\n case 'large': {\n const commonClasses = {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: !!icon && !children,\n };\n\n const themeSpecificClasses = {\n [styles.sizeLargeWithRightIcon(this.theme)]: !!rightIcon,\n [styles.sizeLargeWithIconWithoutText5_3(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n return cx(styles.sizeLarge(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);\n }\n case 'medium': {\n const commonClasses = {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: !!icon && !children,\n };\n\n const themeSpecificClasses = {\n [styles.sizeMediumWithRightIcon(this.theme)]: !!rightIcon,\n [styles.sizeMediumWithIconWithoutText5_3(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return cx(styles.sizeMedium(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);\n }\n case 'small':\n default: {\n const commonClasses = {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: !!icon && !children,\n };\n\n const themeSpecificClasses = {\n [styles.sizeSmallWithRightIcon(this.theme)]: !!rightIcon,\n [styles.sizeSmallWithIconWithoutText5_3(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return cx(styles.sizeSmall(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);\n }\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,19 +6,20 @@ import type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonW
6
6
  import type { TGetRootNode } from '../../lib/rootNode';
7
7
  import type { Selection } from './SelectionHelper';
8
8
  export interface CurrencyInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Override<Omit<InputProps, 'showClearIcon'>, {
9
- /** Задает значение инпута. */
9
+ /** Задаёт значение поля. */
10
10
  value?: Nullable<number>;
11
11
  /** Убирает лишние нули после запятой. */
12
12
  hideTrailingZeros?: boolean;
13
- /** Устанавливает минимальное количество отображаемых знаков после запятой. */
13
+ /** Устанавливает минимальное количество отображаемых знаков после запятой. Если fractionDigits=15, то в целой части допускается только **0**. */
14
14
  fractionDigits?: Nullable<number>;
15
- /** Разрешает отрицательные значения. */
15
+ /** Разрешает вводить в поле символ минуса для отрицательных значений. */
16
16
  signed?: boolean;
17
- /** Задает допустимое количество цифр целой части. Если передан **0**, или fractionDigits=15, то и в целой части допускается только **0**. */
17
+ /** Задаёт допустимое количество цифр целой части до запятой.
18
+ * Если передан **0**, то в целой части допускается только **0**. */
18
19
  integerDigits?: Nullable<number>;
19
- /** Задает функцию, которая вызывается при изменении `value`. */
20
+ /** Задаёт функцию, которая вызывается при изменении `value`. */
20
21
  onValueChange: (value: Nullable<number>) => void;
21
- /** Задает функцию, которая вызывается при отправке формы. */
22
+ /** Задаёт функцию, которая вызывается при отправке формы. */
22
23
  onSubmit?: () => void;
23
24
  }> {
24
25
  }
@@ -31,20 +32,7 @@ export declare const CurrencyInputDataTids: {
31
32
  readonly root: "CurrencyInput__root";
32
33
  };
33
34
  type DefaultProps = Required<Pick<CurrencyInputProps, 'align' | 'fractionDigits' | 'hideTrailingZeros' | 'value' | 'inputMode'>>;
34
- /**
35
- * `CurrencyInput` — поле для денежных сумм (и других числовых значений).
36
- * Принимает любые свойства `Input`.
37
- *
38
- * Используйте такое поле, когда нужно вводить значение в рублях, долларах или другой валюте.
39
- * Оно форматирует введенное значение и помогает пользователю не ошибиться при вводе.
40
- *
41
- * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).
42
- *
43
- * **Почему 15?** Максимальное безопасное целочисленное значение - 9007199254740991 (16 цифр). Убрав один разряд под знак, мы получим "новое" максимальное безопасное значение - 999999999999999 (15 цифр).
44
- * При этом десятичный резделитель может находиться в любом месте. Если целая часть равна 0, то она не учитывается. Детали можно почитать здесь - [MDN web docs](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER).
45
- *
46
- * Если `fractionDigits=15`, то в целой части допускается **0**.
47
- */
35
+ /** Поле для денежных сумм. */
48
36
  export declare class CurrencyInput extends React.PureComponent<CurrencyInputProps, CurrencyInputState> {
49
37
  static __KONTUR_REACT_UI__: string;
50
38
  static displayName: string;
@@ -60,11 +48,12 @@ export declare class CurrencyInput extends React.PureComponent<CurrencyInputProp
60
48
  componentDidUpdate(prevProps: CurrencyInputProps, prevState: CurrencyInputState): void;
61
49
  render(): React.JSX.Element;
62
50
  renderMain: (props: CommonWrapperRestProps<CurrencyInputProps>) => React.JSX.Element;
63
- /**
51
+ /** Программно устанавливает фокус на поле.
52
+ * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
64
53
  * @public
65
54
  */
66
55
  focus: () => void;
67
- /**
56
+ /** Программно снимает фокус с кнопки.
68
57
  * @public
69
58
  */
70
59
  blur: () => void;
@@ -57,6 +57,7 @@ var _CurrencyInputKeyboardActions = require("./CurrencyInputKeyboardActions");va
57
57
 
58
58
 
59
59
 
60
+
60
61
 
61
62
 
62
63
  var CurrencyInputDataTids = exports.CurrencyInputDataTids = {
@@ -67,20 +68,7 @@ var CurrencyInputDataTids = exports.CurrencyInputDataTids = {
67
68
 
68
69
 
69
70
 
70
- /**
71
- * `CurrencyInput` — поле для денежных сумм (и других числовых значений).
72
- * Принимает любые свойства `Input`.
73
- *
74
- * Используйте такое поле, когда нужно вводить значение в рублях, долларах или другой валюте.
75
- * Оно форматирует введенное значение и помогает пользователю не ошибиться при вводе.
76
- *
77
- * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).
78
- *
79
- * **Почему 15?** Максимальное безопасное целочисленное значение - 9007199254740991 (16 цифр). Убрав один разряд под знак, мы получим "новое" максимальное безопасное значение - 999999999999999 (15 цифр).
80
- * При этом десятичный резделитель может находиться в любом месте. Если целая часть равна 0, то она не учитывается. Детали можно почитать здесь - [MDN web docs](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER).
81
- *
82
- * Если `fractionDigits=15`, то в целой части допускается **0**.
83
- */var
71
+ /** Поле для денежных сумм. */var
84
72
 
85
73
  CurrencyInput = exports.CurrencyInput = (0, _rootNode.rootNode)(_class = (_CurrencyInput = /*#__PURE__*/function (_React$PureComponent) {function CurrencyInput() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
86
74
 
@@ -108,6 +96,9 @@ CurrencyInput = exports.CurrencyInput = (0, _rootNode.rootNode)(_class = (_Curre
108
96
 
109
97
 
110
98
 
99
+
100
+
101
+
111
102
  state = (0, _extends2.default)({},
112
103
  _this.getState(_this.getProps().value, _this.getProps().fractionDigits, _this.getProps().hideTrailingZeros), {
113
104
  focused: false });_this.
@@ -182,7 +173,8 @@ CurrencyInput = exports.CurrencyInput = (0, _rootNode.rootNode)(_class = (_Curre
182
173
 
183
174
  };
184
175
 
185
- /**
176
+ /** Программно устанавливает фокус на поле.
177
+ * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
186
178
  * @public
187
179
  */_this.
188
180
  focus = function () {
@@ -191,7 +183,7 @@ CurrencyInput = exports.CurrencyInput = (0, _rootNode.rootNode)(_class = (_Curre
191
183
  }
192
184
  };
193
185
 
194
- /**
186
+ /** Программно снимает фокус с кнопки.
195
187
  * @public
196
188
  */_this.
197
189
  blur = function () {
@@ -404,6 +396,7 @@ CurrencyInput = exports.CurrencyInput = (0, _rootNode.rootNode)(_class = (_Curre
404
396
  var selection = _this.getSelection(event.target);
405
397
  _this.inputValue(selection.start, selection.end, data);
406
398
  event.preventDefault();
399
+ _this.props.onPaste == null || _this.props.onPaste(event);
407
400
  };_this.
408
401
 
409
402
  handleCopy = function (event) {
@@ -463,7 +456,7 @@ CurrencyInput = exports.CurrencyInput = (0, _rootNode.rootNode)(_class = (_Curre
463
456
 
464
457
  refInput = function (element) {
465
458
  _this.input = element;
466
- };return _this;}(0, _inheritsLoose2.default)(CurrencyInput, _React$PureComponent);var _proto = CurrencyInput.prototype;_proto.validateProps = function validateProps(props) {(0, _warning.default)(isNumeric(props.value), '[CurrencyInput]: Prop `value` is not a valid number');(0, _warning.default)(props.maxLength === undefined, "[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'");(0, _warning.default)((props.integerDigits || 0) + (props.fractionDigits || 0) <= _constants.MAX_SAFE_DIGITS, "[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds " + _constants.MAX_SAFE_DIGITS + "." + "\nSee CurrencyInput documentation");};_proto.componentDidMount = function componentDidMount() {this.validateProps(this.getProps());};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var _this$getProps = this.getProps(),value = _this$getProps.value,fractionDigits = _this$getProps.fractionDigits,hideTrailingZeros = _this$getProps.hideTrailingZeros;this.validateProps(this.getProps());if (isNumeric(value) && Number(value) !== _CurrencyHelper.CurrencyHelper.parse(prevState.formatted) || prevProps.fractionDigits !== fractionDigits) {this.setState(this.getState(value, fractionDigits, hideTrailingZeros));}if ((0, _utils.isNonNullable)(prevProps.value) && (0, _utils.isNullable)(value)) {this.setState({ formatted: '' });}if (this.state.focused && this.input) {var _this$state$selection = this.state.selection,start = _this$state$selection.start,end = _this$state$selection.end;this.input.setSelectionRange(start, end);}if (prevState.selection !== this.state.selection) {this.scrollInput();}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.getProps()), this.renderMain);};_proto.getState = function getState(value, fractionDigits, hideTrailingZeros) {return { formatted: _CurrencyHelper.CurrencyHelper.format(value, { fractionDigits: fractionDigits, hideTrailingZeros: hideTrailingZeros }), selection: _SelectionHelper.SelectionHelper.fromPosition(0) };};_proto.setSelectionFromEvent = function setSelectionFromEvent(event) {var selection = getInputSelectionFromEvent(event.target);var normilized = _CurrencyInputHelper.CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);this.setState({ selection: normilized });};return CurrencyInput;}(_react.default.PureComponent), _CurrencyInput.__KONTUR_REACT_UI__ = 'CurrencyInput', _CurrencyInput.displayName = 'CurrencyInput', _CurrencyInput.defaultProps = { align: 'right', fractionDigits: 2, hideTrailingZeros: false, value: null, inputMode: 'decimal' }, _CurrencyInput)) || _class;
459
+ };return _this;}(0, _inheritsLoose2.default)(CurrencyInput, _React$PureComponent);var _proto = CurrencyInput.prototype;_proto.validateProps = function validateProps(props) {(0, _warning.default)(isNumeric(props.value) || (0, _utils.isNullable)(props.value), '[CurrencyInput]: Prop `value` is not a valid number. Received value is `' + props.value + '`.');(0, _warning.default)(props.maxLength === undefined, "[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'");(0, _warning.default)((props.integerDigits || 0) + (props.fractionDigits || 0) <= _constants.MAX_SAFE_DIGITS, "[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds " + _constants.MAX_SAFE_DIGITS + "." + "\nSee CurrencyInput documentation");};_proto.componentDidMount = function componentDidMount() {this.validateProps(this.getProps());};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var _this$getProps = this.getProps(),value = _this$getProps.value,fractionDigits = _this$getProps.fractionDigits,hideTrailingZeros = _this$getProps.hideTrailingZeros;this.validateProps(this.getProps());if (isNumeric(value) && Number(value) !== _CurrencyHelper.CurrencyHelper.parse(prevState.formatted) || prevProps.fractionDigits !== fractionDigits) {this.setState(this.getState(value, fractionDigits, hideTrailingZeros));}if ((0, _utils.isNonNullable)(prevProps.value) && (0, _utils.isNullable)(value)) {this.setState({ formatted: '' });}if (this.state.focused && this.input) {var _this$state$selection = this.state.selection,start = _this$state$selection.start,end = _this$state$selection.end;this.input.setSelectionRange(start, end);}if (prevState.selection !== this.state.selection) {this.scrollInput();}};_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.getProps()), this.renderMain);};_proto.getState = function getState(value, fractionDigits, hideTrailingZeros) {return { formatted: _CurrencyHelper.CurrencyHelper.format(value, { fractionDigits: fractionDigits, hideTrailingZeros: hideTrailingZeros }), selection: _SelectionHelper.SelectionHelper.fromPosition(0) };};_proto.setSelectionFromEvent = function setSelectionFromEvent(event) {var selection = getInputSelectionFromEvent(event.target);var normilized = _CurrencyInputHelper.CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);this.setState({ selection: normilized });};return CurrencyInput;}(_react.default.PureComponent), _CurrencyInput.__KONTUR_REACT_UI__ = 'CurrencyInput', _CurrencyInput.displayName = 'CurrencyInput', _CurrencyInput.defaultProps = { align: 'right', fractionDigits: 2, hideTrailingZeros: false, value: null, inputMode: 'decimal' }, _CurrencyInput)) || _class;
467
460
 
468
461
 
469
462
  function getInputSelectionFromEvent(input) {var _input$selectionStart, _input$selectionEnd;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_warning","_lodash","_globalObject","_utils","_client","_Input","_CommonWrapper","_rootNode","_createPropsGetter","_isInstanceOf","_FocusControlWrapper","_constants","_SelectionHelper","_CurrencyHelper","_CurrencyInputHelper","_CurrencyInputKeyboardActions","_excluded","_class","_CurrencyInput","CurrencyInputDataTids","exports","root","CurrencyInput","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","_extends2","default","getState","value","fractionDigits","hideTrailingZeros","focused","tempSelectionForOnChange","SelectionHelper","fromPosition","renderMain","props","signed","onSubmit","integerDigits","rest","_objectWithoutPropertiesLoose2","createElement","FocusControlWrapper","onBlurWhenDisabled","resetFocus","Input","align","formatted","onBlur","handleBlur","onFocus","handleFocus","onMouseUp","handleMouseUp","onKeyDown","handleKeyDown","onValueChange","handleValueChange","onPaste","handlePaste","onCopy","handleCopy","onCut","handleCut","onMouseEnter","onMouseLeave","onMouseOver","ref","refInput","placeholder","getPlaceholder","focus","input","blur","debouncedSetSelectionFromEvent","debounce","setSelectionFromEvent","event","isIE11","persist","selection","getSelection","target","defaultPrevented","action","extractAction","CURRENCY_INPUT_ACTIONS","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","CurrencyInputHelper","moveCursor","end","Delete","start","MoveCursorLeft","MoveCursorRight","Home","setState","End","ExtendSelectionLeft","extendSelection","ExtendSelectionRight","FullSelection","forward","ExtendSelectionToStart","backward","ExtendSelectionToEnd","inputEnd","Comma","scrollInput","_this$input","node","getNode","scrollWidth","clientWidth","PAD","SHIFT","selected","position","direction","charsCount","charWidth","frame","Math","ceil","frameStart","scrollLeft","frameEnd","getInputSelectionFromEvent","step","extended","result","safeInsert","unsigned","parsedValue","CurrencyHelper","parse","blink","getOnChangeDelta","oldValue","substring","substr","delta","isNonNullable","data","clipboardData","getData","formatForClipboard","setData","_event$target","selectionStart","selectionEnd","selectionDirection","valueLength","element","_inheritsLoose2","_proto","prototype","validateProps","warning","isNumeric","maxLength","undefined","MAX_SAFE_DIGITS","componentDidMount","componentDidUpdate","prevProps","prevState","_this$getProps","Number","isNullable","_this$state$selection","setSelectionRange","render","CommonWrapper","rootNodeRef","setRootNode","format","normilized","normalizeSelection","React","PureComponent","__KONTUR_REACT_UI__","displayName","inputMode","_input$selectionStart","_input$selectionEnd","isInstanceOf","globalObject","HTMLInputElement","Error","isNaN","parseFloat","isFinite"],"sources":["CurrencyInput.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\nimport debounce from 'lodash.debounce';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\n\nimport { MAX_SAFE_DIGITS } from './constants';\nimport type { Selection, SelectionDirection } from './SelectionHelper';\nimport { SelectionHelper } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CurrencyInputHelper } from './CurrencyInputHelper';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions';\n\nexport interface CurrencyInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n Omit<InputProps, 'showClearIcon'>,\n {\n /** Задает значение инпута. */\n value?: Nullable<number>;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Устанавливает минимальное количество отображаемых знаков после запятой. */\n fractionDigits?: Nullable<number>;\n\n /** Разрешает отрицательные значения. */\n signed?: boolean;\n\n /** Задает допустимое количество цифр целой части. Если передан **0**, или fractionDigits=15, то и в целой части допускается только **0**. */\n integerDigits?: Nullable<number>;\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange: (value: Nullable<number>) => void;\n\n /** Задает функцию, которая вызывается при отправке формы. */\n onSubmit?: () => void;\n }\n > {}\n\nexport interface CurrencyInputState {\n formatted: string;\n selection: Selection;\n focused: boolean;\n}\n\nexport const CurrencyInputDataTids = {\n root: 'CurrencyInput__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<CurrencyInputProps, 'align' | 'fractionDigits' | 'hideTrailingZeros' | 'value' | 'inputMode'>\n>;\n\n/**\n * `CurrencyInput` — поле для денежных сумм (и других числовых значений).\n * Принимает любые свойства `Input`.\n *\n * Используйте такое поле, когда нужно вводить значение в рублях, долларах или другой валюте.\n * Оно форматирует введенное значение и помогает пользователю не ошибиться при вводе.\n *\n * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).\n *\n * **Почему 15?** Максимальное безопасное целочисленное значение - 9007199254740991 (16 цифр). Убрав один разряд под знак, мы получим \"новое\" максимальное безопасное значение - 999999999999999 (15 цифр).\n * При этом десятичный резделитель может находиться в любом месте. Если целая часть равна 0, то она не учитывается. Детали можно почитать здесь - [MDN web docs](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER).\n *\n * Если `fractionDigits=15`, то в целой части допускается **0**.\n */\n@rootNode\nexport class CurrencyInput extends React.PureComponent<CurrencyInputProps, CurrencyInputState> {\n public static __KONTUR_REACT_UI__ = 'CurrencyInput';\n public static displayName = 'CurrencyInput';\n\n public static defaultProps: DefaultProps = {\n align: 'right',\n fractionDigits: 2,\n hideTrailingZeros: false,\n value: null,\n inputMode: 'decimal',\n };\n\n private getProps = createPropsGetter(CurrencyInput.defaultProps);\n private validateProps(props: CurrencyInputProps): void {\n warning(isNumeric(props.value), '[CurrencyInput]: Prop `value` is not a valid number');\n warning(\n props.maxLength === undefined,\n `[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'`,\n );\n warning(\n (props.integerDigits || 0) + (props.fractionDigits || 0) <= MAX_SAFE_DIGITS,\n `[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee CurrencyInput documentation`,\n );\n }\n\n public state: CurrencyInputState = {\n ...this.getState(this.getProps().value, this.getProps().fractionDigits, this.getProps().hideTrailingZeros),\n focused: false,\n };\n\n private input: Nullable<Input>;\n private tempSelectionForOnChange: Selection = SelectionHelper.fromPosition(0);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount(): void {\n this.validateProps(this.getProps());\n }\n\n public componentDidUpdate(prevProps: CurrencyInputProps, prevState: CurrencyInputState) {\n const { value, fractionDigits, hideTrailingZeros } = this.getProps();\n this.validateProps(this.getProps());\n\n if (\n (isNumeric(value) && Number(value) !== CurrencyHelper.parse(prevState.formatted)) ||\n prevProps.fractionDigits !== fractionDigits\n ) {\n this.setState(this.getState(value, fractionDigits, hideTrailingZeros));\n }\n if (isNonNullable(prevProps.value) && isNullable(value)) {\n this.setState({ formatted: '' });\n }\n if (this.state.focused && this.input) {\n const { start, end } = this.state.selection;\n\n this.input.setSelectionRange(start, end);\n }\n if (prevState.selection !== this.state.selection) {\n this.scrollInput();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<CurrencyInputProps>) => {\n const { fractionDigits, signed, onSubmit, integerDigits, hideTrailingZeros, ...rest } = props;\n\n return (\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <Input\n data-tid={CurrencyInputDataTids.root}\n {...rest}\n align={this.getProps().align}\n value={this.state.formatted}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onMouseUp={this.handleMouseUp}\n onKeyDown={this.handleKeyDown}\n onValueChange={this.handleValueChange}\n onPaste={this.handlePaste}\n onCopy={this.handleCopy}\n onCut={this.handleCut}\n aria-label={this.props['aria-label']}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n ref={this.refInput}\n placeholder={this.state.focused ? '' : getPlaceholder(props)}\n />\n </FocusControlWrapper>\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getState(value: Nullable<number>, fractionDigits: Nullable<number>, hideTrailingZeros: boolean) {\n return {\n formatted: CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros }),\n selection: SelectionHelper.fromPosition(0),\n };\n }\n\n private setSelectionFromEvent(event: React.MouseEvent<HTMLInputElement>) {\n const selection = getInputSelectionFromEvent(event.target);\n const normilized = CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);\n this.setState({ selection: normilized });\n }\n\n // for IE11\n private readonly debouncedSetSelectionFromEvent = debounce(this.setSelectionFromEvent, 300);\n\n private handleMouseUp = (event: React.MouseEvent<HTMLInputElement>) => {\n if (isIE11) {\n event.persist();\n this.debouncedSetSelectionFromEvent(event);\n } else {\n this.setSelectionFromEvent(event);\n }\n };\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n this.tempSelectionForOnChange = selection;\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n const action = extractAction(event);\n\n if (action === CURRENCY_INPUT_ACTIONS.Ignore) {\n return;\n }\n\n if (action !== CURRENCY_INPUT_ACTIONS.Unknown) {\n event.preventDefault();\n }\n\n switch (action) {\n case CURRENCY_INPUT_ACTIONS.Submit: {\n if (this.props.onSubmit) {\n this.props.onSubmit();\n }\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Backspace: {\n this.inputValue(CurrencyInputHelper.moveCursor(this.state.formatted, selection, -1), selection.end, '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Delete: {\n this.inputValue(selection.start, CurrencyInputHelper.moveCursor(this.state.formatted, selection, +1), '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorLeft: {\n this.moveCursor(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorRight: {\n this.moveCursor(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Home: {\n this.setState({ selection: SelectionHelper.fromPosition(0) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.End: {\n const end = this.state.formatted.length;\n this.setState({ selection: SelectionHelper.fromPosition(end) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionLeft: {\n this.extendSelection(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionRight: {\n this.extendSelection(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.FullSelection: {\n this.setState({\n selection: SelectionHelper.forward(0, this.state.formatted.length),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToStart: {\n this.setState({\n selection: SelectionHelper.backward(0, selection.start),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToEnd: {\n const inputEnd = this.state.formatted.length;\n this.setState({\n selection: SelectionHelper.forward(selection.start, inputEnd),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Comma: {\n this.inputValue(selection.start, selection.end, ',');\n return;\n }\n }\n };\n\n private scrollInput = () => {\n const node = this.input?.getNode();\n if (!node || node.scrollWidth === node.clientWidth) {\n return;\n }\n const PAD = 1;\n const SHIFT = 3;\n\n const selection = this.state.selection;\n const selected = selection.start !== selection.end;\n const position = selected && selection.direction === 'forward' ? selection.end : selection.start;\n const charsCount = this.state.formatted.length;\n const charWidth = node.scrollWidth / charsCount;\n const frame = Math.ceil(node.clientWidth / charWidth);\n const frameStart = Math.ceil(node.scrollLeft / charWidth);\n const frameEnd = frameStart + frame;\n\n if (position < frameStart + PAD) {\n node.scrollLeft = (position - SHIFT) * charWidth;\n }\n if (position > frameEnd - PAD) {\n node.scrollLeft = (position - frame + SHIFT) * charWidth;\n }\n };\n\n private getSelection = (input: EventTarget): Selection => {\n const selection = getInputSelectionFromEvent(input);\n return {\n start: selection.start,\n end: selection.end,\n direction: this.state.selection.direction,\n };\n };\n\n private moveCursor = (selection: Selection, step: number) => {\n const position = CurrencyInputHelper.moveCursor(this.state.formatted, selection, step);\n this.setState({ selection: SelectionHelper.fromPosition(position) });\n };\n\n private extendSelection = (selection: Selection, step: number) => {\n const extended = CurrencyInputHelper.extendSelection(this.state.formatted, selection, step);\n this.setState({ selection: extended });\n };\n\n private inputValue = (start: number, end: number, value: string) => {\n const result = CurrencyInputHelper.safeInsert(this.state.formatted, start, end, value, {\n integerDigits: this.props.integerDigits,\n fractionDigits: this.getProps().fractionDigits,\n unsigned: !this.props.signed,\n });\n if (result) {\n const formatted = result.value;\n const selection = SelectionHelper.fromPosition(result.position);\n this.setState({ formatted, selection }, () => {\n const parsedValue = CurrencyHelper.parse(formatted);\n if (this.props.value !== parsedValue) {\n this.props.onValueChange(parsedValue);\n }\n });\n return true;\n }\n\n if (this.input) {\n this.input.blink();\n }\n return false;\n };\n\n private getOnChangeDelta = (value: string) => {\n const selection = this.tempSelectionForOnChange;\n const oldValue = this.state.formatted;\n if (selection.start !== selection.end) {\n return value.substring(selection.start, value.length - (oldValue.length - selection.end));\n } else if (value.length > oldValue.length) {\n return value.substr(selection.start, value.length - oldValue.length);\n }\n return null;\n };\n\n private handleValueChange = (value: string): void => {\n const selection = this.tempSelectionForOnChange;\n const delta = this.getOnChangeDelta(value);\n if (isNonNullable(delta) && !this.inputValue(selection.start, selection.end, delta)) {\n this.setState({ selection });\n }\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const data = event.clipboardData.getData('text');\n const selection = this.getSelection(event.target);\n this.inputValue(selection.start, selection.end, data);\n event.preventDefault();\n };\n\n private handleCopy = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n }\n event.preventDefault();\n };\n\n private handleCut = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n this.inputValue(selection.start, selection.end, '');\n }\n event.preventDefault();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n const { selectionStart, selectionEnd, selectionDirection } = event.target;\n const valueLength = event.target.value.length;\n\n const selection = {\n start: selectionStart !== selectionEnd ? selectionStart || 0 : selectionStart || valueLength,\n end: selectionEnd !== selectionStart ? selectionEnd || 0 : selectionEnd || valueLength,\n direction: (selectionDirection as SelectionDirection) || 'none',\n };\n\n this.setState({\n focused: true,\n selection,\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private resetFocus = () => {\n const value = CurrencyHelper.parse(this.state.formatted);\n\n this.setState({\n ...this.getState(value, this.getProps().fractionDigits, this.getProps().hideTrailingZeros),\n focused: false,\n });\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(event);\n };\n\n private refInput = (element: Nullable<Input>) => {\n this.input = element;\n };\n}\n\nfunction getInputSelectionFromEvent(input: EventTarget): Selection {\n if (!isInstanceOf(input, globalObject.HTMLInputElement)) {\n throw new Error('input is not HTMLInputElement');\n }\n\n return {\n start: input.selectionStart ?? 0,\n end: input.selectionEnd ?? 0,\n direction: input.selectionDirection as SelectionDirection,\n };\n}\n\nfunction isNumeric(value: unknown): value is number | string {\n return !isNaN(parseFloat(value as string)) && isFinite(value as number);\n}\n\nconst getPlaceholder = (props: CurrencyInputProps) => {\n if (isNullable(props.placeholder)) {\n return CurrencyHelper.format(0, {\n fractionDigits: props.fractionDigits,\n hideTrailingZeros: props.hideTrailingZeros,\n });\n }\n\n return props.placeholder;\n};\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;;AAEA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;;AAEA,IAAAM,MAAA,GAAAN,OAAA;;;AAGA,IAAAO,cAAA,GAAAP,OAAA;;AAEA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,aAAA,GAAAV,OAAA;AACA,IAAAW,oBAAA,GAAAX,OAAA;;AAEA,IAAAY,UAAA,GAAAZ,OAAA;;AAEA,IAAAa,gBAAA,GAAAb,OAAA;AACA,IAAAc,eAAA,GAAAd,OAAA;AACA,IAAAe,oBAAA,GAAAf,OAAA;AACA,IAAAgB,6BAAA,GAAAhB,OAAA,mCAAuF,IAAAiB,SAAA,sFAAAC,MAAA,EAAAC,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqChF,IAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG;EACnCE,IAAI,EAAE;AACR,CAAU;;;;;;AAMV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAbA;;AAeaC,aAAa,GAAAF,OAAA,CAAAE,aAAA,OADzBC,kBAAQ,EAAAN,MAAA,IAAAC,cAAA,0BAAAM,oBAAA,YAAAF,cAAA,OAAAG,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,oBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,oBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;IAaCU,QAAQ,GAAG,IAAAC,oCAAiB,EAACd,aAAa,CAACe,YAAY,CAAC,CAAAZ,KAAA;;;;;;;;;;;;;;IAczDa,KAAK,OAAAC,SAAA,CAAAC,OAAA;IACPf,KAAA,CAAKgB,QAAQ,CAAChB,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACO,KAAK,EAAEjB,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACQ,cAAc,EAAElB,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACS,iBAAiB,CAAC;MAC1GC,OAAO,EAAE,KAAK,IAAApB,KAAA;;;;IAIRqB,wBAAwB,GAAcC,gCAAe,CAACC,YAAY,CAAC,CAAC,CAAC,CAAAvB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuCtEwB,UAAU,GAAG,UAACC,KAAiD,EAAK;MACzE,IAAQP,cAAc,GAAkEO,KAAK,CAArFP,cAAc,CAAEQ,MAAM,GAA0DD,KAAK,CAArEC,MAAM,CAAEC,QAAQ,GAAgDF,KAAK,CAA7DE,QAAQ,CAAEC,aAAa,GAAiCH,KAAK,CAAnDG,aAAa,CAAET,iBAAiB,GAAcM,KAAK,CAApCN,iBAAiB,CAAKU,IAAI,OAAAC,8BAAA,CAAAf,OAAA,EAAKU,KAAK,EAAAlC,SAAA;;MAE7F;QACEnB,MAAA,CAAA2C,OAAA,CAAAgB,aAAA,CAAC9C,oBAAA,CAAA+C,mBAAmB,IAACC,kBAAkB,EAAEjC,KAAA,CAAKkC,UAAW;QACvD9D,MAAA,CAAA2C,OAAA,CAAAgB,aAAA,CAACnD,MAAA,CAAAuD,KAAK,MAAArB,SAAA,CAAAC,OAAA;UACJ,YAAUrB,qBAAqB,CAACE,IAAK;QACjCiC,IAAI;UACRO,KAAK,EAAEpC,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAAC0B,KAAM;UAC7BnB,KAAK,EAAEjB,KAAA,CAAKa,KAAK,CAACwB,SAAU;UAC5BC,MAAM,EAAEtC,KAAA,CAAKuC,UAAW;UACxBC,OAAO,EAAExC,KAAA,CAAKyC,WAAY;UAC1BC,SAAS,EAAE1C,KAAA,CAAK2C,aAAc;UAC9BC,SAAS,EAAE5C,KAAA,CAAK6C,aAAc;UAC9BC,aAAa,EAAE9C,KAAA,CAAK+C,iBAAkB;UACtCC,OAAO,EAAEhD,KAAA,CAAKiD,WAAY;UAC1BC,MAAM,EAAElD,KAAA,CAAKmD,UAAW;UACxBC,KAAK,EAAEpD,KAAA,CAAKqD,SAAU;UACtB,cAAYrD,KAAA,CAAKyB,KAAK,CAAC,YAAY,CAAE;UACrC6B,YAAY,EAAEtD,KAAA,CAAKyB,KAAK,CAAC6B,YAAa;UACtCC,YAAY,EAAEvD,KAAA,CAAKyB,KAAK,CAAC8B,YAAa;UACtCC,WAAW,EAAExD,KAAA,CAAKyB,KAAK,CAAC+B,WAAY;UACpCC,GAAG,EAAEzD,KAAA,CAAK0D,QAAS;UACnBC,WAAW,EAAE3D,KAAA,CAAKa,KAAK,CAACO,OAAO,GAAG,EAAE,GAAGwC,cAAc,CAACnC,KAAK,CAAE;QAC9D;QACkB,CAAC;;IAE1B,CAAC;;IAED;AACF;AACA,OAFEzB,KAAA;IAGO6D,KAAK,GAAG,YAAM;MACnB,IAAI7D,KAAA,CAAK8D,KAAK,EAAE;QACd9D,KAAA,CAAK8D,KAAK,CAACD,KAAK,CAAC,CAAC;MACpB;IACF,CAAC;;IAED;AACF;AACA,OAFE7D,KAAA;IAGO+D,IAAI,GAAG,YAAM;MAClB,IAAI/D,KAAA,CAAK8D,KAAK,EAAE;QACd9D,KAAA,CAAK8D,KAAK,CAACC,IAAI,CAAC,CAAC;MACnB;IACF,CAAC;;;;;;;;;;;;;;;IAeD;IAAA/D,KAAA,CACiBgE,8BAA8B,GAAG,IAAAC,eAAQ,EAACjE,KAAA,CAAKkE,qBAAqB,EAAE,GAAG,CAAC,CAAAlE,KAAA;;IAEnF2C,aAAa,GAAG,UAACwB,KAAyC,EAAK;MACrE,IAAIC,cAAM,EAAE;QACVD,KAAK,CAACE,OAAO,CAAC,CAAC;QACfrE,KAAA,CAAKgE,8BAA8B,CAACG,KAAK,CAAC;MAC5C,CAAC,MAAM;QACLnE,KAAA,CAAKkE,qBAAqB,CAACC,KAAK,CAAC;MACnC;IACF,CAAC,CAAAnE,KAAA;;IAEO6C,aAAa,GAAG,UAACsB,KAA4C,EAAK;MACxE,IAAMG,SAAS,GAAGtE,KAAA,CAAKuE,YAAY,CAACJ,KAAK,CAACK,MAAM,CAAC;MACjDxE,KAAA,CAAKqB,wBAAwB,GAAGiD,SAAS;;MAEzC,IAAItE,KAAA,CAAKyB,KAAK,CAACmB,SAAS,EAAE;QACxB5C,KAAA,CAAKyB,KAAK,CAACmB,SAAS,CAACuB,KAAK,CAAC;QAC3B,IAAIA,KAAK,CAACM,gBAAgB,EAAE;UAC1B;QACF;MACF;;MAEA,IAAMC,MAAM,GAAG,IAAAC,2CAAa,EAACR,KAAK,CAAC;;MAEnC,IAAIO,MAAM,KAAKE,oDAAsB,CAACC,MAAM,EAAE;QAC5C;MACF;;MAEA,IAAIH,MAAM,KAAKE,oDAAsB,CAACE,OAAO,EAAE;QAC7CX,KAAK,CAACY,cAAc,CAAC,CAAC;MACxB;;MAEA,QAAQL,MAAM;QACZ,KAAKE,oDAAsB,CAACI,MAAM,CAAE;YAClC,IAAIhF,KAAA,CAAKyB,KAAK,CAACE,QAAQ,EAAE;cACvB3B,KAAA,CAAKyB,KAAK,CAACE,QAAQ,CAAC,CAAC;YACvB;YACA;UACF;QACA,KAAKiD,oDAAsB,CAACK,SAAS,CAAE;YACrCjF,KAAA,CAAKkF,UAAU,CAACC,wCAAmB,CAACC,UAAU,CAACpF,KAAA,CAAKa,KAAK,CAACwB,SAAS,EAAEiC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAEA,SAAS,CAACe,GAAG,EAAE,EAAE,CAAC;YACvG;UACF;QACA,KAAKT,oDAAsB,CAACU,MAAM,CAAE;YAClCtF,KAAA,CAAKkF,UAAU,CAACZ,SAAS,CAACiB,KAAK,EAAEJ,wCAAmB,CAACC,UAAU,CAACpF,KAAA,CAAKa,KAAK,CAACwB,SAAS,EAAEiC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACzG;UACF;QACA,KAAKM,oDAAsB,CAACY,cAAc,CAAE;YAC1CxF,KAAA,CAAKoF,UAAU,CAACd,SAAS,EAAE,CAAC,CAAC,CAAC;YAC9B;UACF;QACA,KAAKM,oDAAsB,CAACa,eAAe,CAAE;YAC3CzF,KAAA,CAAKoF,UAAU,CAACd,SAAS,EAAE,CAAC,CAAC,CAAC;YAC9B;UACF;QACA,KAAKM,oDAAsB,CAACc,IAAI,CAAE;YAChC1F,KAAA,CAAK2F,QAAQ,CAAC,EAAErB,SAAS,EAAEhD,gCAAe,CAACC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D;UACF;QACA,KAAKqD,oDAAsB,CAACgB,GAAG,CAAE;YAC/B,IAAMP,GAAG,GAAGrF,KAAA,CAAKa,KAAK,CAACwB,SAAS,CAAClC,MAAM;YACvCH,KAAA,CAAK2F,QAAQ,CAAC,EAAErB,SAAS,EAAEhD,gCAAe,CAACC,YAAY,CAAC8D,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/D;UACF;QACA,KAAKT,oDAAsB,CAACiB,mBAAmB,CAAE;YAC/C7F,KAAA,CAAK8F,eAAe,CAACxB,SAAS,EAAE,CAAC,CAAC,CAAC;YACnC;UACF;QACA,KAAKM,oDAAsB,CAACmB,oBAAoB,CAAE;YAChD/F,KAAA,CAAK8F,eAAe,CAACxB,SAAS,EAAE,CAAC,CAAC,CAAC;YACnC;UACF;QACA,KAAKM,oDAAsB,CAACoB,aAAa,CAAE;YACzChG,KAAA,CAAK2F,QAAQ,CAAC;cACZrB,SAAS,EAAEhD,gCAAe,CAAC2E,OAAO,CAAC,CAAC,EAAEjG,KAAA,CAAKa,KAAK,CAACwB,SAAS,CAAClC,MAAM;YACnE,CAAC,CAAC;YACF;UACF;QACA,KAAKyE,oDAAsB,CAACsB,sBAAsB,CAAE;YAClDlG,KAAA,CAAK2F,QAAQ,CAAC;cACZrB,SAAS,EAAEhD,gCAAe,CAAC6E,QAAQ,CAAC,CAAC,EAAE7B,SAAS,CAACiB,KAAK;YACxD,CAAC,CAAC;YACF;UACF;QACA,KAAKX,oDAAsB,CAACwB,oBAAoB,CAAE;YAChD,IAAMC,QAAQ,GAAGrG,KAAA,CAAKa,KAAK,CAACwB,SAAS,CAAClC,MAAM;YAC5CH,KAAA,CAAK2F,QAAQ,CAAC;cACZrB,SAAS,EAAEhD,gCAAe,CAAC2E,OAAO,CAAC3B,SAAS,CAACiB,KAAK,EAAEc,QAAQ;YAC9D,CAAC,CAAC;YACF;UACF;QACA,KAAKzB,oDAAsB,CAAC0B,KAAK,CAAE;YACjCtG,KAAA,CAAKkF,UAAU,CAACZ,SAAS,CAACiB,KAAK,EAAEjB,SAAS,CAACe,GAAG,EAAE,GAAG,CAAC;YACpD;UACF;MACF;IACF,CAAC,CAAArF,KAAA;;IAEOuG,WAAW,GAAG,YAAM,KAAAC,WAAA;MAC1B,IAAMC,IAAI,IAAAD,WAAA,GAAGxG,KAAA,CAAK8D,KAAK,qBAAV0C,WAAA,CAAYE,OAAO,CAAC,CAAC;MAClC,IAAI,CAACD,IAAI,IAAIA,IAAI,CAACE,WAAW,KAAKF,IAAI,CAACG,WAAW,EAAE;QAClD;MACF;MACA,IAAMC,GAAG,GAAG,CAAC;MACb,IAAMC,KAAK,GAAG,CAAC;;MAEf,IAAMxC,SAAS,GAAGtE,KAAA,CAAKa,KAAK,CAACyD,SAAS;MACtC,IAAMyC,QAAQ,GAAGzC,SAAS,CAACiB,KAAK,KAAKjB,SAAS,CAACe,GAAG;MAClD,IAAM2B,QAAQ,GAAGD,QAAQ,IAAIzC,SAAS,CAAC2C,SAAS,KAAK,SAAS,GAAG3C,SAAS,CAACe,GAAG,GAAGf,SAAS,CAACiB,KAAK;MAChG,IAAM2B,UAAU,GAAGlH,KAAA,CAAKa,KAAK,CAACwB,SAAS,CAAClC,MAAM;MAC9C,IAAMgH,SAAS,GAAGV,IAAI,CAACE,WAAW,GAAGO,UAAU;MAC/C,IAAME,KAAK,GAAGC,IAAI,CAACC,IAAI,CAACb,IAAI,CAACG,WAAW,GAAGO,SAAS,CAAC;MACrD,IAAMI,UAAU,GAAGF,IAAI,CAACC,IAAI,CAACb,IAAI,CAACe,UAAU,GAAGL,SAAS,CAAC;MACzD,IAAMM,QAAQ,GAAGF,UAAU,GAAGH,KAAK;;MAEnC,IAAIJ,QAAQ,GAAGO,UAAU,GAAGV,GAAG,EAAE;QAC/BJ,IAAI,CAACe,UAAU,GAAG,CAACR,QAAQ,GAAGF,KAAK,IAAIK,SAAS;MAClD;MACA,IAAIH,QAAQ,GAAGS,QAAQ,GAAGZ,GAAG,EAAE;QAC7BJ,IAAI,CAACe,UAAU,GAAG,CAACR,QAAQ,GAAGI,KAAK,GAAGN,KAAK,IAAIK,SAAS;MAC1D;IACF,CAAC,CAAAnH,KAAA;;IAEOuE,YAAY,GAAG,UAACT,KAAkB,EAAgB;MACxD,IAAMQ,SAAS,GAAGoD,0BAA0B,CAAC5D,KAAK,CAAC;MACnD,OAAO;QACLyB,KAAK,EAAEjB,SAAS,CAACiB,KAAK;QACtBF,GAAG,EAAEf,SAAS,CAACe,GAAG;QAClB4B,SAAS,EAAEjH,KAAA,CAAKa,KAAK,CAACyD,SAAS,CAAC2C;MAClC,CAAC;IACH,CAAC,CAAAjH,KAAA;;IAEOoF,UAAU,GAAG,UAACd,SAAoB,EAAEqD,IAAY,EAAK;MAC3D,IAAMX,QAAQ,GAAG7B,wCAAmB,CAACC,UAAU,CAACpF,KAAA,CAAKa,KAAK,CAACwB,SAAS,EAAEiC,SAAS,EAAEqD,IAAI,CAAC;MACtF3H,KAAA,CAAK2F,QAAQ,CAAC,EAAErB,SAAS,EAAEhD,gCAAe,CAACC,YAAY,CAACyF,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC,CAAAhH,KAAA;;IAEO8F,eAAe,GAAG,UAACxB,SAAoB,EAAEqD,IAAY,EAAK;MAChE,IAAMC,QAAQ,GAAGzC,wCAAmB,CAACW,eAAe,CAAC9F,KAAA,CAAKa,KAAK,CAACwB,SAAS,EAAEiC,SAAS,EAAEqD,IAAI,CAAC;MAC3F3H,KAAA,CAAK2F,QAAQ,CAAC,EAAErB,SAAS,EAAEsD,QAAQ,CAAC,CAAC,CAAC;IACxC,CAAC,CAAA5H,KAAA;;IAEOkF,UAAU,GAAG,UAACK,KAAa,EAAEF,GAAW,EAAEpE,KAAa,EAAK;MAClE,IAAM4G,MAAM,GAAG1C,wCAAmB,CAAC2C,UAAU,CAAC9H,KAAA,CAAKa,KAAK,CAACwB,SAAS,EAAEkD,KAAK,EAAEF,GAAG,EAAEpE,KAAK,EAAE;QACrFW,aAAa,EAAE5B,KAAA,CAAKyB,KAAK,CAACG,aAAa;QACvCV,cAAc,EAAElB,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACQ,cAAc;QAC9C6G,QAAQ,EAAE,CAAC/H,KAAA,CAAKyB,KAAK,CAACC;MACxB,CAAC,CAAC;MACF,IAAImG,MAAM,EAAE;QACV,IAAMxF,SAAS,GAAGwF,MAAM,CAAC5G,KAAK;QAC9B,IAAMqD,SAAS,GAAGhD,gCAAe,CAACC,YAAY,CAACsG,MAAM,CAACb,QAAQ,CAAC;QAC/DhH,KAAA,CAAK2F,QAAQ,CAAC,EAAEtD,SAAS,EAATA,SAAS,EAAEiC,SAAS,EAATA,SAAS,CAAC,CAAC,EAAE,YAAM;UAC5C,IAAM0D,WAAW,GAAGC,8BAAc,CAACC,KAAK,CAAC7F,SAAS,CAAC;UACnD,IAAIrC,KAAA,CAAKyB,KAAK,CAACR,KAAK,KAAK+G,WAAW,EAAE;YACpChI,KAAA,CAAKyB,KAAK,CAACqB,aAAa,CAACkF,WAAW,CAAC;UACvC;QACF,CAAC,CAAC;QACF,OAAO,IAAI;MACb;;MAEA,IAAIhI,KAAA,CAAK8D,KAAK,EAAE;QACd9D,KAAA,CAAK8D,KAAK,CAACqE,KAAK,CAAC,CAAC;MACpB;MACA,OAAO,KAAK;IACd,CAAC,CAAAnI,KAAA;;IAEOoI,gBAAgB,GAAG,UAACnH,KAAa,EAAK;MAC5C,IAAMqD,SAAS,GAAGtE,KAAA,CAAKqB,wBAAwB;MAC/C,IAAMgH,QAAQ,GAAGrI,KAAA,CAAKa,KAAK,CAACwB,SAAS;MACrC,IAAIiC,SAAS,CAACiB,KAAK,KAAKjB,SAAS,CAACe,GAAG,EAAE;QACrC,OAAOpE,KAAK,CAACqH,SAAS,CAAChE,SAAS,CAACiB,KAAK,EAAEtE,KAAK,CAACd,MAAM,IAAIkI,QAAQ,CAAClI,MAAM,GAAGmE,SAAS,CAACe,GAAG,CAAC,CAAC;MAC3F,CAAC,MAAM,IAAIpE,KAAK,CAACd,MAAM,GAAGkI,QAAQ,CAAClI,MAAM,EAAE;QACzC,OAAOc,KAAK,CAACsH,MAAM,CAACjE,SAAS,CAACiB,KAAK,EAAEtE,KAAK,CAACd,MAAM,GAAGkI,QAAQ,CAAClI,MAAM,CAAC;MACtE;MACA,OAAO,IAAI;IACb,CAAC,CAAAH,KAAA;;IAEO+C,iBAAiB,GAAG,UAAC9B,KAAa,EAAW;MACnD,IAAMqD,SAAS,GAAGtE,KAAA,CAAKqB,wBAAwB;MAC/C,IAAMmH,KAAK,GAAGxI,KAAA,CAAKoI,gBAAgB,CAACnH,KAAK,CAAC;MAC1C,IAAI,IAAAwH,oBAAa,EAACD,KAAK,CAAC,IAAI,CAACxI,KAAA,CAAKkF,UAAU,CAACZ,SAAS,CAACiB,KAAK,EAAEjB,SAAS,CAACe,GAAG,EAAEmD,KAAK,CAAC,EAAE;QACnFxI,KAAA,CAAK2F,QAAQ,CAAC,EAAErB,SAAS,EAATA,SAAS,CAAC,CAAC,CAAC;MAC9B;IACF,CAAC,CAAAtE,KAAA;;IAEOiD,WAAW,GAAG,UAACkB,KAA6C,EAAK;MACvE,IAAMuE,IAAI,GAAGvE,KAAK,CAACwE,aAAa,CAACC,OAAO,CAAC,MAAM,CAAC;MAChD,IAAMtE,SAAS,GAAGtE,KAAA,CAAKuE,YAAY,CAACJ,KAAK,CAACK,MAAM,CAAC;MACjDxE,KAAA,CAAKkF,UAAU,CAACZ,SAAS,CAACiB,KAAK,EAAEjB,SAAS,CAACe,GAAG,EAAEqD,IAAI,CAAC;MACrDvE,KAAK,CAACY,cAAc,CAAC,CAAC;IACxB,CAAC,CAAA/E,KAAA;;IAEOmD,UAAU,GAAG,UAACgB,KAA6C,EAAK;MACtE,IAAMG,SAAS,GAAGtE,KAAA,CAAKuE,YAAY,CAACJ,KAAK,CAACK,MAAM,CAAC;MACjD,IAAIF,SAAS,CAACiB,KAAK,KAAKjB,SAAS,CAACe,GAAG,EAAE;QACrC,IAAMiD,SAAS,GAAGtI,KAAA,CAAKa,KAAK,CAACwB,SAAS,CAACiG,SAAS,CAAChE,SAAS,CAACiB,KAAK,EAAEjB,SAAS,CAACe,GAAG,CAAC;QAChF,IAAMqD,IAAI,GAAGT,8BAAc,CAACY,kBAAkB,CAACP,SAAS,CAAC;QACzDnE,KAAK,CAACwE,aAAa,CAACG,OAAO,CAAC,MAAM,EAAEJ,IAAI,CAAC;MAC3C;MACAvE,KAAK,CAACY,cAAc,CAAC,CAAC;IACxB,CAAC,CAAA/E,KAAA;;IAEOqD,SAAS,GAAG,UAACc,KAA6C,EAAK;MACrE,IAAMG,SAAS,GAAGtE,KAAA,CAAKuE,YAAY,CAACJ,KAAK,CAACK,MAAM,CAAC;MACjD,IAAIF,SAAS,CAACiB,KAAK,KAAKjB,SAAS,CAACe,GAAG,EAAE;QACrC,IAAMiD,SAAS,GAAGtI,KAAA,CAAKa,KAAK,CAACwB,SAAS,CAACiG,SAAS,CAAChE,SAAS,CAACiB,KAAK,EAAEjB,SAAS,CAACe,GAAG,CAAC;QAChF,IAAMqD,IAAI,GAAGT,8BAAc,CAACY,kBAAkB,CAACP,SAAS,CAAC;QACzDnE,KAAK,CAACwE,aAAa,CAACG,OAAO,CAAC,MAAM,EAAEJ,IAAI,CAAC;QACzC1I,KAAA,CAAKkF,UAAU,CAACZ,SAAS,CAACiB,KAAK,EAAEjB,SAAS,CAACe,GAAG,EAAE,EAAE,CAAC;MACrD;MACAlB,KAAK,CAACY,cAAc,CAAC,CAAC;IACxB,CAAC,CAAA/E,KAAA;;IAEOyC,WAAW,GAAG,UAAC0B,KAAyC,EAAK;MACnE,IAAA4E,aAAA,GAA6D5E,KAAK,CAACK,MAAM,CAAjEwE,cAAc,GAAAD,aAAA,CAAdC,cAAc,CAAEC,YAAY,GAAAF,aAAA,CAAZE,YAAY,CAAEC,kBAAkB,GAAAH,aAAA,CAAlBG,kBAAkB;MACxD,IAAMC,WAAW,GAAGhF,KAAK,CAACK,MAAM,CAACvD,KAAK,CAACd,MAAM;;MAE7C,IAAMmE,SAAS,GAAG;QAChBiB,KAAK,EAAEyD,cAAc,KAAKC,YAAY,GAAGD,cAAc,IAAI,CAAC,GAAGA,cAAc,IAAIG,WAAW;QAC5F9D,GAAG,EAAE4D,YAAY,KAAKD,cAAc,GAAGC,YAAY,IAAI,CAAC,GAAGA,YAAY,IAAIE,WAAW;QACtFlC,SAAS,EAAGiC,kBAAkB,IAA2B;MAC3D,CAAC;;MAEDlJ,KAAA,CAAK2F,QAAQ,CAAC;QACZvE,OAAO,EAAE,IAAI;QACbkD,SAAS,EAATA;MACF,CAAC,CAAC;;MAEF,IAAItE,KAAA,CAAKyB,KAAK,CAACe,OAAO,EAAE;QACtBxC,KAAA,CAAKyB,KAAK,CAACe,OAAO,CAAC2B,KAAK,CAAC;MAC3B;IACF,CAAC,CAAAnE,KAAA;;IAEOkC,UAAU,GAAG,YAAM;MACzB,IAAMjB,KAAK,GAAGgH,8BAAc,CAACC,KAAK,CAAClI,KAAA,CAAKa,KAAK,CAACwB,SAAS,CAAC;;MAExDrC,KAAA,CAAK2F,QAAQ,KAAA7E,SAAA,CAAAC,OAAA;MACRf,KAAA,CAAKgB,QAAQ,CAACC,KAAK,EAAEjB,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACQ,cAAc,EAAElB,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACS,iBAAiB,CAAC;QAC1FC,OAAO,EAAE,KAAK;MACf,CAAC;IACJ,CAAC,CAAApB,KAAA;;IAEOuC,UAAU,GAAG,UAAC4B,KAAyC,EAAK;MAClEnE,KAAA,CAAKkC,UAAU,CAAC,CAAC;MACjBlC,KAAA,CAAKyB,KAAK,CAACa,MAAM,YAAjBtC,KAAA,CAAKyB,KAAK,CAACa,MAAM,CAAG6B,KAAK,CAAC;IAC5B,CAAC,CAAAnE,KAAA;;IAEO0D,QAAQ,GAAG,UAAC0F,OAAwB,EAAK;MAC/CpJ,KAAA,CAAK8D,KAAK,GAAGsF,OAAO;IACtB,CAAC,QAAApJ,KAAA,MAAAqJ,eAAA,CAAAtI,OAAA,EAAAlB,aAAA,EAAAE,oBAAA,MAAAuJ,MAAA,GAAAzJ,aAAA,CAAA0J,SAAA,CAAAD,MAAA,CAhXOE,aAAa,GAArB,SAAAA,cAAsB/H,KAAyB,EAAQ,CACrD,IAAAgI,gBAAO,EAACC,SAAS,CAACjI,KAAK,CAACR,KAAK,CAAC,EAAE,qDAAqD,CAAC,CACtF,IAAAwI,gBAAO,EACLhI,KAAK,CAACkI,SAAS,KAAKC,SAAS,mGAE/B,CAAC,CACD,IAAAH,gBAAO,EACL,CAAChI,KAAK,CAACG,aAAa,IAAI,CAAC,KAAKH,KAAK,CAACP,cAAc,IAAI,CAAC,CAAC,IAAI2I,0BAAe,EAC3E,0EAAwEA,0BAAe,4CAEzF,CAAC,CACH,CAAC,CAAAP,MAAA,CAYMQ,iBAAiB,GAAxB,SAAAA,kBAAA,EAAiC,CAC/B,IAAI,CAACN,aAAa,CAAC,IAAI,CAAC9I,QAAQ,CAAC,CAAC,CAAC,CACrC,CAAC,CAAA4I,MAAA,CAEMS,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAA6B,EAAEC,SAA6B,EAAE,CACtF,IAAAC,cAAA,GAAqD,IAAI,CAACxJ,QAAQ,CAAC,CAAC,CAA5DO,KAAK,GAAAiJ,cAAA,CAALjJ,KAAK,CAAEC,cAAc,GAAAgJ,cAAA,CAAdhJ,cAAc,CAAEC,iBAAiB,GAAA+I,cAAA,CAAjB/I,iBAAiB,CAChD,IAAI,CAACqI,aAAa,CAAC,IAAI,CAAC9I,QAAQ,CAAC,CAAC,CAAC,CAEnC,IACGgJ,SAAS,CAACzI,KAAK,CAAC,IAAIkJ,MAAM,CAAClJ,KAAK,CAAC,KAAKgH,8BAAc,CAACC,KAAK,CAAC+B,SAAS,CAAC5H,SAAS,CAAC,IAChF2H,SAAS,CAAC9I,cAAc,KAAKA,cAAc,EAC3C,CACA,IAAI,CAACyE,QAAQ,CAAC,IAAI,CAAC3E,QAAQ,CAACC,KAAK,EAAEC,cAAc,EAAEC,iBAAiB,CAAC,CAAC,CACxE,CACA,IAAI,IAAAsH,oBAAa,EAACuB,SAAS,CAAC/I,KAAK,CAAC,IAAI,IAAAmJ,iBAAU,EAACnJ,KAAK,CAAC,EAAE,CACvD,IAAI,CAAC0E,QAAQ,CAAC,EAAEtD,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAClC,CACA,IAAI,IAAI,CAACxB,KAAK,CAACO,OAAO,IAAI,IAAI,CAAC0C,KAAK,EAAE,CACpC,IAAAuG,qBAAA,GAAuB,IAAI,CAACxJ,KAAK,CAACyD,SAAS,CAAnCiB,KAAK,GAAA8E,qBAAA,CAAL9E,KAAK,CAAEF,GAAG,GAAAgF,qBAAA,CAAHhF,GAAG,CAElB,IAAI,CAACvB,KAAK,CAACwG,iBAAiB,CAAC/E,KAAK,EAAEF,GAAG,CAAC,CAC1C,CACA,IAAI4E,SAAS,CAAC3F,SAAS,KAAK,IAAI,CAACzD,KAAK,CAACyD,SAAS,EAAE,CAChD,IAAI,CAACiC,WAAW,CAAC,CAAC,CACpB,CACF,CAAC,CAAA+C,MAAA,CAEMiB,MAAM,GAAb,SAAAA,OAAA,EAAgB,CACd,oBACEnM,MAAA,CAAA2C,OAAA,CAAAgB,aAAA,CAAClD,cAAA,CAAA2L,aAAa,MAAA1J,SAAA,CAAAC,OAAA,IAAC0J,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAAChK,QAAQ,CAAC,CAAC,GAC9D,IAAI,CAACc,UACO,CAAC,CAEpB,CAAC,CAAA8H,MAAA,CAiDOtI,QAAQ,GAAhB,SAAAA,SAAiBC,KAAuB,EAAEC,cAAgC,EAAEC,iBAA0B,EAAE,CACtG,OAAO,EACLkB,SAAS,EAAE4F,8BAAc,CAAC0C,MAAM,CAAC1J,KAAK,EAAE,EAAEC,cAAc,EAAdA,cAAc,EAAEC,iBAAiB,EAAjBA,iBAAiB,CAAC,CAAC,CAAC,EAC9EmD,SAAS,EAAEhD,gCAAe,CAACC,YAAY,CAAC,CAAC,CAAC,CAC5C,CAAC,CACH,CAAC,CAAA+H,MAAA,CAEOpF,qBAAqB,GAA7B,SAAAA,sBAA8BC,KAAyC,EAAE,CACvE,IAAMG,SAAS,GAAGoD,0BAA0B,CAACvD,KAAK,CAACK,MAAM,CAAC,CAC1D,IAAMoG,UAAU,GAAGzF,wCAAmB,CAAC0F,kBAAkB,CAAC,IAAI,CAAChK,KAAK,CAACwB,SAAS,EAAEiC,SAAS,CAAC,CAC1F,IAAI,CAACqB,QAAQ,CAAC,EAAErB,SAAS,EAAEsG,UAAU,CAAC,CAAC,CAAC,CAC1C,CAAC,QAAA/K,aAAA,GAjIgCiL,cAAK,CAACC,aAAa,GAAAtL,cAAA,CACtCuL,mBAAmB,GAAG,eAAe,EAAAvL,cAAA,CACrCwL,WAAW,GAAG,eAAe,EAAAxL,cAAA,CAE7BmB,YAAY,GAAiB,EACzCwB,KAAK,EAAE,OAAO,EACdlB,cAAc,EAAE,CAAC,EACjBC,iBAAiB,EAAE,KAAK,EACxBF,KAAK,EAAE,IAAI,EACXiK,SAAS,EAAE,SAAS,CACtB,CAAC,EAAAzL,cAAA,MAAAD,MAAA;;;AAsXH,SAASkI,0BAA0BA,CAAC5D,KAAkB,EAAa,KAAAqH,qBAAA,EAAAC,mBAAA;EACjE,IAAI,CAAC,IAAAC,0BAAY,EAACvH,KAAK,EAAEwH,0BAAY,CAACC,gBAAgB,CAAC,EAAE;IACvD,MAAM,IAAIC,KAAK,CAAC,+BAA+B,CAAC;EAClD;;EAEA,OAAO;IACLjG,KAAK,GAAA4F,qBAAA,GAAErH,KAAK,CAACkF,cAAc,YAAAmC,qBAAA,GAAI,CAAC;IAChC9F,GAAG,GAAA+F,mBAAA,GAAEtH,KAAK,CAACmF,YAAY,YAAAmC,mBAAA,GAAI,CAAC;IAC5BnE,SAAS,EAAEnD,KAAK,CAACoF;EACnB,CAAC;AACH;;AAEA,SAASQ,SAASA,CAACzI,KAAc,EAA4B;EAC3D,OAAO,CAACwK,KAAK,CAACC,UAAU,CAACzK,KAAe,CAAC,CAAC,IAAI0K,QAAQ,CAAC1K,KAAe,CAAC;AACzE;;AAEA,IAAM2C,cAAc,GAAG,SAAjBA,cAAcA,CAAInC,KAAyB,EAAK;EACpD,IAAI,IAAA2I,iBAAU,EAAC3I,KAAK,CAACkC,WAAW,CAAC,EAAE;IACjC,OAAOsE,8BAAc,CAAC0C,MAAM,CAAC,CAAC,EAAE;MAC9BzJ,cAAc,EAAEO,KAAK,CAACP,cAAc;MACpCC,iBAAiB,EAAEM,KAAK,CAACN;IAC3B,CAAC,CAAC;EACJ;;EAEA,OAAOM,KAAK,CAACkC,WAAW;AAC1B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_warning","_lodash","_globalObject","_utils","_client","_Input","_CommonWrapper","_rootNode","_createPropsGetter","_isInstanceOf","_FocusControlWrapper","_constants","_SelectionHelper","_CurrencyHelper","_CurrencyInputHelper","_CurrencyInputKeyboardActions","_excluded","_class","_CurrencyInput","CurrencyInputDataTids","exports","root","CurrencyInput","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","_extends2","default","getState","value","fractionDigits","hideTrailingZeros","focused","tempSelectionForOnChange","SelectionHelper","fromPosition","renderMain","props","signed","onSubmit","integerDigits","rest","_objectWithoutPropertiesLoose2","createElement","FocusControlWrapper","onBlurWhenDisabled","resetFocus","Input","align","formatted","onBlur","handleBlur","onFocus","handleFocus","onMouseUp","handleMouseUp","onKeyDown","handleKeyDown","onValueChange","handleValueChange","onPaste","handlePaste","onCopy","handleCopy","onCut","handleCut","onMouseEnter","onMouseLeave","onMouseOver","ref","refInput","placeholder","getPlaceholder","focus","input","blur","debouncedSetSelectionFromEvent","debounce","setSelectionFromEvent","event","isIE11","persist","selection","getSelection","target","defaultPrevented","action","extractAction","CURRENCY_INPUT_ACTIONS","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","CurrencyInputHelper","moveCursor","end","Delete","start","MoveCursorLeft","MoveCursorRight","Home","setState","End","ExtendSelectionLeft","extendSelection","ExtendSelectionRight","FullSelection","forward","ExtendSelectionToStart","backward","ExtendSelectionToEnd","inputEnd","Comma","scrollInput","_this$input","node","getNode","scrollWidth","clientWidth","PAD","SHIFT","selected","position","direction","charsCount","charWidth","frame","Math","ceil","frameStart","scrollLeft","frameEnd","getInputSelectionFromEvent","step","extended","result","safeInsert","unsigned","parsedValue","CurrencyHelper","parse","blink","getOnChangeDelta","oldValue","substring","substr","delta","isNonNullable","data","clipboardData","getData","formatForClipboard","setData","_event$target","selectionStart","selectionEnd","selectionDirection","valueLength","element","_inheritsLoose2","_proto","prototype","validateProps","warning","isNumeric","isNullable","maxLength","undefined","MAX_SAFE_DIGITS","componentDidMount","componentDidUpdate","prevProps","prevState","_this$getProps","Number","_this$state$selection","setSelectionRange","render","CommonWrapper","rootNodeRef","setRootNode","format","normilized","normalizeSelection","React","PureComponent","__KONTUR_REACT_UI__","displayName","inputMode","_input$selectionStart","_input$selectionEnd","isInstanceOf","globalObject","HTMLInputElement","Error","isNaN","parseFloat","isFinite"],"sources":["CurrencyInput.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\nimport debounce from 'lodash.debounce';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\n\nimport { MAX_SAFE_DIGITS } from './constants';\nimport type { Selection, SelectionDirection } from './SelectionHelper';\nimport { SelectionHelper } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CurrencyInputHelper } from './CurrencyInputHelper';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions';\n\nexport interface CurrencyInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n Omit<InputProps, 'showClearIcon'>,\n {\n /** Задаёт значение поля. */\n value?: Nullable<number>;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Устанавливает минимальное количество отображаемых знаков после запятой. Если fractionDigits=15, то в целой части допускается только **0**. */\n fractionDigits?: Nullable<number>;\n\n /** Разрешает вводить в поле символ минуса для отрицательных значений. */\n signed?: boolean;\n\n /** Задаёт допустимое количество цифр целой части до запятой.\n * Если передан **0**, то в целой части допускается только **0**. */\n integerDigits?: Nullable<number>;\n\n /** Задаёт функцию, которая вызывается при изменении `value`. */\n onValueChange: (value: Nullable<number>) => void;\n\n /** Задаёт функцию, которая вызывается при отправке формы. */\n onSubmit?: () => void;\n }\n > {}\n\nexport interface CurrencyInputState {\n formatted: string;\n selection: Selection;\n focused: boolean;\n}\n\nexport const CurrencyInputDataTids = {\n root: 'CurrencyInput__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<CurrencyInputProps, 'align' | 'fractionDigits' | 'hideTrailingZeros' | 'value' | 'inputMode'>\n>;\n\n/** Поле для денежных сумм. */\n@rootNode\nexport class CurrencyInput extends React.PureComponent<CurrencyInputProps, CurrencyInputState> {\n public static __KONTUR_REACT_UI__ = 'CurrencyInput';\n public static displayName = 'CurrencyInput';\n\n public static defaultProps: DefaultProps = {\n align: 'right',\n fractionDigits: 2,\n hideTrailingZeros: false,\n value: null,\n inputMode: 'decimal',\n };\n\n private getProps = createPropsGetter(CurrencyInput.defaultProps);\n private validateProps(props: CurrencyInputProps): void {\n warning(\n isNumeric(props.value) || isNullable(props.value),\n '[CurrencyInput]: Prop `value` is not a valid number. Received value is `' + props.value + '`.',\n );\n warning(\n props.maxLength === undefined,\n `[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'`,\n );\n warning(\n (props.integerDigits || 0) + (props.fractionDigits || 0) <= MAX_SAFE_DIGITS,\n `[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee CurrencyInput documentation`,\n );\n }\n\n public state: CurrencyInputState = {\n ...this.getState(this.getProps().value, this.getProps().fractionDigits, this.getProps().hideTrailingZeros),\n focused: false,\n };\n\n private input: Nullable<Input>;\n private tempSelectionForOnChange: Selection = SelectionHelper.fromPosition(0);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount(): void {\n this.validateProps(this.getProps());\n }\n\n public componentDidUpdate(prevProps: CurrencyInputProps, prevState: CurrencyInputState) {\n const { value, fractionDigits, hideTrailingZeros } = this.getProps();\n this.validateProps(this.getProps());\n\n if (\n (isNumeric(value) && Number(value) !== CurrencyHelper.parse(prevState.formatted)) ||\n prevProps.fractionDigits !== fractionDigits\n ) {\n this.setState(this.getState(value, fractionDigits, hideTrailingZeros));\n }\n if (isNonNullable(prevProps.value) && isNullable(value)) {\n this.setState({ formatted: '' });\n }\n if (this.state.focused && this.input) {\n const { start, end } = this.state.selection;\n\n this.input.setSelectionRange(start, end);\n }\n if (prevState.selection !== this.state.selection) {\n this.scrollInput();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<CurrencyInputProps>) => {\n const { fractionDigits, signed, onSubmit, integerDigits, hideTrailingZeros, ...rest } = props;\n\n return (\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <Input\n data-tid={CurrencyInputDataTids.root}\n {...rest}\n align={this.getProps().align}\n value={this.state.formatted}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onMouseUp={this.handleMouseUp}\n onKeyDown={this.handleKeyDown}\n onValueChange={this.handleValueChange}\n onPaste={this.handlePaste}\n onCopy={this.handleCopy}\n onCut={this.handleCut}\n aria-label={this.props['aria-label']}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n ref={this.refInput}\n placeholder={this.state.focused ? '' : getPlaceholder(props)}\n />\n </FocusControlWrapper>\n );\n };\n\n /** Программно устанавливает фокус на поле.\n * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getState(value: Nullable<number>, fractionDigits: Nullable<number>, hideTrailingZeros: boolean) {\n return {\n formatted: CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros }),\n selection: SelectionHelper.fromPosition(0),\n };\n }\n\n private setSelectionFromEvent(event: React.MouseEvent<HTMLInputElement>) {\n const selection = getInputSelectionFromEvent(event.target);\n const normilized = CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);\n this.setState({ selection: normilized });\n }\n\n // for IE11\n private readonly debouncedSetSelectionFromEvent = debounce(this.setSelectionFromEvent, 300);\n\n private handleMouseUp = (event: React.MouseEvent<HTMLInputElement>) => {\n if (isIE11) {\n event.persist();\n this.debouncedSetSelectionFromEvent(event);\n } else {\n this.setSelectionFromEvent(event);\n }\n };\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n this.tempSelectionForOnChange = selection;\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n const action = extractAction(event);\n\n if (action === CURRENCY_INPUT_ACTIONS.Ignore) {\n return;\n }\n\n if (action !== CURRENCY_INPUT_ACTIONS.Unknown) {\n event.preventDefault();\n }\n\n switch (action) {\n case CURRENCY_INPUT_ACTIONS.Submit: {\n if (this.props.onSubmit) {\n this.props.onSubmit();\n }\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Backspace: {\n this.inputValue(CurrencyInputHelper.moveCursor(this.state.formatted, selection, -1), selection.end, '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Delete: {\n this.inputValue(selection.start, CurrencyInputHelper.moveCursor(this.state.formatted, selection, +1), '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorLeft: {\n this.moveCursor(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorRight: {\n this.moveCursor(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Home: {\n this.setState({ selection: SelectionHelper.fromPosition(0) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.End: {\n const end = this.state.formatted.length;\n this.setState({ selection: SelectionHelper.fromPosition(end) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionLeft: {\n this.extendSelection(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionRight: {\n this.extendSelection(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.FullSelection: {\n this.setState({\n selection: SelectionHelper.forward(0, this.state.formatted.length),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToStart: {\n this.setState({\n selection: SelectionHelper.backward(0, selection.start),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToEnd: {\n const inputEnd = this.state.formatted.length;\n this.setState({\n selection: SelectionHelper.forward(selection.start, inputEnd),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Comma: {\n this.inputValue(selection.start, selection.end, ',');\n return;\n }\n }\n };\n\n private scrollInput = () => {\n const node = this.input?.getNode();\n if (!node || node.scrollWidth === node.clientWidth) {\n return;\n }\n const PAD = 1;\n const SHIFT = 3;\n\n const selection = this.state.selection;\n const selected = selection.start !== selection.end;\n const position = selected && selection.direction === 'forward' ? selection.end : selection.start;\n const charsCount = this.state.formatted.length;\n const charWidth = node.scrollWidth / charsCount;\n const frame = Math.ceil(node.clientWidth / charWidth);\n const frameStart = Math.ceil(node.scrollLeft / charWidth);\n const frameEnd = frameStart + frame;\n\n if (position < frameStart + PAD) {\n node.scrollLeft = (position - SHIFT) * charWidth;\n }\n if (position > frameEnd - PAD) {\n node.scrollLeft = (position - frame + SHIFT) * charWidth;\n }\n };\n\n private getSelection = (input: EventTarget): Selection => {\n const selection = getInputSelectionFromEvent(input);\n return {\n start: selection.start,\n end: selection.end,\n direction: this.state.selection.direction,\n };\n };\n\n private moveCursor = (selection: Selection, step: number) => {\n const position = CurrencyInputHelper.moveCursor(this.state.formatted, selection, step);\n this.setState({ selection: SelectionHelper.fromPosition(position) });\n };\n\n private extendSelection = (selection: Selection, step: number) => {\n const extended = CurrencyInputHelper.extendSelection(this.state.formatted, selection, step);\n this.setState({ selection: extended });\n };\n\n private inputValue = (start: number, end: number, value: string) => {\n const result = CurrencyInputHelper.safeInsert(this.state.formatted, start, end, value, {\n integerDigits: this.props.integerDigits,\n fractionDigits: this.getProps().fractionDigits,\n unsigned: !this.props.signed,\n });\n if (result) {\n const formatted = result.value;\n const selection = SelectionHelper.fromPosition(result.position);\n this.setState({ formatted, selection }, () => {\n const parsedValue = CurrencyHelper.parse(formatted);\n if (this.props.value !== parsedValue) {\n this.props.onValueChange(parsedValue);\n }\n });\n return true;\n }\n\n if (this.input) {\n this.input.blink();\n }\n return false;\n };\n\n private getOnChangeDelta = (value: string) => {\n const selection = this.tempSelectionForOnChange;\n const oldValue = this.state.formatted;\n if (selection.start !== selection.end) {\n return value.substring(selection.start, value.length - (oldValue.length - selection.end));\n } else if (value.length > oldValue.length) {\n return value.substr(selection.start, value.length - oldValue.length);\n }\n return null;\n };\n\n private handleValueChange = (value: string): void => {\n const selection = this.tempSelectionForOnChange;\n const delta = this.getOnChangeDelta(value);\n if (isNonNullable(delta) && !this.inputValue(selection.start, selection.end, delta)) {\n this.setState({ selection });\n }\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const data = event.clipboardData.getData('text');\n const selection = this.getSelection(event.target);\n this.inputValue(selection.start, selection.end, data);\n event.preventDefault();\n this.props.onPaste?.(event);\n };\n\n private handleCopy = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n }\n event.preventDefault();\n };\n\n private handleCut = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n this.inputValue(selection.start, selection.end, '');\n }\n event.preventDefault();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n const { selectionStart, selectionEnd, selectionDirection } = event.target;\n const valueLength = event.target.value.length;\n\n const selection = {\n start: selectionStart !== selectionEnd ? selectionStart || 0 : selectionStart || valueLength,\n end: selectionEnd !== selectionStart ? selectionEnd || 0 : selectionEnd || valueLength,\n direction: (selectionDirection as SelectionDirection) || 'none',\n };\n\n this.setState({\n focused: true,\n selection,\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private resetFocus = () => {\n const value = CurrencyHelper.parse(this.state.formatted);\n\n this.setState({\n ...this.getState(value, this.getProps().fractionDigits, this.getProps().hideTrailingZeros),\n focused: false,\n });\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(event);\n };\n\n private refInput = (element: Nullable<Input>) => {\n this.input = element;\n };\n}\n\nfunction getInputSelectionFromEvent(input: EventTarget): Selection {\n if (!isInstanceOf(input, globalObject.HTMLInputElement)) {\n throw new Error('input is not HTMLInputElement');\n }\n\n return {\n start: input.selectionStart ?? 0,\n end: input.selectionEnd ?? 0,\n direction: input.selectionDirection as SelectionDirection,\n };\n}\n\nfunction isNumeric(value: unknown): value is number | string {\n return !isNaN(parseFloat(value as string)) && isFinite(value as number);\n}\n\nconst getPlaceholder = (props: CurrencyInputProps) => {\n if (isNullable(props.placeholder)) {\n return CurrencyHelper.format(0, {\n fractionDigits: props.fractionDigits,\n hideTrailingZeros: props.hideTrailingZeros,\n });\n }\n\n return props.placeholder;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -8,22 +8,25 @@ import type { DefaultizedProps } from '../../lib/createPropsGetter';
8
8
  import type { Override } from '../../typings/utility-types';
9
9
  import type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';
10
10
  import type { TGetRootNode } from '../../lib/rootNode';
11
- export interface FxInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Override<CurrencyInputProps, {
12
- /** Устанавливает авто-режим. */
11
+ import type { MaskedInputProps } from '../MaskedInput';
12
+ export interface FxInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Pick<Partial<MaskedInputProps>, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>, Override<Omit<CurrencyInputProps, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>, {
13
+ /** Управляет видимостью кнопки Restore:
14
+ * - true — кнопка Restore не отображается. Значение в поле является автоматически рассчитанным.
15
+ * - false — кнопка Restore отображается в поле. Значение в поле считается отредактированным. */
13
16
  auto?: boolean;
14
- /** Задает тип инпута */
17
+ /** Задаёт тип поля. */
15
18
  type?: 'currency' | InputProps['type'];
16
- /** Задает функцию, которая вызывается при нажатии на кнопку Restore. */
19
+ /** Задаёт функцию, которая вызывается при нажатии на кнопку Restore. */
17
20
  onRestore?: () => void;
18
- /** Задает функцию, вызывающуюся при изменении value. */
21
+ /** Задаёт функцию, вызывающуюся при изменении value. */
19
22
  onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];
20
- /** Задает значение инпута. */
23
+ /** Задаёт значение поля. */
21
24
  value?: string | number;
22
- /** Задает ref инпута. */
25
+ /** Задаёт ref поля. */
23
26
  refInput?: (element: CurrencyInput | Input | null) => void;
24
27
  /** Убирает лишние нули после запятой. */
25
28
  hideTrailingZeros?: boolean;
26
- /** Задает атрибут aria-label кнопке восстановления (restore button). */
29
+ /** Задаёт атрибут aria-label кнопке Restore. */
27
30
  buttonAriaLabel?: AriaAttributes['aria-label'];
28
31
  /** @ignore */
29
32
  corners?: React.CSSProperties;
@@ -32,14 +35,11 @@ export interface FxInputProps extends Pick<AriaAttributes, 'aria-label'>, Common
32
35
  export declare const FxInputDataTids: {
33
36
  readonly root: "FxInput__root";
34
37
  };
35
- type DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value'>>;
38
+ type DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value' | 'auto'>>;
36
39
  type DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;
37
- /**
38
- * Автополе `FxInput`.
40
+ /** В автополе можно вывести автоматически рассчитанное цифровое значение. В него можно передавать итог любого вычисления, например, сумму других полей, процент или более сложную функцию.
39
41
  *
40
- * Используйте `FxInput`, если поле вычисляемое и вы рассчитали значение.
41
- *
42
- * Принимает все свойства `Input`'a.
42
+ * У поля есть иконка математической формулы и кнопка Restore — с её помощью пользователь может вернуть исходное значение, если редактировал поле. Видимость кнопки и поведение при нажатии нужно прописывать в компоненте самостоятельно.
43
43
  */
44
44
  export declare class FxInput extends React.Component<FxInputProps> {
45
45
  static __KONTUR_REACT_UI__: string;
@@ -51,16 +51,23 @@ export declare class FxInput extends React.Component<FxInputProps> {
51
51
  private getProps;
52
52
  getRootNode: TGetRootNode;
53
53
  private setRootNode;
54
+ private featureFlags;
55
+ private validateProps;
56
+ componentDidMount(): void;
57
+ componentDidUpdate(): void;
54
58
  render(): React.JSX.Element;
55
59
  renderMain: (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => React.JSX.Element;
56
- /**
60
+ /** Программно устанавливает фокус на поле.
61
+ * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
57
62
  * @public
58
63
  */
59
64
  focus: () => void;
60
- /**
65
+ /** Программно снимает фокус с кнопки.
61
66
  * @public
62
67
  */
63
68
  blur: () => void;
64
69
  private refInput;
70
+ private getLeftIcon;
71
+ private getInput;
65
72
  }
66
73
  export {};