import { ComponentFactoryResolver, Injector } from '@angular/core'; import { BsModalService } from '@farris/ui-modal'; import { FarrisFormService } from './farris-form.service'; import { FrameContext } from '@farris/devkit'; import { Subject } from 'rxjs'; /** * 弹窗服务 * @scope FormModule */ declare class DialogService { private modalService; private farrisFormService; private _componentFactoryResolver; private frameContext?; private injector?; private _providers; /** * 外部引用 */ private refs; private languageService; private modalRef; private modals; constructor(modalService: BsModalService, farrisFormService: FarrisFormService, _componentFactoryResolver: ComponentFactoryResolver, frameContext?: FrameContext, injector?: Injector); /** * 设置语言服务 */ private setLanguageService; /** * 兼容旧弹窗,获取frameContext */ private getFrameContext; /** * 兼容旧弹窗,获取ComponentFactoryResolver */ private getComponentFactoryResolver; /** * 获取config转换成对象类型的配置 * @param config 配置项 * @throws 填写对象格式或json字符串 */ private getObjectTypeConfig; /** * 创建模态框内组件实例,并返回模态框实例;做了兼容老表单处理 * @param config 弹窗配置 * @param component 弹窗内组件 * @param uiStateObject 绑定弹窗内组件uiState */ private createModalComponentRef; /** *打开弹窗 * @param config 模态框本身配置 * @param modalId 模态框内组件的id * @param uiStateConfig 模态框内组件uiState上的字段及值 * @param callback 回调 */ openModal(config: any, modalId: string, uiStateConfig?: any, callback?: (modalRef: any) => any): any; private componentModify; private modalInstanceCallback; /** * 打开类帮助表单 * @param frameId * @param params * @param configs * @description 弹出表单和弹出远端表单区别为弹出表单需要配置字段映射 */ openHelpModal(frameId: string, params: string, configs?: any): Subject; /** * 打开带回调的弹窗 * @param frameId frameId * @param params 参数 * @param configs 配置 * @returns */ openCallbackableModal(frameId: string, params?: string, configs?: any): Subject; /** * 确认按钮事件 * @throws frameId */ confirm(): void; /** * 取消按钮事件 * @param event */ cancel(event?: any): void; /** * 取消服务器变更集 * @param ref */ private cancelChanges; /** * 关闭该弹窗 */ closeModal(): void; /** * 创建远程表单实例 * @param options dialog配置 * @param uiState uistate */ private createRemoteForm; private setValueByPath; private createInjector; } export { DialogService };