UNPKG

@fivethree/core

Version:
110 lines 8.21 kB
/** * @fileoverview added by tsickle * Generated from: lib/overlay/overlay.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, TemplateRef, ComponentFactoryResolver, ApplicationRef, Injector, RendererFactory2 } from '@angular/core'; import * as i0 from "@angular/core"; var FivOverlayService = /** @class */ (function () { function FivOverlayService(componentFactoryResolver, rendererFactory, appRef, injector) { this.componentFactoryResolver = componentFactoryResolver; this.appRef = appRef; this.injector = injector; this.renderer = rendererFactory.createRenderer(null, null); } /** * @template T * @param {?} view * @param {?} component * @param {?=} content * @return {?} */ FivOverlayService.prototype.createOverlay = /** * @template T * @param {?} view * @param {?} component * @param {?=} content * @return {?} */ function (view, component, content) { /** @type {?} */ var resolvedContent = this.resolveNgContent(view, content); /** @type {?} */ var componentRef = this.componentFactoryResolver .resolveComponentFactory(component) .create(this.injector, resolvedContent); this.appRef.attachView(componentRef.hostView); /** @type {?} */ var domElem = (/** @type {?} */ (((/** @type {?} */ (componentRef.hostView))) .rootNodes[0])); document.body.appendChild(domElem); return componentRef; }; /** * @private * @template T * @param {?} viewContainerRef * @param {?} content * @return {?} */ FivOverlayService.prototype.resolveNgContent = /** * @private * @template T * @param {?} viewContainerRef * @param {?} content * @return {?} */ function (viewContainerRef, content) { if (!content) { return; } if (content instanceof TemplateRef) { /** @type {?} */ var viewRef = viewContainerRef.createEmbeddedView(content); return [viewRef.rootNodes]; } /** @type {?} */ var factory = this.componentFactoryResolver.resolveComponentFactory(content); /** @type {?} */ var componentRef = factory.create(this.injector); return [[componentRef.location.nativeElement]]; }; FivOverlayService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ FivOverlayService.ctorParameters = function () { return [ { type: ComponentFactoryResolver }, { type: RendererFactory2 }, { type: ApplicationRef }, { type: Injector } ]; }; /** @nocollapse */ FivOverlayService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function FivOverlayService_Factory() { return new FivOverlayService(i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i0.INJECTOR)); }, token: FivOverlayService, providedIn: "root" }); return FivOverlayService; }()); export { FivOverlayService }; if (false) { /** * @type {?} * @private */ FivOverlayService.prototype.renderer; /** * @type {?} * @private */ FivOverlayService.prototype.componentFactoryResolver; /** * @type {?} * @private */ FivOverlayService.prototype.appRef; /** * @type {?} * @private */ FivOverlayService.prototype.injector; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpdmV0aHJlZS9jb3JlLyIsInNvdXJjZXMiOlsibGliL292ZXJsYXkvb3ZlcmxheS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixXQUFXLEVBRVgsd0JBQXdCLEVBQ3hCLGNBQWMsRUFDZCxRQUFRLEVBSVIsZ0JBQWdCLEVBRWpCLE1BQU0sZUFBZSxDQUFDOztBQUd2QjtJQU1FLDJCQUNVLHdCQUFrRCxFQUMxRCxlQUFpQyxFQUN6QixNQUFzQixFQUN0QixRQUFrQjtRQUhsQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBRWxELFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDOzs7Ozs7OztJQUVELHlDQUFhOzs7Ozs7O0lBQWIsVUFDRSxJQUFzQixFQUN0QixTQUFrQixFQUNsQixPQUFzQjs7WUFFaEIsZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDOztZQUN0RCxZQUFZLEdBQUcsSUFBSSxDQUFDLHdCQUF3QjthQUMvQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7YUFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7WUFFeEMsT0FBTyxHQUFHLG1CQUFBLENBQUMsbUJBQUEsWUFBWSxDQUFDLFFBQVEsRUFBd0IsQ0FBQzthQUM1RCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQWU7UUFFOUIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkMsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzs7Ozs7Ozs7SUFFTyw0Q0FBZ0I7Ozs7Ozs7SUFBeEIsVUFDRSxnQkFBa0MsRUFDbEMsT0FBcUI7UUFFckIsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU87U0FDUjtRQUNELElBQUksT0FBTyxZQUFZLFdBQVcsRUFBRTs7Z0JBQzVCLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7WUFDNUQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM1Qjs7WUFFSyxPQUFPLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUNuRSxPQUFPLENBQ1I7O1lBQ0ssWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNsRCxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQzs7Z0JBbkRGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBYkMsd0JBQXdCO2dCQU14QixnQkFBZ0I7Z0JBTGhCLGNBQWM7Z0JBQ2QsUUFBUTs7OzRCQU5WO0NBbUVDLEFBcERELElBb0RDO1NBakRZLGlCQUFpQjs7Ozs7O0lBQzVCLHFDQUE0Qjs7Ozs7SUFHMUIscURBQTBEOzs7OztJQUUxRCxtQ0FBOEI7Ozs7O0lBQzlCLHFDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEFwcGxpY2F0aW9uUmVmLFxuICBJbmplY3RvcixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBDb21wb25lbnRSZWYsXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5MixcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmV4cG9ydCB0eXBlIE5nQ29udGVudDxUPiA9IFRlbXBsYXRlUmVmPFQ+IHwgVHlwZTxUPjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRml2T3ZlcmxheVNlcnZpY2Uge1xuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXG4gICkge1xuICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG4gIH1cblxuICBjcmVhdGVPdmVybGF5PFQ+KFxuICAgIHZpZXc6IFZpZXdDb250YWluZXJSZWYsXG4gICAgY29tcG9uZW50OiBUeXBlPFQ+LFxuICAgIGNvbnRlbnQ/OiBOZ0NvbnRlbnQ8VD5cbiAgKTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgICBjb25zdCByZXNvbHZlZENvbnRlbnQgPSB0aGlzLnJlc29sdmVOZ0NvbnRlbnQodmlldywgY29udGVudCk7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgIC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpXG4gICAgICAuY3JlYXRlKHRoaXMuaW5qZWN0b3IsIHJlc29sdmVkQ29udGVudCk7XG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuXG4gICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pXG4gICAgICAucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcblxuICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVOZ0NvbnRlbnQ8VD4oXG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBjb250ZW50OiBOZ0NvbnRlbnQ8VD5cbiAgKSB7XG4gICAgaWYgKCFjb250ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgIGNvbnN0IHZpZXdSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyhjb250ZW50KTtcbiAgICAgIHJldHVybiBbdmlld1JlZi5yb290Tm9kZXNdO1xuICAgIH1cblxuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcbiAgICAgIGNvbnRlbnRcbiAgICApO1xuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuICAgIHJldHVybiBbW2NvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50XV07XG4gIH1cbn1cbiJdfQ==