1
0
mirror of https://github.com/flarum/core.git synced 2025-07-25 18:51:40 +02:00
Files
php-flarum/js/dist-typings/forum/utils/KeyboardNavigatable.d.ts
flarum-bot c3a684c7ed Bundled output for commit 3537f76eab
Includes transpiled JS/TS, and Typescript declaration files (typings).

[skip ci]
2021-05-12 23:29:46 +00:00

68 lines
2.3 KiB
TypeScript

declare type KeyboardEventHandler = (event: KeyboardEvent) => void;
declare type ShouldHandle = (event: KeyboardEvent) => boolean;
/**
* The `KeyboardNavigatable` class manages lists that can be navigated with the
* keyboard, calling callbacks for each actions.
*
* This helper encapsulates the key binding logic, providing a simple fluent
* API for use.
*/
export default class KeyboardNavigatable {
/**
* Callback to be executed for a specified input.
*/
protected callbacks: Map<number, KeyboardEventHandler>;
/**
* Callback that determines whether keyboard input should be handled.
* By default, always handle keyboard navigation.
*/
protected whenCallback: ShouldHandle;
/**
* Provide a callback to be executed when navigating upwards.
*
* This will be triggered by the Up key.
*/
onUp(callback: KeyboardEventHandler): KeyboardNavigatable;
/**
* Provide a callback to be executed when navigating downwards.
*
* This will be triggered by the Down key.
*/
onDown(callback: KeyboardEventHandler): KeyboardNavigatable;
/**
* Provide a callback to be executed when the current item is selected..
*
* This will be triggered by the Return and Tab keys..
*/
onSelect(callback: KeyboardEventHandler): KeyboardNavigatable;
/**
* Provide a callback to be executed when the navigation is canceled.
*
* This will be triggered by the Escape key.
*/
onCancel(callback: KeyboardEventHandler): KeyboardNavigatable;
/**
* Provide a callback to be executed when previous input is removed.
*
* This will be triggered by the Backspace key.
*
* @public
* @param {KeyboardNavigatable~keyCallback} callback
* @return {KeyboardNavigatable}
*/
onRemove(callback: KeyboardEventHandler): KeyboardNavigatable;
/**
* Provide a callback that determines whether keyboard input should be handled.
*/
when(callback: ShouldHandle): KeyboardNavigatable;
/**
* Set up the navigation key bindings on the given jQuery element.
*/
bindTo($element: JQuery): void;
/**
* Interpret the given keyboard event as navigation commands.
*/
navigate(event: KeyboardEvent): void;
}
export {};