igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
25 lines (24 loc) • 1.47 kB
TypeScript
import { IGroupByRecord } from './groupby-record.interface';
import { ISortingExpression, SortingDirection } from './sorting-expression.interface';
export interface ISortingStrategy {
sort: (data: any[], fieldName: string, dir: SortingDirection, ignoreCase: boolean, valueResolver: (obj: any, key: string) => any) => any[];
}
export declare class DefaultSortingStrategy implements ISortingStrategy {
private static _instance;
protected constructor();
static instance(): DefaultSortingStrategy;
sort(data: any[], fieldName: string, dir: SortingDirection, ignoreCase: boolean, valueResolver: (obj: any, key: string) => any): any[];
compareValues(a: any, b: any): 1 | 0 | -1;
protected compareObjects(obj1: object, obj2: object, key: string, reverse: number, ignoreCase: boolean, valueResolver: (obj: any, key: string) => any): number;
protected arraySort(data: any[], compareFn?: any): any[];
}
export declare class IgxSorting {
sort(data: any[], expressions: ISortingExpression[]): any[];
private groupedRecordsByExpression;
private sortDataRecursive;
protected groupDataRecursive<T>(data: T[], expressions: ISortingExpression[], level: number, parent: IGroupByRecord, metadata: IGroupByRecord[], grid?: any, groupsRecords?: any[]): T[];
protected getFieldValue(obj: any, key: string): any;
}
export declare class IgxDataRecordSorting extends IgxSorting {
protected getFieldValue(obj: any, key: string): any;
}