lk-text-select-highlight 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +56 -0
- package/LICENSE +21 -0
- package/README-cn.md +128 -0
- package/README.md +78 -0
- package/dist/lk-text-select-highlight.cjs.js +182 -0
- package/dist/lk-text-select-highlight.cjs.js.map +1 -0
- package/dist/lk-text-select-highlight.esm.js +180 -0
- package/dist/lk-text-select-highlight.esm.js.map +1 -0
- package/dist/lk-text-select-highlight.min.js +2 -0
- package/dist/lk-text-select-highlight.min.js.map +1 -0
- package/dist/lk-text-select-highlight.umd.js +188 -0
- package/dist/lk-text-select-highlight.umd.js.map +1 -0
- package/index.js +186 -0
- package/package.json +51 -0
- package/src/index.js +179 -0
- package/types/index.d.ts +89 -0
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
declare interface TextHighlighterOptions {
|
|
2
|
+
/**
|
|
3
|
+
* 高亮元素的CSS类名
|
|
4
|
+
* @default 'highlighted-text'
|
|
5
|
+
*/
|
|
6
|
+
className?: string;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 高亮背景颜色
|
|
10
|
+
* @default '#ffff00'
|
|
11
|
+
*/
|
|
12
|
+
color?: string;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* 限制文本选择高亮的DOM元素
|
|
16
|
+
* @default document.body
|
|
17
|
+
*/
|
|
18
|
+
container?: HTMLElement;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* 严格模式,如果为true,则防止在包含目标className元素的选择上进行高亮
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
strictMode?: boolean;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 搜索是否区分大小写
|
|
28
|
+
* @default true
|
|
29
|
+
*/
|
|
30
|
+
caseSensitive?: boolean;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
declare interface HighlightObject {
|
|
34
|
+
/** 高亮的DOM元素 */
|
|
35
|
+
element: HTMLElement;
|
|
36
|
+
/** 高亮的文本内容 */
|
|
37
|
+
text: string;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
declare class TextHighlighter {
|
|
41
|
+
/**
|
|
42
|
+
* 创建一个新的文本高亮实例
|
|
43
|
+
* @param options 配置选项
|
|
44
|
+
*/
|
|
45
|
+
constructor(options?: TextHighlighterOptions);
|
|
46
|
+
|
|
47
|
+
/** 当前配置选项 */
|
|
48
|
+
readonly options: TextHighlighterOptions;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* 高亮选中的文本
|
|
52
|
+
* @returns 如果成功高亮返回true,否则返回false
|
|
53
|
+
*/
|
|
54
|
+
highlightSelection(): boolean;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* 移除所有高亮
|
|
58
|
+
*/
|
|
59
|
+
removeAllHighlights(): void;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 移除指定的高亮
|
|
63
|
+
* @param highlight 要移除的高亮对象
|
|
64
|
+
* @returns 如果成功移除返回true,否则返回false
|
|
65
|
+
*/
|
|
66
|
+
removeHighlight(highlight: HighlightObject): boolean;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* 获取所有高亮对象
|
|
70
|
+
* @returns 高亮对象数组
|
|
71
|
+
*/
|
|
72
|
+
getHighlights(): HighlightObject[];
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* 将范围包装在高亮元素中
|
|
76
|
+
* @param range 要包装的范围
|
|
77
|
+
* @returns 高亮元素
|
|
78
|
+
*/
|
|
79
|
+
wrapRange(range: Range): HTMLElement;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* 检查选择范围是否包含目标类名的元素
|
|
83
|
+
* @param range 要检查的范围
|
|
84
|
+
* @returns 如果包含目标类名元素返回true,否则返回false
|
|
85
|
+
*/
|
|
86
|
+
hasTargetClassInSelection(range: Range): boolean;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export default TextHighlighter;
|