@whitesev/domutils 1.8.7 → 1.8.9
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/dist/index.amd.js +3904 -4128
- package/dist/index.amd.js.map +1 -1
- package/dist/index.amd.min.js +1 -1
- package/dist/index.amd.min.js.map +1 -1
- package/dist/index.cjs.js +157 -381
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs.min.js +1 -1
- package/dist/index.cjs.min.js.map +1 -1
- package/dist/index.esm.js +157 -381
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/index.iife.js +3905 -4129
- package/dist/index.iife.js.map +1 -1
- package/dist/index.iife.min.js +1 -1
- package/dist/index.iife.min.js.map +1 -1
- package/dist/index.system.js +3909 -4133
- package/dist/index.system.js.map +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/dist/index.umd.js +3907 -4131
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/dist/types/src/CommonUtils.d.ts +0 -16
- package/dist/types/src/ElementAnimate.d.ts +1 -1
- package/dist/types/src/ElementWait.d.ts +21 -21
- package/dist/types/src/index.d.ts +23 -14
- package/package.json +2 -2
- package/src/CommonUtils.ts +0 -54
- package/src/ElementAnimate.ts +3 -3
- package/src/ElementEvent.ts +3 -3
- package/src/ElementWait.ts +42 -25
- package/src/index.ts +160 -80
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { ElementWait } from "./ElementWait";
|
|
1
2
|
import type { DOMUtilsTargetElementType } from "./types/global";
|
|
2
3
|
import type { WindowApiOption } from "./types/WindowApi";
|
|
3
|
-
import { ElementWait } from "./ElementWait";
|
|
4
4
|
import { WindowApi } from "./WindowApi";
|
|
5
5
|
declare class ElementAnimate extends ElementWait {
|
|
6
6
|
windowApi: typeof WindowApi.prototype;
|
|
@@ -48,7 +48,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
48
48
|
* console.log($div); // $div => HTMLDivELement
|
|
49
49
|
* })
|
|
50
50
|
*/
|
|
51
|
-
waitNode<K>(selectorFn: () => K | null | undefined): Promise<K>;
|
|
51
|
+
waitNode<K = HTMLElement>(selectorFn: () => K | null | undefined): Promise<K>;
|
|
52
52
|
/**
|
|
53
53
|
* 等待元素出现
|
|
54
54
|
* @param selectorFn 获取元素的函数
|
|
@@ -58,7 +58,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
58
58
|
* console.log($div); // $div => HTMLDivELement | null
|
|
59
59
|
* })
|
|
60
60
|
*/
|
|
61
|
-
waitNode<K>(selectorFn: () => K | null | undefined, timeout: number): Promise<K | null | undefined>;
|
|
61
|
+
waitNode<K = HTMLElement>(selectorFn: () => K | null | undefined, timeout: number): Promise<K | null | undefined>;
|
|
62
62
|
/**
|
|
63
63
|
* 等待元素出现
|
|
64
64
|
* @param selectorFn 获取元素的函数
|
|
@@ -72,7 +72,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
72
72
|
* console.log($div); // $div => HTMLDivELement | null
|
|
73
73
|
* })
|
|
74
74
|
*/
|
|
75
|
-
waitNode<K>(selectorFn: () => K | null | undefined, parent: Node | Element | Document | HTMLElement, timeout?: number): Promise<K | null | undefined>;
|
|
75
|
+
waitNode<K = HTMLElement>(selectorFn: () => K | null | undefined, parent: Node | Element | Document | HTMLElement, timeout?: number): Promise<K | null | undefined>;
|
|
76
76
|
/**
|
|
77
77
|
* 等待元素出现
|
|
78
78
|
* @param selector CSS选择器
|
|
@@ -86,7 +86,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
86
86
|
* })
|
|
87
87
|
*/
|
|
88
88
|
waitNode<K extends keyof HTMLElementTagNameMap>(selector: K, parent?: Node | Element | Document | HTMLElement): Promise<HTMLElementTagNameMap[K]>;
|
|
89
|
-
waitNode<T extends Element>(selector: string, parent?: Node | Element | Document | HTMLElement): Promise<T>;
|
|
89
|
+
waitNode<T extends Element = HTMLElement>(selector: string, parent?: Node | Element | Document | HTMLElement): Promise<T>;
|
|
90
90
|
/**
|
|
91
91
|
* 等待元素出现
|
|
92
92
|
* @param selectorList CSS选择器数组
|
|
@@ -100,7 +100,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
100
100
|
* })
|
|
101
101
|
*/
|
|
102
102
|
waitNode<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent?: Node | Element | Document | HTMLElement): Promise<HTMLElementTagNameMap[K][]>;
|
|
103
|
-
waitNode<T extends Element[]>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
|
|
103
|
+
waitNode<T extends Element[] = HTMLElement[]>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
|
|
104
104
|
/**
|
|
105
105
|
* 等待元素出现
|
|
106
106
|
* @param selector CSS选择器
|
|
@@ -112,7 +112,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
112
112
|
* })
|
|
113
113
|
*/
|
|
114
114
|
waitNode<K extends keyof HTMLElementTagNameMap>(selector: K, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<HTMLElementTagNameMap[K] | null>;
|
|
115
|
-
waitNode<T extends Element>(selector: string, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
|
|
115
|
+
waitNode<T extends Element = HTMLElement>(selector: string, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
|
|
116
116
|
/**
|
|
117
117
|
* 等待元素出现
|
|
118
118
|
* @param selectorList CSS选择器数组
|
|
@@ -124,7 +124,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
124
124
|
* })
|
|
125
125
|
*/
|
|
126
126
|
waitNode<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<HTMLElementTagNameMap[K] | null>;
|
|
127
|
-
waitNode<T extends Element[]>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
|
|
127
|
+
waitNode<T extends Element[] = HTMLElement[]>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
|
|
128
128
|
/**
|
|
129
129
|
* 等待元素出现
|
|
130
130
|
* @param selector CSS选择器
|
|
@@ -135,7 +135,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
135
135
|
* })
|
|
136
136
|
*/
|
|
137
137
|
waitNode<K extends keyof HTMLElementTagNameMap>(selector: K, timeout: number): Promise<HTMLElementTagNameMap[K] | null>;
|
|
138
|
-
waitNode<T extends Element>(selector: string, timeout: number): Promise<T | null>;
|
|
138
|
+
waitNode<T extends Element = HTMLElement>(selector: string, timeout: number): Promise<T | null>;
|
|
139
139
|
/**
|
|
140
140
|
* 等待元素出现
|
|
141
141
|
* @param selectorList CSS选择器数组
|
|
@@ -146,7 +146,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
146
146
|
* })
|
|
147
147
|
*/
|
|
148
148
|
waitNode<K extends keyof HTMLElementTagNameMap>(selectorList: K[], timeout: number): Promise<HTMLElementTagNameMap[K] | null>;
|
|
149
|
-
waitNode<T extends Element[]>(selectorList: string[], timeout: number): Promise<T | null>;
|
|
149
|
+
waitNode<T extends Element[] = HTMLElement[]>(selectorList: string[], timeout: number): Promise<T | null>;
|
|
150
150
|
/**
|
|
151
151
|
* 等待任意元素出现
|
|
152
152
|
* @param selectorList CSS选择器数组
|
|
@@ -160,7 +160,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
160
160
|
* })
|
|
161
161
|
*/
|
|
162
162
|
waitAnyNode<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent?: Node | Element | Document | HTMLElement): Promise<HTMLElementTagNameMap[K]>;
|
|
163
|
-
waitAnyNode<T extends Element>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
|
|
163
|
+
waitAnyNode<T extends Element = HTMLElement>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
|
|
164
164
|
/**
|
|
165
165
|
* 等待任意元素出现
|
|
166
166
|
* @param selectorList CSS选择器数组
|
|
@@ -172,7 +172,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
172
172
|
* })
|
|
173
173
|
*/
|
|
174
174
|
waitAnyNode<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<HTMLElementTagNameMap[K] | null>;
|
|
175
|
-
waitAnyNode<T extends Element>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
|
|
175
|
+
waitAnyNode<T extends Element = HTMLElement>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
|
|
176
176
|
/**
|
|
177
177
|
* 等待任意元素出现
|
|
178
178
|
* @param selectorList CSS选择器数组
|
|
@@ -183,7 +183,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
183
183
|
* })
|
|
184
184
|
*/
|
|
185
185
|
waitAnyNode<K extends keyof HTMLElementTagNameMap>(selectorList: K[], timeout: number): Promise<HTMLElementTagNameMap[K] | null>;
|
|
186
|
-
waitAnyNode<T extends Element>(selectorList: string[], timeout: number): Promise<T | null>;
|
|
186
|
+
waitAnyNode<T extends Element = HTMLElement>(selectorList: string[], timeout: number): Promise<T | null>;
|
|
187
187
|
/**
|
|
188
188
|
* 等待元素数组出现
|
|
189
189
|
* @param selector CSS选择器
|
|
@@ -197,7 +197,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
197
197
|
* })
|
|
198
198
|
*/
|
|
199
199
|
waitNodeList<T extends keyof HTMLElementTagNameMap>(selector: T, parent?: Node | Element | Document | HTMLElement): Promise<NodeListOf<HTMLElementTagNameMap[T]>>;
|
|
200
|
-
waitNodeList<T extends NodeListOf<Element>>(selector: string, parent?: Node | Element | Document | HTMLElement): Promise<T>;
|
|
200
|
+
waitNodeList<T extends NodeListOf<Element> = NodeListOf<HTMLElement>>(selector: string, parent?: Node | Element | Document | HTMLElement): Promise<T>;
|
|
201
201
|
/**
|
|
202
202
|
* 等待元素数组出现
|
|
203
203
|
* @param selectorList CSS选择器数组
|
|
@@ -211,7 +211,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
211
211
|
* })
|
|
212
212
|
*/
|
|
213
213
|
waitNodeList<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent?: Node | Element | Document | HTMLElement): Promise<NodeListOf<HTMLElementTagNameMap[K]>[]>;
|
|
214
|
-
waitNodeList<T extends NodeListOf<Element>[]>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
|
|
214
|
+
waitNodeList<T extends NodeListOf<Element>[] = NodeListOf<HTMLElement>[]>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
|
|
215
215
|
/**
|
|
216
216
|
* 等待元素数组出现
|
|
217
217
|
* @param selector CSS选择器
|
|
@@ -222,7 +222,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
222
222
|
* console.log($result); // $result => NodeListOf<HTMLDivElement> | null
|
|
223
223
|
* })
|
|
224
224
|
*/
|
|
225
|
-
waitNodeList<T extends NodeListOf<Element>>(selector: string, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
|
|
225
|
+
waitNodeList<T extends NodeListOf<Element> = NodeListOf<HTMLElement>>(selector: string, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
|
|
226
226
|
waitNodeList<K extends keyof HTMLElementTagNameMap>(selector: K, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<NodeListOf<HTMLElementTagNameMap[K]> | null>;
|
|
227
227
|
/**
|
|
228
228
|
* 等待元素数组出现
|
|
@@ -235,7 +235,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
235
235
|
* })
|
|
236
236
|
*/
|
|
237
237
|
waitNodeList<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<NodeListOf<HTMLElementTagNameMap[K]>[] | null>;
|
|
238
|
-
waitNodeList<T extends NodeListOf<Element>[]>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
|
|
238
|
+
waitNodeList<T extends NodeListOf<Element>[] = NodeListOf<HTMLElement>[]>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
|
|
239
239
|
/**
|
|
240
240
|
* 等待元素数组出现
|
|
241
241
|
* @param selector CSS选择器数组
|
|
@@ -246,7 +246,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
246
246
|
* })
|
|
247
247
|
*/
|
|
248
248
|
waitNodeList<K extends keyof HTMLElementTagNameMap>(selector: K[], timeout: number): Promise<NodeListOf<HTMLElementTagNameMap[K]> | null>;
|
|
249
|
-
waitNodeList<T extends NodeListOf<Element>>(selector: string[], timeout: number): Promise<T | null>;
|
|
249
|
+
waitNodeList<T extends NodeListOf<Element> = NodeListOf<HTMLElement>>(selector: string[], timeout: number): Promise<T | null>;
|
|
250
250
|
/**
|
|
251
251
|
* 等待元素数组出现
|
|
252
252
|
* @param selectorList CSS选择器数组
|
|
@@ -257,7 +257,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
257
257
|
* })
|
|
258
258
|
*/
|
|
259
259
|
waitNodeList<K extends keyof HTMLElementTagNameMap>(selectorList: K[], timeout: number): Promise<NodeListOf<HTMLElementTagNameMap[K]>[] | null>;
|
|
260
|
-
waitNodeList<T extends NodeListOf<Element>>(selectorList: string[], timeout: number): Promise<T[] | null>;
|
|
260
|
+
waitNodeList<T extends NodeListOf<Element> = NodeListOf<HTMLElement>>(selectorList: string[], timeout: number): Promise<T[] | null>;
|
|
261
261
|
/**
|
|
262
262
|
* 等待任意元素数组出现
|
|
263
263
|
* @param selectorList CSS选择器数组
|
|
@@ -271,7 +271,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
271
271
|
* })
|
|
272
272
|
*/
|
|
273
273
|
waitAnyNodeList<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent?: Node | Element | Document | HTMLElement): Promise<NodeListOf<HTMLElementTagNameMap[K]>>;
|
|
274
|
-
waitAnyNodeList<T extends Element>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<NodeListOf<T>>;
|
|
274
|
+
waitAnyNodeList<T extends Element = HTMLElement>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<NodeListOf<T>>;
|
|
275
275
|
/**
|
|
276
276
|
* 等待任意元素数组出现
|
|
277
277
|
* @param selectorList CSS选择器数组
|
|
@@ -283,7 +283,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
283
283
|
* })
|
|
284
284
|
*/
|
|
285
285
|
waitAnyNodeList<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<NodeListOf<HTMLElementTagNameMap[K]> | null>;
|
|
286
|
-
waitAnyNodeList<T extends Element>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<NodeListOf<T> | null>;
|
|
286
|
+
waitAnyNodeList<T extends Element = HTMLElement>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<NodeListOf<T> | null>;
|
|
287
287
|
/**
|
|
288
288
|
* 等待任意元素出现
|
|
289
289
|
* @param selectorList CSS选择器数组
|
|
@@ -294,7 +294,7 @@ declare class ElementWait extends ElementSelector {
|
|
|
294
294
|
* })
|
|
295
295
|
*/
|
|
296
296
|
waitAnyNodeList<K extends keyof HTMLElementTagNameMap>(selectorList: K[], timeout: number): Promise<NodeListOf<HTMLElementTagNameMap[K]> | null>;
|
|
297
|
-
waitAnyNodeList<T extends Element>(selectorList: string[], timeout: number): Promise<NodeListOf<T> | null>;
|
|
297
|
+
waitAnyNodeList<T extends Element = HTMLElement>(selectorList: string[], timeout: number): Promise<NodeListOf<T> | null>;
|
|
298
298
|
}
|
|
299
299
|
declare const elementWait: ElementWait;
|
|
300
300
|
export { elementWait, ElementWait };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { DOMUtilsCreateElementAttributesMap } from "./types/DOMUtilsEvent";
|
|
2
|
-
import { type DOMUtilsCSSProperty, type DOMUtilsCSSPropertyType } from "./types/DOMUtilsCSSProperty";
|
|
3
|
-
import type { WindowApiOption } from "./types/WindowApi";
|
|
4
1
|
import { ElementHandler } from "./ElementHandler";
|
|
2
|
+
import { type DOMUtilsCSSProperty, type DOMUtilsCSSPropertyType } from "./types/DOMUtilsCSSProperty";
|
|
3
|
+
import type { DOMUtilsCreateElementAttributesMap } from "./types/DOMUtilsEvent";
|
|
5
4
|
import type { DOMUtilsTargetElementType } from "./types/global";
|
|
5
|
+
import type { WindowApiOption } from "./types/WindowApi";
|
|
6
6
|
declare class DOMUtils extends ElementHandler {
|
|
7
7
|
constructor(option?: WindowApiOption);
|
|
8
8
|
/** 版本号 */
|
|
@@ -304,43 +304,52 @@ declare class DOMUtils extends ElementHandler {
|
|
|
304
304
|
/**
|
|
305
305
|
* 函数在元素内部末尾添加子元素或HTML字符串
|
|
306
306
|
* @param $el 目标元素
|
|
307
|
-
* @param
|
|
307
|
+
* @param args 子元素或HTML字符串
|
|
308
308
|
* @example
|
|
309
309
|
* // 元素a.xx的内部末尾添加一个元素
|
|
310
|
-
* DOMUtils.append(document.querySelector("a.xx"),document.querySelector("b.xx"))
|
|
311
|
-
* DOMUtils.append("a.xx","
|
|
310
|
+
* DOMUtils.append(document.querySelector("a.xx"), document.querySelector("b.xx"))
|
|
311
|
+
* DOMUtils.append("a.xx", "<b class="xx"></b>")
|
|
312
|
+
* DOMUtils.append(document, [document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx")])
|
|
313
|
+
* DOMUtils.append(document, document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx"))
|
|
312
314
|
* */
|
|
313
|
-
append($el: DOMUtilsTargetElementType | DocumentFragment,
|
|
315
|
+
append($el: DOMUtilsTargetElementType | DocumentFragment, ...args: (HTMLElement | string | (HTMLElement | string | Element)[] | NodeList)[]): void;
|
|
314
316
|
/**
|
|
315
317
|
* 函数 在元素内部开头添加子元素或HTML字符串
|
|
316
318
|
* @param $el 目标元素
|
|
317
|
-
* @param
|
|
319
|
+
* @param args 子元素或HTML字符串
|
|
318
320
|
* @example
|
|
319
321
|
* // 元素a.xx内部开头添加一个元素
|
|
320
322
|
* DOMUtils.prepend(document.querySelector("a.xx"),document.querySelector("b.xx"))
|
|
321
323
|
* DOMUtils.prepend("a.xx","'<b class="xx"></b>")
|
|
324
|
+
* DOMUtils.prepend(document, [document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx")])
|
|
325
|
+
* DOMUtils.prepend(document, document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx"))
|
|
322
326
|
* */
|
|
323
|
-
prepend($el: DOMUtilsTargetElementType | DocumentFragment,
|
|
327
|
+
prepend($el: DOMUtilsTargetElementType | DocumentFragment, ...args: (HTMLElement | string | (HTMLElement | string | Element)[] | NodeList)[]): void;
|
|
324
328
|
/**
|
|
325
329
|
* 在元素后面添加兄弟元素或HTML字符串
|
|
326
330
|
* @param $el 目标元素
|
|
327
|
-
* @param
|
|
331
|
+
* @param args 兄弟元素或HTML字符串
|
|
328
332
|
* @example
|
|
329
333
|
* // 元素a.xx后面添加一个元素
|
|
330
334
|
* DOMUtils.after(document.querySelector("a.xx"),document.querySelector("b.xx"))
|
|
331
335
|
* DOMUtils.after("a.xx","'<b class="xx"></b>")
|
|
336
|
+
* DOMUtils.after(document, [document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx")])
|
|
337
|
+
* DOMUtils.after(document, document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx"))
|
|
332
338
|
* */
|
|
333
|
-
after($el: DOMUtilsTargetElementType,
|
|
339
|
+
after($el: DOMUtilsTargetElementType, ...args: (HTMLElement | string | (HTMLElement | string | Element)[] | NodeList)[]): void;
|
|
334
340
|
/**
|
|
335
341
|
* 在元素前面添加兄弟元素或HTML字符串
|
|
336
342
|
* @param $el 目标元素
|
|
337
|
-
* @param
|
|
343
|
+
* @param args 兄弟元素或HTML字符串
|
|
338
344
|
* @example
|
|
339
345
|
* // 元素a.xx前面添加一个元素
|
|
340
346
|
* DOMUtils.before(document.querySelector("a.xx"),document.querySelector("b.xx"))
|
|
341
347
|
* DOMUtils.before("a.xx","'<b class="xx"></b>")
|
|
348
|
+
* DOMUtils.before(document, [document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx")])
|
|
349
|
+
* DOMUtils.before(document, document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx"))
|
|
350
|
+
*
|
|
342
351
|
* */
|
|
343
|
-
before($el: DOMUtilsTargetElementType,
|
|
352
|
+
before($el: DOMUtilsTargetElementType, ...args: (HTMLElement | string | (HTMLElement | string | Element)[] | NodeList)[]): void;
|
|
344
353
|
/**
|
|
345
354
|
* 移除元素
|
|
346
355
|
* @param $el 目标元素,可以是数组、单个元素、NodeList、元素选择器
|
|
@@ -352,7 +361,7 @@ declare class DOMUtils extends ElementHandler {
|
|
|
352
361
|
* */
|
|
353
362
|
remove($el: DOMUtilsTargetElementType | Element): void;
|
|
354
363
|
/**
|
|
355
|
-
*
|
|
364
|
+
* 移除元素内所有的子元素
|
|
356
365
|
* @param $el 目标元素
|
|
357
366
|
* @example
|
|
358
367
|
* // 移除元素a.xx元素的所有子元素
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@whitesev/domutils",
|
|
4
|
-
"version": "1.8.
|
|
4
|
+
"version": "1.8.9",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "适合在浏览器中操作DOM的常用工具类",
|
|
7
7
|
"main": "dist/index.cjs.js",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"lint": "eslint .",
|
|
59
59
|
"lint:fix": "eslint . --fix",
|
|
60
60
|
"format": "prettier . --write",
|
|
61
|
-
"dev": "
|
|
61
|
+
"dev": "vue-tsc --noEmit && vite --force",
|
|
62
62
|
"build": "pnpm run format && pnpm run lint && rollup -c"
|
|
63
63
|
}
|
|
64
64
|
}
|
package/src/CommonUtils.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
import { WindowApi } from "./WindowApi";
|
|
2
|
-
import {
|
|
3
|
-
clearInterval as WorkerClearInterval,
|
|
4
|
-
clearTimeout as WorkerClearTimeout,
|
|
5
|
-
setInterval as WorkerSetInterval,
|
|
6
|
-
setTimeout as WorkerSetTimeout,
|
|
7
|
-
} from "worker-timers";
|
|
8
2
|
|
|
9
3
|
/** 通用工具类 */
|
|
10
4
|
export const CommonUtils = {
|
|
@@ -151,54 +145,6 @@ export const CommonUtils = {
|
|
|
151
145
|
delete target[propName];
|
|
152
146
|
}
|
|
153
147
|
},
|
|
154
|
-
/**
|
|
155
|
-
* 自动使用 Worker 执行 setTimeout
|
|
156
|
-
*/
|
|
157
|
-
setTimeout(callback: (...args: any[]) => any, timeout: number = 0) {
|
|
158
|
-
try {
|
|
159
|
-
return WorkerSetTimeout(callback, timeout);
|
|
160
|
-
} catch {
|
|
161
|
-
return this.windowApi.setTimeout(callback, timeout);
|
|
162
|
-
}
|
|
163
|
-
},
|
|
164
|
-
/**
|
|
165
|
-
* 配合 .setTimeout 使用
|
|
166
|
-
*/
|
|
167
|
-
clearTimeout(timeId: number | undefined) {
|
|
168
|
-
try {
|
|
169
|
-
if (timeId != null) {
|
|
170
|
-
WorkerClearTimeout(timeId);
|
|
171
|
-
}
|
|
172
|
-
} catch {
|
|
173
|
-
// TODO
|
|
174
|
-
} finally {
|
|
175
|
-
this.windowApi.clearTimeout(timeId);
|
|
176
|
-
}
|
|
177
|
-
},
|
|
178
|
-
/**
|
|
179
|
-
* 自动使用 Worker 执行 setInterval
|
|
180
|
-
*/
|
|
181
|
-
setInterval(callback: (...args: any[]) => any, timeout: number = 0) {
|
|
182
|
-
try {
|
|
183
|
-
return WorkerSetInterval(callback, timeout);
|
|
184
|
-
} catch {
|
|
185
|
-
return this.windowApi.setInterval(callback, timeout);
|
|
186
|
-
}
|
|
187
|
-
},
|
|
188
|
-
/**
|
|
189
|
-
* 配合 .setInterval 使用
|
|
190
|
-
*/
|
|
191
|
-
clearInterval(timeId: number | undefined) {
|
|
192
|
-
try {
|
|
193
|
-
if (timeId != null) {
|
|
194
|
-
WorkerClearInterval(timeId);
|
|
195
|
-
}
|
|
196
|
-
} catch {
|
|
197
|
-
// TODO
|
|
198
|
-
} finally {
|
|
199
|
-
this.windowApi.clearInterval(timeId);
|
|
200
|
-
}
|
|
201
|
-
},
|
|
202
148
|
/**
|
|
203
149
|
* 判断是否是元素列表
|
|
204
150
|
* @param $ele
|
package/src/ElementAnimate.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CommonUtils } from "./CommonUtils";
|
|
2
2
|
import { elementSelector } from "./ElementSelector";
|
|
3
|
+
import { ElementWait } from "./ElementWait";
|
|
3
4
|
import type { DOMUtilsTargetElementType } from "./types/global";
|
|
4
5
|
import type { WindowApiOption } from "./types/WindowApi";
|
|
5
|
-
import { ElementWait } from "./ElementWait";
|
|
6
6
|
import { WindowApi } from "./WindowApi";
|
|
7
7
|
|
|
8
8
|
class ElementAnimate extends ElementWait {
|
|
@@ -66,7 +66,7 @@ class ElementAnimate extends ElementWait {
|
|
|
66
66
|
from[prop] = element.style[prop] || context.windowApi.globalThis.getComputedStyle(element)[prop];
|
|
67
67
|
to[prop] = styles[prop];
|
|
68
68
|
}
|
|
69
|
-
const timer =
|
|
69
|
+
const timer = setInterval(function () {
|
|
70
70
|
const timePassed = performance.now() - start;
|
|
71
71
|
let progress = timePassed / duration;
|
|
72
72
|
if (progress > 1) {
|
|
@@ -76,7 +76,7 @@ class ElementAnimate extends ElementWait {
|
|
|
76
76
|
element.style[prop] = from[prop] + (to[prop] - from[prop]) * progress + "px";
|
|
77
77
|
}
|
|
78
78
|
if (progress === 1) {
|
|
79
|
-
|
|
79
|
+
clearInterval(timer);
|
|
80
80
|
if (callback) {
|
|
81
81
|
callback();
|
|
82
82
|
}
|
package/src/ElementEvent.ts
CHANGED
|
@@ -743,7 +743,7 @@ class ElementEvent extends ElementAnimate {
|
|
|
743
743
|
function check() {
|
|
744
744
|
if (checkDOMReadyState()) {
|
|
745
745
|
/* 检查document状态 */
|
|
746
|
-
|
|
746
|
+
setTimeout(completed, 0);
|
|
747
747
|
} else {
|
|
748
748
|
/* 添加监听 */
|
|
749
749
|
addDomReadyListener();
|
|
@@ -1440,7 +1440,7 @@ class ElementEvent extends ElementAnimate {
|
|
|
1440
1440
|
if (evt.pointerType === "touch") {
|
|
1441
1441
|
isMobileTouch = true;
|
|
1442
1442
|
}
|
|
1443
|
-
|
|
1443
|
+
clearTimeout(timer);
|
|
1444
1444
|
timer = void 0;
|
|
1445
1445
|
if (isDoubleClick && $click === selectorTarget) {
|
|
1446
1446
|
isDoubleClick = false;
|
|
@@ -1450,7 +1450,7 @@ class ElementEvent extends ElementAnimate {
|
|
|
1450
1450
|
isDoubleClick: true,
|
|
1451
1451
|
});
|
|
1452
1452
|
} else {
|
|
1453
|
-
timer =
|
|
1453
|
+
timer = setTimeout(() => {
|
|
1454
1454
|
isDoubleClick = false;
|
|
1455
1455
|
// 判断为单击
|
|
1456
1456
|
dblclick_handler(evt, {
|
package/src/ElementWait.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { CommonUtils } from "./CommonUtils";
|
|
2
1
|
import { ElementSelector, elementSelector } from "./ElementSelector";
|
|
3
2
|
import type { WindowApiOption } from "./types/WindowApi";
|
|
4
3
|
import { utils } from "./Utils";
|
|
@@ -90,7 +89,7 @@ class ElementWait extends ElementSelector {
|
|
|
90
89
|
},
|
|
91
90
|
});
|
|
92
91
|
if (__timeout__ > 0) {
|
|
93
|
-
|
|
92
|
+
setTimeout(() => {
|
|
94
93
|
// 取消观察器
|
|
95
94
|
if (typeof observer?.disconnect === "function") {
|
|
96
95
|
observer.disconnect();
|
|
@@ -108,7 +107,7 @@ class ElementWait extends ElementSelector {
|
|
|
108
107
|
* console.log($div); // $div => HTMLDivELement
|
|
109
108
|
* })
|
|
110
109
|
*/
|
|
111
|
-
waitNode<K>(selectorFn: () => K | null | undefined): Promise<K>;
|
|
110
|
+
waitNode<K = HTMLElement>(selectorFn: () => K | null | undefined): Promise<K>;
|
|
112
111
|
/**
|
|
113
112
|
* 等待元素出现
|
|
114
113
|
* @param selectorFn 获取元素的函数
|
|
@@ -118,7 +117,7 @@ class ElementWait extends ElementSelector {
|
|
|
118
117
|
* console.log($div); // $div => HTMLDivELement | null
|
|
119
118
|
* })
|
|
120
119
|
*/
|
|
121
|
-
waitNode<K>(selectorFn: () => K | null | undefined, timeout: number): Promise<K | null | undefined>;
|
|
120
|
+
waitNode<K = HTMLElement>(selectorFn: () => K | null | undefined, timeout: number): Promise<K | null | undefined>;
|
|
122
121
|
/**
|
|
123
122
|
* 等待元素出现
|
|
124
123
|
* @param selectorFn 获取元素的函数
|
|
@@ -132,7 +131,7 @@ class ElementWait extends ElementSelector {
|
|
|
132
131
|
* console.log($div); // $div => HTMLDivELement | null
|
|
133
132
|
* })
|
|
134
133
|
*/
|
|
135
|
-
waitNode<K>(
|
|
134
|
+
waitNode<K = HTMLElement>(
|
|
136
135
|
selectorFn: () => K | null | undefined,
|
|
137
136
|
parent: Node | Element | Document | HTMLElement,
|
|
138
137
|
timeout?: number
|
|
@@ -153,7 +152,10 @@ class ElementWait extends ElementSelector {
|
|
|
153
152
|
selector: K,
|
|
154
153
|
parent?: Node | Element | Document | HTMLElement
|
|
155
154
|
): Promise<HTMLElementTagNameMap[K]>;
|
|
156
|
-
waitNode<T extends Element
|
|
155
|
+
waitNode<T extends Element = HTMLElement>(
|
|
156
|
+
selector: string,
|
|
157
|
+
parent?: Node | Element | Document | HTMLElement
|
|
158
|
+
): Promise<T>;
|
|
157
159
|
/**
|
|
158
160
|
* 等待元素出现
|
|
159
161
|
* @param selectorList CSS选择器数组
|
|
@@ -170,7 +172,10 @@ class ElementWait extends ElementSelector {
|
|
|
170
172
|
selectorList: K[],
|
|
171
173
|
parent?: Node | Element | Document | HTMLElement
|
|
172
174
|
): Promise<HTMLElementTagNameMap[K][]>;
|
|
173
|
-
waitNode<T extends Element[]
|
|
175
|
+
waitNode<T extends Element[] = HTMLElement[]>(
|
|
176
|
+
selectorList: string[],
|
|
177
|
+
parent?: Node | Element | Document | HTMLElement
|
|
178
|
+
): Promise<T>;
|
|
174
179
|
/**
|
|
175
180
|
* 等待元素出现
|
|
176
181
|
* @param selector CSS选择器
|
|
@@ -186,7 +191,7 @@ class ElementWait extends ElementSelector {
|
|
|
186
191
|
parent: Node | Element | Document | HTMLElement,
|
|
187
192
|
timeout: number
|
|
188
193
|
): Promise<HTMLElementTagNameMap[K] | null>;
|
|
189
|
-
waitNode<T extends Element>(
|
|
194
|
+
waitNode<T extends Element = HTMLElement>(
|
|
190
195
|
selector: string,
|
|
191
196
|
parent: Node | Element | Document | HTMLElement,
|
|
192
197
|
timeout: number
|
|
@@ -206,7 +211,7 @@ class ElementWait extends ElementSelector {
|
|
|
206
211
|
parent: Node | Element | Document | HTMLElement,
|
|
207
212
|
timeout: number
|
|
208
213
|
): Promise<HTMLElementTagNameMap[K] | null>;
|
|
209
|
-
waitNode<T extends Element[]>(
|
|
214
|
+
waitNode<T extends Element[] = HTMLElement[]>(
|
|
210
215
|
selectorList: string[],
|
|
211
216
|
parent: Node | Element | Document | HTMLElement,
|
|
212
217
|
timeout: number
|
|
@@ -224,7 +229,7 @@ class ElementWait extends ElementSelector {
|
|
|
224
229
|
selector: K,
|
|
225
230
|
timeout: number
|
|
226
231
|
): Promise<HTMLElementTagNameMap[K] | null>;
|
|
227
|
-
waitNode<T extends Element>(selector: string, timeout: number): Promise<T | null>;
|
|
232
|
+
waitNode<T extends Element = HTMLElement>(selector: string, timeout: number): Promise<T | null>;
|
|
228
233
|
/**
|
|
229
234
|
* 等待元素出现
|
|
230
235
|
* @param selectorList CSS选择器数组
|
|
@@ -238,7 +243,7 @@ class ElementWait extends ElementSelector {
|
|
|
238
243
|
selectorList: K[],
|
|
239
244
|
timeout: number
|
|
240
245
|
): Promise<HTMLElementTagNameMap[K] | null>;
|
|
241
|
-
waitNode<T extends Element[]>(selectorList: string[], timeout: number): Promise<T | null>;
|
|
246
|
+
waitNode<T extends Element[] = HTMLElement[]>(selectorList: string[], timeout: number): Promise<T | null>;
|
|
242
247
|
waitNode<T extends Element | Element[]>(...args: any[]): Promise<T | null> {
|
|
243
248
|
// 过滤掉undefined
|
|
244
249
|
args = args.filter((arg) => arg !== void 0);
|
|
@@ -337,7 +342,10 @@ class ElementWait extends ElementSelector {
|
|
|
337
342
|
selectorList: K[],
|
|
338
343
|
parent?: Node | Element | Document | HTMLElement
|
|
339
344
|
): Promise<HTMLElementTagNameMap[K]>;
|
|
340
|
-
waitAnyNode<T extends Element
|
|
345
|
+
waitAnyNode<T extends Element = HTMLElement>(
|
|
346
|
+
selectorList: string[],
|
|
347
|
+
parent?: Node | Element | Document | HTMLElement
|
|
348
|
+
): Promise<T>;
|
|
341
349
|
/**
|
|
342
350
|
* 等待任意元素出现
|
|
343
351
|
* @param selectorList CSS选择器数组
|
|
@@ -353,7 +361,7 @@ class ElementWait extends ElementSelector {
|
|
|
353
361
|
parent: Node | Element | Document | HTMLElement,
|
|
354
362
|
timeout: number
|
|
355
363
|
): Promise<HTMLElementTagNameMap[K] | null>;
|
|
356
|
-
waitAnyNode<T extends Element>(
|
|
364
|
+
waitAnyNode<T extends Element = HTMLElement>(
|
|
357
365
|
selectorList: string[],
|
|
358
366
|
parent: Node | Element | Document | HTMLElement,
|
|
359
367
|
timeout: number
|
|
@@ -371,8 +379,8 @@ class ElementWait extends ElementSelector {
|
|
|
371
379
|
selectorList: K[],
|
|
372
380
|
timeout: number
|
|
373
381
|
): Promise<HTMLElementTagNameMap[K] | null>;
|
|
374
|
-
waitAnyNode<T extends Element>(selectorList: string[], timeout: number): Promise<T | null>;
|
|
375
|
-
waitAnyNode<T extends Element>(...args: any[]): Promise<T | null> {
|
|
382
|
+
waitAnyNode<T extends Element = HTMLElement>(selectorList: string[], timeout: number): Promise<T | null>;
|
|
383
|
+
waitAnyNode<T extends Element = HTMLElement>(...args: any[]): Promise<T | null> {
|
|
376
384
|
// 过滤掉undefined
|
|
377
385
|
args = args.filter((arg) => arg !== void 0);
|
|
378
386
|
const UtilsContext = this;
|
|
@@ -438,7 +446,7 @@ class ElementWait extends ElementSelector {
|
|
|
438
446
|
selector: T,
|
|
439
447
|
parent?: Node | Element | Document | HTMLElement
|
|
440
448
|
): Promise<NodeListOf<HTMLElementTagNameMap[T]>>;
|
|
441
|
-
waitNodeList<T extends NodeListOf<Element>>(
|
|
449
|
+
waitNodeList<T extends NodeListOf<Element> = NodeListOf<HTMLElement>>(
|
|
442
450
|
selector: string,
|
|
443
451
|
parent?: Node | Element | Document | HTMLElement
|
|
444
452
|
): Promise<T>;
|
|
@@ -458,7 +466,7 @@ class ElementWait extends ElementSelector {
|
|
|
458
466
|
selectorList: K[],
|
|
459
467
|
parent?: Node | Element | Document | HTMLElement
|
|
460
468
|
): Promise<NodeListOf<HTMLElementTagNameMap[K]>[]>;
|
|
461
|
-
waitNodeList<T extends NodeListOf<Element>[]>(
|
|
469
|
+
waitNodeList<T extends NodeListOf<Element>[] = NodeListOf<HTMLElement>[]>(
|
|
462
470
|
selectorList: string[],
|
|
463
471
|
parent?: Node | Element | Document | HTMLElement
|
|
464
472
|
): Promise<T>;
|
|
@@ -472,7 +480,7 @@ class ElementWait extends ElementSelector {
|
|
|
472
480
|
* console.log($result); // $result => NodeListOf<HTMLDivElement> | null
|
|
473
481
|
* })
|
|
474
482
|
*/
|
|
475
|
-
waitNodeList<T extends NodeListOf<Element>>(
|
|
483
|
+
waitNodeList<T extends NodeListOf<Element> = NodeListOf<HTMLElement>>(
|
|
476
484
|
selector: string,
|
|
477
485
|
parent: Node | Element | Document | HTMLElement,
|
|
478
486
|
timeout: number
|
|
@@ -497,7 +505,7 @@ class ElementWait extends ElementSelector {
|
|
|
497
505
|
parent: Node | Element | Document | HTMLElement,
|
|
498
506
|
timeout: number
|
|
499
507
|
): Promise<NodeListOf<HTMLElementTagNameMap[K]>[] | null>;
|
|
500
|
-
waitNodeList<T extends NodeListOf<Element>[]>(
|
|
508
|
+
waitNodeList<T extends NodeListOf<Element>[] = NodeListOf<HTMLElement>[]>(
|
|
501
509
|
selectorList: string[],
|
|
502
510
|
parent: Node | Element | Document | HTMLElement,
|
|
503
511
|
timeout: number
|
|
@@ -515,7 +523,10 @@ class ElementWait extends ElementSelector {
|
|
|
515
523
|
selector: K[],
|
|
516
524
|
timeout: number
|
|
517
525
|
): Promise<NodeListOf<HTMLElementTagNameMap[K]> | null>;
|
|
518
|
-
waitNodeList<T extends NodeListOf<Element
|
|
526
|
+
waitNodeList<T extends NodeListOf<Element> = NodeListOf<HTMLElement>>(
|
|
527
|
+
selector: string[],
|
|
528
|
+
timeout: number
|
|
529
|
+
): Promise<T | null>;
|
|
519
530
|
/**
|
|
520
531
|
* 等待元素数组出现
|
|
521
532
|
* @param selectorList CSS选择器数组
|
|
@@ -529,7 +540,10 @@ class ElementWait extends ElementSelector {
|
|
|
529
540
|
selectorList: K[],
|
|
530
541
|
timeout: number
|
|
531
542
|
): Promise<NodeListOf<HTMLElementTagNameMap[K]>[] | null>;
|
|
532
|
-
waitNodeList<T extends NodeListOf<Element
|
|
543
|
+
waitNodeList<T extends NodeListOf<Element> = NodeListOf<HTMLElement>>(
|
|
544
|
+
selectorList: string[],
|
|
545
|
+
timeout: number
|
|
546
|
+
): Promise<T[] | null>;
|
|
533
547
|
waitNodeList<T extends NodeListOf<Element> | NodeListOf<Element>[]>(...args: any[]): Promise<T | null> {
|
|
534
548
|
// 过滤掉undefined
|
|
535
549
|
args = args.filter((arg) => arg !== void 0);
|
|
@@ -629,7 +643,7 @@ class ElementWait extends ElementSelector {
|
|
|
629
643
|
selectorList: K[],
|
|
630
644
|
parent?: Node | Element | Document | HTMLElement
|
|
631
645
|
): Promise<NodeListOf<HTMLElementTagNameMap[K]>>;
|
|
632
|
-
waitAnyNodeList<T extends Element>(
|
|
646
|
+
waitAnyNodeList<T extends Element = HTMLElement>(
|
|
633
647
|
selectorList: string[],
|
|
634
648
|
parent?: Node | Element | Document | HTMLElement
|
|
635
649
|
): Promise<NodeListOf<T>>;
|
|
@@ -648,7 +662,7 @@ class ElementWait extends ElementSelector {
|
|
|
648
662
|
parent: Node | Element | Document | HTMLElement,
|
|
649
663
|
timeout: number
|
|
650
664
|
): Promise<NodeListOf<HTMLElementTagNameMap[K]> | null>;
|
|
651
|
-
waitAnyNodeList<T extends Element>(
|
|
665
|
+
waitAnyNodeList<T extends Element = HTMLElement>(
|
|
652
666
|
selectorList: string[],
|
|
653
667
|
parent: Node | Element | Document | HTMLElement,
|
|
654
668
|
timeout: number
|
|
@@ -666,8 +680,11 @@ class ElementWait extends ElementSelector {
|
|
|
666
680
|
selectorList: K[],
|
|
667
681
|
timeout: number
|
|
668
682
|
): Promise<NodeListOf<HTMLElementTagNameMap[K]> | null>;
|
|
669
|
-
waitAnyNodeList<T extends Element
|
|
670
|
-
|
|
683
|
+
waitAnyNodeList<T extends Element = HTMLElement>(
|
|
684
|
+
selectorList: string[],
|
|
685
|
+
timeout: number
|
|
686
|
+
): Promise<NodeListOf<T> | null>;
|
|
687
|
+
waitAnyNodeList<T extends Element = HTMLElement>(...args: any[]): Promise<NodeListOf<T> | null> {
|
|
671
688
|
// 过滤掉undefined
|
|
672
689
|
args = args.filter((arg) => arg !== void 0);
|
|
673
690
|
const UtilsContext = this;
|