asciitorium
Version:
an ASCII CLUI framework
18 lines (17 loc) • 628 B
TypeScript
export interface ScrollableContent {
items: string[];
totalCount: number;
maxVisible: number;
focusedIndex: number;
}
export interface ScrollWindow {
startIdx: number;
visibleItems: string[];
showUpArrow: boolean;
showDownArrow: boolean;
}
export declare class ScrollableViewport {
calculateScrollWindow(content: ScrollableContent): ScrollWindow;
handleScrollEvent(event: string, currentFocusedIndex: number, totalCount: number): number;
drawScrollIndicators(buffer: string[][], width: number, height: number, borderPad: number, showUpArrow: boolean, showDownArrow: boolean): void;
}