@skbkontur/react-ui-validations 1.16.2 → 2.0.0-beta.0
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/index.d.ts +8 -10
- package/index.js +114 -152
- package/index.js.map +1 -1
- package/package.json +4 -4
- package/CHANGELOG.md +0 -852
package/index.d.ts
CHANGED
|
@@ -53,7 +53,7 @@ declare module '@skbkontur/react-ui-validations/src/ValidationContainer' {
|
|
|
53
53
|
submit(validationSettings?: ValidationSettings): Promise<void>;
|
|
54
54
|
validate(withoutFocus?: boolean): Promise<boolean>;
|
|
55
55
|
validate(validationSettings?: ValidationSettings): Promise<boolean>;
|
|
56
|
-
render(): JSX.Element;
|
|
56
|
+
render(): React.JSX.Element;
|
|
57
57
|
}
|
|
58
58
|
export {};
|
|
59
59
|
}
|
|
@@ -71,7 +71,7 @@ declare module '@skbkontur/react-ui-validations/src/ValidationTooltip' {
|
|
|
71
71
|
export class ValidationTooltip extends React.Component<ValidationTooltipProps> {
|
|
72
72
|
static __KONTUR_REACT_UI__: string;
|
|
73
73
|
static displayName: string;
|
|
74
|
-
render(): JSX.Element;
|
|
74
|
+
render(): React.JSX.Element;
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -111,7 +111,7 @@ declare module '@skbkontur/react-ui-validations/src/ValidationWrapperInternal' {
|
|
|
111
111
|
componentWillUnmount(): void;
|
|
112
112
|
componentDidUpdate(): void;
|
|
113
113
|
focus(): Promise<void>;
|
|
114
|
-
render():
|
|
114
|
+
render(): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
115
115
|
getRootNode: () => Nullable<Element>;
|
|
116
116
|
getControlPosition(): Nullable<Point>;
|
|
117
117
|
processBlur(): Promise<void>;
|
|
@@ -141,7 +141,7 @@ declare module '@skbkontur/react-ui-validations/src/ValidationWrapper' {
|
|
|
141
141
|
export class ValidationWrapper extends React.Component<ValidationWrapperProps> {
|
|
142
142
|
static __KONTUR_REACT_UI__: string;
|
|
143
143
|
static displayName: string;
|
|
144
|
-
render(): JSX.Element;
|
|
144
|
+
render(): React.JSX.Element;
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
|
|
@@ -180,7 +180,7 @@ declare module '@skbkontur/react-ui-validations/src/ValidationContextWrapper' {
|
|
|
180
180
|
onValidationRemoved(): void;
|
|
181
181
|
getChildWrappersSortedByPosition(): ValidationWrapperInternal[];
|
|
182
182
|
validate(withoutFocusOrValidationSettings: ValidateArgumentType): Promise<boolean>;
|
|
183
|
-
render(): JSX.Element;
|
|
183
|
+
render(): React.JSX.Element;
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
|
|
@@ -214,18 +214,16 @@ declare module '@skbkontur/react-ui-validations/typings/Types' {
|
|
|
214
214
|
|
|
215
215
|
declare module '@skbkontur/react-ui-validations/src/utils/featureFlagsContext/ValidationsFeatureFlagsContext' {
|
|
216
216
|
import React from 'react';
|
|
217
|
-
export type FeatureFlags = '
|
|
217
|
+
export type FeatureFlags = '';
|
|
218
218
|
export type ValidationsFeatureFlags = Partial<Record<FeatureFlags, boolean>>;
|
|
219
219
|
export const validationsFeatureFlagsDefault: ValidationsFeatureFlags;
|
|
220
|
-
export const ValidationsFeatureFlagsContext: React.Context<Partial<Record<
|
|
220
|
+
export const ValidationsFeatureFlagsContext: React.Context<Partial<Record<"", boolean>>>;
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
declare module '@skbkontur/react-ui-validations/src/utils/featureFlagsContext/FeatureFlagsHelpers' {
|
|
224
224
|
import { ValidationsFeatureFlags } from '@skbkontur/react-ui-validations/src/utils/featureFlagsContext/ValidationsFeatureFlagsContext';
|
|
225
225
|
export const getFullValidationsFlagsContext: (flags: ValidationsFeatureFlags) => {
|
|
226
|
-
|
|
227
|
-
fixedValidationTextColors?: boolean | undefined;
|
|
228
|
-
darkTheme?: boolean | undefined;
|
|
226
|
+
""?: boolean | undefined;
|
|
229
227
|
};
|
|
230
228
|
}
|
|
231
229
|
|
package/index.js
CHANGED
|
@@ -1,25 +1,84 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var React = require('react');
|
|
6
4
|
var warning = require('warning');
|
|
7
5
|
var reactDom = require('react-dom');
|
|
8
6
|
|
|
9
|
-
|
|
7
|
+
var DEFAULT_TEXT_COLOR = '#d43517';
|
|
8
|
+
function getValidationTextColor(theme, level) {
|
|
9
|
+
if (level === void 0) { level = 'error'; }
|
|
10
|
+
return ((level === 'warning' ? theme.validationsTextColorWarning : theme.validationsTextColorError) || DEFAULT_TEXT_COLOR);
|
|
11
|
+
}
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Проверяет, не является ли переданный аргумент null или undefined и исключает типы null и undefined из типа аргумента
|
|
15
|
+
*
|
|
16
|
+
* @param value Значение, которое нужно проверить и исключить из него типы
|
|
17
|
+
* @returns Возвращает true, если переданный аргумент не является null или undefined иначе false
|
|
18
|
+
*/
|
|
19
|
+
var isNonNullable = function (value) {
|
|
20
|
+
return value !== null && value !== undefined;
|
|
21
|
+
};
|
|
13
22
|
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
fixedValidationTextColors: false,
|
|
23
|
+
var defaultOrNamed = function (module, component) {
|
|
24
|
+
return module && module.__esModule && module.default ? module.default : module[component];
|
|
17
25
|
};
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
26
|
+
var importContext = function (module, component) { return module[component] || React.createContext({}); };
|
|
27
|
+
var Tooltip = defaultOrNamed(require('@skbkontur/react-ui/components/Tooltip'), 'Tooltip');
|
|
28
|
+
var ThemeContext = importContext(require('@skbkontur/react-ui/lib/theming/ThemeContext'), 'ThemeContext');
|
|
29
|
+
var ReactUiDetection = /** @class */ (function () {
|
|
30
|
+
function ReactUiDetection() {
|
|
31
|
+
}
|
|
32
|
+
ReactUiDetection.isDatePicker = function (childrenArray) {
|
|
33
|
+
var _a;
|
|
34
|
+
return isNonNullable(childrenArray) && ((_a = childrenArray.type) === null || _a === void 0 ? void 0 : _a.__KONTUR_REACT_UI__) === 'DatePicker';
|
|
35
|
+
};
|
|
36
|
+
ReactUiDetection.isRadioGroup = function (childrenArray) {
|
|
37
|
+
var _a;
|
|
38
|
+
return isNonNullable(childrenArray) && ((_a = childrenArray.type) === null || _a === void 0 ? void 0 : _a.__KONTUR_REACT_UI__) === 'RadioGroup';
|
|
39
|
+
};
|
|
40
|
+
ReactUiDetection.isTokenInput = function (childrenArray) {
|
|
41
|
+
var _a;
|
|
42
|
+
return isNonNullable(childrenArray) && ((_a = childrenArray.type) === null || _a === void 0 ? void 0 : _a.__KONTUR_REACT_UI__) === 'TokenInput';
|
|
43
|
+
};
|
|
44
|
+
ReactUiDetection.isSwitcher = function (childrenArray) {
|
|
45
|
+
var _a;
|
|
46
|
+
return isNonNullable(childrenArray) && ((_a = childrenArray.type) === null || _a === void 0 ? void 0 : _a.__KONTUR_REACT_UI__) === 'Switcher';
|
|
47
|
+
};
|
|
48
|
+
ReactUiDetection.isComboBox = function (childrenArray) {
|
|
49
|
+
var _a;
|
|
50
|
+
return isNonNullable(childrenArray) && ((_a = childrenArray.type) === null || _a === void 0 ? void 0 : _a.__KONTUR_REACT_UI__) === 'ComboBox';
|
|
51
|
+
};
|
|
52
|
+
return ReactUiDetection;
|
|
53
|
+
}());
|
|
21
54
|
|
|
22
|
-
|
|
55
|
+
var ValidationText = function (_a) {
|
|
56
|
+
var pos = _a.pos, children = _a.children, validation = _a.validation, dataTid = _a["data-tid"];
|
|
57
|
+
var theme = React.useContext(ThemeContext);
|
|
58
|
+
var color = getValidationTextColor(theme, validation === null || validation === void 0 ? void 0 : validation.level);
|
|
59
|
+
if (pos === 'right') {
|
|
60
|
+
var childrenAndValidationText_1 = (React.createElement(React.Fragment, null,
|
|
61
|
+
children,
|
|
62
|
+
React.createElement("span", { "data-tid": dataTid, "data-validation-message": "text", style: { marginLeft: '10px', color: color } }, (validation && validation.message) || '')));
|
|
63
|
+
return React.createElement("div", { style: { display: 'inline-block' } }, childrenAndValidationText_1);
|
|
64
|
+
}
|
|
65
|
+
var validationText = (React.createElement("span", { "data-tid": dataTid, "data-validation-message": "text", style: {
|
|
66
|
+
color: color,
|
|
67
|
+
overflow: 'visible',
|
|
68
|
+
whiteSpace: 'nowrap',
|
|
69
|
+
position: 'absolute',
|
|
70
|
+
top: '2px',
|
|
71
|
+
left: 0,
|
|
72
|
+
} }, (validation && validation.message) || ''));
|
|
73
|
+
var childrenAndValidationText = (React.createElement(React.Fragment, null,
|
|
74
|
+
children,
|
|
75
|
+
React.createElement("span", { style: { position: 'absolute', bottom: 0, left: 0, height: 0 } }, validationText)));
|
|
76
|
+
return React.createElement("div", { style: { position: 'relative', display: 'inline-block' } }, childrenAndValidationText);
|
|
77
|
+
};
|
|
78
|
+
ValidationText.__KONTUR_REACT_UI__ = 'ValidationText';
|
|
79
|
+
ValidationText.displayName = 'ValidationText';
|
|
80
|
+
|
|
81
|
+
/******************************************************************************
|
|
23
82
|
Copyright (c) Microsoft Corporation.
|
|
24
83
|
|
|
25
84
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -33,7 +92,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
33
92
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
34
93
|
PERFORMANCE OF THIS SOFTWARE.
|
|
35
94
|
***************************************************************************** */
|
|
36
|
-
/* global Reflect, Promise */
|
|
95
|
+
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
37
96
|
|
|
38
97
|
var extendStatics = function(d, b) {
|
|
39
98
|
extendStatics = Object.setPrototypeOf ||
|
|
@@ -89,7 +148,7 @@ function __generator(thisArg, body) {
|
|
|
89
148
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
90
149
|
function step(op) {
|
|
91
150
|
if (f) throw new TypeError("Generator is already executing.");
|
|
92
|
-
while (_) try {
|
|
151
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
93
152
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
94
153
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
95
154
|
switch (op[0]) {
|
|
@@ -119,126 +178,34 @@ function __spreadArray(to, from, pack) {
|
|
|
119
178
|
}
|
|
120
179
|
}
|
|
121
180
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
var DEFAULT_TEXT_COLOR = '#d43517';
|
|
129
|
-
function getValidationTextColor(flags, theme, level) {
|
|
130
|
-
if (level === void 0) { level = 'error'; }
|
|
131
|
-
if (flags.fixedValidationTextColors) {
|
|
132
|
-
if (!theme.validationsTextColorWarning && !theme.validationsTextColorError) {
|
|
133
|
-
switch (level) {
|
|
134
|
-
case 'warning':
|
|
135
|
-
return flags.darkTheme ? '#fdd481' : '#ef8b17';
|
|
136
|
-
case 'error':
|
|
137
|
-
return flags.darkTheme ? '#ff887b' : '#cb3d35';
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
return ((level === 'warning' ? theme.validationsTextColorWarning : theme.validationsTextColorError) || DEFAULT_TEXT_COLOR);
|
|
141
|
-
}
|
|
142
|
-
return DEFAULT_TEXT_COLOR;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Проверяет, не является ли переданный аргумент null или undefined и исключает типы null и undefined из типа аргумента
|
|
147
|
-
*
|
|
148
|
-
* @param value Значение, которое нужно проверить и исключить из него типы
|
|
149
|
-
* @returns Возвращает true, если переданный аргумент не является null или undefined иначе false
|
|
150
|
-
*/
|
|
151
|
-
var isNonNullable = function (value) {
|
|
152
|
-
return value !== null && value !== undefined;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
184
|
+
var e = new Error(message);
|
|
185
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
153
186
|
};
|
|
154
187
|
|
|
155
|
-
var defaultOrNamed = function (module, component) {
|
|
156
|
-
return module && module.__esModule && module.default ? module.default : module[component];
|
|
157
|
-
};
|
|
158
|
-
var importContext = function (module, component) { return module[component] || React__default["default"].createContext({}); };
|
|
159
|
-
var Tooltip = defaultOrNamed(require('@skbkontur/react-ui/components/Tooltip'), 'Tooltip');
|
|
160
|
-
var ThemeContext = importContext(require('@skbkontur/react-ui/lib/theming/ThemeContext'), 'ThemeContext');
|
|
161
|
-
var ReactUiDetection = /** @class */ (function () {
|
|
162
|
-
function ReactUiDetection() {
|
|
163
|
-
}
|
|
164
|
-
ReactUiDetection.isDatePicker = function (childrenArray) {
|
|
165
|
-
var _a;
|
|
166
|
-
return isNonNullable(childrenArray) && ((_a = childrenArray.type) === null || _a === void 0 ? void 0 : _a.__KONTUR_REACT_UI__) === 'DatePicker';
|
|
167
|
-
};
|
|
168
|
-
ReactUiDetection.isRadioGroup = function (childrenArray) {
|
|
169
|
-
var _a;
|
|
170
|
-
return isNonNullable(childrenArray) && ((_a = childrenArray.type) === null || _a === void 0 ? void 0 : _a.__KONTUR_REACT_UI__) === 'RadioGroup';
|
|
171
|
-
};
|
|
172
|
-
ReactUiDetection.isTokenInput = function (childrenArray) {
|
|
173
|
-
var _a;
|
|
174
|
-
return isNonNullable(childrenArray) && ((_a = childrenArray.type) === null || _a === void 0 ? void 0 : _a.__KONTUR_REACT_UI__) === 'TokenInput';
|
|
175
|
-
};
|
|
176
|
-
ReactUiDetection.isSwitcher = function (childrenArray) {
|
|
177
|
-
var _a;
|
|
178
|
-
return isNonNullable(childrenArray) && ((_a = childrenArray.type) === null || _a === void 0 ? void 0 : _a.__KONTUR_REACT_UI__) === 'Switcher';
|
|
179
|
-
};
|
|
180
|
-
ReactUiDetection.isComboBox = function (childrenArray) {
|
|
181
|
-
var _a;
|
|
182
|
-
return isNonNullable(childrenArray) && ((_a = childrenArray.type) === null || _a === void 0 ? void 0 : _a.__KONTUR_REACT_UI__) === 'ComboBox';
|
|
183
|
-
};
|
|
184
|
-
return ReactUiDetection;
|
|
185
|
-
}());
|
|
186
|
-
|
|
187
|
-
var ValidationText = function (_a) {
|
|
188
|
-
var pos = _a.pos, children = _a.children, validation = _a.validation, dataTid = _a["data-tid"];
|
|
189
|
-
var theme = React.useContext(ThemeContext);
|
|
190
|
-
var featureFlags = getFullValidationsFlagsContext(React.useContext(ValidationsFeatureFlagsContext));
|
|
191
|
-
var color = getValidationTextColor(featureFlags, theme, validation === null || validation === void 0 ? void 0 : validation.level);
|
|
192
|
-
if (pos === 'right') {
|
|
193
|
-
var childrenAndValidationText = (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
194
|
-
children,
|
|
195
|
-
React__default["default"].createElement("span", { "data-tid": dataTid, "data-validation-message": "text", style: { marginLeft: '10px', color: color } }, (validation && validation.message) || '')));
|
|
196
|
-
return featureFlags.validationsRemoveExtraSpans ? (childrenAndValidationText) : (React__default["default"].createElement("span", { style: { display: 'inline-block' } }, childrenAndValidationText));
|
|
197
|
-
}
|
|
198
|
-
var validationText = (React__default["default"].createElement("span", { "data-tid": dataTid, "data-validation-message": "text", style: {
|
|
199
|
-
color: color,
|
|
200
|
-
overflow: 'visible',
|
|
201
|
-
whiteSpace: 'nowrap',
|
|
202
|
-
position: 'absolute',
|
|
203
|
-
top: '2px',
|
|
204
|
-
left: 0,
|
|
205
|
-
} }, (validation && validation.message) || ''));
|
|
206
|
-
return featureFlags.validationsRemoveExtraSpans ? (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
207
|
-
children,
|
|
208
|
-
React__default["default"].createElement("span", { style: { position: 'absolute', display: 'block' } }, validationText))) : (React__default["default"].createElement("span", { style: { position: 'relative', display: 'inline-block' } },
|
|
209
|
-
children,
|
|
210
|
-
React__default["default"].createElement("span", { style: { position: 'absolute', bottom: 0, left: 0, height: 0 } }, validationText)));
|
|
211
|
-
};
|
|
212
|
-
ValidationText.__KONTUR_REACT_UI__ = 'ValidationText';
|
|
213
|
-
ValidationText.displayName = 'ValidationText';
|
|
214
|
-
|
|
215
188
|
var ValidationTooltip = /** @class */ (function (_super) {
|
|
216
189
|
__extends(ValidationTooltip, _super);
|
|
217
190
|
function ValidationTooltip() {
|
|
218
191
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
219
192
|
}
|
|
220
193
|
ValidationTooltip.prototype.render = function () {
|
|
221
|
-
var _this = this;
|
|
222
194
|
var _a = this.props, children = _a.children, pos = _a.pos, error = _a.error, render = _a.render, rest = __rest(_a, ["children", "pos", "error", "render"]);
|
|
223
|
-
var onlyChild =
|
|
195
|
+
var onlyChild = React.Children.only(children);
|
|
224
196
|
var child = onlyChild && onlyChild.props ? onlyChild.props.children : null;
|
|
225
|
-
return
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
(ReactUiDetection.isRadioGroup(child) ||
|
|
229
|
-
ReactUiDetection.isTokenInput(child) ||
|
|
230
|
-
ReactUiDetection.isSwitcher(child)) ? (React__default["default"].createElement(Tooltip, __assign({ useWrapper: false, pos: pos, render: error && render, trigger: 'hover&focus' }, rest), child)) : (React__default["default"].createElement(Tooltip, __assign({ pos: pos, render: error && render, trigger: 'hover&focus' }, rest), children));
|
|
231
|
-
}));
|
|
197
|
+
return ReactUiDetection.isRadioGroup(child) ||
|
|
198
|
+
ReactUiDetection.isTokenInput(child) ||
|
|
199
|
+
ReactUiDetection.isSwitcher(child) ? (React.createElement(Tooltip, __assign({ useWrapper: false, pos: pos, render: error && render, trigger: 'hover&focus' }, rest), child)) : (React.createElement(Tooltip, __assign({ pos: pos, render: error && render, trigger: 'hover&focus' }, rest), children));
|
|
232
200
|
};
|
|
233
201
|
ValidationTooltip.__KONTUR_REACT_UI__ = 'ValidationTooltip';
|
|
234
202
|
ValidationTooltip.displayName = 'ValidationTooltip';
|
|
235
203
|
return ValidationTooltip;
|
|
236
|
-
}(
|
|
204
|
+
}(React.Component));
|
|
237
205
|
|
|
238
|
-
/* eslint-disable react/display-name */
|
|
239
206
|
function tooltip(pos) {
|
|
240
207
|
return function (control, hasError, validation) {
|
|
241
|
-
return (
|
|
208
|
+
return (React.createElement(ValidationTooltip, { pos: pos, error: hasError, render: function () {
|
|
242
209
|
if (!validation || !validation.message) {
|
|
243
210
|
return null;
|
|
244
211
|
}
|
|
@@ -249,11 +216,11 @@ function tooltip(pos) {
|
|
|
249
216
|
function text(pos) {
|
|
250
217
|
if (pos === void 0) { pos = 'right'; }
|
|
251
218
|
return function (control, _hasError, validation) {
|
|
252
|
-
return (
|
|
219
|
+
return (React.createElement(ValidationText, { pos: pos, validation: validation }, control));
|
|
253
220
|
};
|
|
254
221
|
}
|
|
255
222
|
|
|
256
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
223
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-constraint
|
|
257
224
|
function createPropsGetter(defaultProps) {
|
|
258
225
|
return function () {
|
|
259
226
|
return this.props;
|
|
@@ -300,7 +267,7 @@ exports.FocusMode = void 0;
|
|
|
300
267
|
FocusMode[FocusMode["None"] = 2] = "None";
|
|
301
268
|
})(exports.FocusMode || (exports.FocusMode = {}));
|
|
302
269
|
|
|
303
|
-
var ValidationContext =
|
|
270
|
+
var ValidationContext = React.createContext({
|
|
304
271
|
register: function () { return undefined; },
|
|
305
272
|
unregister: function () { return undefined; },
|
|
306
273
|
instanceProcessBlur: function () { return undefined; },
|
|
@@ -317,15 +284,9 @@ var ValidationContextWrapper = /** @class */ (function (_super) {
|
|
|
317
284
|
function ValidationContextWrapper() {
|
|
318
285
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
319
286
|
_this.childWrappers = [];
|
|
320
|
-
_this.children = function (flags) {
|
|
321
|
-
if (flags.validationsRemoveExtraSpans) {
|
|
322
|
-
return _this.props.children;
|
|
323
|
-
}
|
|
324
|
-
return React__default["default"].createElement("span", null, _this.props.children);
|
|
325
|
-
};
|
|
326
287
|
_this.renderChildren = function (children) {
|
|
327
|
-
if (
|
|
328
|
-
return
|
|
288
|
+
if (React.isValidElement(children)) {
|
|
289
|
+
return React.cloneElement(children, {
|
|
329
290
|
'data-tid': _this.props['data-tid'],
|
|
330
291
|
});
|
|
331
292
|
}
|
|
@@ -446,20 +407,16 @@ var ValidationContextWrapper = /** @class */ (function (_super) {
|
|
|
446
407
|
return exports.FocusMode.None;
|
|
447
408
|
};
|
|
448
409
|
ValidationContextWrapper.prototype.render = function () {
|
|
449
|
-
|
|
450
|
-
return (React__default["default"].createElement(ValidationsFeatureFlagsContext.Consumer, null, function (flags) {
|
|
451
|
-
_this.featureFlags = getFullValidationsFlagsContext(flags);
|
|
452
|
-
return (React__default["default"].createElement(ValidationContext.Provider, { value: _this }, _this.renderChildren(_this.children(_this.featureFlags))));
|
|
453
|
-
}));
|
|
410
|
+
return (React.createElement(ValidationContext.Provider, { value: this }, this.renderChildren(React.createElement("div", { style: { display: 'inline' } }, this.props.children))));
|
|
454
411
|
};
|
|
455
412
|
return ValidationContextWrapper;
|
|
456
|
-
}(
|
|
413
|
+
}(React.Component));
|
|
457
414
|
|
|
458
415
|
var ValidationContainer = /** @class */ (function (_super) {
|
|
459
416
|
__extends(ValidationContainer, _super);
|
|
460
417
|
function ValidationContainer() {
|
|
461
418
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
462
|
-
_this.getProps = createPropsGetter();
|
|
419
|
+
_this.getProps = createPropsGetter(ValidationContainer.defaultProps);
|
|
463
420
|
_this.childContext = null;
|
|
464
421
|
_this.refChildContext = function (el) { return (_this.childContext = el); };
|
|
465
422
|
return _this;
|
|
@@ -489,7 +446,7 @@ var ValidationContainer = /** @class */ (function (_super) {
|
|
|
489
446
|
return this.childContext.validate(withoutFocusOrValidationSettings);
|
|
490
447
|
};
|
|
491
448
|
ValidationContainer.prototype.render = function () {
|
|
492
|
-
return (
|
|
449
|
+
return (React.createElement(ValidationContextWrapper, { "data-tid": this.props['data-tid'], ref: this.refChildContext, scrollOffset: this.props.scrollOffset, disableSmoothScroll: this.getProps().disableSmoothScroll, onValidationUpdated: this.props.onValidationUpdated }, this.props.children));
|
|
493
450
|
};
|
|
494
451
|
ValidationContainer.__KONTUR_REACT_UI__ = 'ValidationContainer';
|
|
495
452
|
ValidationContainer.displayName = 'ValidationContainer';
|
|
@@ -505,9 +462,8 @@ var ValidationContainer = /** @class */ (function (_super) {
|
|
|
505
462
|
},
|
|
506
463
|
};
|
|
507
464
|
return ValidationContainer;
|
|
508
|
-
}(
|
|
465
|
+
}(React.Component));
|
|
509
466
|
|
|
510
|
-
/* eslint-disable react/no-find-dom-node */
|
|
511
467
|
var isInstanceWithRootNode = function (instance) {
|
|
512
468
|
return Boolean(instance) && Object.prototype.hasOwnProperty.call(instance, 'getRootNode');
|
|
513
469
|
};
|
|
@@ -558,7 +514,7 @@ var getRootNode = function (instance) {
|
|
|
558
514
|
// but findDOMNode doesn`t accept everything that instance can be at this point,
|
|
559
515
|
// so we have to handle exceptions
|
|
560
516
|
// see https://github.com/facebook/react/blob/cae63505/packages/react-dom/src/__tests__/findDOMNode-test.js#L66-L86
|
|
561
|
-
|
|
517
|
+
warning(false, '[getRootNode]: can`t fallback to findDOMNode.' +
|
|
562
518
|
'\n' +
|
|
563
519
|
'See https://github.com/skbkontur/retail-ui/blob/master/packages/react-ui/README.md#strictmode' +
|
|
564
520
|
'\n\n' +
|
|
@@ -782,7 +738,7 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
782
738
|
return _this;
|
|
783
739
|
}
|
|
784
740
|
ValidationWrapperInternal.prototype.componentDidMount = function () {
|
|
785
|
-
|
|
741
|
+
warning(this.context, 'ValidationWrapper should appears as child of ValidationContainer.\n' +
|
|
786
742
|
'https://tech.skbkontur.ru/react-ui-validations/#/getting-started');
|
|
787
743
|
if (this.context) {
|
|
788
744
|
this.context.register(this);
|
|
@@ -825,7 +781,7 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
825
781
|
var _this = this;
|
|
826
782
|
var _a = this.props, children = _a.children, dataTid = _a["data-tid"];
|
|
827
783
|
var validation = this.state.validation;
|
|
828
|
-
var clonedChild = children ? (
|
|
784
|
+
var clonedChild = children ? (React.cloneElement(children, {
|
|
829
785
|
ref: this.customRef,
|
|
830
786
|
error: !this.isChanging && getLevel(validation) === 'error',
|
|
831
787
|
warning: !this.isChanging && getLevel(validation) === 'warning',
|
|
@@ -862,9 +818,9 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
862
818
|
(_a = children.props).onValueChange.apply(_a, args);
|
|
863
819
|
}
|
|
864
820
|
},
|
|
865
|
-
})) : (
|
|
821
|
+
})) : (React.createElement("span", { ref: this.setRootNode }));
|
|
866
822
|
if (ReactUiDetection.isComboBox(clonedChild)) {
|
|
867
|
-
clonedChild =
|
|
823
|
+
clonedChild = React.cloneElement(clonedChild, {
|
|
868
824
|
onInputValueChange: function () {
|
|
869
825
|
var _a;
|
|
870
826
|
var args = [];
|
|
@@ -879,12 +835,9 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
879
835
|
},
|
|
880
836
|
});
|
|
881
837
|
}
|
|
882
|
-
return (
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
'data-tid': dataTid,
|
|
886
|
-
});
|
|
887
|
-
}));
|
|
838
|
+
return React.cloneElement(this.props.errorMessage(React.createElement("div", { style: { display: 'inline' } }, clonedChild), !!validation, validation), {
|
|
839
|
+
'data-tid': dataTid,
|
|
840
|
+
});
|
|
888
841
|
};
|
|
889
842
|
ValidationWrapperInternal.prototype.getControlPosition = function () {
|
|
890
843
|
var htmlElement = this.getRootNode();
|
|
@@ -964,7 +917,7 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
964
917
|
};
|
|
965
918
|
ValidationWrapperInternal.contextType = ValidationContext;
|
|
966
919
|
return ValidationWrapperInternal;
|
|
967
|
-
}(
|
|
920
|
+
}(React.Component));
|
|
968
921
|
|
|
969
922
|
var ValidationWrapper = /** @class */ (function (_super) {
|
|
970
923
|
__extends(ValidationWrapper, _super);
|
|
@@ -981,12 +934,21 @@ var ValidationWrapper = /** @class */ (function (_super) {
|
|
|
981
934
|
independent: validationInfo.independent || false,
|
|
982
935
|
}
|
|
983
936
|
: null;
|
|
984
|
-
return (
|
|
937
|
+
return (React.createElement(ValidationWrapperInternal, { "data-tid": datTid, errorMessage: renderMessage || tooltip('right top'), validation: validation }, children));
|
|
985
938
|
};
|
|
986
939
|
ValidationWrapper.__KONTUR_REACT_UI__ = 'ValidationWrapper';
|
|
987
940
|
ValidationWrapper.displayName = 'ValidationWrapper';
|
|
988
941
|
return ValidationWrapper;
|
|
989
|
-
}(
|
|
942
|
+
}(React.Component));
|
|
943
|
+
|
|
944
|
+
var validationsFeatureFlagsDefault = {};
|
|
945
|
+
var ValidationsFeatureFlagsContext = React.createContext(validationsFeatureFlagsDefault);
|
|
946
|
+
ValidationsFeatureFlagsContext.displayName = 'ValidationsFeatureFlagsContext';
|
|
947
|
+
ValidationsFeatureFlagsContext.__KONTUR_REACT_UI__ = 'ValidationsFeatureFlagsContext';
|
|
948
|
+
|
|
949
|
+
var getFullValidationsFlagsContext = function (flags) {
|
|
950
|
+
return __assign(__assign({}, validationsFeatureFlagsDefault), flags);
|
|
951
|
+
};
|
|
990
952
|
|
|
991
953
|
var ValidationBuilder = /** @class */ (function () {
|
|
992
954
|
// eslint-disable-next-line no-useless-constructor
|