import { ChangeDetectorRef, OnInit } from '@angular/core'; import { ArrUtil, Dataset, DatasetRepo } from '@gspwidget/util'; import { FilterComponent } from '@gspwidget/widget-core'; import { FilterSchema, FSEnumItem } from '@gspwidget/widget-devkit'; export declare class FeFilterModalComponent implements OnInit { datasetRepo: DatasetRepo; cd: ChangeDetectorRef; fs: FilterSchema; 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[]; constructor(datasetRepo: DatasetRepo, cd: ChangeDetectorRef); 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; /** * 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; }