UNPKG

armisa-models

Version:
36 lines (31 loc) 1.25 kB
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 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; }