virtual-listpackage.src.vaadin-virtual-list-mixin.d.ts Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vaadin-webcomponents Show documentation
Show all versions of vaadin-webcomponents Show documentation
Mvnpm composite: Vaadin webcomponents
The newest version!
/**
* @license
* Copyright (c) 2021 - 2024 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';
import type { ControllerMixinClass } from '@vaadin/component-base/src/controller-mixin.js';
import type { VirtualList } from './vaadin-virtual-list.js';
export type VirtualListDefaultItem = any;
export interface VirtualListItemModel {
index: number;
item: TItem;
}
export type VirtualListRenderer = (
root: HTMLElement,
virtualList: VirtualList,
model: VirtualListItemModel,
) => void;
export declare function VirtualListMixin>(
base: T,
): Constructor & Constructor> & T;
export declare class VirtualListMixinClass {
/**
* Gets the index of the first visible item in the viewport.
*/
readonly firstVisibleIndex: number;
/**
* Gets the index of the last visible item in the viewport.
*/
readonly lastVisibleIndex: number;
/**
* Custom function for rendering the content of every item.
* Receives three arguments:
*
* - `root` The render target element representing one item at a time.
* - `virtualList` The reference to the `` element.
* - `model` The object with the properties related with the rendered
* item, contains:
* - `model.index` The index of the rendered item.
* - `model.item` The item.
*/
renderer: VirtualListRenderer | undefined;
/**
* An array containing items determining how many instances to render.
*/
items: TItem[] | undefined;
/**
* Scroll to a specific index in the virtual list.
*/
scrollToIndex(index: number): void;
/**
* Requests an update for the content of the rows.
* While performing the update, it invokes the renderer passed in the `renderer` property for each visible row.
*
* It is not guaranteed that the update happens immediately (synchronously) after it is requested.
*/
requestContentUpdate(): void;
}