@nekobird/controls
Version:
A collection of opinionated user-interface controls.
32 lines (31 loc) • 1.56 kB
TypeScript
import { AfterActionCallback, BeforeActionCallback, ConditionHook, Hook } from '../index';
import { MonoAction, MonoActionName } from './action-manager';
import { MonoController } from './mono-controller';
export interface MonoTriggerMap {
trigger: HTMLElement;
action: MonoActionName;
payload?: string;
}
export interface MonoConfig {
cooldown: number;
listenToKeydown: boolean;
deactivateOnOutsideAction: boolean;
items: NodeListOf<HTMLElement> | HTMLElement[];
isTrigger: (element: HTMLElement) => boolean;
mapTriggerToAction: (trigger: HTMLElement) => MonoTriggerMap | false;
getItemId: (item: HTMLElement) => string | false;
conditionActivate: ConditionHook<MonoAction, MonoController>;
conditionDeactivate: ConditionHook<MonoAction, MonoController>;
beforeActivate: Hook<MonoAction, MonoController>;
beforeDeactivate: Hook<MonoAction, MonoController>;
itemIsActive: (item: HTMLElement, context: MonoController) => boolean;
activateItem: (item: HTMLElement, context: MonoController) => void;
deactivateItem: (item: HTMLElement, context: MonoController) => void;
afterActivate: Hook<MonoAction, MonoController>;
afterDeactivate: Hook<MonoAction, MonoController>;
beforeAction: BeforeActionCallback<MonoAction, MonoController>;
afterAction: AfterActionCallback<MonoAction, MonoController>;
onKeydown: (event: KeyboardEvent, context: MonoController) => void;
onOutsideAction: (context: MonoController) => void;
}
export declare const DEFAULT_CONFIG: MonoConfig;