@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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.FxInputDataTids = exports.FxInput = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
2
2
|
var _react = _interopRequireDefault(require("react"));
|
|
3
|
+
var _warning = _interopRequireDefault(require("warning"));
|
|
3
4
|
|
|
4
5
|
var _Group = require("../Group");
|
|
5
6
|
|
|
@@ -16,10 +17,18 @@ var _rootNode = require("../../lib/rootNode");
|
|
|
16
17
|
var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
17
18
|
|
|
18
19
|
|
|
20
|
+
|
|
21
|
+
var _MaskedInput = require("../MaskedInput");
|
|
22
|
+
|
|
23
|
+
var _featureFlagsContext = require("../../lib/featureFlagsContext");
|
|
24
|
+
var _ReactUIFeatureFlagsContext = require("../../lib/featureFlagsContext/ReactUIFeatureFlagsContext");
|
|
19
25
|
var _SizeDecorator = require("../../lib/size/SizeDecorator");
|
|
20
26
|
|
|
21
27
|
var _MathFunctionIcon = require("./MathFunctionIcon");
|
|
22
|
-
var _FxInputRestoreBtn = require("./FxInputRestoreBtn");var _excluded = ["type", "onRestore", "auto", "refInput", "value", "width"];var _class, _FxInput;
|
|
28
|
+
var _FxInputRestoreBtn = require("./FxInputRestoreBtn");var _excluded = ["type", "onRestore", "auto", "refInput", "value", "width", "size", "mask", "maskChar", "formatChars", "alwaysShowMask", "signed", "integerDigits", "fractionDigits", "hideTrailingZeros", "buttonAriaLabel", "corners"];var _class, _FxInput;
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
23
32
|
|
|
24
33
|
|
|
25
34
|
|
|
@@ -63,16 +72,12 @@ var FxInputDataTids = exports.FxInputDataTids = {
|
|
|
63
72
|
|
|
64
73
|
|
|
65
74
|
|
|
66
|
-
/**
|
|
67
|
-
* Автополе `FxInput`.
|
|
68
|
-
*
|
|
69
|
-
* Используйте `FxInput`, если поле вычисляемое и вы рассчитали значение.
|
|
75
|
+
/** В автополе можно вывести автоматически рассчитанное цифровое значение. В него можно передавать итог любого вычисления, например, сумму других полей, процент или более сложную функцию.
|
|
70
76
|
*
|
|
71
|
-
*
|
|
77
|
+
* У поля есть иконка математической формулы и кнопка Restore — с её помощью пользователь может вернуть исходное значение, если редактировал поле. Видимость кнопки и поведение при нажатии нужно прописывать в компоненте самостоятельно.
|
|
72
78
|
*/var
|
|
73
79
|
|
|
74
80
|
|
|
75
|
-
|
|
76
81
|
FxInput = exports.FxInput = (0, _rootNode.rootNode)(_class = (0, _SizeDecorator.withSize)(_class = (_FxInput = /*#__PURE__*/function (_React$Component) {function FxInput() {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.
|
|
77
82
|
|
|
78
83
|
|
|
@@ -85,6 +90,7 @@ FxInput = exports.FxInput = (0, _rootNode.rootNode)(_class = (0, _SizeDecorator.
|
|
|
85
90
|
|
|
86
91
|
|
|
87
92
|
|
|
93
|
+
|
|
88
94
|
input = null;_this.
|
|
89
95
|
|
|
90
96
|
getProps = (0, _createPropsGetter.createPropsGetter)(FxInput.defaultProps);_this.
|
|
@@ -106,71 +112,51 @@ FxInput = exports.FxInput = (0, _rootNode.rootNode)(_class = (0, _SizeDecorator.
|
|
|
106
112
|
|
|
107
113
|
|
|
108
114
|
|
|
109
|
-
renderMain = function (props) {
|
|
110
|
-
var type = props.type,onRestore = props.onRestore,auto = props.auto,refInput = props.refInput,value = props.value,width = props.width,rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
111
|
-
var inputProps = {
|
|
112
|
-
align: 'right'
|
|
113
|
-
};
|
|
114
115
|
|
|
115
|
-
var button = null;
|
|
116
|
-
var inputCorners = auto ? (0, _extends2.default)({},
|
|
117
|
-
rest.corners) : (0, _extends2.default)({
|
|
118
|
-
borderBottomLeftRadius: 0, borderTopLeftRadius: 0 }, rest.corners);
|
|
119
|
-
var iconSizes = {
|
|
120
|
-
small: parseInt(_this.theme.inputIconSizeSmall),
|
|
121
|
-
medium: parseInt(_this.theme.inputIconSizeMedium),
|
|
122
|
-
large: parseInt(_this.theme.inputIconSizeLarge)
|
|
123
|
-
};
|
|
124
|
-
var size = _this.size;
|
|
125
|
-
var IconFunction = /*#__PURE__*/_react.default.createElement(_MathFunctionIcon.MathFunctionIcon, { size: iconSizes[size] });
|
|
126
|
-
|
|
127
|
-
if (auto) {
|
|
128
|
-
inputProps.leftIcon = IconFunction;
|
|
129
|
-
} else {
|
|
130
|
-
button = /*#__PURE__*/
|
|
131
|
-
_react.default.createElement(_FxInputRestoreBtn.FxInputRestoreBtn, {
|
|
132
|
-
size: _this.size,
|
|
133
|
-
onRestore: onRestore,
|
|
134
|
-
corners: rest.corners,
|
|
135
|
-
disabled: rest.disabled,
|
|
136
|
-
borderless: rest.borderless,
|
|
137
|
-
"aria-label": props.buttonAriaLabel }
|
|
138
|
-
);
|
|
139
116
|
|
|
140
|
-
}
|
|
141
117
|
|
|
142
|
-
return /*#__PURE__*/(
|
|
143
|
-
_react.default.createElement(_Group.Group, { "data-tid": FxInputDataTids.root, width: width },
|
|
144
|
-
button,
|
|
145
|
-
type === 'currency' ? /*#__PURE__*/
|
|
146
|
-
_react.default.createElement(_CurrencyInput.CurrencyInput, (0, _extends2.default)({},
|
|
147
|
-
inputProps,
|
|
148
|
-
rest, {
|
|
149
|
-
corners: inputCorners,
|
|
150
|
-
size: _this.size,
|
|
151
|
-
width: '100%',
|
|
152
|
-
ref: _this.refInput,
|
|
153
|
-
value: value,
|
|
154
|
-
onValueChange: _this.props.onValueChange })
|
|
155
|
-
) : /*#__PURE__*/
|
|
156
118
|
|
|
157
|
-
_react.default.createElement(_Input.Input, (0, _extends2.default)({},
|
|
158
|
-
inputProps,
|
|
159
|
-
rest, {
|
|
160
|
-
corners: inputCorners,
|
|
161
|
-
size: _this.size,
|
|
162
|
-
width: '100%',
|
|
163
|
-
ref: _this.refInput,
|
|
164
|
-
type: type,
|
|
165
|
-
value: value,
|
|
166
|
-
onValueChange: _this.props.onValueChange })
|
|
167
|
-
)
|
|
168
119
|
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
renderMain = function (props) {
|
|
139
|
+
var button = props.auto ? null : /*#__PURE__*/
|
|
140
|
+
_react.default.createElement(_FxInputRestoreBtn.FxInputRestoreBtn, {
|
|
141
|
+
size: props.size,
|
|
142
|
+
onRestore: props.onRestore,
|
|
143
|
+
corners: props.corners,
|
|
144
|
+
disabled: props.disabled,
|
|
145
|
+
borderless: props.borderless,
|
|
146
|
+
"aria-label": props.buttonAriaLabel }
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
return /*#__PURE__*/(
|
|
151
|
+
_react.default.createElement(_Group.Group, { "data-tid": FxInputDataTids.root, width: props.width },
|
|
152
|
+
button,
|
|
153
|
+
_this.getInput(props)
|
|
169
154
|
));
|
|
170
155
|
|
|
171
156
|
};
|
|
172
157
|
|
|
173
|
-
/**
|
|
158
|
+
/** Программно устанавливает фокус на поле.
|
|
159
|
+
* Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
|
|
174
160
|
* @public
|
|
175
161
|
*/_this.
|
|
176
162
|
focus = function () {
|
|
@@ -179,7 +165,7 @@ FxInput = exports.FxInput = (0, _rootNode.rootNode)(_class = (0, _SizeDecorator.
|
|
|
179
165
|
}
|
|
180
166
|
};
|
|
181
167
|
|
|
182
|
-
/**
|
|
168
|
+
/** Программно снимает фокус с кнопки.
|
|
183
169
|
* @public
|
|
184
170
|
*/_this.
|
|
185
171
|
blur = function () {
|
|
@@ -194,4 +180,95 @@ FxInput = exports.FxInput = (0, _rootNode.rootNode)(_class = (0, _SizeDecorator.
|
|
|
194
180
|
if (_this.props.refInput) {
|
|
195
181
|
_this.props.refInput(_this.input);
|
|
196
182
|
}
|
|
197
|
-
};
|
|
183
|
+
};_this.
|
|
184
|
+
|
|
185
|
+
getLeftIcon = function (props) {
|
|
186
|
+
if (!props.auto) {
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
var iconSizes = {
|
|
191
|
+
small: parseInt(_this.theme.inputIconSizeSmall),
|
|
192
|
+
medium: parseInt(_this.theme.inputIconSizeMedium),
|
|
193
|
+
large: parseInt(_this.theme.inputIconSizeLarge)
|
|
194
|
+
};
|
|
195
|
+
var size = _this.size;
|
|
196
|
+
|
|
197
|
+
return /*#__PURE__*/_react.default.createElement(_MathFunctionIcon.MathFunctionIcon, { size: iconSizes[size] });
|
|
198
|
+
};_this.
|
|
199
|
+
|
|
200
|
+
getInput = function (props) {
|
|
201
|
+
var
|
|
202
|
+
type =
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
props.type,onRestore = props.onRestore,auto = props.auto,refInput = props.refInput,value = props.value,width = props.width,_size = props.size,mask = props.mask,maskChar = props.maskChar,formatChars = props.formatChars,alwaysShowMask = props.alwaysShowMask,signed = props.signed,integerDigits = props.integerDigits,fractionDigits = props.fractionDigits,hideTrailingZeros = props.hideTrailingZeros,buttonAriaLabel = props.buttonAriaLabel,originalCorners = props.corners,rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
221
|
+
var corners = auto ?
|
|
222
|
+
originalCorners : (0, _extends2.default)({
|
|
223
|
+
borderBottomLeftRadius: 0, borderTopLeftRadius: 0 }, originalCorners);
|
|
224
|
+
var size = _this.size;
|
|
225
|
+
var commonInputProps = (0, _extends2.default)({
|
|
226
|
+
corners: corners,
|
|
227
|
+
size: size,
|
|
228
|
+
width: '100%',
|
|
229
|
+
ref: _this.refInput },
|
|
230
|
+
rest);
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
if (type === 'currency') {
|
|
234
|
+
return /*#__PURE__*/(
|
|
235
|
+
_react.default.createElement(_CurrencyInput.CurrencyInput, (0, _extends2.default)({},
|
|
236
|
+
commonInputProps, {
|
|
237
|
+
signed: signed,
|
|
238
|
+
integerDigits: integerDigits,
|
|
239
|
+
fractionDigits: fractionDigits,
|
|
240
|
+
value: value,
|
|
241
|
+
onValueChange: _this.props.onValueChange })
|
|
242
|
+
));
|
|
243
|
+
|
|
244
|
+
}
|
|
245
|
+
if (_this.featureFlags.fxInputUseMaskedInput && mask) {
|
|
246
|
+
return /*#__PURE__*/(
|
|
247
|
+
_react.default.createElement(_MaskedInput.MaskedInput, (0, _extends2.default)({},
|
|
248
|
+
commonInputProps, {
|
|
249
|
+
leftIcon: _this.getLeftIcon(props),
|
|
250
|
+
align: "right",
|
|
251
|
+
mask: mask,
|
|
252
|
+
maskChar: maskChar,
|
|
253
|
+
formatChars: formatChars,
|
|
254
|
+
alwaysShowMask: alwaysShowMask,
|
|
255
|
+
value: value,
|
|
256
|
+
onValueChange: _this.props.onValueChange })
|
|
257
|
+
));
|
|
258
|
+
|
|
259
|
+
}
|
|
260
|
+
return /*#__PURE__*/(
|
|
261
|
+
_react.default.createElement(_Input.Input, (0, _extends2.default)({},
|
|
262
|
+
commonInputProps, {
|
|
263
|
+
leftIcon: _this.getLeftIcon(props),
|
|
264
|
+
align: "right",
|
|
265
|
+
mask: mask,
|
|
266
|
+
maskChar: maskChar,
|
|
267
|
+
formatChars: formatChars,
|
|
268
|
+
alwaysShowMask: alwaysShowMask,
|
|
269
|
+
type: type,
|
|
270
|
+
value: value,
|
|
271
|
+
onValueChange: _this.props.onValueChange })
|
|
272
|
+
));
|
|
273
|
+
|
|
274
|
+
};return _this;}(0, _inheritsLoose2.default)(FxInput, _React$Component);var _proto = FxInput.prototype;_proto.validateProps = function validateProps(props) {(0, _warning.default)(props.type !== 'currency' && props.mask !== undefined, '[FxInput]: Prop "mask" is not supported when type="currency"');};_proto.componentDidMount = function componentDidMount() {this.validateProps(this.getProps());};_proto.componentDidUpdate = function componentDidUpdate() {this.validateProps(this.getProps());};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ReactUIFeatureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {_this2.featureFlags = (0, _featureFlagsContext.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.getProps()), _this2.renderMain);});});};return FxInput;}(_react.default.Component), _FxInput.__KONTUR_REACT_UI__ = 'FxInput', _FxInput.displayName = 'FxInput', _FxInput.defaultProps = { width: 250, type: 'text', value: '', auto: false }, _FxInput)) || _class) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_Group","_Input","_CurrencyInput","_createPropsGetter","_CommonWrapper","_rootNode","_ThemeContext","_SizeDecorator","_MathFunctionIcon","_FxInputRestoreBtn","_excluded","_class","_FxInput","FxInputDataTids","exports","root","FxInput","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","input","getProps","createPropsGetter","defaultProps","renderMain","props","type","onRestore","auto","refInput","value","width","rest","_objectWithoutPropertiesLoose2","default","inputProps","align","button","inputCorners","_extends2","corners","borderBottomLeftRadius","borderTopLeftRadius","iconSizes","small","parseInt","theme","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","size","IconFunction","createElement","MathFunctionIcon","leftIcon","FxInputRestoreBtn","disabled","borderless","buttonAriaLabel","Group","CurrencyInput","ref","onValueChange","Input","focus","blur","element","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["FxInput.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\n\nimport { Group } from '../Group';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport type { CurrencyInputProps } from '../CurrencyInput';\nimport { CurrencyInput } from '../CurrencyInput';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Override } from '../../typings/utility-types';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { SizeProp } from '../../lib/types/props';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { MathFunctionIcon } from './MathFunctionIcon';\nimport { FxInputRestoreBtn } from './FxInputRestoreBtn';\n\nexport interface FxInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n CurrencyInputProps,\n {\n /** Устанавливает авто-режим. */\n auto?: boolean;\n\n /** Задает тип инпута */\n type?: 'currency' | InputProps['type'];\n\n /** Задает функцию, которая вызывается при нажатии на кнопку Restore. */\n onRestore?: () => void;\n\n /** Задает функцию, вызывающуюся при изменении value. */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n\n /** Задает значение инпута. */\n value?: string | number;\n\n /** Задает ref инпута. */\n refInput?: (element: CurrencyInput | Input | null) => void;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Задает атрибут aria-label кнопке восстановления (restore button). */\n buttonAriaLabel?: AriaAttributes['aria-label'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n }\n > {}\n\nexport const FxInputDataTids = {\n root: 'FxInput__root',\n} as const;\n\ntype DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value'>>;\ntype DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;\n\n/**\n * Автополе `FxInput`.\n *\n * Используйте `FxInput`, если поле вычисляемое и вы рассчитали значение.\n *\n * Принимает все свойства `Input`'a.\n */\n\n@rootNode\n@withSize\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n public static displayName = 'FxInput';\n\n public static defaultProps: DefaultProps = {\n width: 250,\n type: 'text',\n value: '',\n };\n\n private theme!: Theme;\n private size!: SizeProp;\n private input: Input | CurrencyInput | null = null;\n\n private getProps = createPropsGetter(FxInput.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render() {\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 public renderMain = (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => {\n const { type, onRestore, auto, refInput, value, width, ...rest } = props;\n const inputProps: Partial<CurrencyInputProps> = {\n align: 'right',\n };\n\n let button = null;\n const inputCorners: InputProps['corners'] = auto\n ? { ...rest.corners }\n : { borderBottomLeftRadius: 0, borderTopLeftRadius: 0, ...rest.corners };\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.inputIconSizeSmall),\n medium: parseInt(this.theme.inputIconSizeMedium),\n large: parseInt(this.theme.inputIconSizeLarge),\n };\n const size = this.size;\n const IconFunction = <MathFunctionIcon size={iconSizes[size]} />;\n\n if (auto) {\n inputProps.leftIcon = IconFunction;\n } else {\n button = (\n <FxInputRestoreBtn\n size={this.size}\n onRestore={onRestore}\n corners={rest.corners}\n disabled={rest.disabled}\n borderless={rest.borderless}\n aria-label={props.buttonAriaLabel}\n />\n );\n }\n\n return (\n <Group data-tid={FxInputDataTids.root} width={width}>\n {button}\n {type === 'currency' ? (\n <CurrencyInput\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.size}\n width={'100%'}\n ref={this.refInput}\n value={value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n ) : (\n <Input\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.size}\n width={'100%'}\n ref={this.refInput}\n type={type}\n value={value as InputProps['value']}\n onValueChange={this.props.onValueChange as InputProps['onValueChange']}\n />\n )}\n </Group>\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private refInput = (element: Input | CurrencyInput | null) => {\n this.input = element;\n\n if (this.props.refInput) {\n this.props.refInput(this.input);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_warning","_Group","_Input","_CurrencyInput","_createPropsGetter","_CommonWrapper","_rootNode","_ThemeContext","_MaskedInput","_featureFlagsContext","_ReactUIFeatureFlagsContext","_SizeDecorator","_MathFunctionIcon","_FxInputRestoreBtn","_excluded","_class","_FxInput","FxInputDataTids","exports","root","FxInput","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","input","getProps","createPropsGetter","defaultProps","renderMain","props","button","auto","default","createElement","FxInputRestoreBtn","size","onRestore","corners","disabled","borderless","buttonAriaLabel","Group","width","getInput","focus","blur","refInput","element","getLeftIcon","iconSizes","small","parseInt","theme","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","MathFunctionIcon","type","value","_size","mask","maskChar","formatChars","alwaysShowMask","signed","integerDigits","fractionDigits","hideTrailingZeros","originalCorners","rest","_objectWithoutPropertiesLoose2","_extends2","borderBottomLeftRadius","borderTopLeftRadius","commonInputProps","ref","CurrencyInput","onValueChange","featureFlags","fxInputUseMaskedInput","MaskedInput","leftIcon","align","Input","_inheritsLoose2","_proto","prototype","validateProps","warning","undefined","componentDidMount","componentDidUpdate","render","_this2","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","ThemeContext","CommonWrapper","rootNodeRef","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["FxInput.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { Group } from '../Group';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport type { CurrencyInputProps } from '../CurrencyInput';\nimport { CurrencyInput } from '../CurrencyInput';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Override } from '../../typings/utility-types';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { MaskedInputProps } from '../MaskedInput';\nimport { MaskedInput } from '../MaskedInput';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { MathFunctionIcon } from './MathFunctionIcon';\nimport { FxInputRestoreBtn } from './FxInputRestoreBtn';\n\nexport interface FxInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Pick<Partial<MaskedInputProps>, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>,\n Override<\n Omit<CurrencyInputProps, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>,\n {\n /** Управляет видимостью кнопки Restore:\n * - true — кнопка Restore не отображается. Значение в поле является автоматически рассчитанным.\n * - false — кнопка Restore отображается в поле. Значение в поле считается отредактированным. */\n auto?: boolean;\n\n /** Задаёт тип поля. */\n type?: 'currency' | InputProps['type'];\n\n /** Задаёт функцию, которая вызывается при нажатии на кнопку Restore. */\n onRestore?: () => void;\n\n /** Задаёт функцию, вызывающуюся при изменении value. */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n\n /** Задаёт значение поля. */\n value?: string | number;\n\n /** Задаёт ref поля. */\n refInput?: (element: CurrencyInput | Input | null) => void;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Задаёт атрибут aria-label кнопке Restore. */\n buttonAriaLabel?: AriaAttributes['aria-label'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n }\n > {}\n\nexport const FxInputDataTids = {\n root: 'FxInput__root',\n} as const;\n\ntype DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value' | 'auto'>>;\ntype DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;\n\n/** В автополе можно вывести автоматически рассчитанное цифровое значение. В него можно передавать итог любого вычисления, например, сумму других полей, процент или более сложную функцию.\n *\n * У поля есть иконка математической формулы и кнопка Restore — с её помощью пользователь может вернуть исходное значение, если редактировал поле. Видимость кнопки и поведение при нажатии нужно прописывать в компоненте самостоятельно.\n */\n@rootNode\n@withSize\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n public static displayName = 'FxInput';\n\n public static defaultProps: DefaultProps = {\n width: 250,\n type: 'text',\n value: '',\n auto: false,\n };\n\n private theme!: Theme;\n private size!: SizeProp;\n private input: Input | CurrencyInput | null = null;\n\n private getProps = createPropsGetter(FxInput.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private featureFlags!: ReactUIFeatureFlags;\n\n private validateProps(props: FxInputProps) {\n warning(\n props.type !== 'currency' && props.mask !== undefined,\n '[FxInput]: Prop \"mask\" is not supported when type=\"currency\"',\n );\n }\n\n public componentDidMount() {\n this.validateProps(this.getProps());\n }\n\n public componentDidUpdate() {\n this.validateProps(this.getProps());\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => {\n const button = props.auto ? null : (\n <FxInputRestoreBtn\n size={props.size}\n onRestore={props.onRestore}\n corners={props.corners}\n disabled={props.disabled}\n borderless={props.borderless}\n aria-label={props.buttonAriaLabel}\n />\n );\n\n return (\n <Group data-tid={FxInputDataTids.root} width={props.width}>\n {button}\n {this.getInput(props)}\n </Group>\n );\n };\n\n /** Программно устанавливает фокус на поле.\n * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private refInput = (element: Input | CurrencyInput | null) => {\n this.input = element;\n\n if (this.props.refInput) {\n this.props.refInput(this.input);\n }\n };\n\n private getLeftIcon = (props: FxInputProps) => {\n if (!props.auto) {\n return null;\n }\n\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.inputIconSizeSmall),\n medium: parseInt(this.theme.inputIconSizeMedium),\n large: parseInt(this.theme.inputIconSizeLarge),\n };\n const size = this.size;\n\n return <MathFunctionIcon size={iconSizes[size]} />;\n };\n\n private getInput = (props: FxInputProps) => {\n const {\n type,\n onRestore,\n auto,\n refInput,\n value,\n width,\n size: _size,\n mask,\n maskChar,\n formatChars,\n alwaysShowMask,\n signed,\n integerDigits,\n fractionDigits,\n hideTrailingZeros,\n buttonAriaLabel,\n corners: originalCorners,\n ...rest\n } = props;\n const corners: InputProps['corners'] = auto\n ? originalCorners\n : { borderBottomLeftRadius: 0, borderTopLeftRadius: 0, ...originalCorners };\n const size = this.size;\n const commonInputProps = {\n corners,\n size,\n width: '100%',\n ref: this.refInput,\n ...rest,\n };\n\n if (type === 'currency') {\n return (\n <CurrencyInput\n {...commonInputProps}\n signed={signed}\n integerDigits={integerDigits}\n fractionDigits={fractionDigits}\n value={value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n );\n }\n if (this.featureFlags.fxInputUseMaskedInput && mask) {\n return (\n <MaskedInput\n {...commonInputProps}\n leftIcon={this.getLeftIcon(props)}\n align=\"right\"\n mask={mask}\n maskChar={maskChar}\n formatChars={formatChars}\n alwaysShowMask={alwaysShowMask}\n value={value as MaskedInputProps['value']}\n onValueChange={this.props.onValueChange as MaskedInputProps['onValueChange']}\n />\n );\n }\n return (\n <Input\n {...commonInputProps}\n leftIcon={this.getLeftIcon(props)}\n align=\"right\"\n mask={mask}\n maskChar={maskChar}\n formatChars={formatChars}\n alwaysShowMask={alwaysShowMask}\n type={type}\n value={value as InputProps['value']}\n onValueChange={this.props.onValueChange as InputProps['onValueChange']}\n />\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
|
|
@@ -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
|
-
* Поле ввода
|
|
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
|