@skbkontur/react-ui 5.5.1 → 5.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/cjs/components/Modal/Modal.d.ts +25 -22
- package/cjs/components/Modal/Modal.js +10 -7
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +1 -1
- package/cjs/components/Modal/ModalBody.js +1 -1
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.d.ts +5 -5
- package/cjs/components/Modal/ModalFooter.js +1 -1
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.d.ts +3 -3
- package/cjs/components/Modal/ModalHeader.js +1 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +11 -10
- package/cjs/components/Radio/Radio.js +5 -4
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +21 -28
- package/cjs/components/RadioGroup/RadioGroup.js +2 -9
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +5 -1
- package/cjs/components/Textarea/Textarea.js +10 -1
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +5 -0
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +4 -1
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
- package/components/Modal/Modal/Modal.js +5 -7
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +25 -22
- package/components/Modal/ModalBody/ModalBody.js +1 -1
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalFooter.d.ts +5 -5
- package/components/Modal/ModalHeader/ModalHeader.js +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/ModalHeader.d.ts +3 -3
- package/components/Radio/Radio/Radio.js +5 -4
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +11 -10
- package/components/RadioGroup/RadioGroup/RadioGroup.js +2 -9
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +21 -28
- package/components/Textarea/Textarea/Textarea.js +5 -0
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +5 -1
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +5 -0
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +4 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","globalObject","ThemeContext","CommonWrapper","cx","keyListener","rootNode","fixFirefoxModifiedClickOnLabel","isEdge","isIE11","RadioGroupContext","createPropsGetter","FocusControlWrapper","withSize","styles","globalClasses","RadioDataTids","root","Radio","_class","_Radio","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","focusedByKeyboard","getProps","defaultProps","context","inputEl","createRef","renderMain","props","_cx","_cx2","_props$disabled","disabled","_props$warning","warning","_props$error","error","size","focused","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","_objectWithoutPropertiesLoose","_excluded","radioProps","className","circle","theme","getCircleSizeClassName","checked","getCheckedSizeClassName","focus","checkedDisabled","value","inputProps","_extends","type","input","tabIndex","ref","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","labelProps","getRootSizeClassName","rootChecked","rootIE11","handleMouseOver","handleMouseEnter","handleMouseLeave","onClick","_isInRadioGroup","_cx3","_cx4","activeItem","name","suppressHydrationWarning","createElement","onBlurWhenDisabled","resetFocus","placeholder","children","renderCaption","Boolean","e","onSelect","requestAnimationFrame","isArrowPressed","isTabPressed","setState","_inheritsLoose","_proto","prototype","rootLarge","rootMedium","rootSmall","circleLarge","circleMedium","circleSmall","checkedLarge","checkedMedium","checkedSmall","render","_this2","Consumer","rootNodeRef","setRootNode","_this$inputEl$current","current","blur","_this$inputEl$current2","_cx5","captionClassNames","caption","captionDisabled","captionIE11","Component","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["Radio.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { Override } from '../../typings/utility-types';\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 { keyListener } from '../../lib/events/keyListener';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport type { RadioGroupContextType } from '../RadioGroup/RadioGroupContext';\nimport { RadioGroupContext } from '../RadioGroup/RadioGroupContext';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles, globalClasses } from './Radio.styles';\n\nexport interface RadioProps<T>\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задает состояние фокуса. */\n focused?: boolean;\n\n /** Задает функцию, которая вызывается при изменении value. */\n onValueChange?: (value: T) => void;\n\n /** Задает HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseover`.\n * @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Устанавливает значение. */\n value: T;\n }\n > {}\n\nexport interface RadioState {\n focusedByKeyboard: boolean;\n}\n\nexport const RadioDataTids = {\n root: 'Radio__root',\n} as const;\n\ntype DefaultProps = Required<Pick<RadioProps<any>, 'focused'>>;\n\n/**\n * Радио-кнопки `Radio` используются, когда может быть выбран только один вариант из нескольких.\n */\n@rootNode\n@withSize\nexport class Radio<T> extends React.Component<RadioProps<T>, RadioState> {\n public static __KONTUR_REACT_UI__ = 'Radio';\n public static displayName = 'Radio';\n\n public state = {\n focusedByKeyboard: false,\n };\n\n public static defaultProps: DefaultProps = {\n focused: false,\n };\n\n private getProps = createPropsGetter(Radio.defaultProps);\n\n public static contextType = RadioGroupContext;\n public context: RadioGroupContextType<T> = this.context;\n private size!: SizeProp;\n\n private inputEl = React.createRef<HTMLInputElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getCircleSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.circleLarge(this.theme);\n case 'medium':\n return styles.circleMedium(this.theme);\n case 'small':\n default:\n return styles.circleSmall(this.theme);\n }\n }\n\n private getCheckedSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.checkedLarge(this.theme);\n case 'medium':\n return styles.checkedMedium(this.theme);\n case 'small':\n default:\n return styles.checkedSmall(this.theme);\n }\n }\n\n public render() {\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 /**\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.inputEl.current?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.inputEl.current?.blur();\n }\n\n public renderMain = (props: CommonWrapperRestProps<RadioProps<T>>) => {\n const {\n disabled = this.context.disabled,\n warning = this.context.warning,\n error = this.context.error,\n size,\n focused,\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n onValueChange,\n ...rest\n } = props;\n\n const radioProps = {\n className: cx({\n [styles.circle(this.theme)]: true,\n [this.getCircleSizeClassName()]: true,\n [styles.checked(this.theme)]: this.props.checked,\n [this.getCheckedSizeClassName()]: this.props.checked,\n [styles.focus(this.theme)]: this.getProps().focused || this.state.focusedByKeyboard,\n [styles.error(this.theme)]: error,\n [styles.warning(this.theme)]: warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.checkedDisabled(this.theme)]: this.props.checked && disabled,\n [globalClasses.circle]: true,\n }),\n };\n\n let value: string | number | undefined;\n if (typeof this.props.value === 'string' || typeof this.props.value === 'number') {\n value = this.props.value;\n }\n\n const inputProps = {\n ...rest,\n type: 'radio',\n className: styles.input(),\n disabled,\n tabIndex: this.props.tabIndex,\n value,\n ref: this.inputEl,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n };\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getRootSizeClassName(), {\n [styles.rootChecked(this.theme)]: this.props.checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n }),\n onMouseOver: this.handleMouseOver,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onClick: fixFirefoxModifiedClickOnLabel(this.inputEl),\n };\n\n if (this._isInRadioGroup()) {\n const checked = this.props.value === this.context.activeItem;\n inputProps.checked = checked;\n inputProps.name = this.context.name;\n inputProps.suppressHydrationWarning = true;\n labelProps.className = cx(styles.root(this.theme), this.getRootSizeClassName(), {\n [styles.rootChecked(this.theme)]: checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n });\n radioProps.className = cx(radioProps.className, {\n [styles.checked(this.theme)]: checked,\n [this.getCheckedSizeClassName()]: checked,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n });\n }\n\n return (\n <label data-tid={RadioDataTids.root} {...labelProps}>\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <input {...inputProps} />\n </FocusControlWrapper>\n <span {...radioProps}>\n <span className={styles.placeholder()} />\n </span>\n {this.props.children && this.renderCaption()}\n </label>\n );\n };\n\n private _isInRadioGroup = () => Boolean(this.context.name);\n\n private renderCaption() {\n const captionClassNames = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionDisabled(this.theme)]: !!(this.props.disabled || this.context.disabled),\n [styles.captionIE11()]: isIE11 || isEdge,\n });\n\n return <div className={captionClassNames}>{this.props.children}</div>;\n }\n\n private handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n this.props.onValueChange?.(this.props.value);\n\n if (this._isInRadioGroup()) {\n this.context.onSelect(this.props.value);\n }\n\n this.props.onChange?.(e);\n };\n\n private handleMouseOver: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseOver?.(e);\n };\n\n private handleMouseEnter: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseEnter?.(e);\n };\n\n private handleMouseLeave: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseLeave?.(e);\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.context.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isArrowPressed || keyListener.isTabPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private resetFocus = () => this.setState({ focusedByKeyboard: false });\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(e);\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","globalObject","ThemeContext","CommonWrapper","cx","keyListener","rootNode","fixFirefoxModifiedClickOnLabel","isEdge","isIE11","RadioGroupContext","createPropsGetter","FocusControlWrapper","withSize","styles","globalClasses","RadioDataTids","root","Radio","_class","_Radio","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","focusedByKeyboard","getProps","defaultProps","context","inputEl","createRef","renderMain","props","_cx","_cx2","_props$disabled","disabled","_props$warning","warning","_props$error","error","size","focused","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","_objectWithoutPropertiesLoose","_excluded","radioProps","className","circle","theme","getCircleSizeClassName","checked","getCheckedSizeClassName","focus","checkedDisabled","value","inputProps","_extends","type","input","tabIndex","ref","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","labelProps","getRootSizeClassName","rootChecked","rootIE11","handleMouseOver","handleMouseEnter","handleMouseLeave","onClick","_isInRadioGroup","_cx3","_cx4","activeItem","name","suppressHydrationWarning","createElement","onBlurWhenDisabled","resetFocus","placeholder","children","renderCaption","Boolean","e","onSelect","requestAnimationFrame","isArrowPressed","isTabPressed","setState","_inheritsLoose","_proto","prototype","rootLarge","rootMedium","rootSmall","circleLarge","circleMedium","circleSmall","checkedLarge","checkedMedium","checkedSmall","render","_this2","Consumer","rootNodeRef","setRootNode","_this$inputEl$current","current","blur","_this$inputEl$current2","_cx5","captionClassNames","caption","captionDisabled","captionIE11","Component","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["Radio.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { Override } from '../../typings/utility-types';\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 { keyListener } from '../../lib/events/keyListener';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport type { RadioGroupContextType } from '../RadioGroup/RadioGroupContext';\nimport { RadioGroupContext } from '../RadioGroup/RadioGroupContext';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles, globalClasses } from './Radio.styles';\n\nexport interface RadioProps<T>\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\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 size?: SizeProp;\n\n /** Задаёт состояние фокуса. */\n focused?: boolean;\n\n /** Задаёт функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: T) => void;\n\n /** Задает HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseover`.\n * @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задаёт значение. */\n value: T;\n }\n > {}\n\nexport interface RadioState {\n focusedByKeyboard: boolean;\n}\n\nexport const RadioDataTids = {\n root: 'Radio__root',\n} as const;\n\ntype DefaultProps = Required<Pick<RadioProps<any>, 'focused'>>;\n\n/** Радиокнопка позволяет выбрать одно значение из нескольких. Подходит при небольшом количестве вариантов — 2–5.\n *\n * Для создания группы радиокнопок используйте специальный контейнер — компонент [RadioGroup](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_input-data-radiogroup--docs).\n */\n@rootNode\n@withSize\nexport class Radio<T> extends React.Component<RadioProps<T>, RadioState> {\n public static __KONTUR_REACT_UI__ = 'Radio';\n public static displayName = 'Radio';\n\n public state = {\n focusedByKeyboard: false,\n };\n\n public static defaultProps: DefaultProps = {\n focused: false,\n };\n\n private getProps = createPropsGetter(Radio.defaultProps);\n\n public static contextType = RadioGroupContext;\n public context: RadioGroupContextType<T> = this.context;\n private size!: SizeProp;\n\n private inputEl = React.createRef<HTMLInputElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getCircleSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.circleLarge(this.theme);\n case 'medium':\n return styles.circleMedium(this.theme);\n case 'small':\n default:\n return styles.circleSmall(this.theme);\n }\n }\n\n private getCheckedSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.checkedLarge(this.theme);\n case 'medium':\n return styles.checkedMedium(this.theme);\n case 'small':\n default:\n return styles.checkedSmall(this.theme);\n }\n }\n\n public render() {\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 /** Программно устанавливает фокус на радиокнопку. Появляется фокусная обводка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.inputEl.current?.focus();\n }\n\n /** Программно снимает фокус с радиокнопки.\n * @public\n */\n public blur() {\n this.inputEl.current?.blur();\n }\n\n public renderMain = (props: CommonWrapperRestProps<RadioProps<T>>) => {\n const {\n disabled = this.context.disabled,\n warning = this.context.warning,\n error = this.context.error,\n size,\n focused,\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n onValueChange,\n ...rest\n } = props;\n\n const radioProps = {\n className: cx({\n [styles.circle(this.theme)]: true,\n [this.getCircleSizeClassName()]: true,\n [styles.checked(this.theme)]: this.props.checked,\n [this.getCheckedSizeClassName()]: this.props.checked,\n [styles.focus(this.theme)]: this.getProps().focused || this.state.focusedByKeyboard,\n [styles.error(this.theme)]: error,\n [styles.warning(this.theme)]: warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.checkedDisabled(this.theme)]: this.props.checked && disabled,\n [globalClasses.circle]: true,\n }),\n };\n\n let value: string | number | undefined;\n if (typeof this.props.value === 'string' || typeof this.props.value === 'number') {\n value = this.props.value;\n }\n\n const inputProps = {\n ...rest,\n type: 'radio',\n className: styles.input(),\n disabled,\n tabIndex: this.props.tabIndex,\n value,\n ref: this.inputEl,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n };\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getRootSizeClassName(), {\n [styles.rootChecked(this.theme)]: this.props.checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n }),\n onMouseOver: this.handleMouseOver,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onClick: fixFirefoxModifiedClickOnLabel(this.inputEl),\n };\n\n if (this._isInRadioGroup()) {\n const checked = this.props.value === this.context.activeItem;\n inputProps.checked = checked;\n inputProps.name = this.context.name;\n inputProps.suppressHydrationWarning = true;\n labelProps.className = cx(styles.root(this.theme), this.getRootSizeClassName(), {\n [styles.rootChecked(this.theme)]: checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n });\n radioProps.className = cx(radioProps.className, {\n [styles.checked(this.theme)]: checked,\n [this.getCheckedSizeClassName()]: checked,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n });\n }\n\n return (\n <label data-tid={RadioDataTids.root} {...labelProps}>\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <input {...inputProps} />\n </FocusControlWrapper>\n <span {...radioProps}>\n <span className={styles.placeholder()} />\n </span>\n {this.props.children && this.renderCaption()}\n </label>\n );\n };\n\n private _isInRadioGroup = () => Boolean(this.context.name);\n\n private renderCaption() {\n const captionClassNames = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionDisabled(this.theme)]: !!(this.props.disabled || this.context.disabled),\n [styles.captionIE11()]: isIE11 || isEdge,\n });\n\n return <div className={captionClassNames}>{this.props.children}</div>;\n }\n\n private handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n this.props.onValueChange?.(this.props.value);\n\n if (this._isInRadioGroup()) {\n this.context.onSelect(this.props.value);\n }\n\n this.props.onChange?.(e);\n };\n\n private handleMouseOver: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseOver?.(e);\n };\n\n private handleMouseEnter: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseEnter?.(e);\n };\n\n private handleMouseLeave: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseLeave?.(e);\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.context.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isArrowPressed || keyListener.isTabPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private resetFocus = () => this.setState({ focusedByKeyboard: false });\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(e);\n };\n}\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,QAAQ,0BAA0B;;;AAGvD,SAASC,YAAY,QAAQ,gCAAgC;;;AAG7D,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,EAAE,QAAQ,2BAA2B;AAC9C,SAASC,WAAW,QAAQ,8BAA8B;;AAE1D,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,8BAA8B,QAAQ,iDAAiD;AAChG,SAASC,MAAM,EAAEC,MAAM,QAAQ,kBAAkB;;AAEjD,SAASC,iBAAiB,QAAQ,iCAAiC;AACnE,SAASC,iBAAiB,QAAQ,6BAA6B;;AAE/D,SAASC,mBAAmB,QAAQ,oCAAoC;AACxE,SAASC,QAAQ,QAAQ,8BAA8B;;AAEvD,SAASC,MAAM,EAAEC,aAAa,QAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CtD,OAAO,IAAMC,aAAa,GAAG;EAC3BC,IAAI,EAAE;AACR,CAAU;;;;AAIV;AACA;AACA;AACA;AACA;;AAEaC,KAAK,GAFjBZ,QAAQ,CAAAa,MAAA,GACRN,QAAQ,CAAAM,MAAA,IAAAC,MAAA,0BAAAC,gBAAA,YAAAH,MAAA,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;;;;IAKAU,KAAK,GAAG;MACbC,iBAAiB,EAAE;IACrB,CAAC,CAAAX,KAAA;;;;;;IAMOY,QAAQ,GAAGvB,iBAAiB,CAACO,KAAK,CAACiB,YAAY,CAAC,CAAAb,KAAA;;;IAGjDc,OAAO,GAA6Bd,KAAA,CAAKc,OAAO,CAAAd,KAAA;;;IAG/Ce,OAAO,gBAAGrC,KAAK,CAACsC,SAAS,CAAmB,CAAC,CAAAhB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuE9CiB,UAAU,GAAG,UAACC,KAA4C,EAAK,KAAAC,GAAA,EAAAC,IAAA;MACpE,IAAAC,eAAA;;;;;;;;;;;QAWIH,KAAK,CAVPI,QAAQ,CAARA,QAAQ,GAAAD,eAAA,cAAGrB,KAAA,CAAKc,OAAO,CAACQ,QAAQ,GAAAD,eAAA,CAAAE,cAAA,GAU9BL,KAAK,CATPM,OAAO,CAAPA,OAAO,GAAAD,cAAA,cAAGvB,KAAA,CAAKc,OAAO,CAACU,OAAO,GAAAD,cAAA,CAAAE,YAAA,GAS5BP,KAAK,CARPQ,KAAK,CAALA,KAAK,GAAAD,YAAA,cAAGzB,KAAA,CAAKc,OAAO,CAACY,KAAK,GAAAD,YAAA,CAC1BE,IAAI,GAOFT,KAAK,CAPPS,IAAI,CACJC,OAAO,GAMLV,KAAK,CANPU,OAAO,CACPC,WAAW,GAKTX,KAAK,CALPW,WAAW,CACXC,YAAY,GAIVZ,KAAK,CAJPY,YAAY,CACZC,YAAY,GAGVb,KAAK,CAHPa,YAAY,CACZC,aAAa,GAEXd,KAAK,CAFPc,aAAa,CACVC,IAAI,GAAAC,6BAAA,CACLhB,KAAK,EAAAiB,SAAA;;MAET,IAAMC,UAAU,GAAG;QACjBC,SAAS,EAAEvD,EAAE,EAAAqC,GAAA,OAAAA,GAAA;QACV3B,MAAM,CAAC8C,MAAM,CAACtC,KAAA,CAAKuC,KAAK,CAAC,IAAG,IAAI,EAAApB,GAAA;QAChCnB,KAAA,CAAKwC,sBAAsB,CAAC,CAAC,IAAG,IAAI,EAAArB,GAAA;QACpC3B,MAAM,CAACiD,OAAO,CAACzC,KAAA,CAAKuC,KAAK,CAAC,IAAGvC,KAAA,CAAKkB,KAAK,CAACuB,OAAO,EAAAtB,GAAA;QAC/CnB,KAAA,CAAK0C,uBAAuB,CAAC,CAAC,IAAG1C,KAAA,CAAKkB,KAAK,CAACuB,OAAO,EAAAtB,GAAA;QACnD3B,MAAM,CAACmD,KAAK,CAAC3C,KAAA,CAAKuC,KAAK,CAAC,IAAGvC,KAAA,CAAKY,QAAQ,CAAC,CAAC,CAACgB,OAAO,IAAI5B,KAAA,CAAKU,KAAK,CAACC,iBAAiB,EAAAQ,GAAA;QAClF3B,MAAM,CAACkC,KAAK,CAAC1B,KAAA,CAAKuC,KAAK,CAAC,IAAGb,KAAK,EAAAP,GAAA;QAChC3B,MAAM,CAACgC,OAAO,CAACxB,KAAA,CAAKuC,KAAK,CAAC,IAAGf,OAAO,EAAAL,GAAA;QACpC3B,MAAM,CAAC8B,QAAQ,CAACtB,KAAA,CAAKuC,KAAK,CAAC,IAAGjB,QAAQ,EAAAH,GAAA;QACtC3B,MAAM,CAACoD,eAAe,CAAC5C,KAAA,CAAKuC,KAAK,CAAC,IAAGvC,KAAA,CAAKkB,KAAK,CAACuB,OAAO,IAAInB,QAAQ,EAAAH,GAAA;QACnE1B,aAAa,CAAC6C,MAAM,IAAG,IAAI,EAAAnB,GAAA;QAC7B;MACH,CAAC;;MAED,IAAI0B,KAAkC;MACtC,IAAI,OAAO7C,KAAA,CAAKkB,KAAK,CAAC2B,KAAK,KAAK,QAAQ,IAAI,OAAO7C,KAAA,CAAKkB,KAAK,CAAC2B,KAAK,KAAK,QAAQ,EAAE;QAChFA,KAAK,GAAG7C,KAAA,CAAKkB,KAAK,CAAC2B,KAAK;MAC1B;;MAEA,IAAMC,UAAU,GAAAC,QAAA;MACXd,IAAI;QACPe,IAAI,EAAE,OAAO;QACbX,SAAS,EAAE7C,MAAM,CAACyD,KAAK,CAAC,CAAC;QACzB3B,QAAQ,EAARA,QAAQ;QACR4B,QAAQ,EAAElD,KAAA,CAAKkB,KAAK,CAACgC,QAAQ;QAC7BL,KAAK,EAALA,KAAK;QACLM,GAAG,EAAEnD,KAAA,CAAKe,OAAO;QACjBqC,QAAQ,EAAEpD,KAAA,CAAKqD,YAAY;QAC3BC,OAAO,EAAEtD,KAAA,CAAKuD,WAAW;QACzBC,MAAM,EAAExD,KAAA,CAAKyD,UAAU,GACxB;;;MAED,IAAMC,UAAU,GAAG;QACjBrB,SAAS,EAAEvD,EAAE,CAACU,MAAM,CAACG,IAAI,CAACK,KAAA,CAAKuC,KAAK,CAAC,EAAEvC,KAAA,CAAK2D,oBAAoB,CAAC,CAAC,GAAAvC,IAAA,OAAAA,IAAA;QAC/D5B,MAAM,CAACoE,WAAW,CAAC5D,KAAA,CAAKuC,KAAK,CAAC,IAAGvC,KAAA,CAAKkB,KAAK,CAACuB,OAAO,EAAArB,IAAA;QACnD5B,MAAM,CAACqE,QAAQ,CAAC,CAAC,IAAG1E,MAAM,IAAID,MAAM,EAAAkC,IAAA;QACtC,CAAC;QACFS,WAAW,EAAE7B,KAAA,CAAK8D,eAAe;QACjChC,YAAY,EAAE9B,KAAA,CAAK+D,gBAAgB;QACnChC,YAAY,EAAE/B,KAAA,CAAKgE,gBAAgB;QACnCC,OAAO,EAAEhF,8BAA8B,CAACe,KAAA,CAAKe,OAAO;MACtD,CAAC;;MAED,IAAIf,KAAA,CAAKkE,eAAe,CAAC,CAAC,EAAE,KAAAC,IAAA,EAAAC,IAAA;QAC1B,IAAM3B,OAAO,GAAGzC,KAAA,CAAKkB,KAAK,CAAC2B,KAAK,KAAK7C,KAAA,CAAKc,OAAO,CAACuD,UAAU;QAC5DvB,UAAU,CAACL,OAAO,GAAGA,OAAO;QAC5BK,UAAU,CAACwB,IAAI,GAAGtE,KAAA,CAAKc,OAAO,CAACwD,IAAI;QACnCxB,UAAU,CAACyB,wBAAwB,GAAG,IAAI;QAC1Cb,UAAU,CAACrB,SAAS,GAAGvD,EAAE,CAACU,MAAM,CAACG,IAAI,CAACK,KAAA,CAAKuC,KAAK,CAAC,EAAEvC,KAAA,CAAK2D,oBAAoB,CAAC,CAAC,GAAAQ,IAAA,OAAAA,IAAA;QAC3E3E,MAAM,CAACoE,WAAW,CAAC5D,KAAA,CAAKuC,KAAK,CAAC,IAAGE,OAAO,EAAA0B,IAAA;QACxC3E,MAAM,CAACqE,QAAQ,CAAC,CAAC,IAAG1E,MAAM,IAAID,MAAM,EAAAiF,IAAA;QACtC,CAAC;QACF/B,UAAU,CAACC,SAAS,GAAGvD,EAAE,CAACsD,UAAU,CAACC,SAAS,GAAA+B,IAAA,OAAAA,IAAA;QAC3C5E,MAAM,CAACiD,OAAO,CAACzC,KAAA,CAAKuC,KAAK,CAAC,IAAGE,OAAO,EAAA2B,IAAA;QACpCpE,KAAA,CAAK0C,uBAAuB,CAAC,CAAC,IAAGD,OAAO,EAAA2B,IAAA;QACxC5E,MAAM,CAACoD,eAAe,CAAC5C,KAAA,CAAKuC,KAAK,CAAC,IAAGE,OAAO,IAAInB,QAAQ,EAAA8C,IAAA;QAC1D,CAAC;MACJ;;MAEA;QACE1F,KAAA,CAAA8F,aAAA,UAAAzB,QAAA,GAAO,YAAUrD,aAAa,CAACC,IAAK,IAAK+D,UAAU;QACjDhF,KAAA,CAAA8F,aAAA,CAAClF,mBAAmB,IAACmF,kBAAkB,EAAEzE,KAAA,CAAK0E,UAAW;QACvDhG,KAAA,CAAA8F,aAAA,UAAW1B,UAAa;QACL,CAAC;QACtBpE,KAAA,CAAA8F,aAAA,SAAUpC,UAAU;QAClB1D,KAAA,CAAA8F,aAAA,WAAMnC,SAAS,EAAE7C,MAAM,CAACmF,WAAW,CAAC,CAAE,EAAE;QACpC,CAAC;QACN3E,KAAA,CAAKkB,KAAK,CAAC0D,QAAQ,IAAI5E,KAAA,CAAK6E,aAAa,CAAC;QACtC,CAAC;;IAEZ,CAAC,CAAA7E,KAAA;;IAEOkE,eAAe,GAAG,oBAAMY,OAAO,CAAC9E,KAAA,CAAKc,OAAO,CAACwD,IAAI,CAAC,GAAAtE,KAAA;;;;;;;;;;;;IAYlDqD,YAAY,GAA+C,UAAC0B,CAAC,EAAK;MACxE/E,KAAA,CAAKkB,KAAK,CAACc,aAAa,YAAxBhC,KAAA,CAAKkB,KAAK,CAACc,aAAa,CAAGhC,KAAA,CAAKkB,KAAK,CAAC2B,KAAK,CAAC;;MAE5C,IAAI7C,KAAA,CAAKkE,eAAe,CAAC,CAAC,EAAE;QAC1BlE,KAAA,CAAKc,OAAO,CAACkE,QAAQ,CAAChF,KAAA,CAAKkB,KAAK,CAAC2B,KAAK,CAAC;MACzC;;MAEA7C,KAAA,CAAKkB,KAAK,CAACkC,QAAQ,YAAnBpD,KAAA,CAAKkB,KAAK,CAACkC,QAAQ,CAAG2B,CAAC,CAAC;IAC1B,CAAC,CAAA/E,KAAA;;IAEO8D,eAAe,GAA8C,UAACiB,CAAC,EAAK;MAC1E/E,KAAA,CAAKkB,KAAK,CAACW,WAAW,YAAtB7B,KAAA,CAAKkB,KAAK,CAACW,WAAW,CAAGkD,CAAC,CAAC;IAC7B,CAAC,CAAA/E,KAAA;;IAEO+D,gBAAgB,GAA8C,UAACgB,CAAC,EAAK;MAC3E/E,KAAA,CAAKkB,KAAK,CAACY,YAAY,YAAvB9B,KAAA,CAAKkB,KAAK,CAACY,YAAY,CAAGiD,CAAC,CAAC;IAC9B,CAAC,CAAA/E,KAAA;;IAEOgE,gBAAgB,GAA8C,UAACe,CAAC,EAAK;MAC3E/E,KAAA,CAAKkB,KAAK,CAACa,YAAY,YAAvB/B,KAAA,CAAKkB,KAAK,CAACa,YAAY,CAAGgD,CAAC,CAAC;IAC9B,CAAC,CAAA/E,KAAA;;IAEOuD,WAAW,GAAG,UAACwB,CAAwB,EAAK;MAClD,IAAI,CAAC/E,KAAA,CAAKc,OAAO,CAACQ,QAAQ,EAAE;QAC1B;QACA;QACA3C,YAAY,CAACsG,qBAAqB,YAAlCtG,YAAY,CAACsG,qBAAqB,CAAG,YAAM;UACzC,IAAIlG,WAAW,CAACmG,cAAc,IAAInG,WAAW,CAACoG,YAAY,EAAE;YAC1DnF,KAAA,CAAKoF,QAAQ,CAAC,EAAEzE,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;UAC5C;QACF,CAAC,CAAC;;QAEF,IAAIX,KAAA,CAAKkB,KAAK,CAACoC,OAAO,EAAE;UACtBtD,KAAA,CAAKkB,KAAK,CAACoC,OAAO,CAACyB,CAAC,CAAC;QACvB;MACF;IACF,CAAC,CAAA/E,KAAA;;IAEO0E,UAAU,GAAG,oBAAM1E,KAAA,CAAKoF,QAAQ,CAAC,EAAEzE,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,GAAAX,KAAA;;IAE9DyD,UAAU,GAAG,UAACsB,CAAqC,EAAK;MAC9D/E,KAAA,CAAK0E,UAAU,CAAC,CAAC;MACjB1E,KAAA,CAAKkB,KAAK,CAACsC,MAAM,YAAjBxD,KAAA,CAAKkB,KAAK,CAACsC,MAAM,CAAGuB,CAAC,CAAC;IACxB,CAAC,QAAA/E,KAAA,EAAAqF,cAAA,CAAAzF,KAAA,EAAAG,gBAAA,MAAAuF,MAAA,GAAA1F,KAAA,CAAA2F,SAAA,CAAAD,MAAA,CAhNO3B,oBAAoB,GAA5B,SAAAA,qBAAA,EAA+B,CAC7B,QAAQ,IAAI,CAAChC,IAAI,GACf,KAAK,OAAO,CACV,OAAOnC,MAAM,CAACgG,SAAS,CAAC,IAAI,CAACjD,KAAK,CAAC,CACrC,KAAK,QAAQ,CACX,OAAO/C,MAAM,CAACiG,UAAU,CAAC,IAAI,CAAClD,KAAK,CAAC,CACtC,KAAK,OAAO,CACZ,QACE,OAAO/C,MAAM,CAACkG,SAAS,CAAC,IAAI,CAACnD,KAAK,CAAC,CACvC,CACF,CAAC,CAAA+C,MAAA,CAEO9C,sBAAsB,GAA9B,SAAAA,uBAAA,EAAiC,CAC/B,QAAQ,IAAI,CAACb,IAAI,GACf,KAAK,OAAO,CACV,OAAOnC,MAAM,CAACmG,WAAW,CAAC,IAAI,CAACpD,KAAK,CAAC,CACvC,KAAK,QAAQ,CACX,OAAO/C,MAAM,CAACoG,YAAY,CAAC,IAAI,CAACrD,KAAK,CAAC,CACxC,KAAK,OAAO,CACZ,QACE,OAAO/C,MAAM,CAACqG,WAAW,CAAC,IAAI,CAACtD,KAAK,CAAC,CACzC,CACF,CAAC,CAAA+C,MAAA,CAEO5C,uBAAuB,GAA/B,SAAAA,wBAAA,EAAkC,CAChC,QAAQ,IAAI,CAACf,IAAI,GACf,KAAK,OAAO,CACV,OAAOnC,MAAM,CAACsG,YAAY,CAAC,IAAI,CAACvD,KAAK,CAAC,CACxC,KAAK,QAAQ,CACX,OAAO/C,MAAM,CAACuG,aAAa,CAAC,IAAI,CAACxD,KAAK,CAAC,CACzC,KAAK,OAAO,CACZ,QACE,OAAO/C,MAAM,CAACwG,YAAY,CAAC,IAAI,CAACzD,KAAK,CAAC,CAC1C,CACF,CAAC,CAAA+C,MAAA,CAEMW,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACExH,KAAA,CAAA8F,aAAA,CAAC5F,YAAY,CAACuH,QAAQ,QACnB,UAAC5D,KAAK,EAAK,CACV2D,MAAI,CAAC3D,KAAK,GAAGA,KAAK,CAClB,oBACE7D,KAAA,CAAA8F,aAAA,CAAC3F,aAAa,EAAAkE,QAAA,GAACqD,WAAW,EAAEF,MAAI,CAACG,WAAY,IAAKH,MAAI,CAACtF,QAAQ,CAAC,CAAC,GAC9DsF,MAAI,CAACjF,UACO,CAAC,CAEpB,CACqB,CAAC,CAE5B,CAAC,CAED;AACF;AACA,KAFE,CAAAqE,MAAA,CAGO3C,KAAK,GAAZ,SAAAA,MAAA,EAAe,KAAA2D,qBAAA,CACbvH,WAAW,CAACoG,YAAY,GAAG,IAAI,CAC/B,CAAAmB,qBAAA,OAAI,CAACvF,OAAO,CAACwF,OAAO,aAApBD,qBAAA,CAAsB3D,KAAK,CAAC,CAAC,CAC/B,CAAC,CAED;AACF;AACA,KAFE,CAAA2C,MAAA,CAGOkB,IAAI,GAAX,SAAAA,KAAA,EAAc,KAAAC,sBAAA,CACZ,CAAAA,sBAAA,OAAI,CAAC1F,OAAO,CAACwF,OAAO,aAApBE,sBAAA,CAAsBD,IAAI,CAAC,CAAC,CAC9B,CAAC,CAAAlB,MAAA,CA2FOT,aAAa,GAArB,SAAAA,cAAA,EAAwB,KAAA6B,IAAA,CACtB,IAAMC,iBAAiB,GAAG7H,EAAE,EAAA4H,IAAA,OAAAA,IAAA,CACzBlH,MAAM,CAACoH,OAAO,CAAC,IAAI,CAACrE,KAAK,CAAC,IAAG,IAAI,EAAAmE,IAAA,CACjClH,MAAM,CAACqH,eAAe,CAAC,IAAI,CAACtE,KAAK,CAAC,IAAG,CAAC,EAAE,IAAI,CAACrB,KAAK,CAACI,QAAQ,IAAI,IAAI,CAACR,OAAO,CAACQ,QAAQ,CAAC,EAAAoF,IAAA,CACrFlH,MAAM,CAACsH,WAAW,CAAC,CAAC,IAAG3H,MAAM,IAAID,MAAM,EAAAwH,IAAA,CACzC,CAAC,CAEF,oBAAOhI,KAAA,CAAA8F,aAAA,UAAKnC,SAAS,EAAEsE,iBAAkB,IAAE,IAAI,CAACzF,KAAK,CAAC0D,QAAc,CAAC,CACvE,CAAC,QAAAhF,KAAA,GA1L2BlB,KAAK,CAACqI,SAAS,GAAAjH,MAAA,CAC7BkH,mBAAmB,GAAG,OAAO,EAAAlH,MAAA,CAC7BmH,WAAW,GAAG,OAAO,EAAAnH,MAAA,CAMrBe,YAAY,GAAiB,EACzCe,OAAO,EAAE,KAAK,CAChB,CAAC,EAAA9B,MAAA,CAIaoH,WAAW,GAAG9H,iBAAiB,EAAAU,MAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
|
|
@@ -6,15 +6,15 @@ import type { TGetRootNode } from '../../lib/rootNode';
|
|
|
6
6
|
import type { RadioGroupContextType } from '../RadioGroup/RadioGroupContext';
|
|
7
7
|
import type { SizeProp } from '../../lib/types/props';
|
|
8
8
|
export interface RadioProps<T> extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Override<React.InputHTMLAttributes<HTMLInputElement>, {
|
|
9
|
-
/**
|
|
9
|
+
/** Меняет визуальное отображение поля на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */
|
|
10
10
|
error?: boolean;
|
|
11
|
-
/**
|
|
11
|
+
/** Меняет визуальное отображение поля на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */
|
|
12
12
|
warning?: boolean;
|
|
13
|
-
/**
|
|
13
|
+
/** Размер радиокнопки. */
|
|
14
14
|
size?: SizeProp;
|
|
15
|
-
/**
|
|
15
|
+
/** Задаёт состояние фокуса. */
|
|
16
16
|
focused?: boolean;
|
|
17
|
-
/**
|
|
17
|
+
/** Задаёт функцию, которая вызывается при изменении `value`. */
|
|
18
18
|
onValueChange?: (value: T) => void;
|
|
19
19
|
/** Задает HTML-событие `onmouseenter`.
|
|
20
20
|
* @ignore */
|
|
@@ -25,7 +25,7 @@ export interface RadioProps<T> extends Pick<AriaAttributes, 'aria-label'>, Commo
|
|
|
25
25
|
/** Задает HTML-событие `onmouseover`.
|
|
26
26
|
* @ignore */
|
|
27
27
|
onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;
|
|
28
|
-
/**
|
|
28
|
+
/** Задаёт значение. */
|
|
29
29
|
value: T;
|
|
30
30
|
}> {
|
|
31
31
|
}
|
|
@@ -36,8 +36,9 @@ export declare const RadioDataTids: {
|
|
|
36
36
|
readonly root: "Radio__root";
|
|
37
37
|
};
|
|
38
38
|
type DefaultProps = Required<Pick<RadioProps<any>, 'focused'>>;
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
39
|
+
/** Радиокнопка позволяет выбрать одно значение из нескольких. Подходит при небольшом количестве вариантов — 2–5.
|
|
40
|
+
*
|
|
41
|
+
* Для создания группы радиокнопок используйте специальный контейнер — компонент [RadioGroup](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_input-data-radiogroup--docs).
|
|
41
42
|
*/
|
|
42
43
|
export declare class Radio<T> extends React.Component<RadioProps<T>, RadioState> {
|
|
43
44
|
static __KONTUR_REACT_UI__: string;
|
|
@@ -58,11 +59,11 @@ export declare class Radio<T> extends React.Component<RadioProps<T>, RadioState>
|
|
|
58
59
|
private getCircleSizeClassName;
|
|
59
60
|
private getCheckedSizeClassName;
|
|
60
61
|
render(): React.JSX.Element;
|
|
61
|
-
/**
|
|
62
|
+
/** Программно устанавливает фокус на радиокнопку. Появляется фокусная обводка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
|
|
62
63
|
* @public
|
|
63
64
|
*/
|
|
64
65
|
focus(): void;
|
|
65
|
-
/**
|
|
66
|
+
/** Программно снимает фокус с радиокнопки.
|
|
66
67
|
* @public
|
|
67
68
|
*/
|
|
68
69
|
blur(): void;
|
|
@@ -20,14 +20,7 @@ export var RadioGroupDataTids = {
|
|
|
20
20
|
root: 'RadioGroup__root'
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
/**
|
|
24
|
-
* Группа радиокнопок `RadioGroup` используется для выбора одного значения из нескольких, когда вариантов выбора немного — 2–5.
|
|
25
|
-
*
|
|
26
|
-
* `children` может содержать любую разметку с компонентами Radio, если не передан параметр `items`.
|
|
27
|
-
* Каждому компоненту Radio нужно указать параметр `value`, такого же типа, как и параметр `value` самой радиогруппы.
|
|
28
|
-
*
|
|
29
|
-
* Значения активного элемента сравниваются по строгому равенству `===`.
|
|
30
|
-
*/
|
|
23
|
+
/** Группирует радиокнопки. Контейнер для компонента [Radio](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_input-data-radio--docs). */
|
|
31
24
|
export var RadioGroup = rootNode(_class = (_RadioGroup = /*#__PURE__*/function (_React$Component) {
|
|
32
25
|
function RadioGroup(props) {
|
|
33
26
|
var _this;
|
|
@@ -133,7 +126,7 @@ export var RadioGroup = rootNode(_class = (_RadioGroup = /*#__PURE__*/function (
|
|
|
133
126
|
value: _this2.getRadioGroupContextValue()
|
|
134
127
|
}, _this2.renderChildren()))));
|
|
135
128
|
});
|
|
136
|
-
} /**
|
|
129
|
+
} /** Программно устанавливает фокус на радиокнопку. Появляется фокусная обводка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
|
|
137
130
|
* @public
|
|
138
131
|
*/;
|
|
139
132
|
_proto.focus = function focus() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","invariant","getRandomID","isNonNullable","Radio","createPropsGetter","FocusTrap","CommonWrapper","cx","rootNode","getVisualStateDataAttributes","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","styles","Prevent","RadioGroupContext","RadioGroupDataTids","root","RadioGroup","_class","_RadioGroup","_React$Component","props","_this","call","name","getProps","defaultProps","getRadioGroupContextValue","activeItem","getValue","onSelect","handleSelect","getName","disabled","error","warning","isControlled","value","state","setState","onValueChange","renderRadio","itemValue","data","index","_cx","itemProps","key","getKeyByItem","className","item","itemFirst","itemInline","inline","createElement","_extends","role","renderItem","toKey","undefined","ref","element","node","defaultValue","_inheritsLoose","_proto","prototype","render","_this2","_this$props","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","ariaDescribedby","style","handlers","Consumer","flags","_cx2","featureFlags","rootNodeRef","setRootNode","removeBaselineSpacer","radioGroupRemoveBaselineSpacer","Provider","renderChildren","focus","radio","querySelector","_this$props2","items","children","mapItems","Component","__KONTUR_REACT_UI__","displayName","_value","fn","result","_iterator","_createForOfIteratorHelperLoose","_step","done","entry","_normalizeEntry","normalizeEntry","push","Array","isArray"],"sources":["RadioGroup.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport invariant from 'invariant';\n\nimport { getRandomID, isNonNullable } from '../../lib/utils';\nimport { Radio } from '../Radio';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Nullable } from '../../typings/utility-types';\nimport { FocusTrap } from '../../internal/FocusTrap';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './RadioGroup.styles';\nimport { Prevent } from './Prevent';\nimport type { RadioGroupContextType } from './RadioGroupContext';\nimport { RadioGroupContext } from './RadioGroupContext';\n\nexport interface RadioGroupProps<T = string | number> extends CommonProps {\n /** Задает значение по умолчанию. Должно быть одним из значений дочерних радиокнопок или значений из параметра `items`. */\n defaultValue?: T;\n\n /** Задает значение радиогруппы. Должно быть одним из значений радиокнопок.\n * Если не указано, то компонент будет работать, как неконтролируемый. */\n value?: T;\n\n /** Задает массив параметров радиокнопок. Может быть типа `Array<Value>` или `Array<[Value, Data]>`,\n * где тип `Value` — значение радиокнопки, а `Data` — значение которое будет использовано вторым параметром в `renderItem`.\n * Тип `Array<Value>` будет приведен к типу `Array<[Value, Value]>`.\n * Может быть использовано, если не передан параметр `children`. */\n items?: T[] | Array<[T, React.ReactNode]>;\n\n /** Устанавливает аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется случайное имя. */\n name?: string;\n\n /** Получает уникальный ключ по элементу\n * @param item - элемент, по которуму нужно получить ключ. */\n toKey?: (item: T) => string | number;\n\n /** Делает все радиокнопки недоступными. */\n disabled?: boolean;\n\n /** Переводит все радиокнопки в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Переводит все радиокнопки в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Выравнивает элементы items в строку. Не работает с children. */\n inline?: boolean;\n\n /** Задает ширину радиогруппы. Не работает с `children`. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая отображает контент радиокнопки. Не работает с `children`.\n * @param {Value} itemValue - значение радиокнопки.\n * @param {Data} data - значение для отрисовки радиокнопки. */\n renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n\n /** Задает функцию, которая вызывается при изменении значения радиогруппы (value). */\n onValueChange?: (value: T) => void;\n\n /** Задает функцию, которая вызывается при потере радиогруппой фокуса. */\n onBlur?: (event: FocusEvent) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: () => any;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: () => any;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: () => any;\n}\n\nexport interface RadioGroupState<T> {\n activeItem?: T;\n}\n\nexport const RadioGroupDataTids = {\n root: 'RadioGroup__root',\n} as const;\n\ntype DefaultProps = Required<Pick<RadioGroupProps<unknown>, 'renderItem'>>;\n\n/**\n * Группа радиокнопок `RadioGroup` используется для выбора одного значения из нескольких, когда вариантов выбора немного — 2–5.\n *\n * `children` может содержать любую разметку с компонентами Radio, если не передан параметр `items`.\n * Каждому компоненту Radio нужно указать параметр `value`, такого же типа, как и параметр `value` самой радиогруппы.\n *\n * Значения активного элемента сравниваются по строгому равенству `===`.\n */\n@rootNode\nexport class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {\n public static __KONTUR_REACT_UI__ = 'RadioGroup';\n public static displayName = 'RadioGroup';\n\n public static defaultProps: DefaultProps = {\n renderItem,\n };\n\n public static Prevent = Prevent;\n\n private node: Nullable<HTMLSpanElement>;\n private name = getRandomID();\n private getProps = createPropsGetter(RadioGroup.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private featureFlags!: ReactUIFeatureFlags;\n\n constructor(props: RadioGroupProps<T>) {\n super(props);\n\n this.state = {\n activeItem: this.props.defaultValue,\n };\n }\n\n private getRadioGroupContextValue = (): RadioGroupContextType<T> => {\n return {\n activeItem: this.getValue(),\n onSelect: this.handleSelect,\n name: this.getName(),\n disabled: this.props.disabled,\n error: this.props.error,\n warning: this.props.warning,\n };\n };\n\n public render() {\n const {\n width,\n onMouseLeave,\n onMouseOver,\n onMouseEnter,\n onBlur,\n 'aria-describedby': ariaDescribedby,\n disabled,\n } = this.props;\n const style = {\n width: width ?? 'auto',\n };\n const handlers = {\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n };\n\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...this.props}\n {...getVisualStateDataAttributes({ disabled })}\n >\n <FocusTrap onBlur={onBlur}>\n <span\n data-tid={RadioGroupDataTids.root}\n ref={this.ref}\n style={style}\n className={cx({\n [styles.root()]: true,\n [styles.removeBaselineSpacer()]: this.featureFlags.radioGroupRemoveBaselineSpacer,\n })}\n role=\"radiogroup\"\n {...handlers}\n aria-describedby={ariaDescribedby}\n >\n <RadioGroupContext.Provider value={this.getRadioGroupContextValue()}>\n {this.renderChildren()}\n </RadioGroupContext.Provider>\n </span>\n </FocusTrap>\n </CommonWrapper>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n const node = this.node;\n if (!node) {\n return;\n }\n\n let radio = node.querySelector('input[type=\"radio\"]:checked') as Nullable<HTMLInputElement>;\n\n // If no checked radios, try get first radio\n if (!radio || radio.disabled) {\n radio = node.querySelector('input[type=\"radio\"]:not([disabled])') as Nullable<HTMLInputElement>;\n }\n\n if (radio) {\n radio.focus();\n }\n }\n\n private getValue = () => (this.isControlled() ? this.props.value : this.state.activeItem);\n\n private getName = () => this.props.name || this.name;\n\n private isControlled = () => isNonNullable(this.props.value);\n\n private handleSelect = (value: T) => {\n if (!this.isControlled()) {\n this.setState({ activeItem: value });\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private renderChildren() {\n const { items, children } = this.props;\n invariant((!items && children) || (items && !children), 'Either items or children must be passed, not both');\n return items ? mapItems<T>(this.renderRadio, items) : children;\n }\n\n private renderRadio = (itemValue: T, data: React.ReactNode, index: number): JSX.Element => {\n const itemProps = {\n key: this.getKeyByItem(itemValue),\n className: cx({\n [styles.item()]: true,\n [styles.itemFirst()]: index === 0,\n [styles.itemInline()]: !!this.props.inline,\n }),\n };\n\n return (\n <span {...itemProps} role=\"presentation\">\n <Radio value={itemValue}>{this.getProps().renderItem(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private getKeyByItem = (itemValue: T) => {\n if (this.props.toKey) {\n return this.props.toKey(itemValue);\n }\n return typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : undefined;\n };\n\n private ref = (element: HTMLSpanElement) => {\n this.node = element;\n };\n}\n\nfunction renderItem<T>(_value: T, data: React.ReactNode) {\n return data;\n}\n\nfunction mapItems<T>(\n fn: (value: T, data: React.ReactNode, index: number) => React.ReactNode,\n items: T[] | Array<[T, React.ReactNode]>,\n) {\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, data] = normalizeEntry<T>(entry);\n result.push(fn(value, data, index));\n ++index;\n }\n return result;\n}\n\nfunction normalizeEntry<T>(entry: T | [T, React.ReactNode]): [T, React.ReactNode] {\n if (!Array.isArray(entry)) {\n return [entry, entry as unknown as React.ReactNode];\n }\n return entry;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","invariant","getRandomID","isNonNullable","Radio","createPropsGetter","FocusTrap","CommonWrapper","cx","rootNode","getVisualStateDataAttributes","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","styles","Prevent","RadioGroupContext","RadioGroupDataTids","root","RadioGroup","_class","_RadioGroup","_React$Component","props","_this","call","name","getProps","defaultProps","getRadioGroupContextValue","activeItem","getValue","onSelect","handleSelect","getName","disabled","error","warning","isControlled","value","state","setState","onValueChange","renderRadio","itemValue","data","index","_cx","itemProps","key","getKeyByItem","className","item","itemFirst","itemInline","inline","createElement","_extends","role","renderItem","toKey","undefined","ref","element","node","defaultValue","_inheritsLoose","_proto","prototype","render","_this2","_this$props","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","ariaDescribedby","style","handlers","Consumer","flags","_cx2","featureFlags","rootNodeRef","setRootNode","removeBaselineSpacer","radioGroupRemoveBaselineSpacer","Provider","renderChildren","focus","radio","querySelector","_this$props2","items","children","mapItems","Component","__KONTUR_REACT_UI__","displayName","_value","fn","result","_iterator","_createForOfIteratorHelperLoose","_step","done","entry","_normalizeEntry","normalizeEntry","push","Array","isArray"],"sources":["RadioGroup.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport invariant from 'invariant';\n\nimport { getRandomID, isNonNullable } from '../../lib/utils';\nimport { Radio } from '../Radio';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Nullable } from '../../typings/utility-types';\nimport { FocusTrap } from '../../internal/FocusTrap';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './RadioGroup.styles';\nimport { Prevent } from './Prevent';\nimport type { RadioGroupContextType } from './RadioGroupContext';\nimport { RadioGroupContext } from './RadioGroupContext';\n\nexport interface RadioGroupProps<T = string | number> extends CommonProps {\n /** Задаёт значение по умолчанию. Должно быть одним из значений дочерних радиокнопок или значений из `items`. */\n defaultValue?: T;\n\n /** Задаёт значение группы радиокнопок. Должно быть одним из значений радиокнопок.\n * Если не указано, то компонент будет работать как неконтролируемый. */\n value?: T;\n\n /** Задаёт массив параметров радиокнопок. Может быть типа `Array<Value>` или `Array<[Value, Data]>`,\n * где тип `Value` — значение радиокнопки, а `Data` — значение которое будет использовано вторым параметром в `renderItem`.\n * Тип `Array<Value>` будет приведен к типу `Array<[Value, Value]>`.\n * Может быть использовано, если не передан `children`. */\n items?: T[] | Array<[T, React.ReactNode]>;\n\n /** Устанавливает атрибут `name` для дочерних радиокнопок. Если не указан, то сгенерируется случайное имя. */\n name?: string;\n\n /** Получает уникальный ключ по элементу.\n * @param item - элемент, по которому нужно получить ключ. */\n toKey?: (item: T) => string | number;\n\n /** Блокирует все радиокнопки в группе. */\n disabled?: boolean;\n\n /** Меняет визуальное отображение всех радиокнопок на состояние «предупреждение». */\n warning?: boolean;\n\n /** Меняет визуальное отображение всех радиокнопок на состояние «ошибка». */\n error?: boolean;\n\n /** Размещает радиокнопки в строку. Работает только со значениями, переданными через `items`, не работает с `children`. */\n inline?: boolean;\n\n /** Ширина радиогруппы. Работает только со значениями, переданными через `items`, не работает с `children`. */\n width?: React.CSSProperties['width'];\n\n /** Задаёт функцию, которая отображает контент радиокнопки. Работает только со значениями, переданными через `items`, не работает с `children`.\n * @param {Value} itemValue - значение радиокнопки.\n * @param {Data} data - значение для отрисовки радиокнопки. */\n renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n\n /** Задаёт функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: T) => void;\n\n /** Задаёт функцию, которая вызывается при потере радиогруппой фокуса. */\n onBlur?: (event: FocusEvent) => void;\n\n /** Задаёт функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: () => any;\n\n /** Задаёт функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: () => any;\n\n /** Задаёт функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). Смотрите разницу с `onMouseOver` в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: () => any;\n}\n\nexport interface RadioGroupState<T> {\n activeItem?: T;\n}\n\nexport const RadioGroupDataTids = {\n root: 'RadioGroup__root',\n} as const;\n\ntype DefaultProps = Required<Pick<RadioGroupProps<unknown>, 'renderItem'>>;\n\n/** Группирует радиокнопки. Контейнер для компонента [Radio](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_input-data-radio--docs). */\n@rootNode\nexport class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {\n public static __KONTUR_REACT_UI__ = 'RadioGroup';\n public static displayName = 'RadioGroup';\n\n public static defaultProps: DefaultProps = {\n renderItem,\n };\n\n public static Prevent = Prevent;\n\n private node: Nullable<HTMLSpanElement>;\n private name = getRandomID();\n private getProps = createPropsGetter(RadioGroup.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private featureFlags!: ReactUIFeatureFlags;\n\n constructor(props: RadioGroupProps<T>) {\n super(props);\n\n this.state = {\n activeItem: this.props.defaultValue,\n };\n }\n\n private getRadioGroupContextValue = (): RadioGroupContextType<T> => {\n return {\n activeItem: this.getValue(),\n onSelect: this.handleSelect,\n name: this.getName(),\n disabled: this.props.disabled,\n error: this.props.error,\n warning: this.props.warning,\n };\n };\n\n public render() {\n const {\n width,\n onMouseLeave,\n onMouseOver,\n onMouseEnter,\n onBlur,\n 'aria-describedby': ariaDescribedby,\n disabled,\n } = this.props;\n const style = {\n width: width ?? 'auto',\n };\n const handlers = {\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n };\n\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...this.props}\n {...getVisualStateDataAttributes({ disabled })}\n >\n <FocusTrap onBlur={onBlur}>\n <span\n data-tid={RadioGroupDataTids.root}\n ref={this.ref}\n style={style}\n className={cx({\n [styles.root()]: true,\n [styles.removeBaselineSpacer()]: this.featureFlags.radioGroupRemoveBaselineSpacer,\n })}\n role=\"radiogroup\"\n {...handlers}\n aria-describedby={ariaDescribedby}\n >\n <RadioGroupContext.Provider value={this.getRadioGroupContextValue()}>\n {this.renderChildren()}\n </RadioGroupContext.Provider>\n </span>\n </FocusTrap>\n </CommonWrapper>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n /** Программно устанавливает фокус на радиокнопку. Появляется фокусная обводка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus() {\n const node = this.node;\n if (!node) {\n return;\n }\n\n let radio = node.querySelector('input[type=\"radio\"]:checked') as Nullable<HTMLInputElement>;\n\n // If no checked radios, try get first radio\n if (!radio || radio.disabled) {\n radio = node.querySelector('input[type=\"radio\"]:not([disabled])') as Nullable<HTMLInputElement>;\n }\n\n if (radio) {\n radio.focus();\n }\n }\n\n private getValue = () => (this.isControlled() ? this.props.value : this.state.activeItem);\n\n private getName = () => this.props.name || this.name;\n\n private isControlled = () => isNonNullable(this.props.value);\n\n private handleSelect = (value: T) => {\n if (!this.isControlled()) {\n this.setState({ activeItem: value });\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private renderChildren() {\n const { items, children } = this.props;\n invariant((!items && children) || (items && !children), 'Either items or children must be passed, not both');\n return items ? mapItems<T>(this.renderRadio, items) : children;\n }\n\n private renderRadio = (itemValue: T, data: React.ReactNode, index: number): JSX.Element => {\n const itemProps = {\n key: this.getKeyByItem(itemValue),\n className: cx({\n [styles.item()]: true,\n [styles.itemFirst()]: index === 0,\n [styles.itemInline()]: !!this.props.inline,\n }),\n };\n\n return (\n <span {...itemProps} role=\"presentation\">\n <Radio value={itemValue}>{this.getProps().renderItem(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private getKeyByItem = (itemValue: T) => {\n if (this.props.toKey) {\n return this.props.toKey(itemValue);\n }\n return typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : undefined;\n };\n\n private ref = (element: HTMLSpanElement) => {\n this.node = element;\n };\n}\n\nfunction renderItem<T>(_value: T, data: React.ReactNode) {\n return data;\n}\n\nfunction mapItems<T>(\n fn: (value: T, data: React.ReactNode, index: number) => React.ReactNode,\n items: T[] | Array<[T, React.ReactNode]>,\n) {\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, data] = normalizeEntry<T>(entry);\n result.push(fn(value, data, index));\n ++index;\n }\n return result;\n}\n\nfunction normalizeEntry<T>(entry: T | [T, React.ReactNode]): [T, React.ReactNode] {\n if (!Array.isArray(entry)) {\n return [entry, entry as unknown as React.ReactNode];\n }\n return entry;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,46 +4,46 @@ import type { CommonProps } from '../../internal/CommonWrapper';
|
|
|
4
4
|
import type { TGetRootNode } from '../../lib/rootNode';
|
|
5
5
|
import { Prevent } from './Prevent';
|
|
6
6
|
export interface RadioGroupProps<T = string | number> extends CommonProps {
|
|
7
|
-
/**
|
|
7
|
+
/** Задаёт значение по умолчанию. Должно быть одним из значений дочерних радиокнопок или значений из `items`. */
|
|
8
8
|
defaultValue?: T;
|
|
9
|
-
/**
|
|
10
|
-
* Если не указано, то компонент будет
|
|
9
|
+
/** Задаёт значение группы радиокнопок. Должно быть одним из значений радиокнопок.
|
|
10
|
+
* Если не указано, то компонент будет работать как неконтролируемый. */
|
|
11
11
|
value?: T;
|
|
12
|
-
/**
|
|
12
|
+
/** Задаёт массив параметров радиокнопок. Может быть типа `Array<Value>` или `Array<[Value, Data]>`,
|
|
13
13
|
* где тип `Value` — значение радиокнопки, а `Data` — значение которое будет использовано вторым параметром в `renderItem`.
|
|
14
14
|
* Тип `Array<Value>` будет приведен к типу `Array<[Value, Value]>`.
|
|
15
|
-
* Может быть использовано, если не передан
|
|
15
|
+
* Может быть использовано, если не передан `children`. */
|
|
16
16
|
items?: T[] | Array<[T, React.ReactNode]>;
|
|
17
|
-
/** Устанавливает
|
|
17
|
+
/** Устанавливает атрибут `name` для дочерних радиокнопок. Если не указан, то сгенерируется случайное имя. */
|
|
18
18
|
name?: string;
|
|
19
|
-
/** Получает уникальный ключ по
|
|
20
|
-
* @param item - элемент, по
|
|
19
|
+
/** Получает уникальный ключ по элементу.
|
|
20
|
+
* @param item - элемент, по которому нужно получить ключ. */
|
|
21
21
|
toKey?: (item: T) => string | number;
|
|
22
|
-
/**
|
|
22
|
+
/** Блокирует все радиокнопки в группе. */
|
|
23
23
|
disabled?: boolean;
|
|
24
|
-
/**
|
|
24
|
+
/** Меняет визуальное отображение всех радиокнопок на состояние «предупреждение». */
|
|
25
25
|
warning?: boolean;
|
|
26
|
-
/**
|
|
26
|
+
/** Меняет визуальное отображение всех радиокнопок на состояние «ошибка». */
|
|
27
27
|
error?: boolean;
|
|
28
|
-
/**
|
|
28
|
+
/** Размещает радиокнопки в строку. Работает только со значениями, переданными через `items`, не работает с `children`. */
|
|
29
29
|
inline?: boolean;
|
|
30
|
-
/**
|
|
30
|
+
/** Ширина радиогруппы. Работает только со значениями, переданными через `items`, не работает с `children`. */
|
|
31
31
|
width?: React.CSSProperties['width'];
|
|
32
|
-
/**
|
|
32
|
+
/** Задаёт функцию, которая отображает контент радиокнопки. Работает только со значениями, переданными через `items`, не работает с `children`.
|
|
33
33
|
* @param {Value} itemValue - значение радиокнопки.
|
|
34
34
|
* @param {Data} data - значение для отрисовки радиокнопки. */
|
|
35
35
|
renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;
|
|
36
36
|
/** @ignore */
|
|
37
37
|
'aria-describedby'?: AriaAttributes['aria-describedby'];
|
|
38
|
-
/**
|
|
38
|
+
/** Задаёт функцию, которая вызывается при изменении `value`. */
|
|
39
39
|
onValueChange?: (value: T) => void;
|
|
40
|
-
/**
|
|
40
|
+
/** Задаёт функцию, которая вызывается при потере радиогруппой фокуса. */
|
|
41
41
|
onBlur?: (event: FocusEvent) => void;
|
|
42
|
-
/**
|
|
42
|
+
/** Задаёт функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */
|
|
43
43
|
onMouseLeave?: () => any;
|
|
44
|
-
/**
|
|
44
|
+
/** Задаёт функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */
|
|
45
45
|
onMouseOver?: () => any;
|
|
46
|
-
/**
|
|
46
|
+
/** Задаёт функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). Смотрите разницу с `onMouseOver` в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */
|
|
47
47
|
onMouseEnter?: () => any;
|
|
48
48
|
}
|
|
49
49
|
export interface RadioGroupState<T> {
|
|
@@ -53,14 +53,7 @@ export declare const RadioGroupDataTids: {
|
|
|
53
53
|
readonly root: "RadioGroup__root";
|
|
54
54
|
};
|
|
55
55
|
type DefaultProps = Required<Pick<RadioGroupProps<unknown>, 'renderItem'>>;
|
|
56
|
-
/**
|
|
57
|
-
* Группа радиокнопок `RadioGroup` используется для выбора одного значения из нескольких, когда вариантов выбора немного — 2–5.
|
|
58
|
-
*
|
|
59
|
-
* `children` может содержать любую разметку с компонентами Radio, если не передан параметр `items`.
|
|
60
|
-
* Каждому компоненту Radio нужно указать параметр `value`, такого же типа, как и параметр `value` самой радиогруппы.
|
|
61
|
-
*
|
|
62
|
-
* Значения активного элемента сравниваются по строгому равенству `===`.
|
|
63
|
-
*/
|
|
56
|
+
/** Группирует радиокнопки. Контейнер для компонента [Radio](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_input-data-radio--docs). */
|
|
64
57
|
export declare class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {
|
|
65
58
|
static __KONTUR_REACT_UI__: string;
|
|
66
59
|
static displayName: string;
|
|
@@ -75,7 +68,7 @@ export declare class RadioGroup<T> extends React.Component<RadioGroupProps<T>, R
|
|
|
75
68
|
constructor(props: RadioGroupProps<T>);
|
|
76
69
|
private getRadioGroupContextValue;
|
|
77
70
|
render(): React.JSX.Element;
|
|
78
|
-
/**
|
|
71
|
+
/** Программно устанавливает фокус на радиокнопку. Появляется фокусная обводка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
|
|
79
72
|
* @public
|
|
80
73
|
*/
|
|
81
74
|
focus(): void;
|
|
@@ -401,6 +401,11 @@ export var Textarea = rootNode(_class = withSize(_class = (_Textarea = /*#__PURE
|
|
|
401
401
|
if (this.node) {
|
|
402
402
|
this.node.blur();
|
|
403
403
|
}
|
|
404
|
+
} /**
|
|
405
|
+
* @public
|
|
406
|
+
*/;
|
|
407
|
+
_proto.getNode = function getNode() {
|
|
408
|
+
return this.node;
|
|
404
409
|
};
|
|
405
410
|
return Textarea;
|
|
406
411
|
}(React.Component), _Textarea.__KONTUR_REACT_UI__ = 'Textarea', _Textarea.displayName = 'Textarea', _Textarea.defaultProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","throttle","globalObject","isKeyEnter","needsPolyfillPlaceholder","LayoutEvents","ThemeContext","RenderLayer","ResizeDetector","isIE11","isSafariWithTextareaBug","CommonWrapper","isTestEnv","cx","rootNode","createPropsGetter","withSize","ReactUIFeatureFlagsContext","getFullReactUIFlagsContext","getTextAreaHeight","styles","TextareaCounter","TextareaWithSafari17Workaround","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","_class","_Textarea","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","defaultProps","state","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","MutationObserver","setSelectionRange","start","end","_globalObject$documen","Error","document","activeElement","focus","selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose","_excluded","rootProps","style","textareaClassNames","getTextareaSizeClassName","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends","ref","refFake","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","onFocusOutside","onClickOutside","active","getRootSizeClassName","onResize","alignBaseline","featureFlags","textareaBaselineAlign","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","_inheritsLoose","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","Consumer","flags","rootNodeRef","setRootNode","blur","__KONTUR_REACT_UI__","displayName"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { InputAlign } from '../Input';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport {\n ReactUIFeatureFlagsContext,\n type ReactUIFeatureFlags,\n} from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext/FeatureFlagsHelpers';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nexport const DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-controls' | 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропсы **`className` и `style` игнорируются**.\n */\n\n@rootNode\n@withSize\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public clear = () => {\n if (this.node) {\n this.node.value = '';\n }\n if (this.fakeNode) {\n this.fakeNode.value = '';\n }\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getTextareaSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private size!: SizeProp;\n\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n private featureFlags!: ReactUIFeatureFlags;\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\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 /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n textAlign: this.props.align,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter} alignBaseline={this.featureFlags.textareaBaselineAlign}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","throttle","globalObject","isKeyEnter","needsPolyfillPlaceholder","LayoutEvents","ThemeContext","RenderLayer","ResizeDetector","isIE11","isSafariWithTextareaBug","CommonWrapper","isTestEnv","cx","rootNode","createPropsGetter","withSize","ReactUIFeatureFlagsContext","getFullReactUIFlagsContext","getTextAreaHeight","styles","TextareaCounter","TextareaWithSafari17Workaround","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","_class","_Textarea","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","defaultProps","state","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","MutationObserver","setSelectionRange","start","end","_globalObject$documen","Error","document","activeElement","focus","selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose","_excluded","rootProps","style","textareaClassNames","getTextareaSizeClassName","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends","ref","refFake","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","onFocusOutside","onClickOutside","active","getRootSizeClassName","onResize","alignBaseline","featureFlags","textareaBaselineAlign","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","_inheritsLoose","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","Consumer","flags","rootNodeRef","setRootNode","blur","getNode","__KONTUR_REACT_UI__","displayName"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { InputAlign } from '../Input';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport {\n ReactUIFeatureFlagsContext,\n type ReactUIFeatureFlags,\n} from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext/FeatureFlagsHelpers';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nexport const DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-controls' | 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропсы **`className` и `style` игнорируются**.\n */\n\n@rootNode\n@withSize\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public clear = () => {\n if (this.node) {\n this.node.value = '';\n }\n if (this.fakeNode) {\n this.fakeNode.value = '';\n }\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getTextareaSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private size!: SizeProp;\n\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n private featureFlags!: ReactUIFeatureFlags;\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\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 /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.node;\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n textAlign: this.props.align,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter} alignBaseline={this.featureFlags.textareaBaselineAlign}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|