import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; import { Filter } from './hd-filter.service'; import { FormItem } from '../hd-form/hd-form.service'; import { getCascaderMenuClassName, getCascaderMenuStyle, getCascaderShowSearch } from '../utils/cascader.util'; import { HdFilterScheme, HdFilterSchemeStore } from './hd-filter-scheme'; export declare class HdFilterComponent implements OnInit, OnChanges, OnDestroy { private fb; private schemeStore; filterList: Array; /** 是否启用筛选组(默认关闭) */ enableFilterScheme: boolean; /** 筛选器标识,开启筛选组时必传 */ filterSchemeKey: string; /** 是否去掉 hd-filter-container 的 padding,默认 false */ hidePadding: boolean; searchEvent: EventEmitter<{}>; resetEvent: EventEmitter<{}>; validateFilterForm: FormGroup; isShowMore: boolean; filterListModular: number; private searchSubject; private debounceTimeout; private openChangeSubject; private openChangeDebounceTimeout; private searchSubscription; private openChangeSubscription; private schemeLoadSub; private schemeActionSub; /** 页面配置的初始值(虚拟「默认条件」) */ private defaultFilterValues; private defaultValuesCaptured; schemeList: Array; currentScheme: HdFilterScheme; currentSchemeName: string; schemeLoading: boolean; schemeSaving: boolean; switchModalVisible: boolean; switchFormList: Array; switchValidateForm: FormGroup; saveAsModalVisible: boolean; saveAsFormList: Array; saveAsValidateForm: FormGroup; readonly defaultSchemeName = "\u9ED8\u8BA4\u6761\u4EF6"; private readonly switchDefaultKey; constructor(fb: FormBuilder, schemeStore: HdFilterSchemeStore); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; readonly canUseScheme: boolean; private init; onSearchEvent(fn: any, event: any, onSearchEventDebounceTime: any, selectOption?: any): void; onOpenChangeEvent(fn: any, open: boolean, onOpenChangeEventDebounceTime: any, filter?: Filter): void; /** 有 onOpenChangeEvent 时展开下拉先清空选项,由业务回调再写入新数据 */ private clearSelectOptionsOnOpen; triggerEvent(fn: any, event: any, selectOption?: any): void; /** 当前展示的筛选项数量(尊重 item.show,与展开/收起一致) */ getVisibleFilterCount(): number; /** 少条件时加宽字段列:1→18、2→9、≥3→6 */ getFilterColSpan(): number; computeOffset(): number; private checkList; submitForm(): void; resetForm(): void; resetFilterFormWithValue(): void; getFilterData(): any; showMore(): void; inputClean(filter: Filter): void; isAllowClear(item: Filter): boolean; private tryLoadSchemes; /** 展示用列表:保证有「默认条件」 */ getDisplaySchemeList(): Array; openSwitchModal(): void; closeSwitchModal(): void; switchFormChangeEvent(form: FormGroup): void; getSwitchOptionKey(item: HdFilterScheme): string; private buildSwitchFormList; confirmSwitch(): boolean; isDefaultScheme(item: HdFilterScheme): boolean; canDeleteCurrent(): boolean; saveCurrentScheme(): void; openSaveAsModal(): void; closeSaveAsModal(): void; saveAsFormChangeEvent(form: FormGroup): void; private buildSaveAsFormList; confirmSaveAs(): boolean; deleteCurrentScheme(): void; private refreshSchemeListKeepCurrent; private applySchemeByName; private applyScheme; private serializeFilterValue; private patchFilterValues; /** * 多选空态用 [],避免 FormControl 为 null 时 nz-select multiple 不显示 placeholder。 * DateRange 必须保持 null(或把历史空数组归一为 null):业务侧大量用 !value 判断, * 若规范成 [] 会因 truthy 走进 moment(value[0]),被解析成「今天」。 */ private normalizeFilterControlValue; private reviveFilterValue; private parseDateLike; private clonePlain; private showSuccess; private showError; getCascaderShowSearch: typeof getCascaderShowSearch; getCascaderMenuClassName: typeof getCascaderMenuClassName; getCascaderMenuStyle: typeof getCascaderMenuStyle; }