@skbkontur/react-ui 5.3.10 → 5.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/cjs/components/ComboBox/ComboBox.d.ts +4 -1
- package/cjs/components/ComboBox/ComboBox.js +3 -0
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +2 -4
- package/cjs/components/Input/Input.js +11 -43
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.styles.d.ts +0 -1
- package/cjs/components/Input/Input.styles.js +8 -19
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePage.styles.js +2 -2
- package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +1 -1
- package/cjs/components/Toast/Toast.js +1 -1
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +0 -2
- package/cjs/internal/InputLikeText/InputLikeText.js +3 -7
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/lib/__stories__/Blink.creevey.mts +90 -0
- package/cjs/lib/blink.d.ts +15 -0
- package/cjs/lib/blink.js +65 -0
- package/cjs/lib/blink.js.map +1 -0
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +4 -1
- package/components/Input/Input/Input.js +17 -46
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +2 -4
- package/components/Input/Input.styles/Input.styles.js +9 -13
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Input/Input.styles.d.ts +0 -1
- package/components/SidePage/SidePage.styles/SidePage.styles.js +1 -1
- package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
- package/components/Toast/Toast/Toast.js +1 -1
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +10 -21
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +0 -2
- package/lib/__stories__/Blink.creevey.mts +90 -0
- package/lib/blink/blink.js +63 -0
- package/lib/blink/blink.js.map +1 -0
- package/lib/blink/package.json +6 -0
- package/lib/blink.d.ts +15 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.3.11](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.10...@skbkontur/react-ui@5.3.11) (2025-10-22)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **SidePage:** fix clipping of shadows/focuses inside SidePage.Body ([d41d10e](https://github.com/skbkontur/retail-ui/commit/d41d10ea28c546c97b3f0dff902b37054f6be364))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [5.3.10](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.9...@skbkontur/react-ui@5.3.10) (2025-10-16)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -59,7 +59,10 @@ export interface ComboBoxProps<T> extends Pick<AriaAttributes, 'aria-describedby
|
|
|
59
59
|
onValueChange?: (value: T) => void;
|
|
60
60
|
/** Задает функцию, которая вызывается при получении комбобоксом фокуса. */
|
|
61
61
|
onFocus?: () => void;
|
|
62
|
-
/** Задает функцию, которая вызывается при изменении текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода.
|
|
62
|
+
/** Задает функцию, которая вызывается при изменении текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода.
|
|
63
|
+
*
|
|
64
|
+
* **Не рекомендуется менять значение, передаваемое в проп `value`, внутри этой функции. Используйте для этих целей `onValueChange` или `onUnexpectedInput`. Иначе возможно неожиданное поведение компонента.**
|
|
65
|
+
*/
|
|
63
66
|
onInputValueChange?: (value: string) => Nullable<string> | void;
|
|
64
67
|
/** Задает функцию для обработки ввода строки в инпут и последующей потерей фокуса компонентом.
|
|
65
68
|
* Функция срабатывает с аргументом инпута строки.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_CustomComboBox","_rootNode","_createPropsGetter","_class","_ComboBox","ComboBox","exports","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","comboboxElement","customComboBoxRef","element","setRootNode","_inheritsLoose2","default","_proto","prototype","focus","opts","blur","search","query","cancelSearch","open","close","selectInputText","reset","render","createElement","CustomComboBox","_extends2","size","props","ref","React","Component","__KONTUR_REACT_UI__","displayName","itemToValue","item","value","valueToString","label","renderValue","renderItem","menuAlign","searchOnFocus","drawArrow","showClearIcon"],"sources":["ComboBox.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { CustomComboBox } from '../../internal/CustomComboBox';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { MenuItemState } from '../MenuItem';\nimport type { ShowClearIcon, InputIconType } from '../Input';\nimport type { CommonProps } from '../../internal/CommonWrapper';\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 { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../MaskedInput';\n\nexport interface ComboBoxProps<T>\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>>,\n CommonProps {\n /** Показывать иконку очистки значения в непустом поле:\n * - `always` — всегда показывать иконку\n * - `auto` — показывать иконку при hover/focus\n * - `never` — не показывать иконку\n * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Задает выравнивание контента. */\n align?: 'left' | 'center' | 'right';\n\n /** Вызывает функцию поиска getItems при фокусе и очистке поля ввода. */\n searchOnFocus?: boolean;\n\n /** Отображает справа иконку в виде стрелки. */\n drawArrow?: boolean;\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Убирает обводку. */\n borderless?: boolean;\n\n /** Отключает использование портала для рендеринга меню.\n * См. https://github.com/skbkontur/retail-ui/issues/15 */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Добавляет иконку слева.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Задает функцию поиска элементов, которая должна возвращать Promise с массивом элементов.\n * По умолчанию ожидаются объекты с типом `{ value: string, label: string }`.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `itemToValue`, `renderValue`, `renderItem`, `valueToString`. */\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n\n /** Задает функцию сравнения полученных результатов с value. */\n itemToValue?: (item: T) => string | number;\n\n /** Задает максимальную длину инпута. */\n maxLength?: number;\n\n /** Задает текущую позицию выпадающего окна вручную.\n */\n menuPos?: 'top' | 'bottom';\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает функцию, которая вызывается при потере комбобоксом фокуса. */\n onBlur?: () => void;\n\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n\n /** Задает функцию, которая вызывается при получении комбобоксом фокуса. */\n onFocus?: () => void;\n\n /** Задает функцию, которая вызывается при изменении текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода. */\n onInputValueChange?: (value: string) => Nullable<string> | void;\n\n /** Задает функцию для обработки ввода строки в инпут и последующей потерей фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат valueToString с этим элементом будет совпадать со значение в текстовом поле, то сработает onValueChange со значением данного элемента.\n * Сама функция также может вернуть значение, неравное undefined, с которым будет вызван onValueChange. Если возвращаемое значение будет равно null, то сработает очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | T;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает функцию отрисовки элементов результата поиска.\n * Не применяется если элемент является функцией или React-элементом\n * @default item => item.label\n * @param {T} item - элемент из результата поиска.\n * @param {MenuItemState} state? - состояние элемента.\n * @returns {React.ReactNode} React-элемент. */\n renderItem?: (item: T, state?: MenuItemState) => React.ReactNode;\n\n /** Устанавливает компонент, заменяющий собой обёртку элементов результата поиска.\n * По умолчанию все элементы результата поиска оборачиваются в тег <button />.\n * @example\n * itemWrapper={(item) => {\n * if (item.value === 3) {\n * return (props) => {\n * return <a {...props} />\n * }\n * }\n * }}\n */\n itemWrapper?: (item: T) => React.ComponentType;\n\n /** Задает функцию, которая отображает сообщение о пустом результате поиска. При renderAddButton не работает. */\n renderNotFound?: () => React.ReactNode;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им \"оборачиваются\" элементы, возвращаемые getItems().\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Задает функцию, которая отображает выбранное значение.\n * @default item => item.label */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке. */\n renderAddButton?: (query?: string) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы renderTotalCount. */\n totalCount?: number;\n\n /** Устанавливает выбранное в комбобоксе значение. Тип `value` совпадает с типом элементов в массиве, возвращаемом в `getItems`. */\n value?: Nullable<T>;\n\n /** Задает функцию, которая возвращает строковое представление value. Необходимо при фокусировке. */\n valueToString?: (item: T) => string;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает длину комбобокса. */\n width?: string | number;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n\n /** Задает функцию, которая вызывается при вставке значения в инпут с маской. */\n onBeforePasteInMask?: MaskedInputOnBeforePasteValue;\n}\n\nexport interface ComboBoxItem {\n value: string;\n label: string;\n}\n\nexport type ComboBoxExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxProps<T>,\n | 'itemToValue'\n | 'valueToString'\n | 'renderValue'\n | 'renderItem'\n | 'menuAlign'\n | 'searchOnFocus'\n | 'drawArrow'\n | 'showClearIcon'\n >\n>;\n\n/**\n * `ComboBox` — это поле ввода со списком подсказок.\n *\n * `ComboBox` используют:\n * * для выбора значения из справочника.\n * * для добавления своего значения в справочник.\n *\n * `ComboBox` может работать в двух режимах — обычном и в режиме автокомплита.\n * Основное их отличие в том, что в режиме автокомплита список вариантов появляется только после ввода первого символа или изменении уже введенного значения.\n */\n@rootNode\nexport class ComboBox<T = ComboBoxItem> extends React.Component<ComboBoxProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBox';\n public static displayName = 'ComboBox';\n\n public static defaultProps: DefaultProps<any> = {\n itemToValue: (item: ComboBoxItem) => item.value,\n valueToString: (item: ComboBoxItem) => item.label,\n renderValue: (item: ComboBoxItem) => item.label,\n renderItem: (item: ComboBoxItem) => item.label,\n menuAlign: 'left',\n searchOnFocus: true,\n drawArrow: true,\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(ComboBox.defaultProps);\n\n private comboboxElement: Nullable<CustomComboBox<T>> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }) {\n if (this.comboboxElement) {\n this.comboboxElement.focus(opts);\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /**\n * Открывает выпадающий список и запускает поиск элементов\n *\n * @public\n * @param {string} [query] Текст поиска. По умолчанию берется\n * текст из инпута или результат `valueToString(value)`\n */\n public search(query?: string) {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /**\n * @public Открывает выпадающий список\n */\n public open() {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /**\n * @public Закрывает выпадающий список\n */\n public close() {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Выделяет текст внутри input\n * @public\n */\n public selectInputText() {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render() {\n return <CustomComboBox {...this.getProps()} size={this.props.size} ref={this.customComboBoxRef} />;\n }\n\n private customComboBoxRef = (element: Nullable<CustomComboBox<T>>) => {\n this.setRootNode(element);\n this.comboboxElement = element;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_CustomComboBox","_rootNode","_createPropsGetter","_class","_ComboBox","ComboBox","exports","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","comboboxElement","customComboBoxRef","element","setRootNode","_inheritsLoose2","default","_proto","prototype","focus","opts","blur","search","query","cancelSearch","open","close","selectInputText","reset","render","createElement","CustomComboBox","_extends2","size","props","ref","React","Component","__KONTUR_REACT_UI__","displayName","itemToValue","item","value","valueToString","label","renderValue","renderItem","menuAlign","searchOnFocus","drawArrow","showClearIcon"],"sources":["ComboBox.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { CustomComboBox } from '../../internal/CustomComboBox';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { MenuItemState } from '../MenuItem';\nimport type { ShowClearIcon, InputIconType } from '../Input';\nimport type { CommonProps } from '../../internal/CommonWrapper';\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 { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../MaskedInput';\n\nexport interface ComboBoxProps<T>\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>>,\n CommonProps {\n /** Показывать иконку очистки значения в непустом поле:\n * - `always` — всегда показывать иконку\n * - `auto` — показывать иконку при hover/focus\n * - `never` — не показывать иконку\n * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Задает выравнивание контента. */\n align?: 'left' | 'center' | 'right';\n\n /** Вызывает функцию поиска getItems при фокусе и очистке поля ввода. */\n searchOnFocus?: boolean;\n\n /** Отображает справа иконку в виде стрелки. */\n drawArrow?: boolean;\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Убирает обводку. */\n borderless?: boolean;\n\n /** Отключает использование портала для рендеринга меню.\n * См. https://github.com/skbkontur/retail-ui/issues/15 */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Добавляет иконку слева.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Задает функцию поиска элементов, которая должна возвращать Promise с массивом элементов.\n * По умолчанию ожидаются объекты с типом `{ value: string, label: string }`.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `itemToValue`, `renderValue`, `renderItem`, `valueToString`. */\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n\n /** Задает функцию сравнения полученных результатов с value. */\n itemToValue?: (item: T) => string | number;\n\n /** Задает максимальную длину инпута. */\n maxLength?: number;\n\n /** Задает текущую позицию выпадающего окна вручную.\n */\n menuPos?: 'top' | 'bottom';\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает функцию, которая вызывается при потере комбобоксом фокуса. */\n onBlur?: () => void;\n\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n\n /** Задает функцию, которая вызывается при получении комбобоксом фокуса. */\n onFocus?: () => void;\n\n /** Задает функцию, которая вызывается при изменении текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода.\n *\n * **Не рекомендуется менять значение, передаваемое в проп `value`, внутри этой функции. Используйте для этих целей `onValueChange` или `onUnexpectedInput`. Иначе возможно неожиданное поведение компонента.**\n */\n onInputValueChange?: (value: string) => Nullable<string> | void;\n\n /** Задает функцию для обработки ввода строки в инпут и последующей потерей фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат valueToString с этим элементом будет совпадать со значение в текстовом поле, то сработает onValueChange со значением данного элемента.\n * Сама функция также может вернуть значение, неравное undefined, с которым будет вызван onValueChange. Если возвращаемое значение будет равно null, то сработает очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | T;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает функцию отрисовки элементов результата поиска.\n * Не применяется если элемент является функцией или React-элементом\n * @default item => item.label\n * @param {T} item - элемент из результата поиска.\n * @param {MenuItemState} state? - состояние элемента.\n * @returns {React.ReactNode} React-элемент. */\n renderItem?: (item: T, state?: MenuItemState) => React.ReactNode;\n\n /** Устанавливает компонент, заменяющий собой обёртку элементов результата поиска.\n * По умолчанию все элементы результата поиска оборачиваются в тег <button />.\n * @example\n * itemWrapper={(item) => {\n * if (item.value === 3) {\n * return (props) => {\n * return <a {...props} />\n * }\n * }\n * }}\n */\n itemWrapper?: (item: T) => React.ComponentType;\n\n /** Задает функцию, которая отображает сообщение о пустом результате поиска. При renderAddButton не работает. */\n renderNotFound?: () => React.ReactNode;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им \"оборачиваются\" элементы, возвращаемые getItems().\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Задает функцию, которая отображает выбранное значение.\n * @default item => item.label */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке. */\n renderAddButton?: (query?: string) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы renderTotalCount. */\n totalCount?: number;\n\n /** Устанавливает выбранное в комбобоксе значение. Тип `value` совпадает с типом элементов в массиве, возвращаемом в `getItems`. */\n value?: Nullable<T>;\n\n /** Задает функцию, которая возвращает строковое представление value. Необходимо при фокусировке. */\n valueToString?: (item: T) => string;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает длину комбобокса. */\n width?: string | number;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n\n /** Задает функцию, которая вызывается при вставке значения в инпут с маской. */\n onBeforePasteInMask?: MaskedInputOnBeforePasteValue;\n}\n\nexport interface ComboBoxItem {\n value: string;\n label: string;\n}\n\nexport type ComboBoxExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxProps<T>,\n | 'itemToValue'\n | 'valueToString'\n | 'renderValue'\n | 'renderItem'\n | 'menuAlign'\n | 'searchOnFocus'\n | 'drawArrow'\n | 'showClearIcon'\n >\n>;\n\n/**\n * `ComboBox` — это поле ввода со списком подсказок.\n *\n * `ComboBox` используют:\n * * для выбора значения из справочника.\n * * для добавления своего значения в справочник.\n *\n * `ComboBox` может работать в двух режимах — обычном и в режиме автокомплита.\n * Основное их отличие в том, что в режиме автокомплита список вариантов появляется только после ввода первого символа или изменении уже введенного значения.\n */\n@rootNode\nexport class ComboBox<T = ComboBoxItem> extends React.Component<ComboBoxProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBox';\n public static displayName = 'ComboBox';\n\n public static defaultProps: DefaultProps<any> = {\n itemToValue: (item: ComboBoxItem) => item.value,\n valueToString: (item: ComboBoxItem) => item.label,\n renderValue: (item: ComboBoxItem) => item.label,\n renderItem: (item: ComboBoxItem) => item.label,\n menuAlign: 'left',\n searchOnFocus: true,\n drawArrow: true,\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(ComboBox.defaultProps);\n\n private comboboxElement: Nullable<CustomComboBox<T>> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }) {\n if (this.comboboxElement) {\n this.comboboxElement.focus(opts);\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /**\n * Открывает выпадающий список и запускает поиск элементов\n *\n * @public\n * @param {string} [query] Текст поиска. По умолчанию берется\n * текст из инпута или результат `valueToString(value)`\n */\n public search(query?: string) {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /**\n * @public Открывает выпадающий список\n */\n public open() {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /**\n * @public Закрывает выпадающий список\n */\n public close() {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Выделяет текст внутри input\n * @public\n */\n public selectInputText() {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render() {\n return <CustomComboBox {...this.getProps()} size={this.props.size} ref={this.customComboBoxRef} />;\n }\n\n private customComboBoxRef = (element: Nullable<CustomComboBox<T>>) => {\n this.setRootNode(element);\n this.comboboxElement = element;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -81,7 +81,7 @@ export interface InputProps extends CommonProps, Pick<HTMLAttributes<unknown>, '
|
|
|
81
81
|
selectAllOnFocus?: boolean;
|
|
82
82
|
/** Задает функцию для обработки ввода.
|
|
83
83
|
* При неправильном вводе инпут по-умолчанию вспыхивает акцентным цветом.
|
|
84
|
-
* Если `onUnexpectedInput` передан - вызывается переданный обработчик
|
|
84
|
+
* Если `onUnexpectedInput` передан - вызывается переданный обработчик и вспыхивание можно вызвать публичным методом инстанса `blink()`.
|
|
85
85
|
* @param {string} value - значение инпута. */
|
|
86
86
|
onUnexpectedInput?: (value: string) => void;
|
|
87
87
|
/** Устанавливает радиус скруглений углов.
|
|
@@ -92,7 +92,6 @@ export interface InputProps extends CommonProps, Pick<HTMLAttributes<unknown>, '
|
|
|
92
92
|
}> {
|
|
93
93
|
}
|
|
94
94
|
export interface InputState {
|
|
95
|
-
blinking: boolean;
|
|
96
95
|
focused: boolean;
|
|
97
96
|
hovered: boolean;
|
|
98
97
|
needsPolyfillPlaceholder: boolean;
|
|
@@ -123,8 +122,8 @@ export declare class Input extends React.Component<InputProps, InputState> {
|
|
|
123
122
|
private getProps;
|
|
124
123
|
private selectAllId;
|
|
125
124
|
private theme;
|
|
126
|
-
private blinkTimeout;
|
|
127
125
|
input: HTMLInputElement | null;
|
|
126
|
+
labelRef: React.RefObject<HTMLLabelElement>;
|
|
128
127
|
getRootNode: TGetRootNode;
|
|
129
128
|
private setRootNode;
|
|
130
129
|
private getClearCrossShowed;
|
|
@@ -167,7 +166,6 @@ export declare class Input extends React.Component<InputProps, InputState> {
|
|
|
167
166
|
delaySelectAll: () => number | null;
|
|
168
167
|
private _selectAll;
|
|
169
168
|
private cancelDelayedSelectAll;
|
|
170
|
-
private cancelBlink;
|
|
171
169
|
private getInput;
|
|
172
170
|
private renderMain;
|
|
173
171
|
private renderMaskedInput;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.selectionErrorMessage = exports.selectionAllowedTypes = exports.maskForbiddenTypes = exports.maskErrorMessage = exports.maskAllowedTypes = exports.inputTypes = exports.calculateClearCrossShowedState = exports.InputDataTids = exports.Input = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.selectionErrorMessage = exports.selectionAllowedTypes = exports.maskForbiddenTypes = exports.maskErrorMessage = exports.maskAllowedTypes = exports.inputTypes = exports.calculateClearCrossShowedState = exports.InputDataTids = exports.Input = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
2
2
|
var _invariant = _interopRequireDefault(require("invariant"));
|
|
3
3
|
|
|
4
|
-
var _react =
|
|
4
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
5
5
|
var _warning = _interopRequireDefault(require("warning"));
|
|
6
|
-
|
|
7
6
|
var _globalObject = require("@skbkontur/global-object");
|
|
8
7
|
|
|
9
8
|
var _client = require("../../lib/client");
|
|
@@ -23,6 +22,7 @@ var _createPropsGetter = require("../../lib/createPropsGetter");
|
|
|
23
22
|
var _FocusControlWrapper = require("../../internal/FocusControlWrapper");
|
|
24
23
|
var _ClearCrossIcon = require("../../internal/ClearCrossIcon/ClearCrossIcon");
|
|
25
24
|
var _typeGuards = require("../../lib/typeGuards");
|
|
25
|
+
var _blink2 = require("../../lib/blink");
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
var _Input2 = require("./Input.styles");
|
|
@@ -187,7 +187,6 @@ var calculateClearCrossShowedState = exports.calculateClearCrossShowedState = fu
|
|
|
187
187
|
|
|
188
188
|
|
|
189
189
|
|
|
190
|
-
|
|
191
190
|
|
|
192
191
|
|
|
193
192
|
var InputDataTids = exports.InputDataTids = {
|
|
@@ -225,8 +224,8 @@ Input = exports.Input = (0, _rootNode.rootNode)(_class = (_Input = /*#__PURE__*/
|
|
|
225
224
|
|
|
226
225
|
selectAllId = null;_this.
|
|
227
226
|
|
|
228
|
-
|
|
229
227
|
input = null;_this.
|
|
228
|
+
labelRef = /*#__PURE__*/(0, _react.createRef)();_this.
|
|
230
229
|
|
|
231
230
|
|
|
232
231
|
|
|
@@ -252,7 +251,6 @@ Input = exports.Input = (0, _rootNode.rootNode)(_class = (_Input = /*#__PURE__*/
|
|
|
252
251
|
|
|
253
252
|
state = {
|
|
254
253
|
needsPolyfillPlaceholder: _needsPolyfillPlaceholder.needsPolyfillPlaceholder,
|
|
255
|
-
blinking: false,
|
|
256
254
|
focused: false,
|
|
257
255
|
hovered: false,
|
|
258
256
|
clearCrossShowed: _this.getClearCrossShowed({
|
|
@@ -349,20 +347,6 @@ Input = exports.Input = (0, _rootNode.rootNode)(_class = (_Input = /*#__PURE__*/
|
|
|
349
347
|
|
|
350
348
|
|
|
351
349
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
350
|
|
|
367
351
|
|
|
368
352
|
|
|
@@ -402,20 +386,6 @@ Input = exports.Input = (0, _rootNode.rootNode)(_class = (_Input = /*#__PURE__*/
|
|
|
402
386
|
}
|
|
403
387
|
};_this.
|
|
404
388
|
|
|
405
|
-
cancelBlink = function (callback) {
|
|
406
|
-
if (_this.blinkTimeout) {
|
|
407
|
-
_globalObject.globalObject.clearTimeout(_this.blinkTimeout);
|
|
408
|
-
_this.blinkTimeout = 0;
|
|
409
|
-
if (_this.state.blinking) {
|
|
410
|
-
_this.setState({ blinking: false }, callback);
|
|
411
|
-
return;
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
if (callback) {
|
|
415
|
-
callback();
|
|
416
|
-
}
|
|
417
|
-
};_this.
|
|
418
|
-
|
|
419
389
|
getInput = function (inputProps) {
|
|
420
390
|
if (_this.props.element) {
|
|
421
391
|
return /*#__PURE__*/_react.default.cloneElement(_this.props.element, inputProps);
|
|
@@ -464,13 +434,12 @@ Input = exports.Input = (0, _rootNode.rootNode)(_class = (_Input = /*#__PURE__*/
|
|
|
464
434
|
|
|
465
435
|
props.onMouseEnter,onMouseLeave = props.onMouseLeave,onMouseOver = props.onMouseOver,onKeyDown = props.onKeyDown,onKeyPress = props.onKeyPress,onValueChange = props.onValueChange,width = props.width,error = props.error,role = props.role,warning = props.warning,leftIcon = props.leftIcon,rightIcon = props.rightIcon,borderless = props.borderless,value = props.value,align = props.align,type = props.type,mask = props.mask,maskChar = props.maskChar,alwaysShowMask = props.alwaysShowMask,size = props.size,placeholder = props.placeholder,selectAllOnFocus = props.selectAllOnFocus,disabled = props.disabled,onUnexpectedInput = props.onUnexpectedInput,prefix = props.prefix,suffix = props.suffix,formatChars = props.formatChars,corners = props.corners,ariaDescribedby = props['aria-describedby'],ariaControls = props['aria-controls'],ariaLabel = props['aria-label'],element = props.element,showClearIcon = props.showClearIcon,rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
466
436
|
|
|
467
|
-
var
|
|
437
|
+
var focused = _this.state.focused;
|
|
468
438
|
|
|
469
439
|
var labelProps = {
|
|
470
440
|
className: (0, _Emotion.cx)(_Input2.styles.root(_this.theme), _this.getSizeClassName(), (_cx = {}, _cx[
|
|
471
441
|
_Input2.styles.focus(_this.theme)] = focused && !warning && !error, _cx[
|
|
472
442
|
_Input2.styles.hovering(_this.theme)] = !focused && !disabled && !warning && !error && !borderless, _cx[
|
|
473
|
-
_Input2.styles.blink(_this.theme)] = blinking, _cx[
|
|
474
443
|
_Input2.styles.borderless()] = borderless && !focused, _cx[
|
|
475
444
|
_Input2.styles.disabled(_this.theme)] = disabled, _cx[
|
|
476
445
|
_Input2.styles.warning(_this.theme)] = warning, _cx[
|
|
@@ -483,7 +452,8 @@ Input = exports.Input = (0, _rootNode.rootNode)(_class = (_Input = /*#__PURE__*/
|
|
|
483
452
|
style: (0, _extends2.default)({ width: width }, corners),
|
|
484
453
|
onMouseEnter: _this.handleMouseEnter,
|
|
485
454
|
onMouseLeave: _this.handleMouseLeave,
|
|
486
|
-
onMouseOver: onMouseOver
|
|
455
|
+
onMouseOver: onMouseOver,
|
|
456
|
+
ref: _this.labelRef
|
|
487
457
|
};
|
|
488
458
|
|
|
489
459
|
var inputProps = (0, _extends2.default)({},
|
|
@@ -705,7 +675,7 @@ Input = exports.Input = (0, _rootNode.rootNode)(_class = (_Input = /*#__PURE__*/
|
|
|
705
675
|
});
|
|
706
676
|
_this.props.onBlur == null || _this.props.onBlur(event);
|
|
707
677
|
}
|
|
708
|
-
};return _this;}(0, _inheritsLoose2.default)(Input, _React$Component);var _proto = Input.prototype;_proto.outputMaskError = function outputMaskError() {(0, _warning.default)(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));};_proto.componentDidMount = function componentDidMount() {this.outputMaskError();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {this.outputMaskError();}};_proto.componentWillUnmount = function componentWillUnmount() {
|
|
678
|
+
};return _this;}(0, _inheritsLoose2.default)(Input, _React$Component);var _proto = Input.prototype;_proto.outputMaskError = function outputMaskError() {(0, _warning.default)(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));};_proto.componentDidMount = function componentDidMount() {this.outputMaskError();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {this.outputMaskError();}};_proto.componentWillUnmount = function componentWillUnmount() {this.cancelDelayedSelectAll();} /**
|
|
709
679
|
* @public
|
|
710
680
|
*/;_proto.focus = function focus() {(0, _invariant.default)(this.input, 'Cannot call "focus" because Input is not mounted');this.input.focus();} /**
|
|
711
681
|
* @public
|
|
@@ -713,12 +683,10 @@ Input = exports.Input = (0, _rootNode.rootNode)(_class = (_Input = /*#__PURE__*/
|
|
|
713
683
|
* @public
|
|
714
684
|
*/;_proto.getNode = function getNode() {return this.input;} /**
|
|
715
685
|
* @public
|
|
716
|
-
*/;_proto.blink = function blink() {
|
|
717
|
-
// @see https://css-tricks.com/restart-css-animation/#article-header-id-0
|
|
718
|
-
void (_this2.input && _this2.input.offsetWidth);_this2.blink();});return;}this.setState({ blinking: true }, function () {_this2.blinkTimeout = _globalObject.globalObject.setTimeout(_this2.cancelBlink, 150);});} /**
|
|
686
|
+
*/;_proto.blink = function blink() {(0, _blink2.blink)({ el: this.labelRef.current, blinkColor: this.theme.inputBlinkColor });} /**
|
|
719
687
|
* @public
|
|
720
688
|
* @param {number} start
|
|
721
689
|
* @param {number} end
|
|
722
|
-
*/;_proto.setSelectionRange = function setSelectionRange(start, end) {var _globalObject$documen,_this$props$value,
|
|
690
|
+
*/;_proto.setSelectionRange = function setSelectionRange(start, end) {var _globalObject$documen,_this$props$value,_this2 = this; // https://github.com/facebook/react/issues/7769
|
|
723
691
|
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange
|
|
724
|
-
if (!selectionAllowedTypes.includes(this.getProps().type)) {(0, _warning.default)(false, selectionErrorMessage(this.getProps().type));return;}if (!this.input) {throw new Error('Cannot call "setSelectionRange" on unmounted Input');}if (((_globalObject$documen = _globalObject.globalObject.document) == null ? void 0 : _globalObject$documen.activeElement) !== this.input) {this.focus();}if (this.props.mask && this.props.value && ((_this$props$value = this.props.value) == null ? void 0 : _this$props$value.length) < this.props.mask.length) {_globalObject.globalObject.setTimeout(function () {var
|
|
692
|
+
if (!selectionAllowedTypes.includes(this.getProps().type)) {(0, _warning.default)(false, selectionErrorMessage(this.getProps().type));return;}if (!this.input) {throw new Error('Cannot call "setSelectionRange" on unmounted Input');}if (((_globalObject$documen = _globalObject.globalObject.document) == null ? void 0 : _globalObject$documen.activeElement) !== this.input) {this.focus();}if (this.props.mask && this.props.value && ((_this$props$value = this.props.value) == null ? void 0 : _this$props$value.length) < this.props.mask.length) {_globalObject.globalObject.setTimeout(function () {var _this2$input;(_this2$input = _this2.input) == null || _this2$input.setSelectionRange(start, end);}, 150);} else {var _this$input2;(_this$input2 = this.input) == null || _this$input2.setSelectionRange(start, end);}};_proto.render = function render() {var _this3 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this3.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this3.setRootNode }, _this3.getProps()), _this3.renderMain);});};_proto.renderMaskedInput = function renderMaskedInput(inputProps, mask) {return /*#__PURE__*/_react.default.createElement(_InternalMaskedInput.InternalMaskedInput, (0, _extends2.default)({}, inputProps, { mask: mask, maskChar: this.props.maskChar, alwaysShowMask: this.props.alwaysShowMask, formatChars: this.props.formatChars, onChange: this.props.onChange, onValueChange: this.handleMaskedValueChange, onUnexpectedInput: this.handleUnexpectedInput }));};_proto.getSizeClassName = function getSizeClassName() {var _cx3, _cx4, _cx5;switch (this.getProps().size) {case 'large':return (0, _Emotion.cx)((_cx3 = {}, _cx3[_Input2.styles.sizeLarge(this.theme)] = true, _cx3[_Input2.styles.sizeLargeFallback(this.theme)] = _client.isIE11 || _client.isEdge, _cx3));case 'medium':return (0, _Emotion.cx)((_cx4 = {}, _cx4[_Input2.styles.sizeMedium(this.theme)] = true, _cx4[_Input2.styles.sizeMediumFallback(this.theme)] = _client.isIE11 || _client.isEdge, _cx4));case 'small':default:return (0, _Emotion.cx)((_cx5 = {}, _cx5[_Input2.styles.sizeSmall(this.theme)] = true, _cx5[_Input2.styles.sizeSmallFallback(this.theme)] = _client.isIE11 || _client.isEdge, _cx5));}};return (0, _createClass2.default)(Input, [{ key: "isMaskVisible", get: function get() {var _this$props = this.props,mask = _this$props.mask,alwaysShowMask = _this$props.alwaysShowMask;var focused = this.state.focused;return Boolean(mask && (focused || alwaysShowMask));} }, { key: "canBeUsedWithMask", get: function get() {return maskForbiddenTypes.includes(this.getProps().type);} }]);}(_react.default.Component), _Input.__KONTUR_REACT_UI__ = 'Input', _Input.displayName = 'Input', _Input.defaultProps = { size: 'small', type: 'text', showClearIcon: 'never' }, _Input)) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_invariant","_interopRequireDefault","require","_react","_warning","_globalObject","_client","_identifiers","_needsPolyfillPlaceholder","_InternalMaskedInput","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_FocusControlWrapper","_ClearCrossIcon","_typeGuards","_Input2","_InputLayout","_PolyfillPlaceholder","_excluded","_class","_Input","inputTypes","exports","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","maskForbiddenTypes","maskAllowedTypes","filter","includes","maskErrorMessage","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","catchUnreachableWarning","InputDataTids","root","clearCross","Input","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","selectAllId","input","getClearCrossShowed","_ref2","_this$input","hasInitialValue","props","disabled","value","state","needsPolyfillPlaceholder","blinking","clearCrossShowed","defaultValue","selectAll","_selectAll","delaySelectAll","_globalObject$request","globalObject","requestAnimationFrame","setSelectionRange","cancelDelayedSelectAll","cancelAnimationFrame","cancelBlink","callback","blinkTimeout","clearTimeout","setState","getInput","inputProps","element","React","cloneElement","mask","canBeUsedWithMask","renderMaskedInput","createElement","renderMain","_cx","_cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","warning","leftIcon","rightIcon","borderless","align","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","formatChars","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose2","default","_this$state","labelProps","className","cx","styles","theme","getSizeClassName","focus","hovering","blink","focusFallback","isIE11","isEdge","warningFallback","errorFallback","style","_extends2","handleMouseEnter","handleMouseLeave","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","ref","refInput","isMaskVisible","undefined","FocusControlWrapper","onBlurWhenDisabled","resetFocus","getRightIcon","ClearCrossIcon","onClick","handleClearInput","InputLayout","context","PolyfillPlaceholder","InternalMaskedInput","event","fieldIsEmpty","target","e","isDeleteKey","someKeys","isKeyBackspace","isKeyDelete","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","_getRootNode","getRootNode","contains","relatedTarget","_inheritsLoose2","_proto","prototype","outputMaskError","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","invariant","blur","getNode","_this2","offsetWidth","setTimeout","start","end","_globalObject$documen","_this$props$value","_this3","Error","document","activeElement","_this3$input","_this$input2","render","_this4","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","_cx3","_cx4","_cx5","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","_createClass2","key","get","_this$props","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Input.tsx"],"sourcesContent":["// TODO: Enable this rule in functional components.\nimport invariant from 'invariant';\nimport type { AriaAttributes, ClassAttributes, HTMLAttributes, ReactElement } from 'react';\nimport React from 'react';\nimport warning from 'warning';\nimport type { SafeTimer } from '@skbkontur/global-object';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { InternalMaskedInput } from '../../internal/InternalMaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { ClearCrossIcon } from '../../internal/ClearCrossIcon/ClearCrossIcon';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\n\nimport type { InputElement, InputElementProps } from './Input.typings';\nimport { styles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\nimport { PolyfillPlaceholder } from './InputLayout/PolyfillPlaceholder';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type ShowClearIcon = 'auto' | 'always' | 'never';\nexport type InputType = (typeof inputTypes)[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const maskForbiddenTypes: InputType[] = ['number', 'date', 'time'];\nexport const maskAllowedTypes: InputType[] = inputTypes.filter((type) => {\n return !maskForbiddenTypes.includes(type);\n});\nexport const maskErrorMessage = (type: InputType, allowedTypes: InputType[] = maskAllowedTypes) => {\n return `<Input />. Prop \"mask\" does not support type \"${type}\". Supported types: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}.`;\n};\nexport const calculateClearCrossShowedState = ({\n showClearIcon,\n notEmptyValue,\n focused,\n hovered,\n}: {\n showClearIcon: ShowClearIcon;\n notEmptyValue: boolean;\n focused?: boolean;\n hovered?: boolean;\n}): boolean => {\n switch (showClearIcon) {\n case 'always':\n return notEmptyValue;\n case 'auto':\n return Boolean((focused || hovered) && notEmptyValue);\n case 'never':\n return false;\n default:\n return catchUnreachableWarning(showClearIcon, false);\n }\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Показывать иконку очистки значения в непустом поле:\n * - `always` — всегда показывать иконку\n * - `auto` — показывать иконку при hover/focus\n * - `never` — не показывать иконку\n * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Задает иконку слева.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Убирает обводку. */\n borderless?: boolean;\n\n /** Задает выравнивание контента. */\n align?: InputAlign;\n\n /** Задает паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url`\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n mask?: Nullable<string>;\n\n /** Устанавливает символ маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n maskChar?: Nullable<string>;\n\n /** Задает словарь символов-регулярок для задания маски\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }. */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n alwaysShowMask?: boolean;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задает функцию, которая вызывается при изменении значения в инпуте. */\n onValueChange?: (value: string) => void;\n\n /** @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает тип инпута. */\n type?: InputType;\n\n /** Задает значение. */\n value?: string;\n\n ///** */\n capture?: boolean;\n\n /** Устанавливает префикс `ReactNode` перед значением, но после иконки. */\n prefix?: React.ReactNode;\n\n /** Устанавливает суффикс `ReactNode` после значения, но перед правой иконкой. */\n suffix?: React.ReactNode;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами `text`, `password`, `tel`, `search`, `url`. [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange) */\n selectAllOnFocus?: boolean;\n\n /** Задает функцию для обработки ввода.\n * При неправильном вводе инпут по-умолчанию вспыхивает акцентным цветом.\n * Если `onUnexpectedInput` передан - вызывается переданный обработчик b вспыхивание можно вызвать публичным методом инстанса `blink()`.\n * @param {string} value - значение инпута. */\n onUnexpectedInput?: (value: string) => void;\n\n /** Устанавливает радиус скруглений углов.\n * @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n\n /** Устанавливает элемент, заменяющий нативный input. Должен иметь пропы `InputElementProps` и тип `InputElement`. */\n element?: ReactElement<InputElementProps>;\n }\n > {}\n\nexport interface InputState {\n blinking: boolean;\n focused: boolean;\n hovered: boolean;\n needsPolyfillPlaceholder: boolean;\n clearCrossShowed: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n clearCross: 'Input__clearCross',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'size' | 'type' | 'showClearIcon'>>;\n\n/**\n * Поле ввода `Input` дает возможность указать значение с помощью клавиатуры.\n *\n * Используйте поле ввода для коротких текстовых или цифровых значений без предсказуемого формата.\n *\n * Если вводимое значение имеет определенный формат, используйте специальную версию поля:\n * * Поле с паролем PasswordInput.\n * * Поле с валютой CurrencyInput.\n * * Поле с маской MaskedInput.\n * * Автополе FxInput.\n *\n * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.\n */\n@rootNode\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n public static displayName = 'Input';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n type: 'text',\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n private blinkTimeout: SafeTimer;\n public input: HTMLInputElement | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private getClearCrossShowed = ({\n focused,\n hovered,\n hasInitialValue,\n }: {\n focused?: boolean;\n hovered?: boolean;\n hasInitialValue?: boolean;\n }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.input?.value || hasInitialValue),\n focused,\n hovered,\n });\n };\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n blinking: false,\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n hasInitialValue: Boolean(this.props.value || this.props.defaultValue),\n }),\n };\n\n private outputMaskError() {\n warning(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));\n }\n\n public componentDidMount() {\n this.outputMaskError();\n }\n\n public componentDidUpdate(prevProps: Readonly<InputProps>) {\n if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {\n this.outputMaskError();\n }\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n }\n this.cancelDelayedSelectAll();\n }\n\n /**\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input.blur();\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.blinkTimeout) {\n this.cancelBlink(() => {\n // trigger reflow to restart animation\n // @see https://css-tricks.com/restart-css-animation/#article-header-id-0\n void (this.input && this.input.offsetWidth);\n this.blink();\n });\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = globalObject.setTimeout(this.cancelBlink, 150);\n });\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n // https://github.com/facebook/react/issues/7769\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n if (!selectionAllowedTypes.includes(this.getProps().type)) {\n warning(false, selectionErrorMessage(this.getProps().type));\n\n return;\n }\n\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.input) {\n this.focus();\n }\n if (this.props.mask && this.props.value && this.props.value?.length < this.props.mask.length) {\n globalObject.setTimeout(() => {\n this.input?.setSelectionRange(start, end);\n }, 150);\n } else {\n this.input?.setSelectionRange(start, end);\n }\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private get canBeUsedWithMask() {\n return maskForbiddenTypes.includes(this.getProps().type);\n }\n\n /**\n * Работает с типами `text`, `password`, `tel`, `search`, `url`\n * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)\n * @public\n */\n public selectAll = (): void => this._selectAll();\n\n public delaySelectAll = (): number | null => {\n return (this.selectAllId = globalObject.requestAnimationFrame?.(this._selectAll) ?? null);\n };\n\n private _selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private cancelBlink = (callback?: () => void): void => {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n this.blinkTimeout = 0;\n if (this.state.blinking) {\n this.setState({ blinking: false }, callback);\n return;\n }\n }\n if (callback) {\n callback();\n }\n };\n\n private getInput = (inputProps: InputElementProps & ClassAttributes<HTMLInputElement>) => {\n if (this.props.element) {\n return React.cloneElement(this.props.element, inputProps);\n }\n\n return this.props.mask && !this.canBeUsedWithMask\n ? this.renderMaskedInput(inputProps, this.props.mask)\n : React.createElement('input', inputProps);\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n role,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n corners,\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n element,\n showClearIcon,\n ...rest\n } = props;\n\n const { blinking, focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused && !warning && !error,\n [styles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [styles.blink(this.theme)]: blinking,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n 'aria-controls': ariaControls,\n style: { width, ...corners },\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onMouseOver,\n };\n\n const inputProps: InputElementProps & ClassAttributes<HTMLInputElement> = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n role,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type,\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n };\n\n const input = (\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>{this.getInput(inputProps)}</FocusControlWrapper>\n );\n\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon data-tid={InputDataTids.clearCross} size={size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={getRightIcon()}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size }}\n >\n {input}\n {this.state.needsPolyfillPlaceholder && (\n <PolyfillPlaceholder\n isMaskVisible={this.isMaskVisible}\n value={value}\n defaultValue={this.props.defaultValue}\n align={align}\n >\n {placeholder}\n </PolyfillPlaceholder>\n )}\n </InputLayout>\n );\n };\n\n private renderMaskedInput(inputProps: React.InputHTMLAttributes<HTMLInputElement>, mask: string) {\n return (\n <InternalMaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | InternalMaskedInput | InputElement | null) => {\n if (element instanceof InternalMaskedInput || (element && 'input' in element)) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleClearInput = () => {\n if (this.input) {\n this.input.value = '';\n }\n\n this.setState({ clearCrossShowed: false });\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n\n this.setState({\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: this.state.hovered }),\n });\n };\n\n private handleMouseEnter = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }),\n });\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n private handleMouseLeave = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }),\n });\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private resetFocus = () => this.setState({ focused: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const showClearIcon = this.props.showClearIcon;\n if (showClearIcon && getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n const clearCrossShowed = this.getClearCrossShowed({ focused: false, hovered: this.state.hovered });\n this.setState({\n focused: false,\n clearCrossShowed,\n });\n this.props.onBlur?.(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_invariant","_interopRequireDefault","require","_react","_interopRequireWildcard","_warning","_globalObject","_client","_identifiers","_needsPolyfillPlaceholder","_InternalMaskedInput","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_FocusControlWrapper","_ClearCrossIcon","_typeGuards","_blink2","_Input2","_InputLayout","_PolyfillPlaceholder","_excluded","_class","_Input","inputTypes","exports","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","maskForbiddenTypes","maskAllowedTypes","filter","includes","maskErrorMessage","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","catchUnreachableWarning","InputDataTids","root","clearCross","Input","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","selectAllId","input","labelRef","createRef","getClearCrossShowed","_ref2","_this$input","hasInitialValue","props","disabled","value","state","needsPolyfillPlaceholder","clearCrossShowed","defaultValue","selectAll","_selectAll","delaySelectAll","_globalObject$request","globalObject","requestAnimationFrame","setSelectionRange","cancelDelayedSelectAll","cancelAnimationFrame","getInput","inputProps","element","React","cloneElement","mask","canBeUsedWithMask","renderMaskedInput","createElement","renderMain","_cx","_cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","warning","leftIcon","rightIcon","borderless","align","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","formatChars","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose2","default","labelProps","className","cx","styles","theme","getSizeClassName","focus","hovering","focusFallback","isIE11","isEdge","warningFallback","errorFallback","style","_extends2","handleMouseEnter","handleMouseLeave","ref","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","refInput","isMaskVisible","undefined","FocusControlWrapper","onBlurWhenDisabled","resetFocus","getRightIcon","ClearCrossIcon","onClick","handleClearInput","InputLayout","context","PolyfillPlaceholder","InternalMaskedInput","setState","event","fieldIsEmpty","target","e","isDeleteKey","someKeys","isKeyBackspace","isKeyDelete","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","blink","_getRootNode","getRootNode","contains","relatedTarget","_inheritsLoose2","_proto","prototype","outputMaskError","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","invariant","blur","getNode","el","current","blinkColor","inputBlinkColor","start","end","_globalObject$documen","_this$props$value","_this2","Error","document","activeElement","setTimeout","_this2$input","_this$input2","render","_this3","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","_cx3","_cx4","_cx5","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","_createClass2","key","get","_this$props","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Input.tsx"],"sourcesContent":["// TODO: Enable this rule in functional components.\nimport invariant from 'invariant';\nimport type { AriaAttributes, ClassAttributes, HTMLAttributes, ReactElement } from 'react';\nimport React, { createRef } from 'react';\nimport warning from 'warning';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { InternalMaskedInput } from '../../internal/InternalMaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { ClearCrossIcon } from '../../internal/ClearCrossIcon/ClearCrossIcon';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\nimport { blink } from '../../lib/blink';\n\nimport type { InputElement, InputElementProps } from './Input.typings';\nimport { styles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\nimport { PolyfillPlaceholder } from './InputLayout/PolyfillPlaceholder';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type ShowClearIcon = 'auto' | 'always' | 'never';\nexport type InputType = (typeof inputTypes)[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const maskForbiddenTypes: InputType[] = ['number', 'date', 'time'];\nexport const maskAllowedTypes: InputType[] = inputTypes.filter((type) => {\n return !maskForbiddenTypes.includes(type);\n});\nexport const maskErrorMessage = (type: InputType, allowedTypes: InputType[] = maskAllowedTypes) => {\n return `<Input />. Prop \"mask\" does not support type \"${type}\". Supported types: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}.`;\n};\nexport const calculateClearCrossShowedState = ({\n showClearIcon,\n notEmptyValue,\n focused,\n hovered,\n}: {\n showClearIcon: ShowClearIcon;\n notEmptyValue: boolean;\n focused?: boolean;\n hovered?: boolean;\n}): boolean => {\n switch (showClearIcon) {\n case 'always':\n return notEmptyValue;\n case 'auto':\n return Boolean((focused || hovered) && notEmptyValue);\n case 'never':\n return false;\n default:\n return catchUnreachableWarning(showClearIcon, false);\n }\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Показывать иконку очистки значения в непустом поле:\n * - `always` — всегда показывать иконку\n * - `auto` — показывать иконку при hover/focus\n * - `never` — не показывать иконку\n * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Задает иконку слева.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Убирает обводку. */\n borderless?: boolean;\n\n /** Задает выравнивание контента. */\n align?: InputAlign;\n\n /** Задает паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url`\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n mask?: Nullable<string>;\n\n /** Устанавливает символ маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n maskChar?: Nullable<string>;\n\n /** Задает словарь символов-регулярок для задания маски\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }. */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n alwaysShowMask?: boolean;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задает функцию, которая вызывается при изменении значения в инпуте. */\n onValueChange?: (value: string) => void;\n\n /** @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает тип инпута. */\n type?: InputType;\n\n /** Задает значение. */\n value?: string;\n\n ///** */\n capture?: boolean;\n\n /** Устанавливает префикс `ReactNode` перед значением, но после иконки. */\n prefix?: React.ReactNode;\n\n /** Устанавливает суффикс `ReactNode` после значения, но перед правой иконкой. */\n suffix?: React.ReactNode;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами `text`, `password`, `tel`, `search`, `url`. [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange) */\n selectAllOnFocus?: boolean;\n\n /** Задает функцию для обработки ввода.\n * При неправильном вводе инпут по-умолчанию вспыхивает акцентным цветом.\n * Если `onUnexpectedInput` передан - вызывается переданный обработчик и вспыхивание можно вызвать публичным методом инстанса `blink()`.\n * @param {string} value - значение инпута. */\n onUnexpectedInput?: (value: string) => void;\n\n /** Устанавливает радиус скруглений углов.\n * @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n\n /** Устанавливает элемент, заменяющий нативный input. Должен иметь пропы `InputElementProps` и тип `InputElement`. */\n element?: ReactElement<InputElementProps>;\n }\n > {}\n\nexport interface InputState {\n focused: boolean;\n hovered: boolean;\n needsPolyfillPlaceholder: boolean;\n clearCrossShowed: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n clearCross: 'Input__clearCross',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'size' | 'type' | 'showClearIcon'>>;\n\n/**\n * Поле ввода `Input` дает возможность указать значение с помощью клавиатуры.\n *\n * Используйте поле ввода для коротких текстовых или цифровых значений без предсказуемого формата.\n *\n * Если вводимое значение имеет определенный формат, используйте специальную версию поля:\n * * Поле с паролем PasswordInput.\n * * Поле с валютой CurrencyInput.\n * * Поле с маской MaskedInput.\n * * Автополе FxInput.\n *\n * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.\n */\n@rootNode\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n public static displayName = 'Input';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n type: 'text',\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n public input: HTMLInputElement | null = null;\n public labelRef = createRef<HTMLLabelElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private getClearCrossShowed = ({\n focused,\n hovered,\n hasInitialValue,\n }: {\n focused?: boolean;\n hovered?: boolean;\n hasInitialValue?: boolean;\n }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.input?.value || hasInitialValue),\n focused,\n hovered,\n });\n };\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n hasInitialValue: Boolean(this.props.value || this.props.defaultValue),\n }),\n };\n\n private outputMaskError() {\n warning(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));\n }\n\n public componentDidMount() {\n this.outputMaskError();\n }\n\n public componentDidUpdate(prevProps: Readonly<InputProps>) {\n if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {\n this.outputMaskError();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedSelectAll();\n }\n\n /**\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input.blur();\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /**\n * @public\n */\n public blink() {\n blink({ el: this.labelRef.current, blinkColor: this.theme.inputBlinkColor });\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n // https://github.com/facebook/react/issues/7769\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n if (!selectionAllowedTypes.includes(this.getProps().type)) {\n warning(false, selectionErrorMessage(this.getProps().type));\n\n return;\n }\n\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.input) {\n this.focus();\n }\n if (this.props.mask && this.props.value && this.props.value?.length < this.props.mask.length) {\n globalObject.setTimeout(() => {\n this.input?.setSelectionRange(start, end);\n }, 150);\n } else {\n this.input?.setSelectionRange(start, end);\n }\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private get canBeUsedWithMask() {\n return maskForbiddenTypes.includes(this.getProps().type);\n }\n\n /**\n * Работает с типами `text`, `password`, `tel`, `search`, `url`\n * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)\n * @public\n */\n public selectAll = (): void => this._selectAll();\n\n public delaySelectAll = (): number | null => {\n return (this.selectAllId = globalObject.requestAnimationFrame?.(this._selectAll) ?? null);\n };\n\n private _selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private getInput = (inputProps: InputElementProps & ClassAttributes<HTMLInputElement>) => {\n if (this.props.element) {\n return React.cloneElement(this.props.element, inputProps);\n }\n\n return this.props.mask && !this.canBeUsedWithMask\n ? this.renderMaskedInput(inputProps, this.props.mask)\n : React.createElement('input', inputProps);\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n role,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n corners,\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n element,\n showClearIcon,\n ...rest\n } = props;\n\n const { focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused && !warning && !error,\n [styles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n 'aria-controls': ariaControls,\n style: { width, ...corners },\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onMouseOver,\n ref: this.labelRef,\n };\n\n const inputProps: InputElementProps & ClassAttributes<HTMLInputElement> = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n role,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type,\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n };\n\n const input = (\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>{this.getInput(inputProps)}</FocusControlWrapper>\n );\n\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon data-tid={InputDataTids.clearCross} size={size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={getRightIcon()}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size }}\n >\n {input}\n {this.state.needsPolyfillPlaceholder && (\n <PolyfillPlaceholder\n isMaskVisible={this.isMaskVisible}\n value={value}\n defaultValue={this.props.defaultValue}\n align={align}\n >\n {placeholder}\n </PolyfillPlaceholder>\n )}\n </InputLayout>\n );\n };\n\n private renderMaskedInput(inputProps: React.InputHTMLAttributes<HTMLInputElement>, mask: string) {\n return (\n <InternalMaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | InternalMaskedInput | InputElement | null) => {\n if (element instanceof InternalMaskedInput || (element && 'input' in element)) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleClearInput = () => {\n if (this.input) {\n this.input.value = '';\n }\n\n this.setState({ clearCrossShowed: false });\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n\n this.setState({\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: this.state.hovered }),\n });\n };\n\n private handleMouseEnter = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }),\n });\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n private handleMouseLeave = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }),\n });\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private resetFocus = () => this.setState({ focused: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const showClearIcon = this.props.showClearIcon;\n if (showClearIcon && getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n const clearCrossShowed = this.getClearCrossShowed({ focused: false, hovered: this.state.hovered });\n this.setState({\n focused: false,\n clearCrossShowed,\n });\n this.props.onBlur?.(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|