/** * @license * Copyright (c) 2021 - 2026 Vaadin Ltd. * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/ */ import type { Cache } from './cache.js'; /** * Returns context for the given flattened index, including: * - the corresponding cache * - the cache level * - the corresponding item (if loaded) * - the item's index in the cache's items array * - the page containing the item */ export function getFlatIndexContext( cache: Cache, flatIndex: number, level: number, ): { cache: Cache; item: TItem | undefined; index: number; page: number; level: number; }; /** * Returns context for the given item, including: * - the cache containing the item * - the cache level * - the item * - the item's index in the cache's items array * - the item's flattened index * - the item's sub-cache (if exists) * - the page containing the item * * If the item isn't found, the method returns undefined. */ export function getItemContext( context: { getItemId(item: TItem): unknown }, cache: Cache, targetItem: TItem, level: number, levelFlatIndex: number, ): | { level: number; item: TItem; index: number; page: number; flatIndex: number; cache: Cache; subCache: Cache | undefined; } | undefined; /** * Recursively returns the globally flat index of the item the given indexes point to. * Each index in the array points to a sub-item of the previous index. * Using `Infinity` as an index will point to the last item on the level. */ export function getFlatIndexByPath(cache: Cache, path: number[], flatIndex: number): number;