@whitesev/utils 2.8.2 → 2.9.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.
Files changed (73) hide show
  1. package/README.md +176 -176
  2. package/dist/index.amd.js +269 -777
  3. package/dist/index.amd.js.map +1 -1
  4. package/dist/index.amd.min.js +2 -0
  5. package/dist/index.amd.min.js.map +1 -0
  6. package/dist/index.cjs.js +269 -777
  7. package/dist/index.cjs.js.map +1 -1
  8. package/dist/index.cjs.min.js +2 -0
  9. package/dist/index.cjs.min.js.map +1 -0
  10. package/dist/index.esm.js +269 -777
  11. package/dist/index.esm.js.map +1 -1
  12. package/dist/index.esm.min.js +2 -0
  13. package/dist/index.esm.min.js.map +1 -0
  14. package/dist/index.iife.js +269 -777
  15. package/dist/index.iife.js.map +1 -1
  16. package/dist/index.iife.min.js +2 -0
  17. package/dist/index.iife.min.js.map +1 -0
  18. package/dist/index.system.js +269 -777
  19. package/dist/index.system.js.map +1 -1
  20. package/dist/index.system.min.js +2 -0
  21. package/dist/index.system.min.js.map +1 -0
  22. package/dist/index.umd.js +269 -777
  23. package/dist/index.umd.js.map +1 -1
  24. package/dist/index.umd.min.js +2 -0
  25. package/dist/index.umd.min.js.map +1 -0
  26. package/dist/types/src/Utils.d.ts +103 -450
  27. package/dist/types/src/UtilsGMCookie.d.ts +4 -0
  28. package/dist/types/src/UtilsGMMenu.d.ts +3 -6
  29. package/dist/types/src/types/Httpx.d.ts +1344 -1344
  30. package/dist/types/src/types/Log.d.ts +19 -19
  31. package/dist/types/src/types/Progress.d.ts +20 -20
  32. package/dist/types/src/types/React.d.ts +119 -119
  33. package/dist/types/src/types/TryCatch.d.ts +9 -9
  34. package/dist/types/src/types/UtilsGMCookie.d.ts +93 -93
  35. package/dist/types/src/types/UtilsGMMenu.d.ts +77 -77
  36. package/dist/types/src/types/Vue2.d.ts +166 -166
  37. package/dist/types/src/types/WindowApi.d.ts +14 -14
  38. package/dist/types/src/types/ajaxHooker.d.ts +151 -151
  39. package/dist/types/src/types/env.d.ts +7 -7
  40. package/dist/types/src/types/global.d.ts +31 -31
  41. package/package.json +13 -9
  42. package/src/ColorConversion.ts +105 -105
  43. package/src/CommonUtil.ts +280 -280
  44. package/src/DOMUtils.ts +251 -251
  45. package/src/Dictionary.ts +153 -153
  46. package/src/GBKEncoder.ts +108 -108
  47. package/src/Hooks.ts +73 -73
  48. package/src/Httpx.ts +1457 -1457
  49. package/src/LockFunction.ts +62 -62
  50. package/src/Log.ts +258 -258
  51. package/src/Progress.ts +108 -108
  52. package/src/TryCatch.ts +86 -86
  53. package/src/Utils.ts +3778 -4773
  54. package/src/UtilsCommon.ts +14 -14
  55. package/src/UtilsGMCookie.ts +272 -254
  56. package/src/UtilsGMMenu.ts +441 -445
  57. package/src/Vue.ts +233 -233
  58. package/src/WindowApi.ts +59 -59
  59. package/src/indexedDB.ts +497 -497
  60. package/src/types/Httpx.d.ts +1344 -1344
  61. package/src/types/Log.d.ts +19 -19
  62. package/src/types/Progress.d.ts +20 -20
  63. package/src/types/React.d.ts +119 -119
  64. package/src/types/TryCatch.d.ts +9 -9
  65. package/src/types/UtilsGMCookie.d.ts +93 -93
  66. package/src/types/UtilsGMMenu.d.ts +77 -77
  67. package/src/types/Vue2.d.ts +166 -166
  68. package/src/types/WindowApi.d.ts +14 -14
  69. package/src/types/ajaxHooker.d.ts +151 -151
  70. package/src/types/env.d.ts +7 -7
  71. package/src/types/global.d.ts +31 -31
  72. package/dist/types/src/types/Event.d.ts +0 -188
  73. package/src/types/Event.d.ts +0 -188
@@ -9,7 +9,6 @@ import { LockFunction } from "./LockFunction";
9
9
  import { Log } from "./Log";
10
10
  import { Progress } from "./Progress";
11
11
  import { UtilsDictionary } from "./Dictionary";
12
- import type { DOMUtils_EventType } from "./types/Event";
13
12
  import type { UtilsAjaxHookResult } from "./types/ajaxHooker";
14
13
  import { Vue } from "./Vue";
15
14
  import { type ArgsType, type JSTypeNames, type UtilsOwnObject } from "./types/global";
@@ -21,15 +20,6 @@ declare class Utils {
21
20
  constructor(option?: WindowApiOption);
22
21
  /** 版本号 */
23
22
  version: string;
24
- /**
25
- * 在页面中增加style元素,如果html节点存在子节点,添加子节点第一个,反之,添加到html节点的子节点最后一个
26
- * @param cssText css字符串
27
- * @returns 返回添加的CSS标签
28
- * @example
29
- * Utils.GM_addStyle("html{}");
30
- * > <style type="text/css">html{}</style>
31
- */
32
- addStyle(cssText: string): HTMLStyleElement;
33
23
  /**
34
24
  * JSON数据从源端替换到目标端中,如果目标端存在该数据则替换,不添加,返回结果为目标端替换完毕的结果
35
25
  * @param target 目标数据
@@ -57,7 +47,7 @@ declare class Utils {
57
47
  * ajax劫持库,支持xhr和fetch劫持。
58
48
  * + 来源:https://bbs.tampermonkey.net.cn/thread-3284-1-1.html
59
49
  * + 作者:cxxjackie
60
- * + 版本:1.4.7
50
+ * + 版本:1.4.8
61
51
  * + 旧版本:1.2.4
62
52
  * + 文档:https://scriptcat.org/zh-CN/script-show-page/637/
63
53
  * @param useOldVersion 是否使用旧版本,默认false
@@ -71,17 +61,6 @@ declare class Utils {
71
61
  * @param view 触发的事件目标
72
62
  */
73
63
  canvasClickByPosition(canvasElement: HTMLCanvasElement, clientX?: number | string, clientY?: number | string, view?: Window & typeof globalThis): void;
74
- /**
75
- * 【手机】检测点击的地方是否在该元素区域内
76
- * @param element 需要检测的元素
77
- * @returns
78
- * + true 点击在元素上
79
- * + false 未点击在元素上
80
- * @example
81
- * Utils.checkUserClickInNode(document.querySelector(".xxx"));
82
- * > false
83
- **/
84
- checkUserClickInNode(element: Element | Node | HTMLElement): boolean;
85
64
  /**
86
65
  * 复制formData数据
87
66
  * @param formData 需要clone的数据
@@ -129,18 +108,6 @@ declare class Utils {
129
108
  * @param delay 防抖判定时间(毫秒),默认是0ms
130
109
  */
131
110
  debounce<A extends any[], R>(fn: (...args: A) => R, delay?: number): (...args: A) => void;
132
- /**
133
- * 删除某个父元素,父元素可能在上层或上上层或上上上层...
134
- * @param element 当前元素
135
- * @param targetSelector 判断是否满足父元素,参数为当前处理的父元素,满足返回true,否则false
136
- * @returns
137
- * + true 已删除
138
- * + false 未删除
139
- * @example
140
- * Utils.deleteParentNode(document.querySelector("a"),".xxx");
141
- * > true
142
- **/
143
- deleteParentNode(element: Node | HTMLElement | Element | null, targetSelector: string): boolean;
144
111
  /**
145
112
  * 字典
146
113
  * @example
@@ -154,28 +121,6 @@ declare class Utils {
154
121
  * dictionary.concat(dictionary2);
155
122
  **/
156
123
  Dictionary: typeof UtilsDictionary;
157
- /**
158
- * 主动触发事件
159
- * @param element 元素
160
- * @param eventName 事件名称,可以是字符串,也可是字符串格式的列表
161
- * @param details (可选)赋予触发的Event的额外属性
162
- * + true 使用Proxy代理Event并设置获取isTrusted永远为True
163
- * + false (默认) 不对Event进行Proxy代理
164
- * @example
165
- * Utils.dispatchEvent(document.querySelector("input","input"))
166
- */
167
- dispatchEvent(element: HTMLElement | Document, eventName: DOMUtils_EventType | DOMUtils_EventType[], details?: any): void;
168
- /**
169
- * 主动触发事件
170
- * @param element 元素
171
- * @param eventName 事件名称,可以是字符串,也可是字符串格式的列表
172
- * @param details (可选)赋予触发的Event的额外属性
173
- * + true 使用Proxy代理Event并设置获取isTrusted永远为True
174
- * + false (默认) 不对Event进行Proxy代理
175
- * @example
176
- * Utils.dispatchEvent(document.querySelector("input","input"))
177
- */
178
- dispatchEvent(element: HTMLElement | Document, eventName: string, details?: any): void;
179
124
  /**
180
125
  * 下载base64格式的数据
181
126
  * @param base64Data 需要转换的base64数据
@@ -200,25 +145,6 @@ declare class Utils {
200
145
  * > true
201
146
  **/
202
147
  findWebPageVisibleText(str?: string, caseSensitive?: boolean): boolean | void;
203
- /**
204
- * 定位元素上的字符串,返回一个迭代器
205
- * @param element 目标元素
206
- * @param text 需要定位的字符串
207
- * @param filter (可选)过滤器函数,返回值为true是排除该元素
208
- * @example
209
- * let textIterator = Utils.findElementsWithText(document.documentElement,"xxxx");
210
- * textIterator.next();
211
- * > {value: ?HTMLElement, done: boolean, next: Function}
212
- */
213
- findElementsWithText<T extends HTMLElement | Element | Node>(element: T, text: string, filter?: (element: T) => boolean): Generator<HTMLElement | ChildNode, void, any>;
214
- /**
215
- * 判断该元素是否可见,如果不可见,向上找它的父元素直至找到可见的元素
216
- * @param element
217
- * @example
218
- * let visibleElement = Utils.findVisibleElement(document.querySelector("a.xx"));
219
- * > <HTMLElement>
220
- */
221
- findVisibleElement(element: HTMLElement | Element | Node): HTMLElement | null;
222
148
  /**
223
149
  * 格式化byte为KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB
224
150
  * @param byteSize 字节
@@ -324,14 +250,6 @@ declare class Utils {
324
250
  * > 测试
325
251
  */
326
252
  GBKEncoder: typeof GBKEncoder;
327
- /**
328
- * 获取 transitionend 的在各个浏览器的兼容名
329
- */
330
- getTransitionEndNameList(): string[];
331
- /**
332
- * 获取 animationend 的在各个浏览器的兼容名
333
- */
334
- getAnimationEndNameList(): string[];
335
253
  /**
336
254
  * 获取NodeList或Array对象中的最后一个的值
337
255
  * @param targetObj
@@ -383,14 +301,6 @@ declare class Utils {
383
301
  * > 0
384
302
  */
385
303
  getDaysDifference(timestamp1?: number, timestamp2?: number, type?: "年" | "月" | "天" | "时" | "分" | "秒"): number;
386
- /**
387
- * 获取元素的选择器字符串
388
- * @param element
389
- * @example
390
- * Utils.getElementSelector(document.querySelector("a"))
391
- * > '.....'
392
- */
393
- getElementSelector(element: HTMLElement): string;
394
304
  /**
395
305
  * 获取最大值
396
306
  * @example
@@ -528,9 +438,9 @@ declare class Utils {
528
438
  * @param element 需要获取的目标元素
529
439
  * @returns
530
440
  * @example
531
- * Utils.getReactObj(document.querySelector("input"))?.reactProps?.onChange({target:{value:"123"}});
441
+ * Utils.getReactInstance(document.querySelector("input"))?.reactProps?.onChange({target:{value:"123"}});
532
442
  */
533
- getReactObj(element: HTMLElement | Element): ReactInstance;
443
+ getReactInstance(element: HTMLElement | Element): ReactInstance;
534
444
  /**
535
445
  * 获取对象上的Symbol属性,如果没设置keyName,那么返回一个对象,对象是所有遍历到的Symbol对象
536
446
  * @param target 目标对象
@@ -999,25 +909,25 @@ declare class Utils {
999
909
  **/
1000
910
  mergeArrayToString<T>(data: T[], handleFunc?: ((val: T) => T) | keyof T): string;
1001
911
  /**
1002
- * 监听页面元素改变并处理
1003
- * @param target 需要监听的元素,如果不存在,可以等待它出现
1004
- * @param observer_config MutationObserver的配置
1005
- * @example
1006
- Utils.mutationObserver(document.querySelector("div.xxxx"),{
1007
- "callback":(mutations, observer)=>{},
1008
- "config":{childList:true,attributes:true}
1009
- });
1010
- * @example
1011
- Utils.mutationObserver(document.querySelectorAll("div.xxxx"),{
1012
- "callback":(mutations, observer)=>{},
1013
- "config":{childList:true,attributes:true}}
1014
- );
1015
- * @example
1016
- Utils.mutationObserver($("div.xxxx"),{
912
+ * 监听页面元素改变并处理
913
+ * @param target 需要监听的元素,如果不存在,可以等待它出现
914
+ * @param observer_config MutationObserver的配置
915
+ * @example
916
+ Utils.mutationObserver(document.querySelector("div.xxxx"),{
917
+ "callback":(mutations, observer)=>{},
918
+ "config":{childList:true,attributes:true}
919
+ });
920
+ * @example
921
+ Utils.mutationObserver(document.querySelectorAll("div.xxxx"),{
1017
922
  "callback":(mutations, observer)=>{},
1018
923
  "config":{childList:true,attributes:true}}
1019
- );
1020
- **/
924
+ );
925
+ * @example
926
+ Utils.mutationObserver($("div.xxxx"),{
927
+ "callback":(mutations, observer)=>{},
928
+ "config":{childList:true,attributes:true}}
929
+ );
930
+ **/
1021
931
  mutationObserver(target: HTMLElement | Node | NodeList | Document, observer_config: {
1022
932
  /**
1023
933
  * observer的配置
@@ -1168,33 +1078,24 @@ declare class Utils {
1168
1078
  */
1169
1079
  parseFromString(text: string, mimeType?: "text/html" | "text/xml" | "application/xml" | "application/xhtml+xml" | "image/svg+xml"): HTMLElement | XMLDocument | SVGElement;
1170
1080
  /**
1171
- * 将字符串进行正则转义
1172
- * 例如:^替换$
1173
- * 转换:\^替换\$
1174
- */
1175
- parseStringToRegExpString(text: string): string;
1176
- /**
1177
- * 阻止事件传递
1178
- * @param element 要进行处理的元素
1179
- * @param eventNameList (可选)要阻止的事件名|列表
1180
- * @param capture (可选)是否捕获,默认false
1181
- * @example
1182
- * Utils.preventEvent(document.querySelector("a"),"click")
1081
+ * 字符串转正则,用于把字符串中不规范的字符进行转义
1082
+ * @param text 需要进行转换的字符串
1083
+ * @param flags (可选)正则标志,默认`gi`
1183
1084
  * @example
1184
- * Utils.preventEvent(event);
1085
+ * Utils.toRegExp("^替换$");
1086
+ * > /^替换$/gi
1185
1087
  */
1186
- preventEvent(event: Event): boolean;
1088
+ toRegExp(text: string | RegExp, flags?: "g" | "i" | "m" | "u" | "y" | string): RegExp;
1187
1089
  /**
1188
- * 阻止事件传递
1189
- * @param element 要进行处理的元素
1190
- * @param eventNameList (可选)要阻止的事件名|列表
1191
- * @param capture (可选)是否捕获,默认false
1192
- * @example
1193
- * Utils.preventEvent(document.querySelector("a"),"click")
1090
+ * 将字符串进行正则转义
1091
+ * 例如:^替换$
1092
+ * 转换:\^替换\$
1093
+ * @param text 需要转义的字符串
1194
1094
  * @example
1195
- * Utils.preventEvent(event);
1095
+ * Utils.toRegExpStr("^替换$");
1096
+ * > \^替换\$
1196
1097
  */
1197
- preventEvent(element: HTMLElement, eventNameList?: string | string[], capture?: boolean): boolean;
1098
+ toRegExpStr(text: string): string;
1198
1099
  /**
1199
1100
  * 在canvas元素节点上绘制进度圆圈
1200
1101
  * @example
@@ -1203,54 +1104,60 @@ declare class Utils {
1203
1104
  * **/
1204
1105
  Progress: typeof Progress;
1205
1106
  /**
1206
- * 劫持Event的isTrust为true,注入时刻,ducument-start
1107
+ * 劫持所有Event的isTrust为true,脚本注入时刻请设置为`ducument-start`
1207
1108
  * @param isTrustValue (可选)让isTrusted为true
1208
- * @param filter (可选)过滤出需要的事件名,true为需要,false为不需要
1109
+ * @param filter (可选)过滤出需要的事件名,返回值true为需要,返回值false为不需要,默认click事件为需要的
1209
1110
  * @example
1210
- * Utils.registerTrustClickEvent()
1111
+ * Utils.hookEvent_isTrusted()
1211
1112
  */
1212
- registerTrustClickEvent(isTrustValue?: boolean, filter?: (typeName: string) => boolean): void;
1113
+ hookEvent_isTrusted(isTrustValue?: boolean, filter?: (typeName: string) => boolean): void;
1213
1114
  /**
1214
1115
  * 将数字进行正/负转换
1215
1116
  * @param num 需要进行转换的数字
1216
1117
  */
1217
1118
  reverseNumber(num: number): number;
1218
- /**
1219
- * 将元素上的文本或元素使用光标进行选中
1220
- *
1221
- * 注意,如果设置startIndex和endIndex,且元素上并无可选则的坐标,那么会报错
1222
- * @param element 目标元素
1223
- * @param childTextNode 目标元素下的#text元素
1224
- * @param startIndex (可选)开始坐标,可为空
1225
- * @param endIndex (可选)结束坐标,可为空
1226
- */
1227
- selectElementText(element: HTMLElement | Element | Node, childTextNode?: ChildNode, startIndex?: number, endIndex?: number): void;
1228
1119
  /**
1229
1120
  * 复制到剪贴板
1230
1121
  * @param data 需要复制到剪贴板的文本
1231
1122
  * @param info (可选)默认:text/plain
1232
1123
  * @example
1233
- * Utils.setClip({1:2});
1124
+ * Utils.copy({1:2});
1234
1125
  * > {"1":2}
1235
1126
  * @example
1236
- * Utils.setClip( ()=>{
1127
+ * Utils.copy( ()=>{
1237
1128
  * console.log(1)
1238
1129
  * });
1239
1130
  * > ()=>{console.log(1)}
1240
1131
  * @example
1241
- * Utils.setClip("xxxx");
1132
+ * Utils.copy("xxxx");
1242
1133
  * > xxxx
1243
1134
  * @example
1244
- * Utils.setClip("xxxx","html");
1135
+ * Utils.copy("xxxx","html");
1245
1136
  * > xxxx
1246
1137
  * @example
1247
- * Utils.setClip("xxxx","text/plain");
1138
+ * Utils.copy("xxxx","text/plain");
1248
1139
  * > xxxx
1249
1140
  **/
1250
- setClip(data: any, info?: {
1141
+ copy(data: any, info?: {
1251
1142
  type: string;
1252
1143
  mimetype: string;
1253
1144
  } | string): Promise<boolean>;
1145
+ /**
1146
+ * 获取剪贴板信息
1147
+ * @example
1148
+ * await Utils.getClipboardInfo();
1149
+ * > { error: null, content: "剪贴板内容" }
1150
+ */
1151
+ getClipboardInfo(): Promise<{
1152
+ /**
1153
+ * 错误信息,如果为null,则表示读取成功
1154
+ */
1155
+ error: Error | null;
1156
+ /**
1157
+ * 剪贴板内容
1158
+ */
1159
+ content: string;
1160
+ }>;
1254
1161
  /**
1255
1162
  * 【异步函数】等待N秒执行函数
1256
1163
  * @param callback 待执行的函数(字符串)
@@ -1296,7 +1203,7 @@ declare class Utils {
1296
1203
  */
1297
1204
  exitFullScreen($el?: HTMLElement | HTMLDocument | Document): Promise<void>;
1298
1205
  /**
1299
- * 数组按照内部某个值的大小比对排序,如[{"time":"2022-1-1"},{"time":"2022-2-2"}]
1206
+ * 数组按照内部某个值的大小比对排序,该函数会改变原数组
1300
1207
  * @param data 数据|获取数据的方法
1301
1208
  * @param getPropertyValueFunc 数组内部项的某个属性的值的方法,参数为这个项
1302
1209
  * @param sortByDesc (可选)排序方式
@@ -1311,12 +1218,6 @@ declare class Utils {
1311
1218
  * > [{time: '2022-1-1'},{time: '2022-2-2'}]
1312
1219
  **/
1313
1220
  sortListByProperty<T>(data: T[], getPropertyValueFunc: string | ((value: T) => any), sortByDesc?: boolean): T[];
1314
- /**
1315
- * 字符串转正则,用于把字符串中不规范的字符进行转义
1316
- * @param targetString 需要进行转换的字符串
1317
- * @param flags 正则标志
1318
- */
1319
- stringToRegular(targetString: string | RegExp, flags?: "g" | "i" | "m" | "u" | "y" | string): RegExp;
1320
1221
  /**
1321
1222
  * 字符串首字母转大写
1322
1223
  * @param targetString 目标字符串
@@ -1334,10 +1235,10 @@ declare class Utils {
1334
1235
  startsWith(target: string, searchString: string | RegExp | string[], position?: number): boolean;
1335
1236
  /**
1336
1237
  * 字符串首字母转小写
1337
- * @param targetString 目标字符串
1238
+ * @param text 目标字符串
1338
1239
  * @param otherStrToLowerCase (可选)剩余部分字符串转大写,默认false
1339
1240
  */
1340
- stringTitleToLowerCase(targetString: string, otherStrToUpperCase?: boolean): string;
1241
+ firstLetterToLowercase(text: string, otherToUpperCase?: boolean): string;
1341
1242
  /**
1342
1243
  * 字符串转Object对象,类似'{"test":""}' => {"test":""}
1343
1244
  * @param data
@@ -1424,298 +1325,63 @@ declare class Utils {
1424
1325
  **/
1425
1326
  waitArrayLoopToEnd(data: any[] | HTMLElement[], handleFunc: (...args: any[]) => any): Promise<void[]>;
1426
1327
  /**
1427
- * 等待任意事件成立
1428
- *
1429
- * 运行方式为根据页面元素的改变而触发回调
1430
- * @param checkFn 检测的函数
1431
- * @param timeout 超时时间,默认0
1432
- * @param parent (可选)父元素,默认document
1433
- * @example
1434
- * Utils.wait(()=> {
1435
- * let $test = document.querySelector("#test");
1436
- * return {
1437
- * success: $test !== null,
1438
- * data: $test
1439
- * }
1440
- * })
1441
- */
1442
- wait<T>(checkFn: (...args: any[]) => {
1443
- /**
1444
- * 是否检测成功
1445
- */
1446
- success: boolean;
1447
- /**
1448
- * 返回的值
1449
- */
1450
- data: T;
1451
- }, timeout?: null | undefined, parent?: Node | Element | Document | HTMLElement): Promise<T>;
1452
- wait<T>(checkFn: (...args: any[]) => {
1453
- /**
1454
- * 是否检测成功
1455
- */
1456
- success: boolean;
1457
- /**
1458
- * 返回的值
1459
- */
1460
- data: T;
1461
- }, timeout?: number, parent?: Node | Element | Document | HTMLElement): Promise<T | null>;
1462
- /**
1463
- * 等待元素出现
1464
- * @param selectorFn 获取元素的函数
1465
- * @param timeout 超时时间,默认0
1466
- * @example
1467
- * Utils.waitNode(()=>document.querySelector("div"), 1000).then( $div =>{
1468
- * console.log($div); // $div => HTMLDivELement | null
1469
- * })
1470
- */
1471
- waitNode<K>(selectorFn: () => K | null | undefined): Promise<K>;
1472
- waitNode<K>(selectorFn: () => K | null | undefined, timeout: number): Promise<K | null | undefined>;
1473
- /**
1474
- * 等待元素出现
1475
- * @param selector CSS选择器
1476
- * @param parent (可选)父元素,默认document
1477
- * @example
1478
- * Utils.waitNode("div").then( $div =>{
1479
- * console.log($div); // div => HTMLDivELement
1480
- * })
1481
- * Utils.waitNode("div", document).then( $div =>{
1482
- * console.log($div); // div => HTMLDivELement
1483
- * })
1484
- */
1485
- waitNode<K extends keyof HTMLElementTagNameMap>(selector: K, parent?: Node | Element | Document | HTMLElement): Promise<HTMLElementTagNameMap[K]>;
1486
- waitNode<T extends Element>(selector: string, parent?: Node | Element | Document | HTMLElement): Promise<T>;
1487
- /**
1488
- * 等待元素出现
1489
- * @param selectorList CSS选择器数组
1490
- * @param parent (可选)父元素,默认document
1491
- * @example
1492
- * Utils.waitNode(["div"]).then( ([$div]) =>{
1493
- * console.log($div); // div => HTMLDivELement[]
1494
- * })
1495
- * Utils.waitNode(["div"], document).then( ([$div]) =>{
1496
- * console.log($div); // div => HTMLDivELement[]
1497
- * })
1498
- */
1499
- waitNode<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent?: Node | Element | Document | HTMLElement): Promise<HTMLElementTagNameMap[K][]>;
1500
- waitNode<T extends Element[]>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
1501
- /**
1502
- * 等待元素出现
1503
- * @param selector CSS选择器
1504
- * @param parent 父元素,默认document
1505
- * @param timeout 超时时间,默认0
1506
- * @example
1507
- * Utils.waitNode("div", document, 1000).then( $div =>{
1508
- * console.log($div); // $div => HTMLDivELement | null
1509
- * })
1510
- */
1511
- waitNode<K extends keyof HTMLElementTagNameMap>(selector: K, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<HTMLElementTagNameMap[K] | null>;
1512
- waitNode<T extends Element>(selector: string, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1513
- /**
1514
- * 等待元素出现
1515
- * @param selectorList CSS选择器数组
1516
- * @param parent 父元素,默认document
1517
- * @param timeout 超时时间,默认0
1518
- * @example
1519
- * Utils.waitNode(["div"], document, 1000).then( ([$div]) =>{
1520
- * console.log($div); // $div => HTMLDivELement[] | null
1521
- * })
1522
- */
1523
- waitNode<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<HTMLElementTagNameMap[K] | null>;
1524
- waitNode<T extends Element[]>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1525
- /**
1526
- * 等待元素出现
1527
- * @param selector CSS选择器
1528
- * @param timeout 超时时间,默认0
1529
- * @example
1530
- * Utils.waitNode("div", 1000).then( $div =>{
1531
- * console.log($div); // $div => HTMLDivELement | null
1532
- * })
1533
- */
1534
- waitNode<K extends keyof HTMLElementTagNameMap>(selector: K, timeout: number): Promise<HTMLElementTagNameMap[K] | null>;
1535
- waitNode<T extends Element>(selector: string, timeout: number): Promise<T | null>;
1536
- /**
1537
- * 等待元素出现
1538
- * @param selectorList CSS选择器数组
1539
- * @param timeout 超时时间,默认0
1540
- * @example
1541
- * Utils.waitNode(["div"], 1000).then( [$div] =>{
1542
- * console.log($div); // $div => HTMLDivELement[] | null
1543
- * })
1544
- */
1545
- waitNode<K extends keyof HTMLElementTagNameMap>(selectorList: K[], timeout: number): Promise<HTMLElementTagNameMap[K] | null>;
1546
- waitNode<T extends Element[]>(selectorList: string[], timeout: number): Promise<T | null>;
1547
- /**
1548
- * 等待任意元素出现
1549
- * @param selectorList CSS选择器数组
1550
- * @param parent (可选)监听的父元素
1551
- * @example
1552
- * Utils.waitAnyNode(["div","div"]).then( $div =>{
1553
- * console.log($div); // $div => HTMLDivELement 这里是第一个
1554
- * })
1555
- * Utils.waitAnyNode(["a","div"], document).then( $a =>{
1556
- * console.log($a); // $a => HTMLAnchorElement 这里是第一个
1557
- * })
1558
- */
1559
- waitAnyNode<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent?: Node | Element | Document | HTMLElement): Promise<HTMLElementTagNameMap[K]>;
1560
- waitAnyNode<T extends Element>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
1561
- /**
1562
- * 等待任意元素出现
1563
- * @param selectorList CSS选择器数组
1564
- * @param parent 父元素,默认document
1565
- * @param timeout 超时时间,默认0
1566
- * @example
1567
- * Utils.waitAnyNode(["div","div"], document, 10000).then( $div =>{
1568
- * console.log($div); // $div => HTMLDivELement | null
1569
- * })
1570
- */
1571
- waitAnyNode<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<HTMLElementTagNameMap[K] | null>;
1572
- waitAnyNode<T extends Element>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1573
- /**
1574
- * 等待任意元素出现
1575
- * @param selectorList CSS选择器数组
1576
- * @param timeout 超时时间,默认0
1577
- * @example
1578
- * Utils.waitAnyNode(["div","div"], 10000).then( $div =>{
1579
- * console.log($div); // $div => HTMLDivELement | null
1580
- * })
1581
- */
1582
- waitAnyNode<K extends keyof HTMLElementTagNameMap>(selectorList: K[], timeout: number): Promise<HTMLElementTagNameMap[K] | null>;
1583
- waitAnyNode<T extends Element>(selectorList: string[], timeout: number): Promise<T | null>;
1584
- /**
1585
- * 等待元素数组出现
1586
- * @param selector CSS选择器
1587
- * @param parent (可选)监听的父元素
1588
- * @example
1589
- * Utils.waitNodeList("div").then( $result =>{
1590
- * console.log($result); // $result => NodeListOf<HTMLDivElement>
1591
- * })
1592
- * Utils.waitNodeList("div", document).then( $result =>{
1593
- * console.log($result); // $result => NodeListOf<HTMLDivElement>
1594
- * })
1595
- */
1596
- waitNodeList<T extends keyof HTMLElementTagNameMap>(selector: T, parent?: Node | Element | Document | HTMLElement): Promise<NodeListOf<HTMLElementTagNameMap[T]>>;
1597
- waitNodeList<T extends NodeListOf<Element>>(selector: string, parent?: Node | Element | Document | HTMLElement): Promise<T>;
1598
- /**
1599
- * 等待元素数组出现
1600
- * @param selectorList CSS选择器数组
1601
- * @param parent (可选)监听的父元素
1602
- * @example
1603
- * Utils.waitNodeList(["div"]).then( $result =>{
1604
- * console.log($result); // $result => NodeListOf<HTMLDivElement>[]
1605
- * })
1606
- * Utils.waitNodeList(["div"], document).then( $result =>{
1607
- * console.log($result); // $result => NodeListOf<HTMLDivElement>[]
1608
- * })
1609
- */
1610
- waitNodeList<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent?: Node | Element | Document | HTMLElement): Promise<NodeListOf<HTMLElementTagNameMap[K]>[]>;
1611
- waitNodeList<T extends NodeListOf<Element>[]>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
1612
- /**
1613
- * 等待元素数组出现
1614
- * @param selector CSS选择器
1615
- * @param parent 监听的父元素
1616
- * @param timeout 超时时间,默认0
1617
- * @example
1618
- * Utils.waitNodeList("div", document, 10000).then( $result =>{
1619
- * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1620
- * })
1621
- */
1622
- waitNodeList<T extends NodeListOf<Element>>(selector: string, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1623
- waitNodeList<K extends keyof HTMLElementTagNameMap>(selector: K, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<NodeListOf<HTMLElementTagNameMap[K]> | null>;
1624
- /**
1625
- * 等待元素数组出现
1626
- * @param selectorList CSS选择器数组
1627
- * @param parent 监听的父元素
1628
- * @param timeout 超时时间,默认0
1629
- * @example
1630
- * Utils.waitNodeList(["div"], document, 10000).then( $result =>{
1631
- * console.log($result); // $result => NodeListOf<HTMLDivElement>[] | null
1632
- * })
1633
- */
1634
- waitNodeList<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<NodeListOf<HTMLElementTagNameMap[K]>[] | null>;
1635
- waitNodeList<T extends NodeListOf<Element>[]>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1636
- /**
1637
- * 等待元素数组出现
1638
- * @param selector CSS选择器数组
1639
- * @param timeout 超时时间,默认0
1328
+ * 使用`Object.defineProperty`等待对象上的属性出现
1329
+ * @param target 检查的对象
1330
+ * @param propertyName 检查的对象的属性名
1640
1331
  * @example
1641
- * Utils.waitNodeList("div", 10000).then( $result =>{
1642
- * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1643
- * })
1644
- */
1645
- waitNodeList<K extends keyof HTMLElementTagNameMap>(selector: K[], timeout: number): Promise<NodeListOf<HTMLElementTagNameMap[K]> | null>;
1646
- waitNodeList<T extends NodeListOf<Element>>(selector: string[], timeout: number): Promise<T | null>;
1647
- /**
1648
- * 等待元素数组出现
1649
- * @param selectorList CSS选择器数组
1650
- * @param timeout 超时时间,默认0
1651
- * @example
1652
- * Utils.waitNodeList(["div"], 10000).then( $result =>{
1653
- * console.log($result); // $result => NodeListOf<HTMLDivElement>[] | null
1654
- * })
1655
- */
1656
- waitNodeList<K extends keyof HTMLElementTagNameMap>(selectorList: K[], timeout: number): Promise<NodeListOf<HTMLElementTagNameMap[K]>[] | null>;
1657
- waitNodeList<T extends NodeListOf<Element>>(selectorList: string[], timeout: number): Promise<T[] | null>;
1658
- /**
1659
- * 等待任意元素数组出现
1660
- * @param selectorList CSS选择器数组
1661
- * @param parent (可选)监听的父元素
1662
- * @example
1663
- * Utils.waitAnyNodeList(["div","a"]).then( $result =>{
1664
- * console.log($result); // $result => NodeListOf<HTMLDivElement>
1665
- * })
1666
- * Utils.waitAnyNodeList(["div","a"], document).then( $result =>{
1667
- * console.log($result); // $result => NodeListOf<HTMLDivElement>
1668
- * })
1332
+ * await Utils.waitProperty(window,"test");
1333
+ * console.log("test success set");
1334
+ *
1335
+ * window.test = 1;
1336
+ * > "test success set"
1337
+ *
1669
1338
  */
1670
- waitAnyNodeList<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent?: Node | Element | Document | HTMLElement): Promise<NodeListOf<HTMLElementTagNameMap[K]>>;
1671
- waitAnyNodeList<T extends Element>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<NodeListOf<T>>;
1339
+ waitProperty<T>(target: any, propertyName: string): Promise<T>;
1340
+ waitProperty<T>(checkFn: () => any, propertyName: string): Promise<T>;
1672
1341
  /**
1673
- * 等待任意元素数组出现
1674
- * @param selectorList CSS选择器数组
1675
- * @param parent 父元素,默认document
1676
- * @param timeout 超时时间,默认0
1342
+ * 在规定时间内等待对象上的属性出现
1343
+ * @param target 检查的对象
1344
+ * @param propertyName 检查的对象的属性名
1345
+ * @param intervalTimer (可选)检查间隔时间(ms),默认250ms
1346
+ * @param maxTime (可选)限制在多长时间内,默认-1(不限制时间)
1677
1347
  * @example
1678
- * Utils.waitAnyNodeList(["div","a"], document, 10000).then( $result =>{
1679
- * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1680
- * })
1348
+ * await Utils.waitPropertyByInterval(window,"test");
1349
+ * console.log("test success set");
1681
1350
  */
1682
- waitAnyNodeList<K extends keyof HTMLElementTagNameMap>(selectorList: K[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<NodeListOf<HTMLElementTagNameMap[K]> | null>;
1683
- waitAnyNodeList<T extends Element>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<NodeListOf<T> | null>;
1351
+ waitPropertyByInterval<T>(target: any, propertyName: string, intervalTimer?: number, maxTime?: number): Promise<T>;
1684
1352
  /**
1685
- * 等待任意元素出现
1686
- * @param selectorList CSS选择器数组
1687
- * @param timeout 超时时间,默认0
1353
+ * 在规定时间内等待对象上的属性出现
1354
+ * @param target 检查的对象
1355
+ * @param checkFn 检查属性是否在对象上
1356
+ * @param intervalTimer (可选)检查间隔时间(ms),默认250ms
1357
+ * @param maxTime (可选)限制在多长时间内,默认-1(不限制时间)
1688
1358
  * @example
1689
- * Utils.waitAnyNodeList(["div","div"], 10000).then( $result =>{
1690
- * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1691
- * })
1359
+ * await Utils.waitPropertyByInterval(window,() => "test" in window);
1360
+ * console.log("test success set");
1692
1361
  */
1693
- waitAnyNodeList<K extends keyof HTMLElementTagNameMap>(selectorList: K[], timeout: number): Promise<NodeListOf<HTMLElementTagNameMap[K]> | null>;
1694
- waitAnyNodeList<T extends Element>(selectorList: string[], timeout: number): Promise<NodeListOf<T> | null>;
1362
+ waitPropertyByInterval<T>(target: any, checkFn: (inst: any) => boolean, intervalTimer?: number, maxTime?: number): Promise<T>;
1695
1363
  /**
1696
- * 等待对象上的属性出现
1697
- * @param checkObj 检查的对象
1698
- * @param checkPropertyName 检查的对象的属性名
1364
+ * 在规定时间内等待对象上的属性出现
1365
+ * @param queryTarget 获取对象的函数
1366
+ * @param propertyName 检查的对象的属性名
1367
+ * @param intervalTimer (可选)检查间隔时间(ms),默认250ms
1368
+ * @param maxTime (可选)限制在多长时间内,默认-1(不限制时间)
1699
1369
  * @example
1700
- * await Utils.waitProperty(window,"test");
1370
+ * await Utils.waitPropertyByInterval(() => window,"test");
1701
1371
  * console.log("test success set");
1702
- *
1703
- * window.test = 1;
1704
- * > "test success set"
1705
- *
1706
1372
  */
1707
- waitProperty<T>(checkObj: any | (() => any), checkPropertyName: string): Promise<T>;
1373
+ waitPropertyByInterval<T>(queryTarget: () => any, propertyName: string, intervalTimer?: number, maxTime?: number): Promise<T>;
1708
1374
  /**
1709
1375
  * 在规定时间内等待对象上的属性出现
1710
- * @param checkObj 检查的对象
1711
- * @param checkPropertyName 检查的对象的属性名
1376
+ * @param queryTarget 获取对象的函数
1377
+ * @param checkFn 检查属性是否在对象上
1712
1378
  * @param intervalTimer (可选)检查间隔时间(ms),默认250ms
1713
1379
  * @param maxTime (可选)限制在多长时间内,默认-1(不限制时间)
1714
1380
  * @example
1715
- * await Utils.waitPropertyByInterval(window,"test");
1381
+ * await Utils.waitPropertyByInterval(() => window,() => "test" in window);
1716
1382
  * console.log("test success set");
1717
1383
  */
1718
- waitPropertyByInterval<T>(checkObj: any | (() => any), checkPropertyName: string | ((obj: any) => boolean), intervalTimer?: number, maxTime?: number): Promise<T>;
1384
+ waitPropertyByInterval<T>(queryTarget: () => any, checkFn: (inst: any) => boolean, intervalTimer?: number, maxTime?: number): Promise<T>;
1719
1385
  /**
1720
1386
  * 在规定时间内等待元素上的__vue__属性或者__vue__属性上的某个值出现出现
1721
1387
  * @param element 目标元素
@@ -1728,8 +1394,8 @@ declare class Utils {
1728
1394
  * function(){
1729
1395
  * return document.querySelector("a.xx")
1730
1396
  * },
1731
- * function(__vue__){
1732
- * return Boolean(__vue__.xxx == null);
1397
+ * function(vueInst){
1398
+ * return Boolean(vueInst.xxx == null);
1733
1399
  * },
1734
1400
  * 250,
1735
1401
  * 10000,
@@ -1738,7 +1404,7 @@ declare class Utils {
1738
1404
  */
1739
1405
  waitVueByInterval(element: HTMLElement | (() => any), propertyName: string | ((__vue__: any) => boolean), timer?: number, maxTime?: number, vueName?: "__vue__" | string): Promise<boolean>;
1740
1406
  /**
1741
- * 观察对象的set、get
1407
+ * 使用`Object.defineProperty`观察对象的set、get
1742
1408
  * @param target 观察的对象
1743
1409
  * @param propertyName 观察的对象的属性名
1744
1410
  * @param getCallBack (可选)触发get的回调,可以自定义返回特定值
@@ -1873,19 +1539,6 @@ declare class Utils {
1873
1539
  * @param timeId setInterval 返回的`id`
1874
1540
  */
1875
1541
  workerClearInterval(timeId: number | undefined): void;
1876
- /**
1877
- * 获取剪贴板信息
1878
- */
1879
- getClipboardInfo(): Promise<{
1880
- /**
1881
- * 错误信息,如果为null,则表示读取成功
1882
- */
1883
- error: Error | null;
1884
- /**
1885
- * 剪贴板内容
1886
- */
1887
- content: string;
1888
- }>;
1889
1542
  }
1890
1543
  declare const utils: Utils;
1891
1544
  export { utils as Utils };