UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

79 lines 5.92 kB
/** * @fileoverview added by tsickle * Generated from: portal.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, ViewChild, TemplateRef, ApplicationRef, } from '@angular/core'; import { forEach } from 'lodash-es'; export class PortalComponent { /** * @param {?} appRef */ constructor(appRef) { this.appRef = appRef; } /** * @return {?} */ addContent() { this.portalContainer = document.createElement('div'); this.viewRef = this.templateRef.createEmbeddedView(this); forEach(this.viewRef.rootNodes, (/** * @param {?} node * @return {?} */ (node) => { this.portalContainer.appendChild(node); })); this.appRef.attachView(this.viewRef); document.body.appendChild(this.portalContainer); } /** * @return {?} */ open() { this.close(); this.addContent(); } /** * @return {?} */ close() { if (this.viewRef && this.portalContainer) { document.body.removeChild(this.portalContainer); this.viewRef.destroy(); this.viewRef = null; this.portalContainer = null; } } } PortalComponent.decorators = [ { type: Component, args: [{ selector: 'd-portal', template: ` <ng-template #templateRef> <ng-content></ng-content> </ng-template>` }] } ]; /** @nocollapse */ PortalComponent.ctorParameters = () => [ { type: ApplicationRef } ]; PortalComponent.propDecorators = { templateRef: [{ type: ViewChild, args: ['templateRef', { static: true },] }] }; if (false) { /** @type {?} */ PortalComponent.prototype.viewRef; /** @type {?} */ PortalComponent.prototype.portalContainer; /** @type {?} */ PortalComponent.prototype.templateRef; /** * @type {?} * @private */ PortalComponent.prototype.appRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWRldnVpL3BvcnRhbC8iLCJzb3VyY2VzIjpbInBvcnRhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFNBQVMsRUFDVCxXQUFXLEVBQ1gsY0FBYyxHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBU2xDLE1BQU0sT0FBTyxlQUFlOzs7O0lBS3hCLFlBQW9CLE1BQXNCO1FBQXRCLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBQzFDLENBQUM7Ozs7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTOzs7O1FBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxDQUFDLEVBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7OztJQUVELElBQUk7UUFDQSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7OztJQUVELEtBQUs7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztTQUMvQjtJQUNMLENBQUM7OztZQXJDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLFFBQVEsRUFBRTs7O21DQUdxQjthQUNsQzs7OztZQVhHLGNBQWM7OzswQkFlYixTQUFTLFNBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7OztJQUYxQyxrQ0FBOEI7O0lBQzlCLDBDQUE2Qjs7SUFDN0Isc0NBQTBFOzs7OztJQUU5RCxpQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbiAgICBBcHBsaWNhdGlvblJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7Zm9yRWFjaH0gZnJvbSAnbG9kYXNoLWVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdkLXBvcnRhbCcsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVJlZj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+YCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvcnRhbENvbXBvbmVudCB7XHJcbiAgICB2aWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8YW55PjtcclxuICAgIHBvcnRhbENvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XHJcbiAgICBAVmlld0NoaWxkKCd0ZW1wbGF0ZVJlZicsIHsgc3RhdGljOiB0cnVlIH0pIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZikge1xyXG4gICAgfVxyXG5cclxuICAgIGFkZENvbnRlbnQoKSB7XHJcbiAgICAgICAgdGhpcy5wb3J0YWxDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICB0aGlzLnZpZXdSZWYgPSB0aGlzLnRlbXBsYXRlUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzKTtcclxuICAgICAgICBmb3JFYWNoKHRoaXMudmlld1JlZi5yb290Tm9kZXMsIChub2RlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucG9ydGFsQ29udGFpbmVyLmFwcGVuZENoaWxkKG5vZGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy52aWV3UmVmKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMucG9ydGFsQ29udGFpbmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuKCkge1xyXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLmFkZENvbnRlbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBjbG9zZSgpIHtcclxuICAgICAgICBpZiAodGhpcy52aWV3UmVmICYmIHRoaXMucG9ydGFsQ29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5wb3J0YWxDb250YWluZXIpO1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdSZWYuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdSZWYgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLnBvcnRhbENvbnRhaW5lciA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==