@skbkontur/react-ui-validations 1.3.2 → 1.4.2-focus-warning
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/README.md +41 -41
- package/index.d.ts +3 -2
- package/index.js +67 -45
- package/package.json +2 -2
- package/CHANGELOG.md +0 -412
package/README.md
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
# react-ui-validations
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/react-ui-validations)
|
|
4
|
-
|
|
5
|
-
Набор компонентов, реализующих поведение [валидаций по Контур.Гайдам](https://guides.kontur.ru/principles/validation/).
|
|
6
|
-
|
|
7
|
-
## Документация
|
|
8
|
-
|
|
9
|
-
- [Docs & Demos](http://tech.skbkontur.ru/react-ui-validations/)
|
|
10
|
-
- [Validation guides](https://guides.kontur.ru/principles/validation/)
|
|
11
|
-
|
|
12
|
-
## Использование
|
|
13
|
-
|
|
14
|
-
```shell
|
|
15
|
-
npm install --save react-ui-validations
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
```jsx
|
|
19
|
-
import { ValidationContainer, ValidationWrapper } from 'react-ui-validations';
|
|
20
|
-
|
|
21
|
-
export default class DataEditor extends React.Component {
|
|
22
|
-
// ...
|
|
23
|
-
render() {
|
|
24
|
-
return (
|
|
25
|
-
<ValidationContainer>
|
|
26
|
-
<ValidationWrapper
|
|
27
|
-
validationInfo={/\d+/.test(phone) ? { message: 'Телефон должен состоять только из цифр' } : null}
|
|
28
|
-
>
|
|
29
|
-
<Input value={phone} onValueChange={value => setState({ phone: value })} />
|
|
30
|
-
</ValidationWrapper>
|
|
31
|
-
</ValidationContainer>
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Запуск примеров
|
|
38
|
-
|
|
39
|
-
```shell
|
|
40
|
-
yarn start:docs
|
|
41
|
-
```
|
|
1
|
+
# react-ui-validations
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/react-ui-validations)
|
|
4
|
+
|
|
5
|
+
Набор компонентов, реализующих поведение [валидаций по Контур.Гайдам](https://guides.kontur.ru/principles/validation/).
|
|
6
|
+
|
|
7
|
+
## Документация
|
|
8
|
+
|
|
9
|
+
- [Docs & Demos](http://tech.skbkontur.ru/react-ui-validations/)
|
|
10
|
+
- [Validation guides](https://guides.kontur.ru/principles/validation/)
|
|
11
|
+
|
|
12
|
+
## Использование
|
|
13
|
+
|
|
14
|
+
```shell
|
|
15
|
+
npm install --save react-ui-validations
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
```jsx
|
|
19
|
+
import { ValidationContainer, ValidationWrapper } from 'react-ui-validations';
|
|
20
|
+
|
|
21
|
+
export default class DataEditor extends React.Component {
|
|
22
|
+
// ...
|
|
23
|
+
render() {
|
|
24
|
+
return (
|
|
25
|
+
<ValidationContainer>
|
|
26
|
+
<ValidationWrapper
|
|
27
|
+
validationInfo={/\d+/.test(phone) ? { message: 'Телефон должен состоять только из цифр' } : null}
|
|
28
|
+
>
|
|
29
|
+
<Input value={phone} onValueChange={value => setState({ phone: value })} />
|
|
30
|
+
</ValidationWrapper>
|
|
31
|
+
</ValidationContainer>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Запуск примеров
|
|
38
|
+
|
|
39
|
+
```shell
|
|
40
|
+
yarn start:docs
|
|
41
|
+
```
|
package/index.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ declare module '@skbkontur/react-ui-validations/src/ValidationContainer' {
|
|
|
40
40
|
disableSmoothScroll: boolean;
|
|
41
41
|
};
|
|
42
42
|
static propTypes: {
|
|
43
|
-
scrollOffset(props: ValidationContainerProps, propName:
|
|
43
|
+
scrollOffset(props: ValidationContainerProps, propName: keyof ValidationContainerProps, componentName: string): Error | undefined;
|
|
44
44
|
};
|
|
45
45
|
submit(withoutFocus?: boolean): Promise<void>;
|
|
46
46
|
validate(withoutFocus?: boolean): Promise<boolean>;
|
|
@@ -145,11 +145,12 @@ declare module '@skbkontur/react-ui-validations/src/ValidationWrapperInternal' {
|
|
|
145
145
|
componentWillUnmount(): void;
|
|
146
146
|
UNSAFE_componentWillReceiveProps(nextProps: ValidationWrapperInternalProps): void;
|
|
147
147
|
focus(): Promise<void>;
|
|
148
|
-
render(): React.ReactElement<any, string | ((props: any) => React.ReactElement<any,
|
|
148
|
+
render(): React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)>;
|
|
149
149
|
getControlPosition(): Nullable<Point>;
|
|
150
150
|
processBlur(): Promise<void>;
|
|
151
151
|
processSubmit(): Promise<void>;
|
|
152
152
|
hasError(): boolean;
|
|
153
|
+
hasWarning(): boolean;
|
|
153
154
|
}
|
|
154
155
|
export {};
|
|
155
156
|
}
|
package/index.js
CHANGED
|
@@ -2,37 +2,42 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var React = _interopDefault(require('react'));
|
|
5
|
+
var React = require('react');
|
|
8
6
|
var PropTypes = require('prop-types');
|
|
9
7
|
var ReactDom = require('react-dom');
|
|
10
|
-
var warning =
|
|
8
|
+
var warning = require('warning');
|
|
9
|
+
|
|
10
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
|
+
|
|
12
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
13
|
+
var warning__default = /*#__PURE__*/_interopDefaultLegacy(warning);
|
|
11
14
|
|
|
12
15
|
/*! *****************************************************************************
|
|
13
|
-
Copyright (c) Microsoft Corporation.
|
|
14
|
-
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
15
|
-
this file except in compliance with the License. You may obtain a copy of the
|
|
16
|
-
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
+
Copyright (c) Microsoft Corporation.
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
21
|
-
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
18
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
19
|
+
purpose with or without fee is hereby granted.
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
22
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
23
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
24
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
25
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
26
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
27
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
25
28
|
***************************************************************************** */
|
|
26
29
|
/* global Reflect, Promise */
|
|
27
30
|
|
|
28
31
|
var extendStatics = function(d, b) {
|
|
29
32
|
extendStatics = Object.setPrototypeOf ||
|
|
30
33
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
31
|
-
function (d, b) { for (var p in b) if (
|
|
34
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
32
35
|
return extendStatics(d, b);
|
|
33
36
|
};
|
|
34
37
|
|
|
35
38
|
function __extends(d, b) {
|
|
39
|
+
if (typeof b !== "function" && b !== null)
|
|
40
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
36
41
|
extendStatics(d, b);
|
|
37
42
|
function __() { this.constructor = d; }
|
|
38
43
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
@@ -50,10 +55,11 @@ var __assign = function() {
|
|
|
50
55
|
};
|
|
51
56
|
|
|
52
57
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
58
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
53
59
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
54
60
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
55
61
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
56
|
-
function step(result) { result.done ? resolve(result.value) :
|
|
62
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
57
63
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
58
64
|
});
|
|
59
65
|
}
|
|
@@ -86,6 +92,7 @@ function __generator(thisArg, body) {
|
|
|
86
92
|
}
|
|
87
93
|
}
|
|
88
94
|
|
|
95
|
+
/** @deprecated */
|
|
89
96
|
function __spreadArrays() {
|
|
90
97
|
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
91
98
|
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
@@ -113,6 +120,10 @@ var ReactUiDetection = /** @class */ (function () {
|
|
|
113
120
|
var _a;
|
|
114
121
|
return childrenArray != null && ((_a = childrenArray.type) === null || _a === void 0 ? void 0 : _a.__KONTUR_REACT_UI__) === 'TokenInput';
|
|
115
122
|
};
|
|
123
|
+
ReactUiDetection.isSwitcher = function (childrenArray) {
|
|
124
|
+
var _a;
|
|
125
|
+
return childrenArray != null && ((_a = childrenArray.type) === null || _a === void 0 ? void 0 : _a.__KONTUR_REACT_UI__) === 'Switcher';
|
|
126
|
+
};
|
|
116
127
|
return ReactUiDetection;
|
|
117
128
|
}());
|
|
118
129
|
|
|
@@ -122,19 +133,21 @@ var ValidationTooltip = /** @class */ (function (_super) {
|
|
|
122
133
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
123
134
|
}
|
|
124
135
|
ValidationTooltip.prototype.render = function () {
|
|
125
|
-
var onlyChild =
|
|
136
|
+
var onlyChild = React__default['default'].Children.only(this.props.children);
|
|
126
137
|
var child = onlyChild && onlyChild.props ? onlyChild.props.children : null;
|
|
127
|
-
if (ReactUiDetection.isRadioGroup(child) ||
|
|
128
|
-
|
|
138
|
+
if (ReactUiDetection.isRadioGroup(child) ||
|
|
139
|
+
ReactUiDetection.isTokenInput(child) ||
|
|
140
|
+
ReactUiDetection.isSwitcher(child)) {
|
|
141
|
+
return (React__default['default'].createElement(Tooltip, { useWrapper: false, pos: this.props.pos, render: this.props.error && this.props.render, trigger: 'hover&focus' }, child));
|
|
129
142
|
}
|
|
130
|
-
return (
|
|
143
|
+
return (React__default['default'].createElement(Tooltip, { pos: this.props.pos, render: this.props.error && this.props.render, trigger: 'hover&focus' }, this.props.children));
|
|
131
144
|
};
|
|
132
145
|
return ValidationTooltip;
|
|
133
|
-
}(
|
|
146
|
+
}(React__default['default'].Component));
|
|
134
147
|
|
|
135
148
|
function tooltip(pos) {
|
|
136
149
|
return function (control, hasError, validation) {
|
|
137
|
-
return (
|
|
150
|
+
return (React__default['default'].createElement(ValidationTooltip, { pos: pos, error: hasError, render: function () {
|
|
138
151
|
if (!validation || !validation.message) {
|
|
139
152
|
return null;
|
|
140
153
|
}
|
|
@@ -146,16 +159,16 @@ function text(pos) {
|
|
|
146
159
|
if (pos === void 0) { pos = 'right'; }
|
|
147
160
|
if (pos === 'right') {
|
|
148
161
|
return function (control, hasError, validation) {
|
|
149
|
-
return (
|
|
162
|
+
return (React__default['default'].createElement("span", { style: { display: 'inline-block' } },
|
|
150
163
|
control,
|
|
151
|
-
|
|
164
|
+
React__default['default'].createElement("span", { "data-validation-message": "text", style: { marginLeft: '10px', color: '#d43517' } }, (validation && validation.message) || '')));
|
|
152
165
|
};
|
|
153
166
|
}
|
|
154
167
|
return function (control, hasError, validation) {
|
|
155
|
-
return (
|
|
168
|
+
return (React__default['default'].createElement("span", { style: { position: 'relative', display: 'inline-block' } },
|
|
156
169
|
control,
|
|
157
|
-
|
|
158
|
-
|
|
170
|
+
React__default['default'].createElement("span", { style: { position: 'absolute', bottom: 0, left: 0, height: 0 } },
|
|
171
|
+
React__default['default'].createElement("span", { "data-validation-message": "text", style: {
|
|
159
172
|
color: '#d43517',
|
|
160
173
|
overflow: 'visible',
|
|
161
174
|
whiteSpace: 'nowrap',
|
|
@@ -262,7 +275,7 @@ var ValidationContext = /** @class */ (function (_super) {
|
|
|
262
275
|
case 0: return [4 /*yield*/, Promise.all(this.childWrappers.map(function (x) { return x.processSubmit(); }))];
|
|
263
276
|
case 1:
|
|
264
277
|
_a.sent();
|
|
265
|
-
firstInvalid = this.getChildWrappersSortedByPosition().find(function (x) { return x.hasError(); });
|
|
278
|
+
firstInvalid = this.getChildWrappersSortedByPosition().find(function (x) { return x.hasError() || x.hasWarning(); });
|
|
266
279
|
if (firstInvalid) {
|
|
267
280
|
if (!withoutFocus) {
|
|
268
281
|
firstInvalid.focus();
|
|
@@ -277,13 +290,13 @@ var ValidationContext = /** @class */ (function (_super) {
|
|
|
277
290
|
});
|
|
278
291
|
};
|
|
279
292
|
ValidationContext.prototype.render = function () {
|
|
280
|
-
return
|
|
293
|
+
return React__default['default'].createElement("span", null, this.props.children);
|
|
281
294
|
};
|
|
282
295
|
ValidationContext.childContextTypes = {
|
|
283
296
|
validationContext: PropTypes.any,
|
|
284
297
|
};
|
|
285
298
|
return ValidationContext;
|
|
286
|
-
}(
|
|
299
|
+
}(React__default['default'].Component));
|
|
287
300
|
|
|
288
301
|
var ValidationContainer = /** @class */ (function (_super) {
|
|
289
302
|
__extends(ValidationContainer, _super);
|
|
@@ -318,7 +331,7 @@ var ValidationContainer = /** @class */ (function (_super) {
|
|
|
318
331
|
return this.childContext.validate(withoutFocus);
|
|
319
332
|
};
|
|
320
333
|
ValidationContainer.prototype.render = function () {
|
|
321
|
-
return (
|
|
334
|
+
return (React__default['default'].createElement(ValidationContext, { ref: this.refChildContext, scrollOffset: this.props.scrollOffset, disableSmoothScroll: this.props.disableSmoothScroll, onValidationUpdated: this.props.onValidationUpdated }, this.props.children));
|
|
322
335
|
};
|
|
323
336
|
ValidationContainer.__KONTUR_REACT_UI__ = 'ValidationContainer';
|
|
324
337
|
ValidationContainer.defaultProps = {
|
|
@@ -333,7 +346,9 @@ var ValidationContainer = /** @class */ (function (_super) {
|
|
|
333
346
|
},
|
|
334
347
|
};
|
|
335
348
|
return ValidationContainer;
|
|
336
|
-
}(
|
|
349
|
+
}(React__default['default'].Component));
|
|
350
|
+
|
|
351
|
+
var isBrowser = typeof window !== 'undefined';
|
|
337
352
|
|
|
338
353
|
function smoothScrollIntoView(element, scrollOffset) {
|
|
339
354
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -424,10 +439,14 @@ function step(context) {
|
|
|
424
439
|
}
|
|
425
440
|
}
|
|
426
441
|
var ScrollTime = 468;
|
|
427
|
-
var scrollWindow =
|
|
428
|
-
?
|
|
429
|
-
|
|
430
|
-
|
|
442
|
+
var scrollWindow = isBrowser
|
|
443
|
+
? typeof window.scroll === 'function'
|
|
444
|
+
? function (_, x, y) { return window.scroll(x, y); }
|
|
445
|
+
: function (_, x, y) { return window.scrollTo(x, y); }
|
|
446
|
+
: function () { return undefined; };
|
|
447
|
+
var now = isBrowser && window.performance && window.performance.now
|
|
448
|
+
? window.performance.now.bind(window.performance)
|
|
449
|
+
: Date.now;
|
|
431
450
|
function scrollElement(element, x, y) {
|
|
432
451
|
element.scrollLeft = x;
|
|
433
452
|
element.scrollTop = y;
|
|
@@ -497,7 +516,7 @@ function isEqual(a, b) {
|
|
|
497
516
|
return !!a && !!b && a.behaviour === b.behaviour && a.level === a.level && a.message === b.message;
|
|
498
517
|
}
|
|
499
518
|
|
|
500
|
-
if (typeof HTMLElement === 'undefined') {
|
|
519
|
+
if (isBrowser && typeof HTMLElement === 'undefined') {
|
|
501
520
|
var w = window;
|
|
502
521
|
w.HTMLElement = w.Element;
|
|
503
522
|
}
|
|
@@ -515,7 +534,7 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
515
534
|
this.applyValidation(this.props.validation);
|
|
516
535
|
};
|
|
517
536
|
ValidationWrapperInternal.prototype.componentDidMount = function () {
|
|
518
|
-
|
|
537
|
+
warning__default['default'](this.context.validationContext, 'ValidationWrapper should appears as child of ValidationContext.\n' +
|
|
519
538
|
'http://tech.skbkontur.ru/react-ui-validations/#/getting-started');
|
|
520
539
|
if (this.context.validationContext) {
|
|
521
540
|
this.context.validationContext.register(this);
|
|
@@ -559,7 +578,7 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
559
578
|
var _this = this;
|
|
560
579
|
var children = this.props.children;
|
|
561
580
|
var validation = this.state.validation;
|
|
562
|
-
var clonedChild = children ? (
|
|
581
|
+
var clonedChild = children ? (React__default['default'].cloneElement(children, {
|
|
563
582
|
ref: function (x) {
|
|
564
583
|
var child = children; // todo type or maybe React.Children.only
|
|
565
584
|
if (child && child.ref) {
|
|
@@ -607,8 +626,8 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
607
626
|
(_a = children.props).onValueChange.apply(_a, args);
|
|
608
627
|
}
|
|
609
628
|
},
|
|
610
|
-
})) : (
|
|
611
|
-
return this.props.errorMessage(
|
|
629
|
+
})) : (React__default['default'].createElement("span", null));
|
|
630
|
+
return this.props.errorMessage(React__default['default'].createElement("span", null, clonedChild), !!validation, validation);
|
|
612
631
|
};
|
|
613
632
|
ValidationWrapperInternal.prototype.getControlPosition = function () {
|
|
614
633
|
var htmlElement = ReactDom.findDOMNode(this);
|
|
@@ -635,6 +654,9 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
635
654
|
ValidationWrapperInternal.prototype.hasError = function () {
|
|
636
655
|
return getLevel(this.state.validation) === 'error';
|
|
637
656
|
};
|
|
657
|
+
ValidationWrapperInternal.prototype.hasWarning = function () {
|
|
658
|
+
return getLevel(this.state.validation) === 'warning';
|
|
659
|
+
};
|
|
638
660
|
ValidationWrapperInternal.prototype.handleBlur = function () {
|
|
639
661
|
this.processBlur();
|
|
640
662
|
this.context.validationContext.instanceProcessBlur(this);
|
|
@@ -677,7 +699,7 @@ var ValidationWrapperInternal = /** @class */ (function (_super) {
|
|
|
677
699
|
validationContext: PropTypes.any,
|
|
678
700
|
};
|
|
679
701
|
return ValidationWrapperInternal;
|
|
680
|
-
}(
|
|
702
|
+
}(React__default['default'].Component));
|
|
681
703
|
|
|
682
704
|
var ValidationWrapper = /** @class */ (function (_super) {
|
|
683
705
|
__extends(ValidationWrapper, _super);
|
|
@@ -693,11 +715,11 @@ var ValidationWrapper = /** @class */ (function (_super) {
|
|
|
693
715
|
message: validationInfo.message,
|
|
694
716
|
}
|
|
695
717
|
: null;
|
|
696
|
-
return (
|
|
718
|
+
return (React__default['default'].createElement(ValidationWrapperInternal, { errorMessage: renderMessage || tooltip('right top'), validation: validation }, children));
|
|
697
719
|
};
|
|
698
720
|
ValidationWrapper.__KONTUR_REACT_UI__ = 'ValidationWrapper';
|
|
699
721
|
return ValidationWrapper;
|
|
700
|
-
}(
|
|
722
|
+
}(React__default['default'].Component));
|
|
701
723
|
|
|
702
724
|
var ValidationBuilder = /** @class */ (function () {
|
|
703
725
|
function ValidationBuilder(writer, tokens, path, data) {
|
|
@@ -858,7 +880,7 @@ var PathTokensCache = /** @class */ (function () {
|
|
|
858
880
|
get: function () {
|
|
859
881
|
return this.cache.size;
|
|
860
882
|
},
|
|
861
|
-
enumerable:
|
|
883
|
+
enumerable: false,
|
|
862
884
|
configurable: true
|
|
863
885
|
});
|
|
864
886
|
return PathTokensCache;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skbkontur/react-ui-validations",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.2-focus-warning",
|
|
4
4
|
"description": "Validations for @skbkontur/react-ui",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -55,4 +55,4 @@
|
|
|
55
55
|
"node"
|
|
56
56
|
]
|
|
57
57
|
}
|
|
58
|
-
}
|
|
58
|
+
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,412 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
-
|
|
6
|
-
## [1.3.2](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.3.1...react-ui-validations@1.3.2) (2020-12-17)
|
|
7
|
-
|
|
8
|
-
**Note:** Version bump only for package react-ui-validations
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## [1.3.1](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.3.0...react-ui-validations@1.3.1) (2020-12-03)
|
|
15
|
-
|
|
16
|
-
**Note:** Version bump only for package react-ui-validations
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
# [1.3.0](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.2.0...react-ui-validations@1.3.0) (2020-10-13)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
### Bug Fixes
|
|
26
|
-
|
|
27
|
-
* **validations:** give up dynamic require, fix codesandbox compatibility ([6e00f39](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/6e00f392c5d86756cbe9a83094dbc274261d1584)), closes [#2151](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/2151) [#2039](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/2039)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
### Features
|
|
31
|
-
|
|
32
|
-
* **validations:** optimize ReactUiDetection, inc min react-ui to 0.53.7 ([df4deaa](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/df4deaad013db5ad8aac09aa99dd3326b93d17b2)), closes [#2150](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/2150)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
# [1.2.0](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.1.5...react-ui-validations@1.2.0) (2020-08-07)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
### Features
|
|
43
|
-
|
|
44
|
-
* **ValidationContainer:** added new prop disableSmoothScroll ([ecf75fd](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/ecf75fdabd2c0dc15cc293d74b1fde28a72d4e81))
|
|
45
|
-
* **ValidationContainer:** disable smooth scroll in test env ([8a7825c](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/8a7825c2cf16cc804a0dcd3bd63c35ecc36e74c3))
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
## [1.1.5](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.1.4...react-ui-validations@1.1.5) (2020-04-29)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
### Bug Fixes
|
|
55
|
-
|
|
56
|
-
* **tokeninput:** tooltip position of validation ([f9aa9b4](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/f9aa9b4cc7c7e8eac0f8cc6cb48e38291b7b0346))
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
## [1.1.4](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.1.3...react-ui-validations@1.1.4) (2020-04-07)
|
|
63
|
-
|
|
64
|
-
**Note:** Version bump only for package react-ui-validations
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
## [1.1.3](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.1.2...react-ui-validations@1.1.3) (2020-03-24)
|
|
71
|
-
|
|
72
|
-
**Note:** Version bump only for package react-ui-validations
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
## [1.1.2](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.1.1...react-ui-validations@1.1.2) (2020-03-11)
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
### Bug Fixes
|
|
82
|
-
|
|
83
|
-
* add recursive non nullable typing for LambdaPath ([#1893](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/1893)) ([6ea16cb](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/6ea16cb))
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
## [1.1.1](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.1.0...react-ui-validations@1.1.1) (2020-02-06)
|
|
90
|
-
|
|
91
|
-
**Note:** Version bump only for package react-ui-validations
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
# [1.1.0](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.0.8...react-ui-validations@1.1.0) (2020-01-20)
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
### Features
|
|
101
|
-
|
|
102
|
-
* **telemetry:** add field for identifying components ([b7fec03](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/b7fec03)), closes [#1838](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/1838)
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
## [1.0.8](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.0.7...react-ui-validations@1.0.8) (2019-12-27)
|
|
109
|
-
|
|
110
|
-
**Note:** Version bump only for package react-ui-validations
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
## [1.0.7](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.0.6...react-ui-validations@1.0.7) (2019-12-02)
|
|
117
|
-
|
|
118
|
-
**Note:** Version bump only for package react-ui-validations
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
## [1.0.6](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.0.5...react-ui-validations@1.0.6) (2019-11-18)
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
### Bug Fixes
|
|
128
|
-
|
|
129
|
-
* **ValidationTooltip:** detection radiogroup, add inline-block wrapper ([b65227d](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/b65227d)), closes [#1616](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/1616)
|
|
130
|
-
* **ValidationWrapperInternal:** pass down focus event ([8cfc707](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/8cfc707)), closes [#1735](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/1735)
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
## [1.0.5](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.0.4...react-ui-validations@1.0.5) (2019-10-30)
|
|
137
|
-
|
|
138
|
-
**Note:** Version bump only for package react-ui-validations
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
## [1.0.4](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.0.3...react-ui-validations@1.0.4) (2019-10-02)
|
|
145
|
-
|
|
146
|
-
**Note:** Version bump only for package react-ui-validations
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
## [1.0.3](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.0.2...react-ui-validations@1.0.3) (2019-09-11)
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
### Bug Fixes
|
|
156
|
-
|
|
157
|
-
* don't copy source code into publishing package ([3a5e49f](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/3a5e49f))
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
## [1.0.2](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.0.1...react-ui-validations@1.0.2) (2019-09-03)
|
|
164
|
-
|
|
165
|
-
**Note:** Version bump only for package react-ui-validations
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
## [1.0.1](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@1.0.0...react-ui-validations@1.0.1) (2019-07-02)
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
### Features
|
|
175
|
-
|
|
176
|
-
* Customization ([#1333](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/1333)) ([15e9e8f](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/15e9e8f))
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
### BREAKING CHANGES
|
|
180
|
-
|
|
181
|
-
* Upgrades.enableSizeMedium16px is no longer working: redefine fontSizeMedium
|
|
182
|
-
variable via ThemeProvider or by calling ThemeFactory.overrideDefaultTheme()
|
|
183
|
-
|
|
184
|
-
* refactor(ColorObject): remove require call
|
|
185
|
-
|
|
186
|
-
* style(Upgrades): fix lint error
|
|
187
|
-
|
|
188
|
-
* chore(storybook): use ThemeProvider instead of overrideDefaultTheme
|
|
189
|
-
|
|
190
|
-
* refactor(ThemeFactory): remove ThemesCache
|
|
191
|
-
|
|
192
|
-
* refactor(ThemeEditor): clear timeout on unmount
|
|
193
|
-
|
|
194
|
-
* refactor(variables.less): prepare for Date* controls convertion
|
|
195
|
-
|
|
196
|
-
* feat(DateSelect): customize with css-in-js
|
|
197
|
-
|
|
198
|
-
* refactor(DatePickerOld): rename less file to prevent confusion
|
|
199
|
-
|
|
200
|
-
* feat(DatePicker): customize with css-in-js
|
|
201
|
-
|
|
202
|
-
* refactor(DateInput): properly separate styles between components
|
|
203
|
-
|
|
204
|
-
* feat(DateInput): customize with css-in-js
|
|
205
|
-
|
|
206
|
-
* feat(Calendar): customize with css-in-js
|
|
207
|
-
|
|
208
|
-
* refactor(TokenInput): add -webkit-text-fill-color
|
|
209
|
-
|
|
210
|
-
* refactor(styles): remove rt-ie8, rt-ie9
|
|
211
|
-
|
|
212
|
-
* refactor(Calendar): rename classnames to cx
|
|
213
|
-
|
|
214
|
-
* refactor(variables.less): move mixins into separate file
|
|
215
|
-
|
|
216
|
-
* style(CustomComboBox): specify px for padding-bottom
|
|
217
|
-
|
|
218
|
-
* style(SidePage): fix variable typo
|
|
219
|
-
|
|
220
|
-
* refactor(styles): remove unnecessary imports
|
|
221
|
-
|
|
222
|
-
* refactor(FormatSourceCode): rewrite code in more readable way
|
|
223
|
-
|
|
224
|
-
* test(ComboBoxView): approve screens with new spinner gray color
|
|
225
|
-
|
|
226
|
-
* fix(Button): fix sizeMedium baseline regress
|
|
227
|
-
|
|
228
|
-
* test(Button): approve screenshots with 14px medium font-size
|
|
229
|
-
|
|
230
|
-
* test(ComboBox): approve darker spinner color while loading items
|
|
231
|
-
|
|
232
|
-
* refactor(TokenInput): simplify styles
|
|
233
|
-
|
|
234
|
-
* refactor(TokenInput): fix firefox placeholder opacity
|
|
235
|
-
|
|
236
|
-
* refactor(DateSelect): make active prevail over selected
|
|
237
|
-
|
|
238
|
-
* refactor(DatePicker): fix red color bug
|
|
239
|
-
|
|
240
|
-
* refactor(DatePicker): make weekend prevail over today
|
|
241
|
-
|
|
242
|
-
* refactor(DateFragmentsView): fix .delimiter.filled combination style
|
|
243
|
-
|
|
244
|
-
* style(AnotherInputsPlayground): remove underscores from private methods
|
|
245
|
-
|
|
246
|
-
* test(AnotherInputsPlayground): stable date for screenshots
|
|
247
|
-
|
|
248
|
-
* test(Customization): approve actual screenshots
|
|
249
|
-
|
|
250
|
-
* refactor(customization): separate ThemeProviderPlayground component
|
|
251
|
-
|
|
252
|
-
* docs(ThemeProviderPlayground ): add README
|
|
253
|
-
|
|
254
|
-
* docs(customization): add core README
|
|
255
|
-
|
|
256
|
-
# copied from PR
|
|
257
|
-
|
|
258
|
-
* build(styleguide): add customization section to config
|
|
259
|
-
|
|
260
|
-
* chore(ThemeProviderPlayground): fix import
|
|
261
|
-
|
|
262
|
-
* test(Button): approve 14px font-size for medium size in flat theme
|
|
263
|
-
|
|
264
|
-
* refactor(customization): introduce derived font sizes for button/input
|
|
265
|
-
|
|
266
|
-
* refactor(Button): use fontSize=16px for size=medium in flat theme
|
|
267
|
-
|
|
268
|
-
* test(Button): approve 16px font-size for medium size in flat theme
|
|
269
|
-
|
|
270
|
-
* test(Customization): approve 16px font-size in flat theme
|
|
271
|
-
|
|
272
|
-
* refactor(DateInput): remove isSizeMedium16pxEnabled() in favor of theme
|
|
273
|
-
|
|
274
|
-
* refactor(Upgrades): cleanup deprecated methods
|
|
275
|
-
|
|
276
|
-
* docs(customization): fix styleguide's components and sections
|
|
277
|
-
|
|
278
|
-
* docs(customization): hack-fix ordered lists
|
|
279
|
-
|
|
280
|
-
* docs(customization): remove broken links
|
|
281
|
-
|
|
282
|
-
* docs(customization): fix less formatting
|
|
283
|
-
|
|
284
|
-
* docs(customization): add some line-breaks
|
|
285
|
-
|
|
286
|
-
* docs(customization): emphasize inline <code> the way it's done at github
|
|
287
|
-
|
|
288
|
-
* docs(customization): switch 'jsx static' to 'typescript' for some blocks
|
|
289
|
-
|
|
290
|
-
* docs(customization): use monospace font for inline <code>
|
|
291
|
-
|
|
292
|
-
* chore(Button): fix baseline of flat medium Button
|
|
293
|
-
|
|
294
|
-
* docs(customization): fix typo
|
|
295
|
-
|
|
296
|
-
* style: format with prettier
|
|
297
|
-
|
|
298
|
-
* style: make stylelint ignore *.ts
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
# [1.0.0](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@0.9.1...react-ui-validations@1.0.0) (2019-07-02)
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
### Bug Fixes
|
|
308
|
-
|
|
309
|
-
* **react-ui-validations:** tooltip improvements ([278debf](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/278debf)), closes [#1138](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/1138) [#1102](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/1102)
|
|
310
|
-
* **ValidationWrapper:** lostfocus tooltip behaviour ([be4e355](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/be4e355)), closes [#1428](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/issues/1428)
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
### Code Refactoring
|
|
314
|
-
|
|
315
|
-
* **ValidationWrapper:** simplify ([0b3f630](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/0b3f630))
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
### BREAKING CHANGES
|
|
319
|
-
|
|
320
|
-
* **ValidationWrapper:** ValidationWrapper api changed
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
## [0.9.1](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@0.9.0...react-ui-validations@0.9.1) (2019-06-04)
|
|
327
|
-
|
|
328
|
-
**Note:** Version bump only for package react-ui-validations
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
# [0.9.0](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@0.8.1...react-ui-validations@0.9.0) (2019-05-28)
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
### Features
|
|
338
|
-
|
|
339
|
-
* **react-ui-validations:** declarative validation description ([18416c7](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/18416c7))
|
|
340
|
-
* **react-ui-validations:** docs rework ([ec76425](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/ec76425))
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
## [0.8.1](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@0.8.0...react-ui-validations@0.8.1) (2019-04-16)
|
|
347
|
-
|
|
348
|
-
**Note:** Version bump only for package react-ui-validations
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
# [0.8.0](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@0.7.3...react-ui-validations@0.8.0) (2019-04-08)
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
### Features
|
|
358
|
-
|
|
359
|
-
* **ValidationContainer:** add top, bottom, scroll offset ([b43df32](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/commit/b43df32))
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
## [0.7.3](https://github.com/skbkontur/retail-ui/tree/master/packages/react-ui-validations/compare/react-ui-validations@0.7.2...react-ui-validations@0.7.3) (2019-04-01)
|
|
366
|
-
|
|
367
|
-
**Note:** Version bump only for package react-ui-validations
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
## [0.7.2](https://github.com/skbkontur/retail-ui/compare/react-ui-validations@0.7.1...react-ui-validations@0.7.2) (2019-03-26)
|
|
374
|
-
|
|
375
|
-
**Note:** Version bump only for package react-ui-validations
|
|
376
|
-
|
|
377
|
-
## 0.7.1 (2019-03-26)
|
|
378
|
-
|
|
379
|
-
### Bug Fixes
|
|
380
|
-
|
|
381
|
-
- **ComboBoxOld:** bring typings back ([65d26cd](https://github.com/skbkontur/retail-ui/commit/65d26cd))
|
|
382
|
-
- **ValidationWrapper:** scroll to element even if child ref is empty ([58ad2fc](https://github.com/skbkontur/retail-ui/commit/58ad2fc))
|
|
383
|
-
- **ValidationWrapper:** support different refs ([#1243](https://github.com/skbkontur/retail-ui/issues/1243)) ([b63038a](https://github.com/skbkontur/retail-ui/commit/b63038a))
|
|
384
|
-
|
|
385
|
-
v0.2.15
|
|
386
|
-
|
|
387
|
-
- Добавлены тайпинги для Typescript
|
|
388
|
-
- Сборка скриптов через rollup
|
|
389
|
-
|
|
390
|
-
v0.2.13
|
|
391
|
-
|
|
392
|
-
- [Fix] Исправление скроллинга в маленьких модальных окнах
|
|
393
|
-
|
|
394
|
-
v0.2.10
|
|
395
|
-
|
|
396
|
-
- [Fix] Починен HTMLElement polyfill для IE8
|
|
397
|
-
|
|
398
|
-
v0.2.9
|
|
399
|
-
|
|
400
|
-
- [Fix] Удалены лишние onValidationUpdated
|
|
401
|
-
|
|
402
|
-
v0.2.7
|
|
403
|
-
|
|
404
|
-
- [Fix] Корректная работа валидация для `DatePicker` (#12)
|
|
405
|
-
- [Fix] Исправлена проблема производительности для некоторых случаев (thx to @mr146)
|
|
406
|
-
- [Fix] Понятное сообщение если Wrapper вне контекса валидаций (#8)
|
|
407
|
-
- [Fix] Исправление для IE8: HTMLElement polyfill (#13, thx to @Frumcheg)
|
|
408
|
-
|
|
409
|
-
v0.2.5
|
|
410
|
-
|
|
411
|
-
- Используем [prop-types]
|
|
412
|
-
- [Fix] Возможность прокрутки к элементу, у которого нет метода `focus`
|