@taiga-ui/cdk 2.20.0 → 2.24.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/README.md +7 -3
- package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
- package/abstract/theme-switcher.d.ts +2 -1
- package/bundles/taiga-ui-cdk-abstract.umd.js +29 -15
- package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-abstract.umd.min.js +2 -2
- package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +1 -1
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-components-portal-host.umd.js +1 -1
- package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.js +13 -31
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js +2 -2
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pan.umd.js +266 -0
- package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives-pan.umd.min.js +16 -0
- package/bundles/taiga-ui-cdk-directives-pan.umd.min.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives-swipe.umd.js +266 -0
- package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js +16 -0
- package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives-zoom.umd.js +269 -0
- package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js +16 -0
- package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives.umd.js +28 -4
- package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-services.umd.js +154 -5
- package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-services.umd.min.js +2 -2
- package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.js +16 -4
- package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-dom.umd.js +1 -3
- package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-dom.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +17 -0
- package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.min.js.map +1 -1
- package/components/dialog-host/taiga-ui-cdk-components-dialog-host.metadata.json +1 -1
- package/components/portal-host/taiga-ui-cdk-components-portal-host.metadata.json +1 -1
- package/directives/autofilled/autofilled.directive.d.ts +4 -5
- package/directives/autofilled/taiga-ui-cdk-directives-autofilled.metadata.json +1 -1
- package/directives/index.d.ts +3 -0
- package/directives/pan/index.d.ts +2 -0
- package/directives/pan/package.json +13 -0
- package/directives/pan/pan.directive.d.ts +5 -0
- package/directives/pan/pan.module.d.ts +5 -0
- package/directives/pan/taiga-ui-cdk-directives-pan.d.ts +4 -0
- package/directives/pan/taiga-ui-cdk-directives-pan.metadata.json +1 -0
- package/directives/swipe/index.d.ts +2 -0
- package/directives/swipe/package.json +13 -0
- package/directives/swipe/swipe.directive.d.ts +5 -0
- package/directives/swipe/swipe.module.d.ts +5 -0
- package/directives/swipe/taiga-ui-cdk-directives-swipe.d.ts +4 -0
- package/directives/swipe/taiga-ui-cdk-directives-swipe.metadata.json +1 -0
- package/directives/taiga-ui-cdk-directives.metadata.json +1 -1
- package/directives/zoom/index.d.ts +2 -0
- package/directives/zoom/package.json +13 -0
- package/directives/zoom/taiga-ui-cdk-directives-zoom.d.ts +4 -0
- package/directives/zoom/taiga-ui-cdk-directives-zoom.metadata.json +1 -0
- package/directives/zoom/zoom.directive.d.ts +5 -0
- package/directives/zoom/zoom.module.d.ts +5 -0
- package/esm2015/abstract/control.js +7 -5
- package/esm2015/abstract/interactive.js +9 -6
- package/esm2015/abstract/theme-switcher.js +17 -7
- package/esm2015/components/dialog-host/dialog-host.component.js +1 -1
- package/esm2015/components/portal-host/portal-host.component.js +1 -1
- package/esm2015/directives/autofilled/autofilled.directive.js +11 -31
- package/esm2015/directives/index.js +4 -1
- package/esm2015/directives/pan/index.js +3 -0
- package/esm2015/directives/pan/pan.directive.js +22 -0
- package/esm2015/directives/pan/pan.module.js +16 -0
- package/esm2015/directives/pan/taiga-ui-cdk-directives-pan.js +5 -0
- package/esm2015/directives/swipe/index.js +3 -0
- package/esm2015/directives/swipe/swipe.directive.js +22 -0
- package/esm2015/directives/swipe/swipe.module.js +16 -0
- package/esm2015/directives/swipe/taiga-ui-cdk-directives-swipe.js +5 -0
- package/esm2015/directives/zoom/index.js +3 -0
- package/esm2015/directives/zoom/taiga-ui-cdk-directives-zoom.js +5 -0
- package/esm2015/directives/zoom/zoom.directive.js +25 -0
- package/esm2015/directives/zoom/zoom.module.js +16 -0
- package/esm2015/interfaces/index.js +1 -1
- package/esm2015/interfaces/swipe.js +1 -0
- package/esm2015/interfaces/zoom.js +1 -0
- package/esm2015/services/hovered.service.js +2 -2
- package/esm2015/services/index.js +4 -1
- package/esm2015/services/pan.service.js +35 -0
- package/esm2015/services/swipe.service.js +52 -0
- package/esm2015/services/zoom.service.js +55 -0
- package/esm2015/tokens/active-element.js +4 -5
- package/esm2015/tokens/index.js +3 -1
- package/esm2015/tokens/swipe-options.js +5 -0
- package/esm2015/tokens/zoom-options.js +7 -0
- package/esm2015/utils/dom/contains-or-after.js +2 -4
- package/esm2015/utils/miscellaneous/distance-between-touches.js +4 -0
- package/esm2015/utils/miscellaneous/fallback-value.js +2 -1
- package/esm2015/utils/miscellaneous/get-swipe-direction.js +9 -0
- package/esm2015/utils/miscellaneous/index.js +3 -1
- package/esm5/abstract/control.js +7 -5
- package/esm5/abstract/interactive.js +9 -6
- package/esm5/abstract/theme-switcher.js +15 -5
- package/esm5/components/dialog-host/dialog-host.component.js +1 -1
- package/esm5/components/portal-host/portal-host.component.js +1 -1
- package/esm5/directives/autofilled/autofilled.directive.js +14 -33
- package/esm5/directives/index.js +4 -1
- package/esm5/directives/pan/index.js +3 -0
- package/esm5/directives/pan/pan.directive.js +23 -0
- package/esm5/directives/pan/pan.module.js +19 -0
- package/esm5/directives/pan/taiga-ui-cdk-directives-pan.js +5 -0
- package/esm5/directives/swipe/index.js +3 -0
- package/esm5/directives/swipe/swipe.directive.js +23 -0
- package/esm5/directives/swipe/swipe.module.js +19 -0
- package/esm5/directives/swipe/taiga-ui-cdk-directives-swipe.js +5 -0
- package/esm5/directives/zoom/index.js +3 -0
- package/esm5/directives/zoom/taiga-ui-cdk-directives-zoom.js +5 -0
- package/esm5/directives/zoom/zoom.directive.js +26 -0
- package/esm5/directives/zoom/zoom.module.js +19 -0
- package/esm5/interfaces/index.js +1 -1
- package/esm5/interfaces/swipe.js +1 -0
- package/esm5/interfaces/zoom.js +1 -0
- package/esm5/services/hovered.service.js +2 -2
- package/esm5/services/index.js +4 -1
- package/esm5/services/pan.service.js +45 -0
- package/esm5/services/swipe.service.js +60 -0
- package/esm5/services/zoom.service.js +65 -0
- package/esm5/tokens/active-element.js +5 -5
- package/esm5/tokens/index.js +3 -1
- package/esm5/tokens/swipe-options.js +5 -0
- package/esm5/tokens/zoom-options.js +7 -0
- package/esm5/utils/dom/contains-or-after.js +2 -4
- package/esm5/utils/miscellaneous/distance-between-touches.js +5 -0
- package/esm5/utils/miscellaneous/fallback-value.js +2 -1
- package/esm5/utils/miscellaneous/get-swipe-direction.js +9 -0
- package/esm5/utils/miscellaneous/index.js +3 -1
- package/fesm2015/taiga-ui-cdk-abstract.js +27 -14
- package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-dialog-host.js +1 -1
- package/fesm2015/taiga-ui-cdk-components-portal-host.js +1 -1
- package/fesm2015/taiga-ui-cdk-directives-autofilled.js +10 -30
- package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-pan.js +40 -0
- package/fesm2015/taiga-ui-cdk-directives-pan.js.map +1 -0
- package/fesm2015/taiga-ui-cdk-directives-swipe.js +40 -0
- package/fesm2015/taiga-ui-cdk-directives-swipe.js.map +1 -0
- package/fesm2015/taiga-ui-cdk-directives-zoom.js +43 -0
- package/fesm2015/taiga-ui-cdk-directives-zoom.js.map +1 -0
- package/fesm2015/taiga-ui-cdk-directives.js +3 -0
- package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-services.js +125 -6
- package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-tokens.js +14 -5
- package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-dom.js +1 -3
- package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +15 -1
- package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
- package/fesm5/taiga-ui-cdk-abstract.js +26 -12
- package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
- package/fesm5/taiga-ui-cdk-components-dialog-host.js +1 -1
- package/fesm5/taiga-ui-cdk-components-portal-host.js +1 -1
- package/fesm5/taiga-ui-cdk-directives-autofilled.js +13 -32
- package/fesm5/taiga-ui-cdk-directives-autofilled.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-pan.js +44 -0
- package/fesm5/taiga-ui-cdk-directives-pan.js.map +1 -0
- package/fesm5/taiga-ui-cdk-directives-swipe.js +44 -0
- package/fesm5/taiga-ui-cdk-directives-swipe.js.map +1 -0
- package/fesm5/taiga-ui-cdk-directives-zoom.js +47 -0
- package/fesm5/taiga-ui-cdk-directives-zoom.js.map +1 -0
- package/fesm5/taiga-ui-cdk-directives.js +3 -0
- package/fesm5/taiga-ui-cdk-directives.js.map +1 -1
- package/fesm5/taiga-ui-cdk-services.js +153 -6
- package/fesm5/taiga-ui-cdk-services.js.map +1 -1
- package/fesm5/taiga-ui-cdk-tokens.js +15 -5
- package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
- package/fesm5/taiga-ui-cdk-utils-dom.js +1 -3
- package/fesm5/taiga-ui-cdk-utils-dom.js.map +1 -1
- package/fesm5/taiga-ui-cdk-utils-miscellaneous.js +16 -1
- package/fesm5/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
- package/interfaces/index.d.ts +2 -0
- package/interfaces/swipe.d.ts +9 -0
- package/interfaces/taiga-ui-cdk-interfaces.metadata.json +1 -1
- package/interfaces/zoom.d.ts +9 -0
- package/package.json +3 -3
- package/services/index.d.ts +3 -0
- package/services/pan.service.d.ts +8 -0
- package/services/swipe.service.d.ts +9 -0
- package/services/taiga-ui-cdk-services.metadata.json +1 -1
- package/services/zoom.service.d.ts +6 -0
- package/tokens/index.d.ts +2 -0
- package/tokens/swipe-options.d.ts +3 -0
- package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
- package/tokens/zoom-options.d.ts +3 -0
- package/utils/miscellaneous/distance-between-touches.d.ts +1 -0
- package/utils/miscellaneous/fallback-value.d.ts +1 -0
- package/utils/miscellaneous/get-swipe-direction.d.ts +2 -0
- package/utils/miscellaneous/index.d.ts +2 -0
- package/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.metadata.json +1 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { __decorate, __param } from 'tslib';
|
|
2
|
-
import {
|
|
3
|
-
import { typedFromEvent
|
|
4
|
-
import { TuiDirectiveStylesService
|
|
5
|
-
import {
|
|
6
|
-
import { take, takeUntil } from 'rxjs/operators';
|
|
2
|
+
import { ElementRef, Inject, Output, Directive, NgModule } from '@angular/core';
|
|
3
|
+
import { typedFromEvent } from '@taiga-ui/cdk/observables';
|
|
4
|
+
import { TuiDirectiveStylesService } from '@taiga-ui/cdk/services';
|
|
5
|
+
import { map, skip } from 'rxjs/operators';
|
|
7
6
|
|
|
8
7
|
const ON = 'tuiAutofillOn';
|
|
9
8
|
const OFF = 'tuiAutofillOff';
|
|
@@ -29,47 +28,28 @@ const STYLE = `
|
|
|
29
28
|
}`;
|
|
30
29
|
// @dynamic
|
|
31
30
|
let TuiAutofilledDirective = class TuiAutofilledDirective {
|
|
32
|
-
constructor(
|
|
33
|
-
this.
|
|
31
|
+
constructor(elementRef, directiveStyles) {
|
|
32
|
+
this.elementRef = elementRef;
|
|
33
|
+
this.tuiAutofilledChange = typedFromEvent(this.elementRef.nativeElement, 'animationstart').pipe(map(({ animationName }) => animationName === ON), skip(1));
|
|
34
34
|
directiveStyles.addStyle(STYLE, 'TuiAutofilledDirective');
|
|
35
|
-
// Subscribing to synthetic keydown event on page reload autofill in Chrome
|
|
36
|
-
typedFromEvent(nativeElement, 'keydown')
|
|
37
|
-
.pipe(take(1), takeUntil(destroy$), watch(changeDetectorRef))
|
|
38
|
-
.subscribe();
|
|
39
|
-
}
|
|
40
|
-
onAnimationStart({ animationName }) {
|
|
41
|
-
if (animationName === ON) {
|
|
42
|
-
this.tuiAutofilledChange.emit(true);
|
|
43
|
-
}
|
|
44
|
-
else if (animationName === OFF) {
|
|
45
|
-
this.tuiAutofilledChange.emit(false);
|
|
46
|
-
}
|
|
47
35
|
}
|
|
48
36
|
};
|
|
49
37
|
TuiAutofilledDirective.ctorParameters = () => [
|
|
50
|
-
{ type: TuiDirectiveStylesService, decorators: [{ type: Inject, args: [TuiDirectiveStylesService,] }] },
|
|
51
38
|
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
52
|
-
{ type:
|
|
53
|
-
{ type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }] }
|
|
39
|
+
{ type: TuiDirectiveStylesService, decorators: [{ type: Inject, args: [TuiDirectiveStylesService,] }] }
|
|
54
40
|
];
|
|
55
41
|
__decorate([
|
|
56
42
|
Output()
|
|
57
43
|
], TuiAutofilledDirective.prototype, "tuiAutofilledChange", void 0);
|
|
58
|
-
__decorate([
|
|
59
|
-
HostListener('animationstart', ['$event'])
|
|
60
|
-
], TuiAutofilledDirective.prototype, "onAnimationStart", null);
|
|
61
44
|
TuiAutofilledDirective = __decorate([
|
|
62
45
|
Directive({
|
|
63
46
|
selector: 'input[tuiAutofilledChange]',
|
|
64
47
|
host: {
|
|
65
48
|
class: 'tui-autofill',
|
|
66
49
|
},
|
|
67
|
-
providers: [TuiDestroyService],
|
|
68
50
|
}),
|
|
69
|
-
__param(0, Inject(
|
|
70
|
-
__param(1, Inject(
|
|
71
|
-
__param(2, Inject(ChangeDetectorRef)),
|
|
72
|
-
__param(3, Inject(TuiDestroyService))
|
|
51
|
+
__param(0, Inject(ElementRef)),
|
|
52
|
+
__param(1, Inject(TuiDirectiveStylesService))
|
|
73
53
|
], TuiAutofilledDirective);
|
|
74
54
|
|
|
75
55
|
let TuiAutofilledModule = class TuiAutofilledModule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-autofilled.js","sources":["ng://@taiga-ui/cdk/directives/autofilled/autofilled.directive.ts","ng://@taiga-ui/cdk/directives/autofilled/autofilled.module.ts","ng://@taiga-ui/cdk/directives/autofilled/taiga-ui-cdk-directives-autofilled.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-autofilled.js","sources":["ng://@taiga-ui/cdk/directives/autofilled/autofilled.directive.ts","ng://@taiga-ui/cdk/directives/autofilled/autofilled.module.ts","ng://@taiga-ui/cdk/directives/autofilled/taiga-ui-cdk-directives-autofilled.ts"],"sourcesContent":["import {Directive, ElementRef, Inject, Output} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TuiDirectiveStylesService} from '@taiga-ui/cdk/services';\nimport {map, skip} from 'rxjs/operators';\n\nconst ON = 'tuiAutofillOn';\nconst OFF = 'tuiAutofillOff';\nconst STYLE = `\n@keyframes ${ON} {\n from {\n content: '1';\n }\n\n to {\n content: '2';\n }\n}\n\n@keyframes ${OFF} {\n from {\n content: '2';\n }\n\n to {\n content: '1';\n }\n}`;\n\n// @dynamic\n@Directive({\n selector: 'input[tuiAutofilledChange]',\n host: {\n class: 'tui-autofill',\n },\n})\nexport class TuiAutofilledDirective {\n @Output()\n readonly tuiAutofilledChange = typedFromEvent(\n this.elementRef.nativeElement,\n 'animationstart',\n ).pipe(\n map(({animationName}) => animationName === ON),\n skip(1),\n );\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(TuiDirectiveStylesService)\n directiveStyles: TuiDirectiveStylesService,\n ) {\n directiveStyles.addStyle(STYLE, 'TuiAutofilledDirective');\n }\n}\n","import {NgModule} from '@angular/core';\nimport {TuiAutofilledDirective} from './autofilled.directive';\n\n@NgModule({\n declarations: [TuiAutofilledDirective],\n exports: [TuiAutofilledDirective],\n})\nexport class TuiAutofilledModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAKA,MAAM,EAAE,GAAG,eAAe,CAAC;AAC3B,MAAM,GAAG,GAAG,gBAAgB,CAAC;AAC7B,MAAM,KAAK,GAAG;aACD,EAAE;;;;;;;;;;aAUF,GAAG;;;;;;;;EAQd,CAAC;AAEH;IAOa,sBAAsB,GAAnC,MAAa,sBAAsB;IAU/B,YACyC,UAAwC,EAE7E,eAA0C;QAFL,eAAU,GAAV,UAAU,CAA8B;QATxE,wBAAmB,GAAG,cAAc,CACzC,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,gBAAgB,CACnB,CAAC,IAAI,CACF,GAAG,CAAC,CAAC,EAAC,aAAa,EAAC,KAAK,aAAa,KAAK,EAAE,CAAC,EAC9C,IAAI,CAAC,CAAC,CAAC,CACV,CAAC;QAOE,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;KAC7D;EACJ;;YANwD,UAAU,uBAA1D,MAAM,SAAC,UAAU;YAED,yBAAyB,uBADzC,MAAM,SAAC,yBAAyB;;AAVrC;IADC,MAAM,EAAE;mEAOP;AARO,sBAAsB;IANlC,SAAS,CAAC;QACP,QAAQ,EAAE,4BAA4B;QACtC,IAAI,EAAE;YACF,KAAK,EAAE,cAAc;SACxB;KACJ,CAAC;IAYO,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAClB,WAAA,MAAM,CAAC,yBAAyB,CAAC,CAAA;GAZ7B,sBAAsB,CAiBlC;;IC7CY,mBAAmB,GAAhC,MAAa,mBAAmB;EAAG;AAAtB,mBAAmB;IAJ/B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,sBAAsB,CAAC;QACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;KACpC,CAAC;GACW,mBAAmB,CAAG;;ACPnC;;;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { __decorate, __param } from 'tslib';
|
|
2
|
+
import { Inject, Directive, NgModule } from '@angular/core';
|
|
3
|
+
import { TuiPanService } from '@taiga-ui/cdk/services';
|
|
4
|
+
|
|
5
|
+
// @dynamic
|
|
6
|
+
let TuiPanDirective = class TuiPanDirective {
|
|
7
|
+
constructor(tuiPan) {
|
|
8
|
+
this.tuiPan = tuiPan;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
TuiPanDirective.ctorParameters = () => [
|
|
12
|
+
{ type: TuiPanService, decorators: [{ type: Inject, args: [TuiPanService,] }] }
|
|
13
|
+
];
|
|
14
|
+
TuiPanDirective = __decorate([
|
|
15
|
+
Directive({
|
|
16
|
+
selector: '[tuiPan]',
|
|
17
|
+
outputs: ['tuiPan'],
|
|
18
|
+
providers: [TuiPanService],
|
|
19
|
+
}),
|
|
20
|
+
__param(0, Inject(TuiPanService))
|
|
21
|
+
], TuiPanDirective);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @experimental
|
|
25
|
+
*/
|
|
26
|
+
let TuiPanModule = class TuiPanModule {
|
|
27
|
+
};
|
|
28
|
+
TuiPanModule = __decorate([
|
|
29
|
+
NgModule({
|
|
30
|
+
declarations: [TuiPanDirective],
|
|
31
|
+
exports: [TuiPanDirective],
|
|
32
|
+
})
|
|
33
|
+
], TuiPanModule);
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Generated bundle index. Do not edit.
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
export { TuiPanDirective, TuiPanModule };
|
|
40
|
+
//# sourceMappingURL=taiga-ui-cdk-directives-pan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-pan.js","sources":["ng://@taiga-ui/cdk/directives/pan/pan.directive.ts","ng://@taiga-ui/cdk/directives/pan/pan.module.ts","ng://@taiga-ui/cdk/directives/pan/taiga-ui-cdk-directives-pan.ts"],"sourcesContent":["import {Directive, Inject} from '@angular/core';\nimport {TuiPanService} from '@taiga-ui/cdk/services';\n\n// @dynamic\n@Directive({\n selector: '[tuiPan]',\n outputs: ['tuiPan'],\n providers: [TuiPanService],\n})\nexport class TuiPanDirective {\n constructor(@Inject(TuiPanService) readonly tuiPan: TuiPanService) {}\n}\n","import {NgModule} from '@angular/core';\nimport {TuiPanDirective} from './pan.directive';\n\n/**\n * @experimental\n */\n@NgModule({\n declarations: [TuiPanDirective],\n exports: [TuiPanDirective],\n})\nexport class TuiPanModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;IAMa,eAAe,GAA5B,MAAa,eAAe;IACxB,YAA4C,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;KAAI;EACxE;;YADuD,aAAa,uBAApD,MAAM,SAAC,aAAa;;AADxB,eAAe;IAL3B,SAAS,CAAC;QACP,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,CAAC,QAAQ,CAAC;QACnB,SAAS,EAAE,CAAC,aAAa,CAAC;KAC7B,CAAC;IAEe,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;GADzB,eAAe,CAE3B;;ACRD;;;IAOa,YAAY,GAAzB,MAAa,YAAY;EAAG;AAAf,YAAY;IAJxB,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,eAAe,CAAC;QAC/B,OAAO,EAAE,CAAC,eAAe,CAAC;KAC7B,CAAC;GACW,YAAY,CAAG;;ACV5B;;;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { __decorate, __param } from 'tslib';
|
|
2
|
+
import { Inject, Directive, NgModule } from '@angular/core';
|
|
3
|
+
import { TuiSwipeService } from '@taiga-ui/cdk/services';
|
|
4
|
+
|
|
5
|
+
// @dynamic
|
|
6
|
+
let TuiSwipeDirective = class TuiSwipeDirective {
|
|
7
|
+
constructor(tuiSwipe) {
|
|
8
|
+
this.tuiSwipe = tuiSwipe;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
TuiSwipeDirective.ctorParameters = () => [
|
|
12
|
+
{ type: TuiSwipeService, decorators: [{ type: Inject, args: [TuiSwipeService,] }] }
|
|
13
|
+
];
|
|
14
|
+
TuiSwipeDirective = __decorate([
|
|
15
|
+
Directive({
|
|
16
|
+
selector: '[tuiSwipe]',
|
|
17
|
+
outputs: ['tuiSwipe'],
|
|
18
|
+
providers: [TuiSwipeService],
|
|
19
|
+
}),
|
|
20
|
+
__param(0, Inject(TuiSwipeService))
|
|
21
|
+
], TuiSwipeDirective);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @experimental
|
|
25
|
+
*/
|
|
26
|
+
let TuiSwipeModule = class TuiSwipeModule {
|
|
27
|
+
};
|
|
28
|
+
TuiSwipeModule = __decorate([
|
|
29
|
+
NgModule({
|
|
30
|
+
declarations: [TuiSwipeDirective],
|
|
31
|
+
exports: [TuiSwipeDirective],
|
|
32
|
+
})
|
|
33
|
+
], TuiSwipeModule);
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Generated bundle index. Do not edit.
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
export { TuiSwipeDirective, TuiSwipeModule };
|
|
40
|
+
//# sourceMappingURL=taiga-ui-cdk-directives-swipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-swipe.js","sources":["ng://@taiga-ui/cdk/directives/swipe/swipe.directive.ts","ng://@taiga-ui/cdk/directives/swipe/swipe.module.ts","ng://@taiga-ui/cdk/directives/swipe/taiga-ui-cdk-directives-swipe.ts"],"sourcesContent":["import {Directive, Inject} from '@angular/core';\nimport {TuiSwipeService} from '@taiga-ui/cdk/services';\n\n// @dynamic\n@Directive({\n selector: '[tuiSwipe]',\n outputs: ['tuiSwipe'],\n providers: [TuiSwipeService],\n})\nexport class TuiSwipeDirective {\n constructor(@Inject(TuiSwipeService) readonly tuiSwipe: TuiSwipeService) {}\n}\n","import {NgModule} from '@angular/core';\nimport {TuiSwipeDirective} from './swipe.directive';\n\n/**\n * @experimental\n */\n@NgModule({\n declarations: [TuiSwipeDirective],\n exports: [TuiSwipeDirective],\n})\nexport class TuiSwipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;IAMa,iBAAiB,GAA9B,MAAa,iBAAiB;IAC1B,YAA8C,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;KAAI;EAC9E;;YAD2D,eAAe,uBAA1D,MAAM,SAAC,eAAe;;AAD1B,iBAAiB;IAL7B,SAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,CAAC,UAAU,CAAC;QACrB,SAAS,EAAE,CAAC,eAAe,CAAC;KAC/B,CAAC;IAEe,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;GAD3B,iBAAiB,CAE7B;;ACRD;;;IAOa,cAAc,GAA3B,MAAa,cAAc;EAAG;AAAjB,cAAc;IAJ1B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,iBAAiB,CAAC;QACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;KAC/B,CAAC;GACW,cAAc,CAAG;;ACV9B;;;;;;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { __decorate, __param } from 'tslib';
|
|
2
|
+
import { Inject, Directive, NgModule } from '@angular/core';
|
|
3
|
+
import { TuiZoomService } from '@taiga-ui/cdk/services';
|
|
4
|
+
|
|
5
|
+
// @dynamic
|
|
6
|
+
let TuiZoomDirective = class TuiZoomDirective {
|
|
7
|
+
constructor(tuiZoom) {
|
|
8
|
+
this.tuiZoom = tuiZoom;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
TuiZoomDirective.ctorParameters = () => [
|
|
12
|
+
{ type: TuiZoomService, decorators: [{ type: Inject, args: [TuiZoomService,] }] }
|
|
13
|
+
];
|
|
14
|
+
TuiZoomDirective = __decorate([
|
|
15
|
+
Directive({
|
|
16
|
+
selector: '[tuiZoom]',
|
|
17
|
+
outputs: ['tuiZoom'],
|
|
18
|
+
providers: [TuiZoomService],
|
|
19
|
+
host: {
|
|
20
|
+
'[style.touch-actions]': '"none"',
|
|
21
|
+
},
|
|
22
|
+
}),
|
|
23
|
+
__param(0, Inject(TuiZoomService))
|
|
24
|
+
], TuiZoomDirective);
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @experimental
|
|
28
|
+
*/
|
|
29
|
+
let TuiZoomModule = class TuiZoomModule {
|
|
30
|
+
};
|
|
31
|
+
TuiZoomModule = __decorate([
|
|
32
|
+
NgModule({
|
|
33
|
+
declarations: [TuiZoomDirective],
|
|
34
|
+
exports: [TuiZoomDirective],
|
|
35
|
+
})
|
|
36
|
+
], TuiZoomModule);
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Generated bundle index. Do not edit.
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
export { TuiZoomDirective, TuiZoomModule };
|
|
43
|
+
//# sourceMappingURL=taiga-ui-cdk-directives-zoom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-zoom.js","sources":["ng://@taiga-ui/cdk/directives/zoom/zoom.directive.ts","ng://@taiga-ui/cdk/directives/zoom/zoom.module.ts","ng://@taiga-ui/cdk/directives/zoom/taiga-ui-cdk-directives-zoom.ts"],"sourcesContent":["import {Directive, Inject} from '@angular/core';\nimport {TuiZoomService} from '@taiga-ui/cdk/services';\n\n// @dynamic\n@Directive({\n selector: '[tuiZoom]',\n outputs: ['tuiZoom'],\n providers: [TuiZoomService],\n host: {\n '[style.touch-actions]': '\"none\"',\n },\n})\nexport class TuiZoomDirective {\n constructor(@Inject(TuiZoomService) readonly tuiZoom: TuiZoomService) {}\n}\n","import {NgModule} from '@angular/core';\nimport {TuiZoomDirective} from './zoom.directive';\n\n/**\n * @experimental\n */\n@NgModule({\n declarations: [TuiZoomDirective],\n exports: [TuiZoomDirective],\n})\nexport class TuiZoomModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;IASa,gBAAgB,GAA7B,MAAa,gBAAgB;IACzB,YAA6C,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;KAAI;EAC3E;;YADyD,cAAc,uBAAvD,MAAM,SAAC,cAAc;;AADzB,gBAAgB;IAR5B,SAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,CAAC,SAAS,CAAC;QACpB,SAAS,EAAE,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE;YACF,uBAAuB,EAAE,QAAQ;SACpC;KACJ,CAAC;IAEe,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;GAD1B,gBAAgB,CAE5B;;ACXD;;;IAOa,aAAa,GAA1B,MAAa,aAAa;EAAG;AAAhB,aAAa;IAJzB,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;QAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;KAC9B,CAAC;GACW,aAAa,CAAG;;ACV7B;;;;;;"}
|
|
@@ -22,6 +22,9 @@ export * from '@taiga-ui/cdk/directives/resize';
|
|
|
22
22
|
export * from '@taiga-ui/cdk/directives/prevent-default';
|
|
23
23
|
export * from '@taiga-ui/cdk/directives/repeat-times';
|
|
24
24
|
export * from '@taiga-ui/cdk/directives/validator';
|
|
25
|
+
export * from '@taiga-ui/cdk/directives/pan';
|
|
26
|
+
export * from '@taiga-ui/cdk/directives/swipe';
|
|
27
|
+
export * from '@taiga-ui/cdk/directives/zoom';
|
|
25
28
|
|
|
26
29
|
/**
|
|
27
30
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives.js","sources":["ng://@taiga-ui/cdk/directives/taiga-ui-cdk-directives.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives.js","sources":["ng://@taiga-ui/cdk/directives/taiga-ui-cdk-directives.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;"}
|
|
@@ -2,16 +2,17 @@ import { __decorate, __param } from 'tslib';
|
|
|
2
2
|
import { Injectable, Inject, Renderer2, ɵɵdefineInjectable, ɵɵinject, ElementRef, ChangeDetectorRef, NgZone, Self } from '@angular/core';
|
|
3
3
|
import { Subject, Observable, merge, defer, fromEvent, of, timer } from 'rxjs';
|
|
4
4
|
import { DOCUMENT } from '@angular/common';
|
|
5
|
-
import { TUI_DEFAULT_RENDERER } from '@taiga-ui/cdk/tokens';
|
|
6
|
-
import { focusVisibleObservable, watch, typedFromEvent, tuiZoneOptimized, tuiZonefree } from '@taiga-ui/cdk/observables';
|
|
7
|
-
import { takeUntil, switchMap, filter, take, mapTo, startWith, distinctUntilChanged, delay, throttleTime, map, catchError, debounceTime, tap, shareReplay } from 'rxjs/operators';
|
|
5
|
+
import { TUI_DEFAULT_RENDERER, TUI_SWIPE_OPTIONS, TUI_ZOOM_OPTIONS } from '@taiga-ui/cdk/tokens';
|
|
6
|
+
import { focusVisibleObservable, watch, typedFromEvent, tuiZoneOptimized, tuiZonefree, preventDefault } from '@taiga-ui/cdk/observables';
|
|
7
|
+
import { takeUntil, switchMap, filter, take, mapTo, startWith, distinctUntilChanged, delay, throttleTime, map, catchError, debounceTime, tap, shareReplay, switchMapTo, pairwise, repeat, scan } from 'rxjs/operators';
|
|
8
8
|
import { getActualTarget, getElementObscurers } from '@taiga-ui/cdk/utils/dom';
|
|
9
9
|
import { WINDOW, ANIMATION_FRAME, PERFORMANCE } from '@ng-web-apis/common';
|
|
10
10
|
import { POLLING_TIME, EMPTY_ARRAY } from '@taiga-ui/cdk/constants';
|
|
11
11
|
import { ResizeObserverService, RESIZE_OBSERVER_SUPPORT, RESIZE_OPTION_BOX } from '@ng-web-apis/resize-observer';
|
|
12
12
|
import { tuiAssert } from '@taiga-ui/cdk/classes';
|
|
13
13
|
import { clamp } from '@taiga-ui/cdk/utils/math';
|
|
14
|
-
import { easeInOutQuad } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
14
|
+
import { easeInOutQuad, getSwipeDirection, isPresent } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
15
|
+
import { distanceBetweenTouches } from '@taiga-ui/cdk/utils';
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* Observable abstraction over ngOnDestroy to use with takeUntil
|
|
@@ -86,7 +87,7 @@ TuiFocusVisibleService = __decorate([
|
|
|
86
87
|
let TuiHoveredService = class TuiHoveredService {
|
|
87
88
|
constructor(documentRef, ngZone) {
|
|
88
89
|
this.ngZone = ngZone;
|
|
89
|
-
this.documentEvents$ = merge(typedFromEvent(documentRef, 'mousemove'), typedFromEvent(documentRef, '
|
|
90
|
+
this.documentEvents$ = merge(typedFromEvent(documentRef, 'mousemove'), typedFromEvent(documentRef, 'touchstart', { capture: true }));
|
|
90
91
|
}
|
|
91
92
|
createHovered$(target, options = { passive: true }) {
|
|
92
93
|
return merge(typedFromEvent(target, 'mouseenter', options), typedFromEvent(target, 'touchstart', options)).pipe(switchMap(() => merge(typedFromEvent(target, 'mouseleave', options), this.documentEvents$.pipe(filter(event => !target.contains(getActualTarget(event))), tuiZoneOptimized(this.ngZone), take(1))).pipe(mapTo(false), startWith(true))), distinctUntilChanged());
|
|
@@ -292,9 +293,127 @@ TuiStaticRequestService = __decorate([
|
|
|
292
293
|
})
|
|
293
294
|
], TuiStaticRequestService);
|
|
294
295
|
|
|
296
|
+
/**
|
|
297
|
+
* @dynamic
|
|
298
|
+
*/
|
|
299
|
+
let TuiPanService = class TuiPanService extends Observable {
|
|
300
|
+
constructor({ nativeElement }, documentRef) {
|
|
301
|
+
super(subscriber => {
|
|
302
|
+
merge(typedFromEvent(nativeElement, 'touchstart', { passive: true }), typedFromEvent(nativeElement, 'mousedown'))
|
|
303
|
+
.pipe(switchMapTo(merge(typedFromEvent(nativeElement, 'touchmove', {
|
|
304
|
+
passive: true,
|
|
305
|
+
}).pipe(filter(({ touches }) => touches.length < 2), map(({ touches }) => touches[0])), typedFromEvent(nativeElement, 'mousemove'))), pairwise(), map(([first, second]) => {
|
|
306
|
+
const deltaX = second.clientX - first.clientX;
|
|
307
|
+
const deltaY = second.clientY - first.clientY;
|
|
308
|
+
return [deltaX, deltaY];
|
|
309
|
+
}), takeUntil(merge(typedFromEvent(documentRef, 'touchend'), typedFromEvent(documentRef, 'mouseup'))), repeat())
|
|
310
|
+
.subscribe(subscriber);
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
TuiPanService.ctorParameters = () => [
|
|
315
|
+
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
316
|
+
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
|
|
317
|
+
];
|
|
318
|
+
TuiPanService = __decorate([
|
|
319
|
+
Injectable(),
|
|
320
|
+
__param(0, Inject(ElementRef)),
|
|
321
|
+
__param(1, Inject(DOCUMENT))
|
|
322
|
+
], TuiPanService);
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* @dynamic
|
|
326
|
+
*/
|
|
327
|
+
let TuiSwipeService = class TuiSwipeService extends Observable {
|
|
328
|
+
constructor({ nativeElement }, { timeout, threshold }, documentRef) {
|
|
329
|
+
super(subscriber => {
|
|
330
|
+
merge(typedFromEvent(nativeElement, 'touchstart', { passive: true }), typedFromEvent(documentRef, 'touchend'))
|
|
331
|
+
.pipe(pairwise(), filter(([first, second]) => !!first.touches.length &&
|
|
332
|
+
first.touches[0].identifier ===
|
|
333
|
+
second.changedTouches[0].identifier), map(([start, end]) => {
|
|
334
|
+
const startX = start.touches[0].clientX;
|
|
335
|
+
const startY = start.touches[0].clientY;
|
|
336
|
+
const endX = end.changedTouches[0].clientX;
|
|
337
|
+
const endY = end.changedTouches[0].clientY;
|
|
338
|
+
const distanceX = startX - endX;
|
|
339
|
+
const distanceY = startY - endY;
|
|
340
|
+
const duration = end.timeStamp - start.timeStamp;
|
|
341
|
+
if ((Math.abs(distanceX) > threshold ||
|
|
342
|
+
Math.abs(distanceY) > threshold) &&
|
|
343
|
+
duration < timeout) {
|
|
344
|
+
return {
|
|
345
|
+
direction: getSwipeDirection(distanceX, distanceY),
|
|
346
|
+
events: [start, end],
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
return null;
|
|
350
|
+
}), filter(isPresent))
|
|
351
|
+
.subscribe(subscriber);
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
};
|
|
355
|
+
TuiSwipeService.ctorParameters = () => [
|
|
356
|
+
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
357
|
+
{ type: undefined, decorators: [{ type: Inject, args: [TUI_SWIPE_OPTIONS,] }] },
|
|
358
|
+
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
|
|
359
|
+
];
|
|
360
|
+
TuiSwipeService = __decorate([
|
|
361
|
+
Injectable(),
|
|
362
|
+
__param(0, Inject(ElementRef)),
|
|
363
|
+
__param(1, Inject(TUI_SWIPE_OPTIONS)),
|
|
364
|
+
__param(2, Inject(DOCUMENT))
|
|
365
|
+
], TuiSwipeService);
|
|
366
|
+
|
|
367
|
+
const TOUCH_SENSITIVITY = 0.01;
|
|
368
|
+
// @dynamic
|
|
369
|
+
let TuiZoomService = class TuiZoomService extends Observable {
|
|
370
|
+
constructor({ nativeElement }, { wheelSensitivity }) {
|
|
371
|
+
super(subscriber => {
|
|
372
|
+
merge(typedFromEvent(nativeElement, 'touchstart', { passive: true }).pipe(filter(({ touches }) => touches.length > 1), switchMap(startEvent => typedFromEvent(nativeElement, 'touchmove', {
|
|
373
|
+
passive: true,
|
|
374
|
+
}).pipe(takeUntil(typedFromEvent(nativeElement, 'touchend')), scan((prev, event) => {
|
|
375
|
+
const distance = distanceBetweenTouches(event);
|
|
376
|
+
return {
|
|
377
|
+
event,
|
|
378
|
+
distance,
|
|
379
|
+
delta: (distance - prev.distance) *
|
|
380
|
+
TOUCH_SENSITIVITY,
|
|
381
|
+
};
|
|
382
|
+
}, {
|
|
383
|
+
event: startEvent,
|
|
384
|
+
distance: distanceBetweenTouches(startEvent),
|
|
385
|
+
delta: 0,
|
|
386
|
+
}), map(({ event, delta }) => {
|
|
387
|
+
event.preventDefault();
|
|
388
|
+
const clientX = (event.touches[0].clientX +
|
|
389
|
+
event.touches[1].clientX) /
|
|
390
|
+
2;
|
|
391
|
+
const clientY = (event.touches[0].clientY +
|
|
392
|
+
event.touches[1].clientY) /
|
|
393
|
+
2;
|
|
394
|
+
return { clientX, clientY, delta, event };
|
|
395
|
+
})))), typedFromEvent(nativeElement, 'wheel', { passive: false }).pipe(preventDefault(), map(wheel => ({
|
|
396
|
+
clientX: wheel.clientX,
|
|
397
|
+
clientY: wheel.clientY,
|
|
398
|
+
delta: -wheel.deltaY * wheelSensitivity,
|
|
399
|
+
event: wheel,
|
|
400
|
+
})))).subscribe(subscriber);
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
};
|
|
404
|
+
TuiZoomService.ctorParameters = () => [
|
|
405
|
+
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
406
|
+
{ type: undefined, decorators: [{ type: Inject, args: [TUI_ZOOM_OPTIONS,] }] }
|
|
407
|
+
];
|
|
408
|
+
TuiZoomService = __decorate([
|
|
409
|
+
Injectable(),
|
|
410
|
+
__param(0, Inject(ElementRef)),
|
|
411
|
+
__param(1, Inject(TUI_ZOOM_OPTIONS))
|
|
412
|
+
], TuiZoomService);
|
|
413
|
+
|
|
295
414
|
/**
|
|
296
415
|
* Generated bundle index. Do not edit.
|
|
297
416
|
*/
|
|
298
417
|
|
|
299
|
-
export { TuiDestroyService, TuiDirectiveStylesService, TuiFocusVisibleService, TuiHoveredService, TuiIdService, TuiObscuredService, TuiParentsScrollService, TuiResizeService, TuiScrollService, TuiStaticRequestService };
|
|
418
|
+
export { TuiDestroyService, TuiDirectiveStylesService, TuiFocusVisibleService, TuiHoveredService, TuiIdService, TuiObscuredService, TuiPanService, TuiParentsScrollService, TuiResizeService, TuiScrollService, TuiStaticRequestService, TuiSwipeService, TuiZoomService };
|
|
300
419
|
//# sourceMappingURL=taiga-ui-cdk-services.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-services.js","sources":["ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends Subject<void> implements OnDestroy {\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, Renderer2} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDirectiveStylesService {\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addStyle(styles: string, attribute: string) {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n * @dynamic\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchend'),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = 'tui_';\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n const eventTargets: Array<Element | Window> = [windowRef, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge<Event>(\n ...eventTargets.map<Observable<Event>>(element =>\n typedFromEvent(element, 'scroll'),\n ),\n );\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {getElementObscurers} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\nimport {TuiDestroyService} from './destroy.service';\nimport {TuiParentsScrollService} from './parents-scroll.service';\n\n// @bad TODO: Consider Intersection Observer with fallback to current implementation\n/**\n * Service that monitors element visibility by subscribing to scrolls\n * and polling with set interval, returns either null or an array\n * of elements that overlap given element edges\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiObscuredService extends Observable<null | ReadonlyArray<Element>> {\n private obscured$: Observable<null | ReadonlyArray<Element>>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n takeUntil(destroy$),\n debounceTime(0),\n tuiZonefree(ngZone),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n takeUntil(timer(duration)),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private cache = new Map<string, Observable<string>>();\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay(1));\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\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-services.js","sources":["ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/pan.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts","ng://@taiga-ui/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\n */\n@Injectable()\nexport class TuiDestroyService extends Subject<void> implements OnDestroy {\n ngOnDestroy() {\n this.next();\n this.complete();\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, Renderer2} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDirectiveStylesService {\n constructor(\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\n ) {}\n\n addStyle(styles: string, attribute: string) {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n * @dynamic\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchstart', {capture: true}),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = 'tui_';\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n const eventTargets: Array<Element | Window> = [windowRef, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge<Event>(\n ...eventTargets.map<Observable<Event>>(element =>\n typedFromEvent(element, 'scroll'),\n ),\n );\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {getElementObscurers} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\nimport {TuiDestroyService} from './destroy.service';\nimport {TuiParentsScrollService} from './parents-scroll.service';\n\n// @bad TODO: Consider Intersection Observer with fallback to current implementation\n/**\n * Service that monitors element visibility by subscribing to scrolls\n * and polling with set interval, returns either null or an array\n * of elements that overlap given element edges\n */\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiObscuredService extends Observable<null | ReadonlyArray<Element>> {\n private obscured$: Observable<null | ReadonlyArray<Element>>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n takeUntil(destroy$),\n debounceTime(0),\n tuiZonefree(ngZone),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n takeUntil(timer(duration)),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private cache = new Map<string, Observable<string>>();\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay(1));\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMapTo, takeUntil} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(nativeElement, 'mousedown'),\n )\n .pipe(\n switchMapTo(\n merge(\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(nativeElement, 'mousemove'),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = second.clientX - first.clientX;\n const deltaY = second.clientY - first.clientY;\n\n return [deltaX, deltaY] as [number, number];\n }),\n takeUntil(\n merge(\n typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiSwipe, TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {getSwipeDirection, isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiSwipeService extends Observable<TuiSwipe> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(TUI_SWIPE_OPTIONS) {timeout, threshold}: TuiSwipeOptions,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(documentRef, 'touchend'),\n )\n .pipe(\n pairwise(),\n filter(\n ([first, second]) =>\n !!first.touches.length &&\n first.touches[0].identifier ===\n second.changedTouches[0].identifier,\n ),\n map(([start, end]) => {\n const startX = start.touches[0].clientX;\n const startY = start.touches[0].clientY;\n const endX = end.changedTouches[0].clientX;\n const endY = end.changedTouches[0].clientY;\n\n const distanceX = startX - endX;\n const distanceY = startY - endY;\n const duration = end.timeStamp - start.timeStamp;\n\n if (\n (Math.abs(distanceX) > threshold ||\n Math.abs(distanceY) > threshold) &&\n duration < timeout\n ) {\n return {\n direction: getSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(isPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {preventDefault, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {distanceBetweenTouches} from '@taiga-ui/cdk/utils';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n// @dynamic\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoom> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_ZOOM_OPTIONS) {wheelSensitivity}: TuiZoomOptions,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n takeUntil(typedFromEvent(nativeElement, 'touchend')),\n scan(\n (prev, event) => {\n const distance = distanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: distanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n event.preventDefault();\n\n const clientX =\n (event.touches[0].clientX +\n event.touches[1].clientX) /\n 2;\n const clientY =\n (event.touches[0].clientY +\n event.touches[1].clientY) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'wheel', {passive: false}).pipe(\n preventDefault(),\n map(wheel => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -45,18 +45,17 @@ const TUI_ACTIVE_ELEMENT = new InjectionToken('Active element on the document fo
|
|
|
45
45
|
},
|
|
46
46
|
});
|
|
47
47
|
// Checks if focusout event should be considered leaving active zone
|
|
48
|
-
function isValidFocusout(target, removedElement) {
|
|
49
|
-
var _a;
|
|
48
|
+
function isValidFocusout(target, removedElement = null) {
|
|
50
49
|
return (
|
|
51
50
|
// Not due to switching tabs/going to DevTools
|
|
52
|
-
(
|
|
51
|
+
getDocumentOrShadowRoot(target).activeElement !== target &&
|
|
53
52
|
// Not due to button/input becoming disabled
|
|
54
53
|
!target.disabled &&
|
|
55
54
|
// Not due to element being removed from DOM
|
|
56
55
|
(!removedElement || !removedElement.contains(target)));
|
|
57
56
|
}
|
|
58
57
|
function shadowRootActiveElement(root) {
|
|
59
|
-
return merge(typedFromEvent(root, 'focusin').pipe(map(({ target }) => target)), typedFromEvent(root, 'focusout').pipe(filter(({ target }) => isValidFocusout(target
|
|
58
|
+
return merge(typedFromEvent(root, 'focusin').pipe(map(({ target }) => target)), typedFromEvent(root, 'focusout').pipe(filter(({ target, relatedTarget }) => !!relatedTarget && isValidFocusout(target)), map(({ relatedTarget }) => relatedTarget)));
|
|
60
59
|
}
|
|
61
60
|
|
|
62
61
|
// https://github.com/angular/angular/issues/17824#issuecomment-353239017
|
|
@@ -113,9 +112,19 @@ const TUI_WINDOW_HEIGHT = new InjectionToken('Window height accounting for disap
|
|
|
113
112
|
},
|
|
114
113
|
});
|
|
115
114
|
|
|
115
|
+
const TUI_SWIPE_OPTIONS = new InjectionToken('Swipe options', {
|
|
116
|
+
factory: () => ({ timeout: 500, threshold: 30 }),
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
const TUI_ZOOM_OPTIONS = new InjectionToken('Zoom options', {
|
|
120
|
+
factory: () => ({
|
|
121
|
+
wheelSensitivity: 0.01,
|
|
122
|
+
}),
|
|
123
|
+
});
|
|
124
|
+
|
|
116
125
|
/**
|
|
117
126
|
* Generated bundle index. Do not edit.
|
|
118
127
|
*/
|
|
119
128
|
|
|
120
|
-
export { TUI_ACTIVE_ELEMENT, TUI_DEFAULT_RENDERER, TUI_DIALOGS, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_ANDROID, TUI_IS_CYPRESS, TUI_IS_IOS, TUI_IS_MOBILE, TUI_REMOVED_ELEMENT, TUI_SANITIZER, TUI_TAKE_ONLY_TRUSTED_EVENTS, TUI_WINDOW_HEIGHT };
|
|
129
|
+
export { TUI_ACTIVE_ELEMENT, TUI_DEFAULT_RENDERER, TUI_DIALOGS, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_ANDROID, TUI_IS_CYPRESS, TUI_IS_IOS, TUI_IS_MOBILE, TUI_REMOVED_ELEMENT, TUI_SANITIZER, TUI_SWIPE_OPTIONS, TUI_TAKE_ONLY_TRUSTED_EVENTS, TUI_WINDOW_HEIGHT, TUI_ZOOM_OPTIONS };
|
|
121
130
|
//# sourceMappingURL=taiga-ui-cdk-tokens.js.map
|