UNPKG

@addapptables/notifier

Version:
101 lines 7.01 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, ApplicationRef, Inject, Injector, ComponentFactoryResolver } from '@angular/core'; import { NotifierContainerService } from './notifier-container.service'; import { DOCUMENT } from '@angular/common'; import { DomPortalOutlet } from '@angular/cdk/portal'; import { NOTIFIER } from '../constants'; /** @type {?} */ let nextUniqueId = 0; export class NotifierPortalService { /** * @param {?} _notifierContainerService * @param {?} _document * @param {?} _injector * @param {?} _componentFactoryResolver */ constructor(_notifierContainerService, _document, _injector, _componentFactoryResolver) { this._notifierContainerService = _notifierContainerService; this._document = _document; this._injector = _injector; this._componentFactoryResolver = _componentFactoryResolver; } /** * @return {?} */ create() { /** @type {?} */ const pane = this._createPaneElement(); /** @type {?} */ const portal = this._createPortalOutlet(pane); return portal; } /** * @private * @param {?} pane * @return {?} */ _createPortalOutlet(pane) { if (!this._appRef) { this._appRef = this._injector.get(ApplicationRef); } return new DomPortalOutlet(pane, this._componentFactoryResolver, this._appRef, this._injector); } /** * @private * @return {?} */ _createPaneElement() { /** @type {?} */ const pane = this._document.createElement('div'); pane.id = `${NOTIFIER + nextUniqueId++}`; this._notifierContainerService.getContainerElement().appendChild(pane); return pane; } /** * @return {?} */ get getLastUniqueId() { return `${NOTIFIER + (nextUniqueId - 1)}`; } } NotifierPortalService.decorators = [ { type: Injectable } ]; /** @nocollapse */ NotifierPortalService.ctorParameters = () => [ { type: NotifierContainerService }, { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }, { type: Injector }, { type: ComponentFactoryResolver } ]; if (false) { /** * @type {?} * @private */ NotifierPortalService.prototype._appRef; /** * @type {?} * @private */ NotifierPortalService.prototype._notifierContainerService; /** * @type {?} * @private */ NotifierPortalService.prototype._document; /** * @type {?} * @private */ NotifierPortalService.prototype._injector; /** * @type {?} * @private */ NotifierPortalService.prototype._componentFactoryResolver; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpZXItcG9ydGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRkYXBwdGFibGVzL25vdGlmaWVyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL25vdGlmaWVyLXBvcnRhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7SUFFcEMsWUFBWSxHQUFHLENBQUM7QUFHcEIsTUFBTSxPQUFPLHFCQUFxQjs7Ozs7OztJQUloQyxZQUNVLHlCQUFtRCxFQUNqQyxTQUFjLEVBQ2hDLFNBQW1CLEVBQ25CLHlCQUFtRDtRQUhuRCw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFDaEMsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO0lBQ3pELENBQUM7Ozs7SUFFTCxNQUFNOztjQUNFLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7O2NBQ2hDLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1FBQzdDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Ozs7OztJQUVPLG1CQUFtQixDQUFDLElBQWlCO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQWlCLGNBQWMsQ0FBQyxDQUFDO1NBQ25FO1FBQ0QsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7Ozs7O0lBRU8sa0JBQWtCOztjQUNsQixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQ2hELElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxRQUFRLEdBQUcsWUFBWSxFQUFFLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMseUJBQXlCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7O0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sR0FBRyxRQUFRLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM1QyxDQUFDOzs7WUFsQ0YsVUFBVTs7OztZQVBGLHdCQUF3Qjs0Q0FjNUIsTUFBTSxTQUFDLFFBQVE7WUFmeUIsUUFBUTtZQUFFLHdCQUF3Qjs7Ozs7OztJQVc3RSx3Q0FBZ0M7Ozs7O0lBRzlCLDBEQUEyRDs7Ozs7SUFDM0QsMENBQXdDOzs7OztJQUN4QywwQ0FBMkI7Ozs7O0lBQzNCLDBEQUEyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEFwcGxpY2F0aW9uUmVmLCBJbmplY3QsIEluamVjdG9yLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdGlmaWVyQ29udGFpbmVyU2VydmljZSB9IGZyb20gJy4vbm90aWZpZXItY29udGFpbmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRG9tUG9ydGFsT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBOT1RJRklFUiB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTm90aWZpZXJQb3J0YWxTZXJ2aWNlIHtcblxuICBwcml2YXRlIF9hcHBSZWY6IEFwcGxpY2F0aW9uUmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX25vdGlmaWVyQ29udGFpbmVyU2VydmljZTogTm90aWZpZXJDb250YWluZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBhbnksXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICkgeyB9XG5cbiAgY3JlYXRlKCkge1xuICAgIGNvbnN0IHBhbmUgPSB0aGlzLl9jcmVhdGVQYW5lRWxlbWVudCgpO1xuICAgIGNvbnN0IHBvcnRhbCA9IHRoaXMuX2NyZWF0ZVBvcnRhbE91dGxldChwYW5lKTtcbiAgICByZXR1cm4gcG9ydGFsO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlUG9ydGFsT3V0bGV0KHBhbmU6IEhUTUxFbGVtZW50KTogRG9tUG9ydGFsT3V0bGV0IHtcbiAgICBpZiAoIXRoaXMuX2FwcFJlZikge1xuICAgICAgdGhpcy5fYXBwUmVmID0gdGhpcy5faW5qZWN0b3IuZ2V0PEFwcGxpY2F0aW9uUmVmPihBcHBsaWNhdGlvblJlZik7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRG9tUG9ydGFsT3V0bGV0KHBhbmUsIHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgdGhpcy5fYXBwUmVmLCB0aGlzLl9pbmplY3Rvcik7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVQYW5lRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgcGFuZSA9IHRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHBhbmUuaWQgPSBgJHtOT1RJRklFUiArIG5leHRVbmlxdWVJZCsrfWA7XG4gICAgdGhpcy5fbm90aWZpZXJDb250YWluZXJTZXJ2aWNlLmdldENvbnRhaW5lckVsZW1lbnQoKS5hcHBlbmRDaGlsZChwYW5lKTtcbiAgICByZXR1cm4gcGFuZTtcbiAgfVxuXG4gIGdldCBnZXRMYXN0VW5pcXVlSWQoKSB7XG4gICAgcmV0dXJuIGAke05PVElGSUVSICsgKG5leHRVbmlxdWVJZCAtIDEpfWA7XG4gIH1cbn1cbiJdfQ==