1 |
|
2 |
|
3 |
|
4 |
|
5 | import { DomElement } from '../utils/dom-core';
|
6 | import Editor from './index';
|
7 | declare class SelectionAndRange {
|
8 | editor: Editor;
|
9 | private _currentRange;
|
10 | constructor(editor: Editor);
|
11 | /**
|
12 | * 获取当前 range
|
13 | */
|
14 | getRange(): Range | null | undefined;
|
15 | /**
|
16 | * 保存选区范围
|
17 | * @param _range 选区范围
|
18 | */
|
19 | saveRange(_range?: Range): void;
|
20 | /**
|
21 | * 折叠选区范围
|
22 | * @param toStart true 开始位置,false 结束位置
|
23 | */
|
24 | collapseRange(toStart?: boolean): void;
|
25 | /**
|
26 | * 获取选区范围内的文字
|
27 | */
|
28 | getSelectionText(): string;
|
29 | /**
|
30 | * 获取选区范围的 DOM 元素
|
31 | * @param range 选区范围
|
32 | */
|
33 | getSelectionContainerElem(range?: Range): DomElement | undefined;
|
34 | /**
|
35 | * 选区范围开始的 DOM 元素
|
36 | * @param range 选区范围
|
37 | */
|
38 | getSelectionStartElem(range?: Range): DomElement | undefined;
|
39 | /**
|
40 | * 选区范围结束的 DOM 元素
|
41 | * @param range 选区范围
|
42 | */
|
43 | getSelectionEndElem(range?: Range): DomElement | undefined;
|
44 | /**
|
45 | * 选区是否为空(没有选择文字)
|
46 | */
|
47 | isSelectionEmpty(): boolean;
|
48 | /**
|
49 | * 恢复选区范围
|
50 | */
|
51 | restoreSelection(): void;
|
52 | /**
|
53 | * 创建一个空白(即 ​ 字符)选区
|
54 | */
|
55 | createEmptyRange(): void;
|
56 | /**
|
57 | * 重新设置选区
|
58 | * @param startDom 选区开始的元素
|
59 | * @param endDom 选区结束的元素
|
60 | */
|
61 | createRangeByElems(startDom: Node, endDom: Node): void;
|
62 | /**
|
63 | * 根据 DOM 元素设置选区
|
64 | * @param $elem DOM 元素
|
65 | * @param toStart true 开始位置,false 结束位置
|
66 | * @param isContent 是否选中 $elem 的内容
|
67 | */
|
68 | createRangeByElem($elem: DomElement, toStart?: boolean, isContent?: boolean): void;
|
69 | /**
|
70 | * 获取 当前 选取范围的 顶级(段落) 元素
|
71 | * @param $editor
|
72 | */
|
73 | getSelectionRangeTopNodes(): DomElement[];
|
74 | /**
|
75 | * 移动光标位置,默认情况下在尾部
|
76 | * 有一个特殊情况是firefox下的文本节点会自动补充一个br元素,会导致自动换行
|
77 | * 所以默认情况下在firefox下的文本节点会自动移动到br前面
|
78 | * @param {Node} node 元素节点
|
79 | * @param {number} position 光标的位置
|
80 | */
|
81 | moveCursor(node: Node, position?: number): void;
|
82 | |
83 |
|
84 |
|
85 | getCursorPos(): number | undefined;
|
86 | |
87 |
|
88 |
|
89 | clearWindowSelectionRange(): void;
|
90 | |
91 |
|
92 |
|
93 |
|
94 | recordSelectionNodes($node: DomElement, $endElem: DomElement): DomElement[];
|
95 | |
96 |
|
97 |
|
98 |
|
99 |
|
100 | setRangeToElem(node: Node): void;
|
101 | }
|
102 | export default SelectionAndRange;
|