@bhplugin/vue3-datatable
Version:
Vue3 Datatable - fully customizable & easy to use datatable library
33 lines (32 loc) • 1.37 kB
TypeScript
import { type Ref } from 'vue';
import type { IColumnDefinition, IFilterCondition } from '../types';
import { type INormalizedColumn } from '../filter-strategies';
interface IColumnFilterState {
value: string | number | boolean | undefined;
condition: IFilterCondition;
}
interface IUseFilteringOptions {
rows: Ref<Array<Record<string, unknown>>>;
columns: Ref<IColumnDefinition[]>;
isServerMode: Ref<boolean>;
columnFilter: Ref<boolean>;
sortable: Ref<boolean>;
sortColumn: Ref<string>;
sortDirection: Ref<string>;
search: Ref<string>;
totalRows: Ref<number>;
}
export declare function useFiltering(options: IUseFilteringOptions): {
currentSearch: Ref<string, string>;
isOpenFilter: Ref<string | null, string | null>;
normalizedColumns: import("vue").ComputedRef<INormalizedColumn[]>;
filteredRows: import("vue").ComputedRef<Record<string, unknown>[]>;
filterRowCount: import("vue").ComputedRef<number>;
columnFilterState: import("vue").Reactive<Map<string, IColumnFilterState>>;
setFilterValue: (field: string, value: string | number | boolean | undefined) => void;
setFilterCondition: (field: string, condition: IFilterCondition) => void;
toggleFilterMenu: (field: string | null) => void;
getColumnsWithFilterState: () => IColumnDefinition[];
resetFilters: () => void;
};
export {};