systelab-components
Version:
systelab-components is a set of components that use wide accepted and adopted standard technologies like Angular and Bootstrap, as well as other popular libraries. Please read the ATTRIBUTION.md file for a complete list of dependencies.
64 lines • 7.8 kB
JavaScript
import { Component, Input, ViewChild, ViewContainerRef } from '@angular/core';
import * as i0 from "@angular/core";
export class ComboBoxInputRendererComponent {
constructor(componentFactoryResolver) {
this.componentFactoryResolver = componentFactoryResolver;
this.isViewInitialized = false;
}
ngOnChanges() {
this.updateComponent();
}
ngAfterViewInit() {
this.isViewInitialized = true;
this.updateComponent();
}
ngOnDestroy() {
if (this.cmpRef) {
this.cmpRef.destroy();
}
}
updateComponent() {
if (!this.isViewInitialized) {
return;
}
if (this.cmpRef) {
this.cmpRef.destroy();
}
const factory = this.componentFactoryResolver.resolveComponentFactory(this.componentType);
this.cmpRef = this.target.createComponent(factory);
this.target.insert(this.cmpRef.hostView);
this.updateComponentInputs();
}
updateComponentInputs() {
this.cmpRef.instance.id = this.id;
this.cmpRef.instance.description = this.description;
this.cmpRef.instance.selectedData = this.selectedData;
this.cmpRef.instance.initialParams = this.initialParams;
this.cmpRef.changeDetectorRef.detectChanges();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ComboBoxInputRendererComponent, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: ComboBoxInputRendererComponent, selector: "combobox-input-renderer", inputs: { componentType: "componentType", id: "id", description: "description", selectedData: "selectedData", initialParams: "initialParams" }, viewQueries: [{ propertyName: "target", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef }], usesOnChanges: true, ngImport: i0, template: `
<div #target></div>`, isInline: true }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ComboBoxInputRendererComponent, decorators: [{
type: Component,
args: [{
selector: 'combobox-input-renderer',
template: `
<div #target></div>`
}]
}], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }], propDecorators: { target: [{
type: ViewChild,
args: ['target', { read: ViewContainerRef, static: false }]
}], componentType: [{
type: Input
}], id: [{
type: Input
}], description: [{
type: Input
}], selectedData: [{
type: Input
}], initialParams: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtaW5wdXQtcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3lzdGVsYWItY29tcG9uZW50cy9zcmMvbGliL2NvbWJvYm94L3JlbmRlcmVyL2NvbWJvYm94LWlucHV0LXJlbmRlcmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBMEMsS0FBSyxFQUF3QixTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzNKLE1BQU0sT0FBTyw4QkFBOEI7SUFVMUMsWUFBb0Isd0JBQWtEO1FBQWxELDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFGOUQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO0lBR2xDLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxlQUFlO1FBQ2QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFLLElBQUksQ0FBQyxNQUFNLEVBQUc7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN0QjtJQUNGLENBQUM7SUFFTyxlQUFlO1FBQ3RCLElBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUc7WUFDOUIsT0FBTztTQUNQO1FBQ0QsSUFBSyxJQUFJLENBQUMsTUFBTSxFQUFHO1lBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDdEI7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBRSxDQUFDO1FBQzVGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUUsT0FBTyxDQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUUsQ0FBQztRQUUzQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8scUJBQXFCO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDL0MsQ0FBQzs4R0FoRFcsOEJBQThCO2tHQUE5Qiw4QkFBOEIsNFJBQ1osZ0JBQWdCLGtEQUxwQztzQ0FDMkI7OzJGQUd6Qiw4QkFBOEI7a0JBTjFDLFNBQVM7bUJBQUU7b0JBQ1gsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFO3NDQUMyQjtpQkFDckM7NkZBR2tFLE1BQU07c0JBQXZFLFNBQVM7dUJBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ3RELGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbWJvQm94SW5wdXRSZW5kZXJlciB9IGZyb20gJy4vY29tYm9ib3gtaW5wdXQtcmVuZGVyZXInO1xuXG5AQ29tcG9uZW50KCB7XG5cdHNlbGVjdG9yOiAnY29tYm9ib3gtaW5wdXQtcmVuZGVyZXInLFxuXHR0ZW1wbGF0ZTogYFxuICAgICAgICAgICAgICAgICAgPGRpdiAjdGFyZ2V0PjwvZGl2PmBcbn0gKVxuXG5leHBvcnQgY2xhc3MgQ29tYm9Cb3hJbnB1dFJlbmRlcmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXHRAVmlld0NoaWxkKCAndGFyZ2V0JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlIH0gKSB0YXJnZXQ7XG5cdEBJbnB1dCgpIGNvbXBvbmVudFR5cGU6IGFueTtcblx0QElucHV0KCkgaWQ6IG51bWJlciB8IHN0cmluZztcblx0QElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZztcblx0QElucHV0KCkgc2VsZWN0ZWREYXRhOiBhbnk7XG5cdEBJbnB1dCgpIGluaXRpYWxQYXJhbXM6IGFueTtcblx0Y21wUmVmOiBDb21wb25lbnRSZWY8Q29tYm9Cb3hJbnB1dFJlbmRlcmVyPjtcblx0cHJpdmF0ZSBpc1ZpZXdJbml0aWFsaXplZCA9IGZhbHNlO1xuXG5cdGNvbnN0cnVjdG9yKCBwdWJsaWMgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgKSB7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcygpOiB2b2lkIHtcblx0XHR0aGlzLnVwZGF0ZUNvbXBvbmVudCgpO1xuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuaXNWaWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuXHRcdHRoaXMudXBkYXRlQ29tcG9uZW50KCk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHRpZiAoIHRoaXMuY21wUmVmICkge1xuXHRcdFx0dGhpcy5jbXBSZWYuZGVzdHJveSgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgdXBkYXRlQ29tcG9uZW50KCkge1xuXHRcdGlmICggIXRoaXMuaXNWaWV3SW5pdGlhbGl6ZWQgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmICggdGhpcy5jbXBSZWYgKSB7XG5cdFx0XHR0aGlzLmNtcFJlZi5kZXN0cm95KCk7XG5cdFx0fVxuXHRcdGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSggdGhpcy5jb21wb25lbnRUeXBlICk7XG5cdFx0dGhpcy5jbXBSZWYgPSB0aGlzLnRhcmdldC5jcmVhdGVDb21wb25lbnQoIGZhY3RvcnkgKTtcblx0XHR0aGlzLnRhcmdldC5pbnNlcnQoIHRoaXMuY21wUmVmLmhvc3RWaWV3ICk7XG5cblx0XHR0aGlzLnVwZGF0ZUNvbXBvbmVudElucHV0cygpO1xuXHR9XG5cblx0cHJpdmF0ZSB1cGRhdGVDb21wb25lbnRJbnB1dHMoKSB7XG5cdFx0dGhpcy5jbXBSZWYuaW5zdGFuY2UuaWQgPSB0aGlzLmlkO1xuXHRcdHRoaXMuY21wUmVmLmluc3RhbmNlLmRlc2NyaXB0aW9uID0gdGhpcy5kZXNjcmlwdGlvbjtcblx0XHR0aGlzLmNtcFJlZi5pbnN0YW5jZS5zZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkRGF0YTtcblx0XHR0aGlzLmNtcFJlZi5pbnN0YW5jZS5pbml0aWFsUGFyYW1zID0gdGhpcy5pbml0aWFsUGFyYW1zO1xuXHRcdHRoaXMuY21wUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0fVxufVxuIl19