react-horizontal-scrolling-menu
Version:
Horizontal scrolling menu component for React with per-item visibility tracking. Supports mouse and touch devices, SSR-safe.
26 lines (25 loc) • 1.17 kB
TypeScript
import { Observer, type ObsFn } from '../Observer';
import type { EventKey, IOItem, Item, ItemId, visibleElements } from '../types';
export declare class ItemsMap extends Map<Item[0], Item[1]> {
observer: Observer;
firstRun: boolean;
constructor();
subscribe: (key: EventKey, value: ObsFn) => void;
unsubscribe: (key: EventKey, fn: ObsFn) => void;
private isEdgeItem;
private edgeItemsCheck;
toArr: () => Item[];
toItems: () => visibleElements;
sort: (arr: Item[]) => Item[];
set: (_key: ItemId, value: IOItem) => this;
setBatch: (_entries: Array<Item>) => this;
first: () => IOItem | undefined;
last: () => IOItem | undefined;
filter: (predicate: (value: Item, index: number, array: Item[]) => boolean) => Item[];
find: (predicate: (value: Item, index: number, obj: Item[]) => boolean) => Item | undefined;
findIndex: (predicate: (value: Item, index: number, obj: Item[]) => unknown) => number;
getCurrentPos: (item: ItemId | IOItem) => [Item[], number];
prev: (item: ItemId | IOItem) => IOItem | undefined;
next: (item: ItemId | IOItem) => IOItem | undefined;
getVisible: () => Item[];
}