@nekobird/controls
Version:
A collection of opinionated user-interface controls.
36 lines (35 loc) • 1.89 kB
TypeScript
import { AfterActionCallback, BeforeActionCallback, ConditionHook } from '../index';
import { PolyController } from './poly-controller';
import { PolyAction, PolyActionName } from './action-manager';
export interface PolyTriggerMap {
trigger: HTMLElement;
action: PolyActionName;
payload?: string;
}
export interface PolyConfig {
cooldown: number;
deactivateAllOnOutsideAction: boolean;
listenToKeydown: boolean;
items: NodeListOf<HTMLElement> | HTMLElement[];
isTrigger: (element: HTMLElement) => boolean;
mapTriggerToAction: (trigger: HTMLElement) => PolyTriggerMap | false;
getItemId: (item: HTMLElement) => string | false;
conditionActivate: ConditionHook<PolyAction, PolyController>;
conditionDeactivate: ConditionHook<PolyAction, PolyController>;
conditionToggle: ConditionHook<PolyAction, PolyController>;
conditionActivateAll: ConditionHook<PolyAction, PolyController>;
conditionDeactivateAll: ConditionHook<PolyAction, PolyController>;
conditionToggleAll: ConditionHook<PolyAction, PolyController>;
beforeDeactivate: BeforeActionCallback<PolyAction, PolyController>;
afterDeactivate: AfterActionCallback<PolyAction, PolyController>;
itemIsActive: (item: HTMLElement, context: PolyController) => boolean;
activateItem: (item: HTMLElement, context: PolyController) => void;
deactivateItem: (item: HTMLElement, context: PolyController) => void;
beforeActivate: BeforeActionCallback<PolyAction, PolyController>;
afterActivate: AfterActionCallback<PolyAction, PolyController>;
beforeAction: BeforeActionCallback<PolyAction, PolyController>;
afterAction: AfterActionCallback<PolyAction, PolyController>;
onOutsideAction: (context: PolyController) => void;
onKeydown: (event: KeyboardEvent, context: PolyController) => void;
}
export declare const DEFAULT_CONFIG: PolyConfig;