UNPKG

@notelix/web-marker

Version:
71 lines (70 loc) 2.69 kB
import EventHandler from "./EventHandler"; import HighlightPainter from "./HighlightPainter"; import SerializedRange from "./SerializedRange"; interface MarkerConstructorArgs { rootElement?: HTMLElement; eventHandler?: EventHandler; highlightPainter?: HighlightPainter; overlappingHighlight?: "allow" | "dontCreateNewHighlight" | "deleteOverlappedHighlight" | "merge"; } declare class Marker { static normalizeTextCache: any; rootElement: Element; document: Document; window: Window; eventHandler: EventHandler; highlightPainter: HighlightPainter; overlappingHighlight: "allow" | "dontCreateNewHighlight" | "deleteOverlappedHighlight" | "merge"; state: { lastHoverId: string; uidToSerializedRange: { [key: string]: SerializedRange; }; }; constructor({ rootElement, highlightPainter, eventHandler, overlappingHighlight, }: MarkerConstructorArgs); static clearSelection(win?: Window): void; private resolveHighlightElements; private static normalizeText; private static isBlackListedElementNode; private static getRealOffset; private static unpaintElement; private describeNode; private logBoundaryAdjustment; private normalizeDeserializedBoundary; private convertRangeToSelection; private getOverlappingHighlightIds; serializeRange(range: Range, options?: { uid?: string; charsToKeepForTextBeforeAndTextAfter?: number; }): SerializedRange | null; batchPaint(serializedRanges: SerializedRange[]): { errors: any; }; paint(serializedRange: SerializedRange): void; unpaint(serializedRange: SerializedRange): void; private batchDeserializeRange; deserializeRange(serializedRange: SerializedRange): any; clickListener: (e: Event) => void; mouseoverListener: (e: Event) => void; addEventListeners(): void; removeEventListeners(): void; paintHighlights(highlightId: string): void; private highlightHovering; private getInnerText; private getNormalizedInnerText; private findLastChildTextNode; private findFirstChildTextNode; private findPreviousTextNodeInDomTree; private findNextTextNodeInDomTree; private forwardOffset; private backwardOffset; private findElementAtOffset; private trimRangeSpaces; private convertTextNodeToHighlightElement; private buildContext; private adjustRangeAroundBlackListedElement; getSerializedRangeFromUid(uid: string): SerializedRange | null; resolveSerializedRangeOffsetInText(text: any, serializedRange: SerializedRange): number; } export default Marker; export type { MarkerConstructorArgs };