@controladad/ng-base
Version:
Everything you need for Angular
77 lines (76 loc) • 2.82 kB
TypeScript
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;
}