@cisstech/nge
Version:
NG Essentials is a collection of libraries for Angular developers.
48 lines • 5.74 kB
JavaScript
import { Directive, Input, NgModule } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@cisstech/nge/services";
export class DynamicComponentDirective {
constructor(compilerService, viewContainerRef) {
this.compilerService = compilerService;
this.viewContainerRef = viewContainerRef;
}
async ngOnChanges() {
this.viewContainerRef.clear();
await this.compilerService.render({
container: this.viewContainerRef,
type: await this.type(),
inputs: this.inputs,
});
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DynamicComponentDirective, deps: [{ token: i1.CompilerService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: DynamicComponentDirective, isStandalone: true, selector: "[dynamic-component]", inputs: { type: ["dynamic-component", "type"], inputs: ["dynamic-componentInputs", "inputs"] }, usesOnChanges: true, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DynamicComponentDirective, decorators: [{
type: Directive,
args: [{
selector: '[dynamic-component]',
standalone: true,
}]
}], ctorParameters: () => [{ type: i1.CompilerService }, { type: i0.ViewContainerRef }], propDecorators: { type: [{
type: Input,
args: ['dynamic-component']
}], inputs: [{
type: Input,
args: ['dynamic-componentInputs']
}] } });
/**
* @deprecated in favor of standalone api, so please use direclty the directive as a standalone. Will be removed in/after v18
*/
export class DynamicComponentDirectiveModule {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DynamicComponentDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.1", ngImport: i0, type: DynamicComponentDirectiveModule, imports: [DynamicComponentDirective], exports: [DynamicComponentDirective] }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DynamicComponentDirectiveModule }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DynamicComponentDirectiveModule, decorators: [{
type: NgModule,
args: [{
imports: [DynamicComponentDirective],
exports: [DynamicComponentDirective],
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdlL2RpcmVjdGl2ZXMvc3JjL2R5bmFtaWMtY29tcG9uZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQXFDLE1BQU0sZUFBZSxDQUFBOzs7QUFPN0YsTUFBTSxPQUFPLHlCQUF5QjtJQU1wQyxZQUNtQixlQUFnQyxFQUNoQyxnQkFBa0M7UUFEbEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDbEQsQ0FBQztJQUVKLEtBQUssQ0FBQyxXQUFXO1FBQ2YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFBO1FBQzdCLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7WUFDaEMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDaEMsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRTtZQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0FsQlUseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO21IQUdDLElBQUk7c0JBREgsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBR1EsTUFBTTtzQkFBdkMsS0FBSzt1QkFBQyx5QkFBeUI7O0FBaUJsQzs7R0FFRztBQUtILE1BQU0sT0FBTywrQkFBK0I7OEdBQS9CLCtCQUErQjsrR0FBL0IsK0JBQStCLFlBNUIvQix5QkFBeUIsYUFBekIseUJBQXlCOytHQTRCekIsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUozQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztpQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBOZ01vZHVsZSwgT25DaGFuZ2VzLCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbXBpbGVyU2VydmljZSB9IGZyb20gJ0BjaXNzdGVjaC9uZ2Uvc2VydmljZXMnXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkeW5hbWljLWNvbXBvbmVudF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCdkeW5hbWljLWNvbXBvbmVudCcpXG4gIHR5cGUhOiAoKSA9PiBUeXBlPGFueT4gfCBQcm9taXNlPFR5cGU8YW55Pj5cblxuICBASW5wdXQoJ2R5bmFtaWMtY29tcG9uZW50SW5wdXRzJykgaW5wdXRzOiBhbnlcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBpbGVyU2VydmljZTogQ29tcGlsZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkNoYW5nZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKClcbiAgICBhd2FpdCB0aGlzLmNvbXBpbGVyU2VydmljZS5yZW5kZXIoe1xuICAgICAgY29udGFpbmVyOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgICB0eXBlOiBhd2FpdCB0aGlzLnR5cGUoKSxcbiAgICAgIGlucHV0czogdGhpcy5pbnB1dHMsXG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHN0YW5kYWxvbmUgYXBpLCBzbyBwbGVhc2UgdXNlIGRpcmVjbHR5IHRoZSBkaXJlY3RpdmUgYXMgYSBzdGFuZGFsb25lLiBXaWxsIGJlIHJlbW92ZWQgaW4vYWZ0ZXIgdjE4XG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW0R5bmFtaWNDb21wb25lbnREaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlTW9kdWxlIHt9XG4iXX0=