import { Iterable } from 'ix'; import { Observable } from 'rxjs'; import { ObjectComparer } from '../../../Utils/Compare'; import { IterableLike, ObservableLike, ObservableOrValue } from '../../../WebRx'; import { HandlerRoutingStateChanged, RoutingStateHandler } from '../../React'; import { DataGridRoutingState, DataGridViewModel, DataSourceRequest, DataSourceResponse } from '../DataGrid/DataGridViewModel'; import { PagerViewModel } from '../Pager/PagerViewModel'; import { SearchRequest, SearchRoutingState, SearchViewModel } from '../Search/SearchViewModel'; export interface ItemListPanelRequestContext { search?: SearchRequest; } export declare type ItemListPanelContext = ItemListPanelRequestContext & TRequestContext; export interface ItemListPanelRoutingState extends DataGridRoutingState { search?: SearchRoutingState; } export declare class ItemListPanelViewModel extends DataGridViewModel> implements RoutingStateHandler { static displayName: string; protected static getItemListPanelSearch(search: SearchViewModel | undefined | null): SearchViewModel | null; protected static createItemListPanelContext(search: SearchRequest): ItemListPanelRequestContext; protected static getItemListPanelContext(search: SearchViewModel | null): Observable; protected static getDataGridContext(search: SearchViewModel | null, context?: ObservableLike): Observable>; static getSearchRequest(request: DataSourceRequest>): SearchRequest | undefined; static filterItems(items: Iterable, searchRequest: SearchRequest, filterer: (item: T, search: SearchRequest) => boolean): Iterable; protected readonly filterer: undefined | ((item: T, search: SearchRequest) => boolean); readonly search: SearchViewModel | null; /** * @param source data source. * @param filterer filter predicate. executed for each item when the search context is available. * @param search search handler. if omitted a default search handler will be created. use null for no search handling. * @param pager pager. if omitted a default pager will be created. use null for no pager. * @param context request context included in projection requests. if included requests are bound to context events. * @param comparer custom object comparer. if omitted a default object comparer will be used. */ constructor(source: ObservableLike>, filterer?: (item: T, search: SearchRequest) => boolean, search?: SearchViewModel | null, pager?: PagerViewModel | null, context?: ObservableLike, comparer?: string | ObjectComparer, rateLimit?: number); isRoutingStateHandler(): boolean; createRoutingState(changed?: HandlerRoutingStateChanged): ItemListPanelRoutingState; applyRoutingState(state: ItemListPanelRoutingState): void; getResponseFromItems(items: Iterable, request: DataSourceRequest>): ObservableOrValue | undefined>; protected getFilteredItems(items: Iterable, searchRequest: SearchRequest): Iterable; }