UNPKG

@itexpert-dev/base-universal-table

Version:

base universal table for build tables

33 lines (27 loc) 1.48 kB
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); } }