UNPKG

@yoyoboot/l-52abp-ng-form-generator

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.2.0.

60 lines 8.37 kB
import { Component, Input } from '@angular/core'; import { DynamicComponentFactoryService } from './dynamic-component-factory.service'; import { DynamicComponentTerminatorService } from './dynamic-component-terminator.service'; import { Subject } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "./dynamic-component-factory.service"; import * as i2 from "./dynamic-component-terminator.service"; export class DynamicComponentRComponent { constructor(viewContainerRef, factory, terminator) { this.viewContainerRef = viewContainerRef; this.factory = factory; this.terminator = terminator; this.unsubscribe$ = new Subject(); } ngOnInit() { this.terminator.onDestroy.subscribe(() => this.ngOnDestroy()); } ngOnChanges(changes) { if (changes.is && changes.is.currentValue) { const is = changes.is.currentValue; if (this.ref) { this.viewContainerRef.remove(0); } if (typeof is === 'string') { this.ref = this.factory.createByName(this.viewContainerRef, is); } else { this.ref = this.factory.createByType(this.viewContainerRef, is); } } // 输入参数 if (changes.data && changes.data.currentValue && typeof changes.data.currentValue === 'object') { if (this.ref) { this.ref.instance.config = changes.data.currentValue; } } } ngOnDestroy() { const { unsubscribe$ } = this; unsubscribe$.next(); unsubscribe$.complete(); this.ref.destroy(); } } DynamicComponentRComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentRComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.DynamicComponentFactoryService }, { token: i2.DynamicComponentTerminatorService }], target: i0.ɵɵFactoryTarget.Component }); DynamicComponentRComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DynamicComponentRComponent, selector: "[d-component-r]", inputs: { is: "is", data: "data" }, providers: [DynamicComponentFactoryService, DynamicComponentTerminatorService], usesOnChanges: true, ngImport: i0, template: ``, isInline: true }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentRComponent, decorators: [{ type: Component, args: [{ // eslint-disable-next-line @angular-eslint/component-selector selector: '[d-component-r]', template: ``, providers: [DynamicComponentFactoryService, DynamicComponentTerminatorService] }] }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.DynamicComponentFactoryService }, { type: i2.DynamicComponentTerminatorService }]; }, propDecorators: { is: [{ type: Input }], data: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQtci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9sLTUyYWJwLW5nLWZvcm0tZ2VuZXJhdG9yL3NyYy9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC1yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUlULEtBQUssRUFPTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBUy9CLE1BQU0sT0FBTywwQkFBMEI7SUFTckMsWUFDUyxnQkFBa0MsRUFDbEMsT0FBdUMsRUFDdEMsVUFBNkM7UUFGOUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFnQztRQUN0QyxlQUFVLEdBQVYsVUFBVSxDQUFtQztRQUw5QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFNekMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUU7WUFDekMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDbkMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDakM7WUFFRCxJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDakU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDakU7U0FDRjtRQUNELE9BQU87UUFDUCxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxRQUFRLEVBQUU7WUFDOUYsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUN0RDtTQUNGO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQzlCLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNyQixDQUFDOzt3SEE3Q1UsMEJBQTBCOzRHQUExQiwwQkFBMEIsOEVBRjFCLENBQUMsOEJBQThCLEVBQUUsaUNBQWlDLENBQUMsK0NBRHBFLEVBQUU7NEZBR0QsMEJBQTBCO2tCQU50QyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osU0FBUyxFQUFFLENBQUMsOEJBQThCLEVBQUUsaUNBQWlDLENBQUM7aUJBQy9FO29NQUVVLEVBQUU7c0JBQVYsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVHlwZSxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRGYWN0b3J5U2VydmljZSB9IGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQtZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRUZXJtaW5hdG9yU2VydmljZSB9IGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQtdGVybWluYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElEeW5hbWljQ29tcG9uZW50IH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW2QtY29tcG9uZW50LXJdJyxcbiAgdGVtcGxhdGU6IGBgLFxuICBwcm92aWRlcnM6IFtEeW5hbWljQ29tcG9uZW50RmFjdG9yeVNlcnZpY2UsIER5bmFtaWNDb21wb25lbnRUZXJtaW5hdG9yU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0NvbXBvbmVudFJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgaXM6IHN0cmluZyB8IFR5cGU8SUR5bmFtaWNDb21wb25lbnQ+O1xuXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcblxuICByZWY6IENvbXBvbmVudFJlZjxJRHluYW1pY0NvbXBvbmVudD47XG5cbiAgcmVhZG9ubHkgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwdWJsaWMgZmFjdG9yeTogRHluYW1pY0NvbXBvbmVudEZhY3RvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGVybWluYXRvcjogRHluYW1pY0NvbXBvbmVudFRlcm1pbmF0b3JTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRlcm1pbmF0b3Iub25EZXN0cm95LnN1YnNjcmliZSgoKSA9PiB0aGlzLm5nT25EZXN0cm95KCkpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmlzICYmIGNoYW5nZXMuaXMuY3VycmVudFZhbHVlKSB7XG4gICAgICBjb25zdCBpcyA9IGNoYW5nZXMuaXMuY3VycmVudFZhbHVlO1xuICAgICAgaWYgKHRoaXMucmVmKSB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5yZW1vdmUoMCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgaXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMucmVmID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUJ5TmFtZSh0aGlzLnZpZXdDb250YWluZXJSZWYsIGlzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVmID0gdGhpcy5mYWN0b3J5LmNyZWF0ZUJ5VHlwZSh0aGlzLnZpZXdDb250YWluZXJSZWYsIGlzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8g6L6T5YWl5Y+C5pWwXG4gICAgaWYgKGNoYW5nZXMuZGF0YSAmJiBjaGFuZ2VzLmRhdGEuY3VycmVudFZhbHVlICYmIHR5cGVvZiBjaGFuZ2VzLmRhdGEuY3VycmVudFZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgaWYgKHRoaXMucmVmKSB7XG4gICAgICAgIHRoaXMucmVmLmluc3RhbmNlLmNvbmZpZyA9IGNoYW5nZXMuZGF0YS5jdXJyZW50VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgY29uc3QgeyB1bnN1YnNjcmliZSQgfSA9IHRoaXM7XG4gICAgdW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB1bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB0aGlzLnJlZi5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==