import { BeforeOpenModalResult } from '@farris/ide-property-panel'; /** * 响应式布局服务类 */ export declare class ResponseLayoutEditorService { private domService; componentId: string; constructor(domService: any, componentId: string); /** 布局配置参数 */ responseLayoutConfig: FormResponseLayoutContext[]; /** 控件 */ originalControlMap: Map; /** 当前组件内的form节点 */ formNode: any; /** 记录当前选中控件id */ currentControlId: string; /** 记录当前选中控件所在的区域id */ defaultGroupNumber: number; /** * 遍历控件所属Form下所有的控件,检测是否能弹出布局配置窗口,并收集配置参数 * @param propertyData 控件属性值 */ checkCanOpenLayoutEditor(propertyData: any): BeforeOpenModalResult; checkIsInFormComponent(): boolean; getFormResonseLayoutConfig(propertyData: any, responseLayoutConfig: FormResponseLayoutContext[], group: number, isFieldSet?: boolean): void; /** * 按照控件class样式,组装列编辑器需要的参数。 * 标准的模板样式为col-12 col-md-6 col-xl-3 col-el-2 * @param controlClass 控件class样式 * @param formResponseLayoutContext 响应式布局参数实体 */ private resovleResponseContext; /** * 按照列编辑器返回的配置修改控件class和顺序,并触发页面刷新 * (针对带有分组的卡片,编辑器只支持控件在原分组下进行拖动,所以这里的处理相对简单,不涉及viewModel的修改) * @param componentId 控件所在组件ID */ changeFormControlsByResponseLayoutConfig(componentId: string): any; } /** * 响应式布局参数实体。 * 默认按照小屏sm、中等md、大屏lg、超大屏el 划分屏幕大小 * ux约定:小屏上显示1列(每个控件占12栅格),中屏显示2列(每个控件占6栅格),大屏显示4列(每个控件占3栅格),超大屏显示6列(每个控件占2栅格), */ export declare class FormResponseLayoutContext { /** 控件标题 */ label: string; /** 控件id */ id: string; /** 每个控件占用的栅格数 */ columnInSM: number; columnInMD: number; columnInLG: number; columnInEL: number; /** 每个控件占用的列数 */ displayWidthInSM: number; displayWidthInMD: number; displayWidthInLG: number; displayWidthInEL: number; /** 编辑器内部默认显示的屏幕大小-----可以去掉 */ displayColumnCountAtBreakPoint: string; /** 控件所在行,传0即可-----编辑器内部使用 */ tagRow: number; /** 控件是否显示上方空白:传0即可-----编辑器内部使用 */ showTopBorder: number; /** 区域,从1开始。卡片内的控件从上往下,从左往右划分区域,遇到分组fieldSet时group+1,分组结束后group+1 */ group: number; /** 控件是否符合标准的class配置(设计器用的) */ isSupportedClass: boolean; /** 控件所在分组id(设计器用的) */ fieldSetId: string; }