word-marker
Version:
The library used to tag web page text, which can store tag information.
158 lines (157 loc) • 4.31 kB
TypeScript
import * as WM from './type';
export declare const defaultAttribute = "data-mark-id";
/**
* 获取随机字符串
* @param num
* @returns
*/
export declare const getUUID: (num: number) => string;
export declare const isText: (val: any) => boolean;
/**
* 节流函数
* @param fn
* @param lazy
*/
export declare const throttle: (fn: () => void, lazy?: number) => () => void;
/**
* 获取canvas的Y轴偏移量
* @param canvas
* @returns
*/
export declare const getCanvasTranslateY: (canvas: HTMLCanvasElement) => number;
/**
* 获取当前文本元素的祖先元素信息用于定位
* @param ele
* @param parentEle
* @returns
*/
export declare const getParentInfo: (ele: Text, parentEle: HTMLElement) => string;
/**
* 获取父级元素下的所有文本
* @param ele
* @param parentEle
* @returns
*/
export declare const getParentText: (ele: Text, parentEle: HTMLElement) => string;
/**
* 创建canvas
* @param parentEle
* @returns
*/
export declare const createCanvas: (parentEle: HTMLElement, lazyLoad: boolean, zIndex?: number) => HTMLCanvasElement;
/**
* 刷新标记
* @param ctx
* @param messages
* @param container
* @param options
*/
export declare const refreshMark: (ctx: CanvasRenderingContext2D, messages: WM.Message[], options: WM.WordMarkOptions) => void;
/**
* 删除标记
* @param ctx
* @param data
* @param messages
* @param id
* @param options
*/
export declare const deleteMark: (ctx: CanvasRenderingContext2D, data: WM.MarkData[], messages: WM.Message[], id: string, options: WM.WordMarkOptions) => void;
export declare const getActualRects: (ctx: CanvasRenderingContext2D, container: HTMLElement, range: Range, callback?: ((range: WM.Range) => void) | undefined) => WM.Range[];
/**
* 高亮标记
* @param ctx
* @param data
* @param messages
* @param container
* @param options
*/
export declare const render: (ctx: CanvasRenderingContext2D, data: WM.MarkData, messages: WM.Message[], container: HTMLElement, options: WM.WordMarkOptions) => void;
/**
* 获取元素的属性值
* @param el
* @param attribute
* @returns
*/
export declare const getAttribute: (el?: HTMLElement | null, attribute?: string) => string;
/**
* 删除元素的属性
* @param el
* @param attribute
* @returns
*/
export declare const removeAttribute: (el?: HTMLElement | null, attribute?: string) => void;
/**
* 设置元素的属性值
* @param el
* @param attribute
* @returns
*/
export declare const setAttribute: (el?: HTMLElement | null, attribute?: string, value?: string) => void;
/**
* 自动标记数据
* @param ele
* @param text
*/
export declare function selectText(ele: HTMLElement, text: string): void;
/**
* 获取锚点元素
* @param ele
* @param text
* @returns
*/
export declare function getAnchorNode(ele: HTMLElement, text: string): {
firstNode: {
index: number;
node: ChildNode;
};
endNode: {
index: number;
node: ChildNode;
};
} | undefined;
/**
* 处理标记数据的 attribute
* @param data
* @param attribute
* @returns
*/
export declare const handleAttribute: (data: WM.MarkData, attribute?: string) => void;
/**
* 获取标记数据
* @param container
* @param selection
* @param options
* @returns
*/
export declare const getMarkData: (container: HTMLElement, selection: Selection) => {
id: string;
startEle: Text;
startOffset: number;
startText: string;
startBrother: string;
startParentText: string;
endEle: Text;
endOffset: number;
endText: string;
endBrother: string;
endParentText: string;
text: string;
message: string;
single: boolean;
} | undefined;
/**
* 对存储的数据进行处理
* @param container
* @param data
* @param options
*/
export declare const initHandler: (container: HTMLElement, data: WM.MarkData[], options: WM.WordMarkOptions) => void;
/**
* 初始化
* @param canvas
* @param data
* @param messages
* @param container
* @param options
*/
export declare const init: (canvas: HTMLCanvasElement, data: WM.MarkData[], messages: WM.Message[], container: HTMLElement, options: WM.WordMarkOptions) => void;