@firestitch/popover 9.4.8 → 9.4.12
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/app/components/popover/popover.component.d.ts +4 -0
- package/app/services/popover.service.d.ts +3 -0
- package/bundles/firestitch-popover.umd.js +35 -7
- package/bundles/firestitch-popover.umd.js.map +1 -1
- package/bundles/firestitch-popover.umd.min.js +2 -2
- package/bundles/firestitch-popover.umd.min.js.map +1 -1
- package/esm2015/app/components/popover/popover.component.js +23 -6
- package/esm2015/app/services/popover.service.js +8 -1
- package/esm5/app/components/popover/popover.component.js +25 -7
- package/esm5/app/services/popover.service.js +12 -1
- package/fesm2015/firestitch-popover.js +29 -5
- package/fesm2015/firestitch-popover.js.map +1 -1
- package/fesm5/firestitch-popover.js +34 -5
- package/fesm5/firestitch-popover.js.map +1 -1
- package/firestitch-popover.metadata.json +1 -1
- package/package.json +6 -5
|
@@ -18,6 +18,16 @@ var FsPopoverService = /** @class */ (function () {
|
|
|
18
18
|
enumerable: true,
|
|
19
19
|
configurable: true
|
|
20
20
|
});
|
|
21
|
+
Object.defineProperty(FsPopoverService.prototype, "activeElementGUID", {
|
|
22
|
+
get: function () {
|
|
23
|
+
return this._activeElementGUID;
|
|
24
|
+
},
|
|
25
|
+
enumerable: true,
|
|
26
|
+
configurable: true
|
|
27
|
+
});
|
|
28
|
+
FsPopoverService.prototype.setActivePopoverGUID = function (value) {
|
|
29
|
+
this._activeElementGUID = value;
|
|
30
|
+
};
|
|
21
31
|
FsPopoverService.prototype.openPopover = function (el, template, data, popoverRef, position) {
|
|
22
32
|
if (this._activeElement) {
|
|
23
33
|
this.close(this._activeElement.popoverRef);
|
|
@@ -38,6 +48,7 @@ var FsPopoverService = /** @class */ (function () {
|
|
|
38
48
|
if (this._activeElement.popoverRef === popoverRef) {
|
|
39
49
|
popoverRef.close();
|
|
40
50
|
this._activeElement = void 0;
|
|
51
|
+
this._activeElementGUID = void 0;
|
|
41
52
|
}
|
|
42
53
|
};
|
|
43
54
|
FsPopoverService.prototype._openPortalPreview = function (component, overlayRef, popoverRef) {
|
|
@@ -56,4 +67,4 @@ var FsPopoverService = /** @class */ (function () {
|
|
|
56
67
|
return FsPopoverService;
|
|
57
68
|
}());
|
|
58
69
|
export { FsPopoverService };
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvcG9wb3Zlci8iLCJzb3VyY2VzIjpbImFwcC9zZXJ2aWNlcy9wb3BvdmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUUsT0FBTyxFQUNMLGFBQWEsRUFDYixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSXRELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUt4RTtJQUtFLDBCQUNVLFNBQW1CLEVBQ25CLFFBQWlCO1FBRGpCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBUztJQUN4QixDQUFDO0lBRUosc0JBQVcsOENBQWdCO2FBQTNCO1lBQ0UsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMvQixDQUFDOzs7T0FBQTtJQUVELHNCQUFXLCtDQUFpQjthQUE1QjtZQUNFLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ2pDLENBQUM7OztPQUFBO0lBRU0sK0NBQW9CLEdBQTNCLFVBQTRCLEtBQWE7UUFDdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRU0sc0NBQVcsR0FBbEIsVUFDRSxFQUFjLEVBQ2QsUUFBMEIsRUFDMUIsSUFBUyxFQUNULFVBQXdCLEVBQ3hCLFFBQWtCO1FBR2xCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUE7U0FDM0M7UUFFRCxJQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRSxJQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2hHLElBQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFdkUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzRCxVQUFVLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUVuQyxJQUFJLENBQUMsY0FBYyxHQUFHO1lBQ3BCLFVBQVUsWUFBQTtZQUNWLFVBQVUsWUFBQTtTQUNYLENBQUM7UUFFRixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFTSxnQ0FBSyxHQUFaLFVBQWEsVUFBK0I7UUFBL0IsMkJBQUEsRUFBQSxpQkFBK0I7UUFDMUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7WUFDakQsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVPLDZDQUFrQixHQUExQixVQUNFLFNBQW1ELEVBQ25ELFVBQXNCLEVBQ3RCLFVBQXdCO1FBRXhCLElBQU0sZUFBZSxHQUFHLElBQUksZUFBZSxDQUN6QyxTQUFTLEVBQ1QsS0FBSyxDQUFDLEVBQ04sY0FBYyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzNDLENBQUM7UUFFRixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7Z0JBL0RvQixRQUFRO2dCQUNULE9BQU87O0lBUGhCLGdCQUFnQjtRQUQ1QixVQUFVLEVBQUU7eUNBT1UsUUFBUTtZQUNULE9BQU87T0FQaEIsZ0JBQWdCLENBc0U1QjtJQUFELHVCQUFDO0NBQUEsQUF0RUQsSUFzRUM7U0F0RVksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudFR5cGUsXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcblxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi8uLi9lbnVtcy9wb3NpdGlvbic7XG5pbXBvcnQgeyBGc1BvcG92ZXJSZWYgfSBmcm9tICcuLi9jbGFzcy9wb3BvdmVyLXJlZic7XG5pbXBvcnQgeyBGc1BvcG92ZXJXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wb3BvdmVyLXdyYXBwZXIvcG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjcmVhdGVPdmVybGF5UmVmIH0gZnJvbSAnLi4vaGVscGVycy9jcmVhdGUtb3ZlcmxheS1yZWYnO1xuaW1wb3J0IHsgY3JlYXRlSW5qZWN0b3IgfSBmcm9tICcuLi9oZWxwZXJzL2NyZWF0ZS1pbmplY3Rvcic7XG5pbXBvcnQgeyBjcmVhdGVUZW1wYXRlUG9ydGFsIH0gZnJvbSAnLi4vaGVscGVycy9jcmVhdGUtdGVtcGxhdGUtcG9ydGFsJztcbmltcG9ydCB7IElQb3BvdmVyQWN0aXZlRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9wb3Zlci1jb25maWcuaW50ZXJmYWNlJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRnNQb3BvdmVyU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlRWxlbWVudDogSVBvcG92ZXJBY3RpdmVFbGVtZW50O1xuICBwcml2YXRlIF9hY3RpdmVFbGVtZW50R1VJRDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICApIHt9XG5cbiAgcHVibGljIGdldCBoYXNBY3RpdmVQb3BvdmVyKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2FjdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZUVsZW1lbnRHVUlEKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUVsZW1lbnRHVUlEO1xuICB9XG5cbiAgcHVibGljIHNldEFjdGl2ZVBvcG92ZXJHVUlEKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hY3RpdmVFbGVtZW50R1VJRCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIG9wZW5Qb3BvdmVyKFxuICAgIGVsOiBFbGVtZW50UmVmLFxuICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIGRhdGE6IGFueSxcbiAgICBwb3BvdmVyUmVmOiBGc1BvcG92ZXJSZWYsXG4gICAgcG9zaXRpb246IFBvc2l0aW9uXG4gICkge1xuXG4gICAgaWYgKHRoaXMuX2FjdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuY2xvc2UodGhpcy5fYWN0aXZlRWxlbWVudC5wb3BvdmVyUmVmKVxuICAgIH1cblxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSBjcmVhdGVPdmVybGF5UmVmKGVsLCB0aGlzLl9vdmVybGF5LCBwb3NpdGlvbik7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdGhpcy5fb3BlblBvcnRhbFByZXZpZXcoRnNQb3BvdmVyV3JhcHBlckNvbXBvbmVudCwgb3ZlcmxheVJlZiwgcG9wb3ZlclJlZik7XG4gICAgY29uc3QgdGVtcGxhdGVQb3J0YWwgPSBjcmVhdGVUZW1wYXRlUG9ydGFsKHRlbXBsYXRlLCBwb3BvdmVyUmVmLCBkYXRhKTtcblxuICAgIGNvbnRhaW5lclJlZi5pbnN0YW5jZS5hdHRhY2hUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZVBvcnRhbCk7XG4gICAgcG9wb3ZlclJlZi5vdmVybGF5UmVmID0gb3ZlcmxheVJlZjtcblxuICAgIHRoaXMuX2FjdGl2ZUVsZW1lbnQgPSB7XG4gICAgICBvdmVybGF5UmVmLFxuICAgICAgcG9wb3ZlclJlZixcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbnRhaW5lclJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIGNsb3NlKHBvcG92ZXJSZWY6IEZzUG9wb3ZlclJlZiA9IG51bGwpIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlRWxlbWVudC5wb3BvdmVyUmVmID09PSBwb3BvdmVyUmVmKSB7XG4gICAgICBwb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICB0aGlzLl9hY3RpdmVFbGVtZW50ID0gdm9pZCAwO1xuICAgICAgdGhpcy5fYWN0aXZlRWxlbWVudEdVSUQgPSB2b2lkIDA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb3BlblBvcnRhbFByZXZpZXcoXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEZzUG9wb3ZlcldyYXBwZXJDb21wb25lbnQ+LFxuICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgcG9wb3ZlclJlZjogRnNQb3BvdmVyUmVmLFxuICApIHtcbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsPEZzUG9wb3ZlcldyYXBwZXJDb21wb25lbnQ+KFxuICAgICAgY29tcG9uZW50LFxuICAgICAgdm9pZCAwLFxuICAgICAgY3JlYXRlSW5qZWN0b3IocG9wb3ZlclJlZiwgdGhpcy5faW5qZWN0b3IpLFxuICAgICk7XG5cbiAgICByZXR1cm4gb3ZlcmxheVJlZi5hdHRhY2goY29udGFpbmVyUG9ydGFsKTtcbiAgfVxufVxuIl19
|
|
@@ -4,8 +4,9 @@ import { CommonModule } from '@angular/common';
|
|
|
4
4
|
import { BasePortalOutlet, CdkPortalOutlet, PortalInjector, TemplatePortal, ComponentPortal, PortalModule } from '@angular/cdk/portal';
|
|
5
5
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
6
6
|
import { NavigationEnd, Router } from '@angular/router';
|
|
7
|
-
import { BehaviorSubject, combineLatest, Subject, fromEvent, timer, pipe } from 'rxjs';
|
|
8
|
-
import { map, filter, takeUntil, debounceTime, delay, tap, switchMap } from 'rxjs/operators';
|
|
7
|
+
import { BehaviorSubject, combineLatest, Subject, fromEvent, timer, pipe, merge } from 'rxjs';
|
|
8
|
+
import { map, filter, takeUntil, debounceTime, delay, tap, switchMap, mapTo, startWith, distinctUntilChanged, withLatestFrom, finalize } from 'rxjs/operators';
|
|
9
|
+
import { guid } from '@firestitch/common';
|
|
9
10
|
import { OverlayConfig, Overlay } from '@angular/cdk/overlay';
|
|
10
11
|
|
|
11
12
|
var Position;
|
|
@@ -308,6 +309,12 @@ let FsPopoverService = class FsPopoverService {
|
|
|
308
309
|
get hasActivePopover() {
|
|
309
310
|
return !!this._activeElement;
|
|
310
311
|
}
|
|
312
|
+
get activeElementGUID() {
|
|
313
|
+
return this._activeElementGUID;
|
|
314
|
+
}
|
|
315
|
+
setActivePopoverGUID(value) {
|
|
316
|
+
this._activeElementGUID = value;
|
|
317
|
+
}
|
|
311
318
|
openPopover(el, template, data, popoverRef, position) {
|
|
312
319
|
if (this._activeElement) {
|
|
313
320
|
this.close(this._activeElement.popoverRef);
|
|
@@ -327,6 +334,7 @@ let FsPopoverService = class FsPopoverService {
|
|
|
327
334
|
if (this._activeElement.popoverRef === popoverRef) {
|
|
328
335
|
popoverRef.close();
|
|
329
336
|
this._activeElement = void 0;
|
|
337
|
+
this._activeElementGUID = void 0;
|
|
330
338
|
}
|
|
331
339
|
}
|
|
332
340
|
_openPortalPreview(component, overlayRef, popoverRef) {
|
|
@@ -354,6 +362,7 @@ let FsPopoverComponent = class FsPopoverComponent {
|
|
|
354
362
|
this._popoverService = _popoverService;
|
|
355
363
|
this._ngZone = _ngZone;
|
|
356
364
|
this._router = _router;
|
|
365
|
+
this._guid = guid('xxxxxxx');
|
|
357
366
|
this.leaveDelay = 100;
|
|
358
367
|
this.showDelay = 0;
|
|
359
368
|
this.maxWidth = 250;
|
|
@@ -366,6 +375,9 @@ let FsPopoverComponent = class FsPopoverComponent {
|
|
|
366
375
|
this.theme = 'light';
|
|
367
376
|
this.size = 'normal';
|
|
368
377
|
this.trigger = 'mouseover';
|
|
378
|
+
this._mouseEnter$ = fromEvent(this._elRef.nativeElement, 'mouseenter');
|
|
379
|
+
this._mouseMove$ = fromEvent(document, 'mousemove', { passive: true });
|
|
380
|
+
this._mouseLeave$ = fromEvent(this._elRef.nativeElement, 'mouseleave');
|
|
369
381
|
this._popoverClosed$ = new Subject();
|
|
370
382
|
this._destroy$ = new Subject();
|
|
371
383
|
}
|
|
@@ -430,23 +442,35 @@ let FsPopoverComponent = class FsPopoverComponent {
|
|
|
430
442
|
});
|
|
431
443
|
}
|
|
432
444
|
_listenMouseHostEnter() {
|
|
433
|
-
|
|
445
|
+
const actualMouseState$ = merge(this._mouseLeave$.pipe(mapTo(true)), this._mouseEnter$.pipe(mapTo(false)))
|
|
446
|
+
.pipe(startWith(false), distinctUntilChanged());
|
|
447
|
+
this._mouseEnter$
|
|
434
448
|
.pipe(filter(() => {
|
|
435
449
|
return !this._wrapperElement;
|
|
436
|
-
}),
|
|
450
|
+
}), tap(() => {
|
|
451
|
+
this._popoverService.setActivePopoverGUID(this._guid);
|
|
452
|
+
}), switchMap(() => this.openTimer$),
|
|
453
|
+
// we have to check that after all delays mouse still over an elemen
|
|
454
|
+
withLatestFrom(actualMouseState$), filter(([_, mouseLeave]) => {
|
|
455
|
+
return !mouseLeave;
|
|
456
|
+
}), tap(() => this._openPopover()), switchMap(() => this._listenMouseHostLeave$()), switchMap(() => this.closeTimer$), tap(() => this._closePopover()), finalize(() => this._closePopover()), takeUntil(this._destroy$))
|
|
437
457
|
.subscribe();
|
|
438
458
|
}
|
|
439
459
|
_openPopover() {
|
|
460
|
+
if (this._popoverService.activeElementGUID !== this._guid) {
|
|
461
|
+
return;
|
|
462
|
+
}
|
|
440
463
|
this._hostBounds = this._elRef.nativeElement.getBoundingClientRect();
|
|
441
464
|
this._ngZone.run(() => {
|
|
442
465
|
this._wrapperElement = this._popoverService.openPopover(this._elRef, this.template, this.data, this._popoverRef, this.position);
|
|
443
466
|
});
|
|
444
467
|
}
|
|
445
468
|
_listenMouseHostLeave$() {
|
|
446
|
-
|
|
469
|
+
const mouseMove$ = this._mouseMove$
|
|
447
470
|
.pipe(debounceTime(50), filter(() => !!this._wrapperElement), filter((event) => {
|
|
448
471
|
return this._popoverRef.autoClose && this._mouseLeftTheTargets(event);
|
|
449
472
|
}));
|
|
473
|
+
return merge(mouseMove$, this._mouseLeave$);
|
|
450
474
|
}
|
|
451
475
|
// Check if mouse left target or popover rects
|
|
452
476
|
_mouseLeftTheTargets(event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestitch-popover.js","sources":["ng://@firestitch/popover/app/enums/position.ts","ng://@firestitch/popover/app/class/popover-ref.ts","ng://@firestitch/popover/app/components/popover-wrapper/popover-wrapper.component.ts","ng://@firestitch/popover/app/helpers/create-position-strategy.ts","ng://@firestitch/popover/app/helpers/create-overlay-ref.ts","ng://@firestitch/popover/app/helpers/create-injector.ts","ng://@firestitch/popover/app/helpers/create-template-portal.ts","ng://@firestitch/popover/app/services/popover.service.ts","ng://@firestitch/popover/app/helpers/point-in-rect.ts","ng://@firestitch/popover/app/components/popover/popover.component.ts","ng://@firestitch/popover/app/fs-popover.module.ts","ng://@firestitch/popover/public_api.ts","ng://@firestitch/popover/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';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { IPopoverConfig } from '../interfaces/popover-config.interface';\n\n\n@Injectable()\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 HostBinding,\n OnDestroy, NgZone,\n OnInit,\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})\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;\n\n @HostBinding('class') class;\n\n public hidden = false;\n\n private _wrapperClass;\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 ) {\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 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 this.class = ['popover-wrapper', this._wrapperClass].filter(Boolean).join(' ');\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","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()\nexport class FsPopoverService {\n\n private _activeElement: IPopoverActiveElement;\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 openPopover(\n el: ElementRef,\n template: TemplateRef<any>,\n data: any,\n popoverRef: FsPopoverRef,\n position: Position\n ) {\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 const templatePortal = createTempatePortal(template, popoverRef, data);\n\n containerRef.instance.attachTemplatePortal(templatePortal);\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 }\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 ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n HostBinding,\n} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { fromEvent, pipe, Subject, timer, Observable } from 'rxjs';\nimport {\n debounceTime,\n delay,\n filter,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs/operators';\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@Component({\n selector: 'fs-popover',\n templateUrl: 'popover.component.html',\n styleUrls: [ 'popover.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FsPopoverComponent implements OnInit, OnDestroy {\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 private _popoverRef: FsPopoverRef;\n private _wrapperElement: Element;\n private _hostBounds: DOMRect;\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() {\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\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 _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 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 fromEvent(\n this._elRef.nativeElement,\n 'mouseenter',\n { passive: true }\n )\n .pipe(\n filter(() => {\n return !this._wrapperElement;\n }),\n switchMap(() => this.openTimer$),\n tap(() => this._openPopover()),\n switchMap(() => this._listenMouseHostLeave$()),\n switchMap(() => this.closeTimer$),\n tap(() => this._closePopover()),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n private _openPopover(): void {\n this._hostBounds = this._elRef.nativeElement.getBoundingClientRect();\n\n this._ngZone.run(() => {\n this._wrapperElement = this._popoverService.openPopover(\n this._elRef,\n this.template,\n this.data,\n this._popoverRef,\n this.position\n );\n });\n }\n\n private _listenMouseHostLeave$(): Observable<MouseEvent> {\n return fromEvent(document, 'mousemove', { passive: true })\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\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 { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { FsPopoverComponent } from './components/popover/popover.component';\nimport { FsPopoverWrapperComponent } from './components/popover-wrapper/popover-wrapper.component';\nimport { FsPopoverService } from './services/popover.service';\n\n\n@NgModule({\n imports: [\n CommonModule,\n PortalModule,\n MatProgressSpinnerModule,\n ],\n declarations: [\n FsPopoverComponent,\n FsPopoverWrapperComponent,\n ],\n exports: [\n FsPopoverComponent,\n ],\n})\nexport class FsPopoverModule {\n static forRoot(): ModuleWithProviders<FsPopoverModule> {\n return {\n ngModule: FsPopoverModule,\n providers: [FsPopoverService]\n };\n }\n}\n","/*\n * Public API Surface of fs-menu\n */\n\nexport { FsPopoverModule } from './app/fs-popover.module';\n\nexport { FsPopoverComponent } from './app/components/popover/popover.component';\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\nexport {FsPopoverWrapperComponent as ɵb} from './app/components/popover-wrapper/popover-wrapper.component';\nexport {FsPopoverService as ɵa} from './app/services/popover.service';"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"firestitch-popover.js","sources":["ng://@firestitch/popover/app/enums/position.ts","ng://@firestitch/popover/app/class/popover-ref.ts","ng://@firestitch/popover/app/components/popover-wrapper/popover-wrapper.component.ts","ng://@firestitch/popover/app/helpers/create-position-strategy.ts","ng://@firestitch/popover/app/helpers/create-overlay-ref.ts","ng://@firestitch/popover/app/helpers/create-injector.ts","ng://@firestitch/popover/app/helpers/create-template-portal.ts","ng://@firestitch/popover/app/services/popover.service.ts","ng://@firestitch/popover/app/helpers/point-in-rect.ts","ng://@firestitch/popover/app/components/popover/popover.component.ts","ng://@firestitch/popover/app/fs-popover.module.ts","ng://@firestitch/popover/public_api.ts","ng://@firestitch/popover/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';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { IPopoverConfig } from '../interfaces/popover-config.interface';\n\n\n@Injectable()\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 HostBinding,\n OnDestroy, NgZone,\n OnInit,\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})\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;\n\n @HostBinding('class') class;\n\n public hidden = false;\n\n private _wrapperClass;\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 ) {\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 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 this.class = ['popover-wrapper', this._wrapperClass].filter(Boolean).join(' ');\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","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()\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 template: TemplateRef<any>,\n data: any,\n popoverRef: FsPopoverRef,\n position: Position\n ) {\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 const templatePortal = createTempatePortal(template, popoverRef, data);\n\n containerRef.instance.attachTemplatePortal(templatePortal);\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 ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n HostBinding,\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@Component({\n selector: 'fs-popover',\n templateUrl: 'popover.component.html',\n styleUrls: [ 'popover.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FsPopoverComponent implements OnInit, OnDestroy {\n\n private _guid = guid('xxxxxxx');\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 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() {\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\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 _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 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(() => {\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._popoverService.activeElementGUID !== this._guid) {\n return;\n }\n\n this._hostBounds = this._elRef.nativeElement.getBoundingClientRect();\n\n this._ngZone.run(() => {\n this._wrapperElement = this._popoverService.openPopover(\n this._elRef,\n this.template,\n this.data,\n this._popoverRef,\n this.position\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 return merge(\n mouseMove$,\n this._mouseLeave$,\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 { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { FsPopoverComponent } from './components/popover/popover.component';\nimport { FsPopoverWrapperComponent } from './components/popover-wrapper/popover-wrapper.component';\nimport { FsPopoverService } from './services/popover.service';\n\n\n@NgModule({\n imports: [\n CommonModule,\n PortalModule,\n MatProgressSpinnerModule,\n ],\n declarations: [\n FsPopoverComponent,\n FsPopoverWrapperComponent,\n ],\n exports: [\n FsPopoverComponent,\n ],\n})\nexport class FsPopoverModule {\n static forRoot(): ModuleWithProviders<FsPopoverModule> {\n return {\n ngModule: FsPopoverModule,\n providers: [FsPopoverService]\n };\n }\n}\n","/*\n * Public API Surface of fs-menu\n */\n\nexport { FsPopoverModule } from './app/fs-popover.module';\n\nexport { FsPopoverComponent } from './app/components/popover/popover.component';\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\nexport {FsPopoverWrapperComponent as ɵb} from './app/components/popover-wrapper/popover-wrapper.component';\nexport {FsPopoverService as ɵa} from './app/services/popover.service';"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,9 @@ import { CommonModule } from '@angular/common';
|
|
|
4
4
|
import { CdkPortalOutlet, BasePortalOutlet, PortalInjector, TemplatePortal, ComponentPortal, PortalModule } from '@angular/cdk/portal';
|
|
5
5
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
6
6
|
import { NavigationEnd, Router } from '@angular/router';
|
|
7
|
-
import { BehaviorSubject, combineLatest, Subject, fromEvent, timer, pipe } from 'rxjs';
|
|
8
|
-
import { map, filter, takeUntil, debounceTime, delay, tap, switchMap } from 'rxjs/operators';
|
|
7
|
+
import { BehaviorSubject, combineLatest, Subject, fromEvent, timer, pipe, merge } from 'rxjs';
|
|
8
|
+
import { map, filter, takeUntil, debounceTime, delay, tap, switchMap, mapTo, startWith, distinctUntilChanged, withLatestFrom, finalize } from 'rxjs/operators';
|
|
9
|
+
import { guid } from '@firestitch/common';
|
|
9
10
|
import { OverlayConfig, Overlay } from '@angular/cdk/overlay';
|
|
10
11
|
|
|
11
12
|
var Position;
|
|
@@ -382,6 +383,16 @@ var FsPopoverService = /** @class */ (function () {
|
|
|
382
383
|
enumerable: true,
|
|
383
384
|
configurable: true
|
|
384
385
|
});
|
|
386
|
+
Object.defineProperty(FsPopoverService.prototype, "activeElementGUID", {
|
|
387
|
+
get: function () {
|
|
388
|
+
return this._activeElementGUID;
|
|
389
|
+
},
|
|
390
|
+
enumerable: true,
|
|
391
|
+
configurable: true
|
|
392
|
+
});
|
|
393
|
+
FsPopoverService.prototype.setActivePopoverGUID = function (value) {
|
|
394
|
+
this._activeElementGUID = value;
|
|
395
|
+
};
|
|
385
396
|
FsPopoverService.prototype.openPopover = function (el, template, data, popoverRef, position) {
|
|
386
397
|
if (this._activeElement) {
|
|
387
398
|
this.close(this._activeElement.popoverRef);
|
|
@@ -402,6 +413,7 @@ var FsPopoverService = /** @class */ (function () {
|
|
|
402
413
|
if (this._activeElement.popoverRef === popoverRef) {
|
|
403
414
|
popoverRef.close();
|
|
404
415
|
this._activeElement = void 0;
|
|
416
|
+
this._activeElementGUID = void 0;
|
|
405
417
|
}
|
|
406
418
|
};
|
|
407
419
|
FsPopoverService.prototype._openPortalPreview = function (component, overlayRef, popoverRef) {
|
|
@@ -430,6 +442,7 @@ var FsPopoverComponent = /** @class */ (function () {
|
|
|
430
442
|
this._popoverService = _popoverService;
|
|
431
443
|
this._ngZone = _ngZone;
|
|
432
444
|
this._router = _router;
|
|
445
|
+
this._guid = guid('xxxxxxx');
|
|
433
446
|
this.leaveDelay = 100;
|
|
434
447
|
this.showDelay = 0;
|
|
435
448
|
this.maxWidth = 250;
|
|
@@ -442,6 +455,9 @@ var FsPopoverComponent = /** @class */ (function () {
|
|
|
442
455
|
this.theme = 'light';
|
|
443
456
|
this.size = 'normal';
|
|
444
457
|
this.trigger = 'mouseover';
|
|
458
|
+
this._mouseEnter$ = fromEvent(this._elRef.nativeElement, 'mouseenter');
|
|
459
|
+
this._mouseMove$ = fromEvent(document, 'mousemove', { passive: true });
|
|
460
|
+
this._mouseLeave$ = fromEvent(this._elRef.nativeElement, 'mouseleave');
|
|
445
461
|
this._popoverClosed$ = new Subject();
|
|
446
462
|
this._destroy$ = new Subject();
|
|
447
463
|
}
|
|
@@ -519,14 +535,26 @@ var FsPopoverComponent = /** @class */ (function () {
|
|
|
519
535
|
};
|
|
520
536
|
FsPopoverComponent.prototype._listenMouseHostEnter = function () {
|
|
521
537
|
var _this = this;
|
|
522
|
-
|
|
538
|
+
var actualMouseState$ = merge(this._mouseLeave$.pipe(mapTo(true)), this._mouseEnter$.pipe(mapTo(false)))
|
|
539
|
+
.pipe(startWith(false), distinctUntilChanged());
|
|
540
|
+
this._mouseEnter$
|
|
523
541
|
.pipe(filter(function () {
|
|
524
542
|
return !_this._wrapperElement;
|
|
525
|
-
}),
|
|
543
|
+
}), tap(function () {
|
|
544
|
+
_this._popoverService.setActivePopoverGUID(_this._guid);
|
|
545
|
+
}), switchMap(function () { return _this.openTimer$; }),
|
|
546
|
+
// we have to check that after all delays mouse still over an elemen
|
|
547
|
+
withLatestFrom(actualMouseState$), filter(function (_a) {
|
|
548
|
+
var _b = __read(_a, 2), _ = _b[0], mouseLeave = _b[1];
|
|
549
|
+
return !mouseLeave;
|
|
550
|
+
}), tap(function () { return _this._openPopover(); }), switchMap(function () { return _this._listenMouseHostLeave$(); }), switchMap(function () { return _this.closeTimer$; }), tap(function () { return _this._closePopover(); }), finalize(function () { return _this._closePopover(); }), takeUntil(this._destroy$))
|
|
526
551
|
.subscribe();
|
|
527
552
|
};
|
|
528
553
|
FsPopoverComponent.prototype._openPopover = function () {
|
|
529
554
|
var _this = this;
|
|
555
|
+
if (this._popoverService.activeElementGUID !== this._guid) {
|
|
556
|
+
return;
|
|
557
|
+
}
|
|
530
558
|
this._hostBounds = this._elRef.nativeElement.getBoundingClientRect();
|
|
531
559
|
this._ngZone.run(function () {
|
|
532
560
|
_this._wrapperElement = _this._popoverService.openPopover(_this._elRef, _this.template, _this.data, _this._popoverRef, _this.position);
|
|
@@ -534,10 +562,11 @@ var FsPopoverComponent = /** @class */ (function () {
|
|
|
534
562
|
};
|
|
535
563
|
FsPopoverComponent.prototype._listenMouseHostLeave$ = function () {
|
|
536
564
|
var _this = this;
|
|
537
|
-
|
|
565
|
+
var mouseMove$ = this._mouseMove$
|
|
538
566
|
.pipe(debounceTime(50), filter(function () { return !!_this._wrapperElement; }), filter(function (event) {
|
|
539
567
|
return _this._popoverRef.autoClose && _this._mouseLeftTheTargets(event);
|
|
540
568
|
}));
|
|
569
|
+
return merge(mouseMove$, this._mouseLeave$);
|
|
541
570
|
};
|
|
542
571
|
// Check if mouse left target or popover rects
|
|
543
572
|
FsPopoverComponent.prototype._mouseLeftTheTargets = function (event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestitch-popover.js","sources":["ng://@firestitch/popover/app/enums/position.ts","ng://@firestitch/popover/app/class/popover-ref.ts","ng://@firestitch/popover/app/components/popover-wrapper/popover-wrapper.component.ts","ng://@firestitch/popover/app/helpers/create-position-strategy.ts","ng://@firestitch/popover/app/helpers/create-overlay-ref.ts","ng://@firestitch/popover/app/helpers/create-injector.ts","ng://@firestitch/popover/app/helpers/create-template-portal.ts","ng://@firestitch/popover/app/services/popover.service.ts","ng://@firestitch/popover/app/helpers/point-in-rect.ts","ng://@firestitch/popover/app/components/popover/popover.component.ts","ng://@firestitch/popover/app/fs-popover.module.ts","ng://@firestitch/popover/public_api.ts","ng://@firestitch/popover/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';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { IPopoverConfig } from '../interfaces/popover-config.interface';\n\n\n@Injectable()\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 HostBinding,\n OnDestroy, NgZone,\n OnInit,\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})\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;\n\n @HostBinding('class') class;\n\n public hidden = false;\n\n private _wrapperClass;\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 ) {\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 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 this.class = ['popover-wrapper', this._wrapperClass].filter(Boolean).join(' ');\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","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()\nexport class FsPopoverService {\n\n private _activeElement: IPopoverActiveElement;\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 openPopover(\n el: ElementRef,\n template: TemplateRef<any>,\n data: any,\n popoverRef: FsPopoverRef,\n position: Position\n ) {\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 const templatePortal = createTempatePortal(template, popoverRef, data);\n\n containerRef.instance.attachTemplatePortal(templatePortal);\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 }\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 ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n HostBinding,\n} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { fromEvent, pipe, Subject, timer, Observable } from 'rxjs';\nimport {\n debounceTime,\n delay,\n filter,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs/operators';\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@Component({\n selector: 'fs-popover',\n templateUrl: 'popover.component.html',\n styleUrls: [ 'popover.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FsPopoverComponent implements OnInit, OnDestroy {\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 private _popoverRef: FsPopoverRef;\n private _wrapperElement: Element;\n private _hostBounds: DOMRect;\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() {\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\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 _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 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 fromEvent(\n this._elRef.nativeElement,\n 'mouseenter',\n { passive: true }\n )\n .pipe(\n filter(() => {\n return !this._wrapperElement;\n }),\n switchMap(() => this.openTimer$),\n tap(() => this._openPopover()),\n switchMap(() => this._listenMouseHostLeave$()),\n switchMap(() => this.closeTimer$),\n tap(() => this._closePopover()),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n\n private _openPopover(): void {\n this._hostBounds = this._elRef.nativeElement.getBoundingClientRect();\n\n this._ngZone.run(() => {\n this._wrapperElement = this._popoverService.openPopover(\n this._elRef,\n this.template,\n this.data,\n this._popoverRef,\n this.position\n );\n });\n }\n\n private _listenMouseHostLeave$(): Observable<MouseEvent> {\n return fromEvent(document, 'mousemove', { passive: true })\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\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 { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { FsPopoverComponent } from './components/popover/popover.component';\nimport { FsPopoverWrapperComponent } from './components/popover-wrapper/popover-wrapper.component';\nimport { FsPopoverService } from './services/popover.service';\n\n\n@NgModule({\n imports: [\n CommonModule,\n PortalModule,\n MatProgressSpinnerModule,\n ],\n declarations: [\n FsPopoverComponent,\n FsPopoverWrapperComponent,\n ],\n exports: [\n FsPopoverComponent,\n ],\n})\nexport class FsPopoverModule {\n static forRoot(): ModuleWithProviders<FsPopoverModule> {\n return {\n ngModule: FsPopoverModule,\n providers: [FsPopoverService]\n };\n }\n}\n","/*\n * Public API Surface of fs-menu\n */\n\nexport { FsPopoverModule } from './app/fs-popover.module';\n\nexport { FsPopoverComponent } from './app/components/popover/popover.component';\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\nexport {FsPopoverWrapperComponent as ɵb} from './app/components/popover-wrapper/popover-wrapper.component';\nexport {FsPopoverService as ɵa} from './app/services/popover.service';"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"firestitch-popover.js","sources":["ng://@firestitch/popover/app/enums/position.ts","ng://@firestitch/popover/app/class/popover-ref.ts","ng://@firestitch/popover/app/components/popover-wrapper/popover-wrapper.component.ts","ng://@firestitch/popover/app/helpers/create-position-strategy.ts","ng://@firestitch/popover/app/helpers/create-overlay-ref.ts","ng://@firestitch/popover/app/helpers/create-injector.ts","ng://@firestitch/popover/app/helpers/create-template-portal.ts","ng://@firestitch/popover/app/services/popover.service.ts","ng://@firestitch/popover/app/helpers/point-in-rect.ts","ng://@firestitch/popover/app/components/popover/popover.component.ts","ng://@firestitch/popover/app/fs-popover.module.ts","ng://@firestitch/popover/public_api.ts","ng://@firestitch/popover/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';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { IPopoverConfig } from '../interfaces/popover-config.interface';\n\n\n@Injectable()\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 HostBinding,\n OnDestroy, NgZone,\n OnInit,\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})\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;\n\n @HostBinding('class') class;\n\n public hidden = false;\n\n private _wrapperClass;\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 ) {\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 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 this.class = ['popover-wrapper', this._wrapperClass].filter(Boolean).join(' ');\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","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()\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 template: TemplateRef<any>,\n data: any,\n popoverRef: FsPopoverRef,\n position: Position\n ) {\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 const templatePortal = createTempatePortal(template, popoverRef, data);\n\n containerRef.instance.attachTemplatePortal(templatePortal);\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 ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n HostBinding,\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@Component({\n selector: 'fs-popover',\n templateUrl: 'popover.component.html',\n styleUrls: [ 'popover.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FsPopoverComponent implements OnInit, OnDestroy {\n\n private _guid = guid('xxxxxxx');\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 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() {\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\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 _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 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(() => {\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._popoverService.activeElementGUID !== this._guid) {\n return;\n }\n\n this._hostBounds = this._elRef.nativeElement.getBoundingClientRect();\n\n this._ngZone.run(() => {\n this._wrapperElement = this._popoverService.openPopover(\n this._elRef,\n this.template,\n this.data,\n this._popoverRef,\n this.position\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 return merge(\n mouseMove$,\n this._mouseLeave$,\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 { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { FsPopoverComponent } from './components/popover/popover.component';\nimport { FsPopoverWrapperComponent } from './components/popover-wrapper/popover-wrapper.component';\nimport { FsPopoverService } from './services/popover.service';\n\n\n@NgModule({\n imports: [\n CommonModule,\n PortalModule,\n MatProgressSpinnerModule,\n ],\n declarations: [\n FsPopoverComponent,\n FsPopoverWrapperComponent,\n ],\n exports: [\n FsPopoverComponent,\n ],\n})\nexport class FsPopoverModule {\n static forRoot(): ModuleWithProviders<FsPopoverModule> {\n return {\n ngModule: FsPopoverModule,\n providers: [FsPopoverService]\n };\n }\n}\n","/*\n * Public API Surface of fs-menu\n */\n\nexport { FsPopoverModule } from './app/fs-popover.module';\n\nexport { FsPopoverComponent } from './app/components/popover/popover.component';\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\nexport {FsPopoverWrapperComponent as ɵb} from './app/components/popover-wrapper/popover-wrapper.component';\nexport {FsPopoverService as ɵa} from './app/services/popover.service';"],"names":[],"mappings":"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"}
|