@taiga-ui/kit 2.53.0 → 2.54.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.
Files changed (41) hide show
  1. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +32 -4
  2. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  3. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js +1 -1
  4. package/bundles/taiga-ui-kit-components-line-clamp.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-kit-components-slider.umd.js +12 -1
  6. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-slider.umd.min.js +1 -1
  8. package/bundles/taiga-ui-kit-components-slider.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-tabs.umd.js +1 -1
  10. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
  11. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  12. package/components/line-clamp/index.d.ts +1 -0
  13. package/components/line-clamp/line-clamp-options.d.ts +7 -0
  14. package/components/line-clamp/line-clamp.component.d.ts +8 -3
  15. package/components/line-clamp/taiga-ui-kit-components-line-clamp.metadata.json +1 -1
  16. package/components/slider/slider.component.d.ts +1 -0
  17. package/components/slider/taiga-ui-kit-components-slider.metadata.json +1 -1
  18. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  19. package/esm2015/components/line-clamp/index.js +2 -1
  20. package/esm2015/components/line-clamp/line-clamp-options.js +12 -0
  21. package/esm2015/components/line-clamp/line-clamp.component.js +23 -8
  22. package/esm2015/components/slider/slider-key-steps.directive.js +2 -1
  23. package/esm2015/components/slider/slider.component.js +12 -2
  24. package/esm2015/components/tabs/tab/tab.component.js +1 -1
  25. package/esm5/components/line-clamp/index.js +2 -1
  26. package/esm5/components/line-clamp/line-clamp-options.js +13 -0
  27. package/esm5/components/line-clamp/line-clamp.component.js +23 -8
  28. package/esm5/components/slider/slider-key-steps.directive.js +2 -1
  29. package/esm5/components/slider/slider.component.js +12 -2
  30. package/esm5/components/tabs/tab/tab.component.js +1 -1
  31. package/fesm2015/taiga-ui-kit-components-line-clamp.js +33 -8
  32. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  33. package/fesm2015/taiga-ui-kit-components-slider.js +12 -1
  34. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  35. package/fesm2015/taiga-ui-kit-components-tabs.js +1 -1
  36. package/fesm5/taiga-ui-kit-components-line-clamp.js +34 -9
  37. package/fesm5/taiga-ui-kit-components-line-clamp.js.map +1 -1
  38. package/fesm5/taiga-ui-kit-components-slider.js +12 -1
  39. package/fesm5/taiga-ui-kit-components-slider.js.map +1 -1
  40. package/fesm5/taiga-ui-kit-components-tabs.js +1 -1
  41. package/package.json +5 -5
@@ -1,3 +1,4 @@
1
1
  export * from './line-clamp.component';
2
2
  export * from './line-clamp.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbGluZS1jbGFtcC8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGluZS1jbGFtcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saW5lLWNsYW1wLm1vZHVsZSc7XG4iXX0=
3
+ export * from './line-clamp-options';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbGluZS1jbGFtcC8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saW5lLWNsYW1wLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpbmUtY2xhbXAubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGluZS1jbGFtcC1vcHRpb25zJztcbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { __assign } from "tslib";
2
+ import { InjectionToken } from '@angular/core';
3
+ export var TUI_LINE_CLAMP_DEFAULT_OPTIONS = {
4
+ showHint: true,
5
+ };
6
+ export var TUI_LINE_CLAMP_OPTIONS = new InjectionToken('Default parameters for line-clamp component', {
7
+ factory: function () { return TUI_LINE_CLAMP_DEFAULT_OPTIONS; },
8
+ });
9
+ export var tuiLineClampOptionsProvider = function (options) { return ({
10
+ provide: TUI_LINE_CLAMP_OPTIONS,
11
+ useValue: __assign(__assign({}, TUI_LINE_CLAMP_DEFAULT_OPTIONS), options),
12
+ }); };
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jbGFtcC1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2xpbmUtY2xhbXAvIiwic291cmNlcyI6WyJsaW5lLWNsYW1wLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBTTVELE1BQU0sQ0FBQyxJQUFNLDhCQUE4QixHQUF3QjtJQUMvRCxRQUFRLEVBQUUsSUFBSTtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3BELDZDQUE2QyxFQUM3QztJQUNJLE9BQU8sRUFBRSxjQUFNLE9BQUEsOEJBQThCLEVBQTlCLENBQThCO0NBQ2hELENBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLDJCQUEyQixHQUVuQixVQUFDLE9BQXFDLElBQUssT0FBQSxDQUFDO0lBQzdELE9BQU8sRUFBRSxzQkFBc0I7SUFDL0IsUUFBUSx3QkFBTSw4QkFBOEIsR0FBSyxPQUFPLENBQUM7Q0FDNUQsQ0FBQyxFQUg4RCxDQUc5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgVmFsdWVQcm92aWRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpTGluZUNsYW1wT3B0aW9ucyB7XG4gICAgcmVhZG9ubHkgc2hvd0hpbnQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBUVUlfTElORV9DTEFNUF9ERUZBVUxUX09QVElPTlM6IFR1aUxpbmVDbGFtcE9wdGlvbnMgPSB7XG4gICAgc2hvd0hpbnQ6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgVFVJX0xJTkVfQ0xBTVBfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUdWlMaW5lQ2xhbXBPcHRpb25zPihcbiAgICAnRGVmYXVsdCBwYXJhbWV0ZXJzIGZvciBsaW5lLWNsYW1wIGNvbXBvbmVudCcsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiBUVUlfTElORV9DTEFNUF9ERUZBVUxUX09QVElPTlMsXG4gICAgfSxcbik7XG5cbmV4cG9ydCBjb25zdCB0dWlMaW5lQ2xhbXBPcHRpb25zUHJvdmlkZXI6IChcbiAgICBvcHRpb25zOiBQYXJ0aWFsPFR1aUxpbmVDbGFtcE9wdGlvbnM+LFxuKSA9PiBWYWx1ZVByb3ZpZGVyID0gKG9wdGlvbnM6IFBhcnRpYWw8VHVpTGluZUNsYW1wT3B0aW9ucz4pID0+ICh7XG4gICAgcHJvdmlkZTogVFVJX0xJTkVfQ0xBTVBfT1BUSU9OUyxcbiAgICB1c2VWYWx1ZTogey4uLlRVSV9MSU5FX0NMQU1QX0RFRkFVTFRfT1BUSU9OUywgLi4ub3B0aW9uc30sXG59KTtcbiJdfQ==
@@ -1,19 +1,23 @@
1
1
  import { __decorate, __param, __read } from "tslib";
2
- import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, Inject, Input, NgZone, Renderer2, ViewChild, } from '@angular/core';
2
+ import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, DoCheck, ElementRef, HostBinding, HostListener, Inject, Input, NgZone, Output, Renderer2, ViewChild, } from '@angular/core';
3
3
  import { isCurrentTarget, tuiDefaultProp, tuiPure, typedFromEvent } from '@taiga-ui/cdk';
4
4
  import { PolymorpheusOutletComponent } from '@tinkoff/ng-polymorpheus';
5
- import { BehaviorSubject, of } from 'rxjs';
6
- import { filter, mapTo, pairwise, startWith, switchMap } from 'rxjs/operators';
5
+ import { BehaviorSubject, of, Subject } from 'rxjs';
6
+ import { distinctUntilChanged, filter, mapTo, pairwise, startWith, switchMap, } from 'rxjs/operators';
7
+ import { TUI_LINE_CLAMP_OPTIONS } from './line-clamp-options';
7
8
  var TuiLineClampComponent = /** @class */ (function () {
8
- function TuiLineClampComponent(elementRef, renderer, cd, ngZone) {
9
+ function TuiLineClampComponent(elementRef, renderer, cd, ngZone, options) {
9
10
  this.elementRef = elementRef;
10
11
  this.renderer = renderer;
11
12
  this.cd = cd;
12
13
  this.ngZone = ngZone;
14
+ this.options = options;
13
15
  this.linesLimit$ = new BehaviorSubject(1);
16
+ this.isOverflown$ = new Subject();
14
17
  this.initialized = false;
15
18
  this.lineHeight = 24;
16
19
  this.content = '';
20
+ this.overflownChange = this.isOverflown$.pipe(distinctUntilChanged());
17
21
  this.skipInitialTransition();
18
22
  }
19
23
  Object.defineProperty(TuiLineClampComponent.prototype, "linesLimit", {
@@ -51,7 +55,7 @@ var TuiLineClampComponent = /** @class */ (function () {
51
55
  });
52
56
  Object.defineProperty(TuiLineClampComponent.prototype, "computedContent", {
53
57
  get: function () {
54
- return this.overflown ? this.content : '';
58
+ return this.options.showHint && this.overflown ? this.content : '';
55
59
  },
56
60
  enumerable: true,
57
61
  configurable: true
@@ -76,6 +80,9 @@ var TuiLineClampComponent = /** @class */ (function () {
76
80
  TuiLineClampComponent.prototype.ngAfterViewInit = function () {
77
81
  this.initialized = true;
78
82
  };
83
+ TuiLineClampComponent.prototype.ngDoCheck = function () {
84
+ this.isOverflown$.next(this.overflown);
85
+ };
79
86
  TuiLineClampComponent.prototype.skipInitialTransition = function () {
80
87
  var _this = this;
81
88
  this.ngZone.runOutsideAngular(function () {
@@ -89,7 +96,8 @@ var TuiLineClampComponent = /** @class */ (function () {
89
96
  { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
90
97
  { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
91
98
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
92
- { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] }
99
+ { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
100
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_LINE_CLAMP_OPTIONS,] }] }
93
101
  ]; };
94
102
  __decorate([
95
103
  ViewChild(PolymorpheusOutletComponent, { read: ElementRef })
@@ -106,6 +114,9 @@ var TuiLineClampComponent = /** @class */ (function () {
106
114
  Input(),
107
115
  tuiDefaultProp()
108
116
  ], TuiLineClampComponent.prototype, "content", void 0);
117
+ __decorate([
118
+ Output()
119
+ ], TuiLineClampComponent.prototype, "overflownChange", void 0);
109
120
  __decorate([
110
121
  tuiPure
111
122
  ], TuiLineClampComponent.prototype, "lineClamp$", null);
@@ -115,6 +126,9 @@ var TuiLineClampComponent = /** @class */ (function () {
115
126
  __decorate([
116
127
  HostBinding('style.height.px')
117
128
  ], TuiLineClampComponent.prototype, "height", null);
129
+ __decorate([
130
+ HostListener('transitionend')
131
+ ], TuiLineClampComponent.prototype, "updateView", null);
118
132
  TuiLineClampComponent = __decorate([
119
133
  Component({
120
134
  selector: 'tui-line-clamp',
@@ -125,9 +139,10 @@ var TuiLineClampComponent = /** @class */ (function () {
125
139
  __param(0, Inject(ElementRef)),
126
140
  __param(1, Inject(Renderer2)),
127
141
  __param(2, Inject(ChangeDetectorRef)),
128
- __param(3, Inject(NgZone))
142
+ __param(3, Inject(NgZone)),
143
+ __param(4, Inject(TUI_LINE_CLAMP_OPTIONS))
129
144
  ], TuiLineClampComponent);
130
145
  return TuiLineClampComponent;
131
146
  }());
132
147
  export { TuiLineClampComponent };
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jbGFtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbGluZS1jbGFtcC8iLCJzb3VyY2VzIjpbImxpbmUtY2xhbXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsYUFBYSxFQUNiLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBc0IsMkJBQTJCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQUMsZUFBZSxFQUFjLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBUTdFO0lBcUJJLCtCQUN5QyxVQUFtQyxFQUNwQyxRQUFtQixFQUNYLEVBQXFCLEVBQ2hDLE1BQWM7UUFIVixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ1gsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXJCbEMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVU1QixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBSWhCLFlBQU8sR0FBd0IsRUFBRSxDQUFDO1FBUTlCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFuQkQsc0JBQUksNkNBQVU7YUFBZCxVQUFlLFVBQWtCO1lBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7OztPQUFBO0lBb0JELHNCQUFJLDZDQUFVO2FBQWQ7WUFEQSxpQkFjQztZQVpHLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ3hCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFDWixRQUFRLEVBQUUsRUFDVixTQUFTLENBQUMsVUFBQyxFQUFZO29CQUFaLGtCQUFZLEVBQVgsWUFBSSxFQUFFLFlBQUk7Z0JBQ2xCLE9BQUEsSUFBSSxJQUFJLElBQUk7b0JBQ1IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7b0JBQ1YsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQy9ELE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFDdkIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUNkO1lBTFAsQ0FLTyxDQUNWLENBQ0osQ0FBQztRQUNOLENBQUM7OztPQUFBO0lBRUQsc0JBQUksNENBQVM7YUFBYjtZQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNkLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUssSUFBQSw4QkFBdUQsRUFBdEQsOEJBQVksRUFBRSw0QkFBd0MsQ0FBQztZQUN4RCxJQUFBLGtDQUEyRCxFQUExRCw4QkFBWSxFQUFFLDRCQUE0QyxDQUFDO1lBRWxFLDJEQUEyRDtZQUMzRCxPQUFPLFlBQVksR0FBRyxZQUFZLEdBQUcsQ0FBQyxJQUFJLFdBQVcsR0FBRyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQzVFLENBQUM7OztPQUFBO0lBRUQsc0JBQUksa0RBQWU7YUFBbkI7WUFDSSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5QyxDQUFDOzs7T0FBQTtJQUdELHNCQUFJLDRDQUFTO2FBQWI7WUFDSSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM5RSxDQUFDOzs7T0FBQTtJQUdELHNCQUFJLHlDQUFNO2FBQVY7WUFDSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNqRixDQUFDOzs7T0FBQTtJQUVELDBDQUFVLEdBQVY7UUFDSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCwrQ0FBZSxHQUFmO1FBQ0ksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVPLHFEQUFxQixHQUE3QjtRQUFBLGlCQU9DO1FBTkcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztZQUMxQixVQUFVLENBQUM7Z0JBQ1AsS0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBQ3RFLEtBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2dCQWpFb0QsVUFBVSx1QkFBMUQsTUFBTSxTQUFDLFVBQVU7Z0JBQzRCLFNBQVMsdUJBQXRELE1BQU0sU0FBQyxTQUFTO2dCQUMrQixpQkFBaUIsdUJBQWhFLE1BQU0sU0FBQyxpQkFBaUI7Z0JBQ2dCLE1BQU0sdUJBQTlDLE1BQU0sU0FBQyxNQUFNOztJQXZCbEI7UUFEQyxTQUFTLENBQUMsMkJBQTJCLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUM7eURBQ1Q7SUFPbEQ7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7MkRBR2hCO0lBSUQ7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7NkRBQ0Q7SUFJaEI7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7MERBQ2lCO0lBWWxDO1FBREMsT0FBTzsyREFjUDtJQW1CRDtRQURDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQzswREFHakM7SUFHRDtRQURDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQzt1REFHOUI7SUF0RVEscUJBQXFCO1FBTmpDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsK1JBQXlDO1lBRXpDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztTQUNsRCxDQUFDO1FBdUJPLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xCLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ2pCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDekIsV0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7T0F6QlYscUJBQXFCLENBd0ZqQztJQUFELDRCQUFDO0NBQUEsQUF4RkQsSUF3RkM7U0F4RlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2lzQ3VycmVudFRhcmdldCwgdHVpRGVmYXVsdFByb3AsIHR1aVB1cmUsIHR5cGVkRnJvbUV2ZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudCwgUG9seW1vcnBoZXVzT3V0bGV0Q29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmlsdGVyLCBtYXBUbywgcGFpcndpc2UsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWxpbmUtY2xhbXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saW5lLWNsYW1wLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xpbmUtY2xhbXAuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlMaW5lQ2xhbXBDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKFBvbHltb3JwaGV1c091dGxldENvbXBvbmVudCwge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3V0bGV0PzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpbmVzTGltaXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgxKTtcbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2V0IGxpbmVzTGltaXQobGluZXNMaW1pdDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMubGluZXNMaW1pdCQubmV4dChsaW5lc0xpbWl0KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbGluZUhlaWdodCA9IDI0O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoUmVuZGVyZXIyKSBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIHByaXZhdGUgcmVhZG9ubHkgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KE5nWm9uZSkgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5za2lwSW5pdGlhbFRyYW5zaXRpb24oKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGdldCBsaW5lQ2xhbXAkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpbmVzTGltaXQkLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgoMSksXG4gICAgICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChbcHJldiwgbmV4dF0pID0+XG4gICAgICAgICAgICAgICAgbmV4dCA+PSBwcmV2XG4gICAgICAgICAgICAgICAgICAgID8gb2YobmV4dClcbiAgICAgICAgICAgICAgICAgICAgOiB0eXBlZEZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RyYW5zaXRpb25lbmQnKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoaXNDdXJyZW50VGFyZ2V0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwVG8obmV4dCksXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJmbG93bigpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLm91dGxldCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3Njcm9sbEhlaWdodCwgc2Nyb2xsV2lkdGh9ID0gdGhpcy5vdXRsZXQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qge2NsaWVudEhlaWdodCwgY2xpZW50V2lkdGh9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgLy8gNHB4IGJ1ZmZlciBmb3IgSUUvRWRnZSBpbmNvcnJlY3RseSByb3VuZGluZyBzY3JvbGxIZWlnaHRcbiAgICAgICAgcmV0dXJuIHNjcm9sbEhlaWdodCAtIGNsaWVudEhlaWdodCA+IDQgfHwgc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQ29udGVudCgpOiBQb2x5bW9ycGhldXNDb250ZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmZsb3duID8gdGhpcy5jb250ZW50IDogJyc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXhIZWlnaHQucHgnKVxuICAgIGdldCBtYXhIZWlnaHQoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVkID8gdGhpcy5saW5lSGVpZ2h0ICogdGhpcy5saW5lc0xpbWl0JC52YWx1ZSA6IG51bGw7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKVxuICAgIGdldCBoZWlnaHQoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5vdXRsZXQgPyAwIDogdGhpcy5vdXRsZXQubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgKyA0IHx8IG51bGw7XG4gICAgfVxuXG4gICAgdXBkYXRlVmlldygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNraXBJbml0aWFsVHJhbnNpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ19pbml0aWFsaXplZCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jbGFtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvbGluZS1jbGFtcC8iLCJzb3VyY2VzIjpbImxpbmUtY2xhbXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsYUFBYSxFQUNiLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULE9BQU8sRUFDUCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBc0IsMkJBQTJCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQUMsZUFBZSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUNILG9CQUFvQixFQUNwQixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxHQUNaLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLHNCQUFzQixFQUFzQixNQUFNLHNCQUFzQixDQUFDO0FBUWpGO0lBMkJJLCtCQUN5QyxVQUFtQyxFQUNwQyxRQUFtQixFQUNYLEVBQXFCLEVBQ2hDLE1BQWMsRUFDRSxPQUE0QjtRQUp4QyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ1gsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNFLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBNUJoRSxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFDLENBQUMs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aUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2QsV0FBQSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtPQWhDMUIscUJBQXFCLENBb0dqQztJQUFELDRCQUFDO0NBQUEsQUFwR0QsSUFvR0M7U0FwR1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtpc0N1cnJlbnRUYXJnZXQsIHR1aURlZmF1bHRQcm9wLCB0dWlQdXJlLCB0eXBlZEZyb21FdmVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnQsIFBvbHltb3JwaGV1c091dGxldENvbXBvbmVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICAgIGZpbHRlcixcbiAgICBtYXBUbyxcbiAgICBwYWlyd2lzZSxcbiAgICBzdGFydFdpdGgsXG4gICAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VFVJX0xJTkVfQ0xBTVBfT1BUSU9OUywgVHVpTGluZUNsYW1wT3B0aW9uc30gZnJvbSAnLi9saW5lLWNsYW1wLW9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1saW5lLWNsYW1wJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGluZS1jbGFtcC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9saW5lLWNsYW1wLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpTGluZUNsYW1wQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgRG9DaGVjayB7XG4gICAgQFZpZXdDaGlsZChQb2x5bW9ycGhldXNPdXRsZXRDb21wb25lbnQsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IG91dGxldD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5lc0xpbWl0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpc092ZXJmbG93biQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZXQgbGluZXNMaW1pdChsaW5lc0xpbWl0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5saW5lc0xpbWl0JC5uZXh0KGxpbmVzTGltaXQpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBsaW5lSGVpZ2h0ID0gMjQ7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgY29udGVudDogUG9seW1vcnBoZXVzQ29udGVudCA9ICcnO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgb3ZlcmZsb3duQ2hhbmdlOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc092ZXJmbG93biQucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChSZW5kZXJlcjIpIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgcHJpdmF0ZSByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFRVSV9MSU5FX0NMQU1QX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVHVpTGluZUNsYW1wT3B0aW9ucyxcbiAgICApIHtcbiAgICAgICAgdGhpcy5za2lwSW5pdGlhbFRyYW5zaXRpb24oKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGdldCBsaW5lQ2xhbXAkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpbmVzTGltaXQkLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgoMSksXG4gICAgICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChbcHJldiwgbmV4dF0pID0+XG4gICAgICAgICAgICAgICAgbmV4dCA+PSBwcmV2XG4gICAgICAgICAgICAgICAgICAgID8gb2YobmV4dClcbiAgICAgICAgICAgICAgICAgICAgOiB0eXBlZEZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RyYW5zaXRpb25lbmQnKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoaXNDdXJyZW50VGFyZ2V0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwVG8obmV4dCksXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJmbG93bigpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLm91dGxldCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3Njcm9sbEhlaWdodCwgc2Nyb2xsV2lkdGh9ID0gdGhpcy5vdXRsZXQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qge2NsaWVudEhlaWdodCwgY2xpZW50V2lkdGh9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgLy8gNHB4IGJ1ZmZlciBmb3IgSUUvRWRnZSBpbmNvcnJlY3RseSByb3VuZGluZyBzY3JvbGxIZWlnaHRcbiAgICAgICAgcmV0dXJuIHNjcm9sbEhlaWdodCAtIGNsaWVudEhlaWdodCA+IDQgfHwgc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQ29udGVudCgpOiBQb2x5bW9ycGhldXNDb250ZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5zaG93SGludCAmJiB0aGlzLm92ZXJmbG93biA/IHRoaXMuY29udGVudCA6ICcnO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWF4SGVpZ2h0LnB4JylcbiAgICBnZXQgbWF4SGVpZ2h0KCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplZCA/IHRoaXMubGluZUhlaWdodCAqIHRoaXMubGluZXNMaW1pdCQudmFsdWUgOiBudWxsO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0LnB4JylcbiAgICBnZXQgaGVpZ2h0KCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMub3V0bGV0ID8gMCA6IHRoaXMub3V0bGV0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICsgNCB8fCBudWxsO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnKVxuICAgIHVwZGF0ZVZpZXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzT3ZlcmZsb3duJC5uZXh0KHRoaXMub3ZlcmZsb3duKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNraXBJbml0aWFsVHJhbnNpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ19pbml0aWFsaXplZCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -92,6 +92,7 @@ var TuiSliderKeyStepsDirective = /** @class */ (function (_super) {
92
92
  Directive({
93
93
  selector: 'input[tuiSlider][keySteps]',
94
94
  host: {
95
+ '[attr.data-key-steps]': 'true',
95
96
  '[attr.aria-valuenow]': 'controlValue',
96
97
  '[attr.aria-valuemin]': 'min',
97
98
  '[attr.aria-valuemax]': 'max',
@@ -125,4 +126,4 @@ var TuiSliderTickLabelPipe = /** @class */ (function () {
125
126
  return TuiSliderTickLabelPipe;
126
127
  }());
127
128
  export { TuiSliderTickLabelPipe };
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyLyIsInNvdXJjZXMiOlsic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixhQUFhLEVBQ2IsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLEtBQUssRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULGNBQWMsRUFFZCxjQUFjLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxrQ0FBa0MsRUFDbEMsMkJBQTJCLEVBQzNCLDJCQUEyQixHQUM5QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxXQUFXO0FBU1g7SUFDWSw4Q0FBMEI7SUFtQ2xDLG9DQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBQzFCLFVBQXdDLEVBQ2hDLE1BQTBCO1FBUDNFLFlBU0ksa0JBQU0sT0FBTyxFQUFFLGlCQUFpQixDQUFDLFNBQ3BDO1FBSndDLGdCQUFVLEdBQVYsVUFBVSxDQUE4QjtRQUNoQyxZQUFNLEdBQU4sTUFBTSxDQUFvQjtRQWxDM0UsY0FBUSxHQUFnQixFQUFFLENBQUM7UUFHM0IsbUJBQWEsR0FBRyxjQUFjLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFB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QztTQUNKLENBQUM7UUFzQ08sV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVqQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xCLFdBQUEsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7T0EzQ3RCLDBCQUEwQixDQWlGdEM7SUFBRCxpQ0FBQztDQUFBLEFBakZELENBQ1ksa0JBQWtCLEdBZ0Y3QjtTQWpGWSwwQkFBMEI7QUFtRnZDOzs7O0dBSUc7QUFFSDtJQUFBO0lBTUEsQ0FBQztJQUxHLDBDQUFTLEdBQVQsVUFBVSxTQUFpQixFQUFFLGFBQXFCLEVBQUUsUUFBcUI7UUFDckUsSUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBRXJELE9BQU8sMkJBQTJCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFMUSxzQkFBc0I7UUFEbEMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFDLENBQUM7T0FDdEIsc0JBQXNCLENBTWxDO0lBQUQsNkJBQUM7Q0FBQSxBQU5ELElBTUM7U0FOWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFBpcGUsXG4gICAgUGlwZVRyYW5zZm9ybSxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBjbGFtcCxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgdHVpQXNzZXJ0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0eXBlZEZyb21FdmVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aUtleVN0ZXBzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7XG4gICAgdHVpQ2hlY2tLZXlTdGVwc0hhdmVNaW5NYXhQZXJjZW50cyxcbiAgICB0dWlLZXlTdGVwVmFsdWVUb1BlcmNlbnRhZ2UsXG4gICAgdHVpUGVyY2VudGFnZVRvS2V5U3RlcFZhbHVlLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VHVpU2xpZGVyQ29tcG9uZW50fSBmcm9tICcuL3NsaWRlci5jb21wb25lbnQnO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0dWlTbGlkZXJdW2tleVN0ZXBzXScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuYXJpYS12YWx1ZW5vd10nOiAnY29udHJvbFZhbHVlJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWVtaW5dJzogJ21pbicsXG4gICAgICAgICdbYXR0ci5hcmlhLXZhbHVlbWF4XSc6ICdtYXgnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNsaWRlcktleVN0ZXBzRGlyZWN0aXZlXG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8bnVtYmVyPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoXG4gICAgICAgIHR1aUNoZWNrS2V5U3RlcHNIYXZlTWluTWF4UGVyY2VudHMsXG4gICAgICAgICdTaG91bGQgY29udGFpbiBtaW4gYW5kIG1heCB2YWx1ZXMnLFxuICAgIClcbiAgICBrZXlTdGVwczogVHVpS2V5U3RlcHMgPSBbXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGtleVN0ZXBzSW5wdXQgPSB0eXBlZEZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2lucHV0JykucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuY29udHJvbFZhbHVlKSxcbiAgICApO1xuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZERpc2FibGVkID8gbnVsbCA6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IG1pbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5rZXlTdGVwc1swXT8uWzFdIHx8IDA7XG4gICAgfVxuXG4gICAgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5rZXlTdGVwc1t0aGlzLmtleVN0ZXBzLmxlbmd0aCAtIDFdPy5bMV0gfHwgMTAwO1xuICAgIH1cblxuICAgIGdldCBjb250cm9sVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR1aVBlcmNlbnRhZ2VUb0tleVN0ZXBWYWx1ZSh0aGlzLnNsaWRlci52YWx1ZVBlcmNlbnRhZ2UsIHRoaXMua2V5U3RlcHMpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFR1aVNsaWRlckNvbXBvbmVudCkgcHJpdmF0ZSByZWFkb25seSBzbGlkZXI6IFR1aVNsaWRlckNvbXBvbmVudCxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScpXG4gICAgdXBkYXRlQ29udHJvbFZhbHVlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuY29udHJvbFZhbHVlKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKGNvbnRyb2xWYWx1ZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAoY29udHJvbFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGFtcGVkQ29udHJvbFZhbHVlID0gY2xhbXAoY29udHJvbFZhbHVlLCB0aGlzLm1pbiwgdGhpcy5tYXgpO1xuXG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoXG4gICAgICAgICAgICBjb250cm9sVmFsdWUgPT09IGNsYW1wZWRDb250cm9sVmFsdWUsXG4gICAgICAgICAgICAnXFxuW1NsaWRlcktleVN0ZXBzXTogWW91IGNhbm5vdCBwcm9ncmFtbWF0aWNhbGx5IHNldCB2YWx1ZSB3aGljaCBpcyBsZXNzL21vcmUgdGhhbiBtaW4vbWF4JyxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNsaWRlci52YWx1ZSA9IHRoaXMudHJhbnNmb3JtVG9OYXRpdmVWYWx1ZShjbGFtcGVkQ29udHJvbFZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZm9ybVRvTmF0aXZlVmFsdWUoY29udHJvbFZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB7bWluLCBtYXh9ID0gdGhpcy5zbGlkZXI7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlUGVyY2VudGFnZSA9IHR1aUtleVN0ZXBWYWx1ZVRvUGVyY2VudGFnZShcbiAgICAgICAgICAgIGNvbnRyb2xWYWx1ZSxcbiAgICAgICAgICAgIHRoaXMua2V5U3RlcHMsXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIChuZXdWYWx1ZVBlcmNlbnRhZ2UgKiAobWF4IC0gbWluKSkgLyAxMDAgKyBtaW47XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIERPTlQgVVNFIElUISBJdCBpcyBqdXN0IHRlbXBvcmFyeSBzb2x1dGlvbiBmb3IgaW50ZXJuYWwgcHVycG9zZXMgb25seS4gV2Ugd2lsbCBkZWxldGUgaXQgaW4gbmV4dCBtYWpvciByZWxlYXNlLlxuICogVE9ETyBkZWxldGUgaXQgaW4gdjMuMFxuICpcbiAqL1xuQFBpcGUoe25hbWU6ICd0dWlTbGlkZXJUaWNrTGFiZWwnfSlcbmV4cG9ydCBjbGFzcyBUdWlTbGlkZXJUaWNrTGFiZWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHRpY2tJbmRleDogbnVtYmVyLCB0b3RhbFNlZ21lbnRzOiBudW1iZXIsIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSAoMTAwIC8gdG90YWxTZWdtZW50cykgKiB0aWNrSW5kZXg7XG5cbiAgICAgICAgcmV0dXJuIHR1aVBlcmNlbnRhZ2VUb0tleVN0ZXBWYWx1ZShwZXJjZW50YWdlLCBrZXlTdGVwcyk7XG4gICAgfVxufVxuIl19
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyLyIsInNvdXJjZXMiOlsic2xpZGVyLWtleS1zdGVwcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixhQUFhLEVBQ2IsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLEtBQUssRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULGNBQWMsRUFFZCxjQUFjLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxrQ0FBa0MsRUFDbEMsMkJBQTJCLEVBQzNCLDJCQUEyQixHQUM5QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxXQUFXO0FBVVg7SUFDWSw4Q0FBMEI7SUFtQ2xDLG9DQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBQzFCLFVBQXdDLEVBQ2hDLE1BQTBCO1FBUDNFLFlBU0ksa0JBQU0sT0FBTyxFQUFFLGlCQUFpQixDQUFDLFNBQ3BDO1FBSndDLGdCQUFVLEdBQVYsVUFBVSxDQUE4QjtRQUNoQyxZQUFNLEdBQU4sTUFBTSxDQUFvQjtRQWxDM0UsY0FBUSxHQUFnQixFQUFFLENBQUM7UUFHM0IsbUJBQWEsR0FBRyxjQUFjLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFB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N0Isc0JBQXNCLEVBQUUsS0FBSzthQUNoQztTQUNKLENBQUM7UUFzQ08sV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVqQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xCLFdBQUEsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7T0EzQ3RCLDBCQUEwQixDQWlGdEM7SUFBRCxpQ0FBQztDQUFBLEFBakZELENBQ1ksa0JBQWtCLEdBZ0Y3QjtTQWpGWSwwQkFBMEI7QUFtRnZDOzs7O0dBSUc7QUFFSDtJQUFBO0lBTUEsQ0FBQztJQUxHLDBDQUFTLEdBQVQsVUFBVSxTQUFpQixFQUFFLGFBQXFCLEVBQUUsUUFBcUI7UUFDckUsSUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBRXJELE9BQU8sMkJBQTJCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFMUSxzQkFBc0I7UUFEbEMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFDLENBQUM7T0FDdEIsc0JBQXNCLENBTWxDO0lBQUQsNkJBQUM7Q0FBQSxBQU5ELElBTUM7U0FOWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFBpcGUsXG4gICAgUGlwZVRyYW5zZm9ybSxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBjbGFtcCxcbiAgICBpc05hdGl2ZUZvY3VzZWQsXG4gICAgdHVpQXNzZXJ0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0eXBlZEZyb21FdmVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aUtleVN0ZXBzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7XG4gICAgdHVpQ2hlY2tLZXlTdGVwc0hhdmVNaW5NYXhQZXJjZW50cyxcbiAgICB0dWlLZXlTdGVwVmFsdWVUb1BlcmNlbnRhZ2UsXG4gICAgdHVpUGVyY2VudGFnZVRvS2V5U3RlcFZhbHVlLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VHVpU2xpZGVyQ29tcG9uZW50fSBmcm9tICcuL3NsaWRlci5jb21wb25lbnQnO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0dWlTbGlkZXJdW2tleVN0ZXBzXScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1rZXktc3RlcHNdJzogJ3RydWUnLFxuICAgICAgICAnW2F0dHIuYXJpYS12YWx1ZW5vd10nOiAnY29udHJvbFZhbHVlJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtdmFsdWVtaW5dJzogJ21pbicsXG4gICAgICAgICdbYXR0ci5hcmlhLXZhbHVlbWF4XSc6ICdtYXgnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNsaWRlcktleVN0ZXBzRGlyZWN0aXZlXG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8bnVtYmVyPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoXG4gICAgICAgIHR1aUNoZWNrS2V5U3RlcHNIYXZlTWluTWF4UGVyY2VudHMsXG4gICAgICAgICdTaG91bGQgY29udGFpbiBtaW4gYW5kIG1heCB2YWx1ZXMnLFxuICAgIClcbiAgICBrZXlTdGVwczogVHVpS2V5U3RlcHMgPSBbXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGtleVN0ZXBzSW5wdXQgPSB0eXBlZEZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2lucHV0JykucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuY29udHJvbFZhbHVlKSxcbiAgICApO1xuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZERpc2FibGVkID8gbnVsbCA6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IG1pbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5rZXlTdGVwc1swXT8uWzFdIHx8IDA7XG4gICAgfVxuXG4gICAgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5rZXlTdGVwc1t0aGlzLmtleVN0ZXBzLmxlbmd0aCAtIDFdPy5bMV0gfHwgMTAwO1xuICAgIH1cblxuICAgIGdldCBjb250cm9sVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR1aVBlcmNlbnRhZ2VUb0tleVN0ZXBWYWx1ZSh0aGlzLnNsaWRlci52YWx1ZVBlcmNlbnRhZ2UsIHRoaXMua2V5U3RlcHMpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFR1aVNsaWRlckNvbXBvbmVudCkgcHJpdmF0ZSByZWFkb25seSBzbGlkZXI6IFR1aVNsaWRlckNvbXBvbmVudCxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScpXG4gICAgdXBkYXRlQ29udHJvbFZhbHVlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuY29udHJvbFZhbHVlKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKGNvbnRyb2xWYWx1ZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAoY29udHJvbFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGFtcGVkQ29udHJvbFZhbHVlID0gY2xhbXAoY29udHJvbFZhbHVlLCB0aGlzLm1pbiwgdGhpcy5tYXgpO1xuXG4gICAgICAgIHR1aUFzc2VydC5hc3NlcnQoXG4gICAgICAgICAgICBjb250cm9sVmFsdWUgPT09IGNsYW1wZWRDb250cm9sVmFsdWUsXG4gICAgICAgICAgICAnXFxuW1NsaWRlcktleVN0ZXBzXTogWW91IGNhbm5vdCBwcm9ncmFtbWF0aWNhbGx5IHNldCB2YWx1ZSB3aGljaCBpcyBsZXNzL21vcmUgdGhhbiBtaW4vbWF4JyxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNsaWRlci52YWx1ZSA9IHRoaXMudHJhbnNmb3JtVG9OYXRpdmVWYWx1ZShjbGFtcGVkQ29udHJvbFZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZm9ybVRvTmF0aXZlVmFsdWUoY29udHJvbFZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB7bWluLCBtYXh9ID0gdGhpcy5zbGlkZXI7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlUGVyY2VudGFnZSA9IHR1aUtleVN0ZXBWYWx1ZVRvUGVyY2VudGFnZShcbiAgICAgICAgICAgIGNvbnRyb2xWYWx1ZSxcbiAgICAgICAgICAgIHRoaXMua2V5U3RlcHMsXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIChuZXdWYWx1ZVBlcmNlbnRhZ2UgKiAobWF4IC0gbWluKSkgLyAxMDAgKyBtaW47XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIERPTlQgVVNFIElUISBJdCBpcyBqdXN0IHRlbXBvcmFyeSBzb2x1dGlvbiBmb3IgaW50ZXJuYWwgcHVycG9zZXMgb25seS4gV2Ugd2lsbCBkZWxldGUgaXQgaW4gbmV4dCBtYWpvciByZWxlYXNlLlxuICogVE9ETyBkZWxldGUgaXQgaW4gdjMuMFxuICpcbiAqL1xuQFBpcGUoe25hbWU6ICd0dWlTbGlkZXJUaWNrTGFiZWwnfSlcbmV4cG9ydCBjbGFzcyBUdWlTbGlkZXJUaWNrTGFiZWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHRpY2tJbmRleDogbnVtYmVyLCB0b3RhbFNlZ21lbnRzOiBudW1iZXIsIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSAoMTAwIC8gdG90YWxTZWdtZW50cykgKiB0aWNrSW5kZXg7XG5cbiAgICAgICAgcmV0dXJuIHR1aVBlcmNlbnRhZ2VUb0tleVN0ZXBWYWx1ZShwZXJjZW50YWdlLCBrZXlTdGVwcyk7XG4gICAgfVxufVxuIl19
@@ -8,6 +8,7 @@ import { TUI_SLIDER_OPTIONS } from './slider-options';
8
8
  var TuiSliderComponent = /** @class */ (function () {
9
9
  function TuiSliderComponent(control, changeDetectorRef, options, elementRef, userAgent) {
10
10
  var _a;
11
+ this.control = control;
11
12
  this.options = options;
12
13
  this.elementRef = elementRef;
13
14
  this.userAgent = userAgent;
@@ -47,7 +48,16 @@ var TuiSliderComponent = /** @class */ (function () {
47
48
  });
48
49
  Object.defineProperty(TuiSliderComponent.prototype, "value", {
49
50
  get: function () {
50
- return Number(this.elementRef.nativeElement.value) || 0;
51
+ var _a = this, elementRef = _a.elementRef, control = _a.control;
52
+ var noKeySteps = !elementRef.nativeElement.hasAttribute('data-key-steps');
53
+ if (noKeySteps && control instanceof NgModel) {
54
+ /**
55
+ * If developer uses `[(ngModel)]` and programmatically change value,
56
+ * the `elementRef.nativeElement.value` is equal to the previous value at this moment.
57
+ */
58
+ return control.viewModel;
59
+ }
60
+ return Number(elementRef.nativeElement.value) || 0;
51
61
  },
52
62
  set: function (newValue) {
53
63
  this.elementRef.nativeElement.value = "" + newValue;
@@ -135,4 +145,4 @@ var TuiSliderComponent = /** @class */ (function () {
135
145
  return TuiSliderComponent;
136
146
  }());
137
147
  export { TuiSliderComponent };
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXIvIiwic291cmNlcyI6WyJzbGlkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUNILDJCQUEyQixFQUMzQixlQUFlLEVBQ2YsY0FBYyxFQUNkLEtBQUssR0FDUixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEMsT0FBTyxFQUFDLGtCQUFrQixFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBd0J0RTtJQTZDSSw0QkFJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUMxQixPQUF5QixFQUN6QixVQUF3QyxFQUN4QyxTQUFpQjs7UUFGakIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBOEI7UUFDeEMsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQWpEMUQsU0FBSSxHQUFhLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBSW5DLGFBQVEsR0FBRyxDQUFDLENBQUM7UUErQ1QsSUFBSSxPQUFPLFlBQVksT0FBTyxFQUFFO1lBQzVCOzs7Ozs7ZUFNRztZQUNILE1BQUEsT0FBTyxDQUFDLFlBQVksMENBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMs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QyxVQUFVLENBQUMsQ0FBQTtPQXJEZCxrQkFBa0IsQ0FrRTlCO0lBQUQseUJBQUM7Q0FBQSxBQWxFRCxJQWtFQztTQWxFWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sLCBOZ01vZGVsfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1VTRVJfQUdFTlR9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDSFJPTUlVTV9FREdFX1NUQVJUX1ZFUlNJT04sXG4gICAgaXNFZGdlT2xkZXJUaGFuLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIHdhdGNoLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RVSV9TTElERVJfT1BUSU9OUywgVHVpU2xpZGVyT3B0aW9uc30gZnJvbSAnLi9zbGlkZXItb3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8qKlxuICAgICAqIFdlIGhhdmUgdG8gY2FsbCBvdXIgY29tcG9uZW50IGFzIGA8aW5wdXQgdHVpU2xpZGVyIHR5cGU9XCJyYW5nZVwiIC4uLiAvPmBcbiAgICAgKiBiZWNhdXNlIG90aGVyd2lzZSBidWlsdC1pbiBhbmd1bGFyXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi9tYXN0ZXIvcGFja2FnZXMvZm9ybXMvc3JjL2RpcmVjdGl2ZXMvcmFuZ2VfdmFsdWVfYWNjZXNzb3IudHMjTDQ1IFJhbmdlVmFsdWVBY2Nlc3Nvcn1cbiAgICAgKiBjYW5ub3QgYmUgbWF0Y2hlZCBieSBpdHMgQ1NTIHNlbGVjdG9yLlxuICAgICAqL1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbdHlwZT1yYW5nZV1bdHVpU2xpZGVyXScsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIHN0eWxlVXJsczogWycuL3NsaWRlci5zdHlsZS5sZXNzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogRm9yIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgICAgICAqIFdlYmtpdCBkb2VzIG5vdCBoYXZlIGJ1aWx0LWluIG1ldGhvZCBmb3IgY3VzdG9taXphdGlvbiBvZiBmaWxsaW5nIHByb2dyZXNzIChhcyBGaXJlZm94KS5cbiAgICAgICAgICogV2UgZHJhdyBmaWxsaW5nIG9mIHByb2dyZXNzIGJ5IGBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoLi4uKWAgb2YgdGhlIHRyYWNrLlxuICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIHRyaWdnZXJzIGNoYW5nZSBkZXRlY3Rpb24gKGZvciB7QGxpbmsgdmFsdWVQZXJjZW50YWdlfSBmdW5jdGlvbikgd2hlbiB3ZSBkcmFnIHRodW1iIG9mIHRoZSBpbnB1dC5cbiAgICAgICAgICovXG4gICAgICAgICcoaW5wdXQpJzogJzAnLFxuICAgICAgICAnW3N0eWxlLi0tdHVpLXNsaWRlci10cmFjay1jb2xvcl0nOiAnb3B0aW9ucy50cmFja0NvbG9yJyxcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTbGlkZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplUyA9IHRoaXMub3B0aW9ucy5zaXplO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNlZ21lbnRzID0gMTtcblxuICAgIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5taW4pO1xuICAgIH1cblxuICAgIGdldCBtYXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5tYXggfHwgMTAwKTtcbiAgICB9XG5cbiAgICBnZXQgc3RlcCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTnVtYmVyKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0ZXApIHx8IDE7XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBOdW1iZXIodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUpIHx8IDA7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKG5ld1ZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBgJHtuZXdWYWx1ZX1gO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuLS10dWktc2xpZGVyLWZpbGwtcGVyY2VudGFnZS4lJylcbiAgICBnZXQgdmFsdWVQZXJjZW50YWdlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogKHRoaXMudmFsdWUgLSB0aGlzLm1pbikpIC8gKHRoaXMubWF4IC0gdGhpcy5taW4pIHx8IDA7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXR1aS1zbGlkZXItc2VnbWVudC13aWR0aC4lJylcbiAgICBnZXQgc2VnbWVudFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAxMDAgLyBNYXRoLm1heCgxLCB0aGlzLnNlZ21lbnRzKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9vbGQtZWRnZScpXG4gICAgZ2V0IGlzT2xkRWRnZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzRWRnZU9sZGVyVGhhbihDSFJPTUlVTV9FREdFX1NUQVJUX1ZFUlNJT04sIHRoaXMudXNlckFnZW50KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9TTElERVJfT1BUSU9OUykgcmVhZG9ubHkgb3B0aW9uczogVHVpU2xpZGVyT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVVNFUl9BR0VOVCkgcHJpdmF0ZSByZWFkb25seSB1c2VyQWdlbnQ6IHN0cmluZyxcbiAgICApIHtcbiAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBOZ01vZGVsKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRoZSBWYWx1ZUFjY2Vzc29yLndyaXRlVmFsdWUgbWV0aG9kIGlzIGNhbGxlZCB0d2ljZSBvbiBhbnkgdmFsdWUgYWNjZXNzb3IgZHVyaW5nIGNvbXBvbmVudCBpbml0aWFsaXphdGlvbixcbiAgICAgICAgICAgICAqIHdoZW4gYSBjb250cm9sIGlzIGJvdW5kIHVzaW5nIFsobmdNb2RlbCldLCBmaXJzdCB0aW1lIHdpdGggYSBwaGFudG9tIG51bGwgdmFsdWUuXG4gICAgICAgICAgICAgKiBXaXRoIGBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaGAgdGhlIHNlY29uZCBjYWxsIG9mIHdyaXRlVmFsdWUgd2l0aCByZWFsIHZhbHVlIGRvbid0IHJlLXJlbmRlciB0aGUgdmlldy5cbiAgICAgICAgICAgICAqIF9fX1xuICAgICAgICAgICAgICogU2VlIHRoaXMge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE0OTg4IGlzc3VlfVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb250cm9sLnZhbHVlQ2hhbmdlcz8ucGlwZSh3YXRjaChjaGFuZ2VEZXRlY3RvclJlZiksIHRha2UoMSkpLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXIvIiwic291cmNlcyI6WyJzbGlkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUNILDJCQUEyQixFQUMzQixlQUFlLEVBQ2YsY0FBYyxFQUNkLEtBQUssR0FDUixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEMsT0FBTyxFQUFDLGtCQUFrQixFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBd0J0RTtJQXdESSw0QkFJcUIsT0FBeUIsRUFDZixpQkFBb0MsRUFDMUIsT0FBeUIsRUFDekIsVUFBd0MsRUFDeEMsU0FBaUI7O1FBSnJDLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBRUwsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBOEI7UUFDeEMsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQTVEMUQsU0FBSSxHQUFhLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBSW5DLGFBQVEsR0FBRyxDQUFDLENBQUM7UUEwRFQsSUFBSSxPQUFPLFlBQVksT0FBTyxFQUFFO1lBQzVCOzs7Ozs7ZUFNRztZQUNILE1BQUEsT0FBTyxDQUFDLFlBQVksMENBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FB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U0FDbEQsQ0FBQztRQTBETyxXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtRQUNOLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDekIsV0FBQSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUMxQixXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNsQixXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtPQWhFZCxrQkFBa0IsQ0E2RTlCO0lBQUQseUJBQUM7Q0FBQSxBQTdFRCxJQTZFQztTQTdFWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sLCBOZ01vZGVsfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1VTRVJfQUdFTlR9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDSFJPTUlVTV9FREdFX1NUQVJUX1ZFUlNJT04sXG4gICAgaXNFZGdlT2xkZXJUaGFuLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIHdhdGNoLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RVSV9TTElERVJfT1BUSU9OUywgVHVpU2xpZGVyT3B0aW9uc30gZnJvbSAnLi9zbGlkZXItb3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8qKlxuICAgICAqIFdlIGhhdmUgdG8gY2FsbCBvdXIgY29tcG9uZW50IGFzIGA8aW5wdXQgdHVpU2xpZGVyIHR5cGU9XCJyYW5nZVwiIC4uLiAvPmBcbiAgICAgKiBiZWNhdXNlIG90aGVyd2lzZSBidWlsdC1pbiBhbmd1bGFyXG4gICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi9tYXN0ZXIvcGFja2FnZXMvZm9ybXMvc3JjL2RpcmVjdGl2ZXMvcmFuZ2VfdmFsdWVfYWNjZXNzb3IudHMjTDQ1IFJhbmdlVmFsdWVBY2Nlc3Nvcn1cbiAgICAgKiBjYW5ub3QgYmUgbWF0Y2hlZCBieSBpdHMgQ1NTIHNlbGVjdG9yLlxuICAgICAqL1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbdHlwZT1yYW5nZV1bdHVpU2xpZGVyXScsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIHN0eWxlVXJsczogWycuL3NsaWRlci5zdHlsZS5sZXNzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogRm9yIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgICAgICAqIFdlYmtpdCBkb2VzIG5vdCBoYXZlIGJ1aWx0LWluIG1ldGhvZCBmb3IgY3VzdG9taXphdGlvbiBvZiBmaWxsaW5nIHByb2dyZXNzIChhcyBGaXJlZm94KS5cbiAgICAgICAgICogV2UgZHJhdyBmaWxsaW5nIG9mIHByb2dyZXNzIGJ5IGBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoLi4uKWAgb2YgdGhlIHRyYWNrLlxuICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIHRyaWdnZXJzIGNoYW5nZSBkZXRlY3Rpb24gKGZvciB7QGxpbmsgdmFsdWVQZXJjZW50YWdlfSBmdW5jdGlvbikgd2hlbiB3ZSBkcmFnIHRodW1iIG9mIHRoZSBpbnB1dC5cbiAgICAgICAgICovXG4gICAgICAgICcoaW5wdXQpJzogJzAnLFxuICAgICAgICAnW3N0eWxlLi0tdHVpLXNsaWRlci10cmFjay1jb2xvcl0nOiAnb3B0aW9ucy50cmFja0NvbG9yJyxcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlTbGlkZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzaXplOiBUdWlTaXplUyA9IHRoaXMub3B0aW9ucy5zaXplO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNlZ21lbnRzID0gMTtcblxuICAgIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5taW4pO1xuICAgIH1cblxuICAgIGdldCBtYXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5tYXggfHwgMTAwKTtcbiAgICB9XG5cbiAgICBnZXQgc3RlcCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTnVtYmVyKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0ZXApIHx8IDE7XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHtlbGVtZW50UmVmLCBjb250cm9sfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IG5vS2V5U3RlcHMgPSAhZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1rZXktc3RlcHMnKTtcblxuICAgICAgICBpZiAobm9LZXlTdGVwcyAmJiBjb250cm9sIGluc3RhbmNlb2YgTmdNb2RlbCkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiBkZXZlbG9wZXIgdXNlcyBgWyhuZ01vZGVsKV1gIGFuZCBwcm9ncmFtbWF0aWNhbGx5IGNoYW5nZSB2YWx1ZSxcbiAgICAgICAgICAgICAqIHRoZSBgZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlYCBpcyBlcXVhbCB0byB0aGUgcHJldmlvdXMgdmFsdWUgYXQgdGhpcyBtb21lbnQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHJldHVybiBjb250cm9sLnZpZXdNb2RlbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBOdW1iZXIoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlKSB8fCAwO1xuICAgIH1cblxuICAgIHNldCB2YWx1ZShuZXdWYWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gYCR7bmV3VmFsdWV9YDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tdHVpLXNsaWRlci1maWxsLXBlcmNlbnRhZ2UuJScpXG4gICAgZ2V0IHZhbHVlUGVyY2VudGFnZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKDEwMCAqICh0aGlzLnZhbHVlIC0gdGhpcy5taW4pKSAvICh0aGlzLm1heCAtIHRoaXMubWluKSB8fCAwO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuLS10dWktc2xpZGVyLXNlZ21lbnQtd2lkdGguJScpXG4gICAgZ2V0IHNlZ21lbnRXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMTAwIC8gTWF0aC5tYXgoMSwgdGhpcy5zZWdtZW50cyk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fb2xkLWVkZ2UnKVxuICAgIGdldCBpc09sZEVkZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc0VkZ2VPbGRlclRoYW4oQ0hST01JVU1fRURHRV9TVEFSVF9WRVJTSU9OLCB0aGlzLnVzZXJBZ2VudCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9TTElERVJfT1BUSU9OUykgcmVhZG9ubHkgb3B0aW9uczogVHVpU2xpZGVyT3B0aW9ucyxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVVNFUl9BR0VOVCkgcHJpdmF0ZSByZWFkb25seSB1c2VyQWdlbnQ6IHN0cmluZyxcbiAgICApIHtcbiAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBOZ01vZGVsKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRoZSBWYWx1ZUFjY2Vzc29yLndyaXRlVmFsdWUgbWV0aG9kIGlzIGNhbGxlZCB0d2ljZSBvbiBhbnkgdmFsdWUgYWNjZXNzb3IgZHVyaW5nIGNvbXBvbmVudCBpbml0aWFsaXphdGlvbixcbiAgICAgICAgICAgICAqIHdoZW4gYSBjb250cm9sIGlzIGJvdW5kIHVzaW5nIFsobmdNb2RlbCldLCBmaXJzdCB0aW1lIHdpdGggYSBwaGFudG9tIG51bGwgdmFsdWUuXG4gICAgICAgICAgICAgKiBXaXRoIGBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaGAgdGhlIHNlY29uZCBjYWxsIG9mIHdyaXRlVmFsdWUgd2l0aCByZWFsIHZhbHVlIGRvbid0IHJlLXJlbmRlciB0aGUgdmlldy5cbiAgICAgICAgICAgICAqIF9fX1xuICAgICAgICAgICAgICogU2VlIHRoaXMge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE0OTg4IGlzc3VlfVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb250cm9sLnZhbHVlQ2hhbmdlcz8ucGlwZSh3YXRjaChjaGFuZ2VEZXRlY3RvclJlZiksIHRha2UoMSkpLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -67,7 +67,7 @@ var TuiTabComponent = /** @class */ (function () {
67
67
  '[style.--tui-tab-margin.px]': 'margin',
68
68
  type: 'button',
69
69
  },
70
- styles: [":host-context(._underline):hover{box-shadow:inset 0 -2px var(--tui-base-03)}:host-context([tuiTabs]>):first-child,:host-context([tuiTabs]>:first-child),:host-context(tui-tabs>):first-child,:host-context(tui-tabs>:first-child){margin-left:0}:host{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:0 0;font-size:inherit;line-height:inherit;position:relative;display:flex;flex-shrink:0;height:100%;box-sizing:border-box;justify-content:space-between;align-items:center;white-space:nowrap;cursor:pointer;outline:0;text-decoration:none;color:inherit;transition-property:color,box-shadow,opacity;margin-left:var(--tui-tab-margin,1.5rem)}:host:hover{color:var(--tui-text-01)}:host:disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}:host:not([data-mode])._active{opacity:1;color:var(--tui-text-01);box-shadow:none}:host[data-mode=onDark]{color:rgba(255,255,255,.72)}:host[data-mode=onDark]._active,:host[data-mode=onDark]:hover{color:#fff}:host[data-mode=onDark]._focus-visible .t-highlight{background:var(--tui-clear-inverse);color:var(--tui-text-01)}:host[data-mode=onLight]{color:var(--tui-text-02)}:host[data-mode=onLight]._active,:host[data-mode=onLight]:hover{color:var(--tui-text-01)}:host[data-mode=onLight]._focus-visible .t-highlight{background:var(--tui-text-01);color:#fff}:host._focus-visible .t-highlight{background:var(--tui-selection)}:host._android{transition-property:opacity;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;height:3rem;flex:1;flex-shrink:0;justify-content:center;margin:0;text-transform:uppercase;color:var(--tui-base-09);opacity:.5;font-size:.875rem;font-weight:500;letter-spacing:-.008125rem;font-family:-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}:host._android:hover{box-shadow:none}:host._android._active{opacity:1;color:var(--tui-base-09)}:host._android .t-highlight{width:auto}:host._ios{height:1.75rem;flex:1;flex-shrink:0;justify-content:center;margin:0;color:var(--tui-base-01);opacity:1;font-size:.8125rem;font-weight:500;letter-spacing:-.005rem;font-family:-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}:host._ios:hover{box-shadow:none}:host._ios._active{font-size:.875rem;font-weight:600;color:var(--tui-link)}:host._ios .t-highlight{width:auto}.t-highlight{display:inline-flex;width:100%;align-items:center;justify-content:inherit}.t-highlight ::ng-deep>*{flex-shrink:0}"]
70
+ styles: [":host-context(._underline):hover{box-shadow:inset 0 -2px var(--tui-base-03)}:host-context([tuiTabs]>):first-child,:host-context([tuiTabs]>:first-child),:host-context(tui-tabs>):first-child,:host-context(tui-tabs>:first-child){margin-left:0}:host{transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:0 0;font-size:inherit;line-height:inherit;position:relative;display:flex;flex-shrink:0;height:100%;box-sizing:border-box;justify-content:space-between;align-items:center;white-space:nowrap;cursor:pointer;outline:0;text-decoration:none;color:inherit;transition-property:color,box-shadow,opacity;margin-left:var(--tui-tab-margin,1.5rem)}:host:disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}:host:not([data-mode])._active{opacity:1;color:var(--tui-text-01);box-shadow:none}:host[data-mode=onDark]{color:rgba(255,255,255,.72)}:host[data-mode=onDark]._active,:host[data-mode=onDark]:hover{color:#fff}:host[data-mode=onDark]._focus-visible .t-highlight{background:var(--tui-clear-inverse);color:var(--tui-text-01)}:host[data-mode=onLight]{color:var(--tui-text-02)}:host[data-mode=onLight]._active,:host[data-mode=onLight]:hover{color:var(--tui-text-01)}:host[data-mode=onLight]._focus-visible .t-highlight{background:var(--tui-text-01);color:#fff}:host._focus-visible .t-highlight{background:var(--tui-selection)}:host._android{transition-property:opacity;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;height:3rem;flex:1;flex-shrink:0;justify-content:center;margin:0;text-transform:uppercase;color:var(--tui-base-09);opacity:.5;font-size:.875rem;font-weight:500;letter-spacing:-.008125rem;font-family:-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}:host._android:hover{box-shadow:none}:host._android._active{opacity:1;color:var(--tui-base-09)}:host._android .t-highlight{width:auto}:host._ios{height:1.75rem;flex:1;flex-shrink:0;justify-content:center;margin:0;color:var(--tui-base-01);opacity:1;font-size:.8125rem;font-weight:500;letter-spacing:-.005rem;font-family:-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}:host._ios:hover{box-shadow:none}:host._ios._active{font-size:.875rem;font-weight:600;color:var(--tui-link)}:host._ios .t-highlight{width:auto}@media (hover:hover){:host:hover{color:var(--tui-text-01)}}.t-highlight{display:inline-flex;width:100%;align-items:center;justify-content:inherit}.t-highlight ::ng-deep>*{flex-shrink:0}"]
71
71
  }),
72
72
  __param(0, Optional()),
73
73
  __param(0, Inject(RouterLinkActive)),
@@ -1,22 +1,36 @@
1
1
  import { __decorate, __param } from 'tslib';
2
- import { ElementRef, Inject, Renderer2, ChangeDetectorRef, NgZone, ViewChild, Input, HostBinding, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
2
+ import { InjectionToken, ElementRef, Inject, Renderer2, ChangeDetectorRef, NgZone, ViewChild, Input, Output, HostBinding, HostListener, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
3
  import { typedFromEvent, isCurrentTarget, tuiDefaultProp, tuiPure, TuiResizeModule } from '@taiga-ui/cdk';
4
4
  import { PolymorpheusOutletComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
5
- import { BehaviorSubject, of } from 'rxjs';
6
- import { startWith, pairwise, switchMap, filter, mapTo } from 'rxjs/operators';
5
+ import { BehaviorSubject, Subject, of } from 'rxjs';
6
+ import { distinctUntilChanged, startWith, pairwise, switchMap, filter, mapTo } from 'rxjs/operators';
7
7
  import { CommonModule } from '@angular/common';
8
8
  import { TuiHintModule } from '@taiga-ui/core';
9
9
 
10
+ const TUI_LINE_CLAMP_DEFAULT_OPTIONS = {
11
+ showHint: true,
12
+ };
13
+ const TUI_LINE_CLAMP_OPTIONS = new InjectionToken('Default parameters for line-clamp component', {
14
+ factory: () => TUI_LINE_CLAMP_DEFAULT_OPTIONS,
15
+ });
16
+ const tuiLineClampOptionsProvider = (options) => ({
17
+ provide: TUI_LINE_CLAMP_OPTIONS,
18
+ useValue: Object.assign(Object.assign({}, TUI_LINE_CLAMP_DEFAULT_OPTIONS), options),
19
+ });
20
+
10
21
  let TuiLineClampComponent = class TuiLineClampComponent {
11
- constructor(elementRef, renderer, cd, ngZone) {
22
+ constructor(elementRef, renderer, cd, ngZone, options) {
12
23
  this.elementRef = elementRef;
13
24
  this.renderer = renderer;
14
25
  this.cd = cd;
15
26
  this.ngZone = ngZone;
27
+ this.options = options;
16
28
  this.linesLimit$ = new BehaviorSubject(1);
29
+ this.isOverflown$ = new Subject();
17
30
  this.initialized = false;
18
31
  this.lineHeight = 24;
19
32
  this.content = '';
33
+ this.overflownChange = this.isOverflown$.pipe(distinctUntilChanged());
20
34
  this.skipInitialTransition();
21
35
  }
22
36
  set linesLimit(linesLimit) {
@@ -37,7 +51,7 @@ let TuiLineClampComponent = class TuiLineClampComponent {
37
51
  return scrollHeight - clientHeight > 4 || scrollWidth - clientWidth > 0;
38
52
  }
39
53
  get computedContent() {
40
- return this.overflown ? this.content : '';
54
+ return this.options.showHint && this.overflown ? this.content : '';
41
55
  }
42
56
  get maxHeight() {
43
57
  return this.initialized ? this.lineHeight * this.linesLimit$.value : null;
@@ -51,6 +65,9 @@ let TuiLineClampComponent = class TuiLineClampComponent {
51
65
  ngAfterViewInit() {
52
66
  this.initialized = true;
53
67
  }
68
+ ngDoCheck() {
69
+ this.isOverflown$.next(this.overflown);
70
+ }
54
71
  skipInitialTransition() {
55
72
  this.ngZone.runOutsideAngular(() => {
56
73
  setTimeout(() => {
@@ -64,7 +81,8 @@ TuiLineClampComponent.ctorParameters = () => [
64
81
  { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
65
82
  { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
66
83
  { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
67
- { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] }
84
+ { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
85
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_LINE_CLAMP_OPTIONS,] }] }
68
86
  ];
69
87
  __decorate([
70
88
  ViewChild(PolymorpheusOutletComponent, { read: ElementRef })
@@ -81,6 +99,9 @@ __decorate([
81
99
  Input(),
82
100
  tuiDefaultProp()
83
101
  ], TuiLineClampComponent.prototype, "content", void 0);
102
+ __decorate([
103
+ Output()
104
+ ], TuiLineClampComponent.prototype, "overflownChange", void 0);
84
105
  __decorate([
85
106
  tuiPure
86
107
  ], TuiLineClampComponent.prototype, "lineClamp$", null);
@@ -90,6 +111,9 @@ __decorate([
90
111
  __decorate([
91
112
  HostBinding('style.height.px')
92
113
  ], TuiLineClampComponent.prototype, "height", null);
114
+ __decorate([
115
+ HostListener('transitionend')
116
+ ], TuiLineClampComponent.prototype, "updateView", null);
93
117
  TuiLineClampComponent = __decorate([
94
118
  Component({
95
119
  selector: 'tui-line-clamp',
@@ -100,7 +124,8 @@ TuiLineClampComponent = __decorate([
100
124
  __param(0, Inject(ElementRef)),
101
125
  __param(1, Inject(Renderer2)),
102
126
  __param(2, Inject(ChangeDetectorRef)),
103
- __param(3, Inject(NgZone))
127
+ __param(3, Inject(NgZone)),
128
+ __param(4, Inject(TUI_LINE_CLAMP_OPTIONS))
104
129
  ], TuiLineClampComponent);
105
130
 
106
131
  let TuiLineClampModule = class TuiLineClampModule {
@@ -117,5 +142,5 @@ TuiLineClampModule = __decorate([
117
142
  * Generated bundle index. Do not edit.
118
143
  */
119
144
 
120
- export { TuiLineClampComponent, TuiLineClampModule };
145
+ export { TUI_LINE_CLAMP_DEFAULT_OPTIONS, TUI_LINE_CLAMP_OPTIONS, TuiLineClampComponent, TuiLineClampModule, tuiLineClampOptionsProvider };
121
146
  //# sourceMappingURL=taiga-ui-kit-components-line-clamp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-line-clamp.js","sources":["ng://@taiga-ui/kit/components/line-clamp/line-clamp.component.ts","ng://@taiga-ui/kit/components/line-clamp/line-clamp.module.ts","ng://@taiga-ui/kit/components/line-clamp/taiga-ui-kit-components-line-clamp.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n NgZone,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {isCurrentTarget, tuiDefaultProp, tuiPure, typedFromEvent} from '@taiga-ui/cdk';\nimport {PolymorpheusContent, PolymorpheusOutletComponent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable, of} from 'rxjs';\nimport {filter, mapTo, pairwise, startWith, switchMap} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-line-clamp',\n templateUrl: './line-clamp.template.html',\n styleUrls: ['./line-clamp.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiLineClampComponent implements AfterViewInit {\n @ViewChild(PolymorpheusOutletComponent, {read: ElementRef})\n private readonly outlet?: ElementRef<HTMLElement>;\n\n private readonly linesLimit$ = new BehaviorSubject(1);\n private initialized = false;\n\n @Input()\n @tuiDefaultProp()\n set linesLimit(linesLimit: number) {\n this.linesLimit$.next(linesLimit);\n }\n\n @Input()\n @tuiDefaultProp()\n lineHeight = 24;\n\n @Input()\n @tuiDefaultProp()\n content: PolymorpheusContent = '';\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(ChangeDetectorRef) private readonly cd: ChangeDetectorRef,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.skipInitialTransition();\n }\n\n @tuiPure\n get lineClamp$(): Observable<number> {\n return this.linesLimit$.pipe(\n startWith(1),\n pairwise(),\n switchMap(([prev, next]) =>\n next >= prev\n ? of(next)\n : typedFromEvent(this.elementRef.nativeElement, 'transitionend').pipe(\n filter(isCurrentTarget),\n mapTo(next),\n ),\n ),\n );\n }\n\n get overflown(): boolean {\n if (!this.outlet) {\n return false;\n }\n\n const {scrollHeight, scrollWidth} = this.outlet.nativeElement;\n const {clientHeight, clientWidth} = this.elementRef.nativeElement;\n\n // 4px buffer for IE/Edge incorrectly rounding scrollHeight\n return scrollHeight - clientHeight > 4 || scrollWidth - clientWidth > 0;\n }\n\n get computedContent(): PolymorpheusContent {\n return this.overflown ? this.content : '';\n }\n\n @HostBinding('style.maxHeight.px')\n get maxHeight(): number | null {\n return this.initialized ? this.lineHeight * this.linesLimit$.value : null;\n }\n\n @HostBinding('style.height.px')\n get height(): number | null {\n return !this.outlet ? 0 : this.outlet.nativeElement.scrollHeight + 4 || null;\n }\n\n updateView(): void {\n this.cd.detectChanges();\n }\n\n ngAfterViewInit(): void {\n this.initialized = true;\n }\n\n private skipInitialTransition(): void {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.renderer.addClass(this.elementRef.nativeElement, '_initialized');\n this.cd.detectChanges();\n });\n });\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiResizeModule} from '@taiga-ui/cdk';\nimport {TuiHintModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiLineClampComponent} from './line-clamp.component';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule, TuiHintModule, TuiResizeModule],\n declarations: [TuiLineClampComponent],\n exports: [TuiLineClampComponent],\n})\nexport class TuiLineClampModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;IAwBa,qBAAqB,GAAlC,MAAa,qBAAqB;IAqB9B,YACyC,UAAmC,EACpC,QAAmB,EACX,EAAqB,EAChC,MAAc;QAHV,eAAU,GAAV,UAAU,CAAyB;QACpC,aAAQ,GAAR,QAAQ,CAAW;QACX,OAAE,GAAF,EAAE,CAAmB;QAChC,WAAM,GAAN,MAAM,CAAQ;QArBlC,gBAAW,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QAC9C,gBAAW,GAAG,KAAK,CAAC;QAU5B,eAAU,GAAG,EAAE,CAAC;QAIhB,YAAO,GAAwB,EAAE,CAAC;QAQ9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAChC;IAnBD,IAAI,UAAU,CAAC,UAAkB;QAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACrC;IAoBD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CACxB,SAAS,CAAC,CAAC,CAAC,EACZ,QAAQ,EAAE,EACV,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KACnB,IAAI,IAAI,IAAI;cACN,EAAE,CAAC,IAAI,CAAC;cACR,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,IAAI,CAC/D,MAAM,CAAC,eAAe,CAAC,EACvB,KAAK,CAAC,IAAI,CAAC,CACd,CACV,CACJ,CAAC;KACL;IAED,IAAI,SAAS;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,EAAC,YAAY,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAC9D,MAAM,EAAC,YAAY,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;;QAGlE,OAAO,YAAY,GAAG,YAAY,GAAG,CAAC,IAAI,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;KAC3E;IAED,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KAC7C;IAGD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;KAC7E;IAGD,IAAI,MAAM;QACN,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC;KAChF;IAED,UAAU;QACN,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KAC3B;IAED,eAAe;QACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KAC3B;IAEO,qBAAqB;QACzB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAC1B,UAAU,CAAC;gBACP,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;gBACtE,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;aAC3B,CAAC,CAAC;SACN,CAAC,CAAC;KACN;EACJ;;YAlEwD,UAAU,uBAA1D,MAAM,SAAC,UAAU;YAC4B,SAAS,uBAAtD,MAAM,SAAC,SAAS;YAC+B,iBAAiB,uBAAhE,MAAM,SAAC,iBAAiB;YACgB,MAAM,uBAA9C,MAAM,SAAC,MAAM;;AAvBlB;IADC,SAAS,CAAC,2BAA2B,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;qDACT;AAOlD;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;uDAGhB;AAID;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;yDACD;AAIhB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;sDACiB;AAYlC;IADC,OAAO;uDAcP;AAmBD;IADC,WAAW,CAAC,oBAAoB,CAAC;sDAGjC;AAGD;IADC,WAAW,CAAC,iBAAiB,CAAC;mDAG9B;AAtEQ,qBAAqB;IANjC,SAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,+RAAyC;QAEzC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;KAClD,CAAC;IAuBO,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAClB,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;IACjB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;GAzBV,qBAAqB,CAwFjC;;ICnGY,kBAAkB,GAA/B,MAAa,kBAAkB;EAAG;AAArB,kBAAkB;IAL9B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,CAAC;QAC3E,YAAY,EAAE,CAAC,qBAAqB,CAAC;QACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;KACnC,CAAC;GACW,kBAAkB,CAAG;;ACblC;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-line-clamp.js","sources":["ng://@taiga-ui/kit/components/line-clamp/line-clamp-options.ts","ng://@taiga-ui/kit/components/line-clamp/line-clamp.component.ts","ng://@taiga-ui/kit/components/line-clamp/line-clamp.module.ts","ng://@taiga-ui/kit/components/line-clamp/taiga-ui-kit-components-line-clamp.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\n\nexport interface TuiLineClampOptions {\n readonly showHint: boolean;\n}\n\nexport const TUI_LINE_CLAMP_DEFAULT_OPTIONS: TuiLineClampOptions = {\n showHint: true,\n};\n\nexport const TUI_LINE_CLAMP_OPTIONS = new InjectionToken<TuiLineClampOptions>(\n 'Default parameters for line-clamp component',\n {\n factory: () => TUI_LINE_CLAMP_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiLineClampOptionsProvider: (\n options: Partial<TuiLineClampOptions>,\n) => ValueProvider = (options: Partial<TuiLineClampOptions>) => ({\n provide: TUI_LINE_CLAMP_OPTIONS,\n useValue: {...TUI_LINE_CLAMP_DEFAULT_OPTIONS, ...options},\n});\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {isCurrentTarget, tuiDefaultProp, tuiPure, typedFromEvent} from '@taiga-ui/cdk';\nimport {PolymorpheusContent, PolymorpheusOutletComponent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable, of, Subject} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n pairwise,\n startWith,\n switchMap,\n} from 'rxjs/operators';\n\nimport {TUI_LINE_CLAMP_OPTIONS, TuiLineClampOptions} from './line-clamp-options';\n\n@Component({\n selector: 'tui-line-clamp',\n templateUrl: './line-clamp.template.html',\n styleUrls: ['./line-clamp.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiLineClampComponent implements AfterViewInit, DoCheck {\n @ViewChild(PolymorpheusOutletComponent, {read: ElementRef})\n private readonly outlet?: ElementRef<HTMLElement>;\n\n private readonly linesLimit$ = new BehaviorSubject(1);\n private readonly isOverflown$ = new Subject<boolean>();\n private initialized = false;\n\n @Input()\n @tuiDefaultProp()\n set linesLimit(linesLimit: number) {\n this.linesLimit$.next(linesLimit);\n }\n\n @Input()\n @tuiDefaultProp()\n lineHeight = 24;\n\n @Input()\n @tuiDefaultProp()\n content: PolymorpheusContent = '';\n\n @Output()\n readonly overflownChange: Observable<boolean> = this.isOverflown$.pipe(\n distinctUntilChanged(),\n );\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(ChangeDetectorRef) private readonly cd: ChangeDetectorRef,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(TUI_LINE_CLAMP_OPTIONS) private readonly options: TuiLineClampOptions,\n ) {\n this.skipInitialTransition();\n }\n\n @tuiPure\n get lineClamp$(): Observable<number> {\n return this.linesLimit$.pipe(\n startWith(1),\n pairwise(),\n switchMap(([prev, next]) =>\n next >= prev\n ? of(next)\n : typedFromEvent(this.elementRef.nativeElement, 'transitionend').pipe(\n filter(isCurrentTarget),\n mapTo(next),\n ),\n ),\n );\n }\n\n get overflown(): boolean {\n if (!this.outlet) {\n return false;\n }\n\n const {scrollHeight, scrollWidth} = this.outlet.nativeElement;\n const {clientHeight, clientWidth} = this.elementRef.nativeElement;\n\n // 4px buffer for IE/Edge incorrectly rounding scrollHeight\n return scrollHeight - clientHeight > 4 || scrollWidth - clientWidth > 0;\n }\n\n get computedContent(): PolymorpheusContent {\n return this.options.showHint && this.overflown ? this.content : '';\n }\n\n @HostBinding('style.maxHeight.px')\n get maxHeight(): number | null {\n return this.initialized ? this.lineHeight * this.linesLimit$.value : null;\n }\n\n @HostBinding('style.height.px')\n get height(): number | null {\n return !this.outlet ? 0 : this.outlet.nativeElement.scrollHeight + 4 || null;\n }\n\n @HostListener('transitionend')\n updateView(): void {\n this.cd.detectChanges();\n }\n\n ngAfterViewInit(): void {\n this.initialized = true;\n }\n\n ngDoCheck(): void {\n this.isOverflown$.next(this.overflown);\n }\n\n private skipInitialTransition(): void {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.renderer.addClass(this.elementRef.nativeElement, '_initialized');\n this.cd.detectChanges();\n });\n });\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiResizeModule} from '@taiga-ui/cdk';\nimport {TuiHintModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiLineClampComponent} from './line-clamp.component';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule, TuiHintModule, TuiResizeModule],\n declarations: [TuiLineClampComponent],\n exports: [TuiLineClampComponent],\n})\nexport class TuiLineClampModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAMa,8BAA8B,GAAwB;IAC/D,QAAQ,EAAE,IAAI;EAChB;MAEW,sBAAsB,GAAG,IAAI,cAAc,CACpD,6CAA6C,EAC7C;IACI,OAAO,EAAE,MAAM,8BAA8B;CAChD,EACH;MAEW,2BAA2B,GAEnB,CAAC,OAAqC,MAAM;IAC7D,OAAO,EAAE,sBAAsB;IAC/B,QAAQ,kCAAM,8BAA8B,GAAK,OAAO,CAAC;CAC5D;;ICcY,qBAAqB,GAAlC,MAAa,qBAAqB;IA2B9B,YACyC,UAAmC,EACpC,QAAmB,EACX,EAAqB,EAChC,MAAc,EACE,OAA4B;QAJxC,eAAU,GAAV,UAAU,CAAyB;QACpC,aAAQ,GAAR,QAAQ,CAAW;QACX,OAAE,GAAF,EAAE,CAAmB;QAChC,WAAM,GAAN,MAAM,CAAQ;QACE,YAAO,GAAP,OAAO,CAAqB;QA5BhE,gBAAW,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,iBAAY,GAAG,IAAI,OAAO,EAAW,CAAC;QAC/C,gBAAW,GAAG,KAAK,CAAC;QAU5B,eAAU,GAAG,EAAE,CAAC;QAIhB,YAAO,GAAwB,EAAE,CAAC;QAGzB,oBAAe,GAAwB,IAAI,CAAC,YAAY,CAAC,IAAI,CAClE,oBAAoB,EAAE,CACzB,CAAC;QASE,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAChC;IAzBD,IAAI,UAAU,CAAC,UAAkB;QAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACrC;IA0BD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CACxB,SAAS,CAAC,CAAC,CAAC,EACZ,QAAQ,EAAE,EACV,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KACnB,IAAI,IAAI,IAAI;cACN,EAAE,CAAC,IAAI,CAAC;cACR,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,IAAI,CAC/D,MAAM,CAAC,eAAe,CAAC,EACvB,KAAK,CAAC,IAAI,CAAC,CACd,CACV,CACJ,CAAC;KACL;IAED,IAAI,SAAS;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,EAAC,YAAY,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAC9D,MAAM,EAAC,YAAY,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;;QAGlE,OAAO,YAAY,GAAG,YAAY,GAAG,CAAC,IAAI,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;KAC3E;IAED,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACtE;IAGD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;KAC7E;IAGD,IAAI,MAAM;QACN,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC;KAChF;IAGD,UAAU;QACN,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KAC3B;IAED,eAAe;QACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KAC3B;IAED,SAAS;QACL,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC1C;IAEO,qBAAqB;QACzB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAC1B,UAAU,CAAC;gBACP,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;gBACtE,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;aAC3B,CAAC,CAAC;SACN,CAAC,CAAC;KACN;EACJ;;YAxEwD,UAAU,uBAA1D,MAAM,SAAC,UAAU;YAC4B,SAAS,uBAAtD,MAAM,SAAC,SAAS;YAC+B,iBAAiB,uBAAhE,MAAM,SAAC,iBAAiB;YACgB,MAAM,uBAA9C,MAAM,SAAC,MAAM;4CACb,MAAM,SAAC,sBAAsB;;AA9BlC;IADC,SAAS,CAAC,2BAA2B,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;qDACT;AAQlD;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;uDAGhB;AAID;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;yDACD;AAIhB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;sDACiB;AAGlC;IADC,MAAM,EAAE;8DAGP;AAaF;IADC,OAAO;uDAcP;AAmBD;IADC,WAAW,CAAC,oBAAoB,CAAC;sDAGjC;AAGD;IADC,WAAW,CAAC,iBAAiB,CAAC;mDAG9B;AAGD;IADC,YAAY,CAAC,eAAe,CAAC;uDAG7B;AAlFQ,qBAAqB;IANjC,SAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,+RAAyC;QAEzC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;KAClD,CAAC;IA6BO,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAClB,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;IACjB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;IACd,WAAA,MAAM,CAAC,sBAAsB,CAAC,CAAA;GAhC1B,qBAAqB,CAoGjC;;IC3HY,kBAAkB,GAA/B,MAAa,kBAAkB;EAAG;AAArB,kBAAkB;IAL9B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,CAAC;QAC3E,YAAY,EAAE,CAAC,qBAAqB,CAAC;QACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;KACnC,CAAC;GACW,kBAAkB,CAAG;;ACblC;;;;;;"}
@@ -26,6 +26,7 @@ function tuiSliderOptionsProvider(options) {
26
26
  let TuiSliderComponent = class TuiSliderComponent {
27
27
  constructor(control, changeDetectorRef, options, elementRef, userAgent) {
28
28
  var _a;
29
+ this.control = control;
29
30
  this.options = options;
30
31
  this.elementRef = elementRef;
31
32
  this.userAgent = userAgent;
@@ -52,7 +53,16 @@ let TuiSliderComponent = class TuiSliderComponent {
52
53
  return Number(this.elementRef.nativeElement.step) || 1;
53
54
  }
54
55
  get value() {
55
- return Number(this.elementRef.nativeElement.value) || 0;
56
+ const { elementRef, control } = this;
57
+ const noKeySteps = !elementRef.nativeElement.hasAttribute('data-key-steps');
58
+ if (noKeySteps && control instanceof NgModel) {
59
+ /**
60
+ * If developer uses `[(ngModel)]` and programmatically change value,
61
+ * the `elementRef.nativeElement.value` is equal to the previous value at this moment.
62
+ */
63
+ return control.viewModel;
64
+ }
65
+ return Number(elementRef.nativeElement.value) || 0;
56
66
  }
57
67
  set value(newValue) {
58
68
  this.elementRef.nativeElement.value = `${newValue}`;
@@ -190,6 +200,7 @@ TuiSliderKeyStepsDirective = __decorate([
190
200
  Directive({
191
201
  selector: 'input[tuiSlider][keySteps]',
192
202
  host: {
203
+ '[attr.data-key-steps]': 'true',
193
204
  '[attr.aria-valuenow]': 'controlValue',
194
205
  '[attr.aria-valuemin]': 'min',
195
206
  '[attr.aria-valuemax]': 'max',
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-slider.js","sources":["ng://@taiga-ui/kit/components/slider/slider-options.ts","ng://@taiga-ui/kit/components/slider/slider.component.ts","ng://@taiga-ui/kit/components/slider/slider-key-steps.directive.ts","ng://@taiga-ui/kit/components/slider/slider-old.component.ts","ng://@taiga-ui/kit/components/slider/slider-readonly.directive.ts","ng://@taiga-ui/kit/components/slider/slider.module.ts","ng://@taiga-ui/kit/components/slider/taiga-ui-kit-components-slider.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiSizeS} from '@taiga-ui/core';\n\nexport interface TuiSliderOptions {\n readonly size: TuiSizeS;\n readonly trackColor: string;\n}\n\nexport const TUI_SLIDER_DEFAULT_OPTIONS: TuiSliderOptions = {\n size: 'm',\n trackColor: 'var(--tui-base-03)',\n};\n\nexport const TUI_SLIDER_OPTIONS = new InjectionToken<TuiSliderOptions>(\n 'Default parameters for Slider component',\n {factory: () => TUI_SLIDER_DEFAULT_OPTIONS},\n);\n\nexport function tuiSliderOptionsProvider(\n options: Partial<TuiSliderOptions>,\n): ValueProvider {\n return {\n provide: TUI_SLIDER_OPTIONS,\n useValue: {...TUI_SLIDER_DEFAULT_OPTIONS, ...options},\n };\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl, NgModel} from '@angular/forms';\nimport {USER_AGENT} from '@ng-web-apis/common';\nimport {\n CHROMIUM_EDGE_START_VERSION,\n isEdgeOlderThan,\n tuiDefaultProp,\n watch,\n} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\nimport {take} from 'rxjs/operators';\n\nimport {TUI_SLIDER_OPTIONS, TuiSliderOptions} from './slider-options';\n\n@Component({\n /**\n * We have to call our component as `<input tuiSlider type=\"range\" ... />`\n * because otherwise built-in angular\n * {@link https://github.com/angular/angular/blob/master/packages/forms/src/directives/range_value_accessor.ts#L45 RangeValueAccessor}\n * cannot be matched by its CSS selector.\n */\n selector: 'input[type=range][tuiSlider]',\n template: ``,\n styleUrls: ['./slider.style.less'],\n host: {\n /**\n * For change detection.\n * Webkit does not have built-in method for customization of filling progress (as Firefox).\n * We draw filling of progress by `background: linear-gradient(...)` of the track.\n * This function triggers change detection (for {@link valuePercentage} function) when we drag thumb of the input.\n */\n '(input)': '0',\n '[style.--tui-slider-track-color]': 'options.trackColor',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSliderComponent {\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = this.options.size;\n\n @Input()\n @tuiDefaultProp()\n segments = 1;\n\n get min(): number {\n return Number(this.elementRef.nativeElement.min);\n }\n\n get max(): number {\n return Number(this.elementRef.nativeElement.max || 100);\n }\n\n get step(): number {\n return Number(this.elementRef.nativeElement.step) || 1;\n }\n\n get value(): number {\n return Number(this.elementRef.nativeElement.value) || 0;\n }\n\n set value(newValue: number) {\n this.elementRef.nativeElement.value = `${newValue}`;\n }\n\n @HostBinding('style.--tui-slider-fill-percentage.%')\n get valuePercentage(): number {\n return (100 * (this.value - this.min)) / (this.max - this.min) || 0;\n }\n\n @HostBinding('style.--tui-slider-segment-width.%')\n get segmentWidth(): number {\n return 100 / Math.max(1, this.segments);\n }\n\n @HostBinding('class._old-edge')\n get isOldEdge(): boolean {\n return isEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent);\n }\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_SLIDER_OPTIONS) readonly options: TuiSliderOptions,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n ) {\n if (control instanceof NgModel) {\n /**\n * The ValueAccessor.writeValue method is called twice on any value accessor during component initialization,\n * when a control is bound using [(ngModel)], first time with a phantom null value.\n * With `changeDetection: ChangeDetectionStrategy.OnPush` the second call of writeValue with real value don't re-render the view.\n * ___\n * See this {@link https://github.com/angular/angular/issues/14988 issue}\n */\n control.valueChanges?.pipe(watch(changeDetectorRef), take(1)).subscribe();\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n Self,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n clamp,\n isNativeFocused,\n tuiAssert,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {\n tuiCheckKeyStepsHaveMinMaxPercents,\n tuiKeyStepValueToPercentage,\n tuiPercentageToKeyStepValue,\n} from '@taiga-ui/kit/utils';\nimport {map} from 'rxjs/operators';\n\nimport {TuiSliderComponent} from './slider.component';\n\n// @dynamic\n@Directive({\n selector: 'input[tuiSlider][keySteps]',\n host: {\n '[attr.aria-valuenow]': 'controlValue',\n '[attr.aria-valuemin]': 'min',\n '[attr.aria-valuemax]': 'max',\n },\n})\nexport class TuiSliderKeyStepsDirective\n extends AbstractTuiControl<number>\n implements TuiFocusableElementAccessor\n{\n @Input()\n @tuiDefaultProp(\n tuiCheckKeyStepsHaveMinMaxPercents,\n 'Should contain min and max values',\n )\n keySteps: TuiKeySteps = [];\n\n @Output()\n keyStepsInput = typedFromEvent(this.elementRef.nativeElement, 'input').pipe(\n map(() => this.controlValue),\n );\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.computedDisabled ? null : this.elementRef.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get min(): number {\n return this.keySteps[0]?.[1] || 0;\n }\n\n get max(): number {\n return this.keySteps[this.keySteps.length - 1]?.[1] || 100;\n }\n\n get controlValue(): number {\n return tuiPercentageToKeyStepValue(this.slider.valuePercentage, this.keySteps);\n }\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(TuiSliderComponent) private readonly slider: TuiSliderComponent,\n ) {\n super(control, changeDetectorRef);\n }\n\n @HostListener('change')\n updateControlValue(): void {\n this.updateValue(this.controlValue);\n }\n\n writeValue(controlValue: number | null): void {\n if (controlValue === null) {\n return;\n }\n\n const clampedControlValue = clamp(controlValue, this.min, this.max);\n\n tuiAssert.assert(\n controlValue === clampedControlValue,\n '\\n[SliderKeySteps]: You cannot programmatically set value which is less/more than min/max',\n );\n\n this.slider.value = this.transformToNativeValue(clampedControlValue);\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n private transformToNativeValue(controlValue: number): number {\n const {min, max} = this.slider;\n const newValuePercentage = tuiKeyStepValueToPercentage(\n controlValue,\n this.keySteps,\n );\n\n return (newValuePercentage * (max - min)) / 100 + min;\n }\n}\n\n/**\n * @deprecated DONT USE IT! It is just temporary solution for internal purposes only. We will delete it in next major release.\n * TODO delete it in v3.0\n *\n */\n@Pipe({name: 'tuiSliderTickLabel'})\nexport class TuiSliderTickLabelPipe implements PipeTransform {\n transform(tickIndex: number, totalSegments: number, keySteps: TuiKeySteps): number {\n const percentage = (100 / totalSegments) * tickIndex;\n\n return tuiPercentageToKeyStepValue(percentage, keySteps);\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Inject,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {AbstractTuiSlider} from '@taiga-ui/kit/abstract';\nimport {TUI_FROM_TO_TEXTS} from '@taiga-ui/kit/tokens';\nimport {Observable} from 'rxjs';\n\n/**\n * @deprecated use {@link TuiSliderComponent} instead\n * TODO: 3.0 remove\n */\n// @dynamic\n@Component({\n selector: 'tui-slider',\n templateUrl: '../../abstract/slider/slider.common.template.html',\n styleUrls: [\n '../../abstract/slider/slider.common.style.less',\n './slider-old.style.less',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiSliderOldComponent),\n },\n ],\n})\nexport class TuiSliderOldComponent\n extends AbstractTuiSlider<number>\n implements TuiFocusableElementAccessor\n{\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(TUI_FROM_TO_TEXTS) fromToTexts$: Observable<[string, string]>,\n ) {\n super(control, changeDetectorRef, documentRef, fromToTexts$);\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.dotRight ? this.dotRight.nativeElement : null;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get left(): number {\n return 0;\n }\n\n get right(): number {\n return 100 - 100 * this.getFractionFromValue(this.value);\n }\n\n processValue(value: number): void {\n this.updateValue(this.valueGuard(value));\n }\n\n decrement(): void {\n this.processStep(false);\n }\n\n increment(): void {\n this.processStep(true);\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n protected processStep(increment: boolean): void {\n const fraction = this.getFractionFromValue(this.value);\n const step = this.computedStep;\n const value = this.getValueFromFraction(\n increment ? fraction + step : fraction - step,\n );\n\n this.processValue(value);\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, ElementRef, HostListener, Inject, Input} from '@angular/core';\nimport {\n tuiCoerceBooleanProperty,\n tuiDefaultProp,\n TuiDestroyService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {combineLatest, merge, Observable} from 'rxjs';\nimport {filter, mapTo, takeUntil, tap} from 'rxjs/operators';\n\nconst SLIDER_INTERACTION_KEYS = new Set([\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n]);\n\n/**\n * Native <input type='range' readonly> doesn't work.\n * This directive imitates this native behaviour.\n */\n// @dynamic\n@Directive({\n selector: 'input[tuiSlider][readonly]',\n providers: [TuiDestroyService],\n})\nexport class TuiSliderReadonlyDirective {\n @Input()\n @tuiDefaultProp()\n readonly: string | boolean = true;\n\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLInputElement>,\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(TuiDestroyService)\n destroy$: Observable<unknown>,\n ) {\n const touchStart$ = typedFromEvent(elementRef.nativeElement, 'touchstart', {\n passive: false,\n });\n const touchMove$ = typedFromEvent(documentRef, 'touchmove', {\n passive: false,\n });\n const touchEnd$ = typedFromEvent(documentRef, 'touchend', {\n passive: true,\n });\n\n const shouldPreventMove$ = merge(\n touchStart$.pipe(\n tap(e => this.preventEvent(e)),\n mapTo(true),\n ),\n touchEnd$.pipe(mapTo(false)),\n );\n\n /**\n * @bad TODO think about another solution.\n * Keep in mind that preventing touch event (on slider) inside `@HostListener('touchstart')` doesn't work for mobile chrome.\n */\n combineLatest([touchMove$, shouldPreventMove$])\n .pipe(\n filter(([_, shouldPreventMove]) => shouldPreventMove),\n takeUntil(destroy$),\n )\n .subscribe(([moveEvent]) => this.preventEvent(moveEvent));\n }\n\n @HostListener('mousedown', ['$event'])\n preventEvent(event: Event): void {\n if (event.cancelable && tuiCoerceBooleanProperty(this.readonly)) {\n event.preventDefault();\n }\n }\n\n @HostListener('keydown', ['$event'])\n preventKeyboardInteraction(event: KeyboardEvent): void {\n if (SLIDER_INTERACTION_KEYS.has(event.key)) {\n this.preventEvent(event);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiActiveZoneModule,\n TuiFocusableModule,\n TuiFocusVisibleModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiFormatNumberPipeModule} from '@taiga-ui/core';\n\nimport {TuiSliderComponent} from './slider.component';\nimport {\n TuiSliderKeyStepsDirective,\n TuiSliderTickLabelPipe,\n} from './slider-key-steps.directive';\nimport {TuiSliderOldComponent} from './slider-old.component';\nimport {TuiSliderReadonlyDirective} from './slider-readonly.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiRepeatTimesModule,\n TuiFocusableModule,\n TuiFocusVisibleModule,\n TuiActiveZoneModule,\n TuiFormatNumberPipeModule,\n ],\n declarations: [\n TuiSliderComponent,\n TuiSliderKeyStepsDirective,\n TuiSliderReadonlyDirective,\n TuiSliderTickLabelPipe,\n TuiSliderOldComponent,\n ],\n exports: [\n TuiSliderComponent,\n TuiSliderKeyStepsDirective,\n TuiSliderReadonlyDirective,\n TuiSliderTickLabelPipe,\n TuiSliderOldComponent,\n ],\n})\nexport class TuiSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-slider.js","sources":["ng://@taiga-ui/kit/components/slider/slider-options.ts","ng://@taiga-ui/kit/components/slider/slider.component.ts","ng://@taiga-ui/kit/components/slider/slider-key-steps.directive.ts","ng://@taiga-ui/kit/components/slider/slider-old.component.ts","ng://@taiga-ui/kit/components/slider/slider-readonly.directive.ts","ng://@taiga-ui/kit/components/slider/slider.module.ts","ng://@taiga-ui/kit/components/slider/taiga-ui-kit-components-slider.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiSizeS} from '@taiga-ui/core';\n\nexport interface TuiSliderOptions {\n readonly size: TuiSizeS;\n readonly trackColor: string;\n}\n\nexport const TUI_SLIDER_DEFAULT_OPTIONS: TuiSliderOptions = {\n size: 'm',\n trackColor: 'var(--tui-base-03)',\n};\n\nexport const TUI_SLIDER_OPTIONS = new InjectionToken<TuiSliderOptions>(\n 'Default parameters for Slider component',\n {factory: () => TUI_SLIDER_DEFAULT_OPTIONS},\n);\n\nexport function tuiSliderOptionsProvider(\n options: Partial<TuiSliderOptions>,\n): ValueProvider {\n return {\n provide: TUI_SLIDER_OPTIONS,\n useValue: {...TUI_SLIDER_DEFAULT_OPTIONS, ...options},\n };\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl, NgModel} from '@angular/forms';\nimport {USER_AGENT} from '@ng-web-apis/common';\nimport {\n CHROMIUM_EDGE_START_VERSION,\n isEdgeOlderThan,\n tuiDefaultProp,\n watch,\n} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\nimport {take} from 'rxjs/operators';\n\nimport {TUI_SLIDER_OPTIONS, TuiSliderOptions} from './slider-options';\n\n@Component({\n /**\n * We have to call our component as `<input tuiSlider type=\"range\" ... />`\n * because otherwise built-in angular\n * {@link https://github.com/angular/angular/blob/master/packages/forms/src/directives/range_value_accessor.ts#L45 RangeValueAccessor}\n * cannot be matched by its CSS selector.\n */\n selector: 'input[type=range][tuiSlider]',\n template: ``,\n styleUrls: ['./slider.style.less'],\n host: {\n /**\n * For change detection.\n * Webkit does not have built-in method for customization of filling progress (as Firefox).\n * We draw filling of progress by `background: linear-gradient(...)` of the track.\n * This function triggers change detection (for {@link valuePercentage} function) when we drag thumb of the input.\n */\n '(input)': '0',\n '[style.--tui-slider-track-color]': 'options.trackColor',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSliderComponent {\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS = this.options.size;\n\n @Input()\n @tuiDefaultProp()\n segments = 1;\n\n get min(): number {\n return Number(this.elementRef.nativeElement.min);\n }\n\n get max(): number {\n return Number(this.elementRef.nativeElement.max || 100);\n }\n\n get step(): number {\n return Number(this.elementRef.nativeElement.step) || 1;\n }\n\n get value(): number {\n const {elementRef, control} = this;\n const noKeySteps = !elementRef.nativeElement.hasAttribute('data-key-steps');\n\n if (noKeySteps && control instanceof NgModel) {\n /**\n * If developer uses `[(ngModel)]` and programmatically change value,\n * the `elementRef.nativeElement.value` is equal to the previous value at this moment.\n */\n return control.viewModel;\n }\n\n return Number(elementRef.nativeElement.value) || 0;\n }\n\n set value(newValue: number) {\n this.elementRef.nativeElement.value = `${newValue}`;\n }\n\n @HostBinding('style.--tui-slider-fill-percentage.%')\n get valuePercentage(): number {\n return (100 * (this.value - this.min)) / (this.max - this.min) || 0;\n }\n\n @HostBinding('style.--tui-slider-segment-width.%')\n get segmentWidth(): number {\n return 100 / Math.max(1, this.segments);\n }\n\n @HostBinding('class._old-edge')\n get isOldEdge(): boolean {\n return isEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent);\n }\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n private readonly control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_SLIDER_OPTIONS) readonly options: TuiSliderOptions,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n ) {\n if (control instanceof NgModel) {\n /**\n * The ValueAccessor.writeValue method is called twice on any value accessor during component initialization,\n * when a control is bound using [(ngModel)], first time with a phantom null value.\n * With `changeDetection: ChangeDetectionStrategy.OnPush` the second call of writeValue with real value don't re-render the view.\n * ___\n * See this {@link https://github.com/angular/angular/issues/14988 issue}\n */\n control.valueChanges?.pipe(watch(changeDetectorRef), take(1)).subscribe();\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n Self,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n clamp,\n isNativeFocused,\n tuiAssert,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {\n tuiCheckKeyStepsHaveMinMaxPercents,\n tuiKeyStepValueToPercentage,\n tuiPercentageToKeyStepValue,\n} from '@taiga-ui/kit/utils';\nimport {map} from 'rxjs/operators';\n\nimport {TuiSliderComponent} from './slider.component';\n\n// @dynamic\n@Directive({\n selector: 'input[tuiSlider][keySteps]',\n host: {\n '[attr.data-key-steps]': 'true',\n '[attr.aria-valuenow]': 'controlValue',\n '[attr.aria-valuemin]': 'min',\n '[attr.aria-valuemax]': 'max',\n },\n})\nexport class TuiSliderKeyStepsDirective\n extends AbstractTuiControl<number>\n implements TuiFocusableElementAccessor\n{\n @Input()\n @tuiDefaultProp(\n tuiCheckKeyStepsHaveMinMaxPercents,\n 'Should contain min and max values',\n )\n keySteps: TuiKeySteps = [];\n\n @Output()\n keyStepsInput = typedFromEvent(this.elementRef.nativeElement, 'input').pipe(\n map(() => this.controlValue),\n );\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.computedDisabled ? null : this.elementRef.nativeElement;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get min(): number {\n return this.keySteps[0]?.[1] || 0;\n }\n\n get max(): number {\n return this.keySteps[this.keySteps.length - 1]?.[1] || 100;\n }\n\n get controlValue(): number {\n return tuiPercentageToKeyStepValue(this.slider.valuePercentage, this.keySteps);\n }\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(TuiSliderComponent) private readonly slider: TuiSliderComponent,\n ) {\n super(control, changeDetectorRef);\n }\n\n @HostListener('change')\n updateControlValue(): void {\n this.updateValue(this.controlValue);\n }\n\n writeValue(controlValue: number | null): void {\n if (controlValue === null) {\n return;\n }\n\n const clampedControlValue = clamp(controlValue, this.min, this.max);\n\n tuiAssert.assert(\n controlValue === clampedControlValue,\n '\\n[SliderKeySteps]: You cannot programmatically set value which is less/more than min/max',\n );\n\n this.slider.value = this.transformToNativeValue(clampedControlValue);\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n private transformToNativeValue(controlValue: number): number {\n const {min, max} = this.slider;\n const newValuePercentage = tuiKeyStepValueToPercentage(\n controlValue,\n this.keySteps,\n );\n\n return (newValuePercentage * (max - min)) / 100 + min;\n }\n}\n\n/**\n * @deprecated DONT USE IT! It is just temporary solution for internal purposes only. We will delete it in next major release.\n * TODO delete it in v3.0\n *\n */\n@Pipe({name: 'tuiSliderTickLabel'})\nexport class TuiSliderTickLabelPipe implements PipeTransform {\n transform(tickIndex: number, totalSegments: number, keySteps: TuiKeySteps): number {\n const percentage = (100 / totalSegments) * tickIndex;\n\n return tuiPercentageToKeyStepValue(percentage, keySteps);\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Inject,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n isNativeFocused,\n TUI_FOCUSABLE_ITEM_ACCESSOR,\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {AbstractTuiSlider} from '@taiga-ui/kit/abstract';\nimport {TUI_FROM_TO_TEXTS} from '@taiga-ui/kit/tokens';\nimport {Observable} from 'rxjs';\n\n/**\n * @deprecated use {@link TuiSliderComponent} instead\n * TODO: 3.0 remove\n */\n// @dynamic\n@Component({\n selector: 'tui-slider',\n templateUrl: '../../abstract/slider/slider.common.template.html',\n styleUrls: [\n '../../abstract/slider/slider.common.style.less',\n './slider-old.style.less',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiSliderOldComponent),\n },\n ],\n})\nexport class TuiSliderOldComponent\n extends AbstractTuiSlider<number>\n implements TuiFocusableElementAccessor\n{\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(TUI_FROM_TO_TEXTS) fromToTexts$: Observable<[string, string]>,\n ) {\n super(control, changeDetectorRef, documentRef, fromToTexts$);\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.dotRight ? this.dotRight.nativeElement : null;\n }\n\n get focused(): boolean {\n return isNativeFocused(this.nativeFocusableElement);\n }\n\n get left(): number {\n return 0;\n }\n\n get right(): number {\n return 100 - 100 * this.getFractionFromValue(this.value);\n }\n\n processValue(value: number): void {\n this.updateValue(this.valueGuard(value));\n }\n\n decrement(): void {\n this.processStep(false);\n }\n\n increment(): void {\n this.processStep(true);\n }\n\n protected getFallbackValue(): number {\n return 0;\n }\n\n protected processStep(increment: boolean): void {\n const fraction = this.getFractionFromValue(this.value);\n const step = this.computedStep;\n const value = this.getValueFromFraction(\n increment ? fraction + step : fraction - step,\n );\n\n this.processValue(value);\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, ElementRef, HostListener, Inject, Input} from '@angular/core';\nimport {\n tuiCoerceBooleanProperty,\n tuiDefaultProp,\n TuiDestroyService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {combineLatest, merge, Observable} from 'rxjs';\nimport {filter, mapTo, takeUntil, tap} from 'rxjs/operators';\n\nconst SLIDER_INTERACTION_KEYS = new Set([\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n]);\n\n/**\n * Native <input type='range' readonly> doesn't work.\n * This directive imitates this native behaviour.\n */\n// @dynamic\n@Directive({\n selector: 'input[tuiSlider][readonly]',\n providers: [TuiDestroyService],\n})\nexport class TuiSliderReadonlyDirective {\n @Input()\n @tuiDefaultProp()\n readonly: string | boolean = true;\n\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLInputElement>,\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(TuiDestroyService)\n destroy$: Observable<unknown>,\n ) {\n const touchStart$ = typedFromEvent(elementRef.nativeElement, 'touchstart', {\n passive: false,\n });\n const touchMove$ = typedFromEvent(documentRef, 'touchmove', {\n passive: false,\n });\n const touchEnd$ = typedFromEvent(documentRef, 'touchend', {\n passive: true,\n });\n\n const shouldPreventMove$ = merge(\n touchStart$.pipe(\n tap(e => this.preventEvent(e)),\n mapTo(true),\n ),\n touchEnd$.pipe(mapTo(false)),\n );\n\n /**\n * @bad TODO think about another solution.\n * Keep in mind that preventing touch event (on slider) inside `@HostListener('touchstart')` doesn't work for mobile chrome.\n */\n combineLatest([touchMove$, shouldPreventMove$])\n .pipe(\n filter(([_, shouldPreventMove]) => shouldPreventMove),\n takeUntil(destroy$),\n )\n .subscribe(([moveEvent]) => this.preventEvent(moveEvent));\n }\n\n @HostListener('mousedown', ['$event'])\n preventEvent(event: Event): void {\n if (event.cancelable && tuiCoerceBooleanProperty(this.readonly)) {\n event.preventDefault();\n }\n }\n\n @HostListener('keydown', ['$event'])\n preventKeyboardInteraction(event: KeyboardEvent): void {\n if (SLIDER_INTERACTION_KEYS.has(event.key)) {\n this.preventEvent(event);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiActiveZoneModule,\n TuiFocusableModule,\n TuiFocusVisibleModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiFormatNumberPipeModule} from '@taiga-ui/core';\n\nimport {TuiSliderComponent} from './slider.component';\nimport {\n TuiSliderKeyStepsDirective,\n TuiSliderTickLabelPipe,\n} from './slider-key-steps.directive';\nimport {TuiSliderOldComponent} from './slider-old.component';\nimport {TuiSliderReadonlyDirective} from './slider-readonly.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiRepeatTimesModule,\n TuiFocusableModule,\n TuiFocusVisibleModule,\n TuiActiveZoneModule,\n TuiFormatNumberPipeModule,\n ],\n declarations: [\n TuiSliderComponent,\n TuiSliderKeyStepsDirective,\n TuiSliderReadonlyDirective,\n TuiSliderTickLabelPipe,\n TuiSliderOldComponent,\n ],\n exports: [\n TuiSliderComponent,\n TuiSliderKeyStepsDirective,\n TuiSliderReadonlyDirective,\n TuiSliderTickLabelPipe,\n TuiSliderOldComponent,\n ],\n})\nexport class TuiSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}