import { ComponentFactoryResolver } from '@angular/core'; import { Observable, Subject } from 'rxjs'; import { DesignHostComponent } from '../components/design-host/design-host.component'; import { ControlLayoutHost, ControlViewModel, DynamicControlContainer, LoadComponentModel } from '../types'; import { AbstractControl, ControlDataModel, ControlLayoutModel } from '../types/control.types'; import { ControlTranslate } from '../utils'; import { DataModelService } from './data-model.service'; export declare class ControlTranslateService implements ControlTranslate { private componentFactoryResolver; private dataModelService; disableOperateControl: boolean; /** * 控件解析完成 */ controlResolved: Subject>; readonly controlRemoved$: Observable>; readonly loadComponentModel$: Observable; sendControlRemoved(control: AbstractControl): void; sendLoadComponentModel(data: LoadComponentModel): void; private _loadByLoadComponentModel; private _controlRemoved; constructor(componentFactoryResolver: ComponentFactoryResolver, dataModelService: DataModelService); /** * 使用LoadComponentModel加载组件 * */ loadComponentsByModel(loadModel: LoadComponentModel): AbstractControl | AbstractControl[]; /** * @description 根据控件DataModels生成控件, 当dataModels为空时,返回空数组 * * @param dataModels 要生成的控件DataModels * @param viewContainerRef 依赖的视图容器 * @param [isDesign] 是否是设计时 * @returns 已添加的控件集合 * @memberof ControlTranslateService */ loadComponents(dataModels: Array, controlLayoutHost: DynamicControlContainer, isDesign?: boolean): Array>; /** * 根据控件布局Model生成控件,如果layoutModel为空,则返回null * * @param layoutModel 控件布局model * @param viewContainerRef 依赖的视图容器 * @param [isDesign] 是否是设计时 * @returns 已添加的控件集合 * @memberof ControlTranslateService */ loadComponent(layoutModel: ControlLayoutModel, dynamicControlContainer: DynamicControlContainer, isDesign?: boolean): AbstractControl; resolveDesignHost(layoutModel: ControlLayoutModel, dynamicControlContainer: DynamicControlContainer): DesignHostComponent; resolveControl(componentFactoryResolver: ComponentFactoryResolver, layoutModel: ControlLayoutModel, controlLayoutHost: ControlLayoutHost, isDesign?: boolean): AbstractControl; /** * 过滤掉 不显示的控件 * */ filterNotDisplayControl(controlDataModels: Array): Array; }