UNPKG

@controladad/ng-base

Version:
77 lines (76 loc) 2.82 kB
import { BehaviorSubject } from 'rxjs'; import { DataFilterTypes, DataGetRequest, ItemRecords$ } from '../../core'; import type { FormBuilderInputType, TableColumnFilter, TableFilterOptions } from '../components'; export interface FilterValue { key?: string; value?: Date | string | number | boolean | string[] | number[]; displayText?: string | string[]; type: DataFilterTypes; controlType?: FormBuilderInputType; } export interface FilterOptions { prop: string; label: string; items?: ItemRecords$<any>; filterable?: TableColumnFilter; icon?: string; } export interface FilterItem { prop: string; values: FilterValue[] | undefined; key: string; label: string; strictKey?: boolean; formatted?: { full: string; prefix: string; text: string; suffix: string; }; icon?: string; } export type FilterObject = { [p: string]: FilterItem | undefined; }; export type TableFilterObject = { [p: string]: FilterValue[]; }; export declare class FilterModel { overrideEmpty?: FilterObject | undefined; protected _filters: import("@angular/core").WritableSignal<FilterObject>; private _changes$; filters: import("@angular/core").Signal<FilterObject | undefined>; filtersArray: import("@angular/core").Signal<FilterItem[]>; hasFilter: import("@angular/core").Signal<boolean>; changes$: import("rxjs").Observable<FilterObject | undefined>; constructor(init?: FilterObject, overrideEmpty?: FilterObject | undefined); set(data: FilterOptions, values: FilterValue[] | undefined, emit?: boolean): void; remove(prop: string): void; clear(): void; create(): DataGetRequest['filters']; emitChanges(): void; protected createFilterItem(opts: FilterOptions, value?: FilterValue[]): FilterItem; protected setValueForFilterItem(item: FilterItem, values?: FilterValue[], records?: ItemRecords$<any>): FilterItem; private mapValueToString; private mapValueToReadable; private getKey; private formatFilterItem; } export declare class TableFilterModel extends FilterModel { initValue?: FilterObject | undefined; overrideEmptyValue?: TableFilterObject | undefined; private _columns?; columnFilters: { [p: string]: TableFilterOptions[]; }; columnLabels: { [p: string]: string; }; columnsChanged$: BehaviorSubject<void>; constructor(initValue?: FilterObject | undefined, overrideEmptyValue?: TableFilterObject | undefined); set(columnProp: FilterOptions | string, values: FilterValue[] | undefined, emit?: boolean): void; setColumns(columns: typeof this._columns): void; getColumnFilters(columnProp: string): TableFilterOptions[] | undefined; private setOverrideEmpty; private updateFilters; }