import { ComponentFactoryResolver, Injector } from '@angular/core'; import { BasicWidgetInfoAotMode, BasicWidgetInfoDevMode, WidgetContainerMode, WidgetRepo } from '@gspwidget/util'; import { PropertyOption, RegisteredWidgetConfig } from '@gspwidget/widget-devkit'; import { WidgetPropertyService } from './widget-property.service'; /** * 元部件脚本加载、初始化后得到的元部件代码元信息,非存储在数据库里的信息 */ export interface WidgetLoadedData { widgetCompFactory: any; widgetModuleFactory: any; properties: PropertyOption[]; propValues: { [propName: string]: any; }; widgetConfig: RegisteredWidgetConfig; } export declare class DynamicLoaderService { private injector; private componentFactoryResolver; private widgetProperty; private widgetRepo; private initSystemjsPromise; constructor(injector: Injector, componentFactoryResolver: ComponentFactoryResolver, widgetProperty: WidgetPropertyService, widgetRepo: WidgetRepo); initSystemjs(): Promise; /** * 加载元部件文件,并获取 widget 的详细信息供外面用 */ loadWidget(widgetInfo: BasicWidgetInfoAotMode | BasicWidgetInfoDevMode, rawPropValues: object, mode: WidgetContainerMode): Promise; /** * TODO: * 白萌提的问题,去掉试试,拿他的元部件试试。怀疑是之前一直没传入 module 的原因。 * 修复元部件依赖的第三方组件中 this.componentFactoryResolver.resolveComponentFactory * 找不到第三方组件的 ComponentFactory 的问题, * 如 nz RateComponent 找不到 toolTipComponent */ fixCompFacError(systemModule: any): void; }