import { ChangeDetectorRef, OnInit } from '@angular/core'; import { ArrUtil, Dataset, DatasetRepo, FilterSchema, FSEnumItem } from '@gspwidget/util'; import { FilterComponent } from '@gspwidget/widget-core'; import { TranslateService } from '@ngx-translate/core'; export declare class FeFilterModalComponent implements OnInit { datasetRepo: DatasetRepo; cd: ChangeDetectorRef; translate: TranslateService; fs: FilterSchema; /** 是否垂直布局,默认 false,水平布局 */ vertical: boolean; filterComp: FilterComponent; ArrUtil: typeof ArrUtil; /** * 用于获取 items 的数据,未经筛选。 * 打开此 modal 后,第一次切换到 enum.source==='dataField' 时加载此数据。 */ intactData: any[]; /** * intactData + valueField + labelField * 得到的全部 items,非最终选中的。 * 选中的存在 fs.enum.itemsFromData。 */ allItemsFromData: FSEnumItem[]; /** * 用作再次打开编辑器时,展示已选中的 items。 * 存的是 items,要的是 values,所以需要在初始化时转换一次。 */ selectedItemsValue: any[]; /** 仅用于纯前端暂存当前 item source dataset,显示在页面上 */ curFsEnumDataset: Dataset; curEnumItems: any[]; curItemsDatasetResult: any[]; listOfOption: string[]; listOfSelectedValue: string[]; curLang: string; constructor(datasetRepo: DatasetRepo, cd: ChangeDetectorRef, translate: TranslateService); ngOnInit(): void; /** 1. type change */ handleChangeType(): void; /** date */ handleAddLastTimeItem(): void; handleAddEnumItem(): void; /** 2. enum source change */ handleChangeEnumSource(): void; /** 3. enum dataset change */ handleChangeItemsDataset(flawDataset: Dataset): void; /** 4. dataset enum field change */ handleItemFieldChange(): void; handleTableDataChange(newData: any[]): void; /** * A. * 检查是否需要触发 B。调用时机: * 1. 初始化时 * 2. fs.type 变化时 * 3. fs.enum.source 变化时 * 需要调用 */ private checkNUpdateEnum; /** * B. * 请求、更新 dataset 数据集本体、最终数据等。调用时机: * 1. A * 2. dataset 切换时 */ private updateDatasetResult; /** * C. * 用 result 重新得到 dataset items,调用时机: * 1. A. * 2. B. * 3. field 切换时 */ private updateDatasetEnumItems; private setCurEnumItems; private resolveLabel; }