@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
25 lines (24 loc) • 1.46 kB
TypeScript
import { IFilteringExpression } from './filtering-expression.interface';
import { IFilteringExpressionsTree } from './filtering-expressions-tree';
export interface IFilteringStrategy {
filter(data: any[], expressionsTree: IFilteringExpressionsTree, advancedExpressionsTree?: IFilteringExpressionsTree): any[];
}
export declare class NoopFilteringStrategy implements IFilteringStrategy {
private static _instance;
private constructor();
static instance(): NoopFilteringStrategy;
filter(data: any[], expressionsTree: IFilteringExpressionsTree, advancedExpressionsTree?: IFilteringExpressionsTree): any[];
}
export declare abstract class BaseFilteringStrategy implements IFilteringStrategy {
abstract filter(data: any[], expressionsTree: IFilteringExpressionsTree, advancedExpressionsTree?: IFilteringExpressionsTree): any[];
protected abstract getFieldValue(rec: object, fieldName: string): any;
findMatchByExpression(rec: object, expr: IFilteringExpression): boolean;
matchRecord(rec: object, expressions: IFilteringExpressionsTree | IFilteringExpression): boolean;
}
export declare class FilteringStrategy extends BaseFilteringStrategy {
private static _instace;
constructor();
static instance(): FilteringStrategy;
filter<T>(data: T[], expressionsTree: IFilteringExpressionsTree, advancedExpressionsTree?: IFilteringExpressionsTree): T[];
protected getFieldValue(rec: object, fieldName: string): any;
}