import { EventEmitter, OnInit, OnDestroy } from '@angular/core'; import { Observable, Subject } from 'rxjs'; import { AbstractControl } from './control.types'; import { DynamicFormDesignerConfig } from '../utils/dynamic-form-designer-config'; import { HttpClient } from '@angular/common/http'; /** * @description 抽象属性编辑器 * * @export */ export interface AbstractPropertyEditor { /** * 是否禁用 * */ disabled: boolean; /** * @description 控件值改变 * * @memberof AbstractPropertyEditor */ valueChange: EventEmitter; /** * 控件值原始值变化 * * @memberof AbstractPropertyEditor */ originValueChange: EventEmitter; /** * @description 对应控件 * * @memberof AbstractPropertyEditor */ control: AbstractControl; /** * @description 标题 * * @memberof AbstractPropertyEditor */ caption: string; /** * @description 属性名称 * * @memberof AbstractPropertyEditor */ propertyName: string; /** * @description 属性设置 * * @memberof AbstractPropertyEditor */ settings: { reg?: RegExp; regErrorMsg?: string; }; /** * @description 属性值 * * @memberof AbstractPropertyEditor */ value: any; /** * @description 初始化control值 * * @memberof AbstractPropertyEditor */ initializeControlValue(value: any): void; } export declare abstract class AbstractPropertyEditorBase implements AbstractPropertyEditor { caption: string; settings: any; control: AbstractControl; propertyName: string; value: T; disabled: boolean; valueChange: EventEmitter; originValueChange: EventEmitter; private _control; private _propertyName; private _value; constructor(); /** * 初始化值之后 * * @memberof AbstractPropertyEditorBase */ afterControlValueInit(): void; /** * @description 控件值改变之后 * * @memberof AbstractPropertyEditorBase */ protected afterSetControlValue(value: any): void; initializeControlValue(value: any): void; } export declare abstract class QueryConditionPropertyEditorBase extends AbstractPropertyEditorBase implements OnInit, OnDestroy { checked: boolean; serialNo: number; rule: string; settings: any; private _settings; rulesSetting: any; entityAttributesSetting: { items: { caption: string; name: string; }[]; displayMember: string; valueMember: string; }; private _checked; private _serialNo; private _rule; private _controlEntityAttributeSubscription; constructor(); ngOnInit(): void; ngOnDestroy(): void; initRuleSettings(): void; abstract afterSetControlValue(value: any): void; private bindEntityAttributeChange; /** * 当实体属性发生变化后,执行的操作 * * @protected * * @memberOf QueryConditionPropertyEditorBase */ protected afterEntityAttributeChange(): void; } /** * 下拉框编辑器设置 * */ export interface DropDownPropertyEditorSetting { items: T[]; /** * 异步获取数据 */ getItemsAsync?: (designerConfig: DynamicFormDesignerConfig, httpClient: HttpClient, parent?: { target: AbstractControl; value: any; }) => Observable; /** * 是否弹出原始数据 */ emitOriginData?: boolean; /** * 值改变事件 */ valueChanged: EventEmitter<{ target: AbstractControl; value: T; }>; /** * 上级选中值 * */ parentValue?: any; /** * 上级值变化事件 * */ parentValueChanged?: Subject<{ target: AbstractControl; value: any; }>; /** * 值成员名称 */ valueMember: string; /** * 显示成员名称 */ displayMember: string; /** * 是否保留初始值 */ isKeepInitialValue?: boolean; init?: () => void; }