UNPKG

word-ability

Version:

一款文本标注,全文查找,替换的插件,基于vue

78 lines (73 loc) 2.85 kB
export {}; import { Iparams, Ioptions, Iresult } from './lib/packages/useFindReplace/common/type'; declare module 'word-ability' { export function useFindReplace(params: Iparams, options?: Ioptions): Iresult; export class TextMark { private _element: Element; private _selection: Nullable<Selection>; public onSelected: Nullable<Function>; public onClick: Nullable<Function>; constructor(ops: opsConfig); private _beautifyHTML(ele: Element); private _setEleNoSelect(ele: Element, classNames: string[]); private _onClick(e: Event); private _onError; private _onMouseUp(e: Event); private _onSelected(e: Selected | string); deleteMark(uuid: Number): void; private _captureSelection(range: markRange): void; repaintRange(rangeNode: rangeNode): void; beautifyHTML(): void; renderStore(obj: SelectInfo[]): void; destroy(): void; findWord(word: string): void; replaceMarkClass(uuid: number, className: string): void; private _removeMark(eleS: NodeListOf<Element>); private hasCoverSelector(range: Range, attrName: string): boolean; private _removeMarkClass(eleS: NodeListOf<Element>, className: string); } } declare type Nullable<T> = T | null; interface SelectBase { offset: number; //选中文本相对于根结点的偏移量 text: string; //选中的文本 } interface SelectInfo extends SelectBase { storeRenderOther?: any; //来自jsMark.renderStore方法的用户自定义参数 } interface Selected extends SelectBase { textNodes: Text[]; //选中的所有文本节点 hasStoreRender: boolean; //是否来自renderStore方法渲染,一般用于从数据库拿到数据运用jsMark.renderStore方法判断首次渲染 storeRenderOther: any; //来自jsMark.renderStore方法的用户自定义参数 } interface rangeNode { collapsed?: boolean; commonAncestorContainer?: Element; endContainer: Text; endOffset: number; startContainer: Text; startOffset: number; storeRenderOther?: any; } interface RangeNodes { textNodes: Text[]; //选中的所有文本节点 uuid?: string; //标注文本节点的唯一id,会绑定到节点身上的data-selector属性,此id可用于清除当前标注节点,可选,不传会自动生成 className?: string; //需要标注的文本节点样式类,不设置默认标注颜色为 background:rgba(255, 255, 0, 0.3) } interface options { isCover?: boolean; //是否覆盖 ignoreClass?: string[]; //划词忽略的class } interface opsConfig { el: HTMLElement; //要挂载的元素节点 options?: options; //配置 } interface markRange extends Range { storeRenderOther?: any; //来自jsMark.renderStore方法的用户自定义参数 } interface ele extends Element { ignore: boolean; //是否忽略 } interface textEle extends Text { ignore?: boolean; //是否忽略 }