@w11k/ngx-present
Version:
Angular based Presentation Tool
75 lines • 5.55 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/dynamic/dynamic.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ComponentFactoryResolver, Injector, Input, ViewContainerRef } from '@angular/core';
export class DynamicComponent {
/**
* @param {?} viewContainerRef
* @param {?} componentFactoryResolver
* @param {?} injector
*/
constructor(viewContainerRef, componentFactoryResolver, injector) {
this.viewContainerRef = viewContainerRef;
this.componentFactoryResolver = componentFactoryResolver;
this.injector = injector;
this.component = null;
this.providers = null;
}
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
// destroy existing component instance on all changes
// on component changes and also on providers changes
this.viewContainerRef.clear();
if (this.component !== null) {
/** @type {?} */
const childInjector = Injector.create({
providers: this.providers || [],
parent: this.injector
});
/** @type {?} */
const factory = this.componentFactoryResolver.resolveComponentFactory(this.component);
this.viewContainerRef.createComponent(factory, undefined, childInjector);
}
}
}
DynamicComponent.decorators = [
{ type: Component, args: [{
selector: 'ngx-present-dynamic',
template: "\n",
styles: [":host{width:100vw;height:100vh}"]
}] }
];
/** @nocollapse */
DynamicComponent.ctorParameters = () => [
{ type: ViewContainerRef },
{ type: ComponentFactoryResolver },
{ type: Injector }
];
DynamicComponent.propDecorators = {
component: [{ type: Input }],
providers: [{ type: Input }]
};
if (false) {
/** @type {?} */
DynamicComponent.prototype.component;
/** @type {?} */
DynamicComponent.prototype.providers;
/** @type {?} */
DynamicComponent.prototype.viewContainerRef;
/**
* @type {?}
* @private
*/
DynamicComponent.prototype.componentFactoryResolver;
/**
* @type {?}
* @private
*/
DynamicComponent.prototype.injector;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdzExay9uZ3gtcHJlc2VudC8iLCJzb3VyY2VzIjpbImxpYi9keW5hbWljL2R5bmFtaWMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsUUFBUSxFQUNSLEtBQUssRUFLTCxnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFPdkIsTUFBTSxPQUFPLGdCQUFnQjs7Ozs7O0lBSzNCLFlBQW1CLGdCQUFrQyxFQUNqQyx3QkFBa0QsRUFDbEQsUUFBa0I7UUFGbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGFBQVEsR0FBUixRQUFRLENBQVU7UUFMN0IsY0FBUyxHQUFxQixJQUFJLENBQUM7UUFDbkMsY0FBUyxHQUE0QixJQUFJLENBQUM7SUFJVCxDQUFDOzs7OztJQUUzQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMscURBQXFEO1FBQ3JELHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFOUIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTs7a0JBQ3JCLGFBQWEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUNwQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFO2dCQUMvQixNQUFNLEVBQUcsSUFBSSxDQUFDLFFBQVE7YUFDdkIsQ0FBQzs7a0JBRUksT0FBTyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3JGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztTQUMxRTtJQUNILENBQUM7OztZQTVCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsY0FBdUM7O2FBRXhDOzs7O1lBUEMsZ0JBQWdCO1lBUGhCLHdCQUF3QjtZQUN4QixRQUFROzs7d0JBZ0JQLEtBQUs7d0JBQ0wsS0FBSzs7OztJQUROLHFDQUE0Qzs7SUFDNUMscUNBQW1EOztJQUV2Qyw0Q0FBeUM7Ozs7O0lBQ3pDLG9EQUEwRDs7Ozs7SUFDMUQsb0NBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBTdGF0aWNQcm92aWRlcixcbiAgVHlwZSxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXByZXNlbnQtZHluYW1pYycsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIGNvbXBvbmVudDogVHlwZTxhbnk+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcikgeyB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIC8vIGRlc3Ryb3kgZXhpc3RpbmcgY29tcG9uZW50IGluc3RhbmNlIG9uIGFsbCBjaGFuZ2VzXG4gICAgLy8gb24gY29tcG9uZW50IGNoYW5nZXMgYW5kIGFsc28gb24gcHJvdmlkZXJzIGNoYW5nZXNcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcblxuICAgIGlmICh0aGlzLmNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgY2hpbGRJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHByb3ZpZGVyczogdGhpcy5wcm92aWRlcnMgfHwgW10sXG4gICAgICAgIHBhcmVudDogIHRoaXMuaW5qZWN0b3JcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5jb21wb25lbnQpO1xuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5LCB1bmRlZmluZWQsIGNoaWxkSW5qZWN0b3IpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=