@swrve/smarttv-sdk
Version:
Swrve marketing engagement platform SDK for SmartTV OTT devices
30 lines (29 loc) • 989 B
TypeScript
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;
}