@skbkontur/react-ui 5.4.0 → 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.
- package/CHANGELOG.md +24 -0
- package/cjs/components/Autocomplete/Autocomplete.d.ts +10 -2
- package/cjs/components/Autocomplete/Autocomplete.js +18 -2
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +23 -13
- package/cjs/components/Button/Button.js +13 -3
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +11 -22
- package/cjs/components/CurrencyInput/CurrencyInput.js +10 -17
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +23 -16
- package/cjs/components/FxInput/FxInput.js +142 -65
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +27 -37
- package/cjs/components/Input/Input.js +9 -19
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +10 -10
- package/cjs/components/Link/Link.js +1 -1
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +107 -78
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.js +5 -3
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +5 -6
- package/cjs/components/PasswordInput/PasswordInput.js +4 -5
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/__stories__/Form.js +95 -0
- package/cjs/components/__stories__/Form.js.map +1 -0
- package/cjs/internal/CommonWrapper/types.d.ts +1 -1
- package/cjs/internal/CommonWrapper/types.js.map +1 -1
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +2 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/cjs/lib/utils.d.ts +5 -1
- package/cjs/lib/utils.js +20 -4
- package/cjs/lib/utils.js.map +1 -1
- package/cjs/test-setup.d.ts +1 -0
- package/cjs/vitest.config.d.ts +2 -0
- package/components/Autocomplete/Autocomplete/Autocomplete.js +10 -2
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +10 -2
- package/components/Button/Button/Button.js +4 -2
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +23 -13
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +6 -17
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +11 -22
- package/components/FxInput/FxInput/FxInput.js +122 -71
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +23 -16
- package/components/Input/Input/Input.js +8 -16
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +27 -37
- package/components/Link/Link/Link.js +1 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +10 -10
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +81 -66
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
- package/components/MaskedInput/MaskedInput/MaskedInput.js +4 -2
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +4 -5
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +5 -6
- package/components/__stories__/Form/Form.js +98 -0
- package/components/__stories__/Form/Form.js.map +1 -0
- package/components/__stories__/Form/package.json +6 -0
- package/internal/CommonWrapper/types/types.js.map +1 -1
- package/internal/CommonWrapper/types.d.ts +1 -1
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +1 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/lib/utils/utils.js +18 -2
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +5 -1
- package/package.json +8 -14
- package/test-setup.d.ts +1 -0
- package/vitest.config.d.ts +2 -0
|
@@ -8,22 +8,25 @@ import type { DefaultizedProps } from '../../lib/createPropsGetter';
|
|
|
8
8
|
import type { Override } from '../../typings/utility-types';
|
|
9
9
|
import type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';
|
|
10
10
|
import type { TGetRootNode } from '../../lib/rootNode';
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
import type { MaskedInputProps } from '../MaskedInput';
|
|
12
|
+
export interface FxInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Pick<Partial<MaskedInputProps>, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>, Override<Omit<CurrencyInputProps, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>, {
|
|
13
|
+
/** Управляет видимостью кнопки Restore:
|
|
14
|
+
* - true — кнопка Restore не отображается. Значение в поле является автоматически рассчитанным.
|
|
15
|
+
* - false — кнопка Restore отображается в поле. Значение в поле считается отредактированным. */
|
|
13
16
|
auto?: boolean;
|
|
14
|
-
/**
|
|
17
|
+
/** Задаёт тип поля. */
|
|
15
18
|
type?: 'currency' | InputProps['type'];
|
|
16
|
-
/**
|
|
19
|
+
/** Задаёт функцию, которая вызывается при нажатии на кнопку Restore. */
|
|
17
20
|
onRestore?: () => void;
|
|
18
|
-
/**
|
|
21
|
+
/** Задаёт функцию, вызывающуюся при изменении value. */
|
|
19
22
|
onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];
|
|
20
|
-
/**
|
|
23
|
+
/** Задаёт значение поля. */
|
|
21
24
|
value?: string | number;
|
|
22
|
-
/**
|
|
25
|
+
/** Задаёт ref поля. */
|
|
23
26
|
refInput?: (element: CurrencyInput | Input | null) => void;
|
|
24
27
|
/** Убирает лишние нули после запятой. */
|
|
25
28
|
hideTrailingZeros?: boolean;
|
|
26
|
-
/**
|
|
29
|
+
/** Задаёт атрибут aria-label кнопке Restore. */
|
|
27
30
|
buttonAriaLabel?: AriaAttributes['aria-label'];
|
|
28
31
|
/** @ignore */
|
|
29
32
|
corners?: React.CSSProperties;
|
|
@@ -32,14 +35,11 @@ export interface FxInputProps extends Pick<AriaAttributes, 'aria-label'>, Common
|
|
|
32
35
|
export declare const FxInputDataTids: {
|
|
33
36
|
readonly root: "FxInput__root";
|
|
34
37
|
};
|
|
35
|
-
type DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value'>>;
|
|
38
|
+
type DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value' | 'auto'>>;
|
|
36
39
|
type DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;
|
|
37
|
-
/**
|
|
38
|
-
* Автополе `FxInput`.
|
|
40
|
+
/** В автополе можно вывести автоматически рассчитанное цифровое значение. В него можно передавать итог любого вычисления, например, сумму других полей, процент или более сложную функцию.
|
|
39
41
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* Принимает все свойства `Input`'a.
|
|
42
|
+
* У поля есть иконка математической формулы и кнопка Restore — с её помощью пользователь может вернуть исходное значение, если редактировал поле. Видимость кнопки и поведение при нажатии нужно прописывать в компоненте самостоятельно.
|
|
43
43
|
*/
|
|
44
44
|
export declare class FxInput extends React.Component<FxInputProps> {
|
|
45
45
|
static __KONTUR_REACT_UI__: string;
|
|
@@ -51,16 +51,23 @@ export declare class FxInput extends React.Component<FxInputProps> {
|
|
|
51
51
|
private getProps;
|
|
52
52
|
getRootNode: TGetRootNode;
|
|
53
53
|
private setRootNode;
|
|
54
|
+
private featureFlags;
|
|
55
|
+
private validateProps;
|
|
56
|
+
componentDidMount(): void;
|
|
57
|
+
componentDidUpdate(): void;
|
|
54
58
|
render(): React.JSX.Element;
|
|
55
59
|
renderMain: (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => React.JSX.Element;
|
|
56
|
-
/**
|
|
60
|
+
/** Программно устанавливает фокус на поле.
|
|
61
|
+
* Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
|
|
57
62
|
* @public
|
|
58
63
|
*/
|
|
59
64
|
focus: () => void;
|
|
60
|
-
/**
|
|
65
|
+
/** Программно снимает фокус с кнопки.
|
|
61
66
|
* @public
|
|
62
67
|
*/
|
|
63
68
|
blur: () => void;
|
|
64
69
|
private refInput;
|
|
70
|
+
private getLeftIcon;
|
|
71
|
+
private getInput;
|
|
65
72
|
}
|
|
66
73
|
export {};
|
|
@@ -69,17 +69,7 @@ export var InputDataTids = {
|
|
|
69
69
|
};
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
|
-
* Поле ввода
|
|
73
|
-
*
|
|
74
|
-
* Используйте поле ввода для коротких текстовых или цифровых значений без предсказуемого формата.
|
|
75
|
-
*
|
|
76
|
-
* Если вводимое значение имеет определенный формат, используйте специальную версию поля:
|
|
77
|
-
* * Поле с паролем PasswordInput.
|
|
78
|
-
* * Поле с валютой CurrencyInput.
|
|
79
|
-
* * Поле с маской MaskedInput.
|
|
80
|
-
* * Автополе FxInput.
|
|
81
|
-
*
|
|
82
|
-
* Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.
|
|
72
|
+
* Поле ввода позволяет ввести или отредактировать значение.
|
|
83
73
|
*/
|
|
84
74
|
export var Input = rootNode(_class = withSize(_class = (_Input = /*#__PURE__*/function (_React$Component) {
|
|
85
75
|
function Input() {
|
|
@@ -118,6 +108,7 @@ export var Input = rootNode(_class = withSize(_class = (_Input = /*#__PURE__*/fu
|
|
|
118
108
|
};
|
|
119
109
|
|
|
120
110
|
/**
|
|
111
|
+
* Переводит фокус в поле (если ещё не в фокусе) и выделяет весь текст.
|
|
121
112
|
* Работает с типами `text`, `password`, `tel`, `search`, `url`
|
|
122
113
|
* [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)
|
|
123
114
|
* @public
|
|
@@ -399,24 +390,25 @@ export var Input = rootNode(_class = withSize(_class = (_Input = /*#__PURE__*/fu
|
|
|
399
390
|
};
|
|
400
391
|
_proto.componentWillUnmount = function componentWillUnmount() {
|
|
401
392
|
this.cancelDelayedSelectAll();
|
|
402
|
-
} /**
|
|
393
|
+
} /** Программно устанавливает фокус на поле.
|
|
394
|
+
* Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
|
|
403
395
|
* @public
|
|
404
396
|
*/;
|
|
405
397
|
_proto.focus = function focus() {
|
|
406
398
|
invariant(this.input, 'Cannot call "focus" because Input is not mounted');
|
|
407
399
|
this.input.focus();
|
|
408
|
-
} /**
|
|
400
|
+
} /** Программно снимает фокус с кнопки.
|
|
409
401
|
* @public
|
|
410
402
|
*/;
|
|
411
403
|
_proto.blur = function blur() {
|
|
412
404
|
invariant(this.input, 'Cannot call "blur" because Input is not mounted');
|
|
413
405
|
this.input.blur();
|
|
414
|
-
} /**
|
|
406
|
+
} /** Возвращает DOM-узел поля ввода.
|
|
415
407
|
* @public
|
|
416
408
|
*/;
|
|
417
409
|
_proto.getNode = function getNode() {
|
|
418
410
|
return this.input;
|
|
419
|
-
} /**
|
|
411
|
+
} /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.
|
|
420
412
|
* @public
|
|
421
413
|
*/;
|
|
422
414
|
_proto.blink = function blink() {
|
|
@@ -424,7 +416,7 @@ export var Input = rootNode(_class = withSize(_class = (_Input = /*#__PURE__*/fu
|
|
|
424
416
|
el: this.labelRef.current,
|
|
425
417
|
blinkColor: this.theme.inputBlinkColor
|
|
426
418
|
});
|
|
427
|
-
} /**
|
|
419
|
+
} /** start - инициирует последовательное изменение числового значения: начинает повторяющееся увеличение/уменьшение, обычно используется при удерживании кнопки «+» или «−» для числового Input. end - останавливает ранее запущенное числоизменение, инициируемое numberStart.
|
|
428
420
|
* @public
|
|
429
421
|
* @param {number} start
|
|
430
422
|
* @param {number} end
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["invariant","React","createRef","warning","globalObject","isEdge","isIE11","isKeyBackspace","isKeyDelete","someKeys","needsPolyfillPlaceholder","InternalMaskedInput","ThemeContext","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","FocusControlWrapper","ClearCrossIcon","catchUnreachableWarning","blink","withSize","styles","InputLayout","PolyfillPlaceholder","inputTypes","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","maskForbiddenTypes","maskAllowedTypes","filter","includes","maskErrorMessage","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","InputDataTids","root","clearCross","Input","_class","_Input","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","selectAllId","input","labelRef","getClearCrossShowed","_ref2","_this$input","hasInitialValue","props","disabled","value","state","clearCrossShowed","defaultValue","selectAll","_selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","setSelectionRange","cancelDelayedSelectAll","cancelAnimationFrame","getInput","inputProps","element","cloneElement","mask","canBeUsedWithMask","renderMaskedInput","createElement","renderMain","_cx","_cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","leftIcon","rightIcon","borderless","align","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","formatChars","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose","_excluded","labelProps","className","theme","getSizeClassName","focus","hovering","focusFallback","warningFallback","errorFallback","style","_extends","handleMouseEnter","handleMouseLeave","ref","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","refInput","isMaskVisible","undefined","onBlurWhenDisabled","resetFocus","getRightIcon","onClick","handleClearInput","context","setState","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","_getRootNode","contains","relatedTarget","_inheritsLoose","_proto","prototype","outputMaskError","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","blur","getNode","el","current","blinkColor","inputBlinkColor","start","end","_globalObject$documen","_this$props$value","_this2","Error","document","activeElement","setTimeout","_this2$input","_this$input2","render","_this3","Consumer","rootNodeRef","setRootNode","_cx3","_cx4","_cx5","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","_createClass","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","React","createRef","warning","globalObject","isEdge","isIE11","isKeyBackspace","isKeyDelete","someKeys","needsPolyfillPlaceholder","InternalMaskedInput","ThemeContext","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","FocusControlWrapper","ClearCrossIcon","catchUnreachableWarning","blink","withSize","styles","InputLayout","PolyfillPlaceholder","inputTypes","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","maskForbiddenTypes","maskAllowedTypes","filter","includes","maskErrorMessage","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","InputDataTids","root","clearCross","Input","_class","_Input","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","selectAllId","input","labelRef","getClearCrossShowed","_ref2","_this$input","hasInitialValue","props","disabled","value","state","clearCrossShowed","defaultValue","selectAll","_selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","setSelectionRange","cancelDelayedSelectAll","cancelAnimationFrame","getInput","inputProps","element","cloneElement","mask","canBeUsedWithMask","renderMaskedInput","createElement","renderMain","_cx","_cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","leftIcon","rightIcon","borderless","align","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","formatChars","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose","_excluded","labelProps","className","theme","getSizeClassName","focus","hovering","focusFallback","warningFallback","errorFallback","style","_extends","handleMouseEnter","handleMouseLeave","ref","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","refInput","isMaskVisible","undefined","onBlurWhenDisabled","resetFocus","getRightIcon","onClick","handleClearInput","context","setState","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","_getRootNode","contains","relatedTarget","_inheritsLoose","_proto","prototype","outputMaskError","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","blur","getNode","el","current","blinkColor","inputBlinkColor","start","end","_globalObject$documen","_this$props$value","_this2","Error","document","activeElement","setTimeout","_this2$input","_this$input2","render","_this3","Consumer","rootNodeRef","setRootNode","_cx3","_cx4","_cx5","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","_createClass","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":[]}
|
|
@@ -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
|
-
/**
|
|
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
|
-
/**
|
|
79
|
+
/** Выделяет введенное значение при фокусе в поле. Работает с типами `text`, `password`, `tel`, `search`, `url`. */
|
|
81
80
|
selectAllOnFocus?: boolean;
|
|
82
|
-
/**
|
|
83
|
-
*
|
|
84
|
-
*
|
|
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
|
-
* Поле ввода
|
|
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
|
|
@@ -23,7 +23,7 @@ export var LinkDataTids = {
|
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* С помощью ссылки пользователь может перейти на другую страницу, раздел приложения или внешний URL.
|
|
27
27
|
*/
|
|
28
28
|
export var Link = rootNode(_class = (_Link = /*#__PURE__*/function (_React$Component) {
|
|
29
29
|
function Link() {
|