UNPKG

json-joy

Version:

Collection of libraries for building collaborative editing apps.

41 lines (40 loc) 2.45 kB
import { CursorAnchor, type Peritext } from '../../../../json-crdt-extensions/peritext'; import type { PeritextDataTransfer } from '../../../../json-crdt-extensions/peritext/transfer/PeritextDataTransfer'; import type { PeritextEventHandlerMap, PeritextEventTarget } from '../PeritextEventTarget'; import type * as events from '../types'; import type { PeritextClipboard } from '../clipboard/types'; import type { UndoCollector } from './types'; import type { UiHandle } from './ui/UiHandle'; import type { Point } from '../../../../json-crdt-extensions/peritext/rga/Point'; import type { EditorUi } from '../../../../json-crdt-extensions/peritext/editor/types'; export interface PeritextEventDefaultsOpts { clipboard?: PeritextClipboard; transfer?: PeritextDataTransfer; } /** * Implementation of default handlers for Peritext events, such as "insert", * "delete", "cursor", etc. These implementations are used by the * {@link PeritextEventTarget} to provide default behavior for each event type. * If `event.preventDefault()` is called on a Peritext event, the default handler * will not be executed. */ export declare class PeritextEventDefaults implements PeritextEventHandlerMap { readonly txt: Peritext; readonly et: PeritextEventTarget; readonly opts: PeritextEventDefaultsOpts; undo?: UndoCollector; ui?: UiHandle; protected editorUi: EditorUi; constructor(txt: Peritext, et: PeritextEventTarget, opts?: PeritextEventDefaultsOpts); protected getSelSet({ at }: events.SelectionDetailPart): events.SelectionSet; protected moveRange(start: Point, end: Point, anchor: CursorAnchor, move?: events.SelectionMoveInstruction[]): [start: Point, end: Point, anchor: CursorAnchor]; protected moveSelSet(set: events.SelectionSet, { move }: events.SelectionMoveDetailPart): void; readonly change: (event: CustomEvent<events.ChangeDetail>) => void; readonly insert: ({ detail }: CustomEvent<events.InsertDetail>) => void; readonly delete: ({ detail }: CustomEvent<events.DeleteDetail>) => void; readonly cursor: ({ detail }: CustomEvent<events.CursorDetail>) => void; readonly format: ({ detail }: CustomEvent<events.FormatDetail>) => void; readonly marker: ({ detail }: CustomEvent<events.MarkerDetail>) => void; readonly buffer: ({ detail }: CustomEvent<events.BufferDetail>) => Promise<void>; readonly annals: (event: CustomEvent<events.AnnalsDetail>) => void; }