UNPKG

bitmovin-player-ui

Version:
39 lines (33 loc) 1.15 kB
import { Component, ComponentConfig } from '../components/Component'; import { Container } from '../components/Container'; /** * @category Utils */ export namespace UIUtils { export interface TreeTraversalCallback { (component: Component<ComponentConfig>, parent?: Component<ComponentConfig>): void; } export function traverseTree(component: Component<ComponentConfig>, visit: TreeTraversalCallback): void { const recursiveTreeWalker = (component: Component<ComponentConfig>, parent?: Component<ComponentConfig>) => { visit(component, parent); // If the current component is a container, visit it's children if (component instanceof Container) { for (const childComponent of component.getComponents()) { recursiveTreeWalker(childComponent, component); } } }; // Walk and configure the component tree recursiveTreeWalker(component); } // From: https://github.com/nfriend/ts-keycode-enum/blob/master/Key.enum.ts export enum KeyCode { LeftArrow = 37, UpArrow = 38, RightArrow = 39, DownArrow = 40, Space = 32, End = 35, Home = 36, } }