@itexpert-dev/base-universal-table
Version:
base universal table for build tables
33 lines (27 loc) • 1.48 kB
text/typescript
import {UniversalTableCtrl} from "../../services/universalTable/universalTableCtrl";
import {ComponentFactoryResolver, ViewContainerRef, ComponentRef, Injector} from "@angular/core";
export abstract class BaseUniversalTableDirective{
constructor(
protected componentResolver: ComponentFactoryResolver,
protected viewContainer: ViewContainerRef,
protected tableCtrl: UniversalTableCtrl
){}
protected resolveTablePart(tablePart: string): any{
let tableCtrl = this.tableCtrl;
//as any because tableCtrl.TableComponents not dictionary
let component = (tableCtrl.tableComponents as any)[tablePart];
let componentFactory = tableCtrl.config.componentsStorage.getComponent(component);
return this.componentResolver.resolveComponentFactory(<any>componentFactory);
}
protected initTablePart(tablePart: string): any{
let resolvedComponent = this.resolveTablePart(tablePart);
let componentRef = this.viewContainer.createComponent(resolvedComponent);
return componentRef;
}
protected resolveCellByType(type: string): any{
let tableCtrl = this.tableCtrl;
let componentName: string = tableCtrl.config.cellTypeToComponentMap.get(type);
let componentFactory = tableCtrl.config.cellsStorage.getComponent(componentName);
return this.componentResolver.resolveComponentFactory<any>(<any>componentFactory);
}
}