typewriter-editor
Version:
A rich text editor using the Delta format with decorations and rendered with a tiny virtual dom
24 lines (23 loc) • 1.45 kB
TypeScript
import { Line, type EditorRange } from '@typewriter/document';
import { Editor } from '../Editor';
import { Types } from '../typesetting';
import { type HTMLLineElement } from './rendering';
type NodeOffsetAndFrozen = [Node | null, number, boolean?];
export interface LineInfo {
line: Line;
element: HTMLLineElement;
rect: DOMRect;
belowMid: boolean;
}
export declare function getIndexFromPoint(editor: Editor, x: number, y: number): number | null;
export declare function getLineInfoFromPoint(editor: Editor, y: number): LineInfo | undefined;
export declare function getBrowserRange(editor: Editor, range: EditorRange): Range;
export declare function getBoudingBrowserRange(editor: Editor, range: EditorRange): Range;
export declare function getIndexFromNodeAndOffset(editor: Editor, node: Node, offset: number, current?: number | null): number;
export declare function getIndexFromNode(editor: Editor, startNode: Node): number;
export declare function getLineElementAt(editor: Editor, index: number): HTMLLineElement | undefined;
export declare function getNodeLength(editor: Editor, parentNode: Node): number;
export declare function getNodesForRange(editor: Editor, range: EditorRange): [Node | null, number, Node | null, number];
export declare function getNodeAndOffset(editor: Editor, index: number, direction: 0 | 1): NodeOffsetAndFrozen;
export declare function textNodeLength(lines: Types, node: Node): number;
export {};