@skbkontur/react-ui 5.6.1-9a162.0 → 5.6.1

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 (44) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +3 -3
  3. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/Button/Button.d.ts +7 -7
  5. package/cjs/components/Button/Button.js.map +1 -1
  6. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +4 -4
  7. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  8. package/cjs/components/FxInput/FxInput.d.ts +5 -5
  9. package/cjs/components/FxInput/FxInput.js.map +1 -1
  10. package/cjs/components/Input/Input.d.ts +6 -6
  11. package/cjs/components/Input/Input.js.map +1 -1
  12. package/cjs/components/Input/InputLayout/InputLayout.d.ts +1 -2
  13. package/cjs/components/Input/InputLayout/InputLayout.js +17 -20
  14. package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
  15. package/cjs/components/Link/Link.d.ts +3 -3
  16. package/cjs/components/Link/Link.js.map +1 -1
  17. package/cjs/components/Loader/Loader.styles.js +10 -1
  18. package/cjs/components/Loader/Loader.styles.js.map +1 -1
  19. package/cjs/components/MaskedInput/MaskedInput.d.ts +3 -3
  20. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  21. package/cjs/components/RadioGroup/RadioGroup.d.ts +9 -9
  22. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  23. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  24. package/components/Autocomplete/Autocomplete.d.ts +3 -3
  25. package/components/Button/Button/Button.js.map +1 -1
  26. package/components/Button/Button.d.ts +7 -7
  27. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  28. package/components/CurrencyInput/CurrencyInput.d.ts +4 -4
  29. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  30. package/components/FxInput/FxInput.d.ts +5 -5
  31. package/components/Input/Input/Input.js.map +1 -1
  32. package/components/Input/Input.d.ts +6 -6
  33. package/components/Input/InputLayout/InputLayout/InputLayout.js +2 -3
  34. package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
  35. package/components/Input/InputLayout/InputLayout.d.ts +1 -2
  36. package/components/Link/Link/Link.js.map +1 -1
  37. package/components/Link/Link.d.ts +3 -3
  38. package/components/Loader/Loader.styles/Loader.styles.js +1 -1
  39. package/components/Loader/Loader.styles/Loader.styles.js.map +1 -1
  40. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  41. package/components/MaskedInput/MaskedInput.d.ts +3 -3
  42. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  43. package/components/RadioGroup/RadioGroup.d.ts +9 -9
  44. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","warning","debounce","globalObject","isNonNullable","isNullable","isIE11","Input","CommonWrapper","rootNode","createPropsGetter","isInstanceOf","FocusControlWrapper","MAX_SAFE_DIGITS","SelectionHelper","CurrencyHelper","CurrencyInputHelper","CURRENCY_INPUT_ACTIONS","extractAction","CurrencyInputDataTids","root","CurrencyInput","_class","_CurrencyInput","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","_extends","getState","value","fractionDigits","hideTrailingZeros","focused","tempSelectionForOnChange","fromPosition","renderMain","props","signed","onSubmit","integerDigits","rest","_objectWithoutPropertiesLoose","_excluded","createElement","onBlurWhenDisabled","resetFocus","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","setSelectionFromEvent","event","persist","selection","getSelection","target","defaultPrevented","action","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","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","parse","blink","getOnChangeDelta","oldValue","substring","substr","delta","data","clipboardData","getData","formatForClipboard","setData","_event$target","selectionStart","selectionEnd","selectionDirection","valueLength","element","_inheritsLoose","_proto","prototype","validateProps","isNumeric","maxLength","undefined","componentDidMount","componentDidUpdate","prevProps","prevState","_this$getProps","Number","_this$state$selection","setSelectionRange","render","rootNodeRef","setRootNode","format","normilized","normalizeSelection","PureComponent","__KONTUR_REACT_UI__","displayName","inputMode","_input$selectionStart","_input$selectionEnd","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":[]}
1
+ {"version":3,"names":["React","warning","debounce","globalObject","isNonNullable","isNullable","isIE11","Input","CommonWrapper","rootNode","createPropsGetter","isInstanceOf","FocusControlWrapper","MAX_SAFE_DIGITS","SelectionHelper","CurrencyHelper","CurrencyInputHelper","CURRENCY_INPUT_ACTIONS","extractAction","CurrencyInputDataTids","root","CurrencyInput","_class","_CurrencyInput","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","_extends","getState","value","fractionDigits","hideTrailingZeros","focused","tempSelectionForOnChange","fromPosition","renderMain","props","signed","onSubmit","integerDigits","rest","_objectWithoutPropertiesLoose","_excluded","createElement","onBlurWhenDisabled","resetFocus","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","setSelectionFromEvent","event","persist","selection","getSelection","target","defaultPrevented","action","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","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","parse","blink","getOnChangeDelta","oldValue","substring","substr","delta","data","clipboardData","getData","formatForClipboard","setData","_event$target","selectionStart","selectionEnd","selectionDirection","valueLength","element","_inheritsLoose","_proto","prototype","validateProps","isNumeric","maxLength","undefined","componentDidMount","componentDidUpdate","prevProps","prevState","_this$getProps","Number","_this$state$selection","setSelectionRange","render","rootNodeRef","setRootNode","format","normilized","normalizeSelection","PureComponent","__KONTUR_REACT_UI__","displayName","inputMode","_input$selectionStart","_input$selectionEnd","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":[]}
@@ -6,7 +6,7 @@ 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;
@@ -14,12 +14,12 @@ export interface CurrencyInputProps extends Pick<AriaAttributes, 'aria-label'>,
14
14
  fractionDigits?: Nullable<number>;
15
15
  /** Разрешает вводить в поле символ минуса для отрицательных значений. */
16
16
  signed?: boolean;
17
- /** Задаёт допустимое количество цифр целой части до запятой.
17
+ /** Допустимое количество цифр целой части до запятой.
18
18
  * Если передан **0**, то в целой части допускается только **0**. */
19
19
  integerDigits?: Nullable<number>;
20
- /** Задаёт функцию, которая вызывается при изменении `value`. */
20
+ /** Событие изменения `value`. */
21
21
  onValueChange: (value: Nullable<number>) => void;
22
- /** Задаёт функцию, которая вызывается при отправке формы. */
22
+ /** Событие отправки формы. */
23
23
  onSubmit?: () => void;
24
24
  }> {
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","warning","Group","Input","CurrencyInput","createPropsGetter","CommonWrapper","rootNode","ThemeContext","MaskedInput","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","withSize","MathFunctionIcon","FxInputRestoreBtn","FxInputDataTids","root","FxInput","_class","_FxInput","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","input","getProps","defaultProps","renderMain","props","button","auto","createElement","size","onRestore","corners","disabled","borderless","buttonAriaLabel","width","getInput","focus","blur","refInput","element","getLeftIcon","iconSizes","small","parseInt","theme","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","type","value","_size","mask","maskChar","formatChars","alwaysShowMask","signed","integerDigits","fractionDigits","hideTrailingZeros","originalCorners","rest","_objectWithoutPropertiesLoose","_excluded","_extends","borderBottomLeftRadius","borderTopLeftRadius","commonInputProps","ref","onValueChange","featureFlags","fxInputUseMaskedInput","leftIcon","align","_inheritsLoose","_proto","prototype","validateProps","undefined","componentDidMount","componentDidUpdate","render","_this2","Consumer","flags","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"sources":["FxInput.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { Group } from '../Group';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport type { CurrencyInputProps } from '../CurrencyInput';\nimport { CurrencyInput } from '../CurrencyInput';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { 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 { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { MaskedInputProps } from '../MaskedInput';\nimport { MaskedInput } from '../MaskedInput';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { MathFunctionIcon } from './MathFunctionIcon';\nimport { FxInputRestoreBtn } from './FxInputRestoreBtn';\n\nexport interface FxInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Pick<Partial<MaskedInputProps>, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>,\n Override<\n Omit<CurrencyInputProps, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>,\n {\n /** Управляет видимостью кнопки Restore:\n * - true — кнопка Restore не отображается. Значение в поле является автоматически рассчитанным.\n * - false — кнопка Restore отображается в поле. Значение в поле считается отредактированным. */\n auto?: boolean;\n\n /** Задаёт тип поля. */\n type?: 'currency' | InputProps['type'];\n\n /** Задаёт функцию, которая вызывается при нажатии на кнопку Restore. */\n onRestore?: () => void;\n\n /** Задаёт функцию, вызывающуюся при изменении value. */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n\n /** Задаёт значение поля. */\n value?: string | number;\n\n /** Задаёт ref поля. */\n refInput?: (element: CurrencyInput | Input | null) => void;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Задаёт атрибут aria-label кнопке Restore. */\n buttonAriaLabel?: AriaAttributes['aria-label'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n }\n > {}\n\nexport const FxInputDataTids = {\n root: 'FxInput__root',\n} as const;\n\ntype DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value' | 'auto'>>;\ntype DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;\n\n/** В автополе можно вывести автоматически рассчитанное цифровое значение. В него можно передавать итог любого вычисления, например, сумму других полей, процент или более сложную функцию.\n *\n * У поля есть иконка математической формулы и кнопка Restore — с её помощью пользователь может вернуть исходное значение, если редактировал поле. Видимость кнопки и поведение при нажатии нужно прописывать в компоненте самостоятельно.\n */\n@rootNode\n@withSize\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n public static displayName = 'FxInput';\n\n public static defaultProps: DefaultProps = {\n width: 250,\n type: 'text',\n value: '',\n auto: false,\n };\n\n private theme!: Theme;\n private size!: SizeProp;\n private input: Input | CurrencyInput | null = null;\n\n private getProps = createPropsGetter(FxInput.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private featureFlags!: ReactUIFeatureFlags;\n\n private validateProps(props: FxInputProps) {\n warning(\n props.type !== 'currency' && props.mask !== undefined,\n '[FxInput]: Prop \"mask\" is not supported when type=\"currency\"',\n );\n }\n\n public componentDidMount() {\n this.validateProps(this.getProps());\n }\n\n public componentDidUpdate() {\n this.validateProps(this.getProps());\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => {\n const button = props.auto ? null : (\n <FxInputRestoreBtn\n size={props.size}\n onRestore={props.onRestore}\n corners={props.corners}\n disabled={props.disabled}\n borderless={props.borderless}\n aria-label={props.buttonAriaLabel}\n />\n );\n\n return (\n <Group data-tid={FxInputDataTids.root} width={props.width}>\n {button}\n {this.getInput(props)}\n </Group>\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 refInput = (element: Input | CurrencyInput | null) => {\n this.input = element;\n\n if (this.props.refInput) {\n this.props.refInput(this.input);\n }\n };\n\n private getLeftIcon = (props: FxInputProps) => {\n if (!props.auto) {\n return null;\n }\n\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.inputIconSizeSmall),\n medium: parseInt(this.theme.inputIconSizeMedium),\n large: parseInt(this.theme.inputIconSizeLarge),\n };\n const size = this.size;\n\n return <MathFunctionIcon size={iconSizes[size]} />;\n };\n\n private getInput = (props: FxInputProps) => {\n const {\n type,\n onRestore,\n auto,\n refInput,\n value,\n width,\n size: _size,\n mask,\n maskChar,\n formatChars,\n alwaysShowMask,\n signed,\n integerDigits,\n fractionDigits,\n hideTrailingZeros,\n buttonAriaLabel,\n corners: originalCorners,\n ...rest\n } = props;\n const corners: InputProps['corners'] = auto\n ? originalCorners\n : { borderBottomLeftRadius: 0, borderTopLeftRadius: 0, ...originalCorners };\n const size = this.size;\n const commonInputProps = {\n corners,\n size,\n width: '100%',\n ref: this.refInput,\n ...rest,\n };\n\n if (type === 'currency') {\n return (\n <CurrencyInput\n {...commonInputProps}\n signed={signed}\n integerDigits={integerDigits}\n fractionDigits={fractionDigits}\n value={value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n );\n }\n if (this.featureFlags.fxInputUseMaskedInput && mask) {\n return (\n <MaskedInput\n {...commonInputProps}\n leftIcon={this.getLeftIcon(props)}\n align=\"right\"\n mask={mask}\n maskChar={maskChar}\n formatChars={formatChars}\n alwaysShowMask={alwaysShowMask}\n value={value as MaskedInputProps['value']}\n onValueChange={this.props.onValueChange as MaskedInputProps['onValueChange']}\n />\n );\n }\n return (\n <Input\n {...commonInputProps}\n leftIcon={this.getLeftIcon(props)}\n align=\"right\"\n mask={mask}\n maskChar={maskChar}\n formatChars={formatChars}\n alwaysShowMask={alwaysShowMask}\n type={type}\n value={value as InputProps['value']}\n onValueChange={this.props.onValueChange as InputProps['onValueChange']}\n />\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","warning","Group","Input","CurrencyInput","createPropsGetter","CommonWrapper","rootNode","ThemeContext","MaskedInput","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","withSize","MathFunctionIcon","FxInputRestoreBtn","FxInputDataTids","root","FxInput","_class","_FxInput","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","input","getProps","defaultProps","renderMain","props","button","auto","createElement","size","onRestore","corners","disabled","borderless","buttonAriaLabel","width","getInput","focus","blur","refInput","element","getLeftIcon","iconSizes","small","parseInt","theme","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","type","value","_size","mask","maskChar","formatChars","alwaysShowMask","signed","integerDigits","fractionDigits","hideTrailingZeros","originalCorners","rest","_objectWithoutPropertiesLoose","_excluded","_extends","borderBottomLeftRadius","borderTopLeftRadius","commonInputProps","ref","onValueChange","featureFlags","fxInputUseMaskedInput","leftIcon","align","_inheritsLoose","_proto","prototype","validateProps","undefined","componentDidMount","componentDidUpdate","render","_this2","Consumer","flags","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"sources":["FxInput.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { Group } from '../Group';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport type { CurrencyInputProps } from '../CurrencyInput';\nimport { CurrencyInput } from '../CurrencyInput';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { 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 { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { MaskedInputProps } from '../MaskedInput';\nimport { MaskedInput } from '../MaskedInput';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { MathFunctionIcon } from './MathFunctionIcon';\nimport { FxInputRestoreBtn } from './FxInputRestoreBtn';\n\nexport interface FxInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Pick<Partial<MaskedInputProps>, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>,\n Override<\n Omit<CurrencyInputProps, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>,\n {\n /** Управляет видимостью кнопки Restore:\n * - true — кнопка Restore не отображается. Значение в поле является автоматически рассчитанным.\n * - false — кнопка Restore отображается в поле. Значение в поле считается отредактированным. */\n auto?: boolean;\n\n /** Тип поля. */\n type?: 'currency' | InputProps['type'];\n\n /** Событие нажатия на кнопку Restore. */\n onRestore?: () => void;\n\n /** Событие изменения value. */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n\n /** Значение поля. */\n value?: string | number;\n\n /** Задаёт ref поля. */\n refInput?: (element: CurrencyInput | Input | null) => void;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Атрибут aria-label кнопке Restore. */\n buttonAriaLabel?: AriaAttributes['aria-label'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n }\n > {}\n\nexport const FxInputDataTids = {\n root: 'FxInput__root',\n} as const;\n\ntype DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value' | 'auto'>>;\ntype DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;\n\n/** В автополе можно вывести автоматически рассчитанное цифровое значение. В него можно передавать итог любого вычисления, например, сумму других полей, процент или более сложную функцию.\n *\n * У поля есть иконка математической формулы и кнопка Restore — с её помощью пользователь может вернуть исходное значение, если редактировал поле. Видимость кнопки и поведение при нажатии нужно прописывать в компоненте самостоятельно.\n */\n@rootNode\n@withSize\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n public static displayName = 'FxInput';\n\n public static defaultProps: DefaultProps = {\n width: 250,\n type: 'text',\n value: '',\n auto: false,\n };\n\n private theme!: Theme;\n private size!: SizeProp;\n private input: Input | CurrencyInput | null = null;\n\n private getProps = createPropsGetter(FxInput.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private featureFlags!: ReactUIFeatureFlags;\n\n private validateProps(props: FxInputProps) {\n warning(\n props.type !== 'currency' && props.mask !== undefined,\n '[FxInput]: Prop \"mask\" is not supported when type=\"currency\"',\n );\n }\n\n public componentDidMount() {\n this.validateProps(this.getProps());\n }\n\n public componentDidUpdate() {\n this.validateProps(this.getProps());\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => {\n const button = props.auto ? null : (\n <FxInputRestoreBtn\n size={props.size}\n onRestore={props.onRestore}\n corners={props.corners}\n disabled={props.disabled}\n borderless={props.borderless}\n aria-label={props.buttonAriaLabel}\n />\n );\n\n return (\n <Group data-tid={FxInputDataTids.root} width={props.width}>\n {button}\n {this.getInput(props)}\n </Group>\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 refInput = (element: Input | CurrencyInput | null) => {\n this.input = element;\n\n if (this.props.refInput) {\n this.props.refInput(this.input);\n }\n };\n\n private getLeftIcon = (props: FxInputProps) => {\n if (!props.auto) {\n return null;\n }\n\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.inputIconSizeSmall),\n medium: parseInt(this.theme.inputIconSizeMedium),\n large: parseInt(this.theme.inputIconSizeLarge),\n };\n const size = this.size;\n\n return <MathFunctionIcon size={iconSizes[size]} />;\n };\n\n private getInput = (props: FxInputProps) => {\n const {\n type,\n onRestore,\n auto,\n refInput,\n value,\n width,\n size: _size,\n mask,\n maskChar,\n formatChars,\n alwaysShowMask,\n signed,\n integerDigits,\n fractionDigits,\n hideTrailingZeros,\n buttonAriaLabel,\n corners: originalCorners,\n ...rest\n } = props;\n const corners: InputProps['corners'] = auto\n ? originalCorners\n : { borderBottomLeftRadius: 0, borderTopLeftRadius: 0, ...originalCorners };\n const size = this.size;\n const commonInputProps = {\n corners,\n size,\n width: '100%',\n ref: this.refInput,\n ...rest,\n };\n\n if (type === 'currency') {\n return (\n <CurrencyInput\n {...commonInputProps}\n signed={signed}\n integerDigits={integerDigits}\n fractionDigits={fractionDigits}\n value={value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n );\n }\n if (this.featureFlags.fxInputUseMaskedInput && mask) {\n return (\n <MaskedInput\n {...commonInputProps}\n leftIcon={this.getLeftIcon(props)}\n align=\"right\"\n mask={mask}\n maskChar={maskChar}\n formatChars={formatChars}\n alwaysShowMask={alwaysShowMask}\n value={value as MaskedInputProps['value']}\n onValueChange={this.props.onValueChange as MaskedInputProps['onValueChange']}\n />\n );\n }\n return (\n <Input\n {...commonInputProps}\n leftIcon={this.getLeftIcon(props)}\n align=\"right\"\n mask={mask}\n maskChar={maskChar}\n formatChars={formatChars}\n alwaysShowMask={alwaysShowMask}\n type={type}\n value={value as InputProps['value']}\n onValueChange={this.props.onValueChange as InputProps['onValueChange']}\n />\n );\n };\n}\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,OAAO,MAAM,SAAS;;AAE7B,SAASC,KAAK,QAAQ,UAAU;;AAEhC,SAASC,KAAK,QAAQ,UAAU;;AAEhC,SAASC,aAAa,QAAQ,kBAAkB;;AAEhD,SAASC,iBAAiB,QAAQ,6BAA6B;;;AAG/D,SAASC,aAAa,QAAQ,8BAA8B;;AAE5D,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,YAAY,QAAQ,gCAAgC;;;;AAI7D,SAASC,WAAW,QAAQ,gBAAgB;;AAE5C,SAASC,0BAA0B,QAAQ,+BAA+B;AAC1E,SAASC,0BAA0B,QAAQ,0DAA0D;AACrG,SAASC,QAAQ,QAAQ,8BAA8B;;AAEvD,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,iBAAiB,QAAQ,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCvD,OAAO,IAAMC,eAAe,GAAG;EAC7BC,IAAI,EAAE;AACR,CAAU;;;;;AAKV;AACA;AACA;AACA;AACA;;AAEaC,OAAO,GAFnBV,QAAQ,CAAAW,MAAA,GACRN,QAAQ,CAAAM,MAAA,IAAAC,QAAA,0BAAAC,gBAAA,YAAAH,QAAA,OAAAI,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,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;IAcCU,KAAK,GAAiC,IAAI,CAAAV,KAAA;;IAE1CW,QAAQ,GAAG3B,iBAAiB,CAACY,OAAO,CAACgB,YAAY,CAAC,CAAAZ,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0CnDa,UAAU,GAAG,UAACC,KAAsD,EAAK;MAC9E,IAAMC,MAAM,GAAGD,KAAK,CAACE,IAAI,GAAG,IAAI;MAC9BrC,KAAA,CAAAsC,aAAA,CAACxB,iBAAiB;QAChByB,IAAI,EAAEJ,KAAK,CAACI,IAAK;QACjBC,SAAS,EAAEL,KAAK,CAACK,SAAU;QAC3BC,OAAO,EAAEN,KAAK,CAACM,OAAQ;QACvBC,QAAQ,EAAEP,KAAK,CAACO,QAAS;QACzBC,UAAU,EAAER,KAAK,CAACQ,UAAW;QAC7B,cAAYR,KAAK,CAACS,eAAgB;MACnC,CACF;;;MAED;QACE5C,KAAA,CAAAsC,aAAA,CAACpC,KAAK,IAAC,YAAUa,eAAe,CAACC,IAAK,EAAC6B,KAAK,EAAEV,KAAK,CAACU,KAAM;QACvDT,MAAM;QACNf,KAAA,CAAKyB,QAAQ,CAACX,KAAK;QACf,CAAC;;IAEZ,CAAC;;IAED;AACF;AACA;AACA,OAHEd,KAAA;IAIO0B,KAAK,GAAG,YAAM;MACnB,IAAI1B,KAAA,CAAKU,KAAK,EAAE;QACdV,KAAA,CAAKU,KAAK,CAACgB,KAAK,CAAC,CAAC;MACpB;IACF,CAAC;;IAED;AACF;AACA,OAFE1B,KAAA;IAGO2B,IAAI,GAAG,YAAM;MAClB,IAAI3B,KAAA,CAAKU,KAAK,EAAE;QACdV,KAAA,CAAKU,KAAK,CAACiB,IAAI,CAAC,CAAC;MACnB;IACF,CAAC,CAAA3B,KAAA;;IAEO4B,QAAQ,GAAG,UAACC,OAAqC,EAAK;MAC5D7B,KAAA,CAAKU,KAAK,GAAGmB,OAAO;;MAEpB,IAAI7B,KAAA,CAAKc,KAAK,CAACc,QAAQ,EAAE;QACvB5B,KAAA,CAAKc,KAAK,CAACc,QAAQ,CAAC5B,KAAA,CAAKU,KAAK,CAAC;MACjC;IACF,CAAC,CAAAV,KAAA;;IAEO8B,WAAW,GAAG,UAAChB,KAAmB,EAAK;MAC7C,IAAI,CAACA,KAAK,CAACE,IAAI,EAAE;QACf,OAAO,IAAI;MACb;;MAEA,IAAMe,SAAmC,GAAG;QAC1CC,KAAK,EAAEC,QAAQ,CAACjC,KAAA,CAAKkC,KAAK,CAACC,kBAAkB,CAAC;QAC9CC,MAAM,EAAEH,QAAQ,CAACjC,KAAA,CAAKkC,KAAK,CAACG,mBAAmB,CAAC;QAChDC,KAAK,EAAEL,QAAQ,CAACjC,KAAA,CAAKkC,KAAK,CAACK,kBAAkB;MAC/C,CAAC;MACD,IAAMrB,IAAI,GAAGlB,KAAA,CAAKkB,IAAI;;MAEtB,oBAAOvC,KAAA,CAAAsC,aAAA,CAACzB,gBAAgB,IAAC0B,IAAI,EAAEa,SAAS,CAACb,IAAI,CAAE,EAAE,CAAC;IACpD,CAAC,CAAAlB,KAAA;;IAEOyB,QAAQ,GAAG,UAACX,KAAmB,EAAK;MAC1C;QACE0B,IAAI;;;;;;;;;;;;;;;;;;QAkBF1B,KAAK,CAlBP0B,IAAI,CACJrB,SAAS,GAiBPL,KAAK,CAjBPK,SAAS,CACTH,IAAI,GAgBFF,KAAK,CAhBPE,IAAI,CACJY,QAAQ,GAeNd,KAAK,CAfPc,QAAQ,CACRa,KAAK,GAcH3B,KAAK,CAdP2B,KAAK,CACLjB,KAAK,GAaHV,KAAK,CAbPU,KAAK,CACCkB,KAAK,GAYT5B,KAAK,CAZPI,IAAI,CACJyB,IAAI,GAWF7B,KAAK,CAXP6B,IAAI,CACJC,QAAQ,GAUN9B,KAAK,CAVP8B,QAAQ,CACRC,WAAW,GAST/B,KAAK,CATP+B,WAAW,CACXC,cAAc,GAQZhC,KAAK,CARPgC,cAAc,CACdC,MAAM,GAOJjC,KAAK,CAPPiC,MAAM,CACNC,aAAa,GAMXlC,KAAK,CANPkC,aAAa,CACbC,cAAc,GAKZnC,KAAK,CALPmC,cAAc,CACdC,iBAAiB,GAIfpC,KAAK,CAJPoC,iBAAiB,CACjB3B,eAAe,GAGbT,KAAK,CAHPS,eAAe,CACN4B,eAAe,GAEtBrC,KAAK,CAFPM,OAAO,CACJgC,IAAI,GAAAC,6BAAA,CACLvC,KAAK,EAAAwC,SAAA;MACT,IAAMlC,OAA8B,GAAGJ,IAAI;MACvCmC,eAAe,GAAAI,QAAA;QACbC,sBAAsB,EAAE,CAAC,EAAEC,mBAAmB,EAAE,CAAC,IAAKN,eAAe,CAAE;MAC7E,IAAMjC,IAAI,GAAGlB,KAAA,CAAKkB,IAAI;MACtB,IAAMwC,gBAAgB,GAAAH,QAAA;QACpBnC,OAAO,EAAPA,OAAO;QACPF,IAAI,EAAJA,IAAI;QACJM,KAAK,EAAE,MAAM;QACbmC,GAAG,EAAE3D,KAAA,CAAK4B,QAAQ;MACfwB,IAAI,CACR;;;MAED,IAAIZ,IAAI,KAAK,UAAU,EAAE;QACvB;UACE7D,KAAA,CAAAsC,aAAA,CAAClC,aAAa,EAAAwE,QAAA;UACRG,gBAAgB;YACpBX,MAAM,EAAEA,MAAO;YACfC,aAAa,EAAEA,aAAc;YAC7BC,cAAc,EAAEA,cAAe;YAC/BR,KAAK,EAAEA,KAAqC;YAC5CmB,aAAa,EAAE5D,KAAA,CAAKc,KAAK,CAAC8C,aAAqD;UAChF,CAAC;;MAEN;MACA,IAAI5D,KAAA,CAAK6D,YAAY,CAACC,qBAAqB,IAAInB,IAAI,EAAE;QACnD;UACEhE,KAAA,CAAAsC,aAAA,CAAC7B,WAAW,EAAAmE,QAAA;UACNG,gBAAgB;YACpBK,QAAQ,EAAE/D,KAAA,CAAK8B,WAAW,CAAChB,KAAK,CAAE;YAClCkD,KAAK,EAAC,OAAO;YACbrB,IAAI,EAAEA,IAAK;YACXC,QAAQ,EAAEA,QAAS;YACnBC,WAAW,EAAEA,WAAY;YACzBC,cAAc,EAAEA,cAAe;YAC/BL,KAAK,EAAEA,KAAmC;YAC1CmB,aAAa,EAAE5D,KAAA,CAAKc,KAAK,CAAC8C,aAAmD;UAC9E,CAAC;;MAEN;MACA;QACEjF,KAAA,CAAAsC,aAAA,CAACnC,KAAK,EAAAyE,QAAA;QACAG,gBAAgB;UACpBK,QAAQ,EAAE/D,KAAA,CAAK8B,WAAW,CAAChB,KAAK,CAAE;UAClCkD,KAAK,EAAC,OAAO;UACbrB,IAAI,EAAEA,IAAK;UACXC,QAAQ,EAAEA,QAAS;UACnBC,WAAW,EAAEA,WAAY;UACzBC,cAAc,EAAEA,cAAe;UAC/BN,IAAI,EAAEA,IAAK;UACXC,KAAK,EAAEA,KAA6B;UACpCmB,aAAa,EAAE5D,KAAA,CAAKc,KAAK,CAAC8C,aAA6C;QACxE,CAAC;;IAEN,CAAC,QAAA5D,KAAA,EAAAiE,cAAA,CAAArE,OAAA,EAAAG,gBAAA,MAAAmE,MAAA,GAAAtE,OAAA,CAAAuE,SAAA,CAAAD,MAAA,CA7KOE,aAAa,GAArB,SAAAA,cAAsBtD,KAAmB,EAAE,CACzClC,OAAO,CACLkC,KAAK,CAAC0B,IAAI,KAAK,UAAU,IAAI1B,KAAK,CAAC6B,IAAI,KAAK0B,SAAS,EACrD,8DACF,CAAC,CACH,CAAC,CAAAH,MAAA,CAEMI,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,CAACF,aAAa,CAAC,IAAI,CAACzD,QAAQ,CAAC,CAAC,CAAC,CACrC,CAAC,CAAAuD,MAAA,CAEMK,kBAAkB,GAAzB,SAAAA,mBAAA,EAA4B,CAC1B,IAAI,CAACH,aAAa,CAAC,IAAI,CAACzD,QAAQ,CAAC,CAAC,CAAC,CACrC,CAAC,CAAAuD,MAAA,CAEMM,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACE9F,KAAA,CAAAsC,aAAA,CAAC3B,0BAA0B,CAACoF,QAAQ,QACjC,UAACC,KAAK,EAAK,CACVF,MAAI,CAACZ,YAAY,GAAGxE,0BAA0B,CAACsF,KAAK,CAAC,CACrD,oBACEhG,KAAA,CAAAsC,aAAA,CAAC9B,YAAY,CAACuF,QAAQ,QACnB,UAACxC,KAAK,EAAK,CACVuC,MAAI,CAACvC,KAAK,GAAGA,KAAK,CAClB,oBACEvD,KAAA,CAAAsC,aAAA,CAAChC,aAAa,EAAAsE,QAAA,GAACqB,WAAW,EAAEH,MAAI,CAACI,WAAY,IAAKJ,MAAI,CAAC9D,QAAQ,CAAC,CAAC,GAC9D8D,MAAI,CAAC5D,UACO,CAAC,CAEpB,CACqB,CAAC,CAE5B,CACmC,CAAC,CAE1C,CAAC,QAAAjB,OAAA,GAvD0BjB,KAAK,CAACmG,SAAS,GAAAhF,QAAA,CAC5BiF,mBAAmB,GAAG,SAAS,EAAAjF,QAAA,CAC/BkF,WAAW,GAAG,SAAS,EAAAlF,QAAA,CAEvBc,YAAY,GAAiB,EACzCY,KAAK,EAAE,GAAG,EACVgB,IAAI,EAAE,MAAM,EACZC,KAAK,EAAE,EAAE,EACTzB,IAAI,EAAE,KAAK,CACb,CAAC,EAAAlB,QAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
@@ -14,19 +14,19 @@ export interface FxInputProps extends Pick<AriaAttributes, 'aria-label'>, Common
14
14
  * - true — кнопка Restore не отображается. Значение в поле является автоматически рассчитанным.
15
15
  * - false — кнопка Restore отображается в поле. Значение в поле считается отредактированным. */
16
16
  auto?: boolean;
17
- /** Задаёт тип поля. */
17
+ /** Тип поля. */
18
18
  type?: 'currency' | InputProps['type'];
19
- /** Задаёт функцию, которая вызывается при нажатии на кнопку Restore. */
19
+ /** Событие нажатия на кнопку Restore. */
20
20
  onRestore?: () => void;
21
- /** Задаёт функцию, вызывающуюся при изменении value. */
21
+ /** Событие изменения value. */
22
22
  onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];
23
- /** Задаёт значение поля. */
23
+ /** Значение поля. */
24
24
  value?: string | number;
25
25
  /** Задаёт ref поля. */
26
26
  refInput?: (element: CurrencyInput | Input | null) => void;
27
27
  /** Убирает лишние нули после запятой. */
28
28
  hideTrailingZeros?: boolean;
29
- /** Задаёт атрибут aria-label кнопке Restore. */
29
+ /** Атрибут aria-label кнопке Restore. */
30
30
  buttonAriaLabel?: AriaAttributes['aria-label'];
31
31
  /** @ignore */
32
32
  corners?: React.CSSProperties;
@@ -1 +1 @@
1
- {"version":3,"names":["invariant","React","createRef","warning","globalObject","isEdge","isIE11","isKeyBackspace","isKeyDelete","someKeys","needsPolyfillPlaceholder","InternalMaskedInput","ThemeContext","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","FocusControlWrapper","ClearCrossIcon","catchUnreachableWarning","blink","withSize","styles","InputLayout","PolyfillPlaceholder","inputTypes","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","maskForbiddenTypes","maskAllowedTypes","filter","includes","maskErrorMessage","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","InputDataTids","root","clearCross","Input","_class","_Input","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","selectAllId","input","labelRef","getClearCrossShowed","_ref2","_this$input","hasInitialValue","props","disabled","value","state","clearCrossShowed","defaultValue","selectAll","_selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","setSelectionRange","cancelDelayedSelectAll","cancelAnimationFrame","getInput","inputProps","element","cloneElement","mask","canBeUsedWithMask","renderMaskedInput","createElement","renderMain","_cx","_cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","leftIcon","rightIcon","borderless","align","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","formatChars","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose","_excluded","labelProps","className","theme","getSizeClassName","focus","hovering","focusFallback","warningFallback","errorFallback","style","_extends","handleMouseEnter","handleMouseLeave","ref","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","refInput","isMaskVisible","undefined","onBlurWhenDisabled","resetFocus","getRightIcon","onClick","handleClearInput","context","setState","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","_getRootNode","contains","relatedTarget","_inheritsLoose","_proto","prototype","outputMaskError","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","blur","getNode","el","current","blinkColor","inputBlinkColor","start","end","_globalObject$documen","_this$props$value","_this2","Error","document","activeElement","setTimeout","_this2$input","_this$input2","render","_this3","Consumer","rootNodeRef","setRootNode","_cx3","_cx4","_cx5","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","_createClass","key","get","_this$props","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Input.tsx"],"sourcesContent":["// TODO: Enable this rule in functional components.\nimport invariant from 'invariant';\nimport type { AriaAttributes, ClassAttributes, HTMLAttributes, ReactElement } from 'react';\nimport React, { createRef } from 'react';\nimport warning from 'warning';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { InternalMaskedInput } from '../../internal/InternalMaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\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 { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { ClearCrossIcon } from '../../internal/ClearCrossIcon/ClearCrossIcon';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\nimport { blink } from '../../lib/blink';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport type { InputElement, InputElementProps } from './Input.typings';\nimport { styles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\nimport { PolyfillPlaceholder } from './InputLayout/PolyfillPlaceholder';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type ShowClearIcon = 'auto' | 'always' | 'never';\nexport type InputType = (typeof inputTypes)[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const maskForbiddenTypes: InputType[] = ['number', 'date', 'time'];\nexport const maskAllowedTypes: InputType[] = inputTypes.filter((type) => {\n return !maskForbiddenTypes.includes(type);\n});\nexport const maskErrorMessage = (type: InputType, allowedTypes: InputType[] = maskAllowedTypes) => {\n return `<Input />. Prop \"mask\" does not support type \"${type}\". Supported types: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}.`;\n};\nexport const calculateClearCrossShowedState = ({\n showClearIcon,\n notEmptyValue,\n focused,\n hovered,\n}: {\n showClearIcon: ShowClearIcon;\n notEmptyValue: boolean;\n focused?: boolean;\n hovered?: boolean;\n}): boolean => {\n switch (showClearIcon) {\n case 'always':\n return notEmptyValue;\n case 'auto':\n return Boolean((focused || hovered) && notEmptyValue);\n case 'never':\n return false;\n default:\n return catchUnreachableWarning(showClearIcon, false);\n }\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Показывает иконку очистки значения в заполненном поле.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Добавляет иконку слева.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Меняет визуальное отображение поля на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n error?: boolean;\n\n /** Меняет визуальное отображение поля на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n warning?: boolean;\n\n /** Убирает обводку поля. */\n borderless?: boolean;\n\n /** Выравнивает контент внутри поля. */\n align?: InputAlign;\n\n /** Задаёт паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url`\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n mask?: Nullable<string>;\n\n /** Устанавливает символ маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n maskChar?: Nullable<string>;\n\n /** Задаёт словарь символов-регулярок для задания маски\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }. */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n alwaysShowMask?: boolean;\n\n /** Задаёт размер.\n * @default small\n */\n size?: SizeProp;\n\n /** Задаёт функцию, которая вызывается при изменении значения `value` в поле. */\n onValueChange?: (value: string) => void;\n\n /** @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задаёт тип поля ввода. */\n type?: InputType;\n\n /** Задаёт значение внутри поля. */\n value?: string;\n\n /** @deprecated Со следующей мажорной версии Input перестанет поддерживать проп `capture`. */\n capture?: boolean;\n\n /** Устанавливает префикс `ReactNode` перед значением, но после иконки. */\n prefix?: React.ReactNode;\n\n /** Устанавливает суффикс `ReactNode` после значения, но перед правой иконкой. */\n suffix?: React.ReactNode;\n\n /** Выделяет введённое значение при фокусе в поле. Работает с типами `text`, `password`, `tel`, `search`, `url`. */\n selectAllOnFocus?: boolean;\n\n /** Устанавливает обработчик на случай некорректного ввода.\n * Если передан onUnexpectedInput, он будет вызван при ошибке, а эффект мигания можно запустить вручную через публичный метод blink.\n * @param {string} value - значение поля. */\n onUnexpectedInput?: (value: string) => void;\n\n /** Устанавливает радиус скруглений углов.\n * @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n\n /** Устанавливает элемент, заменяющий нативный input. Должен иметь пропсы `InputElementProps` и тип `InputElement`. */\n element?: ReactElement<InputElementProps>;\n }\n > {}\n\nexport interface InputState {\n focused: boolean;\n hovered: boolean;\n needsPolyfillPlaceholder: boolean;\n clearCrossShowed: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n clearCross: 'Input__clearCross',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'type' | 'showClearIcon'>>;\n\n/**\n * Поле ввода позволяет ввести или отредактировать значение.\n */\n@rootNode\n@withSize\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n public static displayName = 'Input';\n\n public static defaultProps: DefaultProps = {\n type: 'text',\n showClearIcon: 'never',\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n public input: HTMLInputElement | null = null;\n public labelRef = createRef<HTMLLabelElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private getClearCrossShowed = ({\n focused,\n hovered,\n hasInitialValue,\n }: {\n focused?: boolean;\n hovered?: boolean;\n hasInitialValue?: boolean;\n }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.input?.value || hasInitialValue),\n focused,\n hovered,\n });\n };\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n hasInitialValue: Boolean(this.props.value || this.props.defaultValue),\n }),\n };\n\n private outputMaskError() {\n warning(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));\n }\n\n public componentDidMount() {\n this.outputMaskError();\n }\n\n public componentDidUpdate(prevProps: Readonly<InputProps>) {\n if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {\n this.outputMaskError();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedSelectAll();\n }\n\n /** Программно устанавливает фокус на поле.\n * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input.focus();\n }\n\n /** Программно снимает фокус с поля.\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input.blur();\n }\n\n /** Возвращает DOM-узел поля ввода.\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink() {\n blink({ el: this.labelRef.current, blinkColor: this.theme.inputBlinkColor });\n }\n\n /** start - инициирует последовательное изменение числового значения: начинает повторяющееся увеличение/уменьшение, обычно используется при удерживании кнопки «+» или «−» для числового Input. end - останавливает ранее запущенное числоизменение, инициируемое numberStart.\n * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n // https://github.com/facebook/react/issues/7769\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n if (!selectionAllowedTypes.includes(this.getProps().type)) {\n warning(false, selectionErrorMessage(this.getProps().type));\n\n return;\n }\n\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.input) {\n this.focus();\n }\n if (this.props.mask && this.props.value && this.props.value?.length < this.props.mask.length) {\n globalObject.setTimeout(() => {\n this.input?.setSelectionRange(start, end);\n }, 150);\n } else {\n this.input?.setSelectionRange(start, end);\n }\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private get canBeUsedWithMask() {\n return maskForbiddenTypes.includes(this.getProps().type);\n }\n\n /**\n * Переводит фокус в поле (если ещё не в фокусе) и выделяет весь текст в нём.\n * Работает с типами `text`, `password`, `tel`, `search`, `url`.\n * @public\n */\n public selectAll = (): void => this._selectAll();\n\n public delaySelectAll = (): number | null => {\n return (this.selectAllId = globalObject.requestAnimationFrame?.(this._selectAll) ?? null);\n };\n\n private _selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private getInput = (inputProps: InputElementProps & ClassAttributes<HTMLInputElement>) => {\n if (this.props.element) {\n return React.cloneElement(this.props.element, inputProps);\n }\n\n return this.props.mask && !this.canBeUsedWithMask\n ? this.renderMaskedInput(inputProps, this.props.mask)\n : React.createElement('input', inputProps);\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n role,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n corners,\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n element,\n showClearIcon,\n ...rest\n } = props;\n\n const { focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused && !warning && !error,\n [styles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n 'aria-controls': ariaControls,\n style: { width, ...corners },\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onMouseOver,\n ref: this.labelRef,\n };\n\n const inputProps: InputElementProps & ClassAttributes<HTMLInputElement> = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n role,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type,\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n };\n\n const input = (\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>{this.getInput(inputProps)}</FocusControlWrapper>\n );\n\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon data-tid={InputDataTids.clearCross} size={this.size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={getRightIcon()}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size: this.size }}\n >\n {input}\n {this.state.needsPolyfillPlaceholder && (\n <PolyfillPlaceholder\n isMaskVisible={this.isMaskVisible}\n value={value}\n defaultValue={this.props.defaultValue}\n align={align}\n >\n {placeholder}\n </PolyfillPlaceholder>\n )}\n </InputLayout>\n );\n };\n\n private renderMaskedInput(inputProps: React.InputHTMLAttributes<HTMLInputElement>, mask: string) {\n return (\n <InternalMaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getSizeClassName() {\n switch (this.size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | InternalMaskedInput | InputElement | null) => {\n if (element instanceof InternalMaskedInput || (element && 'input' in element)) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleClearInput = () => {\n if (this.input) {\n this.input.value = '';\n }\n\n this.setState({ clearCrossShowed: false });\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n\n this.setState({\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: this.state.hovered }),\n });\n };\n\n private handleMouseEnter = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }),\n });\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n private handleMouseLeave = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }),\n });\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private resetFocus = () => this.setState({ focused: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const showClearIcon = this.props.showClearIcon;\n if (showClearIcon && getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n const clearCrossShowed = this.getClearCrossShowed({ focused: false, hovered: this.state.hovered });\n this.setState({\n focused: false,\n clearCrossShowed,\n });\n this.props.onBlur?.(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["invariant","React","createRef","warning","globalObject","isEdge","isIE11","isKeyBackspace","isKeyDelete","someKeys","needsPolyfillPlaceholder","InternalMaskedInput","ThemeContext","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","FocusControlWrapper","ClearCrossIcon","catchUnreachableWarning","blink","withSize","styles","InputLayout","PolyfillPlaceholder","inputTypes","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","maskForbiddenTypes","maskAllowedTypes","filter","includes","maskErrorMessage","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","InputDataTids","root","clearCross","Input","_class","_Input","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","selectAllId","input","labelRef","getClearCrossShowed","_ref2","_this$input","hasInitialValue","props","disabled","value","state","clearCrossShowed","defaultValue","selectAll","_selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","setSelectionRange","cancelDelayedSelectAll","cancelAnimationFrame","getInput","inputProps","element","cloneElement","mask","canBeUsedWithMask","renderMaskedInput","createElement","renderMain","_cx","_cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","leftIcon","rightIcon","borderless","align","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","formatChars","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose","_excluded","labelProps","className","theme","getSizeClassName","focus","hovering","focusFallback","warningFallback","errorFallback","style","_extends","handleMouseEnter","handleMouseLeave","ref","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","refInput","isMaskVisible","undefined","onBlurWhenDisabled","resetFocus","getRightIcon","onClick","handleClearInput","context","setState","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","_getRootNode","contains","relatedTarget","_inheritsLoose","_proto","prototype","outputMaskError","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","blur","getNode","el","current","blinkColor","inputBlinkColor","start","end","_globalObject$documen","_this$props$value","_this2","Error","document","activeElement","setTimeout","_this2$input","_this$input2","render","_this3","Consumer","rootNodeRef","setRootNode","_cx3","_cx4","_cx5","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","_createClass","key","get","_this$props","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Input.tsx"],"sourcesContent":["// TODO: Enable this rule in functional components.\nimport invariant from 'invariant';\nimport type { AriaAttributes, ClassAttributes, HTMLAttributes, ReactElement } from 'react';\nimport React, { createRef } from 'react';\nimport warning from 'warning';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { InternalMaskedInput } from '../../internal/InternalMaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\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 { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { ClearCrossIcon } from '../../internal/ClearCrossIcon/ClearCrossIcon';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\nimport { blink } from '../../lib/blink';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport type { InputElement, InputElementProps } from './Input.typings';\nimport { styles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\nimport { PolyfillPlaceholder } from './InputLayout/PolyfillPlaceholder';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type ShowClearIcon = 'auto' | 'always' | 'never';\nexport type InputType = (typeof inputTypes)[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const maskForbiddenTypes: InputType[] = ['number', 'date', 'time'];\nexport const maskAllowedTypes: InputType[] = inputTypes.filter((type) => {\n return !maskForbiddenTypes.includes(type);\n});\nexport const maskErrorMessage = (type: InputType, allowedTypes: InputType[] = maskAllowedTypes) => {\n return `<Input />. Prop \"mask\" does not support type \"${type}\". Supported types: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}.`;\n};\nexport const calculateClearCrossShowedState = ({\n showClearIcon,\n notEmptyValue,\n focused,\n hovered,\n}: {\n showClearIcon: ShowClearIcon;\n notEmptyValue: boolean;\n focused?: boolean;\n hovered?: boolean;\n}): boolean => {\n switch (showClearIcon) {\n case 'always':\n return notEmptyValue;\n case 'auto':\n return Boolean((focused || hovered) && notEmptyValue);\n case 'never':\n return false;\n default:\n return catchUnreachableWarning(showClearIcon, false);\n }\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Показывает иконку очистки значения в заполненном поле.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Добавляет иконку слева.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Меняет визуальное отображение поля на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n error?: boolean;\n\n /** Меняет визуальное отображение поля на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n warning?: boolean;\n\n /** Убирает обводку поля. */\n borderless?: boolean;\n\n /** Выравнивает контент внутри поля. */\n align?: InputAlign;\n\n /** Паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url`\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n mask?: Nullable<string>;\n\n /** Устанавливает символ маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n maskChar?: Nullable<string>;\n\n /** Словарь символов-регулярок для задания маски\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }. */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n alwaysShowMask?: boolean;\n\n /** Размер поля.\n * @default small\n */\n size?: SizeProp;\n\n /** Событие изменения значения `value` в поле. */\n onValueChange?: (value: string) => void;\n\n /** @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Тип поля ввода. */\n type?: InputType;\n\n /** Значение внутри поля. */\n value?: string;\n\n /** @deprecated Со следующей мажорной версии Input перестанет поддерживать проп `capture`. */\n capture?: boolean;\n\n /** Устанавливает префикс `ReactNode` перед значением, но после иконки. */\n prefix?: React.ReactNode;\n\n /** Устанавливает суффикс `ReactNode` после значения, но перед правой иконкой. */\n suffix?: React.ReactNode;\n\n /** Выделяет введённое значение при фокусе в поле. Работает с типами `text`, `password`, `tel`, `search`, `url`. */\n selectAllOnFocus?: boolean;\n\n /** Устанавливает обработчик на случай некорректного ввода.\n * Если передан onUnexpectedInput, он будет вызван при ошибке, а эффект мигания можно запустить вручную через публичный метод blink.\n * @param {string} value - значение поля. */\n onUnexpectedInput?: (value: string) => void;\n\n /** Устанавливает радиус скруглений углов.\n * @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n\n /** Устанавливает элемент, заменяющий нативный input. Должен иметь пропсы `InputElementProps` и тип `InputElement`. */\n element?: ReactElement<InputElementProps>;\n }\n > {}\n\nexport interface InputState {\n focused: boolean;\n hovered: boolean;\n needsPolyfillPlaceholder: boolean;\n clearCrossShowed: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n clearCross: 'Input__clearCross',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'type' | 'showClearIcon'>>;\n\n/**\n * Поле ввода позволяет ввести или отредактировать значение.\n */\n@rootNode\n@withSize\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n public static displayName = 'Input';\n\n public static defaultProps: DefaultProps = {\n type: 'text',\n showClearIcon: 'never',\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n public input: HTMLInputElement | null = null;\n public labelRef = createRef<HTMLLabelElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private getClearCrossShowed = ({\n focused,\n hovered,\n hasInitialValue,\n }: {\n focused?: boolean;\n hovered?: boolean;\n hasInitialValue?: boolean;\n }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.input?.value || hasInitialValue),\n focused,\n hovered,\n });\n };\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n hasInitialValue: Boolean(this.props.value || this.props.defaultValue),\n }),\n };\n\n private outputMaskError() {\n warning(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));\n }\n\n public componentDidMount() {\n this.outputMaskError();\n }\n\n public componentDidUpdate(prevProps: Readonly<InputProps>) {\n if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {\n this.outputMaskError();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedSelectAll();\n }\n\n /** Программно устанавливает фокус на поле.\n * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input.focus();\n }\n\n /** Программно снимает фокус с поля.\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input.blur();\n }\n\n /** Возвращает DOM-узел поля ввода.\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink() {\n blink({ el: this.labelRef.current, blinkColor: this.theme.inputBlinkColor });\n }\n\n /** start - инициирует последовательное изменение числового значения: начинает повторяющееся увеличение/уменьшение, обычно используется при удерживании кнопки «+» или «−» для числового Input. end - останавливает ранее запущенное числоизменение, инициируемое numberStart.\n * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n // https://github.com/facebook/react/issues/7769\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n if (!selectionAllowedTypes.includes(this.getProps().type)) {\n warning(false, selectionErrorMessage(this.getProps().type));\n\n return;\n }\n\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.input) {\n this.focus();\n }\n if (this.props.mask && this.props.value && this.props.value?.length < this.props.mask.length) {\n globalObject.setTimeout(() => {\n this.input?.setSelectionRange(start, end);\n }, 150);\n } else {\n this.input?.setSelectionRange(start, end);\n }\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private get canBeUsedWithMask() {\n return maskForbiddenTypes.includes(this.getProps().type);\n }\n\n /**\n * Переводит фокус в поле (если ещё не в фокусе) и выделяет весь текст в нём.\n * Работает с типами `text`, `password`, `tel`, `search`, `url`.\n * @public\n */\n public selectAll = (): void => this._selectAll();\n\n public delaySelectAll = (): number | null => {\n return (this.selectAllId = globalObject.requestAnimationFrame?.(this._selectAll) ?? null);\n };\n\n private _selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private getInput = (inputProps: InputElementProps & ClassAttributes<HTMLInputElement>) => {\n if (this.props.element) {\n return React.cloneElement(this.props.element, inputProps);\n }\n\n return this.props.mask && !this.canBeUsedWithMask\n ? this.renderMaskedInput(inputProps, this.props.mask)\n : React.createElement('input', inputProps);\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n role,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n corners,\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n element,\n showClearIcon,\n ...rest\n } = props;\n\n const { focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused && !warning && !error,\n [styles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n 'aria-controls': ariaControls,\n style: { width, ...corners },\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onMouseOver,\n ref: this.labelRef,\n };\n\n const inputProps: InputElementProps & ClassAttributes<HTMLInputElement> = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n role,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type,\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n };\n\n const input = (\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>{this.getInput(inputProps)}</FocusControlWrapper>\n );\n\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon data-tid={InputDataTids.clearCross} size={this.size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={getRightIcon()}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size: this.size }}\n >\n {input}\n {this.state.needsPolyfillPlaceholder && (\n <PolyfillPlaceholder\n isMaskVisible={this.isMaskVisible}\n value={value}\n defaultValue={this.props.defaultValue}\n align={align}\n >\n {placeholder}\n </PolyfillPlaceholder>\n )}\n </InputLayout>\n );\n };\n\n private renderMaskedInput(inputProps: React.InputHTMLAttributes<HTMLInputElement>, mask: string) {\n return (\n <InternalMaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getSizeClassName() {\n switch (this.size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | InternalMaskedInput | InputElement | null) => {\n if (element instanceof InternalMaskedInput || (element && 'input' in element)) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleClearInput = () => {\n if (this.input) {\n this.input.value = '';\n }\n\n this.setState({ clearCrossShowed: false });\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n\n this.setState({\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: this.state.hovered }),\n });\n };\n\n private handleMouseEnter = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }),\n });\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n private handleMouseLeave = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }),\n });\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private resetFocus = () => this.setState({ focused: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const showClearIcon = this.props.showClearIcon;\n if (showClearIcon && getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n const clearCrossShowed = this.getClearCrossShowed({ focused: false, hovered: this.state.hovered });\n this.setState({\n focused: false,\n clearCrossShowed,\n });\n this.props.onBlur?.(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}