UNPKG

@nekobird/controls

Version:

A collection of opinionated user-interface controls.

31 lines (30 loc) 1.65 kB
import { AfterActionCallback, BeforeActionCallback, ConditionHook, Hook } from '../index'; import { SequenceController } from './sequence-controller'; import { SequenceAction, SequenceActionName } from './action-manager'; export interface SequenceTriggerMap { trigger: HTMLElement; action: SequenceActionName; payload?: string; } export interface SequenceConfig { cooldown: number; listenToKeydown: boolean; items: NodeListOf<HTMLElement> | HTMLElement[]; isTrigger: (element: HTMLElement) => boolean; mapTriggerToAction: (trigger: HTMLElement) => SequenceTriggerMap | false; getItemId: (item: HTMLElement) => string | false; conditionPrevious: ConditionHook<SequenceAction, SequenceController>; conditionNext: ConditionHook<SequenceAction, SequenceController>; conditionJump: ConditionHook<SequenceAction, SequenceController>; beforeActivate: Hook<SequenceAction, SequenceController>; beforeDeactivate: Hook<SequenceAction, SequenceController>; itemIsActive: (item: HTMLElement, controller: SequenceController) => boolean; activateItem: (item: HTMLElement, controller: SequenceController) => void; deactivateItem: (item: HTMLElement, controller: SequenceController) => void; afterActivate: Hook<SequenceAction, SequenceController>; afterDeactivate: Hook<SequenceAction, SequenceController>; beforeAction: BeforeActionCallback<SequenceAction, SequenceController>; afterAction: AfterActionCallback<SequenceAction, SequenceController>; onKeydown: (event: KeyboardEvent, context: SequenceController) => void; } export declare const DEFAULT_CONFIG: SequenceConfig;