@skbkontur/react-ui 5.4.1 → 5.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +10 -2
  3. package/cjs/components/Autocomplete/Autocomplete.js +18 -2
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +23 -13
  6. package/cjs/components/Button/Button.js +13 -3
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +11 -22
  9. package/cjs/components/CurrencyInput/CurrencyInput.js +5 -16
  10. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  11. package/cjs/components/FxInput/FxInput.d.ts +14 -14
  12. package/cjs/components/FxInput/FxInput.js +7 -8
  13. package/cjs/components/FxInput/FxInput.js.map +1 -1
  14. package/cjs/components/Input/Input.d.ts +27 -37
  15. package/cjs/components/Input/Input.js +9 -19
  16. package/cjs/components/Input/Input.js.map +1 -1
  17. package/cjs/components/Link/Link.d.ts +10 -10
  18. package/cjs/components/Link/Link.js +1 -1
  19. package/cjs/components/Link/Link.js.map +1 -1
  20. package/cjs/components/PasswordInput/PasswordInput.d.ts +5 -6
  21. package/cjs/components/PasswordInput/PasswordInput.js +4 -5
  22. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  23. package/cjs/components/__stories__/Form.js +95 -0
  24. package/cjs/components/__stories__/Form.js.map +1 -0
  25. package/cjs/internal/CommonWrapper/types.d.ts +1 -1
  26. package/cjs/internal/CommonWrapper/types.js.map +1 -1
  27. package/cjs/lib/utils.d.ts +1 -1
  28. package/cjs/lib/utils.js +2 -3
  29. package/cjs/lib/utils.js.map +1 -1
  30. package/cjs/test-setup.d.ts +1 -0
  31. package/cjs/vitest.config.d.ts +2 -0
  32. package/components/Autocomplete/Autocomplete/Autocomplete.js +10 -2
  33. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  34. package/components/Autocomplete/Autocomplete.d.ts +10 -2
  35. package/components/Button/Button/Button.js +4 -2
  36. package/components/Button/Button/Button.js.map +1 -1
  37. package/components/Button/Button.d.ts +23 -13
  38. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +4 -16
  39. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  40. package/components/CurrencyInput/CurrencyInput.d.ts +11 -22
  41. package/components/FxInput/FxInput/FxInput.js +5 -8
  42. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  43. package/components/FxInput/FxInput.d.ts +14 -14
  44. package/components/Input/Input/Input.js +8 -16
  45. package/components/Input/Input/Input.js.map +1 -1
  46. package/components/Input/Input.d.ts +27 -37
  47. package/components/Link/Link/Link.js +1 -1
  48. package/components/Link/Link/Link.js.map +1 -1
  49. package/components/Link/Link.d.ts +10 -10
  50. package/components/PasswordInput/PasswordInput/PasswordInput.js +4 -5
  51. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  52. package/components/PasswordInput/PasswordInput.d.ts +5 -6
  53. package/components/__stories__/Form/Form.js +98 -0
  54. package/components/__stories__/Form/Form.js.map +1 -0
  55. package/components/__stories__/Form/package.json +6 -0
  56. package/internal/CommonWrapper/types/types.js.map +1 -1
  57. package/internal/CommonWrapper/types.d.ts +1 -1
  58. package/lib/utils/utils.js +5 -2
  59. package/lib/utils/utils.js.map +1 -1
  60. package/lib/utils.d.ts +1 -1
  61. package/package.json +8 -14
  62. package/test-setup.d.ts +1 -0
  63. package/vitest.config.d.ts +2 -0
@@ -22,14 +22,10 @@ export declare const calculateClearCrossShowedState: ({ showClearIcon, notEmptyV
22
22
  hovered?: boolean | undefined;
23
23
  }) => boolean;
24
24
  export interface InputProps extends CommonProps, Pick<HTMLAttributes<unknown>, 'role'>, Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>, Override<React.InputHTMLAttributes<HTMLInputElement>, {
25
- /** Показывать иконку очистки значения в непустом поле:
26
- * - `always` — всегда показывать иконку
27
- * - `auto` — показывать иконку при hover/focus
28
- * - `never` — не показывать иконку
29
- * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.
25
+ /** Показывает иконку очистки значения в заполненном поле.
30
26
  * @default never */
31
27
  showClearIcon?: ShowClearIcon;
32
- /** Задает иконку слева.
28
+ /** Добавляет иконку слева.
33
29
  * При использовании `ReactNode` применяются дефолтные стили для иконки.
34
30
  * При использовании `() => ReactNode` применяются только стили для позиционирования. */
35
31
  leftIcon?: InputIconType;
@@ -37,30 +33,32 @@ export interface InputProps extends CommonProps, Pick<HTMLAttributes<unknown>, '
37
33
  * При использовании `ReactNode` применяются дефолтные стили для иконки.
38
34
  * При использовании `() => ReactNode` применяются только стили для позиционирования. */
39
35
  rightIcon?: InputIconType;
40
- /** Переводит контрол в состояние валидации "ошибка". */
36
+ /** Меняет визуальное отображение поля на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */
41
37
  error?: boolean;
42
- /** Переводит контрол в состояние валидации "предупреждение". */
38
+ /** Меняет визуальное отображение поля на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */
43
39
  warning?: boolean;
44
- /** Убирает обводку. */
40
+ /** Убирает обводку поля. */
45
41
  borderless?: boolean;
46
- /** Задает выравнивание контента. */
42
+ /** Выравнивает контент внутри поля. */
47
43
  align?: InputAlign;
48
- /** Задает паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url`
44
+ /** Задаёт паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url`
49
45
  * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */
50
46
  mask?: Nullable<string>;
51
47
  /** Устанавливает символ маски.
52
48
  * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */
53
49
  maskChar?: Nullable<string>;
54
- /** Задает словарь символов-регулярок для задания маски
50
+ /** Задаёт словарь символов-регулярок для задания маски
55
51
  * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput.
56
52
  * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }. */
57
53
  formatChars?: Record<string, string>;
58
54
  /** Включает показ символов маски.
59
55
  * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */
60
56
  alwaysShowMask?: boolean;
61
- /** Задает размер. */
57
+ /** Задаёт размер.
58
+ * @default small
59
+ */
62
60
  size?: SizeProp;
63
- /** Задает функцию, которая вызывается при изменении значения в инпуте. */
61
+ /** Задаёт функцию, которая вызывается при изменении значения в поле ввода. */
64
62
  onValueChange?: (value: string) => void;
65
63
  /** @ignore */
66
64
  onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;
@@ -68,21 +66,21 @@ export interface InputProps extends CommonProps, Pick<HTMLAttributes<unknown>, '
68
66
  onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;
69
67
  /** @ignore */
70
68
  onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;
71
- /** Задает тип инпута. */
69
+ /** Задаёт тип поля ввода. */
72
70
  type?: InputType;
73
- /** Задает значение. */
71
+ /** Задаёт значение внутри поля. */
74
72
  value?: string;
73
+ /** @deprecated Со следующей мажорной версии Input перестанет поддерживать проп `capture`. */
75
74
  capture?: boolean;
76
75
  /** Устанавливает префикс `ReactNode` перед значением, но после иконки. */
77
76
  prefix?: React.ReactNode;
78
77
  /** Устанавливает суффикс `ReactNode` после значения, но перед правой иконкой. */
79
78
  suffix?: React.ReactNode;
80
- /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами `text`, `password`, `tel`, `search`, `url`. [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange) */
79
+ /** Выделяет введенное значение при фокусе в поле. Работает с типами `text`, `password`, `tel`, `search`, `url`. */
81
80
  selectAllOnFocus?: boolean;
82
- /** Задает функцию для обработки ввода.
83
- * При неправильном вводе инпут по-умолчанию вспыхивает акцентным цветом.
84
- * Если `onUnexpectedInput` передан - вызывается переданный обработчик и вспыхивание можно вызвать публичным методом инстанса `blink()`.
85
- * @param {string} value - значение инпута. */
81
+ /** Устанавливает обработчик на случай некорректного ввода.
82
+ * Если передан onUnexpectedInput, он будет вызван при ошибке, а эффект мигания можно запустить вручную через публичный метод blink.
83
+ * @param {string} value - значение поля. */
86
84
  onUnexpectedInput?: (value: string) => void;
87
85
  /** Устанавливает радиус скруглений углов.
88
86
  * @ignore */
@@ -103,17 +101,7 @@ export declare const InputDataTids: {
103
101
  };
104
102
  type DefaultProps = Required<Pick<InputProps, 'type' | 'showClearIcon'>>;
105
103
  /**
106
- * Поле ввода `Input` дает возможность указать значение с помощью клавиатуры.
107
- *
108
- * Используйте поле ввода для коротких текстовых или цифровых значений без предсказуемого формата.
109
- *
110
- * Если вводимое значение имеет определенный формат, используйте специальную версию поля:
111
- * * Поле с паролем PasswordInput.
112
- * * Поле с валютой CurrencyInput.
113
- * * Поле с маской MaskedInput.
114
- * * Автополе FxInput.
115
- *
116
- * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.
104
+ * Поле ввода позволяет ввести или отредактировать значение.
117
105
  */
118
106
  export declare class Input extends React.Component<InputProps, InputState> {
119
107
  static __KONTUR_REACT_UI__: string;
@@ -133,23 +121,24 @@ export declare class Input extends React.Component<InputProps, InputState> {
133
121
  componentDidMount(): void;
134
122
  componentDidUpdate(prevProps: Readonly<InputProps>): void;
135
123
  componentWillUnmount(): void;
136
- /**
124
+ /** Программно устанавливает фокус на поле.
125
+ * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
137
126
  * @public
138
127
  */
139
128
  focus(): void;
140
- /**
129
+ /** Программно снимает фокус с кнопки.
141
130
  * @public
142
131
  */
143
132
  blur(): void;
144
- /**
133
+ /** Возвращает DOM-узел поля ввода.
145
134
  * @public
146
135
  */
147
136
  getNode(): HTMLInputElement | null;
148
- /**
137
+ /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.
149
138
  * @public
150
139
  */
151
140
  blink(): void;
152
- /**
141
+ /** start - инициирует последовательное изменение числового значения: начинает повторяющееся увеличение/уменьшение, обычно используется при удерживании кнопки «+» или «−» для числового Input. end - останавливает ранее запущенное числоизменение, инициируемое numberStart.
153
142
  * @public
154
143
  * @param {number} start
155
144
  * @param {number} end
@@ -159,6 +148,7 @@ export declare class Input extends React.Component<InputProps, InputState> {
159
148
  render(): JSX.Element;
160
149
  private get canBeUsedWithMask();
161
150
  /**
151
+ * Переводит фокус в поле (если ещё не в фокусе) и выделяет весь текст.
162
152
  * Работает с типами `text`, `password`, `tel`, `search`, `url`
163
153
  * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)
164
154
  * @public
@@ -183,9 +183,6 @@ var calculateClearCrossShowedState = exports.calculateClearCrossShowedState = fu
183
183
 
184
184
 
185
185
 
186
-
187
-
188
-
189
186
 
190
187
 
191
188
 
@@ -198,17 +195,7 @@ var InputDataTids = exports.InputDataTids = {
198
195
 
199
196
 
200
197
  /**
201
- * Поле ввода `Input` дает возможность указать значение с помощью клавиатуры.
202
- *
203
- * Используйте поле ввода для коротких текстовых или цифровых значений без предсказуемого формата.
204
- *
205
- * Если вводимое значение имеет определенный формат, используйте специальную версию поля:
206
- * * Поле с паролем PasswordInput.
207
- * * Поле с валютой CurrencyInput.
208
- * * Поле с маской MaskedInput.
209
- * * Автополе FxInput.
210
- *
211
- * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.
198
+ * Поле ввода позволяет ввести или отредактировать значение.
212
199
  */var
213
200
 
214
201
 
@@ -362,9 +349,11 @@ Input = exports.Input = (0, _rootNode.rootNode)(_class = (0, _SizeDecorator.with
362
349
 
363
350
 
364
351
 
352
+
365
353
 
366
354
 
367
355
  /**
356
+ * Переводит фокус в поле (если ещё не в фокусе) и выделяет весь текст.
368
357
  * Работает с типами `text`, `password`, `tel`, `search`, `url`
369
358
  * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)
370
359
  * @public
@@ -676,15 +665,16 @@ Input = exports.Input = (0, _rootNode.rootNode)(_class = (0, _SizeDecorator.with
676
665
  });
677
666
  _this.props.onBlur == null || _this.props.onBlur(event);
678
667
  }
679
- };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();} /**
668
+ };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();} /** Программно устанавливает фокус на поле.
669
+ * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
680
670
  * @public
681
- */;_proto.focus = function focus() {(0, _invariant.default)(this.input, 'Cannot call "focus" because Input is not mounted');this.input.focus();} /**
671
+ */;_proto.focus = function focus() {(0, _invariant.default)(this.input, 'Cannot call "focus" because Input is not mounted');this.input.focus();} /** Программно снимает фокус с кнопки.
682
672
  * @public
683
- */;_proto.blur = function blur() {(0, _invariant.default)(this.input, 'Cannot call "blur" because Input is not mounted');this.input.blur();} /**
673
+ */;_proto.blur = function blur() {(0, _invariant.default)(this.input, 'Cannot call "blur" because Input is not mounted');this.input.blur();} /** Возвращает DOM-узел поля ввода.
684
674
  * @public
685
- */;_proto.getNode = function getNode() {return this.input;} /**
675
+ */;_proto.getNode = function getNode() {return this.input;} /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.
686
676
  * @public
687
- */;_proto.blink = function blink() {(0, _blink2.blink)({ el: this.labelRef.current, blinkColor: this.theme.inputBlinkColor });} /**
677
+ */;_proto.blink = function blink() {(0, _blink2.blink)({ el: this.labelRef.current, blinkColor: this.theme.inputBlinkColor });} /** start - инициирует последовательное изменение числового значения: начинает повторяющееся увеличение/уменьшение, обычно используется при удерживании кнопки «+» или «−» для числового Input. end - останавливает ранее запущенное числоизменение, инициируемое numberStart.
688
678
  * @public
689
679
  * @param {number} start
690
680
  * @param {number} end
@@ -1 +1 @@
1
- {"version":3,"names":["_invariant","_interopRequireDefault","require","_react","_interopRequireWildcard","_warning","_globalObject","_client","_identifiers","_needsPolyfillPlaceholder","_InternalMaskedInput","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_FocusControlWrapper","_ClearCrossIcon","_typeGuards","_blink2","_SizeDecorator","_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","withSize","_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';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport type { InputElement, InputElementProps } from './Input.typings';\nimport { styles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\nimport { PolyfillPlaceholder } from './InputLayout/PolyfillPlaceholder';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type ShowClearIcon = 'auto' | 'always' | 'never';\nexport type InputType = (typeof inputTypes)[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const maskForbiddenTypes: InputType[] = ['number', 'date', 'time'];\nexport const maskAllowedTypes: InputType[] = inputTypes.filter((type) => {\n return !maskForbiddenTypes.includes(type);\n});\nexport const maskErrorMessage = (type: InputType, allowedTypes: InputType[] = maskAllowedTypes) => {\n return `<Input />. Prop \"mask\" does not support type \"${type}\". Supported types: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}.`;\n};\nexport const calculateClearCrossShowedState = ({\n showClearIcon,\n notEmptyValue,\n focused,\n hovered,\n}: {\n showClearIcon: ShowClearIcon;\n notEmptyValue: boolean;\n focused?: boolean;\n hovered?: boolean;\n}): boolean => {\n switch (showClearIcon) {\n case 'always':\n return notEmptyValue;\n case 'auto':\n return Boolean((focused || hovered) && notEmptyValue);\n case 'never':\n return false;\n default:\n return catchUnreachableWarning(showClearIcon, false);\n }\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Показывать иконку очистки значения в непустом поле:\n * - `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, '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\n@withSize\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n public static displayName = 'Input';\n\n public static defaultProps: DefaultProps = {\n type: 'text',\n showClearIcon: 'never',\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n public input: HTMLInputElement | null = null;\n public labelRef = createRef<HTMLLabelElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private getClearCrossShowed = ({\n focused,\n hovered,\n hasInitialValue,\n }: {\n focused?: boolean;\n hovered?: boolean;\n hasInitialValue?: boolean;\n }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.input?.value || hasInitialValue),\n focused,\n hovered,\n });\n };\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n hasInitialValue: Boolean(this.props.value || this.props.defaultValue),\n }),\n };\n\n private outputMaskError() {\n warning(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));\n }\n\n public componentDidMount() {\n this.outputMaskError();\n }\n\n public componentDidUpdate(prevProps: Readonly<InputProps>) {\n if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {\n this.outputMaskError();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedSelectAll();\n }\n\n /**\n * @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={this.size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={getRightIcon()}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size: this.size }}\n >\n {input}\n {this.state.needsPolyfillPlaceholder && (\n <PolyfillPlaceholder\n isMaskVisible={this.isMaskVisible}\n value={value}\n defaultValue={this.props.defaultValue}\n align={align}\n >\n {placeholder}\n </PolyfillPlaceholder>\n )}\n </InputLayout>\n );\n };\n\n private renderMaskedInput(inputProps: React.InputHTMLAttributes<HTMLInputElement>, mask: string) {\n return (\n <InternalMaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getSizeClassName() {\n switch (this.size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | InternalMaskedInput | InputElement | null) => {\n if (element instanceof InternalMaskedInput || (element && 'input' in element)) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleClearInput = () => {\n if (this.input) {\n this.input.value = '';\n }\n\n this.setState({ clearCrossShowed: false });\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n\n this.setState({\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: this.state.hovered }),\n });\n };\n\n private handleMouseEnter = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }),\n });\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n private handleMouseLeave = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }),\n });\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private resetFocus = () => this.setState({ focused: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const showClearIcon = this.props.showClearIcon;\n if (showClearIcon && getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n const clearCrossShowed = this.getClearCrossShowed({ focused: false, hovered: this.state.hovered });\n this.setState({\n focused: false,\n clearCrossShowed,\n });\n this.props.onBlur?.(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_invariant","_interopRequireDefault","require","_react","_interopRequireWildcard","_warning","_globalObject","_client","_identifiers","_needsPolyfillPlaceholder","_InternalMaskedInput","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_FocusControlWrapper","_ClearCrossIcon","_typeGuards","_blink2","_SizeDecorator","_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","withSize","_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';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport type { InputElement, InputElementProps } from './Input.typings';\nimport { styles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\nimport { PolyfillPlaceholder } from './InputLayout/PolyfillPlaceholder';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type ShowClearIcon = 'auto' | 'always' | 'never';\nexport type InputType = (typeof inputTypes)[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const maskForbiddenTypes: InputType[] = ['number', 'date', 'time'];\nexport const maskAllowedTypes: InputType[] = inputTypes.filter((type) => {\n return !maskForbiddenTypes.includes(type);\n});\nexport const maskErrorMessage = (type: InputType, allowedTypes: InputType[] = maskAllowedTypes) => {\n return `<Input />. Prop \"mask\" does not support type \"${type}\". Supported types: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}.`;\n};\nexport const calculateClearCrossShowedState = ({\n showClearIcon,\n notEmptyValue,\n focused,\n hovered,\n}: {\n showClearIcon: ShowClearIcon;\n notEmptyValue: boolean;\n focused?: boolean;\n hovered?: boolean;\n}): boolean => {\n switch (showClearIcon) {\n case 'always':\n return notEmptyValue;\n case 'auto':\n return Boolean((focused || hovered) && notEmptyValue);\n case 'never':\n return false;\n default:\n return catchUnreachableWarning(showClearIcon, false);\n }\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Показывает иконку очистки значения в заполненном поле.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Добавляет иконку слева.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Меняет визуальное отображение поля на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n error?: boolean;\n\n /** Меняет визуальное отображение поля на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n warning?: boolean;\n\n /** Убирает обводку поля. */\n borderless?: boolean;\n\n /** Выравнивает контент внутри поля. */\n align?: InputAlign;\n\n /** Задаёт паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url`\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n mask?: Nullable<string>;\n\n /** Устанавливает символ маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n maskChar?: Nullable<string>;\n\n /** Задаёт словарь символов-регулярок для задания маски\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }. */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n alwaysShowMask?: boolean;\n\n /** Задаёт размер.\n * @default small\n */\n size?: SizeProp;\n\n /** Задаёт функцию, которая вызывается при изменении значения в поле ввода. */\n onValueChange?: (value: string) => void;\n\n /** @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задаёт тип поля ввода. */\n type?: InputType;\n\n /** Задаёт значение внутри поля. */\n value?: string;\n\n /** @deprecated Со следующей мажорной версии Input перестанет поддерживать проп `capture`. */\n capture?: boolean;\n\n /** Устанавливает префикс `ReactNode` перед значением, но после иконки. */\n prefix?: React.ReactNode;\n\n /** Устанавливает суффикс `ReactNode` после значения, но перед правой иконкой. */\n suffix?: React.ReactNode;\n\n /** Выделяет введенное значение при фокусе в поле. Работает с типами `text`, `password`, `tel`, `search`, `url`. */\n selectAllOnFocus?: boolean;\n\n /** Устанавливает обработчик на случай некорректного ввода.\n * Если передан onUnexpectedInput, он будет вызван при ошибке, а эффект мигания можно запустить вручную через публичный метод blink.\n * @param {string} value - значение поля. */\n onUnexpectedInput?: (value: string) => void;\n\n /** Устанавливает радиус скруглений углов.\n * @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n\n /** Устанавливает элемент, заменяющий нативный input. Должен иметь пропы `InputElementProps` и тип `InputElement`. */\n element?: ReactElement<InputElementProps>;\n }\n > {}\n\nexport interface InputState {\n focused: boolean;\n hovered: boolean;\n needsPolyfillPlaceholder: boolean;\n clearCrossShowed: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n clearCross: 'Input__clearCross',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'type' | 'showClearIcon'>>;\n\n/**\n * Поле ввода позволяет ввести или отредактировать значение.\n */\n@rootNode\n@withSize\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n public static displayName = 'Input';\n\n public static defaultProps: DefaultProps = {\n type: 'text',\n showClearIcon: 'never',\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n public input: HTMLInputElement | null = null;\n public labelRef = createRef<HTMLLabelElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private getClearCrossShowed = ({\n focused,\n hovered,\n hasInitialValue,\n }: {\n focused?: boolean;\n hovered?: boolean;\n hasInitialValue?: boolean;\n }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.input?.value || hasInitialValue),\n focused,\n hovered,\n });\n };\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n hasInitialValue: Boolean(this.props.value || this.props.defaultValue),\n }),\n };\n\n private outputMaskError() {\n warning(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));\n }\n\n public componentDidMount() {\n this.outputMaskError();\n }\n\n public componentDidUpdate(prevProps: Readonly<InputProps>) {\n if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {\n this.outputMaskError();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedSelectAll();\n }\n\n /** Программно устанавливает фокус на поле.\n * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input.focus();\n }\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input.blur();\n }\n\n /** Возвращает DOM-узел поля ввода.\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink() {\n blink({ el: this.labelRef.current, blinkColor: this.theme.inputBlinkColor });\n }\n\n /** start - инициирует последовательное изменение числового значения: начинает повторяющееся увеличение/уменьшение, обычно используется при удерживании кнопки «+» или «−» для числового Input. end - останавливает ранее запущенное числоизменение, инициируемое numberStart.\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n // https://github.com/facebook/react/issues/7769\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n if (!selectionAllowedTypes.includes(this.getProps().type)) {\n warning(false, selectionErrorMessage(this.getProps().type));\n\n return;\n }\n\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.input) {\n this.focus();\n }\n if (this.props.mask && this.props.value && this.props.value?.length < this.props.mask.length) {\n globalObject.setTimeout(() => {\n this.input?.setSelectionRange(start, end);\n }, 150);\n } else {\n this.input?.setSelectionRange(start, end);\n }\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private get canBeUsedWithMask() {\n return maskForbiddenTypes.includes(this.getProps().type);\n }\n\n /**\n * Переводит фокус в поле (если ещё не в фокусе) и выделяет весь текст.\n * Работает с типами `text`, `password`, `tel`, `search`, `url`\n * [Документация](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={this.size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={getRightIcon()}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size: this.size }}\n >\n {input}\n {this.state.needsPolyfillPlaceholder && (\n <PolyfillPlaceholder\n isMaskVisible={this.isMaskVisible}\n value={value}\n defaultValue={this.props.defaultValue}\n align={align}\n >\n {placeholder}\n </PolyfillPlaceholder>\n )}\n </InputLayout>\n );\n };\n\n private renderMaskedInput(inputProps: React.InputHTMLAttributes<HTMLInputElement>, mask: string) {\n return (\n <InternalMaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getSizeClassName() {\n switch (this.size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | InternalMaskedInput | InputElement | null) => {\n if (element instanceof InternalMaskedInput || (element && 'input' in element)) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleClearInput = () => {\n if (this.input) {\n this.input.value = '';\n }\n\n this.setState({ clearCrossShowed: false });\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n\n this.setState({\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: this.state.hovered }),\n });\n };\n\n private handleMouseEnter = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }),\n });\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n private handleMouseLeave = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }),\n });\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private resetFocus = () => this.setState({ focused: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const showClearIcon = this.props.showClearIcon;\n if (showClearIcon && getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n const clearCrossShowed = this.getClearCrossShowed({ focused: false, hovered: this.state.hovered });\n this.setState({\n focused: false,\n clearCrossShowed,\n });\n this.props.onBlur?.(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,30 +5,30 @@ import type { ThemeIn } from '../../lib/theming/Theme';
5
5
  import type { CommonProps } from '../../internal/CommonWrapper';
6
6
  import type { TGetRootNode } from '../../lib/rootNode';
7
7
  export interface LinkInnerProps extends CommonProps {
8
- /** Делает компонент недоступным. */
8
+ /** Ссылка меняет цвет на серый и становится недоступна для нажатия. */
9
9
  disabled?: boolean;
10
- /** Добавляет иконку слева. */
10
+ /** Добавляет иконку слева от ссылки. */
11
11
  icon?: React.ReactElement;
12
- /** Добавляет иконку справа. */
12
+ /** Добавляет иконку справа от ссылки. */
13
13
  rightIcon?: React.ReactElement;
14
- /** Задает тему ссылки. */
14
+ /** Задаёт стиль ссылки. */
15
15
  use?: 'default' | 'success' | 'danger' | 'grayed';
16
16
  /** @ignore */
17
17
  _button?: boolean;
18
18
  /** @ignore */
19
19
  _buttonOpened?: boolean;
20
- /** Задает HTML-атрибут `tabindex`. */
20
+ /** Задаёт HTML-атрибут `tabindex`. */
21
21
  tabIndex?: number;
22
- /** Переводит кнопку в состояние загрузки. */
22
+ /** Переводит ссылку в состояние загрузки. */
23
23
  loading?: boolean;
24
- /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */
24
+ /** Задаёт объект с переменными темы. */
25
25
  theme?: ThemeIn;
26
26
  /** Задает состояние фокуса.
27
27
  * @ignore */
28
28
  focused?: boolean;
29
- /** Переводит контрол в состояние валидации "ошибка". */
29
+ /** Переводит ссылку в состояние валидации "Ошибка". */
30
30
  error?: boolean;
31
- /** Переводит контрол в состояние валидации "предупреждение". */
31
+ /** Переводит ссылку в состояние валидации "Предупреждение". */
32
32
  warning?: boolean;
33
33
  }
34
34
  declare const LINK_DEFAULT_COMPONENT = "a";
@@ -41,7 +41,7 @@ export declare const LinkDataTids: {
41
41
  };
42
42
  type DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;
43
43
  /**
44
- * Элемент ссылки из HTML.
44
+ * С помощью ссылки пользователь может перейти на другую страницу, раздел приложения или внешний URL.
45
45
  */
46
46
  export declare class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<LinkProps<C>, LinkState> {
47
47
  static __KONTUR_REACT_UI__: string;
@@ -78,7 +78,7 @@ var LinkDataTids = exports.LinkDataTids = {
78
78
 
79
79
 
80
80
  /**
81
- * Элемент ссылки из HTML.
81
+ * С помощью ссылки пользователь может перейти на другую страницу, раздел приложения или внешний URL.
82
82
  */var
83
83
 
84
84
  Link = exports.Link = (0, _rootNode.rootNode)(_class = (_Link = /*#__PURE__*/function (_React$Component) {function Link() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_Mixins","_keyListener","_ThemeContext","_utils","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_ThemeFactory","_getVisualStateDataAttributes","_Link2","_LinkIcon","_excluded","_class","_Link","LINK_DEFAULT_COMPONENT","LinkDataTids","exports","root","Link","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","isExternalLink","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose2","default","arrow","createElement","className","styles","isFocused","leftIconElement","LinkIcon","position","rightIconElement","hasBothIcons","getUseStyles","danger","success","grayed","getUseLineFocusStyles","lineFocus","lineFocusDanger","lineFocusSuccess","lineFocusGrayed","rootProps","_extends2","cx","resetButton","focus","useGrayedFocus","button","buttonOpened","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","buttonOnlyProps","getVisualStateDataAttributes","children","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","event","_this$props2","preventDefault","stopPropagation","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton } from '../../lib/styles/Mixins';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\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 { rootNode } from '../../lib/rootNode';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Добавляет иконку слева. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа. */\n rightIcon?: React.ReactElement;\n\n /** Задает тему ссылки. */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n\n /** @ignore */\n _button?: boolean;\n\n /** @ignore */\n _buttonOpened?: boolean;\n\n /** Задает HTML-атрибут `tabindex`. */\n tabIndex?: number;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n\n /** Задает состояние фокуса.\n * @ignore */\n focused?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, 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 getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n const getUseStyles = () => {\n switch (use) {\n case 'default':\n return styles.default(this.theme);\n case 'danger':\n return styles.danger(this.theme);\n case 'success':\n return styles.success(this.theme);\n case 'grayed':\n return styles.grayed(this.theme);\n }\n };\n const getUseLineFocusStyles = () => {\n switch (use) {\n case 'default':\n return styles.lineFocus(this.theme);\n case 'danger':\n return styles.lineFocusDanger(this.theme);\n case 'success':\n return styles.lineFocusSuccess(this.theme);\n case 'grayed':\n return styles.lineFocusGrayed(this.theme);\n }\n };\n\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [getUseStyles()]: true,\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [getUseLineFocusStyles()]: isFocused,\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n const buttonOnlyProps = Root === 'button' ? { disabled: nonInteractive } : {};\n\n return (\n <Root\n data-tid={LinkDataTids.root}\n {...rootProps}\n {...buttonOnlyProps}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_Mixins","_keyListener","_ThemeContext","_utils","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_ThemeFactory","_getVisualStateDataAttributes","_Link2","_LinkIcon","_excluded","_class","_Link","LINK_DEFAULT_COMPONENT","LinkDataTids","exports","root","Link","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","isExternalLink","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose2","default","arrow","createElement","className","styles","isFocused","leftIconElement","LinkIcon","position","rightIconElement","hasBothIcons","getUseStyles","danger","success","grayed","getUseLineFocusStyles","lineFocus","lineFocusDanger","lineFocusSuccess","lineFocusGrayed","rootProps","_extends2","cx","resetButton","focus","useGrayedFocus","button","buttonOpened","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","buttonOnlyProps","getVisualStateDataAttributes","children","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","event","_this$props2","preventDefault","stopPropagation","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton } from '../../lib/styles/Mixins';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\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 { rootNode } from '../../lib/rootNode';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /** Ссылка меняет цвет на серый и становится недоступна для нажатия. */\n disabled?: boolean;\n\n /** Добавляет иконку слева от ссылки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от ссылки. */\n rightIcon?: React.ReactElement;\n\n /** Задаёт стиль ссылки. */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n\n /** @ignore */\n _button?: boolean;\n\n /** @ignore */\n _buttonOpened?: boolean;\n\n /** Задаёт HTML-атрибут `tabindex`. */\n tabIndex?: number;\n\n /** Переводит ссылку в состояние загрузки. */\n loading?: boolean;\n\n /** Задаёт объект с переменными темы. */\n theme?: ThemeIn;\n\n /** Задает состояние фокуса.\n * @ignore */\n focused?: boolean;\n\n /** Переводит ссылку в состояние валидации \"Ошибка\". */\n error?: boolean;\n\n /** Переводит ссылку в состояние валидации \"Предупреждение\". */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * С помощью ссылки пользователь может перейти на другую страницу, раздел приложения или внешний URL.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, 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 getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n const getUseStyles = () => {\n switch (use) {\n case 'default':\n return styles.default(this.theme);\n case 'danger':\n return styles.danger(this.theme);\n case 'success':\n return styles.success(this.theme);\n case 'grayed':\n return styles.grayed(this.theme);\n }\n };\n const getUseLineFocusStyles = () => {\n switch (use) {\n case 'default':\n return styles.lineFocus(this.theme);\n case 'danger':\n return styles.lineFocusDanger(this.theme);\n case 'success':\n return styles.lineFocusSuccess(this.theme);\n case 'grayed':\n return styles.lineFocusGrayed(this.theme);\n }\n };\n\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [getUseStyles()]: true,\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [getUseLineFocusStyles()]: isFocused,\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n const buttonOnlyProps = Root === 'button' ? { disabled: nonInteractive } : {};\n\n return (\n <Root\n data-tid={LinkDataTids.root}\n {...rootProps}\n {...buttonOnlyProps}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"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","ignoreList":[]}