@wangeditor-kai/yjs-for-react
Version:
React specific components/utils for wangeditor-next-yjs.
43 lines (42 loc) • 1.76 kB
TypeScript
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 {};