@taiga-ui/kit 3.15.0 → 3.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/taiga-ui-kit-components-accordion.umd.js +3 -3
- package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-avatar.umd.js +2 -2
- package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-badge.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-calendar-month.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-carousel.umd.js +4 -4
- package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-combo-box.umd.js +2 -1
- package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-files.umd.js +29 -15
- package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-copy.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date-time.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-date.umd.js +8 -0
- package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +4 -2
- package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-slider.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-tag.umd.js +3 -3
- package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-items-with-more.umd.js +3 -3
- package/bundles/taiga-ui-kit-components-items-with-more.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-line-clamp.umd.js +18 -21
- package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-multi-select-option.umd.js +2 -2
- package/bundles/taiga-ui-kit-components-multi-select-option.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-multi-select.umd.js +20 -16
- package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js +1 -1
- package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-push.umd.js +2 -2
- package/bundles/taiga-ui-kit-components-push.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-select-option.umd.js +29 -10
- package/bundles/taiga-ui-kit-components-select-option.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-slider.umd.js +2 -2
- package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-stepper.umd.js +2 -2
- package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-tabs.umd.js +15 -5
- package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-tree.umd.js +3 -3
- package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-directives-data-list-dropdown-manager.umd.js +7 -7
- package/bundles/taiga-ui-kit-directives-data-list-dropdown-manager.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js +1 -1
- package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js.map +1 -1
- package/components/files/file/file-options.d.ts +6 -0
- package/components/files/file/file.component.d.ts +7 -5
- package/components/files/index.d.ts +1 -0
- package/components/input-date/input-date.component.d.ts +5 -0
- package/components/items-with-more/items-with-more.service.d.ts +1 -1
- package/components/line-clamp/line-clamp.component.d.ts +3 -2
- package/components/multi-select/multi-select-group/multi-select-group.directive.d.ts +1 -1
- package/components/multi-select/multi-select.component.d.ts +2 -1
- package/components/multi-select-option/multi-select-option.component.d.ts +1 -1
- package/components/select-option/select-option.component.d.ts +9 -5
- package/components/tabs/tabs.directive.d.ts +1 -1
- package/esm2015/components/accordion/accordion-item/accordion-item.component.js +2 -2
- package/esm2015/components/accordion/accordion.component.js +5 -5
- package/esm2015/components/avatar/avatar.component.js +4 -4
- package/esm2015/components/badge/badge.component.js +2 -2
- package/esm2015/components/calendar-month/calendar-month.component.js +2 -2
- package/esm2015/components/carousel/carousel.component.js +4 -4
- package/esm2015/components/carousel/carousel.directive.js +4 -4
- package/esm2015/components/combo-box/combo-box.component.js +3 -2
- package/esm2015/components/files/file/file-options.js +9 -0
- package/esm2015/components/files/file/file.component.js +13 -10
- package/esm2015/components/files/files.component.js +2 -2
- package/esm2015/components/files/index.js +2 -1
- package/esm2015/components/input-copy/input-copy.component.js +3 -3
- package/esm2015/components/input-date/input-date.component.js +9 -1
- package/esm2015/components/input-date-time/input-date-time.component.js +3 -3
- package/esm2015/components/input-phone-international/input-phone-international.component.js +3 -2
- package/esm2015/components/input-phone-international/tokens/countries-masks.js +3 -2
- package/esm2015/components/input-slider/input-slider.component.js +1 -1
- package/esm2015/components/input-tag/input-tag.component.js +5 -5
- package/esm2015/components/items-with-more/items-with-more.service.js +4 -4
- package/esm2015/components/line-clamp/line-clamp.component.js +20 -15
- package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +6 -6
- package/esm2015/components/multi-select/multi-select.component.js +10 -6
- package/esm2015/components/multi-select-option/multi-select-option.component.js +3 -3
- package/esm2015/components/pdf-viewer/pdf-viewer.component.js +2 -2
- package/esm2015/components/push/push-alert.component.js +2 -2
- package/esm2015/components/push/push.component.js +2 -2
- package/esm2015/components/select-option/select-option.component.js +23 -8
- package/esm2015/components/slider/helpers/slider-readonly.directive.js +4 -4
- package/esm2015/components/slider/slider.component.js +1 -1
- package/esm2015/components/stepper/stepper.component.js +4 -4
- package/esm2015/components/tabs/tab/tab.component.js +11 -2
- package/esm2015/components/tabs/tabs.directive.js +5 -4
- package/esm2015/components/tabs/underline/underline.component.js +3 -3
- package/esm2015/components/tree/components/tree-item/tree-item.component.js +2 -2
- package/esm2015/components/tree/components/tree-item-content/tree-item-content.component.js +2 -2
- package/esm2015/components/tree/misc/tree.service.js +3 -3
- package/esm2015/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.js +7 -7
- package/esm2015/directives/lazy-loading/lazy-loading.service.js +3 -3
- package/fesm2015/taiga-ui-kit-components-accordion.js +5 -5
- package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-avatar.js +3 -3
- package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-badge.js +1 -1
- package/fesm2015/taiga-ui-kit-components-badge.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-calendar-month.js +1 -1
- package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-carousel.js +6 -6
- package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-combo-box.js +2 -1
- package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-files.js +24 -13
- package/fesm2015/taiga-ui-kit-components-files.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-copy.js +2 -2
- package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date-time.js +2 -2
- package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-date.js +8 -0
- package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-phone-international.js +4 -2
- package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-slider.js +1 -1
- package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-tag.js +4 -4
- package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-items-with-more.js +3 -3
- package/fesm2015/taiga-ui-kit-components-items-with-more.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-line-clamp.js +19 -14
- package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-multi-select-option.js +2 -2
- package/fesm2015/taiga-ui-kit-components-multi-select-option.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-multi-select.js +14 -10
- package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-pdf-viewer.js +1 -1
- package/fesm2015/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-push.js +2 -2
- package/fesm2015/taiga-ui-kit-components-push.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-select-option.js +22 -7
- package/fesm2015/taiga-ui-kit-components-select-option.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-slider.js +4 -4
- package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-stepper.js +3 -3
- package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-tabs.js +16 -6
- package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-tree.js +4 -4
- package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
- package/fesm2015/taiga-ui-kit-directives-data-list-dropdown-manager.js +6 -6
- package/fesm2015/taiga-ui-kit-directives-data-list-dropdown-manager.js.map +1 -1
- package/fesm2015/taiga-ui-kit-directives-lazy-loading.js +2 -2
- package/fesm2015/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
- package/package.json +5 -5
|
@@ -2,28 +2,34 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { ElementRef, Component, ChangeDetectionStrategy, Inject, Optional, NgModule } from '@angular/core';
|
|
3
3
|
import * as i3 from '@angular/forms';
|
|
4
4
|
import { NgControl } from '@angular/forms';
|
|
5
|
-
import
|
|
5
|
+
import * as i4 from '@taiga-ui/cdk';
|
|
6
|
+
import { tuiTypedFromEvent, TUI_DEFAULT_IDENTITY_MATCHER, tuiIsPresent, AbstractTuiControl } from '@taiga-ui/cdk';
|
|
6
7
|
import * as i1 from '@taiga-ui/core';
|
|
7
8
|
import { TUI_DATA_LIST_HOST, TuiOptionComponent, TuiDataListComponent, TuiSvgModule, TuiScrollIntoViewModule } from '@taiga-ui/core';
|
|
8
9
|
import { POLYMORPHEUS_CONTEXT, PolymorpheusComponent } from '@tinkoff/ng-polymorpheus';
|
|
9
|
-
import { merge, EMPTY } from 'rxjs';
|
|
10
|
+
import { Subject, merge, EMPTY } from 'rxjs';
|
|
10
11
|
import { startWith, map, distinctUntilChanged } from 'rxjs/operators';
|
|
11
12
|
import * as i2 from '@angular/common';
|
|
12
13
|
import { CommonModule } from '@angular/common';
|
|
13
14
|
|
|
14
15
|
class TuiSelectOptionComponent {
|
|
15
|
-
constructor(context, host, elementRef, option, dataList, control) {
|
|
16
|
+
constructor(context, host, elementRef, option, dataList, control, abstractControl) {
|
|
16
17
|
this.context = context;
|
|
17
18
|
this.host = host;
|
|
18
19
|
this.elementRef = elementRef;
|
|
19
20
|
this.option = option;
|
|
20
21
|
this.dataList = dataList;
|
|
21
22
|
this.control = control;
|
|
22
|
-
this.
|
|
23
|
+
this.abstractControl = abstractControl;
|
|
24
|
+
this.changeDetection$ = new Subject();
|
|
25
|
+
this.selected$ = merge(this.changeDetection$, this.control.valueChanges || EMPTY, tuiTypedFromEvent(this.elementRef.nativeElement, 'animationstart')).pipe(startWith(null), map(() => this.selected), distinctUntilChanged());
|
|
23
26
|
}
|
|
24
27
|
get matcher() {
|
|
25
28
|
return this.host.identityMatcher || TUI_DEFAULT_IDENTITY_MATCHER;
|
|
26
29
|
}
|
|
30
|
+
ngDoCheck() {
|
|
31
|
+
this.changeDetection$.next();
|
|
32
|
+
}
|
|
27
33
|
ngOnInit() {
|
|
28
34
|
/**
|
|
29
35
|
* This would cause changes inside already checked parent component (during the same change detection cycle),
|
|
@@ -38,13 +44,17 @@ class TuiSelectOptionComponent {
|
|
|
38
44
|
}
|
|
39
45
|
});
|
|
40
46
|
}
|
|
47
|
+
get value() {
|
|
48
|
+
var _a, _b;
|
|
49
|
+
return (_b = (_a = this.abstractControl) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : this.control.value;
|
|
50
|
+
}
|
|
41
51
|
get selected() {
|
|
42
52
|
return (tuiIsPresent(this.option.value) &&
|
|
43
|
-
tuiIsPresent(this.
|
|
44
|
-
this.matcher(this.
|
|
53
|
+
tuiIsPresent(this.value) &&
|
|
54
|
+
this.matcher(this.value, this.option.value));
|
|
45
55
|
}
|
|
46
56
|
}
|
|
47
|
-
TuiSelectOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiSelectOptionComponent, deps: [{ token: POLYMORPHEUS_CONTEXT }, { token: TUI_DATA_LIST_HOST }, { token: ElementRef }, { token: TuiOptionComponent }, { token: TuiDataListComponent, optional: true }, { token: NgControl }], target: i0.ɵɵFactoryTarget.Component });
|
|
57
|
+
TuiSelectOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiSelectOptionComponent, deps: [{ token: POLYMORPHEUS_CONTEXT }, { token: TUI_DATA_LIST_HOST }, { token: ElementRef }, { token: TuiOptionComponent }, { token: TuiDataListComponent, optional: true }, { token: NgControl }, { token: AbstractTuiControl, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
48
58
|
TuiSelectOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiSelectOptionComponent, selector: "tui-select-option", ngImport: i0, template: "<ng-container [ngTemplateOutlet]=\"context.$implicit\"></ng-container>\n<tui-svg\n *ngIf=\"selected$ | async; else dummy\"\n automation-id=\"tui-select-option__checkmark\"\n src=\"tuiIconCheckLarge\"\n class=\"t-checkmark\"\n [tuiScrollIntoView]=\"true\"\n></tui-svg>\n<ng-template #dummy>\n <span class=\"t-dummy\"></span>\n</ng-template>\n", styles: ["@keyframes retrigger{0%{left:1px}to{left:2px}}:host{display:flex;flex:1;align-items:center;max-width:100%;animation:retrigger 1s}.t-checkmark{margin:0 -.375rem 0 auto;border-left:5px solid transparent}.t-dummy{width:1.5rem}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.TuiScrollIntoViewDirective, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
49
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiSelectOptionComponent, decorators: [{
|
|
50
60
|
type: Component,
|
|
@@ -74,6 +84,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
74
84
|
}] }, { type: i3.NgControl, decorators: [{
|
|
75
85
|
type: Inject,
|
|
76
86
|
args: [NgControl]
|
|
87
|
+
}] }, { type: i4.AbstractTuiControl, decorators: [{
|
|
88
|
+
type: Optional
|
|
89
|
+
}, {
|
|
90
|
+
type: Inject,
|
|
91
|
+
args: [AbstractTuiControl]
|
|
77
92
|
}] }]; } });
|
|
78
93
|
const TUI_SELECT_OPTION = new PolymorpheusComponent(TuiSelectOptionComponent);
|
|
79
94
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-select-option.js","sources":["../../../projects/kit/components/select-option/select-option.component.ts","../../../projects/kit/components/select-option/select-option.template.html","../../../projects/kit/components/select-option/select-option.module.ts","../../../projects/kit/components/select-option/taiga-ui-kit-components-select-option.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n OnInit,\n Optional,\n TemplateRef,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n TUI_DEFAULT_IDENTITY_MATCHER,\n TuiContextWithImplicit,\n TuiIdentityMatcher,\n tuiIsPresent,\n tuiTypedFromEvent,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DATA_LIST_HOST,\n TuiDataListComponent,\n TuiDataListHost,\n TuiOptionComponent,\n} from '@taiga-ui/core';\nimport {POLYMORPHEUS_CONTEXT, PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, merge} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-select-option',\n templateUrl: './select-option.template.html',\n styleUrls: ['./select-option.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSelectOptionComponent<T> implements OnInit {\n readonly selected$ = merge(\n this.control.valueChanges || EMPTY,\n tuiTypedFromEvent(this.elementRef.nativeElement, 'animationstart'),\n ).pipe(\n startWith(null),\n map(() => this.selected),\n distinctUntilChanged(),\n );\n\n constructor(\n @Inject(POLYMORPHEUS_CONTEXT)\n readonly context: TuiContextWithImplicit<TemplateRef<Record<string, unknown>>>,\n @Inject(TUI_DATA_LIST_HOST)\n private readonly host: TuiDataListHost<T>,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiOptionComponent) protected readonly option: TuiOptionComponent<T>,\n @Optional()\n @Inject(TuiDataListComponent)\n protected readonly dataList: TuiDataListComponent<T> | null,\n @Inject(NgControl) protected readonly control: NgControl,\n ) {}\n\n get matcher(): TuiIdentityMatcher<T> {\n return this.host.identityMatcher || TUI_DEFAULT_IDENTITY_MATCHER;\n }\n\n ngOnInit(): void {\n /**\n * This would cause changes inside already checked parent component (during the same change detection cycle),\n * and it might cause ExpressionChanged error due to potential HostBinding\n * (for example, inside {@link https://github.com/angular/angular/blob/main/packages/forms/src/directives/ng_control_status.ts#L99 NgControlStatus}).\n * Microtask keeps it in the same frame but allows change detection to run.\n */\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.resolve().then(() => {\n if (tuiIsPresent(this.option.value) && this.host.checkOption) {\n this.host.checkOption(this.option.value);\n }\n });\n }\n\n protected get selected(): boolean {\n return (\n tuiIsPresent(this.option.value) &&\n tuiIsPresent(this.
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-select-option.js","sources":["../../../projects/kit/components/select-option/select-option.component.ts","../../../projects/kit/components/select-option/select-option.template.html","../../../projects/kit/components/select-option/select-option.module.ts","../../../projects/kit/components/select-option/taiga-ui-kit-components-select-option.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n ElementRef,\n Inject,\n OnInit,\n Optional,\n TemplateRef,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n TUI_DEFAULT_IDENTITY_MATCHER,\n TuiContextWithImplicit,\n TuiIdentityMatcher,\n tuiIsPresent,\n tuiTypedFromEvent,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DATA_LIST_HOST,\n TuiDataListComponent,\n TuiDataListHost,\n TuiOptionComponent,\n} from '@taiga-ui/core';\nimport {POLYMORPHEUS_CONTEXT, PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, merge, Subject} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-select-option',\n templateUrl: './select-option.template.html',\n styleUrls: ['./select-option.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSelectOptionComponent<T> implements OnInit, DoCheck {\n private readonly changeDetection$ = new Subject();\n\n readonly selected$ = merge(\n this.changeDetection$,\n this.control.valueChanges || EMPTY,\n tuiTypedFromEvent(this.elementRef.nativeElement, 'animationstart'),\n ).pipe(\n startWith(null),\n map(() => this.selected),\n distinctUntilChanged(),\n );\n\n constructor(\n @Inject(POLYMORPHEUS_CONTEXT)\n readonly context: TuiContextWithImplicit<TemplateRef<Record<string, unknown>>>,\n @Inject(TUI_DATA_LIST_HOST)\n private readonly host: TuiDataListHost<T>,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiOptionComponent) protected readonly option: TuiOptionComponent<T>,\n @Optional()\n @Inject(TuiDataListComponent)\n protected readonly dataList: TuiDataListComponent<T> | null,\n @Inject(NgControl) protected readonly control: NgControl,\n @Optional()\n @Inject(AbstractTuiControl)\n protected readonly abstractControl: AbstractTuiControl<T> | null,\n ) {}\n\n get matcher(): TuiIdentityMatcher<T> {\n return this.host.identityMatcher || TUI_DEFAULT_IDENTITY_MATCHER;\n }\n\n ngDoCheck(): void {\n this.changeDetection$.next();\n }\n\n ngOnInit(): void {\n /**\n * This would cause changes inside already checked parent component (during the same change detection cycle),\n * and it might cause ExpressionChanged error due to potential HostBinding\n * (for example, inside {@link https://github.com/angular/angular/blob/main/packages/forms/src/directives/ng_control_status.ts#L99 NgControlStatus}).\n * Microtask keeps it in the same frame but allows change detection to run.\n */\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.resolve().then(() => {\n if (tuiIsPresent(this.option.value) && this.host.checkOption) {\n this.host.checkOption(this.option.value);\n }\n });\n }\n\n protected get value(): T | null {\n return this.abstractControl?.value ?? this.control.value;\n }\n\n protected get selected(): boolean {\n return (\n tuiIsPresent(this.option.value) &&\n tuiIsPresent(this.value) &&\n this.matcher(this.value, this.option.value)\n );\n }\n}\n\nexport const TUI_SELECT_OPTION = new PolymorpheusComponent(TuiSelectOptionComponent);\n","<ng-container [ngTemplateOutlet]=\"context.$implicit\"></ng-container>\n<tui-svg\n *ngIf=\"selected$ | async; else dummy\"\n automation-id=\"tui-select-option__checkmark\"\n src=\"tuiIconCheckLarge\"\n class=\"t-checkmark\"\n [tuiScrollIntoView]=\"true\"\n></tui-svg>\n<ng-template #dummy>\n <span class=\"t-dummy\"></span>\n</ng-template>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiScrollIntoViewModule, TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiSelectOptionComponent} from './select-option.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, TuiScrollIntoViewModule],\n declarations: [TuiSelectOptionComponent],\n exports: [TuiSelectOptionComponent],\n})\nexport class TuiSelectOptionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,11 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { InjectionToken, ChangeDetectorRef, ElementRef, Injector, Component, ChangeDetectionStrategy, Optional, Self, Inject, Input, HostBinding, forwardRef, Directive, HostListener, ContentChild, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/forms';
|
|
4
4
|
import { NgModel, NgControl } from '@angular/forms';
|
|
5
|
-
import { tuiWatch, tuiIsEdgeOlderThan, CHROMIUM_EDGE_START_VERSION, tuiDefaultProp, tuiPure, AbstractTuiControl, tuiIsNativeFocused, tuiClamp, tuiAssert, tuiTypedFromEvent, tuiCoerceBooleanProperty, TuiDestroyService } from '@taiga-ui/cdk';
|
|
5
|
+
import { tuiWatch, tuiIsEdgeOlderThan, CHROMIUM_EDGE_START_VERSION, tuiDefaultProp, tuiPure, AbstractTuiControl, tuiIsNativeFocused, tuiClamp, tuiAssert, tuiTypedFromEvent, ALWAYS_TRUE_HANDLER, ALWAYS_FALSE_HANDLER, tuiCoerceBooleanProperty, TuiDestroyService } from '@taiga-ui/cdk';
|
|
6
6
|
import { tuiPercentageToKeyStepValue, tuiKeyStepValueToPercentage } from '@taiga-ui/kit/utils';
|
|
7
7
|
import { __decorate } from 'tslib';
|
|
8
8
|
import { USER_AGENT } from '@ng-web-apis/common';
|
|
9
|
-
import { take, tap,
|
|
9
|
+
import { take, tap, map, filter, takeUntil } from 'rxjs/operators';
|
|
10
10
|
import * as i1$2 from '@angular/common';
|
|
11
11
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
12
12
|
import * as i1$1 from 'rxjs';
|
|
@@ -83,7 +83,7 @@ class TuiSliderComponent {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
TuiSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiSliderComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_SLIDER_OPTIONS }, { token: ElementRef }, { token: USER_AGENT }, { token: Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
-
TuiSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiSliderComponent, selector: "input[type=range][tuiSlider]", inputs: { size: "size", segments: "segments" }, host: { listeners: { "input": "0" }, properties: { "style.--tui-slider-track-color": "options.trackColor", "attr.data-size": "this.size", "style.--tui-slider-fill-percentage.%": "this.valuePercentage", "style.--tui-slider-segment-width.%": "this.segmentWidth", "class._old-edge": "this.isOldEdge" } }, ngImport: i0, template: '', isInline: true, styles: [":host{display:block;width:100%;color:var(--tui-primary);cursor:pointer}:host:active{cursor:ew-resize}:host:disabled{opacity:var(--tui-disabled-opacity);cursor:auto}:host:not(._old-edge){-webkit-appearance:none;-moz-appearance:none;appearance:none;height:.125rem;padding:.4375rem 0;background-color:transparent;background-clip:content-box;outline:none;border-radius:var(--tui-radius-m)}:host:not(._old-edge)::-webkit-slider-container{border-radius:inherit}:host:not(._old-edge)[data-size=m]::-webkit-slider-runnable-track{height:.125rem;border-radius:inherit;background-repeat:no-repeat;background-color:var(--tui-slider-track-color);background-image:linear-gradient(to right,currentColor 0px .625rem,transparent .25rem),repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent 0 var(--tui-slider-segment-width)),linear-gradient(to right,currentColor var(--tui-slider-fill-percentage),transparent var(--tui-slider-fill-percentage));background-position-x:0,.375rem,0;background-size:calc(100% - 1rem),calc(100% - 1rem),auto}:host:not(._old-edge)[data-size=s]::-webkit-slider-runnable-track{height:.125rem;border-radius:inherit;background-repeat:no-repeat;background-color:var(--tui-slider-track-color);background-image:linear-gradient(to right,currentColor 0px .375rem,transparent .25rem),repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent 0 var(--tui-slider-segment-width)),linear-gradient(to right,currentColor var(--tui-slider-fill-percentage),transparent var(--tui-slider-fill-percentage));background-position-x:0,.125rem,0;background-size:calc(100% - .5rem),calc(100% - .5rem),auto}:host:not(._old-edge)[data-size=m]::-moz-range-track{height:.125rem;border-radius:inherit;background-repeat:no-repeat;background-color:var(--tui-slider-track-color);background-image:linear-gradient(to right,currentColor 0px .625rem,transparent .25rem),repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent 0 var(--tui-slider-segment-width));background-position-x:0,.375rem;background-size:calc(100% - 1rem)}:host:not(._old-edge)[data-size=s]::-moz-range-track{height:.125rem;border-radius:inherit;background-repeat:no-repeat;background-color:var(--tui-slider-track-color);background-image:linear-gradient(to right,currentColor 0px .375rem,transparent .25rem),repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent 0 var(--tui-slider-segment-width));background-position-x:0,.125rem;background-size:calc(100% - .5rem)}:host:not(._old-edge)[data-size=m]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:currentColor;border:none;border-radius:50%;height:1rem;width:1rem;margin-top:-.4375rem}:not(:disabled):host:not(._old-edge)[data-size=m]::-webkit-slider-thumb{cursor:ew-resize}:not(:disabled):host:not(._old-edge)[data-size=m]::-webkit-slider-thumb:hover{background:var(--tui-primary-hover)}:not(:disabled):host:not(._old-edge)[data-size=m]::-webkit-slider-thumb:active{background:var(--tui-primary-active)}:focus-visible:host:not(._old-edge)[data-size=m]::-webkit-slider-thumb{box-shadow:0 0 0 2px inset var(--tui-focus)}:host:not(._old-edge)[data-size=s]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:currentColor;border:none;border-radius:50%;height:.5rem;width:.5rem;margin-top:-.1875rem}:not(:disabled):host:not(._old-edge)[data-size=s]::-webkit-slider-thumb{cursor:ew-resize}:not(:disabled):host:not(._old-edge)[data-size=s]::-webkit-slider-thumb:hover{background:var(--tui-primary-hover)}:not(:disabled):host:not(._old-edge)[data-size=s]::-webkit-slider-thumb:active{background:var(--tui-primary-active)}:focus-visible:host:not(._old-edge)[data-size=s]::-webkit-slider-thumb{box-shadow:0 0 0 2px inset var(--tui-focus)}:host:not(._old-edge)[data-size=m]::-moz-range-thumb{-moz-appearance:none;appearance:none;background-color:currentColor;border:none;border-radius:50%;height:1rem;width:1rem}:not(:disabled):host:not(._old-edge)[data-size=m]::-moz-range-thumb{cursor:ew-resize}:not(:disabled):host:not(._old-edge)[data-size=m]::-moz-range-thumb:hover{background:var(--tui-primary-hover)}:not(:disabled):host:not(._old-edge)[data-size=m]::-moz-range-thumb:active{background:var(--tui-primary-active)}:focus-visible:host:not(._old-edge)[data-size=m]::-moz-range-thumb{box-shadow:0 0 0 2px inset var(--tui-focus)}:host:not(._old-edge)[data-size=s]::-moz-range-thumb{-moz-appearance:none;appearance:none;background-color:currentColor;border:none;border-radius:50%;height:.5rem;width:.5rem}:not(:disabled):host:not(._old-edge)[data-size=s]::-moz-range-thumb{cursor:ew-resize}:not(:disabled):host:not(._old-edge)[data-size=s]::-moz-range-thumb:hover{background:var(--tui-primary-hover)}:not(:disabled):host:not(._old-edge)[data-size=s]::-moz-range-thumb:active{background:var(--tui-primary-active)}:focus-visible:host:not(._old-edge)[data-size=s]::-moz-range-thumb{box-shadow:0 0 0 2px inset var(--tui-focus)}:host:not(._old-edge)::-moz-range-progress{background:currentColor;border-radius:
|
|
86
|
+
TuiSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiSliderComponent, selector: "input[type=range][tuiSlider]", inputs: { size: "size", segments: "segments" }, host: { listeners: { "input": "0" }, properties: { "style.--tui-slider-track-color": "options.trackColor", "attr.data-size": "this.size", "style.--tui-slider-fill-percentage.%": "this.valuePercentage", "style.--tui-slider-segment-width.%": "this.segmentWidth", "class._old-edge": "this.isOldEdge" } }, ngImport: i0, template: '', isInline: true, styles: [":host{display:block;width:100%;color:var(--tui-primary);cursor:pointer}:host:active{cursor:ew-resize}:host:disabled{opacity:var(--tui-disabled-opacity);cursor:auto}:host:not(._old-edge){-webkit-appearance:none;-moz-appearance:none;appearance:none;height:.125rem;padding:.4375rem 0;background-color:transparent;background-clip:content-box;outline:none;border-radius:var(--tui-radius-m)}:host:not(._old-edge)::-webkit-slider-container{border-radius:inherit}:host:not(._old-edge)[data-size=m]::-webkit-slider-runnable-track{height:.125rem;border-radius:inherit;background-repeat:no-repeat;background-color:var(--tui-slider-track-color);background-image:linear-gradient(to right,currentColor 0px .625rem,transparent .25rem),repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent 0 var(--tui-slider-segment-width)),linear-gradient(to right,currentColor var(--tui-slider-fill-percentage),transparent var(--tui-slider-fill-percentage));background-position-x:0,.375rem,0;background-size:calc(100% - 1rem),calc(100% - 1rem),auto}:host:not(._old-edge)[data-size=s]::-webkit-slider-runnable-track{height:.125rem;border-radius:inherit;background-repeat:no-repeat;background-color:var(--tui-slider-track-color);background-image:linear-gradient(to right,currentColor 0px .375rem,transparent .25rem),repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent 0 var(--tui-slider-segment-width)),linear-gradient(to right,currentColor var(--tui-slider-fill-percentage),transparent var(--tui-slider-fill-percentage));background-position-x:0,.125rem,0;background-size:calc(100% - .5rem),calc(100% - .5rem),auto}:host:not(._old-edge)[data-size=m]::-moz-range-track{height:.125rem;border-radius:inherit;background-repeat:no-repeat;background-color:var(--tui-slider-track-color);background-image:linear-gradient(to right,currentColor 0px .625rem,transparent .25rem),repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent 0 var(--tui-slider-segment-width));background-position-x:0,.375rem;background-size:calc(100% - 1rem)}:host:not(._old-edge)[data-size=s]::-moz-range-track{height:.125rem;border-radius:inherit;background-repeat:no-repeat;background-color:var(--tui-slider-track-color);background-image:linear-gradient(to right,currentColor 0px .375rem,transparent .25rem),repeating-linear-gradient(to right,var(--tui-base-07) 0 .25rem,transparent 0 var(--tui-slider-segment-width));background-position-x:0,.125rem;background-size:calc(100% - .5rem)}:host:not(._old-edge)[data-size=m]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:currentColor;border:none;border-radius:50%;height:1rem;width:1rem;margin-top:-.4375rem}:not(:disabled):host:not(._old-edge)[data-size=m]::-webkit-slider-thumb{cursor:ew-resize}:not(:disabled):host:not(._old-edge)[data-size=m]::-webkit-slider-thumb:hover{background:var(--tui-primary-hover)}:not(:disabled):host:not(._old-edge)[data-size=m]::-webkit-slider-thumb:active{background:var(--tui-primary-active)}:focus-visible:host:not(._old-edge)[data-size=m]::-webkit-slider-thumb{box-shadow:0 0 0 2px inset var(--tui-focus)}:host:not(._old-edge)[data-size=s]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:currentColor;border:none;border-radius:50%;height:.5rem;width:.5rem;margin-top:-.1875rem}:not(:disabled):host:not(._old-edge)[data-size=s]::-webkit-slider-thumb{cursor:ew-resize}:not(:disabled):host:not(._old-edge)[data-size=s]::-webkit-slider-thumb:hover{background:var(--tui-primary-hover)}:not(:disabled):host:not(._old-edge)[data-size=s]::-webkit-slider-thumb:active{background:var(--tui-primary-active)}:focus-visible:host:not(._old-edge)[data-size=s]::-webkit-slider-thumb{box-shadow:0 0 0 2px inset var(--tui-focus)}:host:not(._old-edge)[data-size=m]::-moz-range-thumb{-moz-appearance:none;appearance:none;background-color:currentColor;border:none;border-radius:50%;height:1rem;width:1rem}:not(:disabled):host:not(._old-edge)[data-size=m]::-moz-range-thumb{cursor:ew-resize}:not(:disabled):host:not(._old-edge)[data-size=m]::-moz-range-thumb:hover{background:var(--tui-primary-hover)}:not(:disabled):host:not(._old-edge)[data-size=m]::-moz-range-thumb:active{background:var(--tui-primary-active)}:focus-visible:host:not(._old-edge)[data-size=m]::-moz-range-thumb{box-shadow:0 0 0 2px inset var(--tui-focus)}:host:not(._old-edge)[data-size=s]::-moz-range-thumb{-moz-appearance:none;appearance:none;background-color:currentColor;border:none;border-radius:50%;height:.5rem;width:.5rem}:not(:disabled):host:not(._old-edge)[data-size=s]::-moz-range-thumb{cursor:ew-resize}:not(:disabled):host:not(._old-edge)[data-size=s]::-moz-range-thumb:hover{background:var(--tui-primary-hover)}:not(:disabled):host:not(._old-edge)[data-size=s]::-moz-range-thumb:active{background:var(--tui-primary-active)}:focus-visible:host:not(._old-edge)[data-size=s]::-moz-range-thumb{box-shadow:0 0 0 2px inset var(--tui-focus)}:host:not(._old-edge)::-moz-range-progress{border-radius:inherit}:host:not(._old-edge)::-moz-range-progress{height:.125rem;background:currentColor;border-top-right-radius:0;border-bottom-right-radius:0}:host._old-edge::-ms-thumb{background:currentColor;border-radius:50%}:host._old-edge::-ms-fill-lower{background:currentColor}:host._old-edge::-ms-track{background:var(--tui-slider-track-color);border:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
87
87
|
__decorate([
|
|
88
88
|
tuiDefaultProp()
|
|
89
89
|
], TuiSliderComponent.prototype, "size", void 0);
|
|
@@ -259,7 +259,7 @@ class TuiSliderReadonlyDirective {
|
|
|
259
259
|
const touchEnd$ = tuiTypedFromEvent(documentRef, 'touchend', {
|
|
260
260
|
passive: true,
|
|
261
261
|
});
|
|
262
|
-
const shouldPreventMove$ = merge(touchStart$.pipe(tap(e => this.preventEvent(e)),
|
|
262
|
+
const shouldPreventMove$ = merge(touchStart$.pipe(tap(e => this.preventEvent(e)), map(ALWAYS_TRUE_HANDLER)), touchEnd$.pipe(map(ALWAYS_FALSE_HANDLER)));
|
|
263
263
|
/**
|
|
264
264
|
* @bad TODO think about another solution.
|
|
265
265
|
* Keep in mind that preventing touch event (on slider) inside `@HostListener('touchstart')` doesn't work for mobile chrome.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-slider.js","sources":["../../../projects/kit/components/slider/slider-options.ts","../../../projects/kit/components/slider/slider.component.ts","../../../projects/kit/components/slider/helpers/slider-key-steps.directive.ts","../../../projects/kit/components/slider/helpers/slider-readonly.directive.ts","../../../projects/kit/components/slider/helpers/slider-thumb-label/slider-thumb-label.component.ts","../../../projects/kit/components/slider/helpers/slider-thumb-label/slider-thumb-label.template.html","../../../projects/kit/components/slider/slider.module.ts","../../../projects/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 `[TUI_SLIDER_OPTIONS]: 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 Injector,\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 tuiDefaultProp,\n tuiIsEdgeOlderThan,\n tuiPure,\n tuiWatch,\n} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\nimport {take} from 'rxjs/operators';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSliderKeyStepsDirective} from './helpers/slider-key-steps.directive';\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, hasKeySteps} = this;\n\n if (!hasKeySteps && 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 // TODO: drop support of legacy Edge (EdgeHTML) in v4.x\n @HostBinding('class._old-edge')\n get isOldEdge(): boolean {\n return tuiIsEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent);\n }\n\n @tuiPure\n get hasKeySteps(): boolean {\n return Boolean(this.injector.get(TuiSliderKeyStepsDirective, null));\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) readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n @Inject(Injector) private readonly injector: Injector,\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(tuiWatch(changeDetectorRef), take(1)).subscribe();\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n tuiAssert,\n tuiClamp,\n TuiFocusableElementAccessor,\n tuiIsNativeFocused,\n} from '@taiga-ui/cdk';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {\n tuiKeyStepValueToPercentage,\n tuiPercentageToKeyStepValue,\n} from '@taiga-ui/kit/utils';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSliderComponent} from '../slider.component';\n\n@Directive({\n selector: 'input[tuiSlider][keySteps]',\n host: {\n '[attr.aria-valuenow]': 'safeCurrentValue',\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 keySteps!: TuiKeySteps;\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.computedDisabled ? null : this.elementRef.nativeElement;\n }\n\n get focused(): boolean {\n return tuiIsNativeFocused(this.nativeFocusableElement);\n }\n\n get min(): number {\n return this.keySteps[0][1];\n }\n\n get max(): number {\n return this.keySteps[this.keySteps.length - 1][1];\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(forwardRef(() => TuiSliderComponent))\n private readonly slider: TuiSliderComponent,\n ) {\n super(control, changeDetectorRef);\n }\n\n @HostListener('input')\n @HostListener('change')\n updateControlValue(): void {\n this.updateValue(\n tuiPercentageToKeyStepValue(this.slider.valuePercentage, this.keySteps),\n );\n }\n\n override writeValue(controlValue: number | null): void {\n if (controlValue === null) {\n return;\n }\n\n const clampedControlValue = tuiClamp(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","import {DOCUMENT} from '@angular/common';\nimport {Directive, ElementRef, HostListener, Inject, Input, Self} from '@angular/core';\nimport {\n tuiCoerceBooleanProperty,\n tuiDefaultProp,\n TuiDestroyService,\n tuiTypedFromEvent,\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@Directive({\n selector: 'input[tuiSlider][readonly]',\n providers: [TuiDestroyService],\n})\nexport class TuiSliderReadonlyDirective {\n @Input()\n @tuiDefaultProp()\n readonly: boolean | string = true;\n\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLInputElement>,\n @Inject(DOCUMENT) documentRef: Document,\n @Self()\n @Inject(TuiDestroyService)\n destroy$: Observable<unknown>,\n ) {\n const touchStart$ = tuiTypedFromEvent(elementRef.nativeElement, 'touchstart', {\n passive: false,\n });\n const touchMove$ = tuiTypedFromEvent(documentRef, 'touchmove', {\n passive: false,\n });\n const touchEnd$ = tuiTypedFromEvent(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 {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\n\nimport {TuiSliderComponent} from '../../slider.component';\n\n@Component({\n selector: '[tuiSliderThumbLabel]',\n templateUrl: './slider-thumb-label.template.html',\n styleUrls: ['./slider-thumb-label.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSliderThumbLabelComponent implements AfterContentInit {\n @ContentChild(TuiSliderComponent)\n readonly slider?: TuiSliderComponent;\n\n @ContentChild(NgControl)\n readonly control?: NgControl;\n\n get size(): TuiSizeS {\n return this.slider?.size || 'm';\n }\n\n get ratio(): number {\n return (this.slider?.valuePercentage || 0) / 100;\n }\n\n get ghostLeft(): number {\n return this.ratio * (this.slider?.elementRef.nativeElement.offsetWidth || 0);\n }\n\n ngAfterContentInit(): void {\n tuiAssert.assert(\n Boolean(this.control?.valueChanges),\n '\\n[tuiSliderThumbLabel] expected <input tuiSlider type=\"range\" /> to use Angular Forms.\\n' +\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n }\n}\n","<ng-container *ngIf=\"control?.valueChanges | async\"></ng-container>\n\n<div\n class=\"t-ghost\"\n [attr.data-size]=\"size\"\n [style.left.px]=\"ghostLeft\"\n [style.--tui-slider-thumb-ratio]=\"ratio\"\n>\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"input[type=range]\"></ng-content>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\nimport {TuiSliderKeyStepsDirective} from './helpers/slider-key-steps.directive';\nimport {TuiSliderReadonlyDirective} from './helpers/slider-readonly.directive';\nimport {TuiSliderThumbLabelComponent} from './helpers/slider-thumb-label/slider-thumb-label.component';\nimport {TuiSliderComponent} from './slider.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n TuiSliderComponent,\n TuiSliderThumbLabelComponent,\n TuiSliderKeyStepsDirective,\n TuiSliderReadonlyDirective,\n ],\n exports: [\n TuiSliderComponent,\n TuiSliderThumbLabelComponent,\n TuiSliderKeyStepsDirective,\n TuiSliderReadonlyDirective,\n ],\n})\nexport class TuiSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-slider.js","sources":["../../../projects/kit/components/slider/slider-options.ts","../../../projects/kit/components/slider/slider.component.ts","../../../projects/kit/components/slider/helpers/slider-key-steps.directive.ts","../../../projects/kit/components/slider/helpers/slider-readonly.directive.ts","../../../projects/kit/components/slider/helpers/slider-thumb-label/slider-thumb-label.component.ts","../../../projects/kit/components/slider/helpers/slider-thumb-label/slider-thumb-label.template.html","../../../projects/kit/components/slider/slider.module.ts","../../../projects/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 `[TUI_SLIDER_OPTIONS]: 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 Injector,\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 tuiDefaultProp,\n tuiIsEdgeOlderThan,\n tuiPure,\n tuiWatch,\n} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\nimport {take} from 'rxjs/operators';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSliderKeyStepsDirective} from './helpers/slider-key-steps.directive';\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, hasKeySteps} = this;\n\n if (!hasKeySteps && 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 // TODO: drop support of legacy Edge (EdgeHTML) in v4.x\n @HostBinding('class._old-edge')\n get isOldEdge(): boolean {\n return tuiIsEdgeOlderThan(CHROMIUM_EDGE_START_VERSION, this.userAgent);\n }\n\n @tuiPure\n get hasKeySteps(): boolean {\n return Boolean(this.injector.get(TuiSliderKeyStepsDirective, null));\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) readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(USER_AGENT) private readonly userAgent: string,\n @Inject(Injector) private readonly injector: Injector,\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(tuiWatch(changeDetectorRef), take(1)).subscribe();\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiControl,\n tuiAssert,\n tuiClamp,\n TuiFocusableElementAccessor,\n tuiIsNativeFocused,\n} from '@taiga-ui/cdk';\nimport {TuiKeySteps} from '@taiga-ui/kit/types';\nimport {\n tuiKeyStepValueToPercentage,\n tuiPercentageToKeyStepValue,\n} from '@taiga-ui/kit/utils';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSliderComponent} from '../slider.component';\n\n@Directive({\n selector: 'input[tuiSlider][keySteps]',\n host: {\n '[attr.aria-valuenow]': 'safeCurrentValue',\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 keySteps!: TuiKeySteps;\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return this.computedDisabled ? null : this.elementRef.nativeElement;\n }\n\n get focused(): boolean {\n return tuiIsNativeFocused(this.nativeFocusableElement);\n }\n\n get min(): number {\n return this.keySteps[0][1];\n }\n\n get max(): number {\n return this.keySteps[this.keySteps.length - 1][1];\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(forwardRef(() => TuiSliderComponent))\n private readonly slider: TuiSliderComponent,\n ) {\n super(control, changeDetectorRef);\n }\n\n @HostListener('input')\n @HostListener('change')\n updateControlValue(): void {\n this.updateValue(\n tuiPercentageToKeyStepValue(this.slider.valuePercentage, this.keySteps),\n );\n }\n\n override writeValue(controlValue: number | null): void {\n if (controlValue === null) {\n return;\n }\n\n const clampedControlValue = tuiClamp(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","import {DOCUMENT} from '@angular/common';\nimport {Directive, ElementRef, HostListener, Inject, Input, Self} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n ALWAYS_TRUE_HANDLER,\n tuiCoerceBooleanProperty,\n tuiDefaultProp,\n TuiDestroyService,\n tuiTypedFromEvent,\n} from '@taiga-ui/cdk';\nimport {combineLatest, merge, Observable} from 'rxjs';\nimport {filter, map, 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@Directive({\n selector: 'input[tuiSlider][readonly]',\n providers: [TuiDestroyService],\n})\nexport class TuiSliderReadonlyDirective {\n @Input()\n @tuiDefaultProp()\n readonly: boolean | string = true;\n\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLInputElement>,\n @Inject(DOCUMENT) documentRef: Document,\n @Self()\n @Inject(TuiDestroyService)\n destroy$: Observable<unknown>,\n ) {\n const touchStart$ = tuiTypedFromEvent(elementRef.nativeElement, 'touchstart', {\n passive: false,\n });\n const touchMove$ = tuiTypedFromEvent(documentRef, 'touchmove', {\n passive: false,\n });\n const touchEnd$ = tuiTypedFromEvent(documentRef, 'touchend', {\n passive: true,\n });\n\n const shouldPreventMove$ = merge(\n touchStart$.pipe(\n tap(e => this.preventEvent(e)),\n map(ALWAYS_TRUE_HANDLER),\n ),\n touchEnd$.pipe(map(ALWAYS_FALSE_HANDLER)),\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 {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk';\nimport {TuiSizeS} from '@taiga-ui/core';\n\nimport {TuiSliderComponent} from '../../slider.component';\n\n@Component({\n selector: '[tuiSliderThumbLabel]',\n templateUrl: './slider-thumb-label.template.html',\n styleUrls: ['./slider-thumb-label.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSliderThumbLabelComponent implements AfterContentInit {\n @ContentChild(TuiSliderComponent)\n readonly slider?: TuiSliderComponent;\n\n @ContentChild(NgControl)\n readonly control?: NgControl;\n\n get size(): TuiSizeS {\n return this.slider?.size || 'm';\n }\n\n get ratio(): number {\n return (this.slider?.valuePercentage || 0) / 100;\n }\n\n get ghostLeft(): number {\n return this.ratio * (this.slider?.elementRef.nativeElement.offsetWidth || 0);\n }\n\n ngAfterContentInit(): void {\n tuiAssert.assert(\n Boolean(this.control?.valueChanges),\n '\\n[tuiSliderThumbLabel] expected <input tuiSlider type=\"range\" /> to use Angular Forms.\\n' +\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n }\n}\n","<ng-container *ngIf=\"control?.valueChanges | async\"></ng-container>\n\n<div\n class=\"t-ghost\"\n [attr.data-size]=\"size\"\n [style.left.px]=\"ghostLeft\"\n [style.--tui-slider-thumb-ratio]=\"ratio\"\n>\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"input[type=range]\"></ng-content>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\nimport {TuiSliderKeyStepsDirective} from './helpers/slider-key-steps.directive';\nimport {TuiSliderReadonlyDirective} from './helpers/slider-readonly.directive';\nimport {TuiSliderThumbLabelComponent} from './helpers/slider-thumb-label/slider-thumb-label.component';\nimport {TuiSliderComponent} from './slider.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n TuiSliderComponent,\n TuiSliderThumbLabelComponent,\n TuiSliderKeyStepsDirective,\n TuiSliderReadonlyDirective,\n ],\n exports: [\n TuiSliderComponent,\n TuiSliderThumbLabelComponent,\n TuiSliderKeyStepsDirective,\n TuiSliderReadonlyDirective,\n ],\n})\nexport class TuiSliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { __decorate } from 'tslib';
|
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { EventEmitter, ElementRef, Component, ChangeDetectionStrategy, ContentChildren, forwardRef, Input, HostBinding, Output, HostListener, Inject, NgModule } from '@angular/core';
|
|
4
4
|
import * as i3 from '@taiga-ui/cdk';
|
|
5
|
-
import { EMPTY_QUERY,
|
|
5
|
+
import { EMPTY_QUERY, tuiQueryListChanges, tuiGetOriginalArrayFromQueryList, tuiIsElement, tuiMoveFocus, tuiDefaultProp, tuiPure, TuiFocusVisibleService, TuiDestroyService } from '@taiga-ui/cdk';
|
|
6
6
|
import * as i1$1 from '@taiga-ui/core';
|
|
7
7
|
import { TuiRouterLinkActiveService, TuiSvgModule } from '@taiga-ui/core';
|
|
8
8
|
import * as i4 from 'rxjs';
|
|
@@ -31,9 +31,9 @@ class TuiStepperComponent {
|
|
|
31
31
|
this.scrollIntoView(index);
|
|
32
32
|
}
|
|
33
33
|
get changes$() {
|
|
34
|
-
// Delay is required to trigger change detection after steps are rendered
|
|
34
|
+
// Delay is required to trigger change detection after steps are rendered,
|
|
35
35
|
// so they can update their "active" status
|
|
36
|
-
return
|
|
36
|
+
return tuiQueryListChanges(this.steps).pipe(delay(0));
|
|
37
37
|
}
|
|
38
38
|
onHorizontal(event, step) {
|
|
39
39
|
if (this.orientation !== 'horizontal' || !event.target) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-stepper.js","sources":["../../../projects/kit/components/stepper/stepper.component.ts","../../../projects/kit/components/stepper/stepper.template.html","../../../projects/kit/components/stepper/step/step.component.ts","../../../projects/kit/components/stepper/step/step.template.html","../../../projects/kit/components/stepper/stepper.module.ts","../../../projects/kit/components/stepper/taiga-ui-kit-components-stepper.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n Output,\n QueryList,\n} from '@angular/core';\nimport {\n EMPTY_QUERY,\n tuiDefaultProp,\n tuiGetOriginalArrayFromQueryList,\n tuiIsElement,\n tuiItemsQueryListObservable,\n tuiMoveFocus,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {TuiOrientation} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {delay} from 'rxjs/operators';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiStepComponent} from './step/step.component';\n\nconst ONLY_HORIZONTAL_SCROLL: ScrollIntoViewOptions = {\n block: 'nearest',\n inline: 'center',\n};\n\nconst ONLY_VERTICAL_SCROLL: ScrollIntoViewOptions = {\n block: 'center',\n inline: 'nearest',\n};\n\n@Component({\n selector: 'tui-stepper, nav[tuiStepper]',\n templateUrl: './stepper.template.html',\n styleUrls: ['./stepper.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiStepperComponent {\n @ContentChildren(forwardRef(() => TuiStepComponent), {read: ElementRef})\n private readonly steps: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n @Input()\n @HostBinding('attr.data-orientation')\n @tuiDefaultProp()\n orientation: TuiOrientation = 'horizontal';\n\n @Input('activeItemIndex')\n set activeIndex(index: number) {\n this.activeItemIndex = index;\n this.scrollIntoView(index);\n }\n\n @Output()\n readonly activeItemIndexChange = new EventEmitter<number>();\n\n activeItemIndex = 0;\n\n @tuiPure\n get changes$(): Observable<unknown> {\n // Delay is required to trigger change detection after steps are rendered\n // so they can update their \"active\" status\n return tuiItemsQueryListObservable(this.steps).pipe(delay(0));\n }\n\n @HostListener('keydown.arrowRight', ['$event', '1'])\n @HostListener('keydown.arrowLeft', ['$event', '-1'])\n onHorizontal(event: Event, step: number): void {\n if (this.orientation !== 'horizontal' || !event.target) {\n return;\n }\n\n event.preventDefault();\n this.moveFocus(event.target, step);\n }\n\n @HostListener('keydown.arrowDown', ['$event', '1'])\n @HostListener('keydown.arrowUp', ['$event', '-1'])\n onVertical(event: Event, step: number): void {\n if (this.orientation !== 'vertical' || !event.target) {\n return;\n }\n\n event.preventDefault();\n this.moveFocus(event.target, step);\n }\n\n indexOf(step: HTMLElement): number {\n return tuiGetOriginalArrayFromQueryList(this.steps).findIndex(\n ({nativeElement}) => nativeElement === step,\n );\n }\n\n isActive(index: number): boolean {\n return index === this.activeItemIndex;\n }\n\n activate(index: number): void {\n if (this.activeItemIndex === index) {\n return;\n }\n\n this.activeItemIndex = index;\n this.activeItemIndexChange.emit(index);\n this.scrollIntoView(index);\n }\n\n @tuiPure\n private getNativeElements(\n queryList: QueryList<ElementRef<HTMLElement>>,\n ): HTMLElement[] {\n return queryList.map(({nativeElement}) => nativeElement);\n }\n\n private moveFocus(current: EventTarget, step: number): void {\n if (!tuiIsElement(current)) {\n return;\n }\n\n const stepElements = this.getNativeElements(this.steps);\n const index = stepElements.findIndex(item => item === current);\n\n tuiMoveFocus(index, stepElements, step);\n }\n\n private scrollIntoView(targetStepIndex: number): void {\n this.getNativeElements(this.steps)[targetStepIndex]?.scrollIntoView(\n this.orientation === 'vertical'\n ? ONLY_VERTICAL_SCROLL\n : ONLY_HORIZONTAL_SCROLL,\n );\n }\n}\n","<ng-container *ngIf=\"changes$ | async\"></ng-container>\n<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport {tuiDefaultProp, TuiDestroyService, TuiFocusVisibleService} from '@taiga-ui/cdk';\nimport {TuiRouterLinkActiveService} from '@taiga-ui/core';\nimport {identity, Observable} from 'rxjs';\nimport {filter} from 'rxjs/operators';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiStepperComponent} from '../stepper.component';\n\n@Component({\n selector:\n 'button[tuiStep], a[tuiStep]:not([routerLink]), a[tuiStep][routerLink][routerLinkActive]',\n templateUrl: './step.template.html',\n styleUrls: ['./step.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService, TuiRouterLinkActiveService, TuiFocusVisibleService],\n host: {\n type: 'button',\n },\n})\nexport class TuiStepComponent {\n @Input()\n @HostBinding('attr.data-state')\n @tuiDefaultProp()\n stepState: 'error' | 'normal' | 'pass' = 'normal';\n\n @Input()\n @tuiDefaultProp()\n icon = '';\n\n @HostBinding('class._focus-visible')\n focusVisible = false;\n\n constructor(\n @Inject(TuiFocusVisibleService) focusVisible$: TuiFocusVisibleService,\n @Inject(TuiRouterLinkActiveService) routerLinkActive$: Observable<boolean>,\n @Inject(TuiStepperComponent) private readonly stepper: TuiStepperComponent,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {\n routerLinkActive$.pipe(filter(identity)).subscribe(() => {\n this.activate();\n });\n\n focusVisible$.subscribe(visible => {\n this.focusVisible = visible;\n });\n }\n\n @HostBinding('class._active')\n get isActive(): boolean {\n return this.stepper.isActive(this.index);\n }\n\n @HostBinding('class._vertical')\n get isVertical(): boolean {\n return this.stepper.orientation === 'vertical';\n }\n\n @HostBinding('tabIndex')\n get tabIndex(): number {\n return this.isActive ? 0 : -1;\n }\n\n get index(): number {\n return this.stepper.indexOf(this.elementRef.nativeElement);\n }\n\n @HostListener('click')\n activate(): void {\n this.stepper.activate(this.index);\n }\n}\n","<tui-svg\n *ngIf=\"icon\"\n class=\"t-marker t-marker_custom\"\n [src]=\"icon\"\n></tui-svg>\n<tui-svg\n src=\"tuiIconWarningLarge\"\n class=\"t-marker t-marker_error\"\n></tui-svg>\n<tui-svg\n src=\"tuiIconCheckLarge\"\n class=\"t-marker t-marker_pass\"\n></tui-svg>\n<div class=\"t-marker t-marker_index\"></div>\n<ng-content></ng-content>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiStepComponent} from './step/step.component';\nimport {TuiStepperComponent} from './stepper.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule],\n declarations: [TuiStepperComponent, TuiStepComponent],\n exports: [TuiStepperComponent, TuiStepComponent],\n})\nexport class TuiStepperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-stepper.js","sources":["../../../projects/kit/components/stepper/stepper.component.ts","../../../projects/kit/components/stepper/stepper.template.html","../../../projects/kit/components/stepper/step/step.component.ts","../../../projects/kit/components/stepper/step/step.template.html","../../../projects/kit/components/stepper/stepper.module.ts","../../../projects/kit/components/stepper/taiga-ui-kit-components-stepper.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n Output,\n QueryList,\n} from '@angular/core';\nimport {\n EMPTY_QUERY,\n tuiDefaultProp,\n tuiGetOriginalArrayFromQueryList,\n tuiIsElement,\n tuiMoveFocus,\n tuiPure,\n tuiQueryListChanges,\n} from '@taiga-ui/cdk';\nimport {TuiOrientation} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {delay} from 'rxjs/operators';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiStepComponent} from './step/step.component';\n\nconst ONLY_HORIZONTAL_SCROLL: ScrollIntoViewOptions = {\n block: 'nearest',\n inline: 'center',\n};\n\nconst ONLY_VERTICAL_SCROLL: ScrollIntoViewOptions = {\n block: 'center',\n inline: 'nearest',\n};\n\n@Component({\n selector: 'tui-stepper, nav[tuiStepper]',\n templateUrl: './stepper.template.html',\n styleUrls: ['./stepper.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiStepperComponent {\n @ContentChildren(forwardRef(() => TuiStepComponent), {read: ElementRef})\n private readonly steps: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n @Input()\n @HostBinding('attr.data-orientation')\n @tuiDefaultProp()\n orientation: TuiOrientation = 'horizontal';\n\n @Input('activeItemIndex')\n set activeIndex(index: number) {\n this.activeItemIndex = index;\n this.scrollIntoView(index);\n }\n\n @Output()\n readonly activeItemIndexChange = new EventEmitter<number>();\n\n activeItemIndex = 0;\n\n @tuiPure\n get changes$(): Observable<unknown> {\n // Delay is required to trigger change detection after steps are rendered,\n // so they can update their \"active\" status\n return tuiQueryListChanges(this.steps).pipe(delay(0));\n }\n\n @HostListener('keydown.arrowRight', ['$event', '1'])\n @HostListener('keydown.arrowLeft', ['$event', '-1'])\n onHorizontal(event: Event, step: number): void {\n if (this.orientation !== 'horizontal' || !event.target) {\n return;\n }\n\n event.preventDefault();\n this.moveFocus(event.target, step);\n }\n\n @HostListener('keydown.arrowDown', ['$event', '1'])\n @HostListener('keydown.arrowUp', ['$event', '-1'])\n onVertical(event: Event, step: number): void {\n if (this.orientation !== 'vertical' || !event.target) {\n return;\n }\n\n event.preventDefault();\n this.moveFocus(event.target, step);\n }\n\n indexOf(step: HTMLElement): number {\n return tuiGetOriginalArrayFromQueryList(this.steps).findIndex(\n ({nativeElement}) => nativeElement === step,\n );\n }\n\n isActive(index: number): boolean {\n return index === this.activeItemIndex;\n }\n\n activate(index: number): void {\n if (this.activeItemIndex === index) {\n return;\n }\n\n this.activeItemIndex = index;\n this.activeItemIndexChange.emit(index);\n this.scrollIntoView(index);\n }\n\n @tuiPure\n private getNativeElements(\n queryList: QueryList<ElementRef<HTMLElement>>,\n ): HTMLElement[] {\n return queryList.map(({nativeElement}) => nativeElement);\n }\n\n private moveFocus(current: EventTarget, step: number): void {\n if (!tuiIsElement(current)) {\n return;\n }\n\n const stepElements = this.getNativeElements(this.steps);\n const index = stepElements.findIndex(item => item === current);\n\n tuiMoveFocus(index, stepElements, step);\n }\n\n private scrollIntoView(targetStepIndex: number): void {\n this.getNativeElements(this.steps)[targetStepIndex]?.scrollIntoView(\n this.orientation === 'vertical'\n ? ONLY_VERTICAL_SCROLL\n : ONLY_HORIZONTAL_SCROLL,\n );\n }\n}\n","<ng-container *ngIf=\"changes$ | async\"></ng-container>\n<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport {tuiDefaultProp, TuiDestroyService, TuiFocusVisibleService} from '@taiga-ui/cdk';\nimport {TuiRouterLinkActiveService} from '@taiga-ui/core';\nimport {identity, Observable} from 'rxjs';\nimport {filter} from 'rxjs/operators';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiStepperComponent} from '../stepper.component';\n\n@Component({\n selector:\n 'button[tuiStep], a[tuiStep]:not([routerLink]), a[tuiStep][routerLink][routerLinkActive]',\n templateUrl: './step.template.html',\n styleUrls: ['./step.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService, TuiRouterLinkActiveService, TuiFocusVisibleService],\n host: {\n type: 'button',\n },\n})\nexport class TuiStepComponent {\n @Input()\n @HostBinding('attr.data-state')\n @tuiDefaultProp()\n stepState: 'error' | 'normal' | 'pass' = 'normal';\n\n @Input()\n @tuiDefaultProp()\n icon = '';\n\n @HostBinding('class._focus-visible')\n focusVisible = false;\n\n constructor(\n @Inject(TuiFocusVisibleService) focusVisible$: TuiFocusVisibleService,\n @Inject(TuiRouterLinkActiveService) routerLinkActive$: Observable<boolean>,\n @Inject(TuiStepperComponent) private readonly stepper: TuiStepperComponent,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {\n routerLinkActive$.pipe(filter(identity)).subscribe(() => {\n this.activate();\n });\n\n focusVisible$.subscribe(visible => {\n this.focusVisible = visible;\n });\n }\n\n @HostBinding('class._active')\n get isActive(): boolean {\n return this.stepper.isActive(this.index);\n }\n\n @HostBinding('class._vertical')\n get isVertical(): boolean {\n return this.stepper.orientation === 'vertical';\n }\n\n @HostBinding('tabIndex')\n get tabIndex(): number {\n return this.isActive ? 0 : -1;\n }\n\n get index(): number {\n return this.stepper.indexOf(this.elementRef.nativeElement);\n }\n\n @HostListener('click')\n activate(): void {\n this.stepper.activate(this.index);\n }\n}\n","<tui-svg\n *ngIf=\"icon\"\n class=\"t-marker t-marker_custom\"\n [src]=\"icon\"\n></tui-svg>\n<tui-svg\n src=\"tuiIconWarningLarge\"\n class=\"t-marker t-marker_error\"\n></tui-svg>\n<tui-svg\n src=\"tuiIconCheckLarge\"\n class=\"t-marker t-marker_pass\"\n></tui-svg>\n<div class=\"t-marker t-marker_index\"></div>\n<ng-content></ng-content>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiStepComponent} from './step/step.component';\nimport {TuiStepperComponent} from './stepper.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule],\n declarations: [TuiStepperComponent, TuiStepComponent],\n exports: [TuiStepperComponent, TuiStepComponent],\n})\nexport class TuiStepperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { TUI_TAB_MARGIN, TUI_MORE_WORD } from '@taiga-ui/kit/tokens';
|
|
|
10
10
|
import { MutationObserverService, MUTATION_OBSERVER_INIT } from '@ng-web-apis/mutation-observer';
|
|
11
11
|
import * as i3 from 'rxjs';
|
|
12
12
|
import { EMPTY, merge, identity, ReplaySubject, of } from 'rxjs';
|
|
13
|
-
import { filter, map, switchMap,
|
|
13
|
+
import { filter, map, switchMap, share, debounceTime, tap, startWith, takeUntil } from 'rxjs/operators';
|
|
14
14
|
import * as i5 from '@angular/common';
|
|
15
15
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
16
16
|
import { __decorate } from 'tslib';
|
|
@@ -67,7 +67,7 @@ class TuiTabComponent {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
TuiTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTabComponent, deps: [{ token: RouterLinkActive, optional: true }, { token: ElementRef }, { token: TUI_MODE }, { token: TUI_TAB_EVENT }, { token: TUI_TAB_MARGIN }, { token: TuiFocusVisibleService }], target: i0.ɵɵFactoryTarget.Component });
|
|
70
|
-
TuiTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiTabComponent, selector: "a[tuiTab]:not([routerLink]), a[tuiTab][routerLink][routerLinkActive], button[tuiTab]", host: { attributes: { "type": "button" }, listeners: { "$.data-mode.attr": "mode$" }, properties: { "style.--tui-tab-margin.px": "margin", "class._focus-visible": "this.focusVisible", "class._active": "this.isActive" } }, providers: TUI_TAB_PROVIDERS, ngImport: i0, template: "<ng-container *ngIf=\"event$ | async\"></ng-container>\n<span class=\"t-highlight\"
|
|
70
|
+
TuiTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiTabComponent, selector: "a[tuiTab]:not([routerLink]), a[tuiTab][routerLink][routerLinkActive], button[tuiTab]", host: { attributes: { "type": "button" }, listeners: { "$.data-mode.attr": "mode$" }, properties: { "style.cursor": "\"pointer\"", "style.--tui-tab-margin.px": "margin", "class._focus-visible": "this.focusVisible", "class._active": "this.isActive" } }, providers: TUI_TAB_PROVIDERS, ngImport: i0, template: "<ng-container *ngIf=\"event$ | async\"></ng-container>\n<span class=\"t-highlight\">\n <ng-content></ng-content>\n</span>\n", styles: [":host-context(._underline):hover{box-shadow:inset 0 -2px var(--tui-base-03)}:host-context(tui-tabs >):first-child,:host-context([tuiTabs] >):first-child,:host-context(tui-tabs > :first-child),:host-context([tuiTabs] > :first-child){margin-left:0}:host{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;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:none;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]:hover,:host[data-mode=onDark]._active{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]:hover,:host[data-mode=onLight]._active{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, .3s);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}:host-context(tui-tabs[data-vertical]),:host-context([tuiTabs][data-vertical]){min-height:2.75rem;height:auto;white-space:normal;margin:0;text-align:left;padding:.25rem 1.25rem .25rem 0}:host-context(tui-tabs[data-vertical]):after,:host-context([tuiTabs][data-vertical]):after{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:0;bottom:0;right:0;width:2px;background:var(--tui-primary);transform:scaleX(0);transform-origin:right}:host-context(tui-tabs[data-vertical]):hover,:host-context([tuiTabs][data-vertical]):hover{box-shadow:inset -2px 0 var(--tui-base-03)}:host-context(tui-tabs[data-vertical])._active:after,:host-context([tuiTabs][data-vertical])._active:after{transform:none}:host-context(tui-tabs[data-vertical=\"right\"]),:host-context([tuiTabs][data-vertical=\"right\"]){text-align:right;padding:.25rem 0 .25rem 1.25rem}:host-context(tui-tabs[data-vertical=\"right\"]):after,:host-context([tuiTabs][data-vertical=\"right\"]):after{right:auto;left:0;transform-origin:left}:host-context(tui-tabs[data-vertical=\"right\"]):hover,:host-context([tuiTabs][data-vertical=\"right\"]):hover{box-shadow:inset 2px 0 var(--tui-base-03)}\n"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
71
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTabComponent, decorators: [{
|
|
72
72
|
type: Component,
|
|
73
73
|
args: [{
|
|
@@ -78,6 +78,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
78
78
|
providers: TUI_TAB_PROVIDERS,
|
|
79
79
|
host: {
|
|
80
80
|
'($.data-mode.attr)': 'mode$',
|
|
81
|
+
/**
|
|
82
|
+
* SSR hack - problem with the Domino renderer that Angular uses for its server-side DOM implementation.
|
|
83
|
+
* Domino doesn't support CSS variables and some CSS properties like clip-path.
|
|
84
|
+
* Read more: https://github.com/Tinkoff/taiga-ui/issues/3210#issuecomment-1375788017
|
|
85
|
+
* ___
|
|
86
|
+
* TODO: drop this line after Angular team switch over to a new JavaScript DOM API
|
|
87
|
+
* https://github.com/angular/angular/issues/42170
|
|
88
|
+
*/
|
|
89
|
+
'[style.cursor]': '"pointer"',
|
|
81
90
|
'[style.--tui-tab-margin.px]': 'margin',
|
|
82
91
|
type: 'button',
|
|
83
92
|
},
|
|
@@ -122,8 +131,9 @@ class TuiTabsDirective {
|
|
|
122
131
|
get activeElement() {
|
|
123
132
|
return this.tabs[this.activeItemIndex] || null;
|
|
124
133
|
}
|
|
125
|
-
onActivate(element) {
|
|
134
|
+
onActivate(event, element) {
|
|
126
135
|
const index = this.tabs.findIndex(tab => tab === element);
|
|
136
|
+
event.stopPropagation();
|
|
127
137
|
if (index === this.activeItemIndex) {
|
|
128
138
|
return;
|
|
129
139
|
}
|
|
@@ -144,7 +154,7 @@ class TuiTabsDirective {
|
|
|
144
154
|
}
|
|
145
155
|
}
|
|
146
156
|
TuiTabsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTabsDirective, deps: [{ token: ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
147
|
-
TuiTabsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiTabsDirective, selector: "tui-tabs, nav[tuiTabs]", inputs: { activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { listeners: { "tui-tab-activate
|
|
157
|
+
TuiTabsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiTabsDirective, selector: "tui-tabs, nav[tuiTabs]", inputs: { activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { listeners: { "tui-tab-activate": "onActivate($event,$event.target)" } }, ngImport: i0 });
|
|
148
158
|
__decorate([
|
|
149
159
|
tuiDefaultProp()
|
|
150
160
|
], TuiTabsDirective.prototype, "activeItemIndex", void 0);
|
|
@@ -162,7 +172,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
162
172
|
type: Output
|
|
163
173
|
}], onActivate: [{
|
|
164
174
|
type: HostListener,
|
|
165
|
-
args: [
|
|
175
|
+
args: [TUI_TAB_ACTIVATE, ['$event', '$event.target']]
|
|
166
176
|
}] } });
|
|
167
177
|
|
|
168
178
|
const TUI_TABS_DEFAULT_OPTIONS = {
|
|
@@ -185,7 +195,7 @@ class TuiUnderlineComponent {
|
|
|
185
195
|
this.mode$ = mode$;
|
|
186
196
|
this.element$ = new ReplaySubject(1);
|
|
187
197
|
this.refresh$ = this.element$.pipe(switchMap(element => element
|
|
188
|
-
? this.animationFrame$.pipe(
|
|
198
|
+
? this.animationFrame$.pipe(map(() => element), tuiZonefree(this.ngZone))
|
|
189
199
|
: of(null)), share());
|
|
190
200
|
this.transition$ = asCallable(this.element$.pipe(map(element => element && 'all'), debounceTime(50)));
|
|
191
201
|
this.transform$ = asCallable(this.refresh$.pipe(map(element => element ? `translate3d(${element.offsetLeft}px, 0, 0)` : null)));
|