@skbkontur/react-ui-validations 1.6.0 → 1.7.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/CHANGELOG.md +19 -0
- package/README.md +4 -0
- package/index.d.ts +45 -57
- package/index.js +52 -47
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.7.0](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.6.0...react-ui-validations@1.7.0) (2022-01-27)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **react-ui:** [StrictMode] give up findDomNode ([#2518](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/2518)) ([8028cdd](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/8028cdd3c2289fd48816bdaf92da6a28892f40a7))
|
|
12
|
+
* **react-ui:** [StrictMode] give up legacy context ([#2694](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/2694)) ([d0253cc](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/d0253ccc089764a317ccaa79aa00cc96fbb7aa0a))
|
|
13
|
+
* **react-ui:** [StrictMode] give up unsafe methods ([#2514](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/2514)) ([6cc2201](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/6cc2201f0e8f711441e6c63229b703c03d4b6953))
|
|
14
|
+
* **react-ui:** call original refs while replacing them ([#2736](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/2736)) ([01ff2ab](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/01ff2ab3243082c9347d20e844368ac775e54449))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* support React.StrictMode ([04a4bc9](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/04a4bc9f2dd35fa98ea4d9526ddd775dd1017b71))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
6
25
|
# [1.6.0](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.5.7...react-ui-validations@1.6.0) (2021-12-27)
|
|
7
26
|
|
|
8
27
|
|
package/README.md
CHANGED
|
@@ -39,3 +39,7 @@ export default class DataEditor extends React.Component {
|
|
|
39
39
|
```shell
|
|
40
40
|
yarn start:docs
|
|
41
41
|
```
|
|
42
|
+
|
|
43
|
+
## StrictMode
|
|
44
|
+
|
|
45
|
+
Библиотека поддерживает работу в React.StrictMode начиная с версии `1.7.0`. [Подробнее](https://github.com/skbkontur/retail-ui/blob/master/packages/react-ui/README.md#strictmode).
|
package/index.d.ts
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
// Generated by dts-bundle v0.7.3
|
|
2
2
|
// Dependencies for this module:
|
|
3
3
|
// ../../react
|
|
4
|
-
// ../../prop-types
|
|
5
4
|
|
|
6
5
|
declare module '@skbkontur/react-ui-validations' {
|
|
7
6
|
import { text, tooltip } from '@skbkontur/react-ui-validations/src/ErrorRenderer';
|
|
8
7
|
import { ValidationContainer, ValidationContainerProps } from '@skbkontur/react-ui-validations/src/ValidationContainer';
|
|
9
|
-
import { ValidationContext, ValidationContextProps } from '@skbkontur/react-ui-validations/src/ValidationContext';
|
|
10
8
|
import { TooltipPosition, ValidationTooltip, ValidationTooltipProps } from '@skbkontur/react-ui-validations/src/ValidationTooltip';
|
|
11
9
|
import { RenderErrorMessage, Validation, ValidationBehaviour } from '@skbkontur/react-ui-validations/src/ValidationWrapperInternal';
|
|
12
10
|
import { ValidationWrapper, ValidationInfo, ValidationWrapperProps } from '@skbkontur/react-ui-validations/src/ValidationWrapper';
|
|
13
|
-
|
|
11
|
+
import { ValidationContext, ValidationContextType, ValidationContextWrapper, ValidationContextWrapperProps } from '@skbkontur/react-ui-validations/src/ValidationContextWrapper';
|
|
12
|
+
export { ValidationContainer, ValidationContainerProps, ValidationContext, ValidationContextType, ValidationContextWrapper, ValidationContextWrapperProps, ValidationWrapper as ValidationWrapperV1, ValidationWrapperProps as ValidationWrapperV1Props, RenderErrorMessage, ValidationBehaviour, Validation, ValidationWrapper, ValidationWrapperProps, ValidationInfo, ValidationTooltip, ValidationTooltipProps, TooltipPosition, tooltip, text, };
|
|
14
13
|
export * from '@skbkontur/react-ui-validations/src/Validations';
|
|
15
14
|
}
|
|
16
15
|
|
|
@@ -48,50 +47,6 @@ declare module '@skbkontur/react-ui-validations/src/ValidationContainer' {
|
|
|
48
47
|
}
|
|
49
48
|
}
|
|
50
49
|
|
|
51
|
-
declare module '@skbkontur/react-ui-validations/src/ValidationContext' {
|
|
52
|
-
import * as PropTypes from 'prop-types';
|
|
53
|
-
import React from 'react';
|
|
54
|
-
import { ValidationWrapperInternal } from '@skbkontur/react-ui-validations/src/ValidationWrapperInternal';
|
|
55
|
-
import { ScrollOffset } from '@skbkontur/react-ui-validations/src/ValidationContainer';
|
|
56
|
-
export interface ValidationContextSettings {
|
|
57
|
-
scrollOffset: ScrollOffset;
|
|
58
|
-
disableSmoothScroll: boolean;
|
|
59
|
-
}
|
|
60
|
-
export interface IValidationContext {
|
|
61
|
-
register(wrapper: ValidationWrapperInternal): void;
|
|
62
|
-
unregister(wrapper: ValidationWrapperInternal): void;
|
|
63
|
-
instanceProcessBlur(wrapper: ValidationWrapperInternal): void;
|
|
64
|
-
onValidationUpdated(wrapper: ValidationWrapperInternal, isValid: boolean): void;
|
|
65
|
-
getSettings(): ValidationContextSettings;
|
|
66
|
-
isAnyWrapperInChangingMode(): boolean;
|
|
67
|
-
}
|
|
68
|
-
export interface ValidationContextProps {
|
|
69
|
-
children?: React.ReactNode;
|
|
70
|
-
onValidationUpdated?: (isValid?: boolean) => void;
|
|
71
|
-
scrollOffset?: number | ScrollOffset;
|
|
72
|
-
disableSmoothScroll: boolean;
|
|
73
|
-
}
|
|
74
|
-
export class ValidationContext extends React.Component<ValidationContextProps> implements IValidationContext {
|
|
75
|
-
static childContextTypes: {
|
|
76
|
-
validationContext: PropTypes.Requireable<any>;
|
|
77
|
-
};
|
|
78
|
-
childWrappers: ValidationWrapperInternal[];
|
|
79
|
-
getChildContext(): {
|
|
80
|
-
validationContext: IValidationContext;
|
|
81
|
-
};
|
|
82
|
-
getSettings(): ValidationContextSettings;
|
|
83
|
-
register(wrapper: ValidationWrapperInternal): void;
|
|
84
|
-
unregister(wrapper: ValidationWrapperInternal): void;
|
|
85
|
-
instanceProcessBlur(instance: ValidationWrapperInternal): void;
|
|
86
|
-
onValidationUpdated(wrapper: ValidationWrapperInternal, isValid?: boolean): void;
|
|
87
|
-
isAnyWrapperInChangingMode(): boolean;
|
|
88
|
-
onValidationRemoved(): void;
|
|
89
|
-
getChildWrappersSortedByPosition(): ValidationWrapperInternal[];
|
|
90
|
-
validate(withoutFocus: boolean): Promise<boolean>;
|
|
91
|
-
render(): JSX.Element;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
50
|
declare module '@skbkontur/react-ui-validations/src/ValidationTooltip' {
|
|
96
51
|
import React from 'react';
|
|
97
52
|
export type TooltipPosition = 'top left' | 'top center' | 'top right' | 'bottom left' | 'bottom center' | 'bottom right' | 'left top' | 'left middle' | 'left bottom' | 'right top' | 'right middle' | 'right bottom';
|
|
@@ -107,10 +62,9 @@ declare module '@skbkontur/react-ui-validations/src/ValidationTooltip' {
|
|
|
107
62
|
}
|
|
108
63
|
|
|
109
64
|
declare module '@skbkontur/react-ui-validations/src/ValidationWrapperInternal' {
|
|
110
|
-
import * as PropTypes from 'prop-types';
|
|
111
65
|
import React from 'react';
|
|
112
66
|
import { Nullable } from '@skbkontur/react-ui-validations/typings/Types';
|
|
113
|
-
import {
|
|
67
|
+
import { ValidationContextType } from '@skbkontur/react-ui-validations/src/ValidationContextWrapper';
|
|
114
68
|
export type ValidationBehaviour = 'immediate' | 'lostfocus' | 'submit';
|
|
115
69
|
export type ValidationLevel = 'error' | 'warning';
|
|
116
70
|
export interface Validation {
|
|
@@ -133,20 +87,16 @@ declare module '@skbkontur/react-ui-validations/src/ValidationWrapperInternal' {
|
|
|
133
87
|
y: number;
|
|
134
88
|
}
|
|
135
89
|
export class ValidationWrapperInternal extends React.Component<ValidationWrapperInternalProps, ValidationWrapperInternalState> {
|
|
136
|
-
static contextTypes: {
|
|
137
|
-
validationContext: PropTypes.Requireable<any>;
|
|
138
|
-
};
|
|
139
90
|
state: ValidationWrapperInternalState;
|
|
140
|
-
context: {
|
|
141
|
-
validationContext: IValidationContext;
|
|
142
|
-
};
|
|
143
91
|
isChanging: boolean;
|
|
144
|
-
|
|
92
|
+
static contextType: React.Context<ValidationContextType>;
|
|
93
|
+
context: ValidationContextType;
|
|
145
94
|
componentDidMount(): void;
|
|
146
95
|
componentWillUnmount(): void;
|
|
147
|
-
|
|
96
|
+
componentDidUpdate(): void;
|
|
148
97
|
focus(): Promise<void>;
|
|
149
98
|
render(): React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)>;
|
|
99
|
+
getRootNode: () => Nullable<HTMLElement>;
|
|
150
100
|
getControlPosition(): Nullable<Point>;
|
|
151
101
|
processBlur(): Promise<void>;
|
|
152
102
|
processSubmit(): Promise<void>;
|
|
@@ -177,6 +127,44 @@ declare module '@skbkontur/react-ui-validations/src/ValidationWrapper' {
|
|
|
177
127
|
}
|
|
178
128
|
}
|
|
179
129
|
|
|
130
|
+
declare module '@skbkontur/react-ui-validations/src/ValidationContextWrapper' {
|
|
131
|
+
import React from 'react';
|
|
132
|
+
import { ValidationWrapperInternal } from '@skbkontur/react-ui-validations/src/ValidationWrapperInternal';
|
|
133
|
+
import { ScrollOffset } from '@skbkontur/react-ui-validations/src/ValidationContainer';
|
|
134
|
+
export interface ValidationContextSettings {
|
|
135
|
+
scrollOffset: ScrollOffset;
|
|
136
|
+
disableSmoothScroll: boolean;
|
|
137
|
+
}
|
|
138
|
+
export interface ValidationContextWrapperProps {
|
|
139
|
+
children?: React.ReactNode;
|
|
140
|
+
onValidationUpdated?: (isValid?: boolean) => void;
|
|
141
|
+
scrollOffset?: number | ScrollOffset;
|
|
142
|
+
disableSmoothScroll: boolean;
|
|
143
|
+
}
|
|
144
|
+
export interface ValidationContextType {
|
|
145
|
+
register: (wrapper: ValidationWrapperInternal) => void;
|
|
146
|
+
unregister: (wrapper: ValidationWrapperInternal) => void;
|
|
147
|
+
instanceProcessBlur: (wrapper: ValidationWrapperInternal) => void;
|
|
148
|
+
onValidationUpdated: (wrapper: ValidationWrapperInternal, isValid: boolean) => void;
|
|
149
|
+
getSettings: () => ValidationContextSettings;
|
|
150
|
+
isAnyWrapperInChangingMode: () => boolean;
|
|
151
|
+
}
|
|
152
|
+
export const ValidationContext: React.Context<ValidationContextType>;
|
|
153
|
+
export class ValidationContextWrapper extends React.Component<ValidationContextWrapperProps> {
|
|
154
|
+
childWrappers: ValidationWrapperInternal[];
|
|
155
|
+
getSettings(): ValidationContextSettings;
|
|
156
|
+
register(wrapper: ValidationWrapperInternal): void;
|
|
157
|
+
unregister(wrapper: ValidationWrapperInternal): void;
|
|
158
|
+
instanceProcessBlur(instance: ValidationWrapperInternal): void;
|
|
159
|
+
onValidationUpdated(wrapper: ValidationWrapperInternal, isValid?: boolean): void;
|
|
160
|
+
isAnyWrapperInChangingMode(): boolean;
|
|
161
|
+
onValidationRemoved(): void;
|
|
162
|
+
getChildWrappersSortedByPosition(): ValidationWrapperInternal[];
|
|
163
|
+
validate(withoutFocus: boolean): Promise<boolean>;
|
|
164
|
+
render(): JSX.Element;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
180
168
|
declare module '@skbkontur/react-ui-validations/src/Validations' {
|
|
181
169
|
import { ValidationBuilder } from '@skbkontur/react-ui-validations/src/Validations/ValidationBuilder';
|
|
182
170
|
import { RootValidationRule, ValidationRule, ItemValidationRule } from '@skbkontur/react-ui-validations/src/Validations/Types';
|
package/index.js
CHANGED
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
|
-
var PropTypes = require('prop-types');
|
|
7
|
-
var ReactDom = require('react-dom');
|
|
8
6
|
var warning = require('warning');
|
|
9
7
|
|
|
10
8
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -192,19 +190,26 @@ var isReactUITestEnv = Boolean(REACT_UI_TEST) || // for cases when NODE_ENV is n
|
|
|
192
190
|
var isTestEnv = NODE_ENV === 'test' || isReactUITestEnv;
|
|
193
191
|
var isBrowser = typeof window !== 'undefined';
|
|
194
192
|
|
|
195
|
-
var ValidationContext =
|
|
196
|
-
|
|
197
|
-
function
|
|
193
|
+
var ValidationContext = React__default['default'].createContext({
|
|
194
|
+
register: function () { return undefined; },
|
|
195
|
+
unregister: function () { return undefined; },
|
|
196
|
+
instanceProcessBlur: function () { return undefined; },
|
|
197
|
+
onValidationUpdated: function () { return undefined; },
|
|
198
|
+
getSettings: function () { return ({
|
|
199
|
+
scrollOffset: {},
|
|
200
|
+
disableSmoothScroll: false,
|
|
201
|
+
}); },
|
|
202
|
+
isAnyWrapperInChangingMode: function () { return false; },
|
|
203
|
+
});
|
|
204
|
+
ValidationContext.displayName = 'ValidationContext';
|
|
205
|
+
var ValidationContextWrapper = /** @class */ (function (_super) {
|
|
206
|
+
__extends(ValidationContextWrapper, _super);
|
|
207
|
+
function ValidationContextWrapper() {
|
|
198
208
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
199
209
|
_this.childWrappers = [];
|
|
200
210
|
return _this;
|
|
201
211
|
}
|
|
202
|
-
|
|
203
|
-
return {
|
|
204
|
-
validationContext: this,
|
|
205
|
-
};
|
|
206
|
-
};
|
|
207
|
-
ValidationContext.prototype.getSettings = function () {
|
|
212
|
+
ValidationContextWrapper.prototype.getSettings = function () {
|
|
208
213
|
var scrollOffset = {};
|
|
209
214
|
if (typeof this.props.scrollOffset === 'number') {
|
|
210
215
|
scrollOffset = { top: this.props.scrollOffset };
|
|
@@ -221,20 +226,20 @@ var ValidationContext = /** @class */ (function (_super) {
|
|
|
221
226
|
disableSmoothScroll: this.props.disableSmoothScroll,
|
|
222
227
|
};
|
|
223
228
|
};
|
|
224
|
-
|
|
229
|
+
ValidationContextWrapper.prototype.register = function (wrapper) {
|
|
225
230
|
this.childWrappers.push(wrapper);
|
|
226
231
|
};
|
|
227
|
-
|
|
232
|
+
ValidationContextWrapper.prototype.unregister = function (wrapper) {
|
|
228
233
|
this.childWrappers.splice(this.childWrappers.indexOf(wrapper), 1);
|
|
229
234
|
this.onValidationRemoved();
|
|
230
235
|
};
|
|
231
|
-
|
|
236
|
+
ValidationContextWrapper.prototype.instanceProcessBlur = function (instance) {
|
|
232
237
|
for (var _i = 0, _a = this.childWrappers.filter(function (x) { return x !== instance && !x.isIndependent(); }); _i < _a.length; _i++) {
|
|
233
238
|
var wrapper = _a[_i];
|
|
234
239
|
wrapper.processBlur();
|
|
235
240
|
}
|
|
236
241
|
};
|
|
237
|
-
|
|
242
|
+
ValidationContextWrapper.prototype.onValidationUpdated = function (wrapper, isValid) {
|
|
238
243
|
var onValidationUpdated = this.props.onValidationUpdated;
|
|
239
244
|
if (onValidationUpdated) {
|
|
240
245
|
var isValidResult = !this.childWrappers.find(function (x) {
|
|
@@ -246,17 +251,17 @@ var ValidationContext = /** @class */ (function (_super) {
|
|
|
246
251
|
onValidationUpdated(isValidResult);
|
|
247
252
|
}
|
|
248
253
|
};
|
|
249
|
-
|
|
254
|
+
ValidationContextWrapper.prototype.isAnyWrapperInChangingMode = function () {
|
|
250
255
|
return this.childWrappers.some(function (x) { return x.isChanging; });
|
|
251
256
|
};
|
|
252
|
-
|
|
257
|
+
ValidationContextWrapper.prototype.onValidationRemoved = function () {
|
|
253
258
|
var onValidationUpdated = this.props.onValidationUpdated;
|
|
254
259
|
if (onValidationUpdated) {
|
|
255
260
|
var isValidResult = !this.childWrappers.find(function (x) { return x.hasError(); });
|
|
256
261
|
onValidationUpdated(isValidResult);
|
|
257
262
|
}
|
|
258
263
|
};
|
|
259
|
-
|
|
264
|
+
ValidationContextWrapper.prototype.getChildWrappersSortedByPosition = function () {
|
|
260
265
|
var wrappersWithPosition = __spreadArrays(this.childWrappers).map(function (x) { return ({
|
|
261
266
|
target: x,
|
|
262
267
|
position: x.getControlPosition(),
|
|
@@ -280,7 +285,7 @@ var ValidationContext = /** @class */ (function (_super) {
|
|
|
280
285
|
});
|
|
281
286
|
return wrappersWithPosition.map(function (x) { return x.target; });
|
|
282
287
|
};
|
|
283
|
-
|
|
288
|
+
ValidationContextWrapper.prototype.validate = function (withoutFocus) {
|
|
284
289
|
return __awaiter(this, void 0, void 0, function () {
|
|
285
290
|
var firstInvalid;
|
|
286
291
|
return __generator(this, function (_a) {
|
|
@@ -302,13 +307,11 @@ var ValidationContext = /** @class */ (function (_super) {
|
|
|
302
307
|
});
|
|
303
308
|
});
|
|
304
309
|
};
|
|
305
|
-
|
|
306
|
-
return React__default['default'].createElement(
|
|
310
|
+
ValidationContextWrapper.prototype.render = function () {
|
|
311
|
+
return (React__default['default'].createElement(ValidationContext.Provider, { value: this },
|
|
312
|
+
React__default['default'].createElement("span", null, this.props.children)));
|
|
307
313
|
};
|
|
308
|
-
|
|
309
|
-
validationContext: PropTypes.any,
|
|
310
|
-
};
|
|
311
|
-
return ValidationContext;
|
|
314
|
+
return ValidationContextWrapper;
|
|
312
315
|
}(React__default['default'].Component));
|
|
313
316
|
|
|
314
317
|
var ValidationContainer = /** @class */ (function (_super) {
|
|
@@ -344,7 +347,7 @@ var ValidationContainer = /** @class */ (function (_super) {
|
|
|
344
347
|
return this.childContext.validate(withoutFocus);
|
|
345
348
|
};
|
|
346
349
|
ValidationContainer.prototype.render = function () {
|
|
347
|
-
return (React__default['default'].createElement(
|
|
350
|
+
return (React__default['default'].createElement(ValidationContextWrapper, { ref: this.refChildContext, scrollOffset: this.props.scrollOffset, disableSmoothScroll: this.props.disableSmoothScroll, onValidationUpdated: this.props.onValidationUpdated }, this.props.children));
|
|
348
351
|
};
|
|
349
352
|
ValidationContainer.__KONTUR_REACT_UI__ = 'ValidationContainer';
|
|
350
353
|
ValidationContainer.defaultProps = {
|
|
@@ -550,25 +553,28 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
550
553
|
validation: null,
|
|
551
554
|
};
|
|
552
555
|
_this.isChanging = false;
|
|
556
|
+
_this.context = _this.context;
|
|
557
|
+
_this.setRootNode = function (element) {
|
|
558
|
+
_this.rootNode = element;
|
|
559
|
+
};
|
|
560
|
+
_this.getRootNode = function () {
|
|
561
|
+
return _this.rootNode;
|
|
562
|
+
};
|
|
553
563
|
return _this;
|
|
554
564
|
}
|
|
555
|
-
ValidationWrapperInternal.prototype.UNSAFE_componentWillMount = function () {
|
|
556
|
-
this.applyValidation(this.props.validation);
|
|
557
|
-
};
|
|
558
565
|
ValidationWrapperInternal.prototype.componentDidMount = function () {
|
|
559
|
-
warning__default['default'](this.context
|
|
566
|
+
warning__default['default'](this.context, 'ValidationWrapper should appears as child of ValidationContainer.\n' +
|
|
560
567
|
'https://tech.skbkontur.ru/react-ui-validations/#/getting-started');
|
|
561
|
-
if (this.context
|
|
562
|
-
this.context.
|
|
568
|
+
if (this.context) {
|
|
569
|
+
this.context.register(this);
|
|
563
570
|
}
|
|
571
|
+
this.applyValidation(this.props.validation);
|
|
564
572
|
};
|
|
565
573
|
ValidationWrapperInternal.prototype.componentWillUnmount = function () {
|
|
566
|
-
|
|
567
|
-
this.context.validationContext.unregister(this);
|
|
568
|
-
}
|
|
574
|
+
this.context.unregister(this);
|
|
569
575
|
};
|
|
570
|
-
ValidationWrapperInternal.prototype.
|
|
571
|
-
this.applyValidation(
|
|
576
|
+
ValidationWrapperInternal.prototype.componentDidUpdate = function () {
|
|
577
|
+
this.applyValidation(this.props.validation);
|
|
572
578
|
};
|
|
573
579
|
ValidationWrapperInternal.prototype.focus = function () {
|
|
574
580
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -576,9 +582,9 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
576
582
|
return __generator(this, function (_b) {
|
|
577
583
|
switch (_b.label) {
|
|
578
584
|
case 0:
|
|
579
|
-
htmlElement =
|
|
585
|
+
htmlElement = this.getRootNode();
|
|
580
586
|
if (!(htmlElement instanceof HTMLElement)) return [3 /*break*/, 3];
|
|
581
|
-
_a = this.context.
|
|
587
|
+
_a = this.context.getSettings(), disableSmoothScroll = _a.disableSmoothScroll, scrollOffset = _a.scrollOffset;
|
|
582
588
|
if (!!disableSmoothScroll) return [3 /*break*/, 2];
|
|
583
589
|
return [4 /*yield*/, smoothScrollIntoView(htmlElement, scrollOffset)];
|
|
584
590
|
case 1:
|
|
@@ -665,10 +671,10 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
665
671
|
},
|
|
666
672
|
});
|
|
667
673
|
}
|
|
668
|
-
return this.props.errorMessage(React__default['default'].createElement("span",
|
|
674
|
+
return this.props.errorMessage(React__default['default'].createElement("span", { ref: this.setRootNode }, clonedChild), !!validation, validation);
|
|
669
675
|
};
|
|
670
676
|
ValidationWrapperInternal.prototype.getControlPosition = function () {
|
|
671
|
-
var htmlElement =
|
|
677
|
+
var htmlElement = this.getRootNode();
|
|
672
678
|
if (htmlElement instanceof HTMLElement) {
|
|
673
679
|
var rect = htmlElement.getBoundingClientRect();
|
|
674
680
|
return { x: rect.top, y: rect.left };
|
|
@@ -700,7 +706,7 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
700
706
|
setTimeout(function () {
|
|
701
707
|
_this.processBlur();
|
|
702
708
|
if (!_this.isIndependent()) {
|
|
703
|
-
_this.context.
|
|
709
|
+
_this.context.instanceProcessBlur(_this);
|
|
704
710
|
}
|
|
705
711
|
_this.setState({});
|
|
706
712
|
});
|
|
@@ -718,7 +724,7 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
718
724
|
return new Promise(function (resolve) {
|
|
719
725
|
_this.setState({ validation: validation }, resolve);
|
|
720
726
|
if (Boolean(current) !== Boolean(validation)) {
|
|
721
|
-
_this.context.
|
|
727
|
+
_this.context.onValidationUpdated(_this, !validation);
|
|
722
728
|
}
|
|
723
729
|
});
|
|
724
730
|
};
|
|
@@ -735,12 +741,10 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
735
741
|
if (isEqual(visible, actual)) {
|
|
736
742
|
return visible;
|
|
737
743
|
}
|
|
738
|
-
var changing = this.context.
|
|
744
|
+
var changing = this.context.isAnyWrapperInChangingMode();
|
|
739
745
|
return getVisibleValidation(visible, actual, changing);
|
|
740
746
|
};
|
|
741
|
-
ValidationWrapperInternal.
|
|
742
|
-
validationContext: PropTypes.any,
|
|
743
|
-
};
|
|
747
|
+
ValidationWrapperInternal.contextType = ValidationContext;
|
|
744
748
|
return ValidationWrapperInternal;
|
|
745
749
|
}(React__default['default'].Component));
|
|
746
750
|
|
|
@@ -954,6 +958,7 @@ function createValidator(rule) {
|
|
|
954
958
|
exports.ValidationBuilder = ValidationBuilder;
|
|
955
959
|
exports.ValidationContainer = ValidationContainer;
|
|
956
960
|
exports.ValidationContext = ValidationContext;
|
|
961
|
+
exports.ValidationContextWrapper = ValidationContextWrapper;
|
|
957
962
|
exports.ValidationReader = ValidationReader;
|
|
958
963
|
exports.ValidationTooltip = ValidationTooltip;
|
|
959
964
|
exports.ValidationWrapper = ValidationWrapper;
|