UNPKG

desktop-menu-bar

Version:
67 lines 9.17 kB
import { __decorate } from "tslib"; import { Injectable, ApplicationRef, ComponentFactoryResolver, Injector, ComponentRef } from '@angular/core'; import { DesktopMenuBarComponent } from '../lib/desktop-menu-bar/desktop-menu-bar.component'; import * as i0 from "@angular/core"; var DesktopMenuBarService = /** @class */ (function () { function DesktopMenuBarService(applicationRef, resolver, injector) { this.applicationRef = applicationRef; this.resolver = resolver; this.injector = injector; this.menuComponentRef = null; this.menuItems = null; } DesktopMenuBarService.prototype.setMenuBarItems = function (items) { this.menuItems = items; this.updateMenuBarItemsInComponent(); }; DesktopMenuBarService.prototype.updateMenuBarItemsInComponent = function () { if (this.isMenuBarVisible()) { this.menuComponentRef.instance.items = this.menuItems; } }; DesktopMenuBarService.prototype.showMenuBar = function () { if (!this.isMenuBarVisible()) { var componentFactory = this.resolver.resolveComponentFactory(DesktopMenuBarComponent); this.menuComponentRef = componentFactory.create(this.injector); this.applicationRef.attachView(this.menuComponentRef.hostView); this.moveToDocumentBody(this.menuComponentRef); this.updateMenuBarItemsInComponent(); } }; DesktopMenuBarService.prototype.hideMenuBar = function () { if (this.isMenuBarVisible()) { this.applicationRef.detachView(this.menuComponentRef.hostView); this.detachFromDocument(this.menuComponentRef); this.menuComponentRef = null; } }; DesktopMenuBarService.prototype.isMenuBarVisible = function () { return !!this.menuComponentRef; }; DesktopMenuBarService.prototype.moveToElement = function (componentRef, element) { element.insertBefore(componentRef.location.nativeElement, element.firstChild); }; DesktopMenuBarService.prototype.moveToDocumentBody = function (componentRef) { this.moveToElement(componentRef, document.querySelector('body')); }; DesktopMenuBarService.prototype.detachFromDocument = function (componentRef) { var element = componentRef.location.nativeElement; if (element.parentNode) { element.parentNode.removeChild(element); } }; DesktopMenuBarService.ctorParameters = function () { return [ { type: ApplicationRef }, { type: ComponentFactoryResolver }, { type: Injector } ]; }; DesktopMenuBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DesktopMenuBarService_Factory() { return new DesktopMenuBarService(i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.INJECTOR)); }, token: DesktopMenuBarService, providedIn: "root" }); DesktopMenuBarService = __decorate([ Injectable({ providedIn: 'root' }) ], DesktopMenuBarService); return DesktopMenuBarService; }()); export { DesktopMenuBarService }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVza3RvcC1tZW51LWJhci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZGVza3RvcC1tZW51LWJhci8iLCJzb3VyY2VzIjpbImxpYi9kZXNrdG9wLW1lbnUtYmFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxVQUFVLEVBQ1YsY0FBYyxFQUNkLHdCQUF3QixFQUN4QixRQUFRLEVBQ1IsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOztBQU03RjtJQUlJLCtCQUNZLGNBQThCLEVBQzlCLFFBQWtDLEVBQ2xDLFFBQWtCO1FBRmxCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTjlCLHFCQUFnQixHQUEwQyxJQUFJLENBQUM7UUFDL0QsY0FBUyxHQUF5QixJQUFJLENBQUM7SUFNcEMsQ0FBQztJQUVKLCtDQUFlLEdBQWYsVUFBZ0IsS0FBMkI7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELDZEQUE2QixHQUE3QjtRQUNJLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN6RDtJQUNMLENBQUM7SUFFRCwyQ0FBVyxHQUFYO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO1lBQzFCLElBQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FDMUQsdUJBQXVCLENBQzFCLENBQUM7WUFDRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRS9DLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQztJQUVELDJDQUFXLEdBQVg7UUFDSSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztTQUNoQztJQUNMLENBQUM7SUFFRCxnREFBZ0IsR0FBaEI7UUFDSSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDbkMsQ0FBQztJQUVPLDZDQUFhLEdBQXJCLFVBQXlCLFlBQTZCLEVBQUUsT0FBZ0I7UUFDcEUsT0FBTyxDQUFDLFlBQVksQ0FDaEIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQ25DLE9BQU8sQ0FBQyxVQUFVLENBQ3JCLENBQUM7SUFDTixDQUFDO0lBRU8sa0RBQWtCLEdBQTFCLFVBQThCLFlBQTZCO1FBQ3ZELElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU8sa0RBQWtCLEdBQTFCLFVBQThCLFlBQTZCO1FBQ3ZELElBQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBd0IsQ0FBQztRQUMvRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDcEIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0M7SUFDTCxDQUFDOztnQkF6RDJCLGNBQWM7Z0JBQ3BCLHdCQUF3QjtnQkFDeEIsUUFBUTs7O0lBUHJCLHFCQUFxQjtRQUhqQyxVQUFVLENBQUM7WUFDUixVQUFVLEVBQUUsTUFBTTtTQUNyQixDQUFDO09BQ1cscUJBQXFCLENBK0RqQztnQ0E1RUQ7Q0E0RUMsQUEvREQsSUErREM7U0EvRFkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJbmplY3RhYmxlLFxuICAgIEFwcGxpY2F0aW9uUmVmLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBJbmplY3RvcixcbiAgICBDb21wb25lbnRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZXNrdG9wTWVudUJhckNvbXBvbmVudCB9IGZyb20gJy4uL2xpYi9kZXNrdG9wLW1lbnUtYmFyL2Rlc2t0b3AtbWVudS1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IERlc2t0b3BNZW51QmFySXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZGVza3RvcC1tZW51LWJhci1pdGVtLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGVza3RvcE1lbnVCYXJTZXJ2aWNlIHtcbiAgICBtZW51Q29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8RGVza3RvcE1lbnVCYXJDb21wb25lbnQ+ID0gbnVsbDtcbiAgICBtZW51SXRlbXM6IERlc2t0b3BNZW51QmFySXRlbVtdID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICAgICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge31cblxuICAgIHNldE1lbnVCYXJJdGVtcyhpdGVtczogRGVza3RvcE1lbnVCYXJJdGVtW10pIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbXMgPSBpdGVtcztcbiAgICAgICAgdGhpcy51cGRhdGVNZW51QmFySXRlbXNJbkNvbXBvbmVudCgpO1xuICAgIH1cblxuICAgIHVwZGF0ZU1lbnVCYXJJdGVtc0luQ29tcG9uZW50KCkge1xuICAgICAgICBpZiAodGhpcy5pc01lbnVCYXJWaXNpYmxlKCkpIHtcbiAgICAgICAgICAgIHRoaXMubWVudUNvbXBvbmVudFJlZi5pbnN0YW5jZS5pdGVtcyA9IHRoaXMubWVudUl0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd01lbnVCYXIoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01lbnVCYXJWaXNpYmxlKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFxuICAgICAgICAgICAgICAgIERlc2t0b3BNZW51QmFyQ29tcG9uZW50XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5tZW51Q29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLmF0dGFjaFZpZXcodGhpcy5tZW51Q29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgICAgIHRoaXMubW92ZVRvRG9jdW1lbnRCb2R5KHRoaXMubWVudUNvbXBvbmVudFJlZik7XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlTWVudUJhckl0ZW1zSW5Db21wb25lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhpZGVNZW51QmFyKCkge1xuICAgICAgICBpZiAodGhpcy5pc01lbnVCYXJWaXNpYmxlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYuZGV0YWNoVmlldyh0aGlzLm1lbnVDb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgICAgdGhpcy5kZXRhY2hGcm9tRG9jdW1lbnQodGhpcy5tZW51Q29tcG9uZW50UmVmKTtcbiAgICAgICAgICAgIHRoaXMubWVudUNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc01lbnVCYXJWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLm1lbnVDb21wb25lbnRSZWY7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtb3ZlVG9FbGVtZW50PFQ+KGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+LCBlbGVtZW50OiBFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGVsZW1lbnQuaW5zZXJ0QmVmb3JlKFxuICAgICAgICAgICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBlbGVtZW50LmZpcnN0Q2hpbGRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdmVUb0RvY3VtZW50Qm9keTxUPihjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPikge1xuICAgICAgICB0aGlzLm1vdmVUb0VsZW1lbnQoY29tcG9uZW50UmVmLCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGV0YWNoRnJvbURvY3VtZW50PFQ+KGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+KSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCBhcyBFbGVtZW50O1xuICAgICAgICBpZiAoZWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICBlbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=