UNPKG

@wangeditor-kai/yjs-for-react

Version:

React specific components/utils for wangeditor-next-yjs.

43 lines (42 loc) 1.76 kB
import { BaseEditor, Descendant, Editor, Operation, Point } from 'slate'; import * as Y from 'yjs'; type LocalChange = { op: Operation; doc: Descendant[]; origin: unknown; }; export type YjsEditor = BaseEditor & { sharedRoot: Y.XmlText; localOrigin: unknown; positionStorageOrigin: unknown; applyRemoteEvents: (events: Y.YEvent<Y.XmlText>[], origin: unknown) => void; storeLocalChange: (op: Operation) => void; flushLocalChanges: () => void; isLocalOrigin: (origin: unknown) => boolean; connect: () => void; disconnect: () => void; }; export declare const YjsEditor: { isYjsEditor(value: unknown): value is YjsEditor; localChanges(editor: YjsEditor): LocalChange[]; applyRemoteEvents(editor: YjsEditor, events: Y.YEvent<Y.XmlText>[], origin: unknown): void; storeLocalChange(editor: YjsEditor, op: Operation): void; flushLocalChanges(editor: YjsEditor): void; connected(editor: YjsEditor): boolean; connect(editor: YjsEditor): void; disconnect(editor: YjsEditor): void; isLocal(editor: YjsEditor): boolean; origin(editor: YjsEditor): unknown; withOrigin(editor: YjsEditor, origin: unknown, fn: () => void): void; storePosition(editor: YjsEditor, key: string, point: Point): void; removeStoredPosition(editor: YjsEditor, key: string): void; position(editor: YjsEditor, key: string): Point | null | undefined; storedPositionsRelative(editor: YjsEditor): Record<string, Y.RelativePosition>; }; export type WithYjsOptions = { autoConnect?: boolean; localOrigin?: unknown; positionStorageOrigin?: unknown; }; export declare function withYjs(sharedRoot: Y.XmlText, options?: WithYjsOptions): <T extends Editor>(editor: T) => T & YjsEditor; export {};