1 |
|
2 |
|
3 |
|
4 |
|
5 | import Editor from '../editor/index';
|
6 | declare type OffsetDataType = {
|
7 | top: number;
|
8 | left: number;
|
9 | width: number;
|
10 | height: number;
|
11 | parent: Element | null;
|
12 | };
|
13 | export declare type DomElementSelector = string | DomElement | HTMLElement | Element | Document | HTMLCollection | Node | NodeList | HTMLElement[] | EventTarget | null | undefined;
|
14 | export declare class DomElement<T extends DomElementSelector = DomElementSelector> {
|
15 | selector: T;
|
16 | length: number;
|
17 | elems: HTMLElement[];
|
18 | dataSource: Map<string, any>;
|
19 | |
20 |
|
21 |
|
22 |
|
23 | constructor(selector: T);
|
24 | /**
|
25 | * 获取元素 id
|
26 | */
|
27 | get id(): string;
|
28 | /**
|
29 | * 遍历所有元素,执行回调函数
|
30 | * @param fn 回调函数
|
31 | */
|
32 | forEach(fn: (ele: HTMLElement, index?: number) => boolean | unknown): DomElement;
|
33 | /**
|
34 | * 克隆元素
|
35 | * @param deep 是否深度克隆
|
36 | */
|
37 | clone(deep?: boolean): DomElement;
|
38 | /**
|
39 | * 获取第几个元素
|
40 | * @param index index
|
41 | */
|
42 | get(index?: number): DomElement;
|
43 | /**
|
44 | * 获取第一个元素
|
45 | */
|
46 | first(): DomElement;
|
47 | /**
|
48 | * 获取最后一个元素
|
49 | */
|
50 | last(): DomElement;
|
51 | /**
|
52 | * 绑定事件
|
53 | * @param type 事件类型
|
54 | * @param selector DOM 选择器
|
55 | * @param fn 事件函数
|
56 | */
|
57 | on(type: string, fn: Function): DomElement;
|
58 | on(type: string, selector: string, fn: Function): DomElement;
|
59 | /**
|
60 | * 解绑事件
|
61 | * @param type 事件类型
|
62 | * @param selector DOM 选择器
|
63 | * @param fn 事件函数
|
64 | */
|
65 | off(type: string, fn: Function): DomElement;
|
66 | off(type: string, selector: string, fn: Function): DomElement;
|
67 | /**
|
68 | * 设置/获取 属性
|
69 | * @param key key
|
70 | * @param val value
|
71 | */
|
72 | attr(key: string): string;
|
73 | attr(key: string, val: string): DomElement;
|
74 | /**
|
75 | * 删除 属性
|
76 | * @param key key
|
77 | */
|
78 | removeAttr(key: string): void;
|
79 | /**
|
80 | * 添加 css class
|
81 | * @param className css class
|
82 | */
|
83 | addClass(className?: string): DomElement;
|
84 | /**
|
85 | * 添加 css class
|
86 | * @param className css class
|
87 | */
|
88 | removeClass(className?: string): DomElement;
|
89 | /**
|
90 | * 是否有传入的 css class
|
91 | * @param className css class
|
92 | */
|
93 | hasClass(className?: string): boolean;
|
94 | /**
|
95 | * 修改 css
|
96 | * @param key css key
|
97 | * @param val css value
|
98 | */
|
99 | css(key: string, val?: string | number): DomElement;
|
100 | /**
|
101 | * 封装 getBoundingClientRect
|
102 | */
|
103 | getBoundingClientRect(): DOMRect;
|
104 | /**
|
105 | * 显示
|
106 | */
|
107 | show(): DomElement;
|
108 | /**
|
109 | * 隐藏
|
110 | */
|
111 | hide(): DomElement;
|
112 | /**
|
113 | * 获取子节点(只有 DOM 元素)
|
114 | */
|
115 | children(): DomElement | null;
|
116 | /**
|
117 | * 获取子节点(包括文本节点)
|
118 | */
|
119 | childNodes(): DomElement | null;
|
120 | /**
|
121 | * 将子元素全部替换
|
122 | * @param $children 新的child节点
|
123 | */
|
124 | replaceChildAll($children: DomElement): void;
|
125 | /**
|
126 | * 增加子节点
|
127 | * @param $children 子节点
|
128 | */
|
129 | append($children: DomElement): DomElement;
|
130 | /**
|
131 | * 移除当前节点
|
132 | */
|
133 | remove(): DomElement;
|
134 | /**
|
135 | * 当前元素,是否包含某个子元素
|
136 | * @param $child 子元素
|
137 | */
|
138 | isContain($child: DomElement): boolean;
|
139 | /**
|
140 | * 获取当前元素的尺寸和位置信息
|
141 | */
|
142 | getSizeData(): DOMRect;
|
143 | /**
|
144 | * 获取当前元素 nodeName
|
145 | */
|
146 | getNodeName(): string;
|
147 | /**
|
148 | * 根据元素位置获取元素节点(默认获取0位置的节点)
|
149 | * @param n 元素节点位置
|
150 | */
|
151 | getNode(n?: number): Node;
|
152 | /**
|
153 | * 获取当前元素可视高度
|
154 | */
|
155 | getClientHeight(): number;
|
156 | /**
|
157 | * 获取当前元素可视宽度
|
158 | */
|
159 | /**
|
160 | * 查询
|
161 | * @param selector css 选择器
|
162 | */
|
163 | find(selector: string): DomElement;
|
164 | /**
|
165 | * 获取/设置 元素 text
|
166 | * @param val text 值
|
167 | */
|
168 | text(): string;
|
169 | text(val: string): DomElement;
|
170 | /**
|
171 | * 设置/获取 元素 html
|
172 | * @param val html 值
|
173 | */
|
174 | html(): string;
|
175 | html(val: string): DomElement;
|
176 | /**
|
177 | * 获取元素 value
|
178 | */
|
179 | val(): string;
|
180 | /**
|
181 | * focus 到当前元素
|
182 | */
|
183 | focus(): DomElement;
|
184 | /**
|
185 | * 当前元素前一个兄弟节点
|
186 | */
|
187 | prev(): DomElement;
|
188 | /**
|
189 | * 当前元素后一个兄弟节点
|
190 | */
|
191 | next(): DomElement;
|
192 | /**
|
193 | * 获取父元素
|
194 | */
|
195 | parent(): DomElement;
|
196 | /**
|
197 | * 查找父元素,直到满足 selector 条件
|
198 | * @param selector css 选择器
|
199 | * @param curElem 从哪个元素开始查找,默认为当前元素
|
200 | */
|
201 | parentUntil(selector: string, curElem?: HTMLElement): DomElement | null;
|
202 | /**
|
203 | * 查找父元素,直到满足 selector 条件,或者 到达 编辑区域容器以及菜单栏容器
|
204 | * @param selector css 选择器
|
205 | * @param curElem 从哪个元素开始查找,默认为当前元素
|
206 | */
|
207 | parentUntilEditor(selector: string, editor: Editor, curElem?: HTMLElement): DomElement | null;
|
208 | /**
|
209 | * 判读是否相等
|
210 | * @param $elem 元素
|
211 | */
|
212 | equal($elem: DomElement | HTMLElement): boolean;
|
213 | /**
|
214 | * 将该元素插入到某个元素前面
|
215 | * @param selector css 选择器
|
216 | */
|
217 | insertBefore(selector: string | DomElement): DomElement;
|
218 | /**
|
219 | * 将该元素插入到selector元素后面
|
220 | * @param selector css 选择器
|
221 | */
|
222 | insertAfter(selector: string | DomElement): DomElement;
|
223 | /**
|
224 | * 设置/获取 数据
|
225 | * @param key key
|
226 | * @param value value
|
227 | */
|
228 | data<T>(key: string, value?: T): T | undefined;
|
229 | /**
|
230 | * 获取当前节点的顶级(段落)
|
231 | * @param editor 富文本实例
|
232 | */
|
233 | getNodeTop(editor: Editor): DomElement;
|
234 | /**
|
235 | * 获取当前 节点 基与上一个拥有相对或者解决定位的父容器的位置
|
236 | * @param editor 富文本实例
|
237 | */
|
238 | getOffsetData(): OffsetDataType;
|
239 | /**
|
240 | * 从上至下进行滚动
|
241 | * @param top 滚动的值
|
242 | */
|
243 | scrollTop(top: number): void;
|
244 | }
|
245 | declare function $(...arg: ConstructorParameters<typeof DomElement>): DomElement;
|
246 | export default $;
|