UNPKG

@swrve/smarttv-sdk

Version:

Swrve marketing engagement platform SDK for SmartTV OTT devices

30 lines (29 loc) 989 B
export declare type MenuDirection = "horizontal" | "vertical" | "bidirectional"; export interface IPropTypes<T> { direction?: MenuDirection; onFocus(item: T): void; onBlur(item: T): void; setActiveFirst?(item: T): void; setActiveLast?(item: T): void; onKeyPress?(item: T, key: string): boolean; } export interface IDirectionKeymap { primaryNext: string; primaryPrev: string; } export default class SwrveFocusManager<T> { protected index: number; protected items: ReadonlyArray<T>; protected props: IPropTypes<T>; constructor(items: ReadonlyArray<T>, props: IPropTypes<T>); onFocus(): void; onBlur(): void; onKeyPress(key: string): boolean; setItems(items: ReadonlyArray<T>): void; getItems(): ReadonlyArray<T>; getCurrentIndex(): number; setActiveItem(index: number): boolean; setActiveFirst(): void; setActiveLast(): void; protected handleDirection(keymap: IDirectionKeymap, key: string): boolean; }