@firestitch/popover 16.0.0 → 17.0.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/esm2022/app/components/popover/popover.component.mjs +3 -3
- package/esm2022/app/components/popover-wrapper/popover-wrapper.component.mjs +7 -7
- package/esm2022/app/directives/popover.directive.mjs +15 -12
- package/esm2022/app/fs-popover.module.mjs +4 -4
- package/esm2022/app/helpers/create-position-strategy.mjs +1 -1
- package/esm2022/app/services/popover.service.mjs +5 -5
- package/fesm2022/firestitch-popover.mjs +31 -28
- package/fesm2022/firestitch-popover.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -3,10 +3,10 @@ import { FsPopoverDirective } from '../../directives/popover.directive';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
export class FsPopoverComponent extends FsPopoverDirective {
|
|
6
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
7
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FsPopoverComponent, selector: "fs-popover", host: { classAttribute: "fs-popover-component" }, usesInheritance: true, ngImport: i0, template: "<span [ngClass]=\"{'popover-container': enabled}\">\n <ng-content></ng-content>\n</span>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
8
8
|
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverComponent, decorators: [{
|
|
10
10
|
type: Component,
|
|
11
11
|
args: [{ selector: 'fs-popover', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
12
12
|
'class': 'fs-popover-component',
|
|
@@ -45,7 +45,7 @@ export class FsPopoverWrapperComponent extends BasePortalOutlet {
|
|
|
45
45
|
}
|
|
46
46
|
ngOnDestroy() {
|
|
47
47
|
this._contentChangesObserver.disconnect();
|
|
48
|
-
this._destroy$.next();
|
|
48
|
+
this._destroy$.next(null);
|
|
49
49
|
this._destroy$.complete();
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
@@ -72,7 +72,7 @@ export class FsPopoverWrapperComponent extends BasePortalOutlet {
|
|
|
72
72
|
this.content = content;
|
|
73
73
|
}
|
|
74
74
|
updatePosition() {
|
|
75
|
-
this._updatePosition.next();
|
|
75
|
+
this._updatePosition.next(null);
|
|
76
76
|
}
|
|
77
77
|
_watchMousePosition() {
|
|
78
78
|
const componentVisibilityChange$ = this.popoverRef.componentVisible$
|
|
@@ -108,19 +108,19 @@ export class FsPopoverWrapperComponent extends BasePortalOutlet {
|
|
|
108
108
|
this.popoverRef.updatePosition();
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
112
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
111
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverWrapperComponent, deps: [{ token: i1.FsPopoverRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FsPopoverWrapperComponent, selector: "fs-popover-wrapper", host: { classAttribute: "fs-popover-wrapper" }, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }, { propertyName: "spinner", first: true, predicate: ["spinner"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"wrapper\" [ngClass]=\"{\n 'theme-dark' : popoverRef.theme === 'dark',\n 'size-tiny': popoverRef.size === 'tiny',\n 'size-small': popoverRef.size === 'small',\n 'hidden': !(popoverRef.componentVisible$ | async)\n }\">\n <div class=\"mat-elevation-z4 popover-content\">\n <ng-container *ngIf=\"content\">\n {{content}}\n </ng-container>\n\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"fs-popover-arrow light\"></div>\n <div class=\"fs-popover-arrow dark\"></div>\n</div>\n\n<div class=\"loading-spinner\"\n #spinner\n *ngIf=\"popoverRef.loading && !(popoverRef.componentVisible$ | async)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" [attr.width]=\"popoverRef.loadingDiameter\" [attr.height]=\"popoverRef.loadingDiameter\" viewBox=\"0 0 42 42\" stroke=\"grey\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"3\">\n <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"1s\" repeatCount=\"indefinite\"/>\n </path>\n </g>\n </g>\n </svg>\n</div>\n", styles: [".wrapper{padding:6px;animation:fadeIn ease .2s}.wrapper.hidden{display:none}.wrapper .popover-content{background:#fff;border-radius:4px;padding:8px;color:#1b1b1b;box-sizing:border-box;overflow:hidden}.wrapper.theme-dark .popover-content{background-color:#707070;color:#fff}.wrapper.size-small .popover-content{font-size:80%}.wrapper.size-tiny .popover-content{font-size:70%}.wrapper .fs-popover-arrow{width:0;height:0;font-size:0;line-height:0;position:absolute;z-index:200;z-index:1}.wrapper .fs-popover-arrow.dark{z-index:0}::ng-deep .fs-popover-top .fs-popover-arrow,::ng-deep .fs-popover-bottom .fs-popover-arrow{border-left:10px solid transparent;border-right:10px solid transparent}::ng-deep .fs-popover-left .fs-popover-arrow,::ng-deep .fs-popover-right .fs-popover-arrow{border-top:10px solid transparent;border-bottom:10px solid transparent}::ng-deep .fs-popover-top .fs-popover-arrow{bottom:-3px;left:calc(50% - 10px);border-top:10px solid #fff}::ng-deep .fs-popover-top .fs-popover-arrow.dark{border-top-color:#dfdfdf40;bottom:-4px}::ng-deep .fs-popover-bottom .fs-popover-arrow{top:-3px;left:calc(50% - 10px);border-bottom:10px solid #fff}::ng-deep .fs-popover-bottom .fs-popover-arrow.dark{border-bottom-color:#dfdfdf40;top:-4px}::ng-deep .fs-popover-left .fs-popover-arrow{left:-3px;top:calc(50% - 10px);border-right:10px solid #fff}::ng-deep .fs-popover-left .fs-popover-arrow.dark{border-right-color:#dfdfdf40;left:-4px}::ng-deep .fs-popover-right .fs-popover-arrow{right:-3px;top:calc(50% - 10px);border-left:10px solid #fff}::ng-deep .fs-popover-right .fs-popover-arrow.dark{border-left-color:#dfdfdf40;right:-4px}::ng-deep .fs-popover-bottom .wrapper.theme-dark .fs-popover-arrow{border-bottom-color:#707070}::ng-deep .fs-popover-left .wrapper.theme-dark .fs-popover-arrow{border-right-color:#707070}::ng-deep .fs-popover-right .wrapper.theme-dark .fs-popover-arrow{border-left-color:#707070}::ng-deep .fs-popover-top .wrapper.theme-dark .fs-popover-arrow{border-top-color:#707070}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
113
113
|
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverWrapperComponent, decorators: [{
|
|
115
115
|
type: Component,
|
|
116
116
|
args: [{ selector: 'fs-popover-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
117
117
|
'class': 'fs-popover-wrapper',
|
|
118
118
|
}, template: "<div class=\"wrapper\" [ngClass]=\"{\n 'theme-dark' : popoverRef.theme === 'dark',\n 'size-tiny': popoverRef.size === 'tiny',\n 'size-small': popoverRef.size === 'small',\n 'hidden': !(popoverRef.componentVisible$ | async)\n }\">\n <div class=\"mat-elevation-z4 popover-content\">\n <ng-container *ngIf=\"content\">\n {{content}}\n </ng-container>\n\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"fs-popover-arrow light\"></div>\n <div class=\"fs-popover-arrow dark\"></div>\n</div>\n\n<div class=\"loading-spinner\"\n #spinner\n *ngIf=\"popoverRef.loading && !(popoverRef.componentVisible$ | async)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" [attr.width]=\"popoverRef.loadingDiameter\" [attr.height]=\"popoverRef.loadingDiameter\" viewBox=\"0 0 42 42\" stroke=\"grey\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"3\">\n <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"1s\" repeatCount=\"indefinite\"/>\n </path>\n </g>\n </g>\n </svg>\n</div>\n", styles: [".wrapper{padding:6px;animation:fadeIn ease .2s}.wrapper.hidden{display:none}.wrapper .popover-content{background:#fff;border-radius:4px;padding:8px;color:#1b1b1b;box-sizing:border-box;overflow:hidden}.wrapper.theme-dark .popover-content{background-color:#707070;color:#fff}.wrapper.size-small .popover-content{font-size:80%}.wrapper.size-tiny .popover-content{font-size:70%}.wrapper .fs-popover-arrow{width:0;height:0;font-size:0;line-height:0;position:absolute;z-index:200;z-index:1}.wrapper .fs-popover-arrow.dark{z-index:0}::ng-deep .fs-popover-top .fs-popover-arrow,::ng-deep .fs-popover-bottom .fs-popover-arrow{border-left:10px solid transparent;border-right:10px solid transparent}::ng-deep .fs-popover-left .fs-popover-arrow,::ng-deep .fs-popover-right .fs-popover-arrow{border-top:10px solid transparent;border-bottom:10px solid transparent}::ng-deep .fs-popover-top .fs-popover-arrow{bottom:-3px;left:calc(50% - 10px);border-top:10px solid #fff}::ng-deep .fs-popover-top .fs-popover-arrow.dark{border-top-color:#dfdfdf40;bottom:-4px}::ng-deep .fs-popover-bottom .fs-popover-arrow{top:-3px;left:calc(50% - 10px);border-bottom:10px solid #fff}::ng-deep .fs-popover-bottom .fs-popover-arrow.dark{border-bottom-color:#dfdfdf40;top:-4px}::ng-deep .fs-popover-left .fs-popover-arrow{left:-3px;top:calc(50% - 10px);border-right:10px solid #fff}::ng-deep .fs-popover-left .fs-popover-arrow.dark{border-right-color:#dfdfdf40;left:-4px}::ng-deep .fs-popover-right .fs-popover-arrow{right:-3px;top:calc(50% - 10px);border-left:10px solid #fff}::ng-deep .fs-popover-right .fs-popover-arrow.dark{border-left-color:#dfdfdf40;right:-4px}::ng-deep .fs-popover-bottom .wrapper.theme-dark .fs-popover-arrow{border-bottom-color:#707070}::ng-deep .fs-popover-left .wrapper.theme-dark .fs-popover-arrow{border-right-color:#707070}::ng-deep .fs-popover-right .wrapper.theme-dark .fs-popover-arrow{border-left-color:#707070}::ng-deep .fs-popover-top .wrapper.theme-dark .fs-popover-arrow{border-top-color:#707070}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
|
|
119
|
-
}], ctorParameters:
|
|
119
|
+
}], ctorParameters: () => [{ type: i1.FsPopoverRef }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }], propDecorators: { _portalOutlet: [{
|
|
120
120
|
type: ViewChild,
|
|
121
121
|
args: [CdkPortalOutlet, { static: true }]
|
|
122
122
|
}], spinner: [{
|
|
123
123
|
type: ViewChild,
|
|
124
124
|
args: ['spinner']
|
|
125
125
|
}] } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wb3BvdmVyLXdyYXBwZXIvcG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wb3BvdmVyLXdyYXBwZXIvcG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFFVixTQUFTLEVBRVQsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FHaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBWXZELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxnQkFBZ0I7SUFpQnBEO0lBQ0M7SUFDQTtJQUNBO0lBakJILGFBQWEsQ0FBa0I7SUFHL0IsT0FBTyxDQUFhO0lBRXBCLE9BQU8sQ0FBUztJQUVmLGFBQWEsQ0FBUztJQUN0Qix1QkFBdUIsQ0FBbUI7SUFDMUMsZUFBZSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFdEMsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFeEMsWUFDUyxVQUF3QixFQUN2QixHQUFlLEVBQ2YsS0FBYSxFQUNiLFNBQW9CO1FBRTVCLEtBQUssRUFBRSxDQUFDO1FBTEQsZUFBVSxHQUFWLFVBQVUsQ0FBYztRQUN2QixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFHNUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQVcsWUFBWSxDQUFDLEtBQWE7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7WUFDakUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBR00sV0FBVztRQUNoQixJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxvQkFBb0IsQ0FBSSxNQUF5QjtRQUV0RCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztTQUNsRDtRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBR0Q7OztPQUdHO0lBQ0kscUJBQXFCLENBQUksTUFBMEI7UUFFeEQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLGlCQUFpQixDQUFDLE9BQWU7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUI7YUFDakUsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUNsQyxDQUFDO1FBRUosSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsU0FBUyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7aUJBQzdCLElBQUksQ0FDSCxTQUFTLENBQUMsMEJBQTBCLENBQUMsRUFDckMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7aUJBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBYSxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUMzRCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNyRTtJQUNILENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsTUFBTSxNQUFNLEdBQUc7WUFDYixTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztRQUVGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsRUFBRTtZQUN2RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTyw2QkFBNkI7UUFDbkMsSUFBSSxDQUFDLGVBQWU7YUFDakIsSUFBSSxDQUNILFlBQVksQ0FBQyxFQUFFLENBQUMsRUFDaEIsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7d0dBeElVLHlCQUF5Qjs0RkFBekIseUJBQXlCLHlKQUV6QixlQUFlLDBLQ3JDNUIsNnVDQWdDQTs7NEZER2EseUJBQXlCO2tCQVRyQyxTQUFTOytCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLE9BQU8sRUFBRSxvQkFBb0I7cUJBQzlCO3lLQUtNLGFBQWE7c0JBRG5CLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJckMsT0FBTztzQkFEYixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgVmlld0NoaWxkLFxuICBPbkRlc3Ryb3ksXG4gIE5nWm9uZSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBCYXNlUG9ydGFsT3V0bGV0LFxuICBDZGtQb3J0YWxPdXRsZXQsXG4gIENvbXBvbmVudFBvcnRhbCxcbiAgVGVtcGxhdGVQb3J0YWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZzUG9wb3ZlclJlZiB9IGZyb20gJy4uLy4uL2NsYXNzL3BvcG92ZXItcmVmJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1wb3BvdmVyLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJ3BvcG92ZXItd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAncG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmcy1wb3BvdmVyLXdyYXBwZXInLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBGc1BvcG92ZXJXcmFwcGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZVBvcnRhbE91dGxldCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKENka1BvcnRhbE91dGxldCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIF9wb3J0YWxPdXRsZXQ6IENka1BvcnRhbE91dGxldDtcblxuICBAVmlld0NoaWxkKCdzcGlubmVyJylcbiAgcHVibGljIHNwaW5uZXI6IEVsZW1lbnRSZWY7XG5cbiAgcHVibGljIGNvbnRlbnQ6IHN0cmluZztcblxuICBwcml2YXRlIF93cmFwcGVyQ2xhc3M6IHN0cmluZztcbiAgcHJpdmF0ZSBfY29udGVudENoYW5nZXNPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcbiAgcHJpdmF0ZSBfdXBkYXRlUG9zaXRpb24gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcG9wb3ZlclJlZjogRnNQb3BvdmVyUmVmLFxuICAgIHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX3VwZGF0ZUNsYXNzKCk7XG5cbiAgICB0aGlzLndyYXBwZXJDbGFzcyA9IHRoaXMucG9wb3ZlclJlZi53cmFwcGVyQ2xhc3M7XG4gICAgdGhpcy5tYXhXaWR0aCA9IHRoaXMucG9wb3ZlclJlZi5tYXhXaWR0aDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgbWF4V2lkdGgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWF4V2lkdGggPSB2YWx1ZSA/IHZhbHVlICsgJ3B4JyA6IHZvaWQgMDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgd3JhcHBlckNsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl93cmFwcGVyQ2xhc3MgPSB2YWx1ZTtcbiAgICB0aGlzLl91cGRhdGVDbGFzcygpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wb3BvdmVyUmVmLmF1dG9TaG93ICYmIHRoaXMucG9wb3ZlclJlZi5jb21wb25lbnRMb2FkaW5nKSB7XG4gICAgICB0aGlzLl93YXRjaE1vdXNlUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICB0aGlzLl9vYnNlcnZlQ29udGVudENoYW5nZXMoKTtcbiAgICB0aGlzLl9saXN0ZW5VcGRhdGVQb3NpdGlvblJlcXVlc3RzKCk7XG4gIH1cblxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9jb250ZW50Q2hhbmdlc09ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggYSBUZW1wbGF0ZVBvcnRhbCBhcyBjb250ZW50IHRvIHRoaXMgcG9wb3ZlciBjb250YWluZXIuXG4gICAqIEBwYXJhbSBwb3J0YWwgUG9ydGFsIHRvIGJlIGF0dGFjaGVkIGFzIHRoZSBwb3BvdmVyIGNvbnRlbnQuXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoVGVtcGxhdGVQb3J0YWw8Qz4ocG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDxDPik6IEVtYmVkZGVkVmlld1JlZjxDPiB7XG5cbiAgICBpZiAodGhpcy5fcG9ydGFsT3V0bGV0Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRocm93IEVycm9yKCdQb3BvdmVyIHRlbXBsYXRlIGFscmVhZHkgYXR0YWNoZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaFRlbXBsYXRlUG9ydGFsKHBvcnRhbCk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBBdHRhY2ggYSBDb21wb25lbnRQb3J0YWwgYXMgY29udGVudCB0byB0aGlzIHBvcG92ZXIgY29udGFpbmVyLlxuICAgKiBAcGFyYW0gcG9ydGFsIFBvcnRhbCB0byBiZSBhdHRhY2hlZCBhcyB0aGUgcG9wb3ZlciBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIGF0dGFjaENvbXBvbmVudFBvcnRhbDxUPihwb3J0YWw6IENvbXBvbmVudFBvcnRhbDxUPik6IENvbXBvbmVudFJlZjxUPiB7XG5cbiAgICBpZiAodGhpcy5fcG9ydGFsT3V0bGV0Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRocm93IEVycm9yKCdQb3BvdmVyIGNvbXBvbmVudCBhbHJlYWR5IGF0dGFjaGVkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3BvcnRhbE91dGxldC5hdHRhY2hDb21wb25lbnRQb3J0YWwocG9ydGFsKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUZXh0dWFsQ29udGVudChjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRlbnQgPSBjb250ZW50O1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIHRoaXMuX3VwZGF0ZVBvc2l0aW9uLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3dhdGNoTW91c2VQb3NpdGlvbigpIHtcbiAgICBjb25zdCBjb21wb25lbnRWaXNpYmlsaXR5Q2hhbmdlJCA9IHRoaXMucG9wb3ZlclJlZi5jb21wb25lbnRWaXNpYmxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+IHZhbHVlID09PSB0cnVlKVxuICAgICAgKTtcblxuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnbW91c2Vtb3ZlJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKGNvbXBvbmVudFZpc2liaWxpdHlDaGFuZ2UkKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLnNwaW5uZXIubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gZS54ICsgJ3B4JztcbiAgICAgICAgICB0aGlzLnNwaW5uZXIubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSAoZS55ICsgMjApICsgJ3B4JztcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVDbGFzcygpIHtcbiAgICBpZiAodGhpcy5fd3JhcHBlckNsYXNzKSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCB0aGlzLl93cmFwcGVyQ2xhc3MpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29ic2VydmVDb250ZW50Q2hhbmdlcygpIHtcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlXG4gICAgfTtcblxuICAgIHRoaXMuX2NvbnRlbnRDaGFuZ2VzT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9jb250ZW50Q2hhbmdlc09ic2VydmVyLm9ic2VydmUodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlblVwZGF0ZVBvc2l0aW9uUmVxdWVzdHMoKSB7XG4gICAgdGhpcy5fdXBkYXRlUG9zaXRpb25cbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoNTApLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucG9wb3ZlclJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgfSlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIndyYXBwZXJcIiBbbmdDbGFzc109XCJ7XG4gICd0aGVtZS1kYXJrJyA6IHBvcG92ZXJSZWYudGhlbWUgPT09ICdkYXJrJyxcbiAgJ3NpemUtdGlueSc6IHBvcG92ZXJSZWYuc2l6ZSA9PT0gJ3RpbnknLFxuICAnc2l6ZS1zbWFsbCc6IHBvcG92ZXJSZWYuc2l6ZSA9PT0gJ3NtYWxsJyxcbiAgJ2hpZGRlbic6ICEocG9wb3ZlclJlZi5jb21wb25lbnRWaXNpYmxlJCB8IGFzeW5jKVxuICB9XCI+XG4gIDxkaXYgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo0IHBvcG92ZXItY29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50XCI+XG4gICAgICB7e2NvbnRlbnR9fVxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZnMtcG9wb3Zlci1hcnJvdyBsaWdodFwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZnMtcG9wb3Zlci1hcnJvdyBkYXJrXCI+PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImxvYWRpbmctc3Bpbm5lclwiXG4gICAgI3NwaW5uZXJcbiAgICAqbmdJZj1cInBvcG92ZXJSZWYubG9hZGluZyAmJiAhKHBvcG92ZXJSZWYuY29tcG9uZW50VmlzaWJsZSQgfCBhc3luYylcIj5cbiAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgW2F0dHIud2lkdGhdPVwicG9wb3ZlclJlZi5sb2FkaW5nRGlhbWV0ZXJcIiBbYXR0ci5oZWlnaHRdPVwicG9wb3ZlclJlZi5sb2FkaW5nRGlhbWV0ZXJcIiB2aWV3Qm94PVwiMCAwIDQyIDQyXCIgc3Ryb2tlPVwiZ3JleVwiPlxuICAgIDxnIGZpbGw9XCJub25lXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgPGcgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEgMSlcIiBzdHJva2Utd2lkdGg9XCIzXCI+XG4gICAgICAgIDxjaXJjbGUgc3Ryb2tlLW9wYWNpdHk9XCIuNVwiIGN4PVwiMThcIiBjeT1cIjE4XCIgcj1cIjE4XCIvPlxuICAgICAgICA8cGF0aCBkPVwiTTM2IDE4YzAtOS45NC04LjA2LTE4LTE4LTE4XCI+XG4gICAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiIHR5cGU9XCJyb3RhdGVcIiBmcm9tPVwiMCAxOCAxOFwiIHRvPVwiMzYwIDE4IDE4XCIgZHVyPVwiMXNcIiByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIi8+XG4gICAgICAgIDwvcGF0aD5cbiAgICAgIDwvZz5cbiAgICA8L2c+XG4gIDwvc3ZnPlxuPC9kaXY+XG4iXX0=
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wb3BvdmVyLXdyYXBwZXIvcG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wb3BvdmVyLXdyYXBwZXIvcG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFFVixTQUFTLEVBRVQsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FHaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBWXZELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxnQkFBZ0I7SUFpQnBEO0lBQ0M7SUFDQTtJQUNBO0lBakJILGFBQWEsQ0FBa0I7SUFHL0IsT0FBTyxDQUFhO0lBRXBCLE9BQU8sQ0FBUztJQUVmLGFBQWEsQ0FBUztJQUN0Qix1QkFBdUIsQ0FBbUI7SUFDMUMsZUFBZSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFdEMsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFeEMsWUFDUyxVQUF3QixFQUN2QixHQUFlLEVBQ2YsS0FBYSxFQUNiLFNBQW9CO1FBRTVCLEtBQUssRUFBRSxDQUFDO1FBTEQsZUFBVSxHQUFWLFVBQVUsQ0FBYztRQUN2QixRQUFHLEdBQUgs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QyxTQUFTOytCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLE9BQU8sRUFBRSxvQkFBb0I7cUJBQzlCO3VKQUtNLGFBQWE7c0JBRG5CLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJckMsT0FBTztzQkFEYixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgVmlld0NoaWxkLFxuICBPbkRlc3Ryb3ksXG4gIE5nWm9uZSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBCYXNlUG9ydGFsT3V0bGV0LFxuICBDZGtQb3J0YWxPdXRsZXQsXG4gIENvbXBvbmVudFBvcnRhbCxcbiAgVGVtcGxhdGVQb3J0YWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZzUG9wb3ZlclJlZiB9IGZyb20gJy4uLy4uL2NsYXNzL3BvcG92ZXItcmVmJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1wb3BvdmVyLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJ3BvcG92ZXItd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAncG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmcy1wb3BvdmVyLXdyYXBwZXInLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBGc1BvcG92ZXJXcmFwcGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZVBvcnRhbE91dGxldCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKENka1BvcnRhbE91dGxldCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIF9wb3J0YWxPdXRsZXQ6IENka1BvcnRhbE91dGxldDtcblxuICBAVmlld0NoaWxkKCdzcGlubmVyJylcbiAgcHVibGljIHNwaW5uZXI6IEVsZW1lbnRSZWY7XG5cbiAgcHVibGljIGNvbnRlbnQ6IHN0cmluZztcblxuICBwcml2YXRlIF93cmFwcGVyQ2xhc3M6IHN0cmluZztcbiAgcHJpdmF0ZSBfY29udGVudENoYW5nZXNPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcbiAgcHJpdmF0ZSBfdXBkYXRlUG9zaXRpb24gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcG9wb3ZlclJlZjogRnNQb3BvdmVyUmVmLFxuICAgIHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX3VwZGF0ZUNsYXNzKCk7XG5cbiAgICB0aGlzLndyYXBwZXJDbGFzcyA9IHRoaXMucG9wb3ZlclJlZi53cmFwcGVyQ2xhc3M7XG4gICAgdGhpcy5tYXhXaWR0aCA9IHRoaXMucG9wb3ZlclJlZi5tYXhXaWR0aDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgbWF4V2lkdGgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWF4V2lkdGggPSB2YWx1ZSA/IHZhbHVlICsgJ3B4JyA6IHZvaWQgMDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgd3JhcHBlckNsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl93cmFwcGVyQ2xhc3MgPSB2YWx1ZTtcbiAgICB0aGlzLl91cGRhdGVDbGFzcygpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wb3BvdmVyUmVmLmF1dG9TaG93ICYmIHRoaXMucG9wb3ZlclJlZi5jb21wb25lbnRMb2FkaW5nKSB7XG4gICAgICB0aGlzLl93YXRjaE1vdXNlUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICB0aGlzLl9vYnNlcnZlQ29udGVudENoYW5nZXMoKTtcbiAgICB0aGlzLl9saXN0ZW5VcGRhdGVQb3NpdGlvblJlcXVlc3RzKCk7XG4gIH1cblxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9jb250ZW50Q2hhbmdlc09ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoIGEgVGVtcGxhdGVQb3J0YWwgYXMgY29udGVudCB0byB0aGlzIHBvcG92ZXIgY29udGFpbmVyLlxuICAgKiBAcGFyYW0gcG9ydGFsIFBvcnRhbCB0byBiZSBhdHRhY2hlZCBhcyB0aGUgcG9wb3ZlciBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIGF0dGFjaFRlbXBsYXRlUG9ydGFsPEM+KHBvcnRhbDogVGVtcGxhdGVQb3J0YWw8Qz4pOiBFbWJlZGRlZFZpZXdSZWY8Qz4ge1xuXG4gICAgaWYgKHRoaXMuX3BvcnRhbE91dGxldC5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICB0aHJvdyBFcnJvcignUG9wb3ZlciB0ZW1wbGF0ZSBhbHJlYWR5IGF0dGFjaGVkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3BvcnRhbE91dGxldC5hdHRhY2hUZW1wbGF0ZVBvcnRhbChwb3J0YWwpO1xuICB9XG5cblxuICAvKipcbiAgICogQXR0YWNoIGEgQ29tcG9uZW50UG9ydGFsIGFzIGNvbnRlbnQgdG8gdGhpcyBwb3BvdmVyIGNvbnRhaW5lci5cbiAgICogQHBhcmFtIHBvcnRhbCBQb3J0YWwgdG8gYmUgYXR0YWNoZWQgYXMgdGhlIHBvcG92ZXIgY29udGVudC5cbiAgICovXG4gIHB1YmxpYyBhdHRhY2hDb21wb25lbnRQb3J0YWw8VD4ocG9ydGFsOiBDb21wb25lbnRQb3J0YWw8VD4pOiBDb21wb25lbnRSZWY8VD4ge1xuXG4gICAgaWYgKHRoaXMuX3BvcnRhbE91dGxldC5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICB0aHJvdyBFcnJvcignUG9wb3ZlciBjb21wb25lbnQgYWxyZWFkeSBhdHRhY2hlZCcpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoQ29tcG9uZW50UG9ydGFsKHBvcnRhbCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VGV4dHVhbENvbnRlbnQoY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZW50ID0gY29udGVudDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVQb3NpdGlvbigpIHtcbiAgICB0aGlzLl91cGRhdGVQb3NpdGlvbi5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBfd2F0Y2hNb3VzZVBvc2l0aW9uKCkge1xuICAgIGNvbnN0IGNvbXBvbmVudFZpc2liaWxpdHlDaGFuZ2UkID0gdGhpcy5wb3BvdmVyUmVmLmNvbXBvbmVudFZpc2libGUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHRydWUpXG4gICAgICApO1xuXG4gICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwoY29tcG9uZW50VmlzaWJpbGl0eUNoYW5nZSQpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBlLnggKyAncHgnO1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9IChlLnkgKyAyMCkgKyAncHgnO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNsYXNzKCkge1xuICAgIGlmICh0aGlzLl93cmFwcGVyQ2xhc3MpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX3dyYXBwZXJDbGFzcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZUNvbnRlbnRDaGFuZ2VzKCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWVcbiAgICB9O1xuXG4gICAgdGhpcy5fY29udGVudENoYW5nZXNPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2NvbnRlbnRDaGFuZ2VzT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCBjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuVXBkYXRlUG9zaXRpb25SZXF1ZXN0cygpIHtcbiAgICB0aGlzLl91cGRhdGVQb3NpdGlvblxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5wb3BvdmVyUmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICB9KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid3JhcHBlclwiIFtuZ0NsYXNzXT1cIntcbiAgJ3RoZW1lLWRhcmsnIDogcG9wb3ZlclJlZi50aGVtZSA9PT0gJ2RhcmsnLFxuICAnc2l6ZS10aW55JzogcG9wb3ZlclJlZi5zaXplID09PSAndGlueScsXG4gICdzaXplLXNtYWxsJzogcG9wb3ZlclJlZi5zaXplID09PSAnc21hbGwnLFxuICAnaGlkZGVuJzogIShwb3BvdmVyUmVmLmNvbXBvbmVudFZpc2libGUkIHwgYXN5bmMpXG4gIH1cIj5cbiAgPGRpdiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejQgcG9wb3Zlci1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnRcIj5cbiAgICAgIHt7Y29udGVudH19XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgY2RrUG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmcy1wb3BvdmVyLWFycm93IGxpZ2h0XCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmcy1wb3BvdmVyLWFycm93IGRhcmtcIj48L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibG9hZGluZy1zcGlubmVyXCJcbiAgICAjc3Bpbm5lclxuICAgICpuZ0lmPVwicG9wb3ZlclJlZi5sb2FkaW5nICYmICEocG9wb3ZlclJlZi5jb21wb25lbnRWaXNpYmxlJCB8IGFzeW5jKVwiPlxuICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBbYXR0ci53aWR0aF09XCJwb3BvdmVyUmVmLmxvYWRpbmdEaWFtZXRlclwiIFthdHRyLmhlaWdodF09XCJwb3BvdmVyUmVmLmxvYWRpbmdEaWFtZXRlclwiIHZpZXdCb3g9XCIwIDAgNDIgNDJcIiBzdHJva2U9XCJncmV5XCI+XG4gICAgPGcgZmlsbD1cIm5vbmVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCI+XG4gICAgICA8ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMSAxKVwiIHN0cm9rZS13aWR0aD1cIjNcIj5cbiAgICAgICAgPGNpcmNsZSBzdHJva2Utb3BhY2l0eT1cIi41XCIgY3g9XCIxOFwiIGN5PVwiMThcIiByPVwiMThcIi8+XG4gICAgICAgIDxwYXRoIGQ9XCJNMzYgMThjMC05Ljk0LTguMDYtMTgtMTgtMThcIj5cbiAgICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCIgdHlwZT1cInJvdGF0ZVwiIGZyb209XCIwIDE4IDE4XCIgdG89XCIzNjAgMTggMThcIiBkdXI9XCIxc1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz5cbiAgICAgICAgPC9wYXRoPlxuICAgICAgPC9nPlxuICAgIDwvZz5cbiAgPC9zdmc+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -37,9 +37,9 @@ export class FsPopoverDirective {
|
|
|
37
37
|
_popoverRef;
|
|
38
38
|
_wrapperElement;
|
|
39
39
|
_hostBounds;
|
|
40
|
-
_mouseEnter
|
|
41
|
-
_mouseMove
|
|
42
|
-
_mouseLeave
|
|
40
|
+
_mouseEnter$;
|
|
41
|
+
_mouseMove$;
|
|
42
|
+
_mouseLeave$;
|
|
43
43
|
_popoverClosed$ = new Subject();
|
|
44
44
|
_destroy$ = new Subject();
|
|
45
45
|
constructor(_elRef, _popoverService, _ngZone, _router) {
|
|
@@ -47,6 +47,9 @@ export class FsPopoverDirective {
|
|
|
47
47
|
this._popoverService = _popoverService;
|
|
48
48
|
this._ngZone = _ngZone;
|
|
49
49
|
this._router = _router;
|
|
50
|
+
this._mouseEnter$ = fromEvent(this._elRef.nativeElement, 'mouseenter');
|
|
51
|
+
this._mouseMove$ = fromEvent(document, 'mousemove', { passive: true });
|
|
52
|
+
this._mouseLeave$ = fromEvent(this._elRef.nativeElement, 'mouseleave');
|
|
50
53
|
}
|
|
51
54
|
get openTimer$() {
|
|
52
55
|
return timer(this.showDelay);
|
|
@@ -67,11 +70,11 @@ export class FsPopoverDirective {
|
|
|
67
70
|
}
|
|
68
71
|
}
|
|
69
72
|
ngOnDestroy() {
|
|
70
|
-
this._popoverClosed$.next();
|
|
71
|
-
this._destroy$.next();
|
|
73
|
+
this._popoverClosed$.next(null);
|
|
74
|
+
this._destroy$.next(null);
|
|
72
75
|
}
|
|
73
76
|
_closePopover() {
|
|
74
|
-
this._popoverClosed$.next();
|
|
77
|
+
this._popoverClosed$.next(null);
|
|
75
78
|
this._ngZone.run(() => {
|
|
76
79
|
this._wrapperElement = null;
|
|
77
80
|
if (this._popoverService.hasActivePopover) {
|
|
@@ -175,10 +178,10 @@ export class FsPopoverDirective {
|
|
|
175
178
|
const pointInPopoverRect = pointInRect(popoverBounds.x, popoverBounds.y, popoverBounds.x + popoverBounds.width, popoverBounds.y + popoverBounds.height, event.x, event.y);
|
|
176
179
|
return !pointInHostRect && !pointInPopoverRect;
|
|
177
180
|
}
|
|
178
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
179
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
181
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverDirective, deps: [{ token: i0.ElementRef }, { token: i1.FsPopoverService }, { token: i0.NgZone }, { token: i2.Router, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
182
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: FsPopoverDirective, selector: "[fsPopover]", inputs: { text: "text", template: "template", data: "data", leaveDelay: "leaveDelay", showDelay: "showDelay", maxWidth: "maxWidth", wrapperClass: "wrapperClass", autoShow: "autoShow", autoClose: "autoClose", loadingDiameter: "loadingDiameter", loading: "loading", indication: "indication", position: "position", theme: "theme", size: "size", trigger: "trigger", enabled: "enabled" }, host: { properties: { "class.indication": "this.indication", "class.fs-popover-enabled": "this.enabled" }, classAttribute: "fs-popover" }, usesOnChanges: true, ngImport: i0 });
|
|
180
183
|
}
|
|
181
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverDirective, decorators: [{
|
|
182
185
|
type: Directive,
|
|
183
186
|
args: [{
|
|
184
187
|
selector: '[fsPopover]',
|
|
@@ -186,9 +189,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
186
189
|
'class': 'fs-popover',
|
|
187
190
|
},
|
|
188
191
|
}]
|
|
189
|
-
}], ctorParameters:
|
|
192
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FsPopoverService }, { type: i0.NgZone }, { type: i2.Router, decorators: [{
|
|
190
193
|
type: Optional
|
|
191
|
-
}] }]
|
|
194
|
+
}] }], propDecorators: { text: [{
|
|
192
195
|
type: Input
|
|
193
196
|
}], template: [{
|
|
194
197
|
type: Input
|
|
@@ -229,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
229
232
|
type: HostBinding,
|
|
230
233
|
args: ['class.fs-popover-enabled']
|
|
231
234
|
}] } });
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2RpcmVjdGl2ZXMvcG9wb3Zlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUdOLFFBQVEsRUFDUixXQUFXLEVBQ1gsV0FBVyxFQUNYLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFDTCxZQUFZLEVBQ1osS0FBSyxFQUNMLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBU3BELE1BQU0sT0FBTyxrQkFBa0I7SUF1RW5CO0lBQ0E7SUFDQTtJQUNZO0lBeEVkLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFHekIsSUFBSSxDQUFTO0lBR2IsUUFBUSxDQUFtQjtJQUczQixJQUFJLENBQU07SUFHVixVQUFVLEdBQUcsR0FB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Szs7c0JBQ0wsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBSXhCLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFLQyxPQUFPO3NCQUZiLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIERpcmVjdGl2ZSxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IGZyb21FdmVudCwgcGlwZSwgU3ViamVjdCwgdGltZXIsIE9ic2VydmFibGUsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkZWJvdW5jZVRpbWUsXG4gIGRlbGF5LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBmaW5hbGl6ZSxcbiAgbWFwVG8sXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgZ3VpZCB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5cbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi4vZW51bXMvcG9zaXRpb24nO1xuaW1wb3J0IHsgRnNQb3BvdmVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3BvcG92ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBwb2ludEluUmVjdCB9IGZyb20gJy4uL2hlbHBlcnMvcG9pbnQtaW4tcmVjdCc7XG5pbXBvcnQgeyBGc1BvcG92ZXJSZWYgfSBmcm9tICcuLi9jbGFzcy9wb3BvdmVyLXJlZic7XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ZzUG9wb3Zlcl0nLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ2ZzLXBvcG92ZXInLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBGc1BvcG92ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9ndWlkID0gZ3VpZCgneHh4eHh4eCcpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0ZXh0OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRhOiBhbnk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxlYXZlRGVsYXkgPSAxMDA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dEZWxheSA9IDA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1heFdpZHRoID0gMjUwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB3cmFwcGVyQ2xhc3M6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXV0b1Nob3cgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhdXRvQ2xvc2UgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsb2FkaW5nRGlhbWV0ZXIgPSAyMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbG9hZGluZyA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pbmRpY2F0aW9uJylcbiAgcHVibGljIGluZGljYXRpb24gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwb3NpdGlvbjogUG9zaXRpb24gPSBQb3NpdGlvbi5Tb3V0aDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdGhlbWU6ICdsaWdodCcgfCAnZGFyaycgPSAnbGlnaHQnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaXplOiAndGlueScgfCAnc21hbGwnIHwgJ25vcm1hbCcgPSAnbm9ybWFsJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdHJpZ2dlcjogJ2NsaWNrJyB8ICdtb3VzZW92ZXInID0gJ21vdXNlb3Zlcic7XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1wb3BvdmVyLWVuYWJsZWQnKVxuICBwdWJsaWMgZW5hYmxlZCA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9wb3BvdmVyUmVmOiBGc1BvcG92ZXJSZWY7XG4gIHByaXZhdGUgX3dyYXBwZXJFbGVtZW50OiBFbGVtZW50O1xuICBwcml2YXRlIF9ob3N0Qm91bmRzOiBET01SZWN0O1xuXG4gIHByaXZhdGUgX21vdXNlRW50ZXIkID0gZnJvbUV2ZW50KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWVudGVyJyk7XG4gIHByaXZhdGUgX21vdXNlTW92ZSQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gIHByaXZhdGUgX21vdXNlTGVhdmUkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWxlYXZlJyk7XG5cbiAgcHJpdmF0ZSBfcG9wb3ZlckNsb3NlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfcG9wb3ZlclNlcnZpY2U6IEZzUG9wb3ZlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGdldCBvcGVuVGltZXIkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRpbWVyKHRoaXMuc2hvd0RlbGF5KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xvc2VUaW1lciQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGltZXIodGhpcy5sZWF2ZURlbGF5KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbmFibGVkKSB7XG4gICAgICB0aGlzLl9pbml0aWFsaXplKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5lbmFibGVkPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuZW5hYmxlZD8ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgaWYgKHRoaXMuZW5hYmxlZCAmJiAhdGhpcy5faW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9wb3BvdmVyQ2xvc2VkJC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VQb3BvdmVyKCkge1xuICAgIHRoaXMuX3BvcG92ZXJDbG9zZWQkLm5leHQoKTtcblxuICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5fd3JhcHBlckVsZW1lbnQgPSBudWxsO1xuXG4gICAgICBpZiAodGhpcy5fcG9wb3ZlclNlcnZpY2UuaGFzQWN0aXZlUG9wb3Zlcikge1xuICAgICAgICB0aGlzLl9wb3BvdmVyU2VydmljZS5jbG9zZSh0aGlzLl9wb3BvdmVyUmVmKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2luaXRpYWxpemVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcG9wb3ZlclJlZiA9IG5ldyBGc1BvcG92ZXJSZWYoe1xuICAgICAgbWF4V2lkdGg6IHRoaXMubWF4V2lkdGgsXG4gICAgICB3cmFwcGVyQ2xhc3M6IHRoaXMud3JhcHBlckNsYXNzLFxuICAgICAgYXV0b1Nob3c6IHRoaXMuYXV0b1Nob3csXG4gICAgICBhdXRvQ2xvc2U6IHRoaXMuYXV0b0Nsb3NlLFxuICAgICAgbG9hZGluZ0RpYW1ldGVyOiB0aGlzLmxvYWRpbmdEaWFtZXRlcixcbiAgICAgIGxvYWRpbmc6IHRoaXMubG9hZGluZyxcbiAgICAgIHNpemU6IHRoaXMuc2l6ZSxcbiAgICAgIHRoZW1lOiB0aGlzLnRoZW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnRyaWdnZXIgPT09ICdjbGljaycpIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuTW91c2VIb3N0Q2xpY2soKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk1vdXNlSG9zdEVudGVyKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLl9saXN0ZW5Sb3V0ZUNoYW5nZSgpO1xuXG4gICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuUm91dGVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5fcm91dGVyLmV2ZW50c1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IHtcbiAgICAgICAgICByZXR1cm4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kO1xuICAgICAgICB9KSxcbiAgICAgICAgcGlwZShcbiAgICAgICAgICB0YWtlVW50aWwoXG4gICAgICAgICAgICB0aGlzLl9kZXN0cm95JFxuICAgICAgICAgICAgICAucGlwZShkZWxheSgyMDApKSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fY2xvc2VQb3BvdmVyKCk7XG4gICAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuTW91c2VIb3N0Q2xpY2soKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycsIHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmVuYWJsZWQpLFxuICAgICAgICB0YXAoKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgdGhpcy5fb3BlblBvcG92ZXIoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9saXN0ZW5Nb3VzZUhvc3RMZWF2ZSQoKSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNsb3NlVGltZXIkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jbG9zZVBvcG92ZXIoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuTW91c2VIb3N0RW50ZXIoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0dWFsTW91c2VTdGF0ZSQgPSBtZXJnZShcbiAgICAgIHRoaXMuX21vdXNlTGVhdmUkLnBpcGUobWFwVG8odHJ1ZSkpLFxuICAgICAgdGhpcy5fbW91c2VFbnRlciQucGlwZShtYXBUbyhmYWxzZSkpLFxuICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgoZmFsc2UpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgKTtcblxuICAgIHRoaXMuX21vdXNlRW50ZXIkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZW5hYmxlZCksXG4gICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuICF0aGlzLl93cmFwcGVyRWxlbWVudDtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcG9wb3ZlclNlcnZpY2Uuc2V0QWN0aXZlUG9wb3ZlckdVSUQodGhpcy5fZ3VpZCk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5vcGVuVGltZXIkKSxcbiAgICAgICAgLy8gd2UgaGF2ZSB0byBjaGVjayB0aGF0IGFmdGVyIGFsbCBkZWxheXMgbW91c2Ugc3RpbGwgb3ZlciBhbiBlbGVtZW5cbiAgICAgICAgd2l0aExhdGVzdEZyb20oYWN0dWFsTW91c2VTdGF0ZSQpLFxuICAgICAgICBmaWx0ZXIoKFtfLCBtb3VzZUxlYXZlXSkgPT4ge1xuICAgICAgICAgIHJldHVybiAhbW91c2VMZWF2ZTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9vcGVuUG9wb3ZlcigpKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX2xpc3Rlbk1vdXNlSG9zdExlYXZlJCgpKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY2xvc2VUaW1lciQpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5fY2xvc2VQb3BvdmVyKCkpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLl9jbG9zZVBvcG92ZXIoKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9vcGVuUG9wb3ZlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSAnbW91c2VvdmVyJyAmJiB0aGlzLl9wb3BvdmVyU2VydmljZS5hY3RpdmVFbGVtZW50R1VJRCAhPT0gdGhpcy5fZ3VpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2hvc3RCb3VuZHMgPSB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICBpZiAodGhpcy50ZW1wbGF0ZSkge1xuICAgICAgICB0aGlzLl93cmFwcGVyRWxlbWVudCA9IHRoaXMuX3BvcG92ZXJTZXJ2aWNlLm9wZW5Qb3BvdmVyKFxuICAgICAgICAgIHRoaXMuX2VsUmVmLFxuICAgICAgICAgIHRoaXMudGVtcGxhdGUsXG4gICAgICAgICAgdGhpcy5kYXRhLFxuICAgICAgICAgIHRoaXMuX3BvcG92ZXJSZWYsXG4gICAgICAgICAgdGhpcy5wb3NpdGlvblxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fd3JhcHBlckVsZW1lbnQgPSB0aGlzLl9wb3BvdmVyU2VydmljZS5vcGVuUG9wb3ZlcihcbiAgICAgICAgICB0aGlzLl9lbFJlZixcbiAgICAgICAgICB0aGlzLnRleHQsXG4gICAgICAgICAgdGhpcy5kYXRhLFxuICAgICAgICAgIHRoaXMuX3BvcG92ZXJSZWYsXG4gICAgICAgICAgdGhpcy5wb3NpdGlvblxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuTW91c2VIb3N0TGVhdmUkKCk6IE9ic2VydmFibGU8TW91c2VFdmVudD4ge1xuICAgIGNvbnN0IG1vdXNlTW92ZSQgPSB0aGlzLl9tb3VzZU1vdmUkXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5fd3JhcHBlckVsZW1lbnQpLFxuICAgICAgICBmaWx0ZXIoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX3BvcG92ZXJSZWYuYXV0b0Nsb3NlICYmIHRoaXMuX21vdXNlTGVmdFRoZVRhcmdldHMoZXZlbnQpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICBjb25zdCBtb3VzZUNsaWNrJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKTtcblxuICAgIHJldHVybiBtZXJnZShcbiAgICAgIG1vdXNlTW92ZSQsXG4gICAgICBtb3VzZUNsaWNrJCxcbiAgICApO1xuICAgIC8vXG4gICAgLy8gcmV0dXJuIHRoaXMuX21vdXNlTGVhdmUkXG4gICAgLy8gICAucGlwZShcbiAgICAvLyAgICAgLy9cbiAgICAvLyAgICAgdGltZW91dFdpdGgoMjAwLCBtb3VzZU1vdmUkKSxcbiAgICAvLyAgICk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBtb3VzZSBsZWZ0IHRhcmdldCBvciBwb3BvdmVyIHJlY3RzXG4gIHByaXZhdGUgX21vdXNlTGVmdFRoZVRhcmdldHMoZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBob3N0Qm91bmRzID0gdGhpcy5faG9zdEJvdW5kcztcbiAgICBjb25zdCBwb3BvdmVyQm91bmRzID0gdGhpcy5fd3JhcHBlckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCBwb2ludEluSG9zdFJlY3QgPSBwb2ludEluUmVjdChcbiAgICAgIGhvc3RCb3VuZHMueCxcbiAgICAgIGhvc3RCb3VuZHMueSxcbiAgICAgIGhvc3RCb3VuZHMueCArIGhvc3RCb3VuZHMud2lkdGgsXG4gICAgICBob3N0Qm91bmRzLnkgKyBob3N0Qm91bmRzLmhlaWdodCxcbiAgICAgIGV2ZW50LngsXG4gICAgICBldmVudC55XG4gICAgKTtcblxuICAgIGNvbnN0IHBvaW50SW5Qb3BvdmVyUmVjdCA9IHBvaW50SW5SZWN0KFxuICAgICAgcG9wb3ZlckJvdW5kcy54LFxuICAgICAgcG9wb3ZlckJvdW5kcy55LFxuICAgICAgcG9wb3ZlckJvdW5kcy54ICsgcG9wb3ZlckJvdW5kcy53aWR0aCxcbiAgICAgIHBvcG92ZXJCb3VuZHMueSArIHBvcG92ZXJCb3VuZHMuaGVpZ2h0LFxuICAgICAgZXZlbnQueCxcbiAgICAgIGV2ZW50LnlcbiAgICApO1xuXG4gICAgcmV0dXJuICFwb2ludEluSG9zdFJlY3QgJiYgIXBvaW50SW5Qb3BvdmVyUmVjdDtcbiAgfVxufVxuIl19
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2RpcmVjdGl2ZXMvcG9wb3Zlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUdOLFFBQVEsRUFDUixXQUFXLEVBQ1gsV0FBVyxFQUNYLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFDTCxZQUFZLEVBQ1osS0FBSyxFQUNMLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBU3BELE1BQU0sT0FBTyxrQkFBa0I7SUF1RW5CO0lBQ0E7SUFDQTtJQUNZO0lBeEVkLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFHekIsSUFBSSxDQUFTO0lBR2IsUUFBUSxDQUFtQjtJQUczQixJQUFJLENBQU07SUFHVixVQUFVLEdBQUcsR0FB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c0JBRFYsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUtDLFVBQVU7c0JBRmhCLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUl4QixRQUFRO3NCQURkLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBS0MsT0FBTztzQkFGYixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBEaXJlY3RpdmUsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBmcm9tRXZlbnQsIHBpcGUsIFN1YmplY3QsIHRpbWVyLCBPYnNlcnZhYmxlLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGVib3VuY2VUaW1lLFxuICBkZWxheSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1hcFRvLFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGd1aWQgfSBmcm9tICdAZmlyZXN0aXRjaC9jb21tb24nO1xuXG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJy4uL2VudW1zL3Bvc2l0aW9uJztcbmltcG9ydCB7IEZzUG9wb3ZlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wb3BvdmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgcG9pbnRJblJlY3QgfSBmcm9tICcuLi9oZWxwZXJzL3BvaW50LWluLXJlY3QnO1xuaW1wb3J0IHsgRnNQb3BvdmVyUmVmIH0gZnJvbSAnLi4vY2xhc3MvcG9wb3Zlci1yZWYnO1xuXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmc1BvcG92ZXJdJyxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmcy1wb3BvdmVyJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgRnNQb3BvdmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfZ3VpZCA9IGd1aWQoJ3h4eHh4eHgnKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdGV4dDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0YTogYW55O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsZWF2ZURlbGF5ID0gMTAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93RGVsYXkgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhXaWR0aCA9IDI1MDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgd3JhcHBlckNsYXNzOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9TaG93ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXV0b0Nsb3NlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbG9hZGluZ0RpYW1ldGVyID0gMjA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaW5kaWNhdGlvbicpXG4gIHB1YmxpYyBpbmRpY2F0aW9uID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcG9zaXRpb246IFBvc2l0aW9uID0gUG9zaXRpb24uU291dGg7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnID0gJ2xpZ2h0JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2l6ZTogJ3RpbnknIHwgJ3NtYWxsJyB8ICdub3JtYWwnID0gJ25vcm1hbCc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRyaWdnZXI6ICdjbGljaycgfCAnbW91c2VvdmVyJyA9ICdtb3VzZW92ZXInO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnMtcG9wb3Zlci1lbmFibGVkJylcbiAgcHVibGljIGVuYWJsZWQgPSB0cnVlO1xuXG4gIHByaXZhdGUgX2luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfcG9wb3ZlclJlZjogRnNQb3BvdmVyUmVmO1xuICBwcml2YXRlIF93cmFwcGVyRWxlbWVudDogRWxlbWVudDtcbiAgcHJpdmF0ZSBfaG9zdEJvdW5kczogRE9NUmVjdDtcblxuICBwcml2YXRlIF9tb3VzZUVudGVyJDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PjtcbiAgcHJpdmF0ZSBfbW91c2VNb3ZlJDogT2JzZXJ2YWJsZTxFdmVudD47XG4gIHByaXZhdGUgX21vdXNlTGVhdmUkOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+O1xuXG4gIHByaXZhdGUgX3BvcG92ZXJDbG9zZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2VsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX3BvcG92ZXJTZXJ2aWNlOiBGc1BvcG92ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICApIHtcbiAgICB0aGlzLl9tb3VzZUVudGVyJCA9IGZyb21FdmVudCh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCAnbW91c2VlbnRlcicpO1xuICAgIHRoaXMuX21vdXNlTW92ZSQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgdGhpcy5fbW91c2VMZWF2ZSQgPSBmcm9tRXZlbnQodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3BlblRpbWVyJCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aW1lcih0aGlzLnNob3dEZWxheSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsb3NlVGltZXIkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRpbWVyKHRoaXMubGVhdmVEZWxheSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZW5hYmxlZCkge1xuICAgICAgdGhpcy5faW5pdGlhbGl6ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuZW5hYmxlZD8uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmVuYWJsZWQ/LnByZXZpb3VzVmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLmVuYWJsZWQgJiYgIXRoaXMuX2luaXRpYWxpemVkKSB7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fcG9wb3ZlckNsb3NlZCQubmV4dChudWxsKTtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VQb3BvdmVyKCkge1xuICAgIHRoaXMuX3BvcG92ZXJDbG9zZWQkLm5leHQobnVsbCk7XG5cbiAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMuX3dyYXBwZXJFbGVtZW50ID0gbnVsbDtcblxuICAgICAgaWYgKHRoaXMuX3BvcG92ZXJTZXJ2aWNlLmhhc0FjdGl2ZVBvcG92ZXIpIHtcbiAgICAgICAgdGhpcy5fcG9wb3ZlclNlcnZpY2UuY2xvc2UodGhpcy5fcG9wb3ZlclJlZik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0aWFsaXplKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbml0aWFsaXplZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3BvcG92ZXJSZWYgPSBuZXcgRnNQb3BvdmVyUmVmKHtcbiAgICAgIG1heFdpZHRoOiB0aGlzLm1heFdpZHRoLFxuICAgICAgd3JhcHBlckNsYXNzOiB0aGlzLndyYXBwZXJDbGFzcyxcbiAgICAgIGF1dG9TaG93OiB0aGlzLmF1dG9TaG93LFxuICAgICAgYXV0b0Nsb3NlOiB0aGlzLmF1dG9DbG9zZSxcbiAgICAgIGxvYWRpbmdEaWFtZXRlcjogdGhpcy5sb2FkaW5nRGlhbWV0ZXIsXG4gICAgICBsb2FkaW5nOiB0aGlzLmxvYWRpbmcsXG4gICAgICBzaXplOiB0aGlzLnNpemUsXG4gICAgICB0aGVtZTogdGhpcy50aGVtZSxcbiAgICB9KTtcblxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy50cmlnZ2VyID09PSAnY2xpY2snKSB7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk1vdXNlSG9zdENsaWNrKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9saXN0ZW5Nb3VzZUhvc3RFbnRlcigpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fbGlzdGVuUm91dGVDaGFuZ2UoKTtcblxuICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlblJvdXRlQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX3JvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZDtcbiAgICAgICAgfSksXG4gICAgICAgIHBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgICAgdGhpcy5fZGVzdHJveSRcbiAgICAgICAgICAgICAgLnBpcGUoZGVsYXkoMjAwKSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2Nsb3NlUG9wb3ZlcigpO1xuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3Rlbk1vdXNlSG9zdENsaWNrKCk6IHZvaWQge1xuICAgIGZyb21FdmVudCh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5lbmFibGVkKSxcbiAgICAgICAgdGFwKChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgIHRoaXMuX29wZW5Qb3BvdmVyKCk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fbGlzdGVuTW91c2VIb3N0TGVhdmUkKCkpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jbG9zZVRpbWVyJCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fY2xvc2VQb3BvdmVyKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3Rlbk1vdXNlSG9zdEVudGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdHVhbE1vdXNlU3RhdGUkID0gbWVyZ2UoXG4gICAgICB0aGlzLl9tb3VzZUxlYXZlJC5waXBlKG1hcFRvKHRydWUpKSxcbiAgICAgIHRoaXMuX21vdXNlRW50ZXIkLnBpcGUobWFwVG8oZmFsc2UpKSxcbiAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKGZhbHNlKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICk7XG5cbiAgICB0aGlzLl9tb3VzZUVudGVyJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmVuYWJsZWQpLFxuICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiAhdGhpcy5fd3JhcHBlckVsZW1lbnQ7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3BvcG92ZXJTZXJ2aWNlLnNldEFjdGl2ZVBvcG92ZXJHVUlEKHRoaXMuX2d1aWQpO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMub3BlblRpbWVyJCksXG4gICAgICAgIC8vIHdlIGhhdmUgdG8gY2hlY2sgdGhhdCBhZnRlciBhbGwgZGVsYXlzIG1vdXNlIHN0aWxsIG92ZXIgYW4gZWxlbWVuXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKGFjdHVhbE1vdXNlU3RhdGUkKSxcbiAgICAgICAgZmlsdGVyKChbXywgbW91c2VMZWF2ZV0pID0+IHtcbiAgICAgICAgICByZXR1cm4gIW1vdXNlTGVhdmU7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5fb3BlblBvcG92ZXIoKSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9saXN0ZW5Nb3VzZUhvc3RMZWF2ZSQoKSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNsb3NlVGltZXIkKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX2Nsb3NlUG9wb3ZlcigpKSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5fY2xvc2VQb3BvdmVyKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb3BlblBvcG92ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gJ21vdXNlb3ZlcicgJiYgdGhpcy5fcG9wb3ZlclNlcnZpY2UuYWN0aXZlRWxlbWVudEdVSUQgIT09IHRoaXMuX2d1aWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9ob3N0Qm91bmRzID0gdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgaWYgKHRoaXMudGVtcGxhdGUpIHtcbiAgICAgICAgdGhpcy5fd3JhcHBlckVsZW1lbnQgPSB0aGlzLl9wb3BvdmVyU2VydmljZS5vcGVuUG9wb3ZlcihcbiAgICAgICAgICB0aGlzLl9lbFJlZixcbiAgICAgICAgICB0aGlzLnRlbXBsYXRlLFxuICAgICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgICB0aGlzLl9wb3BvdmVyUmVmLFxuICAgICAgICAgIHRoaXMucG9zaXRpb25cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3dyYXBwZXJFbGVtZW50ID0gdGhpcy5fcG9wb3ZlclNlcnZpY2Uub3BlblBvcG92ZXIoXG4gICAgICAgICAgdGhpcy5fZWxSZWYsXG4gICAgICAgICAgdGhpcy50ZXh0LFxuICAgICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgICB0aGlzLl9wb3BvdmVyUmVmLFxuICAgICAgICAgIHRoaXMucG9zaXRpb25cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3Rlbk1vdXNlSG9zdExlYXZlJCgpOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+IHtcbiAgICBjb25zdCBtb3VzZU1vdmUkID0gdGhpcy5fbW91c2VNb3ZlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICAgIGZpbHRlcigoKSA9PiAhIXRoaXMuX3dyYXBwZXJFbGVtZW50KSxcbiAgICAgICAgZmlsdGVyKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9wb3BvdmVyUmVmLmF1dG9DbG9zZSAmJiB0aGlzLl9tb3VzZUxlZnRUaGVUYXJnZXRzKGV2ZW50KTtcbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgY29uc3QgbW91c2VDbGljayQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJyk7XG5cbiAgICByZXR1cm4gbWVyZ2UoXG4gICAgICBtb3VzZU1vdmUkLFxuICAgICAgbW91c2VDbGljayQsXG4gICAgKTtcbiAgICAvL1xuICAgIC8vIHJldHVybiB0aGlzLl9tb3VzZUxlYXZlJFxuICAgIC8vICAgLnBpcGUoXG4gICAgLy8gICAgIC8vXG4gICAgLy8gICAgIHRpbWVvdXRXaXRoKDIwMCwgbW91c2VNb3ZlJCksXG4gICAgLy8gICApO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgbW91c2UgbGVmdCB0YXJnZXQgb3IgcG9wb3ZlciByZWN0c1xuICBwcml2YXRlIF9tb3VzZUxlZnRUaGVUYXJnZXRzKGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgaG9zdEJvdW5kcyA9IHRoaXMuX2hvc3RCb3VuZHM7XG4gICAgY29uc3QgcG9wb3ZlckJvdW5kcyA9IHRoaXMuX3dyYXBwZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgcG9pbnRJbkhvc3RSZWN0ID0gcG9pbnRJblJlY3QoXG4gICAgICBob3N0Qm91bmRzLngsXG4gICAgICBob3N0Qm91bmRzLnksXG4gICAgICBob3N0Qm91bmRzLnggKyBob3N0Qm91bmRzLndpZHRoLFxuICAgICAgaG9zdEJvdW5kcy55ICsgaG9zdEJvdW5kcy5oZWlnaHQsXG4gICAgICBldmVudC54LFxuICAgICAgZXZlbnQueVxuICAgICk7XG5cbiAgICBjb25zdCBwb2ludEluUG9wb3ZlclJlY3QgPSBwb2ludEluUmVjdChcbiAgICAgIHBvcG92ZXJCb3VuZHMueCxcbiAgICAgIHBvcG92ZXJCb3VuZHMueSxcbiAgICAgIHBvcG92ZXJCb3VuZHMueCArIHBvcG92ZXJCb3VuZHMud2lkdGgsXG4gICAgICBwb3BvdmVyQm91bmRzLnkgKyBwb3BvdmVyQm91bmRzLmhlaWdodCxcbiAgICAgIGV2ZW50LngsXG4gICAgICBldmVudC55XG4gICAgKTtcblxuICAgIHJldHVybiAhcG9pbnRJbkhvc3RSZWN0ICYmICFwb2ludEluUG9wb3ZlclJlY3Q7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -6,16 +6,16 @@ import { FsPopoverWrapperComponent } from './components/popover-wrapper/popover-
|
|
|
6
6
|
import { FsPopoverDirective } from './directives/popover.directive';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class FsPopoverModule {
|
|
9
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverModule, declarations: [FsPopoverComponent,
|
|
11
11
|
FsPopoverWrapperComponent,
|
|
12
12
|
FsPopoverDirective], imports: [CommonModule,
|
|
13
13
|
PortalModule], exports: [FsPopoverComponent,
|
|
14
14
|
FsPopoverDirective] });
|
|
15
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
15
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverModule, imports: [CommonModule,
|
|
16
16
|
PortalModule] });
|
|
17
17
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverModule, decorators: [{
|
|
19
19
|
type: NgModule,
|
|
20
20
|
args: [{
|
|
21
21
|
imports: [
|
|
@@ -53,4 +53,4 @@ function createBasePopupPositionStrategy(el, overlay) {
|
|
|
53
53
|
.withFlexibleDimensions(false)
|
|
54
54
|
.withViewportMargin(4);
|
|
55
55
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXBvc2l0aW9uLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9oZWxwZXJzL2NyZWF0ZS1wb3NpdGlvbi1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHL0MsTUFBTSxVQUFVLDJCQUEyQixDQUFDLEVBQWMsRUFBRSxPQUFnQixFQUFFLFFBQWtCO0lBRTlGLElBQUksUUFBUSxHQUErQixRQUFRLENBQUM7SUFDcEQsSUFBSSxRQUFRLEdBQWdDLFFBQVEsQ0FBQztJQUVyRCxJQUFJLE9BQU8sR0FBK0IsUUFBUSxDQUFDO0lBQ25ELElBQUksT0FBTyxHQUFnQyxRQUFRLENBQUM7SUFFcEQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztJQUVoQixJQUFJLFVBQVUsR0FBYSxFQUFFLENBQUM7SUFHNUIsUUFBUSxRQUFRLEVBQUUsQ0FBQztRQUNuQixLQUFLLFFBQVEsQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDaEIsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUNwQixVQUFVLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNiLE1BQU07UUFDUixLQUFLLFFBQVEsQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sR0FBRyxRQUFRLENBQUM7WUFDbkIsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUNqQixVQUFVLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ25DLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDWixNQUFNO1FBQ1IsS0FBSyxRQUFRLENBQUMsSUFBSTtZQUNoQixRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ25CLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDaEIsVUFBVSxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNqQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ1osTUFBTTtRQUNSLEtBQUssUUFBUSxDQUFDLElBQUk7WUFDaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUNqQixPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ2xCLFVBQVUsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDbEMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2IsTUFBTTtJQUNWLENBQUM7SUFFRCxPQUFPLCtCQUErQixDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUM7U0FDaEQsYUFBYSxDQUFDO1FBQ2I7WUFDRSxPQUFPLEVBQUUsT0FBTztZQUNoQixPQUFPLEVBQUUsT0FBTztZQUNoQixRQUFRLEVBQUUsUUFBUTtZQUNsQixRQUFRLEVBQUUsUUFBUTtZQUNsQixPQUFPLEVBQUUsT0FBTztZQUNoQixPQUFPLEVBQUUsT0FBTztZQUNoQixVQUFVLEVBQUUsVUFBVTtTQUN2QjtLQUNGLENBQUMsQ0FBQztBQUNQLENBQUM7QUFHRCxTQUFTLCtCQUErQixDQUFDLEVBQWMsRUFBRSxPQUFnQjtJQUN2RSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUU7U0FDdEIsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1NBQ3ZCLGlCQUFpQixDQUFDLElBQUksQ0FBQztTQUN2QixzQkFBc0IsQ0FBQyxLQUFLLENBQUM7U0FDN0Isa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi8uLi9lbnVtcy9wb3NpdGlvbic7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBvcHVwUG9zaXRpb25TdHJhdGVneShlbDogRWxlbWVudFJlZiwgb3ZlcmxheTogT3ZlcmxheSwgcG9zaXRpb246IFBvc2l0aW9uKTogUG9zaXRpb25TdHJhdGVneSB7XG5cbiAgbGV0IG92ZXJsYXlYOiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJyA9ICdjZW50ZXInO1xuICBsZXQgb3ZlcmxheVk6ICd0b3AnIHwgJ2NlbnRlcicgfCAnYm90dG9tJyA9ICdjZW50ZXInO1xuXG4gIGxldCBvcmlnaW5YOiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJyA9ICdjZW50ZXInO1xuICBsZXQgb3JpZ2luWTogJ3RvcCcgfCAnY2VudGVyJyB8ICdib3R0b20nID0gJ2NlbnRlcic7XG5cbiAgbGV0IG9mZnNldFggPSAwO1xuICBsZXQgb2Zmc2V0WSA9IDA7XG5cbiAgbGV0IHBhbmVsQ2xhc3M6IHN0cmluZ1tdID0gW107XG5cblxuICAgIHN3aXRjaCAocG9zaXRpb24pIHtcbiAgICBjYXNlIFBvc2l0aW9uLk5vcnRoOlxuICAgICAgb3JpZ2luWSA9ICd0b3AnO1xuICAgICAgb3ZlcmxheVkgPSAnYm90dG9tJztcbiAgICAgIHBhbmVsQ2xhc3MgPSBbJ2ZzLXBvcG92ZXItdG9wJ107XG4gICAgICBvZmZzZXRZID0gLTg7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFBvc2l0aW9uLlNvdXRoOlxuICAgICAgb3JpZ2luWSA9ICdib3R0b20nO1xuICAgICAgb3ZlcmxheVkgPSAndG9wJztcbiAgICAgIHBhbmVsQ2xhc3MgPSBbJ2ZzLXBvcG92ZXItYm90dG9tJ107XG4gICAgICBvZmZzZXRZID0gODtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgUG9zaXRpb24uRWFzdDpcbiAgICAgIG92ZXJsYXlYID0gJ3N0YXJ0JztcbiAgICAgIG9yaWdpblggPSAnZW5kJztcbiAgICAgIHBhbmVsQ2xhc3MgPSBbJ2ZzLXBvcG92ZXItbGVmdCddO1xuICAgICAgb2Zmc2V0WCA9IDg7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFBvc2l0aW9uLldlc3Q6XG4gICAgICBvdmVybGF5WCA9ICdlbmQnO1xuICAgICAgb3JpZ2luWCA9ICdzdGFydCc7XG4gICAgICBwYW5lbENsYXNzID0gWydmcy1wb3BvdmVyLXJpZ2h0J107XG4gICAgICBvZmZzZXRYID0gLTg7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVCYXNlUG9wdXBQb3NpdGlvblN0cmF0ZWd5KGVsLCBvdmVybGF5KVxuICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgIHtcbiAgICAgICAgb3JpZ2luWDogb3JpZ2luWCxcbiAgICAgICAgb3JpZ2luWTogb3JpZ2luWSxcbiAgICAgICAgb3ZlcmxheVg6IG92ZXJsYXlYLFxuICAgICAgICBvdmVybGF5WTogb3ZlcmxheVksXG4gICAgICAgIG9mZnNldFg6IG9mZnNldFgsXG4gICAgICAgIG9mZnNldFk6IG9mZnNldFksXG4gICAgICAgIHBhbmVsQ2xhc3M6IHBhbmVsQ2xhc3MsXG4gICAgICB9XG4gICAgXSk7XG59XG5cblxuZnVuY3Rpb24gY3JlYXRlQmFzZVBvcHVwUG9zaXRpb25TdHJhdGVneShlbDogRWxlbWVudFJlZiwgb3ZlcmxheTogT3ZlcmxheSk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XG4gIHJldHVybiBvdmVybGF5LnBvc2l0aW9uKClcbiAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhlbClcbiAgICAud2l0aEdyb3dBZnRlck9wZW4odHJ1ZSlcbiAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAud2l0aFZpZXdwb3J0TWFyZ2luKDQpO1xufVxuIl19
|
|
@@ -56,13 +56,13 @@ export class FsPopoverService {
|
|
|
56
56
|
const containerPortal = new ComponentPortal(component, void 0, createInjector(popoverRef, this._injector));
|
|
57
57
|
return overlayRef.attach(containerPortal);
|
|
58
58
|
}
|
|
59
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
60
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
59
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverService, deps: [{ token: i0.Injector }, { token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
60
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverService, providedIn: 'root' });
|
|
61
61
|
}
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverService, decorators: [{
|
|
63
63
|
type: Injectable,
|
|
64
64
|
args: [{
|
|
65
65
|
providedIn: 'root',
|
|
66
66
|
}]
|
|
67
|
-
}], ctorParameters:
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.Overlay }] });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlcy9wb3BvdmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlFLE9BQU8sRUFFTCxPQUFPLEdBRVIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJdEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDcEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7QUFPeEUsTUFBTSxPQUFPLGdCQUFnQjtJQU1qQjtJQUNBO0lBTEYsY0FBYyxDQUF3QjtJQUN0QyxrQkFBa0IsQ0FBUztJQUVuQyxZQUNVLFNBQW1CLEVBQ25CLFFBQWlCO1FBRGpCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBUztJQUN4QixDQUFDO0lBRUosSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVNLG9CQUFvQixDQUFDLEtBQWE7UUFDdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBa0JNLFdBQVcsQ0FDaEIsRUFBYyxFQUNkLE9BQWtDLEVBQ2xDLElBQVMsRUFDVCxVQUF3QixFQUN4QixRQUFrQjtRQUdsQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDNUMsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx5QkFBeUIsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFaEcsSUFBSSxPQUFPLFlBQVksV0FBVyxFQUFFLENBQUM7WUFDbkMsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUV0RSxZQUFZLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdELENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsVUFBVSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFFbkMsSUFBSSxDQUFDLGNBQWMsR0FBRztZQUNwQixVQUFVO1lBQ1YsVUFBVTtTQUNYLENBQUM7UUFFRixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBMkIsSUFBSTtRQUMxQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2xELFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUN4QixTQUFtRCxFQUNuRCxVQUFzQixFQUN0QixVQUF3QjtRQUV4QixNQUFNLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FDekMsU0FBUyxFQUNULEtBQUssQ0FBQyxFQUNOLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMzQyxDQUFDO1FBRUYsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7d0dBM0ZVLGdCQUFnQjs0R0FBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBDb21wb25lbnRUeXBlLFxuICBPdmVybGF5LFxuICBPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJy4vLi4vZW51bXMvcG9zaXRpb24nO1xuaW1wb3J0IHsgRnNQb3BvdmVyUmVmIH0gZnJvbSAnLi4vY2xhc3MvcG9wb3Zlci1yZWYnO1xuaW1wb3J0IHsgRnNQb3BvdmVyV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcG9wb3Zlci13cmFwcGVyL3BvcG92ZXItd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgY3JlYXRlT3ZlcmxheVJlZiB9IGZyb20gJy4uL2hlbHBlcnMvY3JlYXRlLW92ZXJsYXktcmVmJztcbmltcG9ydCB7IGNyZWF0ZUluamVjdG9yIH0gZnJvbSAnLi4vaGVscGVycy9jcmVhdGUtaW5qZWN0b3InO1xuaW1wb3J0IHsgY3JlYXRlVGVtcGF0ZVBvcnRhbCB9IGZyb20gJy4uL2hlbHBlcnMvY3JlYXRlLXRlbXBsYXRlLXBvcnRhbCc7XG5pbXBvcnQgeyBJUG9wb3ZlckFjdGl2ZUVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvcG92ZXItY29uZmlnLmludGVyZmFjZSc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZzUG9wb3ZlclNlcnZpY2Uge1xuXG4gIHByaXZhdGUgX2FjdGl2ZUVsZW1lbnQ6IElQb3BvdmVyQWN0aXZlRWxlbWVudDtcbiAgcHJpdmF0ZSBfYWN0aXZlRWxlbWVudEdVSUQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgaGFzQWN0aXZlUG9wb3ZlcigpIHtcbiAgICByZXR1cm4gISF0aGlzLl9hY3RpdmVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVFbGVtZW50R1VJRCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVFbGVtZW50R1VJRDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmVQb3BvdmVyR1VJRCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYWN0aXZlRWxlbWVudEdVSUQgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuUG9wb3ZlcihcbiAgICBlbDogRWxlbWVudFJlZixcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgZGF0YTogYW55LFxuICAgIHBvcG92ZXJSZWY6IEZzUG9wb3ZlclJlZixcbiAgICBwb3NpdGlvbjogUG9zaXRpb25cbiAgKTogRWxlbWVudDtcblxuICBwdWJsaWMgb3BlblBvcG92ZXIoXG4gICAgZWw6IEVsZW1lbnRSZWYsXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgZGF0YTogYW55LFxuICAgIHBvcG92ZXJSZWY6IEZzUG9wb3ZlclJlZixcbiAgICBwb3NpdGlvbjogUG9zaXRpb25cbiAgKTogRWxlbWVudDtcblxuICBwdWJsaWMgb3BlblBvcG92ZXIoXG4gICAgZWw6IEVsZW1lbnRSZWYsXG4gICAgY29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IHN0cmluZyxcbiAgICBkYXRhOiBhbnksXG4gICAgcG9wb3ZlclJlZjogRnNQb3BvdmVyUmVmLFxuICAgIHBvc2l0aW9uOiBQb3NpdGlvblxuICApOiBFbGVtZW50IHtcblxuICAgIGlmICh0aGlzLl9hY3RpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLmNsb3NlKHRoaXMuX2FjdGl2ZUVsZW1lbnQucG9wb3ZlclJlZilcbiAgICB9XG5cbiAgICBjb25zdCBvdmVybGF5UmVmID0gY3JlYXRlT3ZlcmxheVJlZihlbCwgdGhpcy5fb3ZlcmxheSwgcG9zaXRpb24pO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHRoaXMuX29wZW5Qb3J0YWxQcmV2aWV3KEZzUG9wb3ZlcldyYXBwZXJDb21wb25lbnQsIG92ZXJsYXlSZWYsIHBvcG92ZXJSZWYpO1xuXG4gICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgY29uc3QgdGVtcGxhdGVQb3J0YWwgPSBjcmVhdGVUZW1wYXRlUG9ydGFsKGNvbnRlbnQsIHBvcG92ZXJSZWYsIGRhdGEpO1xuXG4gICAgICBjb250YWluZXJSZWYuaW5zdGFuY2UuYXR0YWNoVGVtcGxhdGVQb3J0YWwodGVtcGxhdGVQb3J0YWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250YWluZXJSZWYuaW5zdGFuY2Uuc2V0VGV4dHVhbENvbnRlbnQoY29udGVudCk7XG4gICAgfVxuXG4gICAgcG9wb3ZlclJlZi5vdmVybGF5UmVmID0gb3ZlcmxheVJlZjtcblxuICAgIHRoaXMuX2FjdGl2ZUVsZW1lbnQgPSB7XG4gICAgICBvdmVybGF5UmVmLFxuICAgICAgcG9wb3ZlclJlZixcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbnRhaW5lclJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIGNsb3NlKHBvcG92ZXJSZWY6IEZzUG9wb3ZlclJlZiA9IG51bGwpIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlRWxlbWVudC5wb3BvdmVyUmVmID09PSBwb3BvdmVyUmVmKSB7XG4gICAgICBwb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICB0aGlzLl9hY3RpdmVFbGVtZW50ID0gdm9pZCAwO1xuICAgICAgdGhpcy5fYWN0aXZlRWxlbWVudEdVSUQgPSB2b2lkIDA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb3BlblBvcnRhbFByZXZpZXcoXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEZzUG9wb3ZlcldyYXBwZXJDb21wb25lbnQ+LFxuICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgcG9wb3ZlclJlZjogRnNQb3BvdmVyUmVmLFxuICApIHtcbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsPEZzUG9wb3ZlcldyYXBwZXJDb21wb25lbnQ+KFxuICAgICAgY29tcG9uZW50LFxuICAgICAgdm9pZCAwLFxuICAgICAgY3JlYXRlSW5qZWN0b3IocG9wb3ZlclJlZiwgdGhpcy5faW5qZWN0b3IpLFxuICAgICk7XG5cbiAgICByZXR1cm4gb3ZlcmxheVJlZi5hdHRhY2goY29udGFpbmVyUG9ydGFsKTtcbiAgfVxufVxuIl19
|
|
@@ -149,7 +149,7 @@ class FsPopoverWrapperComponent extends BasePortalOutlet {
|
|
|
149
149
|
}
|
|
150
150
|
ngOnDestroy() {
|
|
151
151
|
this._contentChangesObserver.disconnect();
|
|
152
|
-
this._destroy$.next();
|
|
152
|
+
this._destroy$.next(null);
|
|
153
153
|
this._destroy$.complete();
|
|
154
154
|
}
|
|
155
155
|
/**
|
|
@@ -176,7 +176,7 @@ class FsPopoverWrapperComponent extends BasePortalOutlet {
|
|
|
176
176
|
this.content = content;
|
|
177
177
|
}
|
|
178
178
|
updatePosition() {
|
|
179
|
-
this._updatePosition.next();
|
|
179
|
+
this._updatePosition.next(null);
|
|
180
180
|
}
|
|
181
181
|
_watchMousePosition() {
|
|
182
182
|
const componentVisibilityChange$ = this.popoverRef.componentVisible$
|
|
@@ -212,15 +212,15 @@ class FsPopoverWrapperComponent extends BasePortalOutlet {
|
|
|
212
212
|
this.popoverRef.updatePosition();
|
|
213
213
|
});
|
|
214
214
|
}
|
|
215
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
216
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
215
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverWrapperComponent, deps: [{ token: FsPopoverRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
216
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FsPopoverWrapperComponent, selector: "fs-popover-wrapper", host: { classAttribute: "fs-popover-wrapper" }, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }, { propertyName: "spinner", first: true, predicate: ["spinner"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"wrapper\" [ngClass]=\"{\n 'theme-dark' : popoverRef.theme === 'dark',\n 'size-tiny': popoverRef.size === 'tiny',\n 'size-small': popoverRef.size === 'small',\n 'hidden': !(popoverRef.componentVisible$ | async)\n }\">\n <div class=\"mat-elevation-z4 popover-content\">\n <ng-container *ngIf=\"content\">\n {{content}}\n </ng-container>\n\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"fs-popover-arrow light\"></div>\n <div class=\"fs-popover-arrow dark\"></div>\n</div>\n\n<div class=\"loading-spinner\"\n #spinner\n *ngIf=\"popoverRef.loading && !(popoverRef.componentVisible$ | async)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" [attr.width]=\"popoverRef.loadingDiameter\" [attr.height]=\"popoverRef.loadingDiameter\" viewBox=\"0 0 42 42\" stroke=\"grey\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"3\">\n <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"1s\" repeatCount=\"indefinite\"/>\n </path>\n </g>\n </g>\n </svg>\n</div>\n", styles: [".wrapper{padding:6px;animation:fadeIn ease .2s}.wrapper.hidden{display:none}.wrapper .popover-content{background:#fff;border-radius:4px;padding:8px;color:#1b1b1b;box-sizing:border-box;overflow:hidden}.wrapper.theme-dark .popover-content{background-color:#707070;color:#fff}.wrapper.size-small .popover-content{font-size:80%}.wrapper.size-tiny .popover-content{font-size:70%}.wrapper .fs-popover-arrow{width:0;height:0;font-size:0;line-height:0;position:absolute;z-index:200;z-index:1}.wrapper .fs-popover-arrow.dark{z-index:0}::ng-deep .fs-popover-top .fs-popover-arrow,::ng-deep .fs-popover-bottom .fs-popover-arrow{border-left:10px solid transparent;border-right:10px solid transparent}::ng-deep .fs-popover-left .fs-popover-arrow,::ng-deep .fs-popover-right .fs-popover-arrow{border-top:10px solid transparent;border-bottom:10px solid transparent}::ng-deep .fs-popover-top .fs-popover-arrow{bottom:-3px;left:calc(50% - 10px);border-top:10px solid #fff}::ng-deep .fs-popover-top .fs-popover-arrow.dark{border-top-color:#dfdfdf40;bottom:-4px}::ng-deep .fs-popover-bottom .fs-popover-arrow{top:-3px;left:calc(50% - 10px);border-bottom:10px solid #fff}::ng-deep .fs-popover-bottom .fs-popover-arrow.dark{border-bottom-color:#dfdfdf40;top:-4px}::ng-deep .fs-popover-left .fs-popover-arrow{left:-3px;top:calc(50% - 10px);border-right:10px solid #fff}::ng-deep .fs-popover-left .fs-popover-arrow.dark{border-right-color:#dfdfdf40;left:-4px}::ng-deep .fs-popover-right .fs-popover-arrow{right:-3px;top:calc(50% - 10px);border-left:10px solid #fff}::ng-deep .fs-popover-right .fs-popover-arrow.dark{border-left-color:#dfdfdf40;right:-4px}::ng-deep .fs-popover-bottom .wrapper.theme-dark .fs-popover-arrow{border-bottom-color:#707070}::ng-deep .fs-popover-left .wrapper.theme-dark .fs-popover-arrow{border-right-color:#707070}::ng-deep .fs-popover-right .wrapper.theme-dark .fs-popover-arrow{border-left-color:#707070}::ng-deep .fs-popover-top .wrapper.theme-dark .fs-popover-arrow{border-top-color:#707070}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
217
217
|
}
|
|
218
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverWrapperComponent, decorators: [{
|
|
219
219
|
type: Component,
|
|
220
220
|
args: [{ selector: 'fs-popover-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
221
221
|
'class': 'fs-popover-wrapper',
|
|
222
222
|
}, template: "<div class=\"wrapper\" [ngClass]=\"{\n 'theme-dark' : popoverRef.theme === 'dark',\n 'size-tiny': popoverRef.size === 'tiny',\n 'size-small': popoverRef.size === 'small',\n 'hidden': !(popoverRef.componentVisible$ | async)\n }\">\n <div class=\"mat-elevation-z4 popover-content\">\n <ng-container *ngIf=\"content\">\n {{content}}\n </ng-container>\n\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"fs-popover-arrow light\"></div>\n <div class=\"fs-popover-arrow dark\"></div>\n</div>\n\n<div class=\"loading-spinner\"\n #spinner\n *ngIf=\"popoverRef.loading && !(popoverRef.componentVisible$ | async)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" [attr.width]=\"popoverRef.loadingDiameter\" [attr.height]=\"popoverRef.loadingDiameter\" viewBox=\"0 0 42 42\" stroke=\"grey\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"3\">\n <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"1s\" repeatCount=\"indefinite\"/>\n </path>\n </g>\n </g>\n </svg>\n</div>\n", styles: [".wrapper{padding:6px;animation:fadeIn ease .2s}.wrapper.hidden{display:none}.wrapper .popover-content{background:#fff;border-radius:4px;padding:8px;color:#1b1b1b;box-sizing:border-box;overflow:hidden}.wrapper.theme-dark .popover-content{background-color:#707070;color:#fff}.wrapper.size-small .popover-content{font-size:80%}.wrapper.size-tiny .popover-content{font-size:70%}.wrapper .fs-popover-arrow{width:0;height:0;font-size:0;line-height:0;position:absolute;z-index:200;z-index:1}.wrapper .fs-popover-arrow.dark{z-index:0}::ng-deep .fs-popover-top .fs-popover-arrow,::ng-deep .fs-popover-bottom .fs-popover-arrow{border-left:10px solid transparent;border-right:10px solid transparent}::ng-deep .fs-popover-left .fs-popover-arrow,::ng-deep .fs-popover-right .fs-popover-arrow{border-top:10px solid transparent;border-bottom:10px solid transparent}::ng-deep .fs-popover-top .fs-popover-arrow{bottom:-3px;left:calc(50% - 10px);border-top:10px solid #fff}::ng-deep .fs-popover-top .fs-popover-arrow.dark{border-top-color:#dfdfdf40;bottom:-4px}::ng-deep .fs-popover-bottom .fs-popover-arrow{top:-3px;left:calc(50% - 10px);border-bottom:10px solid #fff}::ng-deep .fs-popover-bottom .fs-popover-arrow.dark{border-bottom-color:#dfdfdf40;top:-4px}::ng-deep .fs-popover-left .fs-popover-arrow{left:-3px;top:calc(50% - 10px);border-right:10px solid #fff}::ng-deep .fs-popover-left .fs-popover-arrow.dark{border-right-color:#dfdfdf40;left:-4px}::ng-deep .fs-popover-right .fs-popover-arrow{right:-3px;top:calc(50% - 10px);border-left:10px solid #fff}::ng-deep .fs-popover-right .fs-popover-arrow.dark{border-left-color:#dfdfdf40;right:-4px}::ng-deep .fs-popover-bottom .wrapper.theme-dark .fs-popover-arrow{border-bottom-color:#707070}::ng-deep .fs-popover-left .wrapper.theme-dark .fs-popover-arrow{border-right-color:#707070}::ng-deep .fs-popover-right .wrapper.theme-dark .fs-popover-arrow{border-left-color:#707070}::ng-deep .fs-popover-top .wrapper.theme-dark .fs-popover-arrow{border-top-color:#707070}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
|
|
223
|
-
}], ctorParameters:
|
|
223
|
+
}], ctorParameters: () => [{ type: FsPopoverRef }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }], propDecorators: { _portalOutlet: [{
|
|
224
224
|
type: ViewChild,
|
|
225
225
|
args: [CdkPortalOutlet, { static: true }]
|
|
226
226
|
}], spinner: [{
|
|
@@ -353,15 +353,15 @@ class FsPopoverService {
|
|
|
353
353
|
const containerPortal = new ComponentPortal(component, void 0, createInjector(popoverRef, this._injector));
|
|
354
354
|
return overlayRef.attach(containerPortal);
|
|
355
355
|
}
|
|
356
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
357
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
356
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverService, deps: [{ token: i0.Injector }, { token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
357
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverService, providedIn: 'root' });
|
|
358
358
|
}
|
|
359
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
359
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverService, decorators: [{
|
|
360
360
|
type: Injectable,
|
|
361
361
|
args: [{
|
|
362
362
|
providedIn: 'root',
|
|
363
363
|
}]
|
|
364
|
-
}], ctorParameters:
|
|
364
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.Overlay }] });
|
|
365
365
|
|
|
366
366
|
function pointInRect(x1, y1, x2, y2, px, py) {
|
|
367
367
|
return (px > x1 && px < x2) && (py > y1 && py < y2);
|
|
@@ -394,9 +394,9 @@ class FsPopoverDirective {
|
|
|
394
394
|
_popoverRef;
|
|
395
395
|
_wrapperElement;
|
|
396
396
|
_hostBounds;
|
|
397
|
-
_mouseEnter
|
|
398
|
-
_mouseMove
|
|
399
|
-
_mouseLeave
|
|
397
|
+
_mouseEnter$;
|
|
398
|
+
_mouseMove$;
|
|
399
|
+
_mouseLeave$;
|
|
400
400
|
_popoverClosed$ = new Subject();
|
|
401
401
|
_destroy$ = new Subject();
|
|
402
402
|
constructor(_elRef, _popoverService, _ngZone, _router) {
|
|
@@ -404,6 +404,9 @@ class FsPopoverDirective {
|
|
|
404
404
|
this._popoverService = _popoverService;
|
|
405
405
|
this._ngZone = _ngZone;
|
|
406
406
|
this._router = _router;
|
|
407
|
+
this._mouseEnter$ = fromEvent(this._elRef.nativeElement, 'mouseenter');
|
|
408
|
+
this._mouseMove$ = fromEvent(document, 'mousemove', { passive: true });
|
|
409
|
+
this._mouseLeave$ = fromEvent(this._elRef.nativeElement, 'mouseleave');
|
|
407
410
|
}
|
|
408
411
|
get openTimer$() {
|
|
409
412
|
return timer(this.showDelay);
|
|
@@ -424,11 +427,11 @@ class FsPopoverDirective {
|
|
|
424
427
|
}
|
|
425
428
|
}
|
|
426
429
|
ngOnDestroy() {
|
|
427
|
-
this._popoverClosed$.next();
|
|
428
|
-
this._destroy$.next();
|
|
430
|
+
this._popoverClosed$.next(null);
|
|
431
|
+
this._destroy$.next(null);
|
|
429
432
|
}
|
|
430
433
|
_closePopover() {
|
|
431
|
-
this._popoverClosed$.next();
|
|
434
|
+
this._popoverClosed$.next(null);
|
|
432
435
|
this._ngZone.run(() => {
|
|
433
436
|
this._wrapperElement = null;
|
|
434
437
|
if (this._popoverService.hasActivePopover) {
|
|
@@ -532,10 +535,10 @@ class FsPopoverDirective {
|
|
|
532
535
|
const pointInPopoverRect = pointInRect(popoverBounds.x, popoverBounds.y, popoverBounds.x + popoverBounds.width, popoverBounds.y + popoverBounds.height, event.x, event.y);
|
|
533
536
|
return !pointInHostRect && !pointInPopoverRect;
|
|
534
537
|
}
|
|
535
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
536
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
538
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverDirective, deps: [{ token: i0.ElementRef }, { token: FsPopoverService }, { token: i0.NgZone }, { token: i2$1.Router, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
539
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: FsPopoverDirective, selector: "[fsPopover]", inputs: { text: "text", template: "template", data: "data", leaveDelay: "leaveDelay", showDelay: "showDelay", maxWidth: "maxWidth", wrapperClass: "wrapperClass", autoShow: "autoShow", autoClose: "autoClose", loadingDiameter: "loadingDiameter", loading: "loading", indication: "indication", position: "position", theme: "theme", size: "size", trigger: "trigger", enabled: "enabled" }, host: { properties: { "class.indication": "this.indication", "class.fs-popover-enabled": "this.enabled" }, classAttribute: "fs-popover" }, usesOnChanges: true, ngImport: i0 });
|
|
537
540
|
}
|
|
538
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
541
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverDirective, decorators: [{
|
|
539
542
|
type: Directive,
|
|
540
543
|
args: [{
|
|
541
544
|
selector: '[fsPopover]',
|
|
@@ -543,9 +546,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
543
546
|
'class': 'fs-popover',
|
|
544
547
|
},
|
|
545
548
|
}]
|
|
546
|
-
}], ctorParameters:
|
|
549
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: FsPopoverService }, { type: i0.NgZone }, { type: i2$1.Router, decorators: [{
|
|
547
550
|
type: Optional
|
|
548
|
-
}] }]
|
|
551
|
+
}] }], propDecorators: { text: [{
|
|
549
552
|
type: Input
|
|
550
553
|
}], template: [{
|
|
551
554
|
type: Input
|
|
@@ -588,10 +591,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
588
591
|
}] } });
|
|
589
592
|
|
|
590
593
|
class FsPopoverComponent extends FsPopoverDirective {
|
|
591
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
592
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
594
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
595
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FsPopoverComponent, selector: "fs-popover", host: { classAttribute: "fs-popover-component" }, usesInheritance: true, ngImport: i0, template: "<span [ngClass]=\"{'popover-container': enabled}\">\n <ng-content></ng-content>\n</span>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
593
596
|
}
|
|
594
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
597
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverComponent, decorators: [{
|
|
595
598
|
type: Component,
|
|
596
599
|
args: [{ selector: 'fs-popover', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
597
600
|
'class': 'fs-popover-component',
|
|
@@ -599,16 +602,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
599
602
|
}] });
|
|
600
603
|
|
|
601
604
|
class FsPopoverModule {
|
|
602
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
603
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
605
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
606
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverModule, declarations: [FsPopoverComponent,
|
|
604
607
|
FsPopoverWrapperComponent,
|
|
605
608
|
FsPopoverDirective], imports: [CommonModule,
|
|
606
609
|
PortalModule], exports: [FsPopoverComponent,
|
|
607
610
|
FsPopoverDirective] });
|
|
608
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
611
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverModule, imports: [CommonModule,
|
|
609
612
|
PortalModule] });
|
|
610
613
|
}
|
|
611
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
614
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FsPopoverModule, decorators: [{
|
|
612
615
|
type: NgModule,
|
|
613
616
|
args: [{
|
|
614
617
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestitch-popover.mjs","sources":["../../src/app/enums/position.ts","../../src/app/class/popover-ref.ts","../../src/app/components/popover-wrapper/popover-wrapper.component.ts","../../src/app/components/popover-wrapper/popover-wrapper.component.html","../../src/app/helpers/create-position-strategy.ts","../../src/app/helpers/create-overlay-ref.ts","../../src/app/helpers/create-injector.ts","../../src/app/helpers/create-template-portal.ts","../../src/app/services/popover.service.ts","../../src/app/helpers/point-in-rect.ts","../../src/app/directives/popover.directive.ts","../../src/app/components/popover/popover.component.ts","../../src/app/components/popover/popover.component.html","../../src/app/fs-popover.module.ts","../../src/public_api.ts","../../src/firestitch-popover.ts"],"sourcesContent":["export enum Position {\n North = 'north',\n South = 'south',\n East = 'east',\n West = 'west'\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\n\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { IPopoverConfig } from '../interfaces/popover-config.interface';\n\n\nexport class FsPopoverRef {\n\n public overlayRef: OverlayRef;\n\n private readonly _autoShow$ = new BehaviorSubject<boolean>(true);\n private readonly _autoClose$ = new BehaviorSubject<boolean>(true);\n private readonly _componentLoading$ = new BehaviorSubject<boolean>(true);\n private _maxWidth: number;\n private _wrapperClass: string;\n private _loadingDiameter: number;\n private _loading: boolean;\n private _theme: string;\n private _size: string;\n\n constructor(config: IPopoverConfig = {}) {\n this._init(config);\n }\n\n public get loadingDiameter() {\n return this._loadingDiameter;\n }\n\n public get size() {\n return this._size;\n }\n\n public get theme() {\n return this._theme;\n }\n\n public get loading() {\n return this._loading;\n }\n\n public get autoShow$() {\n return this._autoShow$.asObservable();\n }\n\n public get autoShow() {\n return this._autoShow$.getValue();\n }\n\n public set autoShow(value: boolean) {\n this._autoShow$.next(value);\n }\n\n public get autoClose$() {\n return this._autoClose$.asObservable();\n }\n\n public get autoClose() {\n return this._autoClose$.getValue();\n }\n\n public set autoClose(value: boolean) {\n this._autoClose$.next(value);\n }\n\n public get componentVisible$() {\n return combineLatest([\n this.autoShow$,\n this.componentLoading$,\n ]).pipe(\n map(([autoShow, componentLoading]) => {\n return autoShow || !componentLoading;\n })\n )\n }\n\n public get componentLoading$() {\n return this._componentLoading$.asObservable();\n }\n\n public get componentLoading() {\n return this._componentLoading$.getValue();\n }\n\n public get wrapperClass() {\n return this._wrapperClass;\n }\n\n public get maxWidth() {\n return this._maxWidth;\n }\n\n public show() {\n setTimeout(() => {\n this._componentLoading$.next(false);\n setTimeout(() => {\n this.updatePosition();\n });\n });\n }\n\n public close() {\n this.overlayRef.detach();\n this._componentLoading$.next(true);\n }\n\n public updatePosition() {\n this.overlayRef.updatePosition();\n }\n\n private _init(config: IPopoverConfig) {\n this._wrapperClass = config.wrapperClass;\n this._maxWidth = config.maxWidth;\n this._loading = config.loading;\n this._loadingDiameter = config.loadingDiameter;\n this._size = config.size;\n this._theme = config.theme;\n this._autoShow$.next(config.autoShow);\n this._autoClose$.next(config.autoClose);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n ViewChild,\n OnDestroy,\n NgZone,\n OnInit,\n Renderer2,\n} from '@angular/core';\n\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\n\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\n\nimport { FsPopoverRef } from '../../class/popover-ref';\n\n\n@Component({\n selector: 'fs-popover-wrapper',\n templateUrl: 'popover-wrapper.component.html',\n styleUrls: [ 'popover-wrapper.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'fs-popover-wrapper',\n },\n})\nexport class FsPopoverWrapperComponent extends BasePortalOutlet implements OnInit, OnDestroy {\n\n @ViewChild(CdkPortalOutlet, { static: true })\n public _portalOutlet: CdkPortalOutlet;\n\n @ViewChild('spinner')\n public spinner: ElementRef;\n\n public content: string;\n\n private _wrapperClass: string;\n private _contentChangesObserver: MutationObserver;\n private _updatePosition = new Subject<void>();\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n public popoverRef: FsPopoverRef,\n private _el: ElementRef,\n private _zone: NgZone,\n private _renderer: Renderer2,\n ) {\n super();\n this._updateClass();\n\n this.wrapperClass = this.popoverRef.wrapperClass;\n this.maxWidth = this.popoverRef.maxWidth;\n }\n\n public set maxWidth(value: number) {\n this._el.nativeElement.style.maxWidth = value ? value + 'px' : void 0;\n }\n\n public set wrapperClass(value: string) {\n this._wrapperClass = value;\n this._updateClass();\n }\n\n public ngOnInit(): void {\n if (!this.popoverRef.autoShow && this.popoverRef.componentLoading) {\n this._watchMousePosition();\n }\n\n this._observeContentChanges();\n this._listenUpdatePositionRequests();\n }\n\n\n public ngOnDestroy() {\n this._contentChangesObserver.disconnect();\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n /**\n * Attach a TemplatePortal as content to this popover container.\n * @param portal Portal to be attached as the popover content.\n */\n public attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n\n if (this._portalOutlet.hasAttached()) {\n throw Error('Popover template already attached');\n }\n\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n\n\n /**\n * Attach a ComponentPortal as content to this popover container.\n * @param portal Portal to be attached as the popover content.\n */\n public attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n\n if (this._portalOutlet.hasAttached()) {\n throw Error('Popover component already attached');\n }\n\n return this._portalOutlet.attachComponentPortal(portal);\n }\n\n public setTextualContent(content: string): void {\n this.content = content;\n }\n\n public updatePosition() {\n this._updatePosition.next();\n }\n\n private _watchMousePosition() {\n const componentVisibilityChange$ = this.popoverRef.componentVisible$\n .pipe(\n filter((value) => value === true)\n );\n\n this._zone.runOutsideAngular(() => {\n fromEvent(document, 'mousemove')\n .pipe(\n takeUntil(componentVisibilityChange$),\n takeUntil(this._destroy$),\n )\n .subscribe((e: MouseEvent) => {\n this.spinner.nativeElement.style.left = e.x + 'px';\n this.spinner.nativeElement.style.top = (e.y + 20) + 'px';\n });\n });\n }\n\n private _updateClass() {\n if (this._wrapperClass) {\n this._renderer.addClass(this._el.nativeElement, this._wrapperClass);\n }\n }\n\n private _observeContentChanges() {\n const config = {\n childList: true,\n subtree: true\n };\n\n this._contentChangesObserver = new MutationObserver(() => {\n this.updatePosition();\n });\n\n this._contentChangesObserver.observe(this._el.nativeElement, config);\n }\n\n private _listenUpdatePositionRequests() {\n this._updatePosition\n .pipe(\n debounceTime(50),\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.popoverRef.updatePosition();\n })\n }\n}\n","<div class=\"wrapper\" [ngClass]=\"{\n 'theme-dark' : popoverRef.theme === 'dark',\n 'size-tiny': popoverRef.size === 'tiny',\n 'size-small': popoverRef.size === 'small',\n 'hidden': !(popoverRef.componentVisible$ | async)\n }\">\n <div class=\"mat-elevation-z4 popover-content\">\n <ng-container *ngIf=\"content\">\n {{content}}\n </ng-container>\n\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"fs-popover-arrow light\"></div>\n <div class=\"fs-popover-arrow dark\"></div>\n</div>\n\n<div class=\"loading-spinner\"\n #spinner\n *ngIf=\"popoverRef.loading && !(popoverRef.componentVisible$ | async)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" [attr.width]=\"popoverRef.loadingDiameter\" [attr.height]=\"popoverRef.loadingDiameter\" viewBox=\"0 0 42 42\" stroke=\"grey\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"3\">\n <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"1s\" repeatCount=\"indefinite\"/>\n </path>\n </g>\n </g>\n </svg>\n</div>\n","import { ElementRef } from '@angular/core';\nimport { FlexibleConnectedPositionStrategy, Overlay, PositionStrategy } from '@angular/cdk/overlay';\nimport { Position } from './../enums/position';\n\n\nexport function createPopupPositionStrategy(el: ElementRef, overlay: Overlay, position: Position): PositionStrategy {\n\n let overlayX: 'start' | 'center' | 'end' = 'center';\n let overlayY: 'top' | 'center' | 'bottom' = 'center';\n\n let originX: 'start' | 'center' | 'end' = 'center';\n let originY: 'top' | 'center' | 'bottom' = 'center';\n\n let offsetX = 0;\n let offsetY = 0;\n\n let panelClass: string[] = [];\n\n\n switch (position) {\n case Position.North:\n originY = 'top';\n overlayY = 'bottom';\n panelClass = ['fs-popover-top'];\n offsetY = -8;\n break;\n case Position.South:\n originY = 'bottom';\n overlayY = 'top';\n panelClass = ['fs-popover-bottom'];\n offsetY = 8;\n break;\n case Position.East:\n overlayX = 'start';\n originX = 'end';\n panelClass = ['fs-popover-left'];\n offsetX = 8;\n break;\n case Position.West:\n overlayX = 'end';\n originX = 'start';\n panelClass = ['fs-popover-right'];\n offsetX = -8;\n break;\n }\n\n return createBasePopupPositionStrategy(el, overlay)\n .withPositions([\n {\n originX: originX,\n originY: originY,\n overlayX: overlayX,\n overlayY: overlayY,\n offsetX: offsetX,\n offsetY: offsetY,\n panelClass: panelClass,\n }\n ]);\n}\n\n\nfunction createBasePopupPositionStrategy(el: ElementRef, overlay: Overlay): FlexibleConnectedPositionStrategy {\n return overlay.position()\n .flexibleConnectedTo(el)\n .withGrowAfterOpen(true)\n .withFlexibleDimensions(false)\n .withViewportMargin(4);\n}\n","import { ElementRef } from '@angular/core';\nimport { Overlay, OverlayConfig } from '@angular/cdk/overlay';\nimport { createPopupPositionStrategy } from './create-position-strategy';\nimport { Position } from './../enums/position';\n\n\nexport function createOverlayRef(el: ElementRef, overlay: Overlay, position: Position) {\n const config = {\n positionStrategy: createPopupPositionStrategy(el, overlay, position),\n scrollStrategy: overlay.scrollStrategies.reposition(),\n hasBackdrop: false\n };\n\n const overlayConfig = new OverlayConfig(config);\n\n return overlay.create(overlayConfig);\n}\n","import { Injector } from '@angular/core';\nimport { PortalInjector } from '@angular/cdk/portal';\nimport { FsPopoverRef } from '../class/popover-ref';\n\n\nexport function createInjector(popoverRef: FsPopoverRef, parentInjector: Injector) {\n const injectionTokens = new WeakMap<any, any>([\n [FsPopoverRef, popoverRef],\n ]);\n\n return new PortalInjector(parentInjector, injectionTokens);\n}\n","import { TemplateRef } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { FsPopoverRef } from '../class/popover-ref';\n\n\nexport function createTempatePortal(template: TemplateRef<any>, popoverRef: FsPopoverRef, data: any) {\n return new TemplatePortal(\n template,\n void 0,\n { data: data, popover: popoverRef },\n );\n}\n","import { ElementRef, Injectable, Injector, TemplateRef } from '@angular/core';\n\nimport {\n ComponentType,\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\n\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { Position } from './../enums/position';\nimport { FsPopoverRef } from '../class/popover-ref';\nimport { FsPopoverWrapperComponent } from '../components/popover-wrapper/popover-wrapper.component';\nimport { createOverlayRef } from '../helpers/create-overlay-ref';\nimport { createInjector } from '../helpers/create-injector';\nimport { createTempatePortal } from '../helpers/create-template-portal';\nimport { IPopoverActiveElement } from '../interfaces/popover-config.interface';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsPopoverService {\n\n private _activeElement: IPopoverActiveElement;\n private _activeElementGUID: string;\n\n constructor(\n private _injector: Injector,\n private _overlay: Overlay,\n ) {}\n\n public get hasActivePopover() {\n return !!this._activeElement;\n }\n\n public get activeElementGUID(): string {\n return this._activeElementGUID;\n }\n\n public setActivePopoverGUID(value: string) {\n this._activeElementGUID = value;\n }\n\n public openPopover(\n el: ElementRef,\n text: string,\n data: any,\n popoverRef: FsPopoverRef,\n position: Position\n ): Element;\n\n public openPopover(\n el: ElementRef,\n template: TemplateRef<any>,\n data: any,\n popoverRef: FsPopoverRef,\n position: Position\n ): Element;\n\n public openPopover(\n el: ElementRef,\n content: TemplateRef<any> | string,\n data: any,\n popoverRef: FsPopoverRef,\n position: Position\n ): Element {\n\n if (this._activeElement) {\n this.close(this._activeElement.popoverRef)\n }\n\n const overlayRef = createOverlayRef(el, this._overlay, position);\n const containerRef = this._openPortalPreview(FsPopoverWrapperComponent, overlayRef, popoverRef);\n\n if (content instanceof TemplateRef) {\n const templatePortal = createTempatePortal(content, popoverRef, data);\n\n containerRef.instance.attachTemplatePortal(templatePortal);\n } else {\n containerRef.instance.setTextualContent(content);\n }\n\n popoverRef.overlayRef = overlayRef;\n\n this._activeElement = {\n overlayRef,\n popoverRef,\n };\n\n return containerRef.location.nativeElement;\n }\n\n public close(popoverRef: FsPopoverRef = null) {\n if (this._activeElement.popoverRef === popoverRef) {\n popoverRef.close();\n this._activeElement = void 0;\n this._activeElementGUID = void 0;\n }\n }\n\n private _openPortalPreview(\n component: ComponentType<FsPopoverWrapperComponent>,\n overlayRef: OverlayRef,\n popoverRef: FsPopoverRef,\n ) {\n const containerPortal = new ComponentPortal<FsPopoverWrapperComponent>(\n component,\n void 0,\n createInjector(popoverRef, this._injector),\n );\n\n return overlayRef.attach(containerPortal);\n }\n}\n","export function pointInRect(x1, y1, x2, y2, px, py) {\n return (px > x1 && px < x2) && (py > y1 && py < y2);\n}\n","import {\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n HostBinding,\n Directive,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { fromEvent, pipe, Subject, timer, Observable, merge } from 'rxjs';\nimport {\n debounceTime,\n delay,\n distinctUntilChanged,\n filter,\n finalize,\n mapTo,\n startWith,\n switchMap,\n takeUntil,\n tap,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport { guid } from '@firestitch/common';\n\nimport { Position } from '../enums/position';\nimport { FsPopoverService } from '../services/popover.service';\nimport { pointInRect } from '../helpers/point-in-rect';\nimport { FsPopoverRef } from '../class/popover-ref';\n\n\n@Directive({\n selector: '[fsPopover]',\n host: {\n 'class': 'fs-popover',\n },\n})\nexport class FsPopoverDirective implements OnInit, OnChanges, OnDestroy {\n\n private _guid = guid('xxxxxxx');\n\n @Input()\n public text: string;\n\n @Input()\n public template: TemplateRef<any>;\n\n @Input()\n public data: any;\n\n @Input()\n public leaveDelay = 100;\n\n @Input()\n public showDelay = 0;\n\n @Input()\n public maxWidth = 250;\n\n @Input()\n public wrapperClass: string;\n\n @Input()\n public autoShow = true;\n\n @Input()\n public autoClose = true;\n\n @Input()\n public loadingDiameter = 20;\n\n @Input()\n public loading = true;\n\n @Input()\n @HostBinding('class.indication')\n public indication = true;\n\n @Input()\n public position: Position = Position.South;\n\n @Input()\n public theme: 'light' | 'dark' = 'light';\n\n @Input()\n public size: 'tiny' | 'small' | 'normal' = 'normal';\n\n @Input()\n public trigger: 'click' | 'mouseover' = 'mouseover';\n\n @Input()\n @HostBinding('class.fs-popover-enabled')\n public enabled = true;\n\n private _initialized = false;\n\n private _popoverRef: FsPopoverRef;\n private _wrapperElement: Element;\n private _hostBounds: DOMRect;\n\n private _mouseEnter$ = fromEvent(this._elRef.nativeElement, 'mouseenter');\n private _mouseMove$ = fromEvent(document, 'mousemove', { passive: true });\n private _mouseLeave$ = fromEvent<MouseEvent>(this._elRef.nativeElement, 'mouseleave');\n\n private _popoverClosed$ = new Subject<void>();\n private _destroy$ = new Subject<void>();\n\n constructor(\n private _elRef: ElementRef,\n private _popoverService: FsPopoverService,\n private _ngZone: NgZone,\n @Optional() private _router: Router,\n ) {\n }\n\n public get openTimer$(): Observable<number> {\n return timer(this.showDelay);\n }\n\n public get closeTimer$(): Observable<number> {\n return timer(this.leaveDelay);\n }\n\n public ngOnInit(): void {\n if (this.enabled) {\n this._initialize();\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.enabled?.currentValue !== changes.enabled?.previousValue) {\n if (this.enabled && !this._initialized) {\n this._initialize();\n }\n }\n }\n\n public ngOnDestroy() {\n this._popoverClosed$.next();\n this._destroy$.next();\n }\n\n private _closePopover() {\n this._popoverClosed$.next();\n\n this._ngZone.run(() => {\n this._wrapperElement = null;\n\n if (this._popoverService.hasActivePopover) {\n this._popoverService.close(this._popoverRef);\n }\n });\n }\n\n private _initialize(): void {\n if (this._initialized) {\n return;\n }\n\n this._popoverRef = new FsPopoverRef({\n maxWidth: this.maxWidth,\n wrapperClass: this.wrapperClass,\n autoShow: this.autoShow,\n autoClose: this.autoClose,\n loadingDiameter: this.loadingDiameter,\n loading: this.loading,\n size: this.size,\n theme: this.theme,\n });\n\n this._ngZone.runOutsideAngular(() => {\n if (this.trigger === 'click') {\n this._listenMouseHostClick();\n } else {\n this._listenMouseHostEnter();\n }\n });\n\n this._listenRouteChange();\n\n this._initialized = true;\n }\n\n private _listenRouteChange(): void {\n this._router.events\n .pipe(\n filter((event) => {\n return event instanceof NavigationEnd;\n }),\n pipe(\n takeUntil(\n this._destroy$\n .pipe(delay(200)),\n ),\n )\n )\n .subscribe(() => {\n this._closePopover();\n })\n }\n\n private _listenMouseHostClick(): void {\n fromEvent(this._elRef.nativeElement, 'click', { passive: true })\n .pipe(\n filter(() => this.enabled),\n tap((e: MouseEvent) => {\n e.stopPropagation();\n\n this._openPopover();\n }),\n switchMap(() => this._listenMouseHostLeave$()),\n switchMap(() => this.closeTimer$),\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._closePopover();\n });\n }\n\n private _listenMouseHostEnter(): void {\n const actualMouseState$ = merge(\n this._mouseLeave$.pipe(mapTo(true)),\n this._mouseEnter$.pipe(mapTo(false)),\n )\n .pipe(\n startWith(false),\n distinctUntilChanged(),\n );\n\n this._mouseEnter$\n .pipe(\n filter(() => this.enabled),\n filter(() => {\n return !this._wrapperElement;\n }),\n tap(() => {\n this._popoverService.setActivePopoverGUID(this._guid);\n }),\n switchMap(() => this.openTimer$),\n // we have to check that after all delays mouse still over an elemen\n withLatestFrom(actualMouseState$),\n filter(([_, mouseLeave]) => {\n return !mouseLeave;\n }),\n tap(() => this._openPopover()),\n switchMap(() => this._listenMouseHostLeave$()),\n switchMap(() => this.closeTimer$),\n tap(() => this._closePopover()),\n finalize(() => this._closePopover()),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n private _openPopover(): void {\n if (this.trigger === 'mouseover' && this._popoverService.activeElementGUID !== this._guid) {\n return;\n }\n\n this._hostBounds = this._elRef.nativeElement.getBoundingClientRect();\n\n this._ngZone.run(() => {\n if (this.template) {\n this._wrapperElement = this._popoverService.openPopover(\n this._elRef,\n this.template,\n this.data,\n this._popoverRef,\n this.position\n );\n } else {\n this._wrapperElement = this._popoverService.openPopover(\n this._elRef,\n this.text,\n this.data,\n this._popoverRef,\n this.position\n );\n }\n });\n }\n\n private _listenMouseHostLeave$(): Observable<MouseEvent> {\n const mouseMove$ = this._mouseMove$\n .pipe(\n debounceTime(50),\n filter(() => !!this._wrapperElement),\n filter((event: MouseEvent) => {\n return this._popoverRef.autoClose && this._mouseLeftTheTargets(event);\n }),\n );\n\n const mouseClick$ = fromEvent<MouseEvent>(this._elRef.nativeElement, 'click');\n\n return merge(\n mouseMove$,\n mouseClick$,\n );\n //\n // return this._mouseLeave$\n // .pipe(\n // //\n // timeoutWith(200, mouseMove$),\n // );\n }\n\n // Check if mouse left target or popover rects\n private _mouseLeftTheTargets(event: MouseEvent): boolean {\n const hostBounds = this._hostBounds;\n const popoverBounds = this._wrapperElement.getBoundingClientRect();\n\n const pointInHostRect = pointInRect(\n hostBounds.x,\n hostBounds.y,\n hostBounds.x + hostBounds.width,\n hostBounds.y + hostBounds.height,\n event.x,\n event.y\n );\n\n const pointInPopoverRect = pointInRect(\n popoverBounds.x,\n popoverBounds.y,\n popoverBounds.x + popoverBounds.width,\n popoverBounds.y + popoverBounds.height,\n event.x,\n event.y\n );\n\n return !pointInHostRect && !pointInPopoverRect;\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FsPopoverDirective } from '../../directives/popover.directive';\n\n\n@Component({\n selector: 'fs-popover',\n templateUrl: 'popover.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'fs-popover-component',\n }\n})\nexport class FsPopoverComponent extends FsPopoverDirective {}\n","<span [ngClass]=\"{'popover-container': enabled}\">\n <ng-content></ng-content>\n</span>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\n\nimport { FsPopoverComponent } from './components/popover/popover.component';\nimport { FsPopoverWrapperComponent } from './components/popover-wrapper/popover-wrapper.component';\nimport { FsPopoverDirective } from './directives/popover.directive';\n\n\n@NgModule({\n imports: [\n CommonModule,\n PortalModule,\n ],\n declarations: [\n FsPopoverComponent,\n FsPopoverWrapperComponent,\n FsPopoverDirective,\n ],\n exports: [\n FsPopoverComponent,\n FsPopoverDirective,\n ],\n})\nexport class FsPopoverModule {}\n","/*\n * Public API Surface of fs-menu\n */\n\n\nexport { FsPopoverModule } from './app/fs-popover.module';\n\nexport { FsPopoverComponent } from './app/components/popover/popover.component';\nexport { FsPopoverDirective } from './app/directives/popover.directive';\n\nexport { Position } from './app/enums/position';\n\nexport { FsPopoverRef } from './app/class/popover-ref';\n\nexport { IPopoverConfig } from './app/interfaces/popover-config.interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.FsPopoverRef","i1.FsPopoverService","i2","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"firestitch-popover.mjs","sources":["../../src/app/enums/position.ts","../../src/app/class/popover-ref.ts","../../src/app/components/popover-wrapper/popover-wrapper.component.ts","../../src/app/components/popover-wrapper/popover-wrapper.component.html","../../src/app/helpers/create-position-strategy.ts","../../src/app/helpers/create-overlay-ref.ts","../../src/app/helpers/create-injector.ts","../../src/app/helpers/create-template-portal.ts","../../src/app/services/popover.service.ts","../../src/app/helpers/point-in-rect.ts","../../src/app/directives/popover.directive.ts","../../src/app/components/popover/popover.component.ts","../../src/app/components/popover/popover.component.html","../../src/app/fs-popover.module.ts","../../src/public_api.ts","../../src/firestitch-popover.ts"],"sourcesContent":["export enum Position {\n North = 'north',\n South = 'south',\n East = 'east',\n West = 'west'\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\n\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { IPopoverConfig } from '../interfaces/popover-config.interface';\n\n\nexport class FsPopoverRef {\n\n public overlayRef: OverlayRef;\n\n private readonly _autoShow$ = new BehaviorSubject<boolean>(true);\n private readonly _autoClose$ = new BehaviorSubject<boolean>(true);\n private readonly _componentLoading$ = new BehaviorSubject<boolean>(true);\n private _maxWidth: number;\n private _wrapperClass: string;\n private _loadingDiameter: number;\n private _loading: boolean;\n private _theme: string;\n private _size: string;\n\n constructor(config: IPopoverConfig = {}) {\n this._init(config);\n }\n\n public get loadingDiameter() {\n return this._loadingDiameter;\n }\n\n public get size() {\n return this._size;\n }\n\n public get theme() {\n return this._theme;\n }\n\n public get loading() {\n return this._loading;\n }\n\n public get autoShow$() {\n return this._autoShow$.asObservable();\n }\n\n public get autoShow() {\n return this._autoShow$.getValue();\n }\n\n public set autoShow(value: boolean) {\n this._autoShow$.next(value);\n }\n\n public get autoClose$() {\n return this._autoClose$.asObservable();\n }\n\n public get autoClose() {\n return this._autoClose$.getValue();\n }\n\n public set autoClose(value: boolean) {\n this._autoClose$.next(value);\n }\n\n public get componentVisible$() {\n return combineLatest([\n this.autoShow$,\n this.componentLoading$,\n ]).pipe(\n map(([autoShow, componentLoading]) => {\n return autoShow || !componentLoading;\n })\n )\n }\n\n public get componentLoading$() {\n return this._componentLoading$.asObservable();\n }\n\n public get componentLoading() {\n return this._componentLoading$.getValue();\n }\n\n public get wrapperClass() {\n return this._wrapperClass;\n }\n\n public get maxWidth() {\n return this._maxWidth;\n }\n\n public show() {\n setTimeout(() => {\n this._componentLoading$.next(false);\n setTimeout(() => {\n this.updatePosition();\n });\n });\n }\n\n public close() {\n this.overlayRef.detach();\n this._componentLoading$.next(true);\n }\n\n public updatePosition() {\n this.overlayRef.updatePosition();\n }\n\n private _init(config: IPopoverConfig) {\n this._wrapperClass = config.wrapperClass;\n this._maxWidth = config.maxWidth;\n this._loading = config.loading;\n this._loadingDiameter = config.loadingDiameter;\n this._size = config.size;\n this._theme = config.theme;\n this._autoShow$.next(config.autoShow);\n this._autoClose$.next(config.autoClose);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n ViewChild,\n OnDestroy,\n NgZone,\n OnInit,\n Renderer2,\n} from '@angular/core';\n\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\n\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\n\nimport { FsPopoverRef } from '../../class/popover-ref';\n\n\n@Component({\n selector: 'fs-popover-wrapper',\n templateUrl: 'popover-wrapper.component.html',\n styleUrls: [ 'popover-wrapper.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'fs-popover-wrapper',\n },\n})\nexport class FsPopoverWrapperComponent extends BasePortalOutlet implements OnInit, OnDestroy {\n\n @ViewChild(CdkPortalOutlet, { static: true })\n public _portalOutlet: CdkPortalOutlet;\n\n @ViewChild('spinner')\n public spinner: ElementRef;\n\n public content: string;\n\n private _wrapperClass: string;\n private _contentChangesObserver: MutationObserver;\n private _updatePosition = new Subject<void>();\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n public popoverRef: FsPopoverRef,\n private _el: ElementRef,\n private _zone: NgZone,\n private _renderer: Renderer2,\n ) {\n super();\n this._updateClass();\n\n this.wrapperClass = this.popoverRef.wrapperClass;\n this.maxWidth = this.popoverRef.maxWidth;\n }\n\n public set maxWidth(value: number) {\n this._el.nativeElement.style.maxWidth = value ? value + 'px' : void 0;\n }\n\n public set wrapperClass(value: string) {\n this._wrapperClass = value;\n this._updateClass();\n }\n\n public ngOnInit(): void {\n if (!this.popoverRef.autoShow && this.popoverRef.componentLoading) {\n this._watchMousePosition();\n }\n\n this._observeContentChanges();\n this._listenUpdatePositionRequests();\n }\n\n\n public ngOnDestroy() {\n this._contentChangesObserver.disconnect();\n this._destroy$.next(null);\n this._destroy$.complete();\n }\n\n /**\n * Attach a TemplatePortal as content to this popover container.\n * @param portal Portal to be attached as the popover content.\n */\n public attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n\n if (this._portalOutlet.hasAttached()) {\n throw Error('Popover template already attached');\n }\n\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n\n\n /**\n * Attach a ComponentPortal as content to this popover container.\n * @param portal Portal to be attached as the popover content.\n */\n public attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n\n if (this._portalOutlet.hasAttached()) {\n throw Error('Popover component already attached');\n }\n\n return this._portalOutlet.attachComponentPortal(portal);\n }\n\n public setTextualContent(content: string): void {\n this.content = content;\n }\n\n public updatePosition() {\n this._updatePosition.next(null);\n }\n\n private _watchMousePosition() {\n const componentVisibilityChange$ = this.popoverRef.componentVisible$\n .pipe(\n filter((value) => value === true)\n );\n\n this._zone.runOutsideAngular(() => {\n fromEvent(document, 'mousemove')\n .pipe(\n takeUntil(componentVisibilityChange$),\n takeUntil(this._destroy$),\n )\n .subscribe((e: MouseEvent) => {\n this.spinner.nativeElement.style.left = e.x + 'px';\n this.spinner.nativeElement.style.top = (e.y + 20) + 'px';\n });\n });\n }\n\n private _updateClass() {\n if (this._wrapperClass) {\n this._renderer.addClass(this._el.nativeElement, this._wrapperClass);\n }\n }\n\n private _observeContentChanges() {\n const config = {\n childList: true,\n subtree: true\n };\n\n this._contentChangesObserver = new MutationObserver(() => {\n this.updatePosition();\n });\n\n this._contentChangesObserver.observe(this._el.nativeElement, config);\n }\n\n private _listenUpdatePositionRequests() {\n this._updatePosition\n .pipe(\n debounceTime(50),\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.popoverRef.updatePosition();\n })\n }\n}\n","<div class=\"wrapper\" [ngClass]=\"{\n 'theme-dark' : popoverRef.theme === 'dark',\n 'size-tiny': popoverRef.size === 'tiny',\n 'size-small': popoverRef.size === 'small',\n 'hidden': !(popoverRef.componentVisible$ | async)\n }\">\n <div class=\"mat-elevation-z4 popover-content\">\n <ng-container *ngIf=\"content\">\n {{content}}\n </ng-container>\n\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"fs-popover-arrow light\"></div>\n <div class=\"fs-popover-arrow dark\"></div>\n</div>\n\n<div class=\"loading-spinner\"\n #spinner\n *ngIf=\"popoverRef.loading && !(popoverRef.componentVisible$ | async)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" [attr.width]=\"popoverRef.loadingDiameter\" [attr.height]=\"popoverRef.loadingDiameter\" viewBox=\"0 0 42 42\" stroke=\"grey\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"3\">\n <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"1s\" repeatCount=\"indefinite\"/>\n </path>\n </g>\n </g>\n </svg>\n</div>\n","import { ElementRef } from '@angular/core';\nimport { FlexibleConnectedPositionStrategy, Overlay, PositionStrategy } from '@angular/cdk/overlay';\nimport { Position } from './../enums/position';\n\n\nexport function createPopupPositionStrategy(el: ElementRef, overlay: Overlay, position: Position): PositionStrategy {\n\n let overlayX: 'start' | 'center' | 'end' = 'center';\n let overlayY: 'top' | 'center' | 'bottom' = 'center';\n\n let originX: 'start' | 'center' | 'end' = 'center';\n let originY: 'top' | 'center' | 'bottom' = 'center';\n\n let offsetX = 0;\n let offsetY = 0;\n\n let panelClass: string[] = [];\n\n\n switch (position) {\n case Position.North:\n originY = 'top';\n overlayY = 'bottom';\n panelClass = ['fs-popover-top'];\n offsetY = -8;\n break;\n case Position.South:\n originY = 'bottom';\n overlayY = 'top';\n panelClass = ['fs-popover-bottom'];\n offsetY = 8;\n break;\n case Position.East:\n overlayX = 'start';\n originX = 'end';\n panelClass = ['fs-popover-left'];\n offsetX = 8;\n break;\n case Position.West:\n overlayX = 'end';\n originX = 'start';\n panelClass = ['fs-popover-right'];\n offsetX = -8;\n break;\n }\n\n return createBasePopupPositionStrategy(el, overlay)\n .withPositions([\n {\n originX: originX,\n originY: originY,\n overlayX: overlayX,\n overlayY: overlayY,\n offsetX: offsetX,\n offsetY: offsetY,\n panelClass: panelClass,\n }\n ]);\n}\n\n\nfunction createBasePopupPositionStrategy(el: ElementRef, overlay: Overlay): FlexibleConnectedPositionStrategy {\n return overlay.position()\n .flexibleConnectedTo(el)\n .withGrowAfterOpen(true)\n .withFlexibleDimensions(false)\n .withViewportMargin(4);\n}\n","import { ElementRef } from '@angular/core';\nimport { Overlay, OverlayConfig } from '@angular/cdk/overlay';\nimport { createPopupPositionStrategy } from './create-position-strategy';\nimport { Position } from './../enums/position';\n\n\nexport function createOverlayRef(el: ElementRef, overlay: Overlay, position: Position) {\n const config = {\n positionStrategy: createPopupPositionStrategy(el, overlay, position),\n scrollStrategy: overlay.scrollStrategies.reposition(),\n hasBackdrop: false\n };\n\n const overlayConfig = new OverlayConfig(config);\n\n return overlay.create(overlayConfig);\n}\n","import { Injector } from '@angular/core';\nimport { PortalInjector } from '@angular/cdk/portal';\nimport { FsPopoverRef } from '../class/popover-ref';\n\n\nexport function createInjector(popoverRef: FsPopoverRef, parentInjector: Injector) {\n const injectionTokens = new WeakMap<any, any>([\n [FsPopoverRef, popoverRef],\n ]);\n\n return new PortalInjector(parentInjector, injectionTokens);\n}\n","import { TemplateRef } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { FsPopoverRef } from '../class/popover-ref';\n\n\nexport function createTempatePortal(template: TemplateRef<any>, popoverRef: FsPopoverRef, data: any) {\n return new TemplatePortal(\n template,\n void 0,\n { data: data, popover: popoverRef },\n );\n}\n","import { ElementRef, Injectable, Injector, TemplateRef } from '@angular/core';\n\nimport {\n ComponentType,\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\n\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { Position } from './../enums/position';\nimport { FsPopoverRef } from '../class/popover-ref';\nimport { FsPopoverWrapperComponent } from '../components/popover-wrapper/popover-wrapper.component';\nimport { createOverlayRef } from '../helpers/create-overlay-ref';\nimport { createInjector } from '../helpers/create-injector';\nimport { createTempatePortal } from '../helpers/create-template-portal';\nimport { IPopoverActiveElement } from '../interfaces/popover-config.interface';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsPopoverService {\n\n private _activeElement: IPopoverActiveElement;\n private _activeElementGUID: string;\n\n constructor(\n private _injector: Injector,\n private _overlay: Overlay,\n ) {}\n\n public get hasActivePopover() {\n return !!this._activeElement;\n }\n\n public get activeElementGUID(): string {\n return this._activeElementGUID;\n }\n\n public setActivePopoverGUID(value: string) {\n this._activeElementGUID = value;\n }\n\n public openPopover(\n el: ElementRef,\n text: string,\n data: any,\n popoverRef: FsPopoverRef,\n position: Position\n ): Element;\n\n public openPopover(\n el: ElementRef,\n template: TemplateRef<any>,\n data: any,\n popoverRef: FsPopoverRef,\n position: Position\n ): Element;\n\n public openPopover(\n el: ElementRef,\n content: TemplateRef<any> | string,\n data: any,\n popoverRef: FsPopoverRef,\n position: Position\n ): Element {\n\n if (this._activeElement) {\n this.close(this._activeElement.popoverRef)\n }\n\n const overlayRef = createOverlayRef(el, this._overlay, position);\n const containerRef = this._openPortalPreview(FsPopoverWrapperComponent, overlayRef, popoverRef);\n\n if (content instanceof TemplateRef) {\n const templatePortal = createTempatePortal(content, popoverRef, data);\n\n containerRef.instance.attachTemplatePortal(templatePortal);\n } else {\n containerRef.instance.setTextualContent(content);\n }\n\n popoverRef.overlayRef = overlayRef;\n\n this._activeElement = {\n overlayRef,\n popoverRef,\n };\n\n return containerRef.location.nativeElement;\n }\n\n public close(popoverRef: FsPopoverRef = null) {\n if (this._activeElement.popoverRef === popoverRef) {\n popoverRef.close();\n this._activeElement = void 0;\n this._activeElementGUID = void 0;\n }\n }\n\n private _openPortalPreview(\n component: ComponentType<FsPopoverWrapperComponent>,\n overlayRef: OverlayRef,\n popoverRef: FsPopoverRef,\n ) {\n const containerPortal = new ComponentPortal<FsPopoverWrapperComponent>(\n component,\n void 0,\n createInjector(popoverRef, this._injector),\n );\n\n return overlayRef.attach(containerPortal);\n }\n}\n","export function pointInRect(x1, y1, x2, y2, px, py) {\n return (px > x1 && px < x2) && (py > y1 && py < y2);\n}\n","import {\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n HostBinding,\n Directive,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { fromEvent, pipe, Subject, timer, Observable, merge } from 'rxjs';\nimport {\n debounceTime,\n delay,\n distinctUntilChanged,\n filter,\n finalize,\n mapTo,\n startWith,\n switchMap,\n takeUntil,\n tap,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport { guid } from '@firestitch/common';\n\nimport { Position } from '../enums/position';\nimport { FsPopoverService } from '../services/popover.service';\nimport { pointInRect } from '../helpers/point-in-rect';\nimport { FsPopoverRef } from '../class/popover-ref';\n\n\n@Directive({\n selector: '[fsPopover]',\n host: {\n 'class': 'fs-popover',\n },\n})\nexport class FsPopoverDirective implements OnInit, OnChanges, OnDestroy {\n\n private _guid = guid('xxxxxxx');\n\n @Input()\n public text: string;\n\n @Input()\n public template: TemplateRef<any>;\n\n @Input()\n public data: any;\n\n @Input()\n public leaveDelay = 100;\n\n @Input()\n public showDelay = 0;\n\n @Input()\n public maxWidth = 250;\n\n @Input()\n public wrapperClass: string;\n\n @Input()\n public autoShow = true;\n\n @Input()\n public autoClose = true;\n\n @Input()\n public loadingDiameter = 20;\n\n @Input()\n public loading = true;\n\n @Input()\n @HostBinding('class.indication')\n public indication = true;\n\n @Input()\n public position: Position = Position.South;\n\n @Input()\n public theme: 'light' | 'dark' = 'light';\n\n @Input()\n public size: 'tiny' | 'small' | 'normal' = 'normal';\n\n @Input()\n public trigger: 'click' | 'mouseover' = 'mouseover';\n\n @Input()\n @HostBinding('class.fs-popover-enabled')\n public enabled = true;\n\n private _initialized = false;\n\n private _popoverRef: FsPopoverRef;\n private _wrapperElement: Element;\n private _hostBounds: DOMRect;\n\n private _mouseEnter$: Observable<MouseEvent>;\n private _mouseMove$: Observable<Event>;\n private _mouseLeave$: Observable<MouseEvent>;\n\n private _popoverClosed$ = new Subject<void>();\n private _destroy$ = new Subject<void>();\n\n constructor(\n private _elRef: ElementRef,\n private _popoverService: FsPopoverService,\n private _ngZone: NgZone,\n @Optional() private _router: Router,\n ) {\n this._mouseEnter$ = fromEvent(this._elRef.nativeElement, 'mouseenter');\n this._mouseMove$ = fromEvent(document, 'mousemove', { passive: true });\n this._mouseLeave$ = fromEvent(this._elRef.nativeElement, 'mouseleave');\n }\n\n public get openTimer$(): Observable<number> {\n return timer(this.showDelay);\n }\n\n public get closeTimer$(): Observable<number> {\n return timer(this.leaveDelay);\n }\n\n public ngOnInit(): void {\n if (this.enabled) {\n this._initialize();\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.enabled?.currentValue !== changes.enabled?.previousValue) {\n if (this.enabled && !this._initialized) {\n this._initialize();\n }\n }\n }\n\n public ngOnDestroy() {\n this._popoverClosed$.next(null);\n this._destroy$.next(null);\n }\n\n private _closePopover() {\n this._popoverClosed$.next(null);\n\n this._ngZone.run(() => {\n this._wrapperElement = null;\n\n if (this._popoverService.hasActivePopover) {\n this._popoverService.close(this._popoverRef);\n }\n });\n }\n\n private _initialize(): void {\n if (this._initialized) {\n return;\n }\n\n this._popoverRef = new FsPopoverRef({\n maxWidth: this.maxWidth,\n wrapperClass: this.wrapperClass,\n autoShow: this.autoShow,\n autoClose: this.autoClose,\n loadingDiameter: this.loadingDiameter,\n loading: this.loading,\n size: this.size,\n theme: this.theme,\n });\n\n this._ngZone.runOutsideAngular(() => {\n if (this.trigger === 'click') {\n this._listenMouseHostClick();\n } else {\n this._listenMouseHostEnter();\n }\n });\n\n this._listenRouteChange();\n\n this._initialized = true;\n }\n\n private _listenRouteChange(): void {\n this._router.events\n .pipe(\n filter((event) => {\n return event instanceof NavigationEnd;\n }),\n pipe(\n takeUntil(\n this._destroy$\n .pipe(delay(200)),\n ),\n )\n )\n .subscribe(() => {\n this._closePopover();\n })\n }\n\n private _listenMouseHostClick(): void {\n fromEvent(this._elRef.nativeElement, 'click', { passive: true })\n .pipe(\n filter(() => this.enabled),\n tap((e: MouseEvent) => {\n e.stopPropagation();\n\n this._openPopover();\n }),\n switchMap(() => this._listenMouseHostLeave$()),\n switchMap(() => this.closeTimer$),\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._closePopover();\n });\n }\n\n private _listenMouseHostEnter(): void {\n const actualMouseState$ = merge(\n this._mouseLeave$.pipe(mapTo(true)),\n this._mouseEnter$.pipe(mapTo(false)),\n )\n .pipe(\n startWith(false),\n distinctUntilChanged(),\n );\n\n this._mouseEnter$\n .pipe(\n filter(() => this.enabled),\n filter(() => {\n return !this._wrapperElement;\n }),\n tap(() => {\n this._popoverService.setActivePopoverGUID(this._guid);\n }),\n switchMap(() => this.openTimer$),\n // we have to check that after all delays mouse still over an elemen\n withLatestFrom(actualMouseState$),\n filter(([_, mouseLeave]) => {\n return !mouseLeave;\n }),\n tap(() => this._openPopover()),\n switchMap(() => this._listenMouseHostLeave$()),\n switchMap(() => this.closeTimer$),\n tap(() => this._closePopover()),\n finalize(() => this._closePopover()),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n private _openPopover(): void {\n if (this.trigger === 'mouseover' && this._popoverService.activeElementGUID !== this._guid) {\n return;\n }\n\n this._hostBounds = this._elRef.nativeElement.getBoundingClientRect();\n\n this._ngZone.run(() => {\n if (this.template) {\n this._wrapperElement = this._popoverService.openPopover(\n this._elRef,\n this.template,\n this.data,\n this._popoverRef,\n this.position\n );\n } else {\n this._wrapperElement = this._popoverService.openPopover(\n this._elRef,\n this.text,\n this.data,\n this._popoverRef,\n this.position\n );\n }\n });\n }\n\n private _listenMouseHostLeave$(): Observable<MouseEvent> {\n const mouseMove$ = this._mouseMove$\n .pipe(\n debounceTime(50),\n filter(() => !!this._wrapperElement),\n filter((event: MouseEvent) => {\n return this._popoverRef.autoClose && this._mouseLeftTheTargets(event);\n }),\n );\n\n const mouseClick$ = fromEvent<MouseEvent>(this._elRef.nativeElement, 'click');\n\n return merge(\n mouseMove$,\n mouseClick$,\n );\n //\n // return this._mouseLeave$\n // .pipe(\n // //\n // timeoutWith(200, mouseMove$),\n // );\n }\n\n // Check if mouse left target or popover rects\n private _mouseLeftTheTargets(event: MouseEvent): boolean {\n const hostBounds = this._hostBounds;\n const popoverBounds = this._wrapperElement.getBoundingClientRect();\n\n const pointInHostRect = pointInRect(\n hostBounds.x,\n hostBounds.y,\n hostBounds.x + hostBounds.width,\n hostBounds.y + hostBounds.height,\n event.x,\n event.y\n );\n\n const pointInPopoverRect = pointInRect(\n popoverBounds.x,\n popoverBounds.y,\n popoverBounds.x + popoverBounds.width,\n popoverBounds.y + popoverBounds.height,\n event.x,\n event.y\n );\n\n return !pointInHostRect && !pointInPopoverRect;\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FsPopoverDirective } from '../../directives/popover.directive';\n\n\n@Component({\n selector: 'fs-popover',\n templateUrl: 'popover.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'fs-popover-component',\n }\n})\nexport class FsPopoverComponent extends FsPopoverDirective {}\n","<span [ngClass]=\"{'popover-container': enabled}\">\n <ng-content></ng-content>\n</span>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\n\nimport { FsPopoverComponent } from './components/popover/popover.component';\nimport { FsPopoverWrapperComponent } from './components/popover-wrapper/popover-wrapper.component';\nimport { FsPopoverDirective } from './directives/popover.directive';\n\n\n@NgModule({\n imports: [\n CommonModule,\n PortalModule,\n ],\n declarations: [\n FsPopoverComponent,\n FsPopoverWrapperComponent,\n FsPopoverDirective,\n ],\n exports: [\n FsPopoverComponent,\n FsPopoverDirective,\n ],\n})\nexport class FsPopoverModule {}\n","/*\n * Public API Surface of fs-menu\n */\n\n\nexport { FsPopoverModule } from './app/fs-popover.module';\n\nexport { FsPopoverComponent } from './app/components/popover/popover.component';\nexport { FsPopoverDirective } from './app/directives/popover.directive';\n\nexport { Position } from './app/enums/position';\n\nexport { FsPopoverRef } from './app/class/popover-ref';\n\nexport { IPopoverConfig } from './app/interfaces/popover-config.interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.FsPopoverRef","i1.FsPopoverService","i2","i1"],"mappings":"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"}
|