@taiga-ui/cdk 3.46.0 → 3.47.0-canary.2d7569f
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-cdk-components-dialog-host.umd.js +56 -28
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js +609 -0
- package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js.map +1 -0
- package/bundles/taiga-ui-cdk-components.umd.js +10 -4
- package/bundles/taiga-ui-cdk-components.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-constants.umd.js +2 -5
- package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +4 -4
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.js +21 -0
- package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-dom.umd.js +12 -0
- package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
- package/components/dialog-host/dialog-host.component.d.ts +3 -2
- package/components/dialog-host/dialog-host.module.d.ts +3 -4
- package/components/index.d.ts +1 -0
- package/components/scroll-controls/index.d.ts +4 -0
- package/components/scroll-controls/package.json +10 -0
- package/components/scroll-controls/scroll-controls.component.d.ts +13 -0
- package/components/scroll-controls/scroll-controls.module.d.ts +10 -0
- package/components/scroll-controls/scroll-ref.directive.d.ts +6 -0
- package/components/scroll-controls/scrollbar.directive.d.ts +19 -0
- package/components/scroll-controls/taiga-ui-cdk-components-scroll-controls.d.ts +5 -0
- package/constants/version.d.ts +1 -1
- package/constants/version.js +1 -1
- package/esm2015/components/dialog-host/dialog-host.component.js +41 -16
- package/esm2015/components/dialog-host/dialog-host.module.js +7 -5
- package/esm2015/components/index.js +2 -1
- package/esm2015/components/scroll-controls/index.js +5 -0
- package/esm2015/components/scroll-controls/scroll-controls.component.js +45 -0
- package/esm2015/components/scroll-controls/scroll-controls.module.js +26 -0
- package/esm2015/components/scroll-controls/scroll-ref.directive.js +26 -0
- package/esm2015/components/scroll-controls/scrollbar.directive.js +133 -0
- package/esm2015/components/scroll-controls/taiga-ui-cdk-components-scroll-controls.js +5 -0
- package/esm2015/constants/parent-animation.js +3 -6
- package/esm2015/constants/version.js +2 -2
- package/esm2015/directives/auto-focus/handlers/default.handler.js +3 -3
- package/esm2015/directives/auto-focus/handlers/ios.handler.js +2 -2
- package/esm2015/directives/auto-focus/handlers/sync.handler.js +2 -2
- package/esm2015/tokens/base-href.js +5 -0
- package/esm2015/tokens/dialogs.js +2 -1
- package/esm2015/tokens/ensure-base-href.js +4 -1
- package/esm2015/tokens/fonts-ready.js +11 -0
- package/esm2015/tokens/index.js +4 -1
- package/esm2015/tokens/scroll-ref.js +8 -0
- package/esm2015/utils/dom/index.js +2 -1
- package/esm2015/utils/dom/retarget-boundary-crossing.js +11 -0
- package/fesm2015/taiga-ui-cdk-components-dialog-host.js +46 -19
- package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-scroll-controls.js +220 -0
- package/fesm2015/taiga-ui-cdk-components-scroll-controls.js.map +1 -0
- package/fesm2015/taiga-ui-cdk-components.js +1 -0
- package/fesm2015/taiga-ui-cdk-components.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-constants.js +3 -6
- package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +4 -4
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-tokens.js +21 -3
- package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-dom.js +12 -1
- package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
- package/package.json +1 -1
- package/schematics/ng-update/steps/replace-services.js +1 -1
- package/tokens/base-href.d.ts +1 -0
- package/tokens/ensure-base-href.d.ts +3 -0
- package/tokens/fonts-ready.d.ts +3 -0
- package/tokens/index.d.ts +3 -0
- package/tokens/scroll-ref.d.ts +5 -0
- package/utils/dom/index.d.ts +1 -0
- package/utils/dom/retarget-boundary-crossing.d.ts +1 -0
@@ -0,0 +1,220 @@
|
|
1
|
+
import * as i0 from '@angular/core';
|
2
|
+
import { NgZone, ElementRef, Directive, Inject, Self, Input, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
3
|
+
import { ANIMATION_FRAME } from '@ng-web-apis/common';
|
4
|
+
import { tuiTypedFromEvent, tuiPreventDefault, tuiStopPropagation, tuiZonefree, tuiScrollFrom, tuiZoneOptimized } from '@taiga-ui/cdk/observables';
|
5
|
+
import { TUI_SCROLL_REF } from '@taiga-ui/cdk/tokens';
|
6
|
+
import { map, switchMap, takeUntil, throttleTime, startWith, distinctUntilChanged } from 'rxjs/operators';
|
7
|
+
import * as i1$1 from '@angular/common';
|
8
|
+
import { DOCUMENT, CommonModule } from '@angular/common';
|
9
|
+
import { POLLING_TIME } from '@taiga-ui/cdk/constants';
|
10
|
+
import { TuiDestroyService } from '@taiga-ui/cdk/services';
|
11
|
+
import * as i1 from 'rxjs';
|
12
|
+
import { merge } from 'rxjs';
|
13
|
+
|
14
|
+
const MIN_WIDTH = 24;
|
15
|
+
class TuiScrollbarDirective {
|
16
|
+
constructor(zone, destroy$, animationFrame$, container, doc, el) {
|
17
|
+
this.container = container;
|
18
|
+
this.doc = doc;
|
19
|
+
this.el = el;
|
20
|
+
this.tuiScrollbar = 'vertical';
|
21
|
+
const { nativeElement } = this.el;
|
22
|
+
const mousedown$ = tuiTypedFromEvent(nativeElement, 'mousedown');
|
23
|
+
const mousemove$ = tuiTypedFromEvent(this.doc, 'mousemove');
|
24
|
+
const mouseup$ = tuiTypedFromEvent(this.doc, 'mouseup');
|
25
|
+
const mousedownWrapper$ = tuiTypedFromEvent(this.wrapper, 'mousedown');
|
26
|
+
merge(mousedownWrapper$.pipe(tuiPreventDefault(), map(event => this.getScrolled(event, 0.5, 0.5))), mousedown$.pipe(tuiPreventDefault(), tuiStopPropagation(), switchMap(event => {
|
27
|
+
const rect = nativeElement.getBoundingClientRect();
|
28
|
+
const vertical = getOffsetVertical(event, rect);
|
29
|
+
const horizontal = getOffsetHorizontal(event, rect);
|
30
|
+
return mousemove$.pipe(map(event => this.getScrolled(event, vertical, horizontal)), takeUntil(mouseup$));
|
31
|
+
})))
|
32
|
+
.pipe(tuiZonefree(zone), takeUntil(destroy$))
|
33
|
+
.subscribe(([scrollTop, scrollLeft]) => {
|
34
|
+
if (this.tuiScrollbar === 'vertical') {
|
35
|
+
this.element.scrollTop = scrollTop;
|
36
|
+
}
|
37
|
+
else {
|
38
|
+
this.element.scrollLeft = scrollLeft;
|
39
|
+
}
|
40
|
+
});
|
41
|
+
merge(animationFrame$.pipe(throttleTime(POLLING_TIME)), tuiScrollFrom(this.element))
|
42
|
+
.pipe(tuiZonefree(zone), takeUntil(destroy$))
|
43
|
+
.subscribe(() => {
|
44
|
+
if (this.tuiScrollbar === 'vertical') {
|
45
|
+
nativeElement.style.top = `${this.thumb * 100}%`;
|
46
|
+
nativeElement.style.height = `${this.view * 100}%`;
|
47
|
+
}
|
48
|
+
else {
|
49
|
+
nativeElement.style.left = `${this.thumb * 100}%`;
|
50
|
+
nativeElement.style.width = `${this.view * 100}%`;
|
51
|
+
}
|
52
|
+
});
|
53
|
+
}
|
54
|
+
get wrapper() {
|
55
|
+
return this.el.nativeElement.parentElement;
|
56
|
+
}
|
57
|
+
get scrolled() {
|
58
|
+
const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth, } = this.element;
|
59
|
+
return this.tuiScrollbar === 'vertical'
|
60
|
+
? scrollTop / (scrollHeight - clientHeight)
|
61
|
+
: scrollLeft / (scrollWidth - clientWidth);
|
62
|
+
}
|
63
|
+
get compensation() {
|
64
|
+
const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.element;
|
65
|
+
if (((clientHeight * clientHeight) / scrollHeight > MIN_WIDTH &&
|
66
|
+
this.tuiScrollbar === 'vertical') ||
|
67
|
+
((clientWidth * clientWidth) / scrollWidth > MIN_WIDTH &&
|
68
|
+
this.tuiScrollbar === 'horizontal')) {
|
69
|
+
return 0;
|
70
|
+
}
|
71
|
+
return this.tuiScrollbar === 'vertical'
|
72
|
+
? MIN_WIDTH / clientHeight
|
73
|
+
: MIN_WIDTH / clientWidth;
|
74
|
+
}
|
75
|
+
get thumb() {
|
76
|
+
const compensation = this.compensation || this.view;
|
77
|
+
return this.scrolled * (1 - compensation);
|
78
|
+
}
|
79
|
+
get view() {
|
80
|
+
const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.element;
|
81
|
+
return this.tuiScrollbar === 'vertical'
|
82
|
+
? Math.ceil((clientHeight / scrollHeight) * 100) / 100
|
83
|
+
: Math.ceil((clientWidth / scrollWidth) * 100) / 100;
|
84
|
+
}
|
85
|
+
get element() {
|
86
|
+
return this.container.nativeElement;
|
87
|
+
}
|
88
|
+
getScrolled({ clientY, clientX }, offsetVertical, offsetHorizontal) {
|
89
|
+
const { offsetHeight, offsetWidth } = this.el.nativeElement;
|
90
|
+
const { top, left, width, height } = this.wrapper.getBoundingClientRect();
|
91
|
+
const maxTop = this.element.scrollHeight - height;
|
92
|
+
const maxLeft = this.element.scrollWidth - width;
|
93
|
+
const scrolledTop = (clientY - top - offsetHeight * offsetVertical) / (height - offsetHeight);
|
94
|
+
const scrolledLeft = (clientX - left - offsetWidth * offsetHorizontal) / (width - offsetWidth);
|
95
|
+
return [maxTop * scrolledTop, maxLeft * scrolledLeft];
|
96
|
+
}
|
97
|
+
}
|
98
|
+
TuiScrollbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollbarDirective, deps: [{ token: NgZone }, { token: TuiDestroyService, self: true }, { token: ANIMATION_FRAME }, { token: TUI_SCROLL_REF }, { token: DOCUMENT }, { token: ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
99
|
+
TuiScrollbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiScrollbarDirective, selector: "[tuiScrollbar]", inputs: { tuiScrollbar: "tuiScrollbar" }, providers: [TuiDestroyService], ngImport: i0 });
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollbarDirective, decorators: [{
|
101
|
+
type: Directive,
|
102
|
+
args: [{
|
103
|
+
selector: '[tuiScrollbar]',
|
104
|
+
providers: [TuiDestroyService],
|
105
|
+
}]
|
106
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone, decorators: [{
|
107
|
+
type: Inject,
|
108
|
+
args: [NgZone]
|
109
|
+
}] }, { type: i1.Observable, decorators: [{
|
110
|
+
type: Self
|
111
|
+
}, {
|
112
|
+
type: Inject,
|
113
|
+
args: [TuiDestroyService]
|
114
|
+
}] }, { type: i1.Observable, decorators: [{
|
115
|
+
type: Inject,
|
116
|
+
args: [ANIMATION_FRAME]
|
117
|
+
}] }, { type: i0.ElementRef, decorators: [{
|
118
|
+
type: Inject,
|
119
|
+
args: [TUI_SCROLL_REF]
|
120
|
+
}] }, { type: Document, decorators: [{
|
121
|
+
type: Inject,
|
122
|
+
args: [DOCUMENT]
|
123
|
+
}] }, { type: i0.ElementRef, decorators: [{
|
124
|
+
type: Inject,
|
125
|
+
args: [ElementRef]
|
126
|
+
}] }]; }, propDecorators: { tuiScrollbar: [{
|
127
|
+
type: Input
|
128
|
+
}] } });
|
129
|
+
function getOffsetVertical({ clientY }, { top, height }) {
|
130
|
+
return (clientY - top) / height;
|
131
|
+
}
|
132
|
+
function getOffsetHorizontal({ clientX }, { left, width }) {
|
133
|
+
return (clientX - left) / width;
|
134
|
+
}
|
135
|
+
|
136
|
+
class TuiScrollControlsComponent {
|
137
|
+
constructor(zone, scrollRef, animationFrame$) {
|
138
|
+
this.zone = zone;
|
139
|
+
this.scrollRef = scrollRef;
|
140
|
+
this.animationFrame$ = animationFrame$;
|
141
|
+
this.refresh$ = this.animationFrame$.pipe(throttleTime(300), map(() => this.scrollbars), startWith([false, false]), distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]), tuiZoneOptimized(this.zone));
|
142
|
+
}
|
143
|
+
get scrollbars() {
|
144
|
+
const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.scrollRef.nativeElement;
|
145
|
+
return [
|
146
|
+
Math.ceil((clientHeight / scrollHeight) * 100) < 100,
|
147
|
+
Math.ceil((clientWidth / scrollWidth) * 100) < 100,
|
148
|
+
];
|
149
|
+
}
|
150
|
+
}
|
151
|
+
TuiScrollControlsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollControlsComponent, deps: [{ token: NgZone }, { token: TUI_SCROLL_REF }, { token: ANIMATION_FRAME }], target: i0.ɵɵFactoryTarget.Component });
|
152
|
+
TuiScrollControlsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiScrollControlsComponent, selector: "tui-scroll-controls", ngImport: i0, template: "<ng-container *ngIf=\"refresh$ | async as bars\">\n <div\n *ngIf=\"bars[0]\"\n class=\"t-bar t-bar_vertical\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n class=\"t-bar t-bar_horizontal\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host{position:-webkit-sticky;position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-height:calc(100% - 1px);max-width:calc(100% - 1px);max-height:calc(100% - 1px);float:left;-webkit-margin-end:calc(-100% + 1px);margin-inline-end:calc(-100% + 1px);pointer-events:none}.t-bar{position:absolute;right:0;bottom:0;pointer-events:auto;animation:tuiFadeIn var(--tui-duration, .3s) ease-in-out}.t-bar_vertical{top:0;width:.875rem}.t-bar_horizontal{left:0;height:.875rem}.t-bar_has-horizontal{bottom:.5rem}.t-bar_has-vertical{right:.5rem}.t-thumb{position:absolute;border-radius:6.25rem;border:.25rem solid transparent;cursor:pointer;pointer-events:auto;background:currentColor;background-clip:content-box;box-sizing:border-box;transition:all var(--tui-duration, .3s) ease-in-out;transition-property:width,height,opacity;opacity:.2}.t-thumb:hover{opacity:.24}.t-thumb:active{opacity:.48}.t-bar_vertical .t-thumb{right:0;width:.75rem;min-height:1.25rem}.t-bar_vertical:hover .t-thumb,.t-bar_vertical .t-thumb:active{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal:hover .t-thumb,.t-bar_horizontal .t-thumb:active{height:.875rem}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TuiScrollbarDirective, selector: "[tuiScrollbar]", inputs: ["tuiScrollbar"] }], pipes: { "async": i1$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollControlsComponent, decorators: [{
|
154
|
+
type: Component,
|
155
|
+
args: [{
|
156
|
+
selector: 'tui-scroll-controls',
|
157
|
+
templateUrl: './scroll-controls.template.html',
|
158
|
+
styleUrls: ['./scroll-controls.style.less'],
|
159
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
160
|
+
}]
|
161
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone, decorators: [{
|
162
|
+
type: Inject,
|
163
|
+
args: [NgZone]
|
164
|
+
}] }, { type: i0.ElementRef, decorators: [{
|
165
|
+
type: Inject,
|
166
|
+
args: [TUI_SCROLL_REF]
|
167
|
+
}] }, { type: i1.Observable, decorators: [{
|
168
|
+
type: Inject,
|
169
|
+
args: [ANIMATION_FRAME]
|
170
|
+
}] }]; } });
|
171
|
+
|
172
|
+
const SCROLL_REF_SELECTOR = '[tuiScrollRef]';
|
173
|
+
class TuiScrollRefDirective {
|
174
|
+
}
|
175
|
+
TuiScrollRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollRefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
176
|
+
TuiScrollRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiScrollRefDirective, selector: "[tuiScrollRef]", providers: [
|
177
|
+
{
|
178
|
+
provide: TUI_SCROLL_REF,
|
179
|
+
useExisting: ElementRef,
|
180
|
+
},
|
181
|
+
], ngImport: i0 });
|
182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollRefDirective, decorators: [{
|
183
|
+
type: Directive,
|
184
|
+
args: [{
|
185
|
+
selector: SCROLL_REF_SELECTOR,
|
186
|
+
providers: [
|
187
|
+
{
|
188
|
+
provide: TUI_SCROLL_REF,
|
189
|
+
useExisting: ElementRef,
|
190
|
+
},
|
191
|
+
],
|
192
|
+
}]
|
193
|
+
}] });
|
194
|
+
|
195
|
+
class TuiScrollControlsModule {
|
196
|
+
}
|
197
|
+
TuiScrollControlsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollControlsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
198
|
+
TuiScrollControlsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollControlsModule, declarations: [TuiScrollbarDirective,
|
199
|
+
TuiScrollControlsComponent,
|
200
|
+
TuiScrollRefDirective], imports: [CommonModule], exports: [TuiScrollControlsComponent, TuiScrollRefDirective] });
|
201
|
+
TuiScrollControlsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollControlsModule, imports: [[CommonModule]] });
|
202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollControlsModule, decorators: [{
|
203
|
+
type: NgModule,
|
204
|
+
args: [{
|
205
|
+
imports: [CommonModule],
|
206
|
+
declarations: [
|
207
|
+
TuiScrollbarDirective,
|
208
|
+
TuiScrollControlsComponent,
|
209
|
+
TuiScrollRefDirective,
|
210
|
+
],
|
211
|
+
exports: [TuiScrollControlsComponent, TuiScrollRefDirective],
|
212
|
+
}]
|
213
|
+
}] });
|
214
|
+
|
215
|
+
/**
|
216
|
+
* Generated bundle index. Do not edit.
|
217
|
+
*/
|
218
|
+
|
219
|
+
export { SCROLL_REF_SELECTOR, TuiScrollControlsComponent, TuiScrollControlsModule, TuiScrollRefDirective, TuiScrollbarDirective };
|
220
|
+
//# sourceMappingURL=taiga-ui-cdk-components-scroll-controls.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-components-scroll-controls.js","sources":["../../../projects/cdk/components/scroll-controls/scrollbar.directive.ts","../../../projects/cdk/components/scroll-controls/scroll-controls.component.ts","../../../projects/cdk/components/scroll-controls/scroll-controls.template.html","../../../projects/cdk/components/scroll-controls/scroll-ref.directive.ts","../../../projects/cdk/components/scroll-controls/scroll-controls.module.ts","../../../projects/cdk/components/scroll-controls/taiga-ui-cdk-components-scroll-controls.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {Directive, ElementRef, Inject, Input, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {\n tuiPreventDefault,\n tuiScrollFrom,\n tuiStopPropagation,\n tuiTypedFromEvent,\n tuiZonefree,\n} from '@taiga-ui/cdk/observables';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {TUI_SCROLL_REF} from '@taiga-ui/cdk/tokens';\nimport {merge, Observable} from 'rxjs';\nimport {map, switchMap, takeUntil, throttleTime} from 'rxjs/operators';\n\nconst MIN_WIDTH = 24;\n\n@Directive({\n selector: '[tuiScrollbar]',\n providers: [TuiDestroyService],\n})\nexport class TuiScrollbarDirective {\n @Input()\n tuiScrollbar: 'horizontal' | 'vertical' = 'vertical';\n\n constructor(\n @Inject(NgZone) zone: NgZone,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Inject(TUI_SCROLL_REF) private readonly container: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(ElementRef) private readonly el: ElementRef<HTMLElement>,\n ) {\n const {nativeElement} = this.el;\n const mousedown$ = tuiTypedFromEvent(nativeElement, 'mousedown');\n const mousemove$ = tuiTypedFromEvent(this.doc, 'mousemove');\n const mouseup$ = tuiTypedFromEvent(this.doc, 'mouseup');\n const mousedownWrapper$ = tuiTypedFromEvent(this.wrapper, 'mousedown');\n\n merge(\n mousedownWrapper$.pipe(\n tuiPreventDefault(),\n map(event => this.getScrolled(event, 0.5, 0.5)),\n ),\n mousedown$.pipe(\n tuiPreventDefault(),\n tuiStopPropagation(),\n switchMap(event => {\n const rect = nativeElement.getBoundingClientRect();\n const vertical = getOffsetVertical(event, rect);\n const horizontal = getOffsetHorizontal(event, rect);\n\n return mousemove$.pipe(\n map(event => this.getScrolled(event, vertical, horizontal)),\n takeUntil(mouseup$),\n );\n }),\n ),\n )\n .pipe(tuiZonefree(zone), takeUntil(destroy$))\n .subscribe(([scrollTop, scrollLeft]) => {\n if (this.tuiScrollbar === 'vertical') {\n this.element.scrollTop = scrollTop;\n } else {\n this.element.scrollLeft = scrollLeft;\n }\n });\n\n merge(\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n tuiScrollFrom(this.element),\n )\n .pipe(tuiZonefree(zone), takeUntil(destroy$))\n .subscribe(() => {\n if (this.tuiScrollbar === 'vertical') {\n nativeElement.style.top = `${this.thumb * 100}%`;\n nativeElement.style.height = `${this.view * 100}%`;\n } else {\n nativeElement.style.left = `${this.thumb * 100}%`;\n nativeElement.style.width = `${this.view * 100}%`;\n }\n });\n }\n\n private get wrapper(): Element {\n return this.el.nativeElement.parentElement!;\n }\n\n private get scrolled(): number {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = this.element;\n\n return this.tuiScrollbar === 'vertical'\n ? scrollTop / (scrollHeight - clientHeight)\n : scrollLeft / (scrollWidth - clientWidth);\n }\n\n private get compensation(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.element;\n\n if (\n ((clientHeight * clientHeight) / scrollHeight > MIN_WIDTH &&\n this.tuiScrollbar === 'vertical') ||\n ((clientWidth * clientWidth) / scrollWidth > MIN_WIDTH &&\n this.tuiScrollbar === 'horizontal')\n ) {\n return 0;\n }\n\n return this.tuiScrollbar === 'vertical'\n ? MIN_WIDTH / clientHeight\n : MIN_WIDTH / clientWidth;\n }\n\n private get thumb(): number {\n const compensation = this.compensation || this.view;\n\n return this.scrolled * (1 - compensation);\n }\n\n private get view(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.element;\n\n return this.tuiScrollbar === 'vertical'\n ? Math.ceil((clientHeight / scrollHeight) * 100) / 100\n : Math.ceil((clientWidth / scrollWidth) * 100) / 100;\n }\n\n private get element(): Element {\n return this.container.nativeElement;\n }\n\n private getScrolled(\n {clientY, clientX}: MouseEvent,\n offsetVertical: number,\n offsetHorizontal: number,\n ): [number, number] {\n const {offsetHeight, offsetWidth} = this.el.nativeElement;\n const {top, left, width, height} = this.wrapper.getBoundingClientRect();\n\n const maxTop = this.element.scrollHeight - height;\n const maxLeft = this.element.scrollWidth - width;\n const scrolledTop =\n (clientY - top - offsetHeight * offsetVertical) / (height - offsetHeight);\n const scrolledLeft =\n (clientX - left - offsetWidth * offsetHorizontal) / (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: ClientRect): number {\n return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: ClientRect): number {\n return (clientX - left) / width;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n NgZone,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {TUI_SCROLL_REF} from '@taiga-ui/cdk/tokens';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, throttleTime} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-scroll-controls',\n templateUrl: './scroll-controls.template.html',\n styleUrls: ['./scroll-controls.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiScrollControlsComponent {\n readonly refresh$ = this.animationFrame$.pipe(\n throttleTime(300),\n map(() => this.scrollbars),\n startWith([false, false]),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n tuiZoneOptimized(this.zone),\n );\n\n constructor(\n @Inject(NgZone) private readonly zone: NgZone,\n @Inject(TUI_SCROLL_REF) private readonly scrollRef: ElementRef<HTMLElement>,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n private get scrollbars(): [boolean, boolean] {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.scrollRef.nativeElement;\n\n return [\n Math.ceil((clientHeight / scrollHeight) * 100) < 100,\n Math.ceil((clientWidth / scrollWidth) * 100) < 100,\n ];\n }\n}\n","<ng-container *ngIf=\"refresh$ | async as bars\">\n <div\n *ngIf=\"bars[0]\"\n class=\"t-bar t-bar_vertical\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n class=\"t-bar t-bar_horizontal\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n</ng-container>\n","import {Directive, ElementRef} from '@angular/core';\nimport {TUI_SCROLL_REF} from '@taiga-ui/cdk/tokens';\n\nexport const SCROLL_REF_SELECTOR = '[tuiScrollRef]';\n\n@Directive({\n selector: SCROLL_REF_SELECTOR,\n providers: [\n {\n provide: TUI_SCROLL_REF,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiScrollRefDirective {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\nimport {TuiScrollControlsComponent} from './scroll-controls.component';\nimport {TuiScrollRefDirective} from './scroll-ref.directive';\nimport {TuiScrollbarDirective} from './scrollbar.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n TuiScrollbarDirective,\n TuiScrollControlsComponent,\n TuiScrollRefDirective,\n ],\n exports: [TuiScrollControlsComponent, TuiScrollRefDirective],\n})\nexport class TuiScrollControlsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.TuiScrollbarDirective"],"mappings":"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"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
export * from '@taiga-ui/cdk/components/alert-host';
|
2
2
|
export * from '@taiga-ui/cdk/components/dialog-host';
|
3
3
|
export * from '@taiga-ui/cdk/components/dropdown-host';
|
4
|
+
export * from '@taiga-ui/cdk/components/scroll-controls';
|
4
5
|
|
5
6
|
/**
|
6
7
|
* Generated bundle index. Do not edit.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-components.js","sources":["../../../projects/cdk/components/taiga-ui-cdk-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-components.js","sources":["../../../projects/cdk/components/taiga-ui-cdk-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAAA;;AAEG"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { QueryList } from '@angular/core';
|
2
|
-
import { trigger, transition,
|
2
|
+
import { trigger, transition, query, animateChild } from '@angular/animations';
|
3
3
|
|
4
4
|
/**
|
5
5
|
* Handler that always returns `false`.
|
@@ -76,10 +76,7 @@ function bothEmpty(item1, item2) {
|
|
76
76
|
* Add to enable child :leave animation (fixes https://github.com/angular/angular/issues/15753)
|
77
77
|
*/
|
78
78
|
const TUI_PARENT_ANIMATION = trigger(`tuiParentAnimation`, [
|
79
|
-
transition(
|
80
|
-
style({ overflow: `hidden` }),
|
81
|
-
query(`:scope > *`, [animateChild()], { optional: true }),
|
82
|
-
]),
|
79
|
+
transition(`:leave`, [query(`:scope > *`, [animateChild()], { optional: true })]),
|
83
80
|
]);
|
84
81
|
/**
|
85
82
|
* Add on parent to stop initial :enter animation for children
|
@@ -230,7 +227,7 @@ const TUI_USED_ICONS = [
|
|
230
227
|
`tuiIconCalendarLarge`,
|
231
228
|
];
|
232
229
|
|
233
|
-
const TUI_VERSION = `3.
|
230
|
+
const TUI_VERSION = `3.47.0`;
|
234
231
|
|
235
232
|
/**
|
236
233
|
* Generated bundle index. Do not edit.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-constants.js","sources":["../../../projects/cdk/constants/always-false-handler.ts","../../../projects/cdk/constants/always-true-handler.ts","../../../projects/cdk/constants/browser.ts","../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/stringify.ts","../../../projects/cdk/constants/matcher.ts","../../../projects/cdk/constants/parent-animation.ts","../../../projects/cdk/constants/polling-time.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/used-icons.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["/**\n * Handler that always returns `false`.\n */\n// eslint-disable-next-line no-restricted-syntax\nexport const ALWAYS_FALSE_HANDLER = (): false => false;\n","/**\n * Handler that always returns `true`.\n */\n// eslint-disable-next-line no-restricted-syntax\nexport const ALWAYS_TRUE_HANDLER = (): true => true;\n","/**\n * @deprecated\n * TODO: drop support of legacy Edge (EdgeHTML) in v4.x\n */\nexport const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\n\nconst rect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n x: 0,\n y: 0,\n} as const;\n\nexport const EMPTY_CLIENT_RECT: DOMRect = {\n ...rect,\n toJSON() {\n return rect;\n },\n};\n","import {TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Default method to turn arbitrary object into string\n */\nexport const TUI_DEFAULT_STRINGIFY: TuiStringHandler<unknown> = item => String(item);\n","import {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {TUI_DEFAULT_STRINGIFY} from './stringify';\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n","import {animateChild, query, style, transition, trigger} from '@angular/animations';\n\n/**\n * Add to enable child :leave animation (fixes https://github.com/angular/angular/issues/15753)\n */\nexport const TUI_PARENT_ANIMATION = trigger(`tuiParentAnimation`, [\n transition(`* => void`, [\n style({overflow: `hidden`}),\n query(`:scope > *`, [animateChild()], {optional: true}),\n ]),\n]);\n\n/**\n * Add on parent to stop initial :enter animation for children\n */\nexport const TUI_PARENT_STOP = trigger(`tuiParentStop`, [transition(`:enter`, [])]);\n","export const POLLING_TIME = 1000 / 15;\n","// Filtering SVGElements for TreeWalker\n// Filter must be a function in IE, other modern browsers are compliant to this format\nexport const svgNodeFilter: NodeFilter = ((node: Node) =>\n `ownerSVGElement` in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT) as any;\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = `\\u00A0`;\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = `\\u2013`;\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = `\\u2014`;\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = `\\u00AB`;\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = `\\u00BB`;\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = `\\u002D`;\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `−`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = `\\u2212`;\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = `\\u002B`;\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = `\\u2022`;\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = `\\u2026`;\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = `\\u00A4`;\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = `\\u200B`;\n","/**\n * @description:\n * AUTOGENERATED\n *\n * Array of icons used in taiga-ui components\n */\nexport const TUI_USED_ICONS = [\n `tuiIconMir`,\n `tuiIconVisaMono`,\n `tuiIconElectronMono`,\n `tuiIconMastercard`,\n `tuiIconMaestro`,\n `tuiIconAmex`,\n `tuiIconDinersClub`,\n `tuiIconDiscover`,\n `tuiIconHumo`,\n `tuiIconJCB`,\n `tuiIconRuPay`,\n `tuiIconUnionPay`,\n `tuiIconUzcard`,\n `tuiIconVerve`,\n `tuiIconLink`,\n `tuiIconSearch`,\n `tuiIconSun`,\n `tuiIconMoon`,\n `tuiIconCode`,\n `tuiIconMenuLarge`,\n `tuiIconRotate`,\n `tuiIconArrowLeft`,\n `tuiIconArrowRight`,\n `tuiIconPlus`,\n `tuiIconMinus`,\n `tuiIconMinimize`,\n `tuiIconEye`,\n `tuiIconEyeOff`,\n `tuiIconDrag`,\n `tuiIconSortAscending`,\n `tuiIconSortDescending`,\n `tuiIconSortOff`,\n `tuiIconCheck`,\n `tuiIconCheckLarge`,\n `tuiIconMinusLarge`,\n `tuiIconChevronUp`,\n `tuiIconHelpCircle`,\n `tuiIconClose`,\n `tuiIconAlertCircle`,\n `tuiIconChevronRight`,\n `tuiIconInfo`,\n `tuiIconCheckCircle`,\n `tuiIconXCircle`,\n `tuiIconChevronLeft`,\n `tuiIconChevronDown`,\n `tuiIconChevronDownLarge`,\n `tuiIconFileLarge`,\n `tuiIconTrashLarge`,\n `tuiIconAlertCircleLarge`,\n `tuiIconCheckCircleLarge`,\n `tuiIconCopy`,\n `tuiIconCopyLarge`,\n `tuiIconEyeOffLarge`,\n `tuiIconEyeLarge`,\n `tuiIconClock`,\n `tuiIconClockLarge`,\n `tuiIconStarLarge`,\n `tuiIconToggleOff`,\n `tuiIconToggleOffLarge`,\n `tuiIconToggleOn`,\n `tuiIconToggleOnLarge`,\n `tuiIconCalendar`,\n `tuiIconCalendarLarge`,\n];\n","export const TUI_VERSION = `3.46.0`;\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-cdk-constants.js","sources":["../../../projects/cdk/constants/always-false-handler.ts","../../../projects/cdk/constants/always-true-handler.ts","../../../projects/cdk/constants/browser.ts","../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/stringify.ts","../../../projects/cdk/constants/matcher.ts","../../../projects/cdk/constants/parent-animation.ts","../../../projects/cdk/constants/polling-time.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/used-icons.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["/**\n * Handler that always returns `false`.\n */\n// eslint-disable-next-line no-restricted-syntax\nexport const ALWAYS_FALSE_HANDLER = (): false => false;\n","/**\n * Handler that always returns `true`.\n */\n// eslint-disable-next-line no-restricted-syntax\nexport const ALWAYS_TRUE_HANDLER = (): true => true;\n","/**\n * @deprecated\n * TODO: drop support of legacy Edge (EdgeHTML) in v4.x\n */\nexport const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\n\nconst rect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n x: 0,\n y: 0,\n} as const;\n\nexport const EMPTY_CLIENT_RECT: DOMRect = {\n ...rect,\n toJSON() {\n return rect;\n },\n};\n","import {TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Default method to turn arbitrary object into string\n */\nexport const TUI_DEFAULT_STRINGIFY: TuiStringHandler<unknown> = item => String(item);\n","import {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {TUI_DEFAULT_STRINGIFY} from './stringify';\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n","import {animateChild, query, transition, trigger} from '@angular/animations';\n\n/**\n * Add to enable child :leave animation (fixes https://github.com/angular/angular/issues/15753)\n */\nexport const TUI_PARENT_ANIMATION = trigger(`tuiParentAnimation`, [\n transition(`:leave`, [query(`:scope > *`, [animateChild()], {optional: true})]),\n]);\n\n/**\n * Add on parent to stop initial :enter animation for children\n */\nexport const TUI_PARENT_STOP = trigger(`tuiParentStop`, [transition(`:enter`, [])]);\n","export const POLLING_TIME = 1000 / 15;\n","// Filtering SVGElements for TreeWalker\n// Filter must be a function in IE, other modern browsers are compliant to this format\nexport const svgNodeFilter: NodeFilter = ((node: Node) =>\n `ownerSVGElement` in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT) as any;\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = `\\u00A0`;\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = `\\u2013`;\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = `\\u2014`;\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = `\\u00AB`;\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = `\\u00BB`;\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = `\\u002D`;\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `−`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = `\\u2212`;\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = `\\u002B`;\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = `\\u2022`;\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = `\\u2026`;\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = `\\u00A4`;\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = `\\u200B`;\n","/**\n * @description:\n * AUTOGENERATED\n *\n * Array of icons used in taiga-ui components\n */\nexport const TUI_USED_ICONS = [\n `tuiIconMir`,\n `tuiIconVisaMono`,\n `tuiIconElectronMono`,\n `tuiIconMastercard`,\n `tuiIconMaestro`,\n `tuiIconAmex`,\n `tuiIconDinersClub`,\n `tuiIconDiscover`,\n `tuiIconHumo`,\n `tuiIconJCB`,\n `tuiIconRuPay`,\n `tuiIconUnionPay`,\n `tuiIconUzcard`,\n `tuiIconVerve`,\n `tuiIconLink`,\n `tuiIconSearch`,\n `tuiIconSun`,\n `tuiIconMoon`,\n `tuiIconCode`,\n `tuiIconMenuLarge`,\n `tuiIconRotate`,\n `tuiIconArrowLeft`,\n `tuiIconArrowRight`,\n `tuiIconPlus`,\n `tuiIconMinus`,\n `tuiIconMinimize`,\n `tuiIconEye`,\n `tuiIconEyeOff`,\n `tuiIconDrag`,\n `tuiIconSortAscending`,\n `tuiIconSortDescending`,\n `tuiIconSortOff`,\n `tuiIconCheck`,\n `tuiIconCheckLarge`,\n `tuiIconMinusLarge`,\n `tuiIconChevronUp`,\n `tuiIconHelpCircle`,\n `tuiIconClose`,\n `tuiIconAlertCircle`,\n `tuiIconChevronRight`,\n `tuiIconInfo`,\n `tuiIconCheckCircle`,\n `tuiIconXCircle`,\n `tuiIconChevronLeft`,\n `tuiIconChevronDown`,\n `tuiIconChevronDownLarge`,\n `tuiIconFileLarge`,\n `tuiIconTrashLarge`,\n `tuiIconAlertCircleLarge`,\n `tuiIconCheckCircleLarge`,\n `tuiIconCopy`,\n `tuiIconCopyLarge`,\n `tuiIconEyeOffLarge`,\n `tuiIconEyeLarge`,\n `tuiIconClock`,\n `tuiIconClockLarge`,\n `tuiIconStarLarge`,\n `tuiIconToggleOff`,\n `tuiIconToggleOffLarge`,\n `tuiIconToggleOn`,\n `tuiIconToggleOnLarge`,\n `tuiIconCalendar`,\n `tuiIconCalendarLarge`,\n];\n","export const TUI_VERSION = `3.47.0`;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -40,10 +40,10 @@ class TuiDefaultAutofocusHandler extends AbstractTuiAutofocusHandler {
|
|
40
40
|
}
|
41
41
|
setFocus() {
|
42
42
|
if (this.isTextFieldElement) {
|
43
|
-
race(timer(TIMEOUT), this.animationFrame$.pipe(throttleTime(POLLING_TIME), map(() => this.element.closest(NG_ANIMATION_SELECTOR)), skipWhile(Boolean), take(1))).subscribe(() => this.element.focus());
|
43
|
+
race(timer(TIMEOUT), this.animationFrame$.pipe(throttleTime(POLLING_TIME), map(() => this.element.closest(NG_ANIMATION_SELECTOR)), skipWhile(Boolean), take(1))).subscribe(() => this.element.focus({ preventScroll: true }));
|
44
44
|
}
|
45
45
|
else {
|
46
|
-
this.element.focus();
|
46
|
+
this.element.focus({ preventScroll: true });
|
47
47
|
}
|
48
48
|
}
|
49
49
|
}
|
@@ -91,7 +91,7 @@ class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler {
|
|
91
91
|
this.zone.runOutsideAngular(() => this.iosWebkitAutofocus());
|
92
92
|
}
|
93
93
|
else {
|
94
|
-
this.element.focus();
|
94
|
+
this.element.focus({ preventScroll: true });
|
95
95
|
}
|
96
96
|
}
|
97
97
|
iosWebkitAutofocus() {
|
@@ -322,7 +322,7 @@ class TuiSynchronousAutofocusHandler extends AbstractTuiAutofocusHandler {
|
|
322
322
|
super(focusable, el);
|
323
323
|
}
|
324
324
|
setFocus() {
|
325
|
-
this.element.focus();
|
325
|
+
this.element.focus({ preventScroll: true });
|
326
326
|
}
|
327
327
|
}
|
328
328
|
TuiSynchronousAutofocusHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiSynchronousAutofocusHandler, deps: [{ token: TUI_FOCUSABLE_ITEM_ACCESSOR, optional: true, self: true }, { token: ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-auto-focus.js","sources":["../../../projects/cdk/directives/auto-focus/handlers/abstract.handler.ts","../../../projects/cdk/directives/auto-focus/handlers/default.handler.ts","../../../projects/cdk/directives/auto-focus/handlers/ios.handler.ts","../../../projects/cdk/directives/auto-focus/autofocus.options.ts","../../../projects/cdk/directives/auto-focus/autofocus.directive.ts","../../../projects/cdk/directives/auto-focus/autofocus.module.ts","../../../projects/cdk/directives/auto-focus/handlers/sync.handler.ts","../../../projects/cdk/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.ts"],"sourcesContent":["import {Directive, ElementRef} from '@angular/core';\nimport {\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk/interfaces';\n\nimport type {TuiAutofocusHandler} from '../autofocus.options';\n\n@Directive()\nexport abstract class AbstractTuiAutofocusHandler implements TuiAutofocusHandler {\n protected constructor(\n protected readonly focusable: TuiFocusableElementAccessor | null,\n protected readonly el: ElementRef<HTMLElement>,\n ) {}\n\n protected get element(): TuiNativeFocusableElement {\n return this.focusable?.nativeFocusableElement || this.el.nativeElement;\n }\n\n protected get isTextFieldElement(): boolean {\n return this.element.matches(`input, textarea, [contenteditable]`);\n }\n\n abstract setFocus(): void;\n}\n","import {Directive, ElementRef, Inject, Optional, Self} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\nimport {Observable, race, timer} from 'rxjs';\nimport {map, skipWhile, take, throttleTime} from 'rxjs/operators';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TIMEOUT = 1000;\nconst NG_ANIMATION_SELECTOR = `.ng-animating`;\n\n@Directive()\nexport class TuiDefaultAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n focusable: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {\n super(focusable, el);\n }\n\n setFocus(): void {\n if (this.isTextFieldElement) {\n race(\n timer(TIMEOUT),\n this.animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(() => this.element.closest(NG_ANIMATION_SELECTOR)),\n skipWhile(Boolean),\n take(1),\n ),\n ).subscribe(() => this.element.focus());\n } else {\n this.element.focus();\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\nimport {tuiIsPresent, tuiPx} from '@taiga-ui/cdk/utils';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TEXTFIELD_ATTRS = [\n `type`,\n `inputMode`,\n `autocomplete`,\n `accept`,\n `min`,\n `max`,\n `step`,\n `pattern`,\n `size`,\n `maxlength`,\n] as const;\n\n@Directive()\nexport class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n focusable: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(NgZone) private readonly zone: NgZone,\n @Inject(WINDOW) private readonly win: Window,\n ) {\n super(focusable, el);\n this.patchCssStyles();\n }\n\n setFocus(): void {\n if (this.isTextFieldElement) {\n this.zone.runOutsideAngular(() => this.iosWebkitAutofocus());\n } else {\n this.element.focus();\n }\n }\n\n private iosWebkitAutofocus(): void {\n const fakeInput: HTMLInputElement = this.makeFakeInput();\n const duration = this.getDurationTimeBeforeFocus();\n let fakeFocusTimeoutId = 0;\n let elementFocusTimeoutId = 0;\n\n const blurHandler = (): void => fakeInput.focus({preventScroll: true});\n const focusHandler = (): void => {\n clearTimeout(fakeFocusTimeoutId);\n\n fakeFocusTimeoutId = this.win.setTimeout(() => {\n clearTimeout(elementFocusTimeoutId);\n\n fakeInput.removeEventListener(`blur`, blurHandler);\n fakeInput.removeEventListener(`focus`, focusHandler);\n\n elementFocusTimeoutId = this.win.setTimeout(() => {\n this.element.focus({preventScroll: false});\n fakeInput.remove();\n }, duration);\n });\n };\n\n fakeInput.addEventListener(`blur`, blurHandler, {once: true});\n fakeInput.addEventListener(`focus`, focusHandler);\n\n if (this.insideDialog()) {\n this.win.document.body.appendChild(fakeInput);\n } else {\n this.element.parentElement?.appendChild(fakeInput);\n }\n\n fakeInput.focus({preventScroll: true});\n }\n\n /**\n * @note:\n * emulate textfield position in layout with cursor\n * before focus to real textfield element\n *\n * required note:\n * [fakeInput.readOnly = true] ~\n * don't use {readOnly: true} value, it's doesn't work for emulate autofill\n *\n * [fakeInput.style.opacity = 0] ~\n * don't use {opacity: 0}, sometimes it's doesn't work for emulate real input\n *\n * [fakeInput.style.fontSize = 16px] ~\n * disable possible auto zoom\n *\n * [fakeInput.style.top/left] ~\n * emulate position cursor before focus to real textfield element\n */\n private makeFakeInput(): HTMLInputElement {\n const fakeInput: HTMLInputElement = this.renderer.createElement(`input`);\n const rect: DOMRect = this.element.getBoundingClientRect();\n\n this.patchFakeInputFromFocusableElement(fakeInput);\n\n fakeInput.style.height = tuiPx(rect.height);\n fakeInput.style.width = tuiPx(rect.width / 2);\n fakeInput.style.position = `fixed`;\n fakeInput.style.zIndex = `-99999999`;\n fakeInput.style.caretColor = `transparent`;\n fakeInput.style.border = `none`;\n fakeInput.style.outline = `none`;\n fakeInput.style.color = `transparent`;\n fakeInput.style.background = `transparent`;\n fakeInput.style.cursor = `none`;\n fakeInput.style.fontSize = tuiPx(16);\n fakeInput.style.top = tuiPx(rect.top);\n fakeInput.style.left = tuiPx(rect.left);\n\n return fakeInput;\n }\n\n private getDurationTimeBeforeFocus(): number {\n return (\n parseFloat(\n this.win\n .getComputedStyle(this.element)\n .getPropertyValue(`--tui-duration`),\n ) || 0\n );\n }\n\n /**\n * @note:\n * unfortunately, in older versions of iOS\n * there is a bug that the fake input cursor\n * will move along with the dialog animation\n * and then that dialog will be shaking\n */\n private insideDialog(): boolean {\n return !!this.element.closest(`tui-dialog`);\n }\n\n /**\n * @note:\n * This is necessary so that the viewport isn't recalculated\n * and then the dialogs don't shake.\n *\n * Also, we need to fixed height viewport,\n * so that when focusing the dialogs don't shake\n */\n private patchCssStyles(): void {\n const doc = this.win.document;\n\n for (const element of [doc.documentElement, doc.body]) {\n element.style.setProperty(`overflow`, `auto`);\n element.style.setProperty(`height`, `100%`);\n }\n }\n\n /**\n * @note:\n * inherit basic attributes values from real input\n * for help iOS detect what do you want see on keyboard,\n * for example [inputMode=numeric, autocomplete=cc-number]\n */\n private patchFakeInputFromFocusableElement(fakeInput: HTMLInputElement): void {\n TEXTFIELD_ATTRS.forEach(attr => {\n const value = this.element.getAttribute(attr);\n\n if (tuiIsPresent(value)) {\n fakeInput.setAttribute(attr, value);\n }\n });\n }\n}\n","import {\n ElementRef,\n InjectionToken,\n NgZone,\n Optional,\n Provider,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Observable} from 'rxjs';\n\nimport {TuiDefaultAutofocusHandler} from './handlers/default.handler';\n// eslint-disable-next-line import/no-cycle\nimport {TuiIosAutofocusHandler} from './handlers/ios.handler';\n\nexport interface TuiAutofocusHandler {\n setFocus(): void;\n}\n\nexport interface TuiAutofocusOptions {\n readonly delay: number;\n}\n\nexport const TUI_AUTOFOCUS_DEFAULT_OPTIONS: TuiAutofocusOptions = {\n delay: NaN, // NaN = no delay/sync\n};\n\nexport const TUI_AUTOFOCUS_OPTIONS = tuiCreateToken(TUI_AUTOFOCUS_DEFAULT_OPTIONS);\n\nexport function tuiAutoFocusOptionsProvider(\n options: Partial<TuiAutofocusOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_AUTOFOCUS_OPTIONS,\n options,\n TUI_AUTOFOCUS_DEFAULT_OPTIONS,\n );\n}\n\nexport const TUI_AUTOFOCUS_HANDLER = new InjectionToken<TuiAutofocusHandler>(\n `[TUI_AUTOFOCUS_HANDLER]`,\n);\n\nexport const TUI_AUTOFOCUS_PROVIDERS = [\n {\n provide: TUI_AUTOFOCUS_HANDLER,\n useFactory: (\n focusable: TuiFocusableElementAccessor | null,\n el: ElementRef<HTMLElement>,\n animationFrame$: Observable<number>,\n renderer: Renderer2,\n zone: NgZone,\n win: Window,\n isIos: boolean,\n ) =>\n isIos\n ? new TuiIosAutofocusHandler(focusable, el, renderer, zone, win)\n : new TuiDefaultAutofocusHandler(focusable, el, animationFrame$),\n deps: [\n [new Optional(), new Self(), TUI_FOCUSABLE_ITEM_ACCESSOR],\n ElementRef,\n ANIMATION_FRAME,\n Renderer2,\n NgZone,\n WINDOW,\n TUI_IS_IOS,\n ],\n },\n TuiDestroyService,\n];\n","import {AfterViewInit, Directive, Inject, Input, Self} from '@angular/core';\nimport {tuiCoerceBooleanProperty} from '@taiga-ui/cdk/coercion';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {timer} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {\n TUI_AUTOFOCUS_HANDLER,\n TUI_AUTOFOCUS_OPTIONS,\n TUI_AUTOFOCUS_PROVIDERS,\n TuiAutofocusHandler,\n TuiAutofocusOptions,\n} from './autofocus.options';\n\n@Directive({\n selector: '[tuiAutoFocus]',\n providers: TUI_AUTOFOCUS_PROVIDERS,\n})\nexport class TuiAutoFocusDirective implements AfterViewInit {\n @Input('tuiAutoFocus')\n autoFocus: boolean | '' = true;\n\n constructor(\n @Inject(TUI_AUTOFOCUS_HANDLER)\n private readonly handler: TuiAutofocusHandler,\n @Inject(TUI_AUTOFOCUS_OPTIONS)\n private readonly options: TuiAutofocusOptions,\n @Self()\n @Inject(TuiDestroyService)\n private readonly destroy$: TuiDestroyService,\n ) {}\n\n ngAfterViewInit(): void {\n if (tuiCoerceBooleanProperty(this.autoFocus)) {\n this.focus();\n }\n }\n\n focus(): void {\n if (Number.isNaN(this.options.delay)) {\n void Promise.resolve().then(() => this.handler.setFocus());\n } else {\n timer(this.options.delay)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.handler.setFocus());\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiAutoFocusDirective} from './autofocus.directive';\n\n@NgModule({\n declarations: [TuiAutoFocusDirective],\n exports: [TuiAutoFocusDirective],\n})\nexport class TuiAutoFocusModule {}\n","import {Directive, ElementRef, Inject, Optional, Self} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\n@Directive()\nexport class TuiSynchronousAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n focusable: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n ) {\n super(focusable, el);\n }\n\n setFocus(): void {\n this.element.focus();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;MASsB,2BAA2B,CAAA;IAC7C,WACuB,CAAA,SAA6C,EAC7C,EAA2B,EAAA;QAD3B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAoC;QAC7C,IAAE,CAAA,EAAA,GAAF,EAAE,CAAyB;KAC9C;AAEJ,IAAA,IAAc,OAAO,GAAA;;AACjB,QAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,sBAAsB,KAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;KAC1E;AAED,IAAA,IAAc,kBAAkB,GAAA;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA,kCAAA,CAAoC,CAAC,CAAC;KACrE;;yHAZiB,2BAA2B,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6GAA3B,2BAA2B,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADhD,SAAS;;;ACEV,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,MAAM,qBAAqB,GAAG,CAAA,aAAA,CAAe,CAAC;AAGxC,MAAO,0BAA2B,SAAQ,2BAA2B,CAAA;AACvE,IAAA,WAAA,CAII,SAA6C,EACzB,EAA2B,EACL,eAAmC,EAAA;AAE7E,QAAA,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAFqB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAoB;KAGhF;IAED,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CACA,KAAK,CAAC,OAAO,CAAC,EACd,IAAI,CAAC,eAAe,CAAC,IAAI,CACrB,YAAY,CAAC,YAAY,CAAC,EAC1B,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,EACtD,SAAS,CAAC,OAAO,CAAC,EAClB,IAAI,CAAC,CAAC,CAAC,CACV,CACJ,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3C,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACxB,SAAA;KACJ;;AA1BQ,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,EAIvB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,2BAA2B,EAE3B,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,UAAU,aACV,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4GAPlB,0BAA0B,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,SAAS;;0BAGD,QAAQ;;0BACR,IAAI;;0BACJ,MAAM;2BAAC,2BAA2B,CAAA;;0BAElC,MAAM;2BAAC,UAAU,CAAA;;0BACjB,MAAM;2BAAC,eAAe,CAAA;;;ACL/B,MAAM,eAAe,GAAG;IACpB,CAAM,IAAA,CAAA;IACN,CAAW,SAAA,CAAA;IACX,CAAc,YAAA,CAAA;IACd,CAAQ,MAAA,CAAA;IACR,CAAK,GAAA,CAAA;IACL,CAAK,GAAA,CAAA;IACL,CAAM,IAAA,CAAA;IACN,CAAS,OAAA,CAAA;IACT,CAAM,IAAA,CAAA;IACN,CAAW,SAAA,CAAA;CACL,CAAC;AAGL,MAAO,sBAAuB,SAAQ,2BAA2B,CAAA;IACnE,WAII,CAAA,SAA6C,EACzB,EAA2B,EACX,QAAmB,EACtB,IAAY,EACZ,GAAW,EAAA;AAE5C,QAAA,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAJe,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACtB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACZ,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QAG5C,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAED,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAChE,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACxB,SAAA;KACJ;IAEO,kBAAkB,GAAA;;AACtB,QAAA,MAAM,SAAS,GAAqB,IAAI,CAAC,aAAa,EAAE,CAAC;AACzD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACnD,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,IAAI,qBAAqB,GAAG,CAAC,CAAC;AAE9B,QAAA,MAAM,WAAW,GAAG,MAAY,SAAS,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,MAAW;YAC5B,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAEjC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAK;gBAC1C,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAEpC,gBAAA,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACnD,gBAAA,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAErD,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAK;oBAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,KAAK,EAAC,CAAC,CAAC;oBAC3C,SAAS,CAAC,MAAM,EAAE,CAAC;iBACtB,EAAE,QAAQ,CAAC,CAAC;AACjB,aAAC,CAAC,CAAC;AACP,SAAC,CAAC;AAEF,QAAA,SAAS,CAAC,gBAAgB,CAAC,CAAA,IAAA,CAAM,EAAE,WAAW,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;AAC9D,QAAA,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAElD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACrB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACjD,SAAA;AAAM,aAAA;YACH,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,aAAa,0CAAE,WAAW,CAAC,SAAS,CAAC,CAAC;AACtD,SAAA;QAED,SAAS,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;KAC1C;AAED;;;;;;;;;;;;;;;;;AAiBG;IACK,aAAa,GAAA;QACjB,MAAM,SAAS,GAAqB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAO,KAAA,CAAA,CAAC,CAAC;QACzE,MAAM,IAAI,GAAY,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AAE3D,QAAA,IAAI,CAAC,kCAAkC,CAAC,SAAS,CAAC,CAAC;QAEnD,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5C,QAAA,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC9C,QAAA,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;AACnC,QAAA,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;AACrC,QAAA,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC;AAC3C,QAAA,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAChC,QAAA,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AACjC,QAAA,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC;AACtC,QAAA,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC;AAC3C,QAAA,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAChC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QACrC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAExC,QAAA,OAAO,SAAS,CAAC;KACpB;IAEO,0BAA0B,GAAA;AAC9B,QAAA,QACI,UAAU,CACN,IAAI,CAAC,GAAG;AACH,aAAA,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9B,aAAA,gBAAgB,CAAC,CAAgB,cAAA,CAAA,CAAC,CAC1C,IAAI,CAAC,EACR;KACL;AAED;;;;;;AAMG;IACK,YAAY,GAAA;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAY,UAAA,CAAA,CAAC,CAAC;KAC/C;AAED;;;;;;;AAOG;IACK,cAAc,GAAA;AAClB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;AAE9B,QAAA,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;YACnD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAU,QAAA,CAAA,EAAE,CAAM,IAAA,CAAA,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAQ,MAAA,CAAA,EAAE,CAAM,IAAA,CAAA,CAAC,CAAC;AAC/C,SAAA;KACJ;AAED;;;;;AAKG;AACK,IAAA,kCAAkC,CAAC,SAA2B,EAAA;AAClE,QAAA,eAAe,CAAC,OAAO,CAAC,IAAI,IAAG;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAE9C,YAAA,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;AACrB,gBAAA,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvC,aAAA;AACL,SAAC,CAAC,CAAC;KACN;;oHAvJQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAInB,2BAA2B,EAE3B,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,UAAU,aACV,SAAS,EAAA,EAAA,EAAA,KAAA,EACT,MAAM,EAAA,EAAA,EAAA,KAAA,EACN,MAAM,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGATT,sBAAsB,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,SAAS;;0BAGD,QAAQ;;0BACR,IAAI;;0BACJ,MAAM;2BAAC,2BAA2B,CAAA;;0BAElC,MAAM;2BAAC,UAAU,CAAA;;0BACjB,MAAM;2BAAC,SAAS,CAAA;;0BAChB,MAAM;2BAAC,MAAM,CAAA;8BACwB,MAAM,EAAA,UAAA,EAAA,CAAA;0BAA3C,MAAM;2BAAC,MAAM,CAAA;;;ACXT,MAAA,6BAA6B,GAAwB;IAC9D,KAAK,EAAE,GAAG;EACZ;MAEW,qBAAqB,GAAG,cAAc,CAAC,6BAA6B,EAAE;AAE7E,SAAU,2BAA2B,CACvC,OAAqC,EAAA;IAErC,OAAO,iBAAiB,CACpB,qBAAqB,EACrB,OAAO,EACP,6BAA6B,CAChC,CAAC;AACN,CAAC;MAEY,qBAAqB,GAAG,IAAI,cAAc,CACnD,CAAyB,uBAAA,CAAA,EAC3B;AAEW,MAAA,uBAAuB,GAAG;AACnC,IAAA;AACI,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,UAAU,EAAE,CACR,SAA6C,EAC7C,EAA2B,EAC3B,eAAmC,EACnC,QAAmB,EACnB,IAAY,EACZ,GAAW,EACX,KAAc,KAEd,KAAK;AACD,cAAE,IAAI,sBAAsB,CAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;cAC9D,IAAI,0BAA0B,CAAC,SAAS,EAAE,EAAE,EAAE,eAAe,CAAC;AACxE,QAAA,IAAI,EAAE;YACF,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,2BAA2B,CAAC;YACzD,UAAU;YACV,eAAe;YACf,SAAS;YACT,MAAM;YACN,MAAM;YACN,UAAU;AACb,SAAA;AACJ,KAAA;IACD,iBAAiB;;;MCvDR,qBAAqB,CAAA;AAI9B,IAAA,WAAA,CAEqB,OAA4B,EAE5B,OAA4B,EAG5B,QAA2B,EAAA;QAL3B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAqB;QAE5B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAqB;QAG5B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;QAThD,IAAS,CAAA,SAAA,GAAiB,IAAI,CAAC;KAU3B;IAEJ,eAAe,GAAA;AACX,QAAA,IAAI,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;AAChB,SAAA;KACJ;IAED,KAAK,GAAA;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAClC,YAAA,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9D,SAAA;AAAM,aAAA;AACH,YAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACpB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjD,SAAA;KACJ;;AA5BQ,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAKlB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,qBAAqB,EAErB,EAAA,EAAA,KAAA,EAAA,qBAAqB,aAGrB,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAVpB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,+FAFnB,uBAAuB,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAEzB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,SAAS,EAAE,uBAAuB;AACrC,iBAAA,CAAA;;0BAMQ,MAAM;2BAAC,qBAAqB,CAAA;;0BAE5B,MAAM;2BAAC,qBAAqB,CAAA;;0BAE5B,IAAI;;0BACJ,MAAM;2BAAC,iBAAiB,CAAA;4CAR7B,SAAS,EAAA,CAAA;sBADR,KAAK;uBAAC,cAAc,CAAA;;;MCXZ,kBAAkB,CAAA;;gHAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;iHAAlB,kBAAkB,EAAA,YAAA,EAAA,CAHZ,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAC1B,qBAAqB,CAAA,EAAA,CAAA,CAAA;iHAEtB,kBAAkB,EAAA,CAAA,CAAA;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACnC,iBAAA,CAAA;;;ACAK,MAAO,8BAA+B,SAAQ,2BAA2B,CAAA;IAC3E,WAII,CAAA,SAA6C,EACzB,EAA2B,EAAA;AAE/C,QAAA,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;KACxB;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KACxB;;4HAbQ,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAI3B,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAE3B,UAAU,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gHANb,8BAA8B,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,SAAS;;0BAGD,QAAQ;;0BACR,IAAI;;0BACJ,MAAM;2BAAC,2BAA2B,CAAA;;0BAElC,MAAM;2BAAC,UAAU,CAAA;;;ACb1B;;AAEG;;;;"}
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-auto-focus.js","sources":["../../../projects/cdk/directives/auto-focus/handlers/abstract.handler.ts","../../../projects/cdk/directives/auto-focus/handlers/default.handler.ts","../../../projects/cdk/directives/auto-focus/handlers/ios.handler.ts","../../../projects/cdk/directives/auto-focus/autofocus.options.ts","../../../projects/cdk/directives/auto-focus/autofocus.directive.ts","../../../projects/cdk/directives/auto-focus/autofocus.module.ts","../../../projects/cdk/directives/auto-focus/handlers/sync.handler.ts","../../../projects/cdk/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.ts"],"sourcesContent":["import {Directive, ElementRef} from '@angular/core';\nimport {\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk/interfaces';\n\nimport type {TuiAutofocusHandler} from '../autofocus.options';\n\n@Directive()\nexport abstract class AbstractTuiAutofocusHandler implements TuiAutofocusHandler {\n protected constructor(\n protected readonly focusable: TuiFocusableElementAccessor | null,\n protected readonly el: ElementRef<HTMLElement>,\n ) {}\n\n protected get element(): TuiNativeFocusableElement {\n return this.focusable?.nativeFocusableElement || this.el.nativeElement;\n }\n\n protected get isTextFieldElement(): boolean {\n return this.element.matches(`input, textarea, [contenteditable]`);\n }\n\n abstract setFocus(): void;\n}\n","import {Directive, ElementRef, Inject, Optional, Self} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\nimport {Observable, race, timer} from 'rxjs';\nimport {map, skipWhile, take, throttleTime} from 'rxjs/operators';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TIMEOUT = 1000;\nconst NG_ANIMATION_SELECTOR = `.ng-animating`;\n\n@Directive()\nexport class TuiDefaultAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n focusable: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {\n super(focusable, el);\n }\n\n setFocus(): void {\n if (this.isTextFieldElement) {\n race(\n timer(TIMEOUT),\n this.animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(() => this.element.closest(NG_ANIMATION_SELECTOR)),\n skipWhile(Boolean),\n take(1),\n ),\n ).subscribe(() => this.element.focus({preventScroll: true}));\n } else {\n this.element.focus({preventScroll: true});\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\nimport {tuiIsPresent, tuiPx} from '@taiga-ui/cdk/utils';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TEXTFIELD_ATTRS = [\n `type`,\n `inputMode`,\n `autocomplete`,\n `accept`,\n `min`,\n `max`,\n `step`,\n `pattern`,\n `size`,\n `maxlength`,\n] as const;\n\n@Directive()\nexport class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n focusable: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(NgZone) private readonly zone: NgZone,\n @Inject(WINDOW) private readonly win: Window,\n ) {\n super(focusable, el);\n this.patchCssStyles();\n }\n\n setFocus(): void {\n if (this.isTextFieldElement) {\n this.zone.runOutsideAngular(() => this.iosWebkitAutofocus());\n } else {\n this.element.focus({preventScroll: true});\n }\n }\n\n private iosWebkitAutofocus(): void {\n const fakeInput: HTMLInputElement = this.makeFakeInput();\n const duration = this.getDurationTimeBeforeFocus();\n let fakeFocusTimeoutId = 0;\n let elementFocusTimeoutId = 0;\n\n const blurHandler = (): void => fakeInput.focus({preventScroll: true});\n const focusHandler = (): void => {\n clearTimeout(fakeFocusTimeoutId);\n\n fakeFocusTimeoutId = this.win.setTimeout(() => {\n clearTimeout(elementFocusTimeoutId);\n\n fakeInput.removeEventListener(`blur`, blurHandler);\n fakeInput.removeEventListener(`focus`, focusHandler);\n\n elementFocusTimeoutId = this.win.setTimeout(() => {\n this.element.focus({preventScroll: false});\n fakeInput.remove();\n }, duration);\n });\n };\n\n fakeInput.addEventListener(`blur`, blurHandler, {once: true});\n fakeInput.addEventListener(`focus`, focusHandler);\n\n if (this.insideDialog()) {\n this.win.document.body.appendChild(fakeInput);\n } else {\n this.element.parentElement?.appendChild(fakeInput);\n }\n\n fakeInput.focus({preventScroll: true});\n }\n\n /**\n * @note:\n * emulate textfield position in layout with cursor\n * before focus to real textfield element\n *\n * required note:\n * [fakeInput.readOnly = true] ~\n * don't use {readOnly: true} value, it's doesn't work for emulate autofill\n *\n * [fakeInput.style.opacity = 0] ~\n * don't use {opacity: 0}, sometimes it's doesn't work for emulate real input\n *\n * [fakeInput.style.fontSize = 16px] ~\n * disable possible auto zoom\n *\n * [fakeInput.style.top/left] ~\n * emulate position cursor before focus to real textfield element\n */\n private makeFakeInput(): HTMLInputElement {\n const fakeInput: HTMLInputElement = this.renderer.createElement(`input`);\n const rect: DOMRect = this.element.getBoundingClientRect();\n\n this.patchFakeInputFromFocusableElement(fakeInput);\n\n fakeInput.style.height = tuiPx(rect.height);\n fakeInput.style.width = tuiPx(rect.width / 2);\n fakeInput.style.position = `fixed`;\n fakeInput.style.zIndex = `-99999999`;\n fakeInput.style.caretColor = `transparent`;\n fakeInput.style.border = `none`;\n fakeInput.style.outline = `none`;\n fakeInput.style.color = `transparent`;\n fakeInput.style.background = `transparent`;\n fakeInput.style.cursor = `none`;\n fakeInput.style.fontSize = tuiPx(16);\n fakeInput.style.top = tuiPx(rect.top);\n fakeInput.style.left = tuiPx(rect.left);\n\n return fakeInput;\n }\n\n private getDurationTimeBeforeFocus(): number {\n return (\n parseFloat(\n this.win\n .getComputedStyle(this.element)\n .getPropertyValue(`--tui-duration`),\n ) || 0\n );\n }\n\n /**\n * @note:\n * unfortunately, in older versions of iOS\n * there is a bug that the fake input cursor\n * will move along with the dialog animation\n * and then that dialog will be shaking\n */\n private insideDialog(): boolean {\n return !!this.element.closest(`tui-dialog`);\n }\n\n /**\n * @note:\n * This is necessary so that the viewport isn't recalculated\n * and then the dialogs don't shake.\n *\n * Also, we need to fixed height viewport,\n * so that when focusing the dialogs don't shake\n */\n private patchCssStyles(): void {\n const doc = this.win.document;\n\n for (const element of [doc.documentElement, doc.body]) {\n element.style.setProperty(`overflow`, `auto`);\n element.style.setProperty(`height`, `100%`);\n }\n }\n\n /**\n * @note:\n * inherit basic attributes values from real input\n * for help iOS detect what do you want see on keyboard,\n * for example [inputMode=numeric, autocomplete=cc-number]\n */\n private patchFakeInputFromFocusableElement(fakeInput: HTMLInputElement): void {\n TEXTFIELD_ATTRS.forEach(attr => {\n const value = this.element.getAttribute(attr);\n\n if (tuiIsPresent(value)) {\n fakeInput.setAttribute(attr, value);\n }\n });\n }\n}\n","import {\n ElementRef,\n InjectionToken,\n NgZone,\n Optional,\n Provider,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Observable} from 'rxjs';\n\nimport {TuiDefaultAutofocusHandler} from './handlers/default.handler';\n// eslint-disable-next-line import/no-cycle\nimport {TuiIosAutofocusHandler} from './handlers/ios.handler';\n\nexport interface TuiAutofocusHandler {\n setFocus(): void;\n}\n\nexport interface TuiAutofocusOptions {\n readonly delay: number;\n}\n\nexport const TUI_AUTOFOCUS_DEFAULT_OPTIONS: TuiAutofocusOptions = {\n delay: NaN, // NaN = no delay/sync\n};\n\nexport const TUI_AUTOFOCUS_OPTIONS = tuiCreateToken(TUI_AUTOFOCUS_DEFAULT_OPTIONS);\n\nexport function tuiAutoFocusOptionsProvider(\n options: Partial<TuiAutofocusOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_AUTOFOCUS_OPTIONS,\n options,\n TUI_AUTOFOCUS_DEFAULT_OPTIONS,\n );\n}\n\nexport const TUI_AUTOFOCUS_HANDLER = new InjectionToken<TuiAutofocusHandler>(\n `[TUI_AUTOFOCUS_HANDLER]`,\n);\n\nexport const TUI_AUTOFOCUS_PROVIDERS = [\n {\n provide: TUI_AUTOFOCUS_HANDLER,\n useFactory: (\n focusable: TuiFocusableElementAccessor | null,\n el: ElementRef<HTMLElement>,\n animationFrame$: Observable<number>,\n renderer: Renderer2,\n zone: NgZone,\n win: Window,\n isIos: boolean,\n ) =>\n isIos\n ? new TuiIosAutofocusHandler(focusable, el, renderer, zone, win)\n : new TuiDefaultAutofocusHandler(focusable, el, animationFrame$),\n deps: [\n [new Optional(), new Self(), TUI_FOCUSABLE_ITEM_ACCESSOR],\n ElementRef,\n ANIMATION_FRAME,\n Renderer2,\n NgZone,\n WINDOW,\n TUI_IS_IOS,\n ],\n },\n TuiDestroyService,\n];\n","import {AfterViewInit, Directive, Inject, Input, Self} from '@angular/core';\nimport {tuiCoerceBooleanProperty} from '@taiga-ui/cdk/coercion';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {timer} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {\n TUI_AUTOFOCUS_HANDLER,\n TUI_AUTOFOCUS_OPTIONS,\n TUI_AUTOFOCUS_PROVIDERS,\n TuiAutofocusHandler,\n TuiAutofocusOptions,\n} from './autofocus.options';\n\n@Directive({\n selector: '[tuiAutoFocus]',\n providers: TUI_AUTOFOCUS_PROVIDERS,\n})\nexport class TuiAutoFocusDirective implements AfterViewInit {\n @Input('tuiAutoFocus')\n autoFocus: boolean | '' = true;\n\n constructor(\n @Inject(TUI_AUTOFOCUS_HANDLER)\n private readonly handler: TuiAutofocusHandler,\n @Inject(TUI_AUTOFOCUS_OPTIONS)\n private readonly options: TuiAutofocusOptions,\n @Self()\n @Inject(TuiDestroyService)\n private readonly destroy$: TuiDestroyService,\n ) {}\n\n ngAfterViewInit(): void {\n if (tuiCoerceBooleanProperty(this.autoFocus)) {\n this.focus();\n }\n }\n\n focus(): void {\n if (Number.isNaN(this.options.delay)) {\n void Promise.resolve().then(() => this.handler.setFocus());\n } else {\n timer(this.options.delay)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.handler.setFocus());\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiAutoFocusDirective} from './autofocus.directive';\n\n@NgModule({\n declarations: [TuiAutoFocusDirective],\n exports: [TuiAutoFocusDirective],\n})\nexport class TuiAutoFocusModule {}\n","import {Directive, ElementRef, Inject, Optional, Self} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\n@Directive()\nexport class TuiSynchronousAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n focusable: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n ) {\n super(focusable, el);\n }\n\n setFocus(): void {\n this.element.focus({preventScroll: true});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
2
|
-
import { inject, InjectFlags, RendererFactory2, InjectionToken, PLATFORM_ID } from '@angular/core';
|
2
|
+
import { inject, InjectFlags, RendererFactory2, InjectionToken, PLATFORM_ID, ElementRef } from '@angular/core';
|
3
3
|
import { WINDOW, NAVIGATOR, USER_AGENT } from '@ng-web-apis/common';
|
4
4
|
import { tuiTypedFromEvent } from '@taiga-ui/cdk/observables';
|
5
5
|
import { tuiCreateTokenFromFactory, tuiGetActualTarget, tuiGetDocumentOrShadowRoot, tuiCreateToken, tuiIsIos, tuiIsApple } from '@taiga-ui/cdk/utils';
|
6
|
-
import { BehaviorSubject, timer, merge, of } from 'rxjs';
|
6
|
+
import { BehaviorSubject, timer, merge, of, from, EMPTY } from 'rxjs';
|
7
7
|
import { switchMap, map, startWith, share, takeUntil, repeatWhen, withLatestFrom, filter, take, distinctUntilChanged, shareReplay } from 'rxjs/operators';
|
8
8
|
import { ɵAnimationEngine } from '@angular/animations/browser';
|
9
9
|
import { ALWAYS_FALSE_HANDLER, ALWAYS_TRUE_HANDLER } from '@taiga-ui/cdk/constants';
|
@@ -88,6 +88,8 @@ function tuiAsAlerts(useExisting) {
|
|
88
88
|
};
|
89
89
|
}
|
90
90
|
|
91
|
+
const TUI_BASE_HREF = tuiCreateTokenFromFactory(() => { var _a, _b; return (_b = (_a = inject(DOCUMENT).querySelector(`base`)) === null || _a === void 0 ? void 0 : _a.href) !== null && _b !== void 0 ? _b : ``; });
|
92
|
+
|
91
93
|
/**
|
92
94
|
* A Renderer2 for global services
|
93
95
|
* https://github.com/angular/angular/issues/17824#issuecomment-353239017
|
@@ -102,6 +104,7 @@ const TUI_DEFAULT_RENDERER = tuiCreateTokenFromFactory(
|
|
102
104
|
* A stream of dialogs
|
103
105
|
*/
|
104
106
|
const TUI_DIALOGS = tuiCreateToken([]);
|
107
|
+
// TODO: Refactor dialogs in 4.0 so there is no need for module imports
|
105
108
|
function tuiAsDialog(useExisting) {
|
106
109
|
return {
|
107
110
|
provide: TUI_DIALOGS,
|
@@ -110,6 +113,9 @@ function tuiAsDialog(useExisting) {
|
|
110
113
|
};
|
111
114
|
}
|
112
115
|
|
116
|
+
/**
|
117
|
+
* @deprecated: use {@link TUI_BASE_HREF}
|
118
|
+
*/
|
113
119
|
const TUI_ENSURE_BASE_HREF = tuiCreateTokenFromFactory(() => {
|
114
120
|
var _a;
|
115
121
|
const baseHref = (_a = inject(DOCUMENT).querySelector(`base`)) === null || _a === void 0 ? void 0 : _a.href;
|
@@ -132,6 +138,13 @@ function tuiAsFocusableItemAccessor(useExisting) {
|
|
132
138
|
};
|
133
139
|
}
|
134
140
|
|
141
|
+
const TUI_FONTS_READY = new InjectionToken(`[TUI_FONTS_READY]`, {
|
142
|
+
factory: () => {
|
143
|
+
var _a;
|
144
|
+
return from(((_a = inject(DOCUMENT).fonts) === null || _a === void 0 ? void 0 : _a.ready) || EMPTY).pipe(shareReplay({ bufferSize: 1, refCount: false }));
|
145
|
+
},
|
146
|
+
});
|
147
|
+
|
135
148
|
/**
|
136
149
|
* iOS browser detection
|
137
150
|
*/
|
@@ -212,6 +225,11 @@ function tuiPlatformFactory() {
|
|
212
225
|
*/
|
213
226
|
const TUI_RANGE = tuiCreateTokenFromFactory(() => isPlatformBrowser(inject(PLATFORM_ID)) ? new Range() : {});
|
214
227
|
|
228
|
+
/**
|
229
|
+
* Scrollable container
|
230
|
+
*/
|
231
|
+
const TUI_SCROLL_REF = tuiCreateTokenFromFactory(() => new ElementRef(inject(DOCUMENT).documentElement));
|
232
|
+
|
215
233
|
/**
|
216
234
|
* Swipe options
|
217
235
|
*/
|
@@ -265,5 +283,5 @@ const TUI_ZOOM_OPTIONS = tuiCreateToken({
|
|
265
283
|
* Generated bundle index. Do not edit.
|
266
284
|
*/
|
267
285
|
|
268
|
-
export { TUI_ACTIVE_ELEMENT, TUI_ALERTS, TUI_DEFAULT_RENDERER, TUI_DIALOGS, TUI_ENSURE_BASE_HREF, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_ANDROID, TUI_IS_APPLE, TUI_IS_CHROMIUM, TUI_IS_CYPRESS, TUI_IS_E2E, TUI_IS_FIREFOX, TUI_IS_IOS, TUI_IS_MOBILE, TUI_IS_PLAYWRIGHT, TUI_IS_STACKBLITZ, TUI_IS_WEBKIT, TUI_PLATFORM, TUI_RANGE, TUI_REMOVED_ELEMENT, TUI_SWIPE_OPTIONS, TUI_TAKE_ONLY_TRUSTED_EVENTS, TUI_TOUCH_SUPPORTED, TUI_WINDOW_HEIGHT, TUI_WINDOW_SIZE, TUI_ZOOM_OPTIONS, tuiAsAlerts, tuiAsDialog, tuiAsFocusableItemAccessor, tuiPlatformFactory };
|
286
|
+
export { TUI_ACTIVE_ELEMENT, TUI_ALERTS, TUI_BASE_HREF, TUI_DEFAULT_RENDERER, TUI_DIALOGS, TUI_ENSURE_BASE_HREF, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_FONTS_READY, TUI_IS_ANDROID, TUI_IS_APPLE, TUI_IS_CHROMIUM, TUI_IS_CYPRESS, TUI_IS_E2E, TUI_IS_FIREFOX, TUI_IS_IOS, TUI_IS_MOBILE, TUI_IS_PLAYWRIGHT, TUI_IS_STACKBLITZ, TUI_IS_WEBKIT, TUI_PLATFORM, TUI_RANGE, TUI_REMOVED_ELEMENT, TUI_SCROLL_REF, TUI_SWIPE_OPTIONS, TUI_TAKE_ONLY_TRUSTED_EVENTS, TUI_TOUCH_SUPPORTED, TUI_WINDOW_HEIGHT, TUI_WINDOW_SIZE, TUI_ZOOM_OPTIONS, tuiAsAlerts, tuiAsDialog, tuiAsFocusableItemAccessor, tuiPlatformFactory };
|
269
287
|
//# sourceMappingURL=taiga-ui-cdk-tokens.js.map
|