@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 CHANGED
@@ -1,41 +1,41 @@
1
- # react-ui-validations
2
-
3
- [![npm](https://img.shields.io/npm/v/react-ui-validations.svg?maxAge=300&style=flat-square)](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
+ [![npm](https://img.shields.io/npm/v/react-ui-validations.svg?maxAge=300&style=flat-square)](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: "children" | "onValidationUpdated" | "scrollOffset" | "disableSmoothScroll", componentName: string): Error | undefined;
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, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, 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
- function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
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 = _interopDefault(require('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. All rights reserved.
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
- THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19
- KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
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
- See the Apache Version 2.0 License for specific language governing permissions
24
- and limitations under the License.
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 (b.hasOwnProperty(p)) d[p] = b[p]; };
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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
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 = React.Children.only(this.props.children);
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) || ReactUiDetection.isTokenInput(child)) {
128
- return (React.createElement(Tooltip, { useWrapper: false, pos: this.props.pos, render: this.props.error && this.props.render, trigger: 'hover&focus' }, child));
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 (React.createElement(Tooltip, { pos: this.props.pos, render: this.props.error && this.props.render, trigger: 'hover&focus' }, this.props.children));
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
- }(React.Component));
146
+ }(React__default['default'].Component));
134
147
 
135
148
  function tooltip(pos) {
136
149
  return function (control, hasError, validation) {
137
- return (React.createElement(ValidationTooltip, { pos: pos, error: hasError, render: function () {
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 (React.createElement("span", { style: { display: 'inline-block' } },
162
+ return (React__default['default'].createElement("span", { style: { display: 'inline-block' } },
150
163
  control,
151
- React.createElement("span", { "data-validation-message": "text", style: { marginLeft: '10px', color: '#d43517' } }, (validation && validation.message) || '')));
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 (React.createElement("span", { style: { position: 'relative', display: 'inline-block' } },
168
+ return (React__default['default'].createElement("span", { style: { position: 'relative', display: 'inline-block' } },
156
169
  control,
157
- React.createElement("span", { style: { position: 'absolute', bottom: 0, left: 0, height: 0 } },
158
- React.createElement("span", { "data-validation-message": "text", style: {
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 React.createElement("span", null, this.props.children);
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
- }(React.Component));
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 (React.createElement(ValidationContext, { ref: this.refChildContext, scrollOffset: this.props.scrollOffset, disableSmoothScroll: this.props.disableSmoothScroll, onValidationUpdated: this.props.onValidationUpdated }, this.props.children));
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
- }(React.Component));
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 = typeof window.scroll === 'function'
428
- ? function (_, x, y) { return window.scroll(x, y); }
429
- : function (_, x, y) { return window.scrollTo(x, y); };
430
- var now = window.performance && window.performance.now ? window.performance.now.bind(window.performance) : Date.now;
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
- warning(this.context.validationContext, 'ValidationWrapper should appears as child of ValidationContext.\n' +
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 ? (React.cloneElement(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
- })) : (React.createElement("span", null));
611
- return this.props.errorMessage(React.createElement("span", null, clonedChild), !!validation, validation);
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
- }(React.Component));
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 (React.createElement(ValidationWrapperInternal, { errorMessage: renderMessage || tooltip('right top'), validation: validation }, children));
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
- }(React.Component));
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: true,
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.2",
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`