@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
79 lines • 5.92 kB
JavaScript
/**
* @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==