@platform/react
Version:
React refs and helpers.
43 lines (42 loc) • 1.33 kB
TypeScript
import { IKeypressEvent } from '../events/types';
import { Observable } from 'rxjs';
export { IKeypressEvent };
export declare type KeyCommand = string;
export declare type KeyBindings<T extends KeyCommand> = KeyBinding<T>[];
export declare type KeyBinding<T extends KeyCommand> = {
command: T;
key: string;
};
export declare type ModifierKey = 'ALT' | 'CTRL' | 'SHIFT' | 'META';
export declare type IKeyPattern = {
keys: string[];
modifiers: ModifierKey[];
};
export declare type IKeyMatchEventArgs = {
key: string;
altKey: boolean;
ctrlKey: boolean;
shiftKey: boolean;
metaKey: boolean;
};
export declare type IKeyBindingEvent<T extends KeyCommand> = {
command: T;
key: string;
preventDefault(): void;
stopPropagation(): void;
stopImmediatePropagation(): void;
cancel(): void;
};
export declare type IKeyboardArgs<T extends KeyCommand> = {
bindings?: KeyBindings<T>;
keyPress$?: Observable<IKeypressEvent>;
dispose$?: Observable<void>;
};
export declare type IKeyboard<T extends KeyCommand> = {
isDisposed: boolean;
dispose$: Observable<void>;
dispose(): void;
clone(options?: Partial<IKeyboardArgs<T>>): IKeyboard<T>;
filter(fn: (e: IKeypressEvent) => boolean): IKeyboard<T>;
takeUntil(dispose$: Observable<void>): IKeyboard<T>;
};