armisa-models
Version:
models of armisa!
37 lines (36 loc) • 1.31 kB
TypeScript
/// <reference types="node" />
export type IValueOfListFilterType<T> = {
value: T;
};
export type IFilterMethodType = 'equal' | 'from' | 'to' | 'between' | 'list' | 'contain' | undefined;
export interface IFilterBase<T, L> {
key: string;
method: IFilterMethodType;
setMethodValue: (value: number | undefined) => void;
getMethodValue: () => 0 | 1 | 2 | 3 | 4 | undefined;
isFiltered: () => boolean;
clearFilter: () => void;
keyOfMethod: string;
list: {
value: L;
}[] | undefined;
itemOfListValue?: T;
multiItem?: IValueOfListFilterType<L>;
multiItemTimer?: NodeJS.Timeout;
}
export declare abstract class FilterBase<T, L, FILTERTYPE> implements IFilterBase<T, L> {
abstract key: string;
abstract method: IFilterMethodType;
abstract setMethodValue: (value: number | undefined) => void;
abstract getMethodValue: () => 0 | 1 | 2 | 3 | 4 | undefined;
abstract getFilter: () => FILTERTYPE | undefined;
abstract isFiltered: () => boolean;
abstract clearFilter: () => void;
abstract keyOfMethod: string;
list: {
value: L;
}[] | undefined;
abstract itemOfListValue?: T;
abstract multiItem?: IValueOfListFilterType<L>;
abstract multiItemTimer?: NodeJS.Timeout;
}