UNPKG

json-joy

Version:

Collection of libraries for building collaborative editing apps.

32 lines (31 loc) 1.32 kB
import type { Peritext } from '../../../json-crdt-extensions/peritext'; import type { PeritextEventTarget } from '../../events/PeritextEventTarget'; import type { TypedEventTarget } from '../../../util/events/TypedEventTarget'; import type { CompositionController } from './CompositionController'; import type { UiLifeCycles } from '../types'; export interface InputControllerEventSourceMap { beforeinput: HTMLElementEventMap['beforeinput']; keydown: HTMLElementEventMap['keydown']; copy: HTMLElementEventMap['copy']; cut: HTMLElementEventMap['cut']; paste: HTMLElementEventMap['paste']; } export type InputControllerEventSource = TypedEventTarget<InputControllerEventSourceMap>; export interface InputControllerOpts { source: InputControllerEventSource; txt: Peritext; et: PeritextEventTarget; comp: CompositionController; } /** * Processes incoming DOM "input" events (such as "beforeinput", "input", * "keydown", etc.) and translates them into Peritext events. */ export declare class InputController implements UiLifeCycles { protected readonly opts: InputControllerOpts; protected readonly source: InputControllerEventSource; protected readonly txt: Peritext; readonly et: PeritextEventTarget; constructor(opts: InputControllerOpts); start(): () => void; }