UNPKG

@vaadin/combo-box

Version:

Web Component for displaying a list of items with filtering

57 lines (48 loc) 1.54 kB
/** * @license * Copyright (c) 2015 - 2025 Vaadin Ltd. * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ */ import type { Constructor } from '@open-wc/dedupe-mixin'; export type ComboBoxDataProviderCallback<TItem> = (items: TItem[], size?: number) => void; export interface ComboBoxDataProviderParams { page: number; pageSize: number; filter: string; } export type ComboBoxDataProvider<TItem> = ( params: ComboBoxDataProviderParams, callback: ComboBoxDataProviderCallback<TItem>, ) => void; export declare function ComboBoxDataProviderMixin<TItem, T extends Constructor<HTMLElement>>( base: T, ): Constructor<ComboBoxDataProviderMixinClass<TItem>> & T; export declare class ComboBoxDataProviderMixinClass<TItem> { /** * Number of items fetched at a time from the dataprovider. * @attr {number} page-size */ pageSize: number; /** * Total number of items. */ size: number | undefined; /** * Function that provides items lazily. Receives arguments `params`, `callback` * * `params.page` Requested page index * * `params.pageSize` Current page size * * `params.filter` Currently applied filter * * `callback(items, size)` Callback function with arguments: * - `items` Current page of items * - `size` Total number of items. */ dataProvider: ComboBoxDataProvider<TItem> | null | undefined; /** * Clears the cached pages and reloads data from dataprovider when needed. */ clearCache(): void; }