@skbkontur/react-ui 5.5.1-9e084.0 → 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 +25 -0
- package/cjs/components/Checkbox/Checkbox.mixins.d.ts +2 -2
- package/cjs/components/Checkbox/Checkbox.mixins.js +14 -6
- package/cjs/components/Checkbox/Checkbox.mixins.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.js +13 -8
- package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.d.ts +9 -1
- package/cjs/components/DateRangePicker/DateRangePicker.js +13 -2
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePickerInput.js +2 -1
- package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.d.ts +1 -0
- package/cjs/components/FileUploader/FileUploader.js +3 -0
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- 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/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/BasicTheme.d.ts +3 -0
- package/cjs/internal/themes/BasicTheme.js +6 -1
- package/cjs/internal/themes/BasicTheme.js.map +1 -1
- package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js +4 -4
- package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js.map +1 -1
- package/components/Checkbox/Checkbox.mixins.d.ts +2 -2
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +7 -7
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +4 -2
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +9 -1
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js +2 -1
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +1 -0
- 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/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/BasicTheme/BasicTheme.js +3 -0
- package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +3 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_invariant","_utils","_Radio","_createPropsGetter","_FocusTrap","_CommonWrapper","_Emotion","_rootNode","_getVisualStateDataAttributes","_featureFlagsContext","_RadioGroup2","_Prevent","_RadioGroupContext","_class","_RadioGroup","RadioGroupDataTids","exports","root","RadioGroup","rootNode","_React$Component","props","_this","call","name","getRandomID","getProps","createPropsGetter","defaultProps","getRadioGroupContextValue","activeItem","getValue","onSelect","handleSelect","getName","disabled","error","warning","isControlled","value","state","isNonNullable","setState","onValueChange","renderRadio","itemValue","data","index","_cx","itemProps","key","getKeyByItem","className","cx","styles","item","itemFirst","itemInline","inline","default","createElement","_extends2","role","Radio","renderItem","toKey","undefined","ref","element","node","defaultValue","_inheritsLoose2","_proto","prototype","render","_this2","_this$props","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","ariaDescribedby","style","handlers","ReactUIFeatureFlagsContext","Consumer","flags","_cx2","featureFlags","getFullReactUIFlagsContext","CommonWrapper","rootNodeRef","setRootNode","getVisualStateDataAttributes","FocusTrap","removeBaselineSpacer","radioGroupRemoveBaselineSpacer","RadioGroupContext","Provider","renderChildren","focus","radio","querySelector","_this$props2","items","children","invariant","mapItems","React","Component","__KONTUR_REACT_UI__","displayName","Prevent","_value","fn","result","_iterator","_createForOfIteratorHelperLoose2","_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","_interopRequireDefault","require","_invariant","_utils","_Radio","_createPropsGetter","_FocusTrap","_CommonWrapper","_Emotion","_rootNode","_getVisualStateDataAttributes","_featureFlagsContext","_RadioGroup2","_Prevent","_RadioGroupContext","_class","_RadioGroup","RadioGroupDataTids","exports","root","RadioGroup","rootNode","_React$Component","props","_this","call","name","getRandomID","getProps","createPropsGetter","defaultProps","getRadioGroupContextValue","activeItem","getValue","onSelect","handleSelect","getName","disabled","error","warning","isControlled","value","state","isNonNullable","setState","onValueChange","renderRadio","itemValue","data","index","_cx","itemProps","key","getKeyByItem","className","cx","styles","item","itemFirst","itemInline","inline","default","createElement","_extends2","role","Radio","renderItem","toKey","undefined","ref","element","node","defaultValue","_inheritsLoose2","_proto","prototype","render","_this2","_this$props","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","ariaDescribedby","style","handlers","ReactUIFeatureFlagsContext","Consumer","flags","_cx2","featureFlags","getFullReactUIFlagsContext","CommonWrapper","rootNodeRef","setRootNode","getVisualStateDataAttributes","FocusTrap","removeBaselineSpacer","radioGroupRemoveBaselineSpacer","RadioGroupContext","Provider","renderChildren","focus","radio","querySelector","_this$props2","items","children","invariant","mapItems","React","Component","__KONTUR_REACT_UI__","displayName","Prevent","_value","fn","result","_iterator","_createForOfIteratorHelperLoose2","_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":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AriaAttributes, ReactNode } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import type { Override } from '../../typings/utility-types';
|
|
3
|
+
import type { Nullable, Override } from '../../typings/utility-types';
|
|
4
4
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
5
5
|
import type { TGetRootNode } from '../../lib/rootNode';
|
|
6
6
|
import type { SizeProp } from '../../lib/types/props';
|
|
@@ -106,6 +106,10 @@ export declare class Textarea extends React.Component<TextareaProps, TextareaSta
|
|
|
106
106
|
* @public
|
|
107
107
|
*/
|
|
108
108
|
blur(): void;
|
|
109
|
+
/**
|
|
110
|
+
* @public
|
|
111
|
+
*/
|
|
112
|
+
getNode(): Nullable<HTMLTextAreaElement>;
|
|
109
113
|
/**
|
|
110
114
|
* @public
|
|
111
115
|
* @param {number} start
|
|
@@ -271,6 +271,13 @@ Textarea = exports.Textarea = (0, _rootNode.rootNode)(_class = (0, _SizeDecorato
|
|
|
271
271
|
|
|
272
272
|
|
|
273
273
|
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
274
281
|
|
|
275
282
|
|
|
276
283
|
|
|
@@ -561,4 +568,6 @@ Textarea = exports.Textarea = (0, _rootNode.rootNode)(_class = (0, _SizeDecorato
|
|
|
561
568
|
* @public
|
|
562
569
|
*/;_proto.focus = function focus() {if (this.node) {this.node.focus();}} /**
|
|
563
570
|
* @public
|
|
564
|
-
*/;_proto.blur = function blur() {if (this.node) {this.node.blur();}}
|
|
571
|
+
*/;_proto.blur = function blur() {if (this.node) {this.node.blur();}} /**
|
|
572
|
+
* @public
|
|
573
|
+
*/;_proto.getNode = function getNode() {return this.node;};return Textarea;}(_react.default.Component), _Textarea.__KONTUR_REACT_UI__ = 'Textarea', _Textarea.displayName = 'Textarea', _Textarea.defaultProps = { rows: 3, maxRows: 15, extraRow: true, disableAnimations: _currentEnvironment.isTestEnv }, _Textarea)) || _class) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","_identifiers","_needsPolyfillPlaceholder","LayoutEvents","_interopRequireWildcard","_ThemeContext","_RenderLayer","_ResizeDetector","_client","_CommonWrapper","_currentEnvironment","_Emotion","_rootNode","_createPropsGetter","_SizeDecorator","_ReactUIFeatureFlagsContext","_FeatureFlagsHelpers","_TextareaHelpers","_Textarea2","_TextareaCounter","_TextareaWithSafari17Workaround","_excluded","_class","_Textarea","DEFAULT_WIDTH","exports","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","createPropsGetter","defaultProps","state","needsPolyfillPlaceholder","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","globalObject","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","_objectWithoutPropertiesLoose2","default","rootProps","style","textareaClassNames","cx","getTextareaSizeClassName","styles","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends2","ref","refFake","TextareaCounter","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","isSafariWithTextareaBug","TextareaWithSafari17Workaround","RenderLayer","onFocusOutside","onClickOutside","active","getRootSizeClassName","ResizeDetector","onResize","alignBaseline","featureFlags","textareaBaselineAlign","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","isKeyEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","getTextAreaHeight","minRows","parseInt","height","exceededMaxHeight","overflowY","throttle","getAutoResizeThrottleWait","event","isIE11","_inheritsLoose2","_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","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","ThemeContext","CommonWrapper","rootNodeRef","setRootNode","blur","React","__KONTUR_REACT_UI__","displayName","isTestEnv"],"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","_interopRequireDefault","require","_lodash","_globalObject","_identifiers","_needsPolyfillPlaceholder","LayoutEvents","_interopRequireWildcard","_ThemeContext","_RenderLayer","_ResizeDetector","_client","_CommonWrapper","_currentEnvironment","_Emotion","_rootNode","_createPropsGetter","_SizeDecorator","_ReactUIFeatureFlagsContext","_FeatureFlagsHelpers","_TextareaHelpers","_Textarea2","_TextareaCounter","_TextareaWithSafari17Workaround","_excluded","_class","_Textarea","DEFAULT_WIDTH","exports","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","createPropsGetter","defaultProps","state","needsPolyfillPlaceholder","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","globalObject","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","_objectWithoutPropertiesLoose2","default","rootProps","style","textareaClassNames","cx","getTextareaSizeClassName","styles","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends2","ref","refFake","TextareaCounter","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","isSafariWithTextareaBug","TextareaWithSafari17Workaround","RenderLayer","onFocusOutside","onClickOutside","active","getRootSizeClassName","ResizeDetector","onResize","alignBaseline","featureFlags","textareaBaselineAlign","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","isKeyEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","getTextAreaHeight","minRows","parseInt","height","exceededMaxHeight","overflowY","throttle","getAutoResizeThrottleWait","event","isIE11","_inheritsLoose2","_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","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","ThemeContext","CommonWrapper","rootNodeRef","setRootNode","blur","getNode","React","__KONTUR_REACT_UI__","displayName","isTestEnv"],"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":[]}
|
|
@@ -146,6 +146,11 @@ var Effect = exports.Effect = {
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
input.focus();
|
|
149
|
+
var inputNode = input.getNode();
|
|
150
|
+
if (inputNode) {
|
|
151
|
+
inputNode.scrollLeft = inputNode.scrollWidth;
|
|
152
|
+
inputNode.scrollTop = inputNode.scrollHeight;
|
|
153
|
+
}
|
|
149
154
|
},
|
|
150
155
|
highlightMenuItem: function highlightMenuItem(dispatch, getState, getProps, getInstance) {
|
|
151
156
|
var _getProps6 = getProps(),value = _getProps6.value,itemToValue = _getProps6.itemToValue,valueToString = _getProps6.valueToString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","_interopRequireDefault","require","_lodash2","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_CustomComboBox","_CustomComboBoxTypes","DEBOUNCE_DELAY","getValueString","value","valueToString","isNonNullable","Effect","exports","search","query","dispatch","getState","getProps","getInstance","debouncedSearch","debounce","searchEffect","textValue","cancelRequest","cancel","cancelSearch","blur","_getProps","onBlur","focus","_getProps2","onFocus","valueChange","_getProps3","onValueChange","valueClear","type","unexpectedInput","items","_getProps4","onUnexpectedInput","Array","isArray","length","singleItem","valueContent","keepFocus","undefined","inputChange","_getProps5","onInputValueChange","_getState","returnedValue","inputFocus","_getInstance","input","highlightMenuItem","_getProps6","itemToValue","_getState2","focused","requestStatus","_getInstance2","menu","valueString","index","findIndex","x","highlightItem","reset","globalObject","requestAnimationFrame","scrollToSelected","queryTextDifferenceOfSavedValue","needFocusToRefreshButton","ComboBoxRequestStatus","Failed","selectMenuItem","event","_getInstance3","enter","moveMenuHighlight","direction","_getInstance4","resetHighlightedMenuItem","combobox","hasHighlightedItem","reflow","emit","selectInputText","inputKeyDown","_getProps7","onInputKeyDown","never","reducer","state","props","action","opened","inputChanged","editing","newState","searchOnFocus","_extends2","default","e","effects","nextState","isKeyEnter","preventDefault","push","isKeyArrowVertical","isKeyArrowUp","isKeyEscape","concat","isEqual","prevProps","fixValueChange","nextTextValue","loading","DefaultState","Pending","shouldResetMenuHighlight","Success","repeatRequest","Unknown"],"sources":["CustomComboBoxReducer.tsx"],"sourcesContent":["import type React from 'react';\nimport debounce from 'lodash.debounce';\nimport isEqual from 'lodash.isequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyArrowUp, isKeyArrowVertical, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { ComboBoxExtendedItem } from '../../components/ComboBox';\n\nimport type { CustomComboBox, CustomComboBoxProps, CustomComboBoxState } from './CustomComboBox';\nimport { DefaultState } from './CustomComboBox';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\n\nexport type CustomComboBoxAction<T> =\n | { type: 'ValueChange'; value: T; keepFocus: boolean }\n | { type: 'TextChange'; value: string }\n | { type: 'KeyPress'; event: React.KeyboardEvent }\n | {\n type: 'DidUpdate';\n prevProps: CustomComboBoxProps<T>;\n prevState: CustomComboBoxState<T>;\n fixValueChange: boolean | undefined;\n }\n | { type: 'Mount' }\n | { type: 'Focus'; searchOnFocus?: boolean }\n | { type: 'InputClick' }\n | { type: 'ClearCrossClick' }\n | { type: 'Blur' }\n | { type: 'Reset' }\n | { type: 'Open' }\n | { type: 'Close' }\n | { type: 'Search'; query: string }\n | { type: 'RequestItems' }\n | { type: 'ReceiveItems'; items: Array<ComboBoxExtendedItem<T>> }\n | { type: 'RequestFailure'; repeatRequest: () => void }\n | { type: 'CancelRequest' };\n\nexport type CustomComboBoxEffect<T> = (\n dispatch: (action: CustomComboBoxAction<T>) => void,\n getState: () => CustomComboBoxState<T>,\n getProps: () => CustomComboBoxProps<T>,\n getInstance: () => CustomComboBox<T>,\n) => void;\n\ntype Effect = CustomComboBoxEffect<any>;\n\ninterface EffectFactory {\n search: (query: string) => Effect;\n debouncedSearch: Effect & {\n cancel(): void;\n flush(): void;\n };\n cancelRequest: Effect;\n blur: Effect;\n focus: Effect;\n\n valueChange: (value: any) => Effect;\n valueClear: Effect;\n unexpectedInput: (textValue: string, items: Nullable<any[]>) => Effect;\n inputChange: Effect;\n inputFocus: Effect;\n highlightMenuItem: Effect;\n selectMenuItem: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n inputKeyDown: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n moveMenuHighlight: (direction: 'up' | 'down') => Effect;\n resetHighlightedMenuItem: Effect;\n reflow: Effect;\n selectInputText: Effect;\n}\n\nconst DEBOUNCE_DELAY = 300;\n\nconst getValueString = (value: any, valueToString: CustomComboBoxProps<any>['valueToString']) => {\n return isNonNullable(value) ? valueToString(value) : '';\n};\n\nexport const Effect: EffectFactory = {\n search: (query) => (dispatch, getState, getProps, getInstance) => {\n getInstance().search(query);\n },\n debouncedSearch: debounce((dispatch, getState, getProps, getInstance) => {\n const searchEffect = Effect.search(getState().textValue);\n searchEffect(dispatch, getState, getProps, getInstance);\n }, DEBOUNCE_DELAY),\n cancelRequest: (dispatch, getState, getProps, getInstance) => {\n Effect.debouncedSearch.cancel();\n getInstance().cancelSearch();\n },\n blur: (dispatch, getState, getProps) => {\n const { onBlur } = getProps();\n if (onBlur) {\n onBlur();\n }\n },\n focus: (dispatch, getState, getProps) => {\n const { onFocus } = getProps();\n if (onFocus) {\n onFocus();\n }\n },\n valueChange: (value) => (dispatch, getState, getProps) => {\n const { onValueChange } = getProps();\n if (onValueChange) {\n onValueChange(value);\n }\n },\n valueClear: (dispatch) => {\n dispatch({ type: 'TextChange', value: '' });\n },\n unexpectedInput: (textValue, items) => (dispatch, getState, getProps) => {\n const { onUnexpectedInput, valueToString } = getProps();\n if (Array.isArray(items) && items.length === 1) {\n const singleItem = items[0];\n const valueContent = getValueString(singleItem, valueToString);\n\n if (valueContent === textValue) {\n dispatch({ type: 'ValueChange', value: singleItem, keepFocus: false });\n return;\n }\n }\n\n if (onUnexpectedInput) {\n const value = onUnexpectedInput(textValue);\n if (value !== undefined) {\n dispatch({ type: 'ValueChange', value, keepFocus: false });\n }\n }\n },\n inputChange: (dispatch, getState, getProps) => {\n const { onInputValueChange } = getProps();\n const { textValue } = getState();\n if (onInputValueChange) {\n const returnedValue = onInputValueChange(textValue);\n if (typeof returnedValue === 'string' && returnedValue !== textValue) {\n dispatch({ type: 'TextChange', value: returnedValue });\n }\n }\n },\n inputFocus: (dispatch, getState, getProps, getInstance) => {\n const { input } = getInstance();\n\n if (!input) {\n return;\n }\n\n input.focus();\n },\n highlightMenuItem: (dispatch, getState, getProps, getInstance) => {\n const { value, itemToValue, valueToString } = getProps();\n const { items, focused, textValue, requestStatus } = getState();\n const { menu } = getInstance();\n const valueString = getValueString(value, valueToString);\n\n if (!menu) {\n return;\n }\n\n if (!focused) {\n return;\n }\n\n let index = -1;\n if (items?.length && isNonNullable(value)) {\n index = items.findIndex((x) => itemToValue(x) === itemToValue(value));\n menu.highlightItem(index);\n } else {\n menu.reset();\n }\n\n if (index >= 0) {\n // @ts-expect-error: Use of private property.\n globalObject.requestAnimationFrame?.(() => menu?.scrollToSelected());\n return;\n }\n\n const queryTextDifferenceOfSavedValue = textValue !== valueString;\n const needFocusToRefreshButton = requestStatus === ComboBoxRequestStatus.Failed;\n if (queryTextDifferenceOfSavedValue || needFocusToRefreshButton) {\n globalObject.requestAnimationFrame?.(() => menu?.highlightItem(0));\n }\n },\n selectMenuItem: (event) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu.enter(event);\n }\n },\n moveMenuHighlight: (direction) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu[direction]();\n }\n },\n resetHighlightedMenuItem: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n\n if (combobox.menu && combobox.menu.hasHighlightedItem()) {\n combobox.menu.reset();\n }\n },\n reflow: () => {\n LayoutEvents.emit();\n },\n selectInputText: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n combobox.selectInputText();\n },\n inputKeyDown: (event) => (dispatch, getState, getProps) => {\n const { onInputKeyDown } = getProps();\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n },\n};\n\nconst never = () => null;\n\nexport function reducer<T>(\n state: CustomComboBoxState<T>,\n props: CustomComboBoxProps<T>,\n action: CustomComboBoxAction<T>,\n): Pick<CustomComboBoxState<T>, never> | [Pick<CustomComboBoxState<T>, never>, Array<CustomComboBoxEffect<T>>] {\n switch (action.type) {\n case 'ValueChange': {\n const { value, keepFocus } = action;\n const textValue = getValueString(value, props.valueToString);\n if (keepFocus) {\n return [\n {\n opened: false,\n inputChanged: false,\n editing: true,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest, Effect.inputFocus],\n ];\n }\n return [\n {\n opened: false,\n inputChanged: false,\n editing: false,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest],\n ];\n }\n case 'TextChange': {\n const newState = {\n inputChanged: true,\n textValue: action.value,\n };\n if (!action.value && !props.searchOnFocus) {\n return [\n {\n ...newState,\n opened: false,\n items: null,\n },\n [Effect.inputChange],\n ];\n }\n return [newState, [Effect.debouncedSearch, Effect.inputChange]];\n }\n case 'KeyPress': {\n const e = action.event as React.KeyboardEvent<HTMLElement>;\n const effects = [];\n let nextState = state;\n\n switch (true) {\n case isKeyEnter(e):\n if (!state.opened) {\n break;\n }\n e.preventDefault();\n effects.push(Effect.selectMenuItem(e));\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n effects.push(Effect.moveMenuHighlight(isKeyArrowUp(e) ? 'up' : 'down'));\n if (!state.opened) {\n effects.push(Effect.search(state.textValue));\n }\n break;\n case isKeyEscape(e):\n nextState = {\n ...state,\n items: null,\n opened: false,\n };\n break;\n }\n return [nextState, [...effects, Effect.inputKeyDown(e)]];\n }\n case 'DidUpdate': {\n if (isEqual(props.value, action.prevProps.value)) {\n return state;\n }\n\n if (action.fixValueChange) {\n const nextTextValue = getValueString(props.value, props.valueToString);\n\n if (!state.focused) {\n return [\n {\n editing: false,\n inputChanged: false,\n textValue: nextTextValue,\n },\n [Effect.cancelRequest],\n ];\n }\n\n if (state.focused && state.opened) {\n return [{ ...state, textValue: nextTextValue }, [Effect.cancelRequest, Effect.search(nextTextValue)]];\n }\n\n if (state.focused) {\n return {\n ...state,\n textValue: nextTextValue,\n };\n }\n }\n\n return {\n opened: false,\n textValue: state.editing ? state.textValue : getValueString(props.value, props.valueToString),\n };\n }\n case 'Mount': {\n return {\n textValue: getValueString(props.value, props.valueToString),\n };\n }\n case 'Focus': {\n const newState = {\n focused: true,\n editing: true,\n };\n if (!action.searchOnFocus) {\n return [newState, [Effect.focus]];\n }\n if (state.editing) {\n return [newState, [Effect.search(state.textValue), Effect.focus]];\n }\n return [newState, [Effect.search(''), Effect.focus, Effect.selectInputText]];\n }\n case 'InputClick': {\n const newState = {\n inputChanged: false,\n };\n if (!state.opened && props.searchOnFocus) {\n return [newState, [Effect.search('')]];\n }\n return state;\n }\n case 'ClearCrossClick': {\n const newState = {\n editing: true,\n loading: true,\n };\n return [newState, [Effect.valueClear, Effect.focus, Effect.search('')]];\n }\n case 'Blur': {\n const { inputChanged, items } = state;\n if (!inputChanged) {\n return [\n {\n focused: false,\n opened: false,\n items: null,\n editing: false,\n },\n [Effect.blur, Effect.cancelRequest],\n ];\n }\n\n return [\n {\n focused: false,\n opened: false,\n items: null,\n },\n [Effect.blur, Effect.cancelRequest, Effect.unexpectedInput(state.textValue, items)],\n ];\n }\n case 'Reset': {\n return DefaultState;\n }\n case 'Open': {\n return { opened: true };\n }\n case 'Close': {\n return { opened: false, items: null };\n }\n case 'Search': {\n return [state, [Effect.search(action.query)]];\n }\n case 'RequestItems': {\n return {\n loading: true,\n opened: true,\n requestStatus: ComboBoxRequestStatus.Pending,\n };\n }\n case 'ReceiveItems': {\n const shouldResetMenuHighlight = state.textValue === '';\n return [\n {\n loading: false,\n opened: true,\n items: action.items,\n requestStatus: ComboBoxRequestStatus.Success,\n },\n [shouldResetMenuHighlight ? Effect.resetHighlightedMenuItem : Effect.highlightMenuItem, Effect.reflow],\n ];\n }\n case 'RequestFailure': {\n return [\n {\n loading: false,\n opened: true,\n items: null,\n requestStatus: ComboBoxRequestStatus.Failed,\n repeatRequest: action.repeatRequest,\n },\n [Effect.highlightMenuItem],\n ];\n }\n case 'CancelRequest': {\n return {\n loading: false,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n }\n default: {\n never();\n }\n }\n return state;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_lodash","_interopRequireDefault","require","_lodash2","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_CustomComboBox","_CustomComboBoxTypes","DEBOUNCE_DELAY","getValueString","value","valueToString","isNonNullable","Effect","exports","search","query","dispatch","getState","getProps","getInstance","debouncedSearch","debounce","searchEffect","textValue","cancelRequest","cancel","cancelSearch","blur","_getProps","onBlur","focus","_getProps2","onFocus","valueChange","_getProps3","onValueChange","valueClear","type","unexpectedInput","items","_getProps4","onUnexpectedInput","Array","isArray","length","singleItem","valueContent","keepFocus","undefined","inputChange","_getProps5","onInputValueChange","_getState","returnedValue","inputFocus","_getInstance","input","inputNode","getNode","scrollLeft","scrollWidth","scrollTop","scrollHeight","highlightMenuItem","_getProps6","itemToValue","_getState2","focused","requestStatus","_getInstance2","menu","valueString","index","findIndex","x","highlightItem","reset","globalObject","requestAnimationFrame","scrollToSelected","queryTextDifferenceOfSavedValue","needFocusToRefreshButton","ComboBoxRequestStatus","Failed","selectMenuItem","event","_getInstance3","enter","moveMenuHighlight","direction","_getInstance4","resetHighlightedMenuItem","combobox","hasHighlightedItem","reflow","emit","selectInputText","inputKeyDown","_getProps7","onInputKeyDown","never","reducer","state","props","action","opened","inputChanged","editing","newState","searchOnFocus","_extends2","default","e","effects","nextState","isKeyEnter","preventDefault","push","isKeyArrowVertical","isKeyArrowUp","isKeyEscape","concat","isEqual","prevProps","fixValueChange","nextTextValue","loading","DefaultState","Pending","shouldResetMenuHighlight","Success","repeatRequest","Unknown"],"sources":["CustomComboBoxReducer.tsx"],"sourcesContent":["import type React from 'react';\nimport debounce from 'lodash.debounce';\nimport isEqual from 'lodash.isequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyArrowUp, isKeyArrowVertical, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { ComboBoxExtendedItem } from '../../components/ComboBox';\n\nimport type { CustomComboBox, CustomComboBoxProps, CustomComboBoxState } from './CustomComboBox';\nimport { DefaultState } from './CustomComboBox';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\n\nexport type CustomComboBoxAction<T> =\n | { type: 'ValueChange'; value: T; keepFocus: boolean }\n | { type: 'TextChange'; value: string }\n | { type: 'KeyPress'; event: React.KeyboardEvent }\n | {\n type: 'DidUpdate';\n prevProps: CustomComboBoxProps<T>;\n prevState: CustomComboBoxState<T>;\n fixValueChange: boolean | undefined;\n }\n | { type: 'Mount' }\n | { type: 'Focus'; searchOnFocus?: boolean }\n | { type: 'InputClick' }\n | { type: 'ClearCrossClick' }\n | { type: 'Blur' }\n | { type: 'Reset' }\n | { type: 'Open' }\n | { type: 'Close' }\n | { type: 'Search'; query: string }\n | { type: 'RequestItems' }\n | { type: 'ReceiveItems'; items: Array<ComboBoxExtendedItem<T>> }\n | { type: 'RequestFailure'; repeatRequest: () => void }\n | { type: 'CancelRequest' };\n\nexport type CustomComboBoxEffect<T> = (\n dispatch: (action: CustomComboBoxAction<T>) => void,\n getState: () => CustomComboBoxState<T>,\n getProps: () => CustomComboBoxProps<T>,\n getInstance: () => CustomComboBox<T>,\n) => void;\n\ntype Effect = CustomComboBoxEffect<any>;\n\ninterface EffectFactory {\n search: (query: string) => Effect;\n debouncedSearch: Effect & {\n cancel(): void;\n flush(): void;\n };\n cancelRequest: Effect;\n blur: Effect;\n focus: Effect;\n\n valueChange: (value: any) => Effect;\n valueClear: Effect;\n unexpectedInput: (textValue: string, items: Nullable<any[]>) => Effect;\n inputChange: Effect;\n inputFocus: Effect;\n highlightMenuItem: Effect;\n selectMenuItem: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n inputKeyDown: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n moveMenuHighlight: (direction: 'up' | 'down') => Effect;\n resetHighlightedMenuItem: Effect;\n reflow: Effect;\n selectInputText: Effect;\n}\n\nconst DEBOUNCE_DELAY = 300;\n\nconst getValueString = (value: any, valueToString: CustomComboBoxProps<any>['valueToString']) => {\n return isNonNullable(value) ? valueToString(value) : '';\n};\n\nexport const Effect: EffectFactory = {\n search: (query) => (dispatch, getState, getProps, getInstance) => {\n getInstance().search(query);\n },\n debouncedSearch: debounce((dispatch, getState, getProps, getInstance) => {\n const searchEffect = Effect.search(getState().textValue);\n searchEffect(dispatch, getState, getProps, getInstance);\n }, DEBOUNCE_DELAY),\n cancelRequest: (dispatch, getState, getProps, getInstance) => {\n Effect.debouncedSearch.cancel();\n getInstance().cancelSearch();\n },\n blur: (dispatch, getState, getProps) => {\n const { onBlur } = getProps();\n if (onBlur) {\n onBlur();\n }\n },\n focus: (dispatch, getState, getProps) => {\n const { onFocus } = getProps();\n if (onFocus) {\n onFocus();\n }\n },\n valueChange: (value) => (dispatch, getState, getProps) => {\n const { onValueChange } = getProps();\n if (onValueChange) {\n onValueChange(value);\n }\n },\n valueClear: (dispatch) => {\n dispatch({ type: 'TextChange', value: '' });\n },\n unexpectedInput: (textValue, items) => (dispatch, getState, getProps) => {\n const { onUnexpectedInput, valueToString } = getProps();\n if (Array.isArray(items) && items.length === 1) {\n const singleItem = items[0];\n const valueContent = getValueString(singleItem, valueToString);\n\n if (valueContent === textValue) {\n dispatch({ type: 'ValueChange', value: singleItem, keepFocus: false });\n return;\n }\n }\n\n if (onUnexpectedInput) {\n const value = onUnexpectedInput(textValue);\n if (value !== undefined) {\n dispatch({ type: 'ValueChange', value, keepFocus: false });\n }\n }\n },\n inputChange: (dispatch, getState, getProps) => {\n const { onInputValueChange } = getProps();\n const { textValue } = getState();\n if (onInputValueChange) {\n const returnedValue = onInputValueChange(textValue);\n if (typeof returnedValue === 'string' && returnedValue !== textValue) {\n dispatch({ type: 'TextChange', value: returnedValue });\n }\n }\n },\n inputFocus: (dispatch, getState, getProps, getInstance) => {\n const { input } = getInstance();\n\n if (!input) {\n return;\n }\n\n input.focus();\n const inputNode = input.getNode();\n if (inputNode) {\n inputNode.scrollLeft = inputNode.scrollWidth;\n inputNode.scrollTop = inputNode.scrollHeight;\n }\n },\n highlightMenuItem: (dispatch, getState, getProps, getInstance) => {\n const { value, itemToValue, valueToString } = getProps();\n const { items, focused, textValue, requestStatus } = getState();\n const { menu } = getInstance();\n const valueString = getValueString(value, valueToString);\n\n if (!menu) {\n return;\n }\n\n if (!focused) {\n return;\n }\n\n let index = -1;\n if (items?.length && isNonNullable(value)) {\n index = items.findIndex((x) => itemToValue(x) === itemToValue(value));\n menu.highlightItem(index);\n } else {\n menu.reset();\n }\n\n if (index >= 0) {\n // @ts-expect-error: Use of private property.\n globalObject.requestAnimationFrame?.(() => menu?.scrollToSelected());\n return;\n }\n\n const queryTextDifferenceOfSavedValue = textValue !== valueString;\n const needFocusToRefreshButton = requestStatus === ComboBoxRequestStatus.Failed;\n if (queryTextDifferenceOfSavedValue || needFocusToRefreshButton) {\n globalObject.requestAnimationFrame?.(() => menu?.highlightItem(0));\n }\n },\n selectMenuItem: (event) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu.enter(event);\n }\n },\n moveMenuHighlight: (direction) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu[direction]();\n }\n },\n resetHighlightedMenuItem: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n\n if (combobox.menu && combobox.menu.hasHighlightedItem()) {\n combobox.menu.reset();\n }\n },\n reflow: () => {\n LayoutEvents.emit();\n },\n selectInputText: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n combobox.selectInputText();\n },\n inputKeyDown: (event) => (dispatch, getState, getProps) => {\n const { onInputKeyDown } = getProps();\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n },\n};\n\nconst never = () => null;\n\nexport function reducer<T>(\n state: CustomComboBoxState<T>,\n props: CustomComboBoxProps<T>,\n action: CustomComboBoxAction<T>,\n): Pick<CustomComboBoxState<T>, never> | [Pick<CustomComboBoxState<T>, never>, Array<CustomComboBoxEffect<T>>] {\n switch (action.type) {\n case 'ValueChange': {\n const { value, keepFocus } = action;\n const textValue = getValueString(value, props.valueToString);\n if (keepFocus) {\n return [\n {\n opened: false,\n inputChanged: false,\n editing: true,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest, Effect.inputFocus],\n ];\n }\n return [\n {\n opened: false,\n inputChanged: false,\n editing: false,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest],\n ];\n }\n case 'TextChange': {\n const newState = {\n inputChanged: true,\n textValue: action.value,\n };\n if (!action.value && !props.searchOnFocus) {\n return [\n {\n ...newState,\n opened: false,\n items: null,\n },\n [Effect.inputChange],\n ];\n }\n return [newState, [Effect.debouncedSearch, Effect.inputChange]];\n }\n case 'KeyPress': {\n const e = action.event as React.KeyboardEvent<HTMLElement>;\n const effects = [];\n let nextState = state;\n\n switch (true) {\n case isKeyEnter(e):\n if (!state.opened) {\n break;\n }\n e.preventDefault();\n effects.push(Effect.selectMenuItem(e));\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n effects.push(Effect.moveMenuHighlight(isKeyArrowUp(e) ? 'up' : 'down'));\n if (!state.opened) {\n effects.push(Effect.search(state.textValue));\n }\n break;\n case isKeyEscape(e):\n nextState = {\n ...state,\n items: null,\n opened: false,\n };\n break;\n }\n return [nextState, [...effects, Effect.inputKeyDown(e)]];\n }\n case 'DidUpdate': {\n if (isEqual(props.value, action.prevProps.value)) {\n return state;\n }\n\n if (action.fixValueChange) {\n const nextTextValue = getValueString(props.value, props.valueToString);\n\n if (!state.focused) {\n return [\n {\n editing: false,\n inputChanged: false,\n textValue: nextTextValue,\n },\n [Effect.cancelRequest],\n ];\n }\n\n if (state.focused && state.opened) {\n return [{ ...state, textValue: nextTextValue }, [Effect.cancelRequest, Effect.search(nextTextValue)]];\n }\n\n if (state.focused) {\n return {\n ...state,\n textValue: nextTextValue,\n };\n }\n }\n\n return {\n opened: false,\n textValue: state.editing ? state.textValue : getValueString(props.value, props.valueToString),\n };\n }\n case 'Mount': {\n return {\n textValue: getValueString(props.value, props.valueToString),\n };\n }\n case 'Focus': {\n const newState = {\n focused: true,\n editing: true,\n };\n if (!action.searchOnFocus) {\n return [newState, [Effect.focus]];\n }\n if (state.editing) {\n return [newState, [Effect.search(state.textValue), Effect.focus]];\n }\n return [newState, [Effect.search(''), Effect.focus, Effect.selectInputText]];\n }\n case 'InputClick': {\n const newState = {\n inputChanged: false,\n };\n if (!state.opened && props.searchOnFocus) {\n return [newState, [Effect.search('')]];\n }\n return state;\n }\n case 'ClearCrossClick': {\n const newState = {\n editing: true,\n loading: true,\n };\n return [newState, [Effect.valueClear, Effect.focus, Effect.search('')]];\n }\n case 'Blur': {\n const { inputChanged, items } = state;\n if (!inputChanged) {\n return [\n {\n focused: false,\n opened: false,\n items: null,\n editing: false,\n },\n [Effect.blur, Effect.cancelRequest],\n ];\n }\n\n return [\n {\n focused: false,\n opened: false,\n items: null,\n },\n [Effect.blur, Effect.cancelRequest, Effect.unexpectedInput(state.textValue, items)],\n ];\n }\n case 'Reset': {\n return DefaultState;\n }\n case 'Open': {\n return { opened: true };\n }\n case 'Close': {\n return { opened: false, items: null };\n }\n case 'Search': {\n return [state, [Effect.search(action.query)]];\n }\n case 'RequestItems': {\n return {\n loading: true,\n opened: true,\n requestStatus: ComboBoxRequestStatus.Pending,\n };\n }\n case 'ReceiveItems': {\n const shouldResetMenuHighlight = state.textValue === '';\n return [\n {\n loading: false,\n opened: true,\n items: action.items,\n requestStatus: ComboBoxRequestStatus.Success,\n },\n [shouldResetMenuHighlight ? Effect.resetHighlightedMenuItem : Effect.highlightMenuItem, Effect.reflow],\n ];\n }\n case 'RequestFailure': {\n return [\n {\n loading: false,\n opened: true,\n items: null,\n requestStatus: ComboBoxRequestStatus.Failed,\n repeatRequest: action.repeatRequest,\n },\n [Effect.highlightMenuItem],\n ];\n }\n case 'CancelRequest': {\n return {\n loading: false,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n }\n default: {\n never();\n }\n }\n return state;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,6 +20,7 @@ export declare class InternalTextareaWithLayout extends React.Component<Internal
|
|
|
20
20
|
blur(): void;
|
|
21
21
|
setSelectionRange(start: number, end: number): void;
|
|
22
22
|
selectAll(): void;
|
|
23
|
+
getNode(): import("../../typings/utility-types").Nullable<HTMLTextAreaElement>;
|
|
23
24
|
render(): React.JSX.Element;
|
|
24
25
|
private getTextareaSizeClassName;
|
|
25
26
|
private getRootSizeClassName;
|
|
@@ -107,6 +107,9 @@ InternalTextareaWithLayout = exports.InternalTextareaWithLayout = (0, _rootNode.
|
|
|
107
107
|
|
|
108
108
|
|
|
109
109
|
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
110
113
|
|
|
111
114
|
|
|
112
115
|
|
|
@@ -232,4 +235,4 @@ InternalTextareaWithLayout = exports.InternalTextareaWithLayout = (0, _rootNode.
|
|
|
232
235
|
clearCrossShowed: _this.getClearCrossShowed({ focused: true, hovered: _this.state.hovered })
|
|
233
236
|
});
|
|
234
237
|
_this.props.onFocus == null || _this.props.onFocus(event);
|
|
235
|
-
};return _this;}(0, _inheritsLoose2.default)(InternalTextareaWithLayout, _React$Component);var _proto = InternalTextareaWithLayout.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var _this$state = this.state,focused = _this$state.focused,hovered = _this$state.hovered;if (Boolean(prevProps.value) !== Boolean(this.props.value)) {this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: focused, hovered: hovered }) });}};_proto.focus = function focus() {var _this$wrappedComponen2;(_this$wrappedComponen2 = this.wrappedComponentRef.current) == null || _this$wrappedComponen2.focus();};_proto.blur = function blur() {var _this$wrappedComponen3;(_this$wrappedComponen3 = this.wrappedComponentRef.current) == null || _this$wrappedComponen3.blur();};_proto.setSelectionRange = function setSelectionRange(start, end) {var _this$wrappedComponen4;(_this$wrappedComponen4 = this.wrappedComponentRef.current) == null || _this$wrappedComponen4.setSelectionRange(start, end);};_proto.selectAll = function selectAll() {var _this$wrappedComponen5;(_this$wrappedComponen5 = this.wrappedComponentRef.current) == null || _this$wrappedComponen5.selectAll();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement("span", { "data-tid": 'InternalTextareaWithLayout' }, _this2.renderLayout());});};_proto.getTextareaSizeClassName = function getTextareaSizeClassName() {switch (this.getProps().size) {case 'large':return _Textarea2.styles.textareaLarge(this.theme);case 'medium':return _Textarea2.styles.textareaMedium(this.theme);case 'small':default:return _Textarea2.styles.textareaSmall(this.theme);}};_proto.getRootSizeClassName = function getRootSizeClassName() {switch (this.getProps().size) {case 'large':return _Textarea2.styles.rootLarge(this.theme);case 'medium':return _Textarea2.styles.rootMedium(this.theme);case 'small':default:return _Textarea2.styles.rootSmall(this.theme);}};return (0, _createClass2.default)(InternalTextareaWithLayout, [{ key: "preparedTheme", get: function get() {return _ThemeFactory.ThemeFactory.create({ textareaWidth: 'auto', textareaBorderWidth: '0px', textareaPaddingXSmall: '0px', textareaPaddingXMedium: '0px', textareaPaddingXLarge: '0px', textareaPaddingYSmall: '0px', textareaPaddingYMedium: '0px', textareaPaddingYLarge: '0px', textareaOutlineWidth: '0px', textareaShadow: 'none', textareaDisabledBg: 'transparent', textareaBg: 'transparent' }, this.theme);} }]);}(_react.default.Component), _InternalTextareaWithLayout.__KONTUR_REACT_UI__ = 'InternalTextareaWithLayout', _InternalTextareaWithLayout)) || _class;
|
|
238
|
+
};return _this;}(0, _inheritsLoose2.default)(InternalTextareaWithLayout, _React$Component);var _proto = InternalTextareaWithLayout.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var _this$state = this.state,focused = _this$state.focused,hovered = _this$state.hovered;if (Boolean(prevProps.value) !== Boolean(this.props.value)) {this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: focused, hovered: hovered }) });}};_proto.focus = function focus() {var _this$wrappedComponen2;(_this$wrappedComponen2 = this.wrappedComponentRef.current) == null || _this$wrappedComponen2.focus();};_proto.blur = function blur() {var _this$wrappedComponen3;(_this$wrappedComponen3 = this.wrappedComponentRef.current) == null || _this$wrappedComponen3.blur();};_proto.setSelectionRange = function setSelectionRange(start, end) {var _this$wrappedComponen4;(_this$wrappedComponen4 = this.wrappedComponentRef.current) == null || _this$wrappedComponen4.setSelectionRange(start, end);};_proto.selectAll = function selectAll() {var _this$wrappedComponen5;(_this$wrappedComponen5 = this.wrappedComponentRef.current) == null || _this$wrappedComponen5.selectAll();};_proto.getNode = function getNode() {var _this$wrappedComponen6;return (_this$wrappedComponen6 = this.wrappedComponentRef.current) == null ? void 0 : _this$wrappedComponen6.getNode();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement("span", { "data-tid": 'InternalTextareaWithLayout' }, _this2.renderLayout());});};_proto.getTextareaSizeClassName = function getTextareaSizeClassName() {switch (this.getProps().size) {case 'large':return _Textarea2.styles.textareaLarge(this.theme);case 'medium':return _Textarea2.styles.textareaMedium(this.theme);case 'small':default:return _Textarea2.styles.textareaSmall(this.theme);}};_proto.getRootSizeClassName = function getRootSizeClassName() {switch (this.getProps().size) {case 'large':return _Textarea2.styles.rootLarge(this.theme);case 'medium':return _Textarea2.styles.rootMedium(this.theme);case 'small':default:return _Textarea2.styles.rootSmall(this.theme);}};return (0, _createClass2.default)(InternalTextareaWithLayout, [{ key: "preparedTheme", get: function get() {return _ThemeFactory.ThemeFactory.create({ textareaWidth: 'auto', textareaBorderWidth: '0px', textareaPaddingXSmall: '0px', textareaPaddingXMedium: '0px', textareaPaddingXLarge: '0px', textareaPaddingYSmall: '0px', textareaPaddingYMedium: '0px', textareaPaddingYLarge: '0px', textareaOutlineWidth: '0px', textareaShadow: 'none', textareaDisabledBg: 'transparent', textareaBg: 'transparent' }, this.theme);} }]);}(_react.default.Component), _InternalTextareaWithLayout.__KONTUR_REACT_UI__ = 'InternalTextareaWithLayout', _InternalTextareaWithLayout)) || _class;
|