@firestitch/popover 9.4.10 → 9.4.14
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 +3 -0
- package/bundles/firestitch-popover.umd.js +24 -4
- package/bundles/firestitch-popover.umd.js.map +1 -1
- package/bundles/firestitch-popover.umd.min.js +1 -1
- package/bundles/firestitch-popover.umd.min.js.map +1 -1
- package/esm2015/app/components/popover/popover.component.js +25 -7
- package/esm2015/app/services/popover.service.js +2 -1
- package/esm5/app/components/popover/popover.component.js +27 -8
- package/esm5/app/services/popover.service.js +2 -1
- package/fesm2015/firestitch-popover.js +25 -6
- package/fesm2015/firestitch-popover.js.map +1 -1
- package/fesm5/firestitch-popover.js +26 -6
- package/fesm5/firestitch-popover.js.map +1 -1
- package/firestitch-popover.metadata.json +1 -1
- package/package.json +6 -5
|
@@ -48,6 +48,7 @@ var FsPopoverService = /** @class */ (function () {
|
|
|
48
48
|
if (this._activeElement.popoverRef === popoverRef) {
|
|
49
49
|
popoverRef.close();
|
|
50
50
|
this._activeElement = void 0;
|
|
51
|
+
this._activeElementGUID = void 0;
|
|
51
52
|
}
|
|
52
53
|
};
|
|
53
54
|
FsPopoverService.prototype._openPortalPreview = function (component, overlayRef, popoverRef) {
|
|
@@ -66,4 +67,4 @@ var FsPopoverService = /** @class */ (function () {
|
|
|
66
67
|
return FsPopoverService;
|
|
67
68
|
}());
|
|
68
69
|
export { FsPopoverService };
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvcG9wb3Zlci8iLCJzb3VyY2VzIjpbImFwcC9zZXJ2aWNlcy9wb3BvdmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUUsT0FBTyxFQUNMLGFBQWEsRUFDYixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSXRELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUt4RTtJQUtFLDBCQUNVLFNBQW1CLEVBQ25CLFFBQWlCO1FBRGpCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBUztJQUN4QixDQUFDO0lBRUosc0JBQVcsOENBQWdCO2FBQTNCO1lBQ0UsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMvQixDQUFDOzs7T0FBQTtJQUVELHNCQUFXLCtDQUFpQjthQUE1QjtZQUNFLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ2pDLENBQUM7OztPQUFBO0lBRU0sK0NBQW9CLEdBQTNCLFVBQTRCLEtBQWE7UUFDdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRU0sc0NBQVcsR0FBbEIsVUFDRSxFQUFjLEVBQ2QsUUFBMEIsRUFDMUIsSUFBUyxFQUNULFVBQXdCLEVBQ3hCLFFBQWtCO1FBR2xCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUE7U0FDM0M7UUFFRCxJQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRSxJQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2hHLElBQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFdkUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzRCxVQUFVLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUVuQyxJQUFJLENBQUMsY0FBYyxHQUFHO1lBQ3BCLFVBQVUsWUFBQTtZQUNWLFVBQVUsWUFBQTtTQUNYLENBQUM7UUFFRixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFTSxnQ0FBSyxHQUFaLFVBQWEsVUFBK0I7UUFBL0IsMkJBQUEsRUFBQSxpQkFBK0I7UUFDMUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7WUFDakQsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVPLDZDQUFrQixHQUExQixVQUNFLFNBQW1ELEVBQ25ELFVBQXNCLEVBQ3RCLFVBQXdCO1FBRXhCLElBQU0sZUFBZSxHQUFHLElBQUksZUFBZSxDQUN6QyxTQUFTLEVBQ1QsS0FBSyxDQUFDLEVBQ04sY0FBYyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzNDLENBQUM7UUFFRixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7Z0JBL0RvQixRQUFRO2dCQUNULE9BQU87O0lBUGhCLGdCQUFnQjtRQUQ1QixVQUFVLEVBQUU7eUNBT1UsUUFBUTtZQUNULE9BQU87T0FQaEIsZ0JBQWdCLENBc0U1QjtJQUFELHVCQUFDO0NBQUEsQUF0RUQsSUFzRUM7U0F0RVksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudFR5cGUsXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcblxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi8uLi9lbnVtcy9wb3NpdGlvbic7XG5pbXBvcnQgeyBGc1BvcG92ZXJSZWYgfSBmcm9tICcuLi9jbGFzcy9wb3BvdmVyLXJlZic7XG5pbXBvcnQgeyBGc1BvcG92ZXJXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wb3BvdmVyLXdyYXBwZXIvcG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjcmVhdGVPdmVybGF5UmVmIH0gZnJvbSAnLi4vaGVscGVycy9jcmVhdGUtb3ZlcmxheS1yZWYnO1xuaW1wb3J0IHsgY3JlYXRlSW5qZWN0b3IgfSBmcm9tICcuLi9oZWxwZXJzL2NyZWF0ZS1pbmplY3Rvcic7XG5pbXBvcnQgeyBjcmVhdGVUZW1wYXRlUG9ydGFsIH0gZnJvbSAnLi4vaGVscGVycy9jcmVhdGUtdGVtcGxhdGUtcG9ydGFsJztcbmltcG9ydCB7IElQb3BvdmVyQWN0aXZlRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9wb3Zlci1jb25maWcuaW50ZXJmYWNlJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRnNQb3BvdmVyU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlRWxlbWVudDogSVBvcG92ZXJBY3RpdmVFbGVtZW50O1xuICBwcml2YXRlIF9hY3RpdmVFbGVtZW50R1VJRDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICApIHt9XG5cbiAgcHVibGljIGdldCBoYXNBY3RpdmVQb3BvdmVyKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2FjdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZUVsZW1lbnRHVUlEKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUVsZW1lbnRHVUlEO1xuICB9XG5cbiAgcHVibGljIHNldEFjdGl2ZVBvcG92ZXJHVUlEKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hY3RpdmVFbGVtZW50R1VJRCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIG9wZW5Qb3BvdmVyKFxuICAgIGVsOiBFbGVtZW50UmVmLFxuICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIGRhdGE6IGFueSxcbiAgICBwb3BvdmVyUmVmOiBGc1BvcG92ZXJSZWYsXG4gICAgcG9zaXRpb246IFBvc2l0aW9uXG4gICkge1xuXG4gICAgaWYgKHRoaXMuX2FjdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuY2xvc2UodGhpcy5fYWN0aXZlRWxlbWVudC5wb3BvdmVyUmVmKVxuICAgIH1cblxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSBjcmVhdGVPdmVybGF5UmVmKGVsLCB0aGlzLl9vdmVybGF5LCBwb3NpdGlvbik7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdGhpcy5fb3BlblBvcnRhbFByZXZpZXcoRnNQb3BvdmVyV3JhcHBlckNvbXBvbmVudCwgb3ZlcmxheVJlZiwgcG9wb3ZlclJlZik7XG4gICAgY29uc3QgdGVtcGxhdGVQb3J0YWwgPSBjcmVhdGVUZW1wYXRlUG9ydGFsKHRlbXBsYXRlLCBwb3BvdmVyUmVmLCBkYXRhKTtcblxuICAgIGNvbnRhaW5lclJlZi5pbnN0YW5jZS5hdHRhY2hUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZVBvcnRhbCk7XG4gICAgcG9wb3ZlclJlZi5vdmVybGF5UmVmID0gb3ZlcmxheVJlZjtcblxuICAgIHRoaXMuX2FjdGl2ZUVsZW1lbnQgPSB7XG4gICAgICBvdmVybGF5UmVmLFxuICAgICAgcG9wb3ZlclJlZixcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbnRhaW5lclJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIGNsb3NlKHBvcG92ZXJSZWY6IEZzUG9wb3ZlclJlZiA9IG51bGwpIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlRWxlbWVudC5wb3BvdmVyUmVmID09PSBwb3BvdmVyUmVmKSB7XG4gICAgICBwb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICB0aGlzLl9hY3RpdmVFbGVtZW50ID0gdm9pZCAwO1xuICAgICAgdGhpcy5fYWN0aXZlRWxlbWVudEdVSUQgPSB2b2lkIDA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb3BlblBvcnRhbFByZXZpZXcoXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEZzUG9wb3ZlcldyYXBwZXJDb21wb25lbnQ+LFxuICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgcG9wb3ZlclJlZjogRnNQb3BvdmVyUmVmLFxuICApIHtcbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsPEZzUG9wb3ZlcldyYXBwZXJDb21wb25lbnQ+KFxuICAgICAgY29tcG9uZW50LFxuICAgICAgdm9pZCAwLFxuICAgICAgY3JlYXRlSW5qZWN0b3IocG9wb3ZlclJlZiwgdGhpcy5faW5qZWN0b3IpLFxuICAgICk7XG5cbiAgICByZXR1cm4gb3ZlcmxheVJlZi5hdHRhY2goY29udGFpbmVyUG9ydGFsKTtcbiAgfVxufVxuIl19
|
|
@@ -4,8 +4,8 @@ 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, finalize } 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
9
|
import { guid } from '@firestitch/common';
|
|
10
10
|
import { OverlayConfig, Overlay } from '@angular/cdk/overlay';
|
|
11
11
|
|
|
@@ -334,6 +334,7 @@ let FsPopoverService = class FsPopoverService {
|
|
|
334
334
|
if (this._activeElement.popoverRef === popoverRef) {
|
|
335
335
|
popoverRef.close();
|
|
336
336
|
this._activeElement = void 0;
|
|
337
|
+
this._activeElementGUID = void 0;
|
|
337
338
|
}
|
|
338
339
|
}
|
|
339
340
|
_openPortalPreview(component, overlayRef, popoverRef) {
|
|
@@ -374,6 +375,9 @@ let FsPopoverComponent = class FsPopoverComponent {
|
|
|
374
375
|
this.theme = 'light';
|
|
375
376
|
this.size = 'normal';
|
|
376
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');
|
|
377
381
|
this._popoverClosed$ = new Subject();
|
|
378
382
|
this._destroy$ = new Subject();
|
|
379
383
|
}
|
|
@@ -438,27 +442,42 @@ let FsPopoverComponent = class FsPopoverComponent {
|
|
|
438
442
|
});
|
|
439
443
|
}
|
|
440
444
|
_listenMouseHostEnter() {
|
|
441
|
-
|
|
445
|
+
const actualMouseState$ = merge(this._mouseLeave$.pipe(mapTo(true)), this._mouseEnter$.pipe(mapTo(false)))
|
|
446
|
+
.pipe(startWith(false), distinctUntilChanged());
|
|
447
|
+
this._mouseEnter$
|
|
442
448
|
.pipe(filter(() => {
|
|
443
449
|
return !this._wrapperElement;
|
|
444
450
|
}), tap(() => {
|
|
445
451
|
this._popoverService.setActivePopoverGUID(this._guid);
|
|
446
|
-
}), switchMap(() => this.openTimer$),
|
|
447
|
-
|
|
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;
|
|
448
456
|
}), tap(() => this._openPopover()), switchMap(() => this._listenMouseHostLeave$()), switchMap(() => this.closeTimer$), tap(() => this._closePopover()), finalize(() => this._closePopover()), takeUntil(this._destroy$))
|
|
449
457
|
.subscribe();
|
|
450
458
|
}
|
|
451
459
|
_openPopover() {
|
|
460
|
+
if (this._popoverService.activeElementGUID !== this._guid) {
|
|
461
|
+
return;
|
|
462
|
+
}
|
|
452
463
|
this._hostBounds = this._elRef.nativeElement.getBoundingClientRect();
|
|
453
464
|
this._ngZone.run(() => {
|
|
454
465
|
this._wrapperElement = this._popoverService.openPopover(this._elRef, this.template, this.data, this._popoverRef, this.position);
|
|
455
466
|
});
|
|
456
467
|
}
|
|
457
468
|
_listenMouseHostLeave$() {
|
|
458
|
-
|
|
469
|
+
const mouseMove$ = this._mouseMove$
|
|
459
470
|
.pipe(debounceTime(50), filter(() => !!this._wrapperElement), filter((event) => {
|
|
460
471
|
return this._popoverRef.autoClose && this._mouseLeftTheTargets(event);
|
|
461
472
|
}));
|
|
473
|
+
const mouseClick$ = fromEvent(this._elRef.nativeElement, 'click');
|
|
474
|
+
return merge(mouseMove$, mouseClick$);
|
|
475
|
+
//
|
|
476
|
+
// return this._mouseLeave$
|
|
477
|
+
// .pipe(
|
|
478
|
+
// //
|
|
479
|
+
// timeoutWith(200, mouseMove$),
|
|
480
|
+
// );
|
|
462
481
|
}
|
|
463
482
|
// Check if mouse left target or popover rects
|
|
464
483
|
_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 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 }\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 finalize,\n switchMap,\n takeUntil,\n tap,\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 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 tap(() => {\n this._popoverService.setActivePopoverGUID(this._guid);\n }),\n switchMap(() => this.openTimer$),\n filter(() => {\n return this._popoverService.activeElementGUID === this._guid;\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 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 const mouseClick$ = fromEvent<MouseEvent>(this._elRef.nativeElement, 'click');\n\n return merge(\n mouseMove$,\n mouseClick$,\n );\n //\n // return this._mouseLeave$\n // .pipe(\n // //\n // timeoutWith(200, mouseMove$),\n // );\n }\n\n // Check if mouse left target or popover rects\n private _mouseLeftTheTargets(event: MouseEvent): boolean {\n const hostBounds = this._hostBounds;\n const popoverBounds = this._wrapperElement.getBoundingClientRect();\n\n const pointInHostRect = pointInRect(\n hostBounds.x,\n hostBounds.y,\n hostBounds.x + hostBounds.width,\n hostBounds.y + hostBounds.height,\n event.x,\n event.y\n );\n\n const pointInPopoverRect = pointInRect(\n popoverBounds.x,\n popoverBounds.y,\n popoverBounds.x + popoverBounds.width,\n popoverBounds.y + popoverBounds.height,\n event.x,\n event.y\n );\n\n return !pointInHostRect && !pointInPopoverRect;\n }\n}\n","import { 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,8 @@ 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, finalize } 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
9
|
import { guid } from '@firestitch/common';
|
|
10
10
|
import { OverlayConfig, Overlay } from '@angular/cdk/overlay';
|
|
11
11
|
|
|
@@ -413,6 +413,7 @@ var FsPopoverService = /** @class */ (function () {
|
|
|
413
413
|
if (this._activeElement.popoverRef === popoverRef) {
|
|
414
414
|
popoverRef.close();
|
|
415
415
|
this._activeElement = void 0;
|
|
416
|
+
this._activeElementGUID = void 0;
|
|
416
417
|
}
|
|
417
418
|
};
|
|
418
419
|
FsPopoverService.prototype._openPortalPreview = function (component, overlayRef, popoverRef) {
|
|
@@ -454,6 +455,9 @@ var FsPopoverComponent = /** @class */ (function () {
|
|
|
454
455
|
this.theme = 'light';
|
|
455
456
|
this.size = 'normal';
|
|
456
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');
|
|
457
461
|
this._popoverClosed$ = new Subject();
|
|
458
462
|
this._destroy$ = new Subject();
|
|
459
463
|
}
|
|
@@ -531,18 +535,26 @@ var FsPopoverComponent = /** @class */ (function () {
|
|
|
531
535
|
};
|
|
532
536
|
FsPopoverComponent.prototype._listenMouseHostEnter = function () {
|
|
533
537
|
var _this = this;
|
|
534
|
-
|
|
538
|
+
var actualMouseState$ = merge(this._mouseLeave$.pipe(mapTo(true)), this._mouseEnter$.pipe(mapTo(false)))
|
|
539
|
+
.pipe(startWith(false), distinctUntilChanged());
|
|
540
|
+
this._mouseEnter$
|
|
535
541
|
.pipe(filter(function () {
|
|
536
542
|
return !_this._wrapperElement;
|
|
537
543
|
}), tap(function () {
|
|
538
544
|
_this._popoverService.setActivePopoverGUID(_this._guid);
|
|
539
|
-
}), switchMap(function () { return _this.openTimer$; }),
|
|
540
|
-
|
|
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;
|
|
541
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$))
|
|
542
551
|
.subscribe();
|
|
543
552
|
};
|
|
544
553
|
FsPopoverComponent.prototype._openPopover = function () {
|
|
545
554
|
var _this = this;
|
|
555
|
+
if (this._popoverService.activeElementGUID !== this._guid) {
|
|
556
|
+
return;
|
|
557
|
+
}
|
|
546
558
|
this._hostBounds = this._elRef.nativeElement.getBoundingClientRect();
|
|
547
559
|
this._ngZone.run(function () {
|
|
548
560
|
_this._wrapperElement = _this._popoverService.openPopover(_this._elRef, _this.template, _this.data, _this._popoverRef, _this.position);
|
|
@@ -550,10 +562,18 @@ var FsPopoverComponent = /** @class */ (function () {
|
|
|
550
562
|
};
|
|
551
563
|
FsPopoverComponent.prototype._listenMouseHostLeave$ = function () {
|
|
552
564
|
var _this = this;
|
|
553
|
-
|
|
565
|
+
var mouseMove$ = this._mouseMove$
|
|
554
566
|
.pipe(debounceTime(50), filter(function () { return !!_this._wrapperElement; }), filter(function (event) {
|
|
555
567
|
return _this._popoverRef.autoClose && _this._mouseLeftTheTargets(event);
|
|
556
568
|
}));
|
|
569
|
+
var mouseClick$ = fromEvent(this._elRef.nativeElement, 'click');
|
|
570
|
+
return merge(mouseMove$, mouseClick$);
|
|
571
|
+
//
|
|
572
|
+
// return this._mouseLeave$
|
|
573
|
+
// .pipe(
|
|
574
|
+
// //
|
|
575
|
+
// timeoutWith(200, mouseMove$),
|
|
576
|
+
// );
|
|
557
577
|
};
|
|
558
578
|
// Check if mouse left target or popover rects
|
|
559
579
|
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 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 }\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 finalize,\n switchMap,\n takeUntil,\n tap,\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 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 tap(() => {\n this._popoverService.setActivePopoverGUID(this._guid);\n }),\n switchMap(() => this.openTimer$),\n filter(() => {\n return this._popoverService.activeElementGUID === this._guid;\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 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 const mouseClick$ = fromEvent<MouseEvent>(this._elRef.nativeElement, 'click');\n\n return merge(\n mouseMove$,\n mouseClick$,\n );\n //\n // return this._mouseLeave$\n // .pipe(\n // //\n // timeoutWith(200, mouseMove$),\n // );\n }\n\n // Check if mouse left target or popover rects\n private _mouseLeftTheTargets(event: MouseEvent): boolean {\n const hostBounds = this._hostBounds;\n const popoverBounds = this._wrapperElement.getBoundingClientRect();\n\n const pointInHostRect = pointInRect(\n hostBounds.x,\n hostBounds.y,\n hostBounds.x + hostBounds.width,\n hostBounds.y + hostBounds.height,\n event.x,\n event.y\n );\n\n const pointInPopoverRect = pointInRect(\n popoverBounds.x,\n popoverBounds.y,\n popoverBounds.x + popoverBounds.width,\n popoverBounds.y + popoverBounds.height,\n event.x,\n event.y\n );\n\n return !pointInHostRect && !pointInPopoverRect;\n }\n}\n","import { 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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"}
|