@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.
Files changed (44) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/cjs/components/ComboBox/ComboBox.d.ts +4 -1
  3. package/cjs/components/ComboBox/ComboBox.js +3 -0
  4. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  5. package/cjs/components/Input/Input.d.ts +2 -4
  6. package/cjs/components/Input/Input.js +11 -43
  7. package/cjs/components/Input/Input.js.map +1 -1
  8. package/cjs/components/Input/Input.styles.d.ts +0 -1
  9. package/cjs/components/Input/Input.styles.js +8 -19
  10. package/cjs/components/Input/Input.styles.js.map +1 -1
  11. package/cjs/components/SidePage/SidePage.styles.js +2 -2
  12. package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
  13. package/cjs/components/Toast/Toast.d.ts +1 -1
  14. package/cjs/components/Toast/Toast.js +1 -1
  15. package/cjs/components/Toast/Toast.js.map +1 -1
  16. package/cjs/internal/InputLikeText/InputLikeText.d.ts +0 -2
  17. package/cjs/internal/InputLikeText/InputLikeText.js +3 -7
  18. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  19. package/cjs/lib/__stories__/Blink.creevey.mts +90 -0
  20. package/cjs/lib/blink.d.ts +15 -0
  21. package/cjs/lib/blink.js +65 -0
  22. package/cjs/lib/blink.js.map +1 -0
  23. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  24. package/components/ComboBox/ComboBox.d.ts +4 -1
  25. package/components/Input/Input/Input.js +17 -46
  26. package/components/Input/Input/Input.js.map +1 -1
  27. package/components/Input/Input.d.ts +2 -4
  28. package/components/Input/Input.styles/Input.styles.js +9 -13
  29. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  30. package/components/Input/Input.styles.d.ts +0 -1
  31. package/components/SidePage/SidePage.styles/SidePage.styles.js +1 -1
  32. package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
  33. package/components/Toast/Toast/Toast.js +1 -1
  34. package/components/Toast/Toast/Toast.js.map +1 -1
  35. package/components/Toast/Toast.d.ts +1 -1
  36. package/internal/InputLikeText/InputLikeText/InputLikeText.js +10 -21
  37. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  38. package/internal/InputLikeText/InputLikeText.d.ts +0 -2
  39. package/lib/__stories__/Blink.creevey.mts +90 -0
  40. package/lib/blink/blink.js +63 -0
  41. package/lib/blink/blink.js.map +1 -0
  42. package/lib/blink/package.json +6 -0
  43. package/lib/blink.d.ts +15 -0
  44. 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
  * Функция срабатывает с аргументом инпута строки.
@@ -192,6 +192,9 @@ var _createPropsGetter = require("../../lib/createPropsGetter");var _class, _Com
192
192
 
193
193
 
194
194
 
195
+
196
+
197
+
195
198
 
196
199
 
197
200
 
@@ -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":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;AAEA,IAAAC,eAAA,GAAAD,OAAA;;;;;;AAMA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA,gCAAgE,IAAAI,MAAA,EAAAC,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+LhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GATA;;AAWaC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,OADpBE,kBAAQ,EAAAJ,MAAA,IAAAC,SAAA,0BAAAI,gBAAA,YAAAH,SAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;;;IAgBCU,QAAQ,GAAG,IAAAC,oCAAiB,EAACf,QAAQ,CAACgB,YAAY,CAAC,CAAAZ,KAAA;;IAEnDa,eAAe,GAAgC,IAAI,CAAAb,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsFnDc,iBAAiB,GAAG,UAACC,OAAoC,EAAK;MACpEf,KAAA,CAAKgB,WAAW,CAACD,OAAO,CAAC;MACzBf,KAAA,CAAKa,eAAe,GAAGE,OAAO;IAChC,CAAC,QAAAf,KAAA,MAAAiB,eAAA,CAAAC,OAAA,EAAAtB,QAAA,EAAAG,gBAAA,MAAAoB,MAAA,GAAAvB,QAAA,CAAAwB,SAAA,EArFD;AACF;AACA,KAFED,MAAA,CAGOE,KAAK,GAAZ,SAAAA,MAAaC,IAAwC,EAAE,CACrD,IAAI,IAAI,CAACT,eAAe,EAAE,CACxB,IAAI,CAACA,eAAe,CAACQ,KAAK,CAACC,IAAI,CAAC,CAClC,CACF,CAAC,CAED;AACF;AACA,KAFE,CAAAH,MAAA,CAGOI,IAAI,GAAX,SAAAA,KAAA,EAAc,CACZ,IAAI,IAAI,CAACV,eAAe,EAAE,CACxB,IAAI,CAACA,eAAe,CAACU,IAAI,CAAC,CAAC,CAC7B,CACF,CAAC,CAED;AACF;AACA;AACA;AACA;AACA;AACA,KANE,CAAAJ,MAAA,CAOOK,MAAM,GAAb,SAAAA,OAAcC,KAAc,EAAE,CAC5B,IAAI,IAAI,CAACZ,eAAe,EAAE,CACxB,IAAI,CAACA,eAAe,CAACW,MAAM,CAACC,KAAK,CAAC,CACpC,CACF,CAAC,CAED;AACF;AACA,KAFE,CAAAN,MAAA,CAGOO,YAAY,GAAnB,SAAAA,aAAA,EAAsB,CACpB,IAAI,IAAI,CAACb,eAAe,EAAE,CACxB,IAAI,CAACA,eAAe,CAACa,YAAY,CAAC,CAAC,CACrC,CACF,CAAC,CAED;AACF;AACA,KAFE,CAAAP,MAAA,CAGOQ,IAAI,GAAX,SAAAA,KAAA,EAAc,CACZ,IAAI,IAAI,CAACd,eAAe,EAAE,CACxB,IAAI,CAACA,eAAe,CAACc,IAAI,CAAC,CAAC,CAC7B,CACF,CAAC,CAED;AACF;AACA,KAFE,CAAAR,MAAA,CAGOS,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAI,IAAI,CAACf,eAAe,EAAE,CACxB,IAAI,CAACA,eAAe,CAACe,KAAK,CAAC,CAAC,CAC9B,CACF,CAAC,CAED;AACF;AACA;AACA,KAHE,CAAAT,MAAA,CAIOU,eAAe,GAAtB,SAAAA,gBAAA,EAAyB,CACvB,IAAI,IAAI,CAAChB,eAAe,EAAE,CACxB,IAAI,CAACA,eAAe,CAACgB,eAAe,CAAC,CAAC,CACxC,CACF,CAAC,CAED;AACF;AACA;AACA,KAHE,CAAAV,MAAA,CAIOW,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAI,IAAI,CAACjB,eAAe,EAAE,CACxB,IAAI,CAACA,eAAe,CAACiB,KAAK,CAAC,CAAC,CAC9B,CACF,CAAC,CAAAX,MAAA,CAEMY,MAAM,GAAb,SAAAA,OAAA,EAAgB,CACd,oBAAO3C,MAAA,CAAA8B,OAAA,CAAAc,aAAA,CAACzC,eAAA,CAAA0C,cAAc,MAAAC,SAAA,CAAAhB,OAAA,MAAK,IAAI,CAACR,QAAQ,CAAC,CAAC,IAAEyB,IAAI,EAAE,IAAI,CAACC,KAAK,CAACD,IAAK,EAACE,GAAG,EAAE,IAAI,CAACvB,iBAAkB,GAAE,CAAC,CACpG,CAAC,QAAAlB,QAAA,GArG6C0C,cAAK,CAACC,SAAS,GAAA5C,SAAA,CAC/C6C,mBAAmB,GAAG,UAAU,EAAA7C,SAAA,CAChC8C,WAAW,GAAG,UAAU,EAAA9C,SAAA,CAExBiB,YAAY,GAAsB,EAC9C8B,WAAW,EAAE,SAAAA,YAACC,IAAkB,UAAKA,IAAI,CAACC,KAAK,IAC/CC,aAAa,EAAE,SAAAA,cAACF,IAAkB,UAAKA,IAAI,CAACG,KAAK,IACjDC,WAAW,EAAE,SAAAA,YAACJ,IAAkB,UAAKA,IAAI,CAACG,KAAK,IAC/CE,UAAU,EAAE,SAAAA,WAACL,IAAkB,UAAKA,IAAI,CAACG,KAAK,IAC9CG,SAAS,EAAE,MAAM,EACjBC,aAAa,EAAE,IAAI,EACnBC,SAAS,EAAE,IAAI,EACfC,aAAa,EAAE,OAAO,CACxB,CAAC,EAAAzD,SAAA,MAAAD,MAAA","ignoreList":[]}
@@ -81,7 +81,7 @@ export interface InputProps extends CommonProps, Pick<HTMLAttributes<unknown>, '
81
81
  selectAllOnFocus?: boolean;
82
82
  /** Задает функцию для обработки ввода.
83
83
  * При неправильном вводе инпут по-умолчанию вспыхивает акцентным цветом.
84
- * Если `onUnexpectedInput` передан - вызывается переданный обработчик b вспыхивание можно вызвать публичным методом инстанса `blink()`.
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 = _interopRequireDefault(require("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 _this$state = _this.state,blinking = _this$state.blinking,focused = _this$state.focused;
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() {if (this.blinkTimeout) {_globalObject.globalObject.clearTimeout(this.blinkTimeout);}this.cancelDelayedSelectAll();} /**
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() {var _this2 = this;if (this.blinkTimeout) {this.cancelBlink(function () {// trigger reflow to restart animation
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,_this3 = this; // https://github.com/facebook/react/issues/7769
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 _this3$input;(_this3$input = _this3.input) == null || _this3$input.setSelectionRange(start, end);}, 150);} else {var _this$input2;(_this$input2 = this.input) == null || _this$input2.setSelectionRange(start, end);}};_proto.render = function render() {var _this4 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this4.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this4.setRootNode }, _this4.getProps()), _this4.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;
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":[]}
@@ -17,7 +17,6 @@ export declare const styles: {
17
17
  error(t: Theme): string;
18
18
  errorFallback(t: Theme): string;
19
19
  disabled(t: Theme): string;
20
- blink(t: Theme): string;
21
20
  sizeSmall(t: Theme): string;
22
21
  sizeSmallFallback(t: Theme): string;
23
22
  sizeMedium(t: Theme): string;