@taiga-ui/addon-mobile 3.29.2 → 3.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.js +88 -67
- package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js +35 -6
- package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-components-tab-bar.umd.js +3 -4
- package/bundles/taiga-ui-addon-mobile-components-tab-bar.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.js +12 -23
- package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.js +2 -2
- package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.js.map +1 -1
- package/components/pull-to-refresh/pull-to-refresh.component.d.ts +6 -5
- package/components/pull-to-refresh/pull-to-refresh.module.d.ts +1 -1
- package/components/pull-to-refresh/pull-to-refresh.service.d.ts +4 -2
- package/components/sheet/components/sheets-host/sheets-host.component.d.ts +9 -4
- package/components/sheet/sheet.service.d.ts +2 -1
- package/components/tab-bar/tab-bar-item.component.d.ts +2 -9
- package/directives/elastic-sticky/elastic-sticky.service.d.ts +2 -3
- package/esm2015/components/pull-to-refresh/loader-android/loader-android.component.js +2 -2
- package/esm2015/components/pull-to-refresh/pull-to-refresh.component.js +44 -22
- package/esm2015/components/pull-to-refresh/pull-to-refresh.module.js +5 -21
- package/esm2015/components/pull-to-refresh/pull-to-refresh.service.js +23 -19
- package/esm2015/components/sheet/components/sheets-host/sheets-host.component.js +27 -6
- package/esm2015/components/sheet/sheet.service.js +14 -4
- package/esm2015/components/tab-bar/tab-bar-item.component.js +4 -5
- package/esm2015/directives/elastic-sticky/elastic-sticky.service.js +10 -21
- package/esm2015/directives/sidebar/sidebar.component.js +3 -3
- package/fesm2015/taiga-ui-addon-mobile-components-pull-to-refresh.js +66 -55
- package/fesm2015/taiga-ui-addon-mobile-components-pull-to-refresh.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-components-sheet.js +35 -7
- package/fesm2015/taiga-ui-addon-mobile-components-sheet.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-components-tab-bar.js +3 -4
- package/fesm2015/taiga-ui-addon-mobile-components-tab-bar.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-directives-elastic-sticky.js +9 -20
- package/fesm2015/taiga-ui-addon-mobile-directives-elastic-sticky.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-directives-sidebar.js +2 -2
- package/fesm2015/taiga-ui-addon-mobile-directives-sidebar.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { AnimationOptions } from '@angular/animations';
|
|
2
|
+
import { ChangeDetectorRef, OnInit } from '@angular/core';
|
|
2
3
|
import { Observable } from 'rxjs';
|
|
3
4
|
import { TuiSheet } from '../../sheet';
|
|
4
5
|
import { TuiSheetService } from '../../sheet.service';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class TuiSheetsHostComponent {
|
|
7
|
+
export declare class TuiSheetsHostComponent implements OnInit {
|
|
7
8
|
readonly options: AnimationOptions;
|
|
8
|
-
readonly service
|
|
9
|
+
private readonly service;
|
|
9
10
|
readonly height$: Observable<number>;
|
|
10
|
-
|
|
11
|
+
private readonly destroy$;
|
|
12
|
+
private readonly cdr;
|
|
13
|
+
sheets: ReadonlyArray<TuiSheet<any>>;
|
|
14
|
+
constructor(options: AnimationOptions, service: TuiSheetService, height$: Observable<number>, destroy$: Observable<void>, cdr: ChangeDetectorRef);
|
|
15
|
+
ngOnInit(): void;
|
|
11
16
|
close({ closeable, $implicit }: TuiSheet<unknown>): void;
|
|
12
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiSheetsHostComponent,
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiSheetsHostComponent, [null, null, null, { self: true; }, null]>;
|
|
13
18
|
static ɵcmp: i0.ɵɵComponentDeclaration<TuiSheetsHostComponent, "tui-sheets-host", never, {}, {}, never, never>;
|
|
14
19
|
}
|
|
@@ -4,9 +4,10 @@ import { TuiSheet } from './sheet';
|
|
|
4
4
|
import { TuiSheetOptions } from './sheet-options';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class TuiSheetService {
|
|
7
|
+
private readonly doc;
|
|
7
8
|
private readonly options;
|
|
8
9
|
readonly sheets$: BehaviorSubject<TuiSheet<any, any>[]>;
|
|
9
|
-
constructor(options: TuiSheetOptions);
|
|
10
|
+
constructor(doc: Document, options: TuiSheetOptions);
|
|
10
11
|
open<G>(content: PolymorpheusContent<TuiSheet<G>>, options?: Partial<TuiSheetOptions>): Observable<G>;
|
|
11
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiSheetService, never>;
|
|
12
13
|
static ɵprov: i0.ɵɵInjectableDeclaration<TuiSheetService>;
|
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
import { AnimationOptions } from '@angular/animations';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class TuiTabBarItemComponent {
|
|
4
|
-
|
|
4
|
+
readonly animation: AnimationOptions;
|
|
5
5
|
icon: string;
|
|
6
6
|
badge?: number | null;
|
|
7
|
-
|
|
8
|
-
readonly delay?: string | number | undefined;
|
|
9
|
-
readonly params?: {
|
|
10
|
-
[name: string]: any;
|
|
11
|
-
} | undefined;
|
|
12
|
-
readonly value: "";
|
|
13
|
-
};
|
|
14
|
-
constructor(animationOptions: AnimationOptions);
|
|
7
|
+
constructor(animation: AnimationOptions);
|
|
15
8
|
format(value: number): string;
|
|
16
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiTabBarItemComponent, never>;
|
|
17
10
|
static ɵcmp: i0.ɵɵComponentDeclaration<TuiTabBarItemComponent, "button[tuiTabBarItem], a[tuiTabBarItem]", never, { "icon": "icon"; "badge": "badge"; }, {}, never, ["*"]>;
|
|
@@ -3,8 +3,7 @@ import { TuiDestroyService } from '@taiga-ui/cdk';
|
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class TuiElasticStickyService extends Observable<number> {
|
|
6
|
-
constructor(scrollRef: ElementRef<HTMLElement
|
|
7
|
-
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiElasticStickyService, [{ optional: true; }, null, null, null, { self: true; }]>;
|
|
6
|
+
constructor(scrollRef: ElementRef<HTMLElement>, { nativeElement }: ElementRef<HTMLElement>, ngZone: NgZone, destroy$: TuiDestroyService);
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiElasticStickyService, [null, null, null, { self: true; }]>;
|
|
9
8
|
static ɵprov: i0.ɵɵInjectableDeclaration<TuiElasticStickyService>;
|
|
10
9
|
}
|
|
@@ -31,7 +31,7 @@ export class TuiMobileLoaderAndroidComponent {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
TuiMobileLoaderAndroidComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMobileLoaderAndroidComponent, deps: [{ token: POLYMORPHEUS_CONTEXT }, { token: TUI_PULL_TO_REFRESH_THRESHOLD }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
TuiMobileLoaderAndroidComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiMobileLoaderAndroidComponent, selector: "tui-mobile-android-loader", host: { properties: { "class._visible": "this.percent", "class._dropped": "this.dropped", "style.transform": "this.hostTransform" } }, ngImport: i0, template: "<svg\n
|
|
34
|
+
TuiMobileLoaderAndroidComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiMobileLoaderAndroidComponent, selector: "tui-mobile-android-loader", host: { properties: { "class._visible": "this.percent", "class._dropped": "this.dropped", "style.transform": "this.hostTransform" } }, ngImport: i0, template: "<div class=\"t-wrapper\">\n <svg\n *ngIf=\"percent !== 100; else loading\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.transform]=\"transform\"\n [style.opacity]=\"opacity\"\n >\n <defs>\n <mask id=\"mask-1\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M21 12C21 7.03 16.97 3 12 3C7.03 3 3 7.03 3 12C3 16.97 7.03 21 12 21C14.06 21 15.96 20.3 17.48 19.14L16.06 17.7C14.91 18.51 13.51 19 12 19C8.13 19 5 15.87 5 12C5 8.13 8.13 5 12 5C15.87 5 19 8.13 19 12H16L20 16L24 12H21Z\"\n fill=\"white\"\n />\n </mask>\n </defs>\n <g mask=\"url(#mask-1)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M21 12C21 7.03 16.97 3 12 3C7.03 3 3 7.03 3 12C3 16.97 7.03 21 12 21C14.06 21 15.96 20.3 17.48 19.14L16.06 17.7C14.91 18.51 13.51 19 12 19C8.13 19 5 15.87 5 12C5 8.13 8.13 5 12 5C15.87 5 19 8.13 19 12H16L20 16L24 12H21Z\"\n fill=\"black\"\n />\n </g>\n </svg>\n</div>\n<ng-template #loading>\n <svg\n viewBox=\"0 0 100 100\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-loading\"\n >\n <circle\n cx=\"50\"\n cy=\"50\"\n r=\"50\"\n stroke-dasharray=\"314\"\n class=\"t-circle\"\n ></circle>\n </svg>\n</ng-template>\n", styles: [":host{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:-webkit-sticky;position:sticky;top:0;z-index:1;display:block;height:0;opacity:0}:host._visible{opacity:1}:host._dropped{transition:transform var(--tui-duration) cubic-bezier(.4,0,.2,1),opacity var(--tui-duration) var(--tui-duration)}.t-wrapper{box-shadow:0 1.5rem 1rem #00000008,0 .75rem .75rem #0000000a,0 .25rem .375rem #0000000d;position:absolute;top:-2.5rem;left:50%;display:flex;height:2.25rem;width:2.25rem;background-color:var(--tui-secondary);border-radius:6.25rem;align-items:center;justify-content:center;margin-left:-1.125rem}.t-loading{display:block;width:1rem;border-radius:100%;animation:tuiLoaderRotate 3s linear infinite}.t-circle{fill:none;stroke:var(--tui-text-01);stroke-width:1.5rem;animation:tuiLoaderDashOffset 3s linear infinite}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
35
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiMobileLoaderAndroidComponent, decorators: [{
|
|
36
36
|
type: Component,
|
|
37
37
|
args: [{
|
|
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
57
57
|
args: ['style.transform']
|
|
58
58
|
}] } });
|
|
59
59
|
export const TUI_ANDROID_LOADER = new PolymorpheusComponent(TuiMobileLoaderAndroidComponent);
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLWFuZHJvaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tbW9iaWxlL2NvbXBvbmVudHMvcHVsbC10by1yZWZyZXNoL2xvYWRlci1hbmRyb2lkL2xvYWRlci1hbmRyb2lkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLW1vYmlsZS9jb21wb25lbnRzL3B1bGwtdG8tcmVmcmVzaC9sb2FkZXItYW5kcm9pZC9sb2FkZXItYW5kcm9pZC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUMsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7OztBQUV4RCxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztBQUM3QixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFDekIsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFRaEMsTUFBTSxPQUFPLCtCQUErQjtJQUN4QyxZQUVxQixPQUF1QyxFQUNBLFNBQWlCO1FBRHhELFlBQU8sR0FBUCxPQUFPLENBQWdDO1FBQ0EsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUMxRSxDQUFDO0lBRUosSUFBSSxTQUFTO1FBQ1QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDcEIsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxtQkFBbUIsRUFDckQsWUFBWSxDQUNmLENBQUM7UUFFRixPQUFPLFVBQVUsT0FBTyxPQUFPLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQ0ksT0FBTztRQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFDSSxPQUFPO1FBQ1AsT0FBTyxDQUNILElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLFlBQVk7WUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FDNUMsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUNJLGFBQWE7UUFDYixPQUFPLGNBQWMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDckYsQ0FBQzs7NkhBcENRLCtCQUErQixrQkFFNUIsb0JBQW9CLGFBRXBCLDZCQUE2QjtpSEFKaEMsK0JBQStCLHdNQ2pCNUMsMGxEQThDQTs0RkQ3QmEsK0JBQStCO2tCQU4zQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLDZCQUE2QixDQUFDO29CQUMxQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OzBCQUdRLE1BQU07MkJBQUMsb0JBQW9COzswQkFFM0IsTUFBTTsyQkFBQyw2QkFBNkI7NENBYXJDLE9BQU87c0JBRFYsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBVXpCLE9BQU87c0JBRFYsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBU3pCLGFBQWE7c0JBRGhCLFdBQVc7dUJBQUMsaUJBQWlCOztBQU1sQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLHFCQUFxQixDQUN2RCwrQkFBK0IsQ0FDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aUNvbnRleHRXaXRoSW1wbGljaXR9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtQT0xZTU9SUEhFVVNfQ09OVEVYVCwgUG9seW1vcnBoZXVzQ29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1RVSV9QVUxMX1RPX1JFRlJFU0hfVEhSRVNIT0xEfSBmcm9tICcuLi9wdWxsLXRvLXJlZnJlc2gucHJvdmlkZXJzJztcbmltcG9ydCB7TUlDUk9fT0ZGU0VUfSBmcm9tICcuLi9wdWxsLXRvLXJlZnJlc2guc2VydmljZSc7XG5cbmNvbnN0IFJPVEFURV9YX0RFRkFVTFQgPSAxODA7XG5jb25zdCBST1RBVEVfWF9NQVggPSA1MDA7XG5jb25zdCBST1RBVEVfWF9NVUxUSVBMSUVSID0gMi4zO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1tb2JpbGUtYW5kcm9pZC1sb2FkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sb2FkZXItYW5kcm9pZC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9sb2FkZXItYW5kcm9pZC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aU1vYmlsZUxvYWRlckFuZHJvaWRDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFBPTFlNT1JQSEVVU19DT05URVhUKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHQ6IFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8bnVtYmVyPixcbiAgICAgICAgQEluamVjdChUVUlfUFVMTF9UT19SRUZSRVNIX1RIUkVTSE9MRCkgcHJpdmF0ZSByZWFkb25seSB0aHJlc2hvbGQ6IG51bWJlcixcbiAgICApIHt9XG5cbiAgICBnZXQgdHJhbnNmb3JtKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJvdGF0ZVggPSBNYXRoLm1pbihcbiAgICAgICAgICAgIFJPVEFURV9YX0RFRkFVTFQgKyB0aGlzLnBlcmNlbnQgKiBST1RBVEVfWF9NVUxUSVBMSUVSLFxuICAgICAgICAgICAgUk9UQVRFX1hfTUFYLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBgcm90YXRlKCR7cm90YXRlWH0gMCAwKWA7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fdmlzaWJsZScpXG4gICAgZ2V0IHBlcmNlbnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmNvbnRleHQuJGltcGxpY2l0ICogMTAwKSAvIHRoaXMudGhyZXNob2xkO1xuICAgIH1cblxuICAgIGdldCBvcGFjaXR5KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuJGltcGxpY2l0IC8gKHRoaXMudGhyZXNob2xkICogMS41KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9kcm9wcGVkJylcbiAgICBnZXQgZHJvcHBlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC4kaW1wbGljaXQgPD0gTUlDUk9fT0ZGU0VUIHx8XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuJGltcGxpY2l0ID09PSB0aGlzLnRocmVzaG9sZFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUudHJhbnNmb3JtJylcbiAgICBnZXQgaG9zdFRyYW5zZm9ybSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYHRyYW5zbGF0ZVkoJHtNYXRoLm1pbih0aGlzLmNvbnRleHQuJGltcGxpY2l0LCB0aGlzLnRocmVzaG9sZCAqIDEuNSl9cHgpYDtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBUVUlfQU5EUk9JRF9MT0FERVIgPSBuZXcgUG9seW1vcnBoZXVzQ29tcG9uZW50KFxuICAgIFR1aU1vYmlsZUxvYWRlckFuZHJvaWRDb21wb25lbnQsXG4pO1xuIiwiPGRpdiBjbGFzcz1cInQtd3JhcHBlclwiPlxuICAgIDxzdmdcbiAgICAgICAgKm5nSWY9XCJwZXJjZW50ICE9PSAxMDA7IGVsc2UgbG9hZGluZ1wiXG4gICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICBbYXR0ci50cmFuc2Zvcm1dPVwidHJhbnNmb3JtXCJcbiAgICAgICAgW3N0eWxlLm9wYWNpdHldPVwib3BhY2l0eVwiXG4gICAgPlxuICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgIDxtYXNrIGlkPVwibWFzay0xXCI+XG4gICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICBkPVwiTTIxIDEyQzIxIDcuMDMgMTYuOTcgMyAxMiAzQzcuMDMgMyAzIDcuMDMgMyAxMkMzIDE2Ljk3IDcuMDMgMjEgMTIgMjFDMTQuMDYgMjEgMTUuOTYgMjAuMyAxNy40OCAxOS4xNEwxNi4wNiAxNy43QzE0LjkxIDE4LjUxIDEzLjUxIDE5IDEyIDE5QzguMTMgMTkgNSAxNS44NyA1IDEyQzUgOC4xMyA4LjEzIDUgMTIgNUMxNS44NyA1IDE5IDguMTMgMTkgMTJIMTZMMjAgMTZMMjQgMTJIMjFaXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9tYXNrPlxuICAgICAgICA8L2RlZnM+XG4gICAgICAgIDxnIG1hc2s9XCJ1cmwoI21hc2stMSlcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgZD1cIk0yMSAxMkMyMSA3LjAzIDE2Ljk3IDMgMTIgM0M3LjAzIDMgMyA3LjAzIDMgMTJDMyAxNi45NyA3LjAzIDIxIDEyIDIxQzE0LjA2IDIxIDE1Ljk2IDIwLjMgMTcuNDggMTkuMTRMMTYuMDYgMTcuN0MxNC45MSAxOC41MSAxMy41MSAxOSAxMiAxOUM4LjEzIDE5IDUgMTUuODcgNSAxMkM1IDguMTMgOC4xMyA1IDEyIDVDMTUuODcgNSAxOSA4LjEzIDE5IDEySDE2TDIwIDE2TDI0IDEySDIxWlwiXG4gICAgICAgICAgICAgICAgZmlsbD1cImJsYWNrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZz5cbiAgICA8L3N2Zz5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICAgIDxzdmdcbiAgICAgICAgdmlld0JveD1cIjAgMCAxMDAgMTAwXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIGNsYXNzPVwidC1sb2FkaW5nXCJcbiAgICA+XG4gICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgIGN4PVwiNTBcIlxuICAgICAgICAgICAgY3k9XCI1MFwiXG4gICAgICAgICAgICByPVwiNTBcIlxuICAgICAgICAgICAgc3Ryb2tlLWRhc2hhcnJheT1cIjMxNFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtY2lyY2xlXCJcbiAgICAgICAgPjwvY2lyY2xlPlxuICAgIDwvc3ZnPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,31 +1,43 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Inject, Input, Output, Self, } from '@angular/core';
|
|
3
|
+
import { TUI_IS_IOS, tuiDefaultProp, TuiDestroyService, tuiScrollFrom, } from '@taiga-ui/cdk';
|
|
4
|
+
import { TUI_SCROLL_REF } from '@taiga-ui/core';
|
|
5
|
+
import { distinctUntilChanged, filter, map, startWith, takeUntil } from 'rxjs/operators';
|
|
6
6
|
import { TUI_PULL_TO_REFRESH_COMPONENT, TUI_PULL_TO_REFRESH_THRESHOLD, } from './pull-to-refresh.providers';
|
|
7
7
|
import { MICRO_OFFSET, TuiPullToRefreshService } from './pull-to-refresh.service';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@
|
|
10
|
-
import * as i2 from "@
|
|
11
|
-
import * as i3 from "
|
|
12
|
-
import * as i4 from "rxjs";
|
|
9
|
+
import * as i1 from "@tinkoff/ng-polymorpheus";
|
|
10
|
+
import * as i2 from "@angular/common";
|
|
11
|
+
import * as i3 from "rxjs";
|
|
13
12
|
export class TuiPullToRefreshComponent {
|
|
14
|
-
constructor(isIOS, threshold, component, pulling$) {
|
|
13
|
+
constructor(destroy$, { nativeElement }, isIOS, threshold, component, pulling$) {
|
|
15
14
|
this.isIOS = isIOS;
|
|
16
15
|
this.threshold = threshold;
|
|
17
16
|
this.component = component;
|
|
18
17
|
this.pulling$ = pulling$;
|
|
19
|
-
this.
|
|
20
|
-
|
|
18
|
+
this.styleHandler = this.isIOS
|
|
19
|
+
? distance => ({ transform: `translateY(${distance / 2}px)` })
|
|
20
|
+
: () => null;
|
|
21
|
+
this.pulled = this.pulling$.pipe(filter(distance => distance === this.threshold));
|
|
21
22
|
this.dropped$ = this.pulling$.pipe(map(distance => distance <= MICRO_OFFSET || distance === this.threshold), distinctUntilChanged());
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
// Ensure scrolling down is impossible while pulling
|
|
24
|
+
tuiScrollFrom(nativeElement)
|
|
25
|
+
.pipe(startWith(null), takeUntil(destroy$))
|
|
26
|
+
.subscribe(() => {
|
|
27
|
+
if (nativeElement.scrollTop) {
|
|
28
|
+
nativeElement.style.touchAction = '';
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
nativeElement.style.touchAction = 'pan-down';
|
|
32
|
+
}
|
|
33
|
+
});
|
|
25
34
|
}
|
|
26
35
|
}
|
|
27
|
-
TuiPullToRefreshComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPullToRefreshComponent, deps: [{ token: TUI_IS_IOS }, { token: TUI_PULL_TO_REFRESH_THRESHOLD }, { token: TUI_PULL_TO_REFRESH_COMPONENT }, { token: TuiPullToRefreshService }], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
-
TuiPullToRefreshComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiPullToRefreshComponent, selector: "tui-pull-to-refresh", outputs: { pulled: "pulled" }, providers: [TuiPullToRefreshService], ngImport: i0, template: "<
|
|
36
|
+
TuiPullToRefreshComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPullToRefreshComponent, deps: [{ token: TuiDestroyService, self: true }, { token: TUI_SCROLL_REF }, { token: TUI_IS_IOS }, { token: TUI_PULL_TO_REFRESH_THRESHOLD }, { token: TUI_PULL_TO_REFRESH_COMPONENT }, { token: TuiPullToRefreshService }], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
+
TuiPullToRefreshComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiPullToRefreshComponent, selector: "tui-pull-to-refresh", inputs: { styleHandler: "styleHandler" }, outputs: { pulled: "pulled" }, providers: [TuiPullToRefreshService, TuiDestroyService], ngImport: i0, template: "<ng-container *polymorpheusOutlet=\"component; context: {$implicit: (pulling$ | async) || 0}\"></ng-container>\n\n<div\n [class.t-drop]=\"dropped$ | async\"\n [ngStyle]=\"styleHandler((pulling$ | async) || 0)\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".t-drop{transition:all var(--tui-duration) cubic-bezier(.4,0,.2,1)}\n"], directives: [{ type: i1.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
38
|
+
__decorate([
|
|
39
|
+
tuiDefaultProp()
|
|
40
|
+
], TuiPullToRefreshComponent.prototype, "styleHandler", void 0);
|
|
29
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPullToRefreshComponent, decorators: [{
|
|
30
42
|
type: Component,
|
|
31
43
|
args: [{
|
|
@@ -33,9 +45,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
33
45
|
templateUrl: './pull-to-refresh.template.html',
|
|
34
46
|
styleUrls: ['./pull-to-refresh.style.less'],
|
|
35
47
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
36
|
-
providers: [TuiPullToRefreshService],
|
|
48
|
+
providers: [TuiPullToRefreshService, TuiDestroyService],
|
|
37
49
|
}]
|
|
38
|
-
}], ctorParameters: function () { return [{ type:
|
|
50
|
+
}], ctorParameters: function () { return [{ type: i3.Observable, decorators: [{
|
|
51
|
+
type: Inject,
|
|
52
|
+
args: [TuiDestroyService]
|
|
53
|
+
}, {
|
|
54
|
+
type: Self
|
|
55
|
+
}] }, { type: i0.ElementRef, decorators: [{
|
|
56
|
+
type: Inject,
|
|
57
|
+
args: [TUI_SCROLL_REF]
|
|
58
|
+
}] }, { type: undefined, decorators: [{
|
|
39
59
|
type: Inject,
|
|
40
60
|
args: [TUI_IS_IOS]
|
|
41
61
|
}] }, { type: undefined, decorators: [{
|
|
@@ -44,10 +64,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
44
64
|
}] }, { type: undefined, decorators: [{
|
|
45
65
|
type: Inject,
|
|
46
66
|
args: [TUI_PULL_TO_REFRESH_COMPONENT]
|
|
47
|
-
}] }, { type:
|
|
67
|
+
}] }, { type: i3.Observable, decorators: [{
|
|
48
68
|
type: Inject,
|
|
49
69
|
args: [TuiPullToRefreshService]
|
|
50
|
-
}] }]; }, propDecorators: {
|
|
70
|
+
}] }]; }, propDecorators: { styleHandler: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], pulled: [{
|
|
51
73
|
type: Output
|
|
52
74
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsbC10by1yZWZyZXNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLW1vYmlsZS9jb21wb25lbnRzL3B1bGwtdG8tcmVmcmVzaC9wdWxsLXRvLXJlZnJlc2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tbW9iaWxlL2NvbXBvbmVudHMvcHVsbC10by1yZWZyZXNoL3B1bGwtdG8tcmVmcmVzaC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFVBQVUsRUFFVixjQUFjLEVBQ2QsaUJBQWlCLEVBRWpCLGFBQWEsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RixPQUFPLEVBQ0gsNkJBQTZCLEVBQzdCLDZCQUE2QixHQUNoQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBQyxZQUFZLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFTaEYsTUFBTSxPQUFPLHlCQUF5QjtJQWlCbEMsWUFDdUMsUUFBNkIsRUFDeEMsRUFBQyxhQUFhLEVBQTBCLEVBQzNCLEtBQWMsRUFDSyxTQUFpQixFQUVoRSxTQUE4RCxFQUM3QixRQUE0QjtRQUpqQyxVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQ0ssY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUVoRSxjQUFTLEdBQVQsU0FBUyxDQUFxRDtRQUM3QixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQXJCMUUsaUJBQVksR0FBbUQsSUFBSSxDQUFDLEtBQUs7WUFDckUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBRSxjQUFjLFFBQVEsR0FBRyxDQUFDLEtBQUssRUFBQyxDQUFDO1lBQzVELENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFHUixXQUFNLEdBQXdCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNyRCxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUNsRCxDQUFDO1FBRU8sYUFBUSxHQUF3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDdkQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxJQUFJLFlBQVksSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUN4RSxvQkFBb0IsRUFBRSxDQUN6QixDQUFDO1FBV0Usb0RBQW9EO1FBQ3BELGFBQWEsQ0FBQyxhQUFhLENBQUM7YUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksYUFBYSxDQUFDLFNBQVMsRUFBRTtnQkFDekIsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO2FBQ3hDO2lCQUFNO2dCQUNILGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQzthQUNoRDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7dUhBcENRLHlCQUF5QixrQkFrQnRCLGlCQUFpQix5QkFDakIsY0FBYyxhQUNkLFVBQVUsYUFDViw2QkFBNkIsYUFDN0IsNkJBQTZCLGFBRTdCLHVCQUF1QjsyR0F4QjFCLHlCQUF5Qix1SEFGdkIsQ0FBQyx1QkFBdUIsRUFBRSxpQkFBaUIsQ0FBQywwQkNqQzNELHNRQVFBO0FEOEJJO0lBREMsY0FBYyxFQUFFOytEQUdBOzRGQUxSLHlCQUF5QjtrQkFQckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixXQUFXLEVBQUUsaUNBQWlDO29CQUM5QyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztvQkFDM0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLGlCQUFpQixDQUFDO2lCQUMxRDs7MEJBbUJRLE1BQU07MkJBQUMsaUJBQWlCOzswQkFBRyxJQUFJOzswQkFDL0IsTUFBTTsyQkFBQyxjQUFjOzswQkFDckIsTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyw2QkFBNkI7OzBCQUNwQyxNQUFNOzJCQUFDLDZCQUE2Qjs7MEJBRXBDLE1BQU07MkJBQUMsdUJBQXVCOzRDQXJCbkMsWUFBWTtzQkFGWCxLQUFLO2dCQU9HLE1BQU07c0JBRGQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgVFVJX0lTX0lPUyxcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIFR1aUhhbmRsZXIsXG4gICAgdHVpU2Nyb2xsRnJvbSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1RVSV9TQ1JPTExfUkVGfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgVFVJX1BVTExfVE9fUkVGUkVTSF9DT01QT05FTlQsXG4gICAgVFVJX1BVTExfVE9fUkVGUkVTSF9USFJFU0hPTEQsXG59IGZyb20gJy4vcHVsbC10by1yZWZyZXNoLnByb3ZpZGVycyc7XG5pbXBvcnQge01JQ1JPX09GRlNFVCwgVHVpUHVsbFRvUmVmcmVzaFNlcnZpY2V9IGZyb20gJy4vcHVsbC10by1yZWZyZXNoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1wdWxsLXRvLXJlZnJlc2gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdWxsLXRvLXJlZnJlc2gudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHVsbC10by1yZWZyZXNoLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtUdWlQdWxsVG9SZWZyZXNoU2VydmljZSwgVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQdWxsVG9SZWZyZXNoQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3R5bGVIYW5kbGVyOiBUdWlIYW5kbGVyPG51bWJlciwgUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGw+ID0gdGhpcy5pc0lPU1xuICAgICAgICA/IGRpc3RhbmNlID0+ICh7dHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgke2Rpc3RhbmNlIC8gMn1weClgfSlcbiAgICAgICAgOiAoKSA9PiBudWxsO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgcHVsbGVkOiBPYnNlcnZhYmxlPHVua25vd24+ID0gdGhpcy5wdWxsaW5nJC5waXBlKFxuICAgICAgICBmaWx0ZXIoZGlzdGFuY2UgPT4gZGlzdGFuY2UgPT09IHRoaXMudGhyZXNob2xkKSxcbiAgICApO1xuXG4gICAgcmVhZG9ubHkgZHJvcHBlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnB1bGxpbmckLnBpcGUoXG4gICAgICAgIG1hcChkaXN0YW5jZSA9PiBkaXN0YW5jZSA8PSBNSUNST19PRkZTRVQgfHwgZGlzdGFuY2UgPT09IHRoaXMudGhyZXNob2xkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIEBTZWxmKCkgZGVzdHJveSQ6IE9ic2VydmFibGU8dW5rbm93bj4sXG4gICAgICAgIEBJbmplY3QoVFVJX1NDUk9MTF9SRUYpIHtuYXRpdmVFbGVtZW50fTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX0lPUykgcHJpdmF0ZSByZWFkb25seSBpc0lPUzogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUVUlfUFVMTF9UT19SRUZSRVNIX1RIUkVTSE9MRCkgcHJpdmF0ZSByZWFkb25seSB0aHJlc2hvbGQ6IG51bWJlcixcbiAgICAgICAgQEluamVjdChUVUlfUFVMTF9UT19SRUZSRVNIX0NPTVBPTkVOVClcbiAgICAgICAgcmVhZG9ubHkgY29tcG9uZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8bnVtYmVyPj4sXG4gICAgICAgIEBJbmplY3QoVHVpUHVsbFRvUmVmcmVzaFNlcnZpY2UpIHJlYWRvbmx5IHB1bGxpbmckOiBPYnNlcnZhYmxlPG51bWJlcj4sXG4gICAgKSB7XG4gICAgICAgIC8vIEVuc3VyZSBzY3JvbGxpbmcgZG93biBpcyBpbXBvc3NpYmxlIHdoaWxlIHB1bGxpbmdcbiAgICAgICAgdHVpU2Nyb2xsRnJvbShuYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWwoZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wKSB7XG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuc3R5bGUudG91Y2hBY3Rpb24gPSAnJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50LnN0eWxlLnRvdWNoQWN0aW9uID0gJ3Bhbi1kb3duJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb21wb25lbnQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IChwdWxsaW5nJCB8IGFzeW5jKSB8fCAwfVwiPjwvbmctY29udGFpbmVyPlxuXG48ZGl2XG4gICAgW2NsYXNzLnQtZHJvcF09XCJkcm9wcGVkJCB8IGFzeW5jXCJcbiAgICBbbmdTdHlsZV09XCJzdHlsZUhhbmRsZXIoKHB1bGxpbmckIHwgYXN5bmMpIHx8IDApXCJcbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { TuiRepeatTimesModule } from '@taiga-ui/cdk';
|
|
4
4
|
import { TuiSvgModule } from '@taiga-ui/core';
|
|
5
5
|
import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
|
|
6
6
|
import { TuiMobileLoaderAndroidComponent } from './loader-android/loader-android.component';
|
|
@@ -12,28 +12,12 @@ export class TuiPullToRefreshModule {
|
|
|
12
12
|
TuiPullToRefreshModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPullToRefreshModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
13
|
TuiPullToRefreshModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPullToRefreshModule, declarations: [TuiPullToRefreshComponent,
|
|
14
14
|
TuiMobileLoaderAndroidComponent,
|
|
15
|
-
TuiMobileLoaderIOSComponent], imports: [CommonModule,
|
|
16
|
-
|
|
17
|
-
TuiOverscrollModule,
|
|
18
|
-
TuiRepeatTimesModule,
|
|
19
|
-
PolymorpheusModule], exports: [TuiPullToRefreshComponent] });
|
|
20
|
-
TuiPullToRefreshModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPullToRefreshModule, imports: [[
|
|
21
|
-
CommonModule,
|
|
22
|
-
TuiSvgModule,
|
|
23
|
-
TuiOverscrollModule,
|
|
24
|
-
TuiRepeatTimesModule,
|
|
25
|
-
PolymorpheusModule,
|
|
26
|
-
]] });
|
|
15
|
+
TuiMobileLoaderIOSComponent], imports: [CommonModule, TuiSvgModule, TuiRepeatTimesModule, PolymorpheusModule], exports: [TuiPullToRefreshComponent] });
|
|
16
|
+
TuiPullToRefreshModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPullToRefreshModule, imports: [[CommonModule, TuiSvgModule, TuiRepeatTimesModule, PolymorpheusModule]] });
|
|
27
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPullToRefreshModule, decorators: [{
|
|
28
18
|
type: NgModule,
|
|
29
19
|
args: [{
|
|
30
|
-
imports: [
|
|
31
|
-
CommonModule,
|
|
32
|
-
TuiSvgModule,
|
|
33
|
-
TuiOverscrollModule,
|
|
34
|
-
TuiRepeatTimesModule,
|
|
35
|
-
PolymorpheusModule,
|
|
36
|
-
],
|
|
20
|
+
imports: [CommonModule, TuiSvgModule, TuiRepeatTimesModule, PolymorpheusModule],
|
|
37
21
|
declarations: [
|
|
38
22
|
TuiPullToRefreshComponent,
|
|
39
23
|
TuiMobileLoaderAndroidComponent,
|
|
@@ -42,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
42
26
|
exports: [TuiPullToRefreshComponent],
|
|
43
27
|
}]
|
|
44
28
|
}] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsbC10by1yZWZyZXNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLW1vYmlsZS9jb21wb25lbnRzL3B1bGwtdG8tcmVmcmVzaC9wdWxsLXRvLXJlZnJlc2gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDMUYsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7O0FBV3RFLE1BQU0sT0FBTyxzQkFBc0I7O29IQUF0QixzQkFBc0I7cUhBQXRCLHNCQUFzQixpQkFOM0IseUJBQXlCO1FBQ3pCLCtCQUErQjtRQUMvQiwyQkFBMkIsYUFKckIsWUFBWSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsYUFNcEUseUJBQXlCO3FIQUUxQixzQkFBc0IsWUFSdEIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixDQUFDOzRGQVF0RSxzQkFBc0I7a0JBVGxDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsQ0FBQztvQkFDL0UsWUFBWSxFQUFFO3dCQUNWLHlCQUF5Qjt3QkFDekIsK0JBQStCO3dCQUMvQiwyQkFBMkI7cUJBQzlCO29CQUNELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aVJlcGVhdFRpbWVzTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpU3ZnTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c01vZHVsZX0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHtUdWlNb2JpbGVMb2FkZXJBbmRyb2lkQ29tcG9uZW50fSBmcm9tICcuL2xvYWRlci1hbmRyb2lkL2xvYWRlci1hbmRyb2lkLmNvbXBvbmVudCc7XG5pbXBvcnQge1R1aU1vYmlsZUxvYWRlcklPU0NvbXBvbmVudH0gZnJvbSAnLi9sb2FkZXItaW9zL2xvYWRlci1pb3MuY29tcG9uZW50JztcbmltcG9ydCB7VHVpUHVsbFRvUmVmcmVzaENvbXBvbmVudH0gZnJvbSAnLi9wdWxsLXRvLXJlZnJlc2guY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUdWlTdmdNb2R1bGUsIFR1aVJlcGVhdFRpbWVzTW9kdWxlLCBQb2x5bW9ycGhldXNNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBUdWlQdWxsVG9SZWZyZXNoQ29tcG9uZW50LFxuICAgICAgICBUdWlNb2JpbGVMb2FkZXJBbmRyb2lkQ29tcG9uZW50LFxuICAgICAgICBUdWlNb2JpbGVMb2FkZXJJT1NDb21wb25lbnQsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbVHVpUHVsbFRvUmVmcmVzaENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVB1bGxUb1JlZnJlc2hNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,43 +1,47 @@
|
|
|
1
1
|
import { ElementRef, Inject, Injectable } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { tuiScrollFrom, tuiTypedFromEvent } from '@taiga-ui/cdk';
|
|
3
|
+
import { TUI_SCROLL_REF } from '@taiga-ui/core';
|
|
4
|
+
import { EMPTY, Observable } from 'rxjs';
|
|
5
|
+
import { distinctUntilChanged, endWith, filter, map, scan, share, startWith, switchMap, takeUntil, takeWhile, tap, } from 'rxjs/operators';
|
|
5
6
|
import { TUI_PULL_TO_REFRESH_COMPONENT, TUI_PULL_TO_REFRESH_LOADED, TUI_PULL_TO_REFRESH_THRESHOLD, } from './pull-to-refresh.providers';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "rxjs";
|
|
8
9
|
export const MICRO_OFFSET = Math.pow(10, -6);
|
|
9
10
|
export class TuiPullToRefreshService extends Observable {
|
|
10
|
-
constructor(el,
|
|
11
|
+
constructor(el, scrollRef, loaded$, threshold, component) {
|
|
11
12
|
super(subscriber => (component ? this.pulling$ : EMPTY).subscribe(subscriber));
|
|
12
13
|
this.el = el;
|
|
13
|
-
this.
|
|
14
|
+
this.scrollRef = scrollRef;
|
|
14
15
|
this.loaded$ = loaded$;
|
|
15
16
|
this.threshold = threshold;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
// Hack for iOS to determine if pulling stopped due to scroll
|
|
18
|
+
// because Safari does not support `touch-action: pan-down`
|
|
19
|
+
this.touched = false;
|
|
20
|
+
this.pulling$ = this.loaded$.pipe(startWith(null), switchMap(() => tuiTypedFromEvent(this.element, `touchstart`, { passive: true }).pipe(filter(() => !this.scrollTop), map(({ touches }) => touches[0].clientY), switchMap(start => tuiTypedFromEvent(this.element, `touchmove`).pipe(tap(() => {
|
|
21
|
+
this.touched = true;
|
|
22
|
+
}), map(({ touches }) => touches[0].clientY - start), filter(distance => distance > 0), takeUntil(tuiTypedFromEvent(this.element, `touchend`).pipe(tap(() => {
|
|
23
|
+
this.touched = false;
|
|
24
|
+
}))), takeUntil(tuiScrollFrom(this.scrollRef.nativeElement)), endWith(0))), scan((prev, current) => !current && !this.touched && prev > this.threshold
|
|
25
|
+
? this.threshold
|
|
26
|
+
: current + current * MICRO_OFFSET, 0), takeWhile(distance => distance !== this.threshold, true), startWith(0))), distinctUntilChanged(), share());
|
|
26
27
|
}
|
|
27
28
|
get element() {
|
|
28
29
|
return this.el.nativeElement;
|
|
29
30
|
}
|
|
31
|
+
get scrollTop() {
|
|
32
|
+
return this.scrollRef.nativeElement.scrollTop;
|
|
33
|
+
}
|
|
30
34
|
}
|
|
31
|
-
TuiPullToRefreshService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPullToRefreshService, deps: [{ token: ElementRef }, { token:
|
|
35
|
+
TuiPullToRefreshService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPullToRefreshService, deps: [{ token: ElementRef }, { token: TUI_SCROLL_REF }, { token: TUI_PULL_TO_REFRESH_LOADED }, { token: TUI_PULL_TO_REFRESH_THRESHOLD }, { token: TUI_PULL_TO_REFRESH_COMPONENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
36
|
TuiPullToRefreshService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPullToRefreshService });
|
|
33
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPullToRefreshService, decorators: [{
|
|
34
38
|
type: Injectable
|
|
35
39
|
}], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{
|
|
36
40
|
type: Inject,
|
|
37
41
|
args: [ElementRef]
|
|
38
|
-
}] }, { type:
|
|
42
|
+
}] }, { type: i0.ElementRef, decorators: [{
|
|
39
43
|
type: Inject,
|
|
40
|
-
args: [
|
|
44
|
+
args: [TUI_SCROLL_REF]
|
|
41
45
|
}] }, { type: i1.Observable, decorators: [{
|
|
42
46
|
type: Inject,
|
|
43
47
|
args: [TUI_PULL_TO_REFRESH_LOADED]
|
|
@@ -48,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
48
52
|
type: Inject,
|
|
49
53
|
args: [TUI_PULL_TO_REFRESH_COMPONENT]
|
|
50
54
|
}] }]; } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsbC10by1yZWZyZXNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1tb2JpbGUvY29tcG9uZW50cy9wdWxsLXRvLXJlZnJlc2gvcHVsbC10by1yZWZyZXNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBQyxhQUFhLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxLQUFLLEVBQUUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsT0FBTyxFQUNQLE1BQU0sRUFDTixHQUFHLEVBQ0gsSUFBSSxFQUNKLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxHQUNOLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIsNkJBQTZCLEdBQ2hDLE1BQU0sNkJBQTZCLENBQUM7OztBQUVyQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsU0FBQSxFQUFFLEVBQUksQ0FBQyxDQUFDLENBQUEsQ0FBQztBQUdyQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsVUFBa0I7SUE0QzNELFlBQ3lDLEVBQTJCLEVBQ3ZCLFNBQWtDLEVBQ3RCLE9BQTRCLEVBQ3pCLFNBQWlCLEVBQ2xDLFNBQWtCO1FBRXpELEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQU4xQyxPQUFFLEdBQUYsRUFBRSxDQUF5QjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUF5QjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUN6QixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBL0M3RSw2REFBNkQ7UUFDN0QsMkRBQTJEO1FBQ25ELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFUCxhQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixTQUFTLENBQUMsR0FBRyxFQUFFLENBQ1gsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQy9ELE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFDN0IsR0FBRyxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUN0QyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDZCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDN0MsR0FBRyxDQUFDLEdBQVMsRUFBRTtZQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEVBQzlDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFDaEMsU0FBUyxDQUNMLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUM1QyxHQUFHLENBQUMsR0FBUyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQ0wsQ0FDSixFQUNELFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUN0RCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQ2IsQ0FDSixFQUNELElBQUksQ0FDQSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUNkLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVM7WUFDOUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ2hCLENBQUMsQ0FBQyxPQUFPLEdBQUcsT0FBTyxHQUFHLFlBQVksRUFDMUMsQ0FBQyxDQUNKLEVBQ0QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQ3hELFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUNKLEVBQ0Qsb0JBQW9CLEVBQUUsRUFDdEIsS0FBSyxFQUFFLENBQ1YsQ0FBQztJQVVGLENBQUM7SUFFRCxJQUFZLE9BQU87UUFDZixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFZLFNBQVM7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7SUFDbEQsQ0FBQzs7cUhBNURRLHVCQUF1QixrQkE2Q3BCLFVBQVUsYUFDVixjQUFjLGFBQ2QsMEJBQTBCLGFBQzFCLDZCQUE2QixhQUM3Qiw2QkFBNkI7eUhBakRoQyx1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVTs7MEJBOENGLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsY0FBYzs7MEJBQ3JCLE1BQU07MkJBQUMsMEJBQTBCOzswQkFDakMsTUFBTTsyQkFBQyw2QkFBNkI7OzBCQUNwQyxNQUFNOzJCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpU2Nyb2xsRnJvbSwgdHVpVHlwZWRGcm9tRXZlbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUVUlfU0NST0xMX1JFRn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtFTVBUWSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICAgIGVuZFdpdGgsXG4gICAgZmlsdGVyLFxuICAgIG1hcCxcbiAgICBzY2FuLFxuICAgIHNoYXJlLFxuICAgIHN0YXJ0V2l0aCxcbiAgICBzd2l0Y2hNYXAsXG4gICAgdGFrZVVudGlsLFxuICAgIHRha2VXaGlsZSxcbiAgICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBUVUlfUFVMTF9UT19SRUZSRVNIX0NPTVBPTkVOVCxcbiAgICBUVUlfUFVMTF9UT19SRUZSRVNIX0xPQURFRCxcbiAgICBUVUlfUFVMTF9UT19SRUZSRVNIX1RIUkVTSE9MRCxcbn0gZnJvbSAnLi9wdWxsLXRvLXJlZnJlc2gucHJvdmlkZXJzJztcblxuZXhwb3J0IGNvbnN0IE1JQ1JPX09GRlNFVCA9IDEwICoqIC02O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHVpUHVsbFRvUmVmcmVzaFNlcnZpY2UgZXh0ZW5kcyBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIC8vIEhhY2sgZm9yIGlPUyB0byBkZXRlcm1pbmUgaWYgcHVsbGluZyBzdG9wcGVkIGR1ZSB0byBzY3JvbGxcbiAgICAvLyBiZWNhdXNlIFNhZmFyaSBkb2VzIG5vdCBzdXBwb3J0IGB0b3VjaC1hY3Rpb246IHBhbi1kb3duYFxuICAgIHByaXZhdGUgdG91Y2hlZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBwdWxsaW5nJCA9IHRoaXMubG9hZGVkJC5waXBlKFxuICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgICAgdHVpVHlwZWRGcm9tRXZlbnQodGhpcy5lbGVtZW50LCBgdG91Y2hzdGFydGAsIHtwYXNzaXZlOiB0cnVlfSkucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuc2Nyb2xsVG9wKSxcbiAgICAgICAgICAgICAgICBtYXAoKHt0b3VjaGVzfSkgPT4gdG91Y2hlc1swXS5jbGllbnRZKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoc3RhcnQgPT5cbiAgICAgICAgICAgICAgICAgICAgdHVpVHlwZWRGcm9tRXZlbnQodGhpcy5lbGVtZW50LCBgdG91Y2htb3ZlYCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKCh7dG91Y2hlc30pID0+IHRvdWNoZXNbMF0uY2xpZW50WSAtIHN0YXJ0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihkaXN0YW5jZSA9PiBkaXN0YW5jZSA+IDApLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aVR5cGVkRnJvbUV2ZW50KHRoaXMuZWxlbWVudCwgYHRvdWNoZW5kYCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwKCgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG91Y2hlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0dWlTY3JvbGxGcm9tKHRoaXMuc2Nyb2xsUmVmLm5hdGl2ZUVsZW1lbnQpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFdpdGgoMCksXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBzY2FuKFxuICAgICAgICAgICAgICAgICAgICAocHJldiwgY3VycmVudCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICFjdXJyZW50ICYmICF0aGlzLnRvdWNoZWQgJiYgcHJldiA+IHRoaXMudGhyZXNob2xkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnRocmVzaG9sZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY3VycmVudCArIGN1cnJlbnQgKiBNSUNST19PRkZTRVQsXG4gICAgICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlV2hpbGUoZGlzdGFuY2UgPT4gZGlzdGFuY2UgIT09IHRoaXMudGhyZXNob2xkLCB0cnVlKSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgoMCksXG4gICAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBzaGFyZSgpLFxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUVUlfU0NST0xMX1JFRikgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFRVSV9QVUxMX1RPX1JFRlJFU0hfTE9BREVEKSBwcml2YXRlIHJlYWRvbmx5IGxvYWRlZCQ6IE9ic2VydmFibGU8dW5rbm93bj4sXG4gICAgICAgIEBJbmplY3QoVFVJX1BVTExfVE9fUkVGUkVTSF9USFJFU0hPTEQpIHByaXZhdGUgcmVhZG9ubHkgdGhyZXNob2xkOiBudW1iZXIsXG4gICAgICAgIEBJbmplY3QoVFVJX1BVTExfVE9fUkVGUkVTSF9DT01QT05FTlQpIGNvbXBvbmVudDogdW5rbm93bixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoc3Vic2NyaWJlciA9PiAoY29tcG9uZW50ID8gdGhpcy5wdWxsaW5nJCA6IEVNUFRZKS5zdWJzY3JpYmUoc3Vic2NyaWJlcikpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHNjcm9sbFRvcCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zY3JvbGxSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A7XG4gICAgfVxufVxuIl19
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
|
|
2
|
-
import { TUI_WINDOW_HEIGHT } from '@taiga-ui/cdk';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Self, } from '@angular/core';
|
|
2
|
+
import { TUI_WINDOW_HEIGHT, TuiDestroyService } from '@taiga-ui/cdk';
|
|
3
3
|
import { TUI_ANIMATION_OPTIONS, tuiFadeIn, tuiSlideInTop } from '@taiga-ui/core';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
4
5
|
import { TuiSheetService } from '../../sheet.service';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "../sheet/sheet.component";
|
|
@@ -12,10 +13,21 @@ import * as i6 from "@taiga-ui/cdk";
|
|
|
12
13
|
import * as i7 from "../../sheet.service";
|
|
13
14
|
import * as i8 from "rxjs";
|
|
14
15
|
export class TuiSheetsHostComponent {
|
|
15
|
-
constructor(options, service, height
|
|
16
|
+
constructor(options, service, height$, destroy$, cdr) {
|
|
16
17
|
this.options = options;
|
|
17
18
|
this.service = service;
|
|
18
19
|
this.height$ = height$;
|
|
20
|
+
this.destroy$ = destroy$;
|
|
21
|
+
this.cdr = cdr;
|
|
22
|
+
this.sheets = [];
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
// Due to this view being parallel to app content, `markForCheck` from `async` pipe
|
|
26
|
+
// can happen after view was checked, so calling `detectChanges` instead
|
|
27
|
+
this.service.sheets$.pipe(takeUntil(this.destroy$)).subscribe(sheets => {
|
|
28
|
+
this.sheets = sheets;
|
|
29
|
+
this.cdr.detectChanges();
|
|
30
|
+
});
|
|
19
31
|
}
|
|
20
32
|
close({ closeable, $implicit }) {
|
|
21
33
|
if (closeable) {
|
|
@@ -23,8 +35,8 @@ export class TuiSheetsHostComponent {
|
|
|
23
35
|
}
|
|
24
36
|
}
|
|
25
37
|
}
|
|
26
|
-
TuiSheetsHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiSheetsHostComponent, deps: [{ token: TUI_ANIMATION_OPTIONS }, { token: TuiSheetService }, { token: TUI_WINDOW_HEIGHT }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
-
TuiSheetsHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiSheetsHostComponent, selector: "tui-sheets-host", ngImport: i0, template: "<
|
|
38
|
+
TuiSheetsHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiSheetsHostComponent, deps: [{ token: TUI_ANIMATION_OPTIONS }, { token: TuiSheetService }, { token: TUI_WINDOW_HEIGHT }, { token: TuiDestroyService, self: true }, { token: ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
+
TuiSheetsHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiSheetsHostComponent, selector: "tui-sheets-host", providers: [TuiDestroyService], ngImport: i0, template: "<div\n *ngFor=\"let item of sheets\"\n #wrapper=\"tuiSheetWrapper\"\n class=\"t-wrapper\"\n [@tuiSlideInTop]=\"options\"\n [@tuiFadeIn]=\"options\"\n [tuiSheetWrapper]=\"item.offset\"\n [class.t-wrapper_closeable]=\"item.closeable\"\n [class.t-wrapper_overlay]=\"item.overlay || (wrapper.overlay$ | async)\"\n [class.t-wrapper_visible]=\"wrapper.visible$ | async\"\n [style.height.px]=\"wrapper.height$ | async\"\n (click.self)=\"close(item)\"\n>\n <tui-sheet\n tuiScrollRef\n tuiOverscroll=\"all\"\n [style.height.px]=\"((height$ | async) || 0) - item.offset\"\n [item]=\"item\"\n (close)=\"close(item)\"\n ></tui-sheet>\n</div>\n<div\n class=\"t-overlay\"\n (click)=\"close(sheets[0])\"\n></div>\n", styles: [":host{position:-webkit-sticky;position:sticky;bottom:0;display:block;height:0}.t-overlay{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:fixed;top:0;left:0;width:100%;z-index:-1;height:100%;background:#000;opacity:.001;pointer-events:none}.t-wrapper_overlay~.t-overlay{opacity:.8;pointer-events:auto;touch-action:none}.t-wrapper{position:absolute;bottom:0;z-index:0;width:100%;height:100vh;overflow:hidden}.t-wrapper_visible{overflow:visible}\n"], components: [{ type: i1.TuiSheetComponent, selector: "tui-sheet", inputs: ["item"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.TuiSheetWrapperDirective, selector: "[tuiSheetWrapper]", inputs: ["tuiSheetWrapper"], exportAs: ["tuiSheetWrapper"] }, { type: i4.TuiSheetCloseDirective, selector: "tui-sheet[close]", outputs: ["close"] }, { type: i5.TuiScrollRefDirective, selector: "[tuiScrollRef]" }, { type: i6.TuiOverscrollDirective, selector: "[tuiOverscroll]", inputs: ["tuiOverscroll"] }], pipes: { "async": i2.AsyncPipe }, animations: [tuiSlideInTop, tuiFadeIn], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
28
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiSheetsHostComponent, decorators: [{
|
|
29
41
|
type: Component,
|
|
30
42
|
args: [{
|
|
@@ -32,6 +44,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
32
44
|
templateUrl: './sheets-host.template.html',
|
|
33
45
|
styleUrls: ['./sheets-host.style.less'],
|
|
34
46
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
47
|
+
providers: [TuiDestroyService],
|
|
35
48
|
animations: [tuiSlideInTop, tuiFadeIn],
|
|
36
49
|
}]
|
|
37
50
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
@@ -43,5 +56,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
43
56
|
}] }, { type: i8.Observable, decorators: [{
|
|
44
57
|
type: Inject,
|
|
45
58
|
args: [TUI_WINDOW_HEIGHT]
|
|
59
|
+
}] }, { type: i8.Observable, decorators: [{
|
|
60
|
+
type: Self
|
|
61
|
+
}, {
|
|
62
|
+
type: Inject,
|
|
63
|
+
args: [TuiDestroyService]
|
|
64
|
+
}] }, { type: i0.ChangeDetectorRef, decorators: [{
|
|
65
|
+
type: Inject,
|
|
66
|
+
args: [ChangeDetectorRef]
|
|
46
67
|
}] }]; } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXRzLWhvc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tbW9iaWxlL2NvbXBvbmVudHMvc2hlZXQvY29tcG9uZW50cy9zaGVldHMtaG9zdC9zaGVldHMtaG9zdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1tb2JpbGUvY29tcG9uZW50cy9zaGVldC9jb21wb25lbnRzL3NoZWV0cy1ob3N0L3NoZWV0cy1ob3N0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFFTixJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0UsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3pDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7OztBQVVwRCxNQUFNLE9BQU8sc0JBQXNCO0lBRy9CLFlBQzRDLE9BQXlCLEVBQ3ZCLE9BQXdCLEVBQzlCLE9BQTJCLEVBQ1gsUUFBMEIsRUFDbEMsR0FBc0I7UUFKMUIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDWCxhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUNsQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVB0RSxXQUFNLEdBQWlDLEVBQUUsQ0FBQztJQVF2QyxDQUFDO0lBRUosUUFBUTtRQUNKLG1GQUFtRjtRQUNuRix3RUFBd0U7UUFDeEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFvQjtRQUMzQyxJQUFJLFNBQVMsRUFBRTtZQUNYLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN4QjtJQUNMLENBQUM7O29IQXhCUSxzQkFBc0Isa0JBSW5CLHFCQUFxQixhQUNyQixlQUFlLGFBQ2YsaUJBQWlCLGFBQ1QsaUJBQWlCLHlCQUN6QixpQkFBaUI7d0dBUnBCLHNCQUFzQiwwQ0FIcEIsQ0FBQyxpQkFBaUIsQ0FBQywwQkN0QmxDLDZ3QkF5QkEsd29DREZnQixDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUM7NEZBRTdCLHNCQUFzQjtrQkFSbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsNkJBQTZCO29CQUMxQyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUM5QixVQUFVLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDO2lCQUN6Qzs7MEJBS1EsTUFBTTsyQkFBQyxxQkFBcUI7OzBCQUM1QixNQUFNOzJCQUFDLGVBQWU7OzBCQUN0QixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDaEMsTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FuaW1hdGlvbk9wdGlvbnN9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0LFxuICAgIE9uSW5pdCxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VFVJX1dJTkRPV19IRUlHSFQsIFR1aURlc3Ryb3lTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VFVJX0FOSU1BVElPTl9PUFRJT05TLCB0dWlGYWRlSW4sIHR1aVNsaWRlSW5Ub3B9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1R1aVNoZWV0fSBmcm9tICcuLi8uLi9zaGVldCc7XG5pbXBvcnQge1R1aVNoZWV0U2VydmljZX0gZnJvbSAnLi4vLi4vc2hlZXQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXNoZWV0cy1ob3N0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2hlZXRzLWhvc3QudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2hlZXRzLWhvc3Quc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1R1aURlc3Ryb3lTZXJ2aWNlXSxcbiAgICBhbmltYXRpb25zOiBbdHVpU2xpZGVJblRvcCwgdHVpRmFkZUluXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2hlZXRzSG9zdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgc2hlZXRzOiBSZWFkb25seUFycmF5PFR1aVNoZWV0PGFueT4+ID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUVUlfQU5JTUFUSU9OX09QVElPTlMpIHJlYWRvbmx5IG9wdGlvbnM6IEFuaW1hdGlvbk9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoVHVpU2hlZXRTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IFR1aVNoZWV0U2VydmljZSxcbiAgICAgICAgQEluamVjdChUVUlfV0lORE9XX0hFSUdIVCkgcmVhZG9ubHkgaGVpZ2h0JDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICAgICBAU2VsZigpIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQ6IE9ic2VydmFibGU8dm9pZD4sXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gRHVlIHRvIHRoaXMgdmlldyBiZWluZyBwYXJhbGxlbCB0byBhcHAgY29udGVudCwgYG1hcmtGb3JDaGVja2AgZnJvbSBgYXN5bmNgIHBpcGVcbiAgICAgICAgLy8gY2FuIGhhcHBlbiBhZnRlciB2aWV3IHdhcyBjaGVja2VkLCBzbyBjYWxsaW5nIGBkZXRlY3RDaGFuZ2VzYCBpbnN0ZWFkXG4gICAgICAgIHRoaXMuc2VydmljZS5zaGVldHMkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoc2hlZXRzID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hlZXRzID0gc2hlZXRzO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjbG9zZSh7Y2xvc2VhYmxlLCAkaW1wbGljaXR9OiBUdWlTaGVldDx1bmtub3duPik6IHZvaWQge1xuICAgICAgICBpZiAoY2xvc2VhYmxlKSB7XG4gICAgICAgICAgICAkaW1wbGljaXQuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzaGVldHNcIlxuICAgICN3cmFwcGVyPVwidHVpU2hlZXRXcmFwcGVyXCJcbiAgICBjbGFzcz1cInQtd3JhcHBlclwiXG4gICAgW0B0dWlTbGlkZUluVG9wXT1cIm9wdGlvbnNcIlxuICAgIFtAdHVpRmFkZUluXT1cIm9wdGlvbnNcIlxuICAgIFt0dWlTaGVldFdyYXBwZXJdPVwiaXRlbS5vZmZzZXRcIlxuICAgIFtjbGFzcy50LXdyYXBwZXJfY2xvc2VhYmxlXT1cIml0ZW0uY2xvc2VhYmxlXCJcbiAgICBbY2xhc3MudC13cmFwcGVyX292ZXJsYXldPVwiaXRlbS5vdmVybGF5IHx8ICh3cmFwcGVyLm92ZXJsYXkkIHwgYXN5bmMpXCJcbiAgICBbY2xhc3MudC13cmFwcGVyX3Zpc2libGVdPVwid3JhcHBlci52aXNpYmxlJCB8IGFzeW5jXCJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIndyYXBwZXIuaGVpZ2h0JCB8IGFzeW5jXCJcbiAgICAoY2xpY2suc2VsZik9XCJjbG9zZShpdGVtKVwiXG4+XG4gICAgPHR1aS1zaGVldFxuICAgICAgICB0dWlTY3JvbGxSZWZcbiAgICAgICAgdHVpT3ZlcnNjcm9sbD1cImFsbFwiXG4gICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiKChoZWlnaHQkIHwgYXN5bmMpIHx8IDApIC0gaXRlbS5vZmZzZXRcIlxuICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgKGNsb3NlKT1cImNsb3NlKGl0ZW0pXCJcbiAgICA+PC90dWktc2hlZXQ+XG48L2Rpdj5cbjxkaXZcbiAgICBjbGFzcz1cInQtb3ZlcmxheVwiXG4gICAgKGNsaWNrKT1cImNsb3NlKHNoZWV0c1swXSlcIlxuPjwvZGl2PlxuIl19
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
1
2
|
import { Inject, Injectable } from '@angular/core';
|
|
3
|
+
import { tuiGetNativeFocused, tuiIsHTMLElement } from '@taiga-ui/cdk';
|
|
2
4
|
import { BehaviorSubject, EMPTY, Observable } from 'rxjs';
|
|
3
5
|
import { TUI_SHEET_OPTIONS } from './sheet-options';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
7
|
export class TuiSheetService {
|
|
6
|
-
constructor(options) {
|
|
8
|
+
constructor(doc, options) {
|
|
9
|
+
this.doc = doc;
|
|
7
10
|
this.options = options;
|
|
8
11
|
this.sheets$ = new BehaviorSubject([]);
|
|
9
12
|
}
|
|
@@ -16,6 +19,10 @@ export class TuiSheetService {
|
|
|
16
19
|
const sheet = Object.assign(Object.assign(Object.assign({}, this.options), options), { content,
|
|
17
20
|
completeWith,
|
|
18
21
|
$implicit, scroll$: EMPTY });
|
|
22
|
+
const focused = tuiGetNativeFocused(this.doc);
|
|
23
|
+
if (tuiIsHTMLElement(focused) && sheet.overlay) {
|
|
24
|
+
focused.blur();
|
|
25
|
+
}
|
|
19
26
|
this.sheets$.next([...this.sheets$.value, sheet]);
|
|
20
27
|
return () => {
|
|
21
28
|
this.sheets$.next(this.sheets$.value.filter(item => item !== sheet));
|
|
@@ -23,15 +30,18 @@ export class TuiSheetService {
|
|
|
23
30
|
});
|
|
24
31
|
}
|
|
25
32
|
}
|
|
26
|
-
TuiSheetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiSheetService, deps: [{ token: TUI_SHEET_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
+
TuiSheetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiSheetService, deps: [{ token: DOCUMENT }, { token: TUI_SHEET_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
27
34
|
TuiSheetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiSheetService, providedIn: `root` });
|
|
28
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiSheetService, decorators: [{
|
|
29
36
|
type: Injectable,
|
|
30
37
|
args: [{
|
|
31
38
|
providedIn: `root`,
|
|
32
39
|
}]
|
|
33
|
-
}], ctorParameters: function () { return [{ type:
|
|
40
|
+
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
41
|
+
type: Inject,
|
|
42
|
+
args: [DOCUMENT]
|
|
43
|
+
}] }, { type: undefined, decorators: [{
|
|
34
44
|
type: Inject,
|
|
35
45
|
args: [TUI_SHEET_OPTIONS]
|
|
36
46
|
}] }]; } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLW1vYmlsZS9jb21wb25lbnRzL3NoZWV0L3NoZWV0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHeEQsT0FBTyxFQUFDLGlCQUFpQixFQUFrQixNQUFNLGlCQUFpQixDQUFDOztBQUtuRSxNQUFNLE9BQU8sZUFBZTtJQUd4QixZQUN1QyxHQUFhLEVBQ0osT0FBd0I7UUFEakMsUUFBRyxHQUFILEdBQUcsQ0FBVTtRQUNKLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBSi9ELFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBNEIsRUFBRSxDQUFDLENBQUM7SUFLbkUsQ0FBQztJQUVKLElBQUksQ0FDQSxPQUF5QyxFQUN6QyxVQUFvQyxFQUFFO1FBRXRDLE9BQU8sSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDOUIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFTLEVBQVEsRUFBRTtnQkFDckMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdkIsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLENBQUMsQ0FBQztZQUNGLE1BQU0sS0FBSyxpREFDSixJQUFJLENBQUMsT0FBTyxHQUNaLE9BQU8sS0FDVixPQUFPO2dCQUNQLFlBQVk7Z0JBQ1osU0FBUyxFQUNULE9BQU8sRUFBRSxLQUFLLEdBQ2pCLENBQUM7WUFDRixNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFOUMsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUM1QyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDbEI7WUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUVsRCxPQUFPLEdBQUcsRUFBRTtnQkFDUixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6RSxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzZHQXJDUSxlQUFlLGtCQUlaLFFBQVEsYUFDUixpQkFBaUI7aUhBTHBCLGVBQWUsY0FGWixNQUFNOzRGQUVULGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzBEQUsrQyxRQUFROzBCQUEvQyxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpR2V0TmF0aXZlRm9jdXNlZCwgdHVpSXNIVE1MRWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1R1aVNoZWV0fSBmcm9tICcuL3NoZWV0JztcbmltcG9ydCB7VFVJX1NIRUVUX09QVElPTlMsIFR1aVNoZWV0T3B0aW9uc30gZnJvbSAnLi9zaGVldC1vcHRpb25zJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IGByb290YCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2hlZXRTZXJ2aWNlIHtcbiAgICByZWFkb25seSBzaGVldHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxUdWlTaGVldDxhbnksIGFueT4+PihbXSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2M6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFRVSV9TSEVFVF9PUFRJT05TKSBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aVNoZWV0T3B0aW9ucyxcbiAgICApIHt9XG5cbiAgICBvcGVuPEc+KFxuICAgICAgICBjb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aVNoZWV0PEc+PixcbiAgICAgICAgb3B0aW9uczogUGFydGlhbDxUdWlTaGVldE9wdGlvbnM+ID0ge30sXG4gICAgKTogT2JzZXJ2YWJsZTxHPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgkaW1wbGljaXQgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29tcGxldGVXaXRoID0gKHJlc3VsdDogRyk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdC5uZXh0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0LmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3Qgc2hlZXQ6IFR1aVNoZWV0PGFueT4gPSB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgICAgICBjb21wbGV0ZVdpdGgsXG4gICAgICAgICAgICAgICAgJGltcGxpY2l0LFxuICAgICAgICAgICAgICAgIHNjcm9sbCQ6IEVNUFRZLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzZWQgPSB0dWlHZXROYXRpdmVGb2N1c2VkKHRoaXMuZG9jKTtcblxuICAgICAgICAgICAgaWYgKHR1aUlzSFRNTEVsZW1lbnQoZm9jdXNlZCkgJiYgc2hlZXQub3ZlcmxheSkge1xuICAgICAgICAgICAgICAgIGZvY3VzZWQuYmx1cigpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNoZWV0cyQubmV4dChbLi4udGhpcy5zaGVldHMkLnZhbHVlLCBzaGVldF0pO1xuXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hlZXRzJC5uZXh0KHRoaXMuc2hlZXRzJC52YWx1ZS5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSBzaGVldCkpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|