argos/dmp-frontend/src/app/library/auto-complete/single/single-auto-complete-config...

36 lines
1.3 KiB
TypeScript
Raw Normal View History

2018-07-24 13:19:52 +02:00
import { Observable } from 'rxjs';
2019-01-18 18:03:45 +01:00
import { AutoCompleteGroup } from '../auto-complete-group';
2018-07-24 13:19:52 +02:00
export interface SingleAutoCompleteConfiguration {
// Delay for performing the request. Default: 200ms.
requestDelay?: number;
2019-01-18 18:03:45 +01:00
// Min characters for the filtering to be applied. Default: 1.
2018-07-24 13:19:52 +02:00
minFilteringChars?: number;
// Load and present items from start, without user query. Default: true.
loadDataOnStart?: boolean;
// Remove item after selection.
removeAfterSelection?: boolean;
2018-07-24 13:19:52 +02:00
// Static or initial items.
initialItems?: (data?: any) => Observable<any[]>;
2018-07-24 13:19:52 +02:00
// Data retrieval function
filterFn?: (searchQuery: string, data?: any) => Observable<any[]>;
2018-07-24 13:19:52 +02:00
// Property formating for input
displayFn?: (item: any) => string;
// Property formating for dropdown
2019-01-18 18:03:45 +01:00
groupingFn?: (items: any[]) => AutoCompleteGroup[];
// Property formating for dropdown
2018-07-24 13:19:52 +02:00
titleFn?: (item: any) => string;
// Property formating for dropdown
subtitleFn?: (item: any) => string;
// Property formating for icon on chip
iconFn?: (item: any) => string;
// Property for link on chip
linkFn?: (item: any) => string;
// Disable option.
disableOption?: (item: any) => boolean;
2019-01-18 18:03:45 +01:00
//Extra data passed to query function
extraData?: any;
// Callback to intercept value assignment based on item selection
valueAssign?: (selectedItem: any) => any;
2018-07-24 13:19:52 +02:00
}