@whitesev/domutils 1.6.6 → 1.6.7

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.umd.js CHANGED
@@ -329,10 +329,8 @@
329
329
  * 获取安全的html
330
330
  */
331
331
  getSafeHTML(text) {
332
- // @ts-ignore
333
- if (globalThis.trustedTypes) {
334
- // @ts-ignore
335
- const policy = globalThis.trustedTypes.createPolicy("safe-innerHTML", {
332
+ if (window.trustedTypes) {
333
+ const policy = window.trustedTypes.createPolicy("safe-innerHTML", {
336
334
  createHTML: (html) => html,
337
335
  });
338
336
  return policy.createHTML(text);
@@ -355,7 +353,7 @@
355
353
  * @param element
356
354
  */
357
355
  showElement(element) {
358
- let dupNode = element.cloneNode(true);
356
+ const dupNode = element.cloneNode(true);
359
357
  dupNode.setAttribute("style", "visibility: hidden !important;display:block !important;");
360
358
  this.windowApi.document.documentElement.appendChild(dupNode);
361
359
  return {
@@ -386,7 +384,7 @@
386
384
  }
387
385
  styles = view.getComputedStyle(element);
388
386
  }
389
- let value = parseFloat(styles[styleName]);
387
+ const value = parseFloat(styles[styleName]);
390
388
  if (isNaN(value)) {
391
389
  return 0;
392
390
  }
@@ -451,7 +449,7 @@
451
449
  try {
452
450
  return setTimeout$1(callback, timeout);
453
451
  }
454
- catch (error) {
452
+ catch {
455
453
  return this.windowApi.setTimeout(callback, timeout);
456
454
  }
457
455
  },
@@ -464,7 +462,8 @@
464
462
  clearTimeout$1(timeId);
465
463
  }
466
464
  }
467
- catch (error) {
465
+ catch {
466
+ // TODO
468
467
  }
469
468
  finally {
470
469
  this.windowApi.clearTimeout(timeId);
@@ -477,7 +476,7 @@
477
476
  try {
478
477
  return setInterval$1(callback, timeout);
479
478
  }
480
- catch (error) {
479
+ catch {
481
480
  return this.windowApi.setInterval(callback, timeout);
482
481
  }
483
482
  },
@@ -490,7 +489,8 @@
490
489
  clearInterval$1(timeId);
491
490
  }
492
491
  }
493
- catch (error) {
492
+ catch {
493
+ // TODO
494
494
  }
495
495
  finally {
496
496
  this.windowApi.clearInterval(timeId);
@@ -538,7 +538,7 @@
538
538
  * @param option
539
539
  */
540
540
  function getOption(args, startIndex, option) {
541
- let currentParam = args[startIndex];
541
+ const currentParam = args[startIndex];
542
542
  if (typeof currentParam === "boolean") {
543
543
  option.capture = currentParam;
544
544
  if (typeof args[startIndex + 1] === "boolean") {
@@ -560,8 +560,9 @@
560
560
  }
561
561
  return option;
562
562
  }
563
- let DOMUtilsContext = this;
564
- let args = arguments;
563
+ const DOMUtilsContext = this;
564
+ // eslint-disable-next-line prefer-rest-params
565
+ const args = arguments;
565
566
  if (typeof element === "string") {
566
567
  element = DOMUtilsContext.selectorAll(element);
567
568
  }
@@ -637,14 +638,14 @@
637
638
  totalParent = DOMUtilsContext.windowApi.document.documentElement;
638
639
  }
639
640
  }
640
- let findValue = selectorList.find((selectorItem) => {
641
+ const findValue = selectorList.find((selectorItem) => {
641
642
  // 判断目标元素是否匹配选择器
642
643
  if (DOMUtilsContext.matches(eventTarget, selectorItem)) {
643
644
  /* 当前目标可以被selector所匹配到 */
644
645
  return true;
645
646
  }
646
647
  /* 在上层与主元素之间寻找可以被selector所匹配到的 */
647
- let $closestMatches = DOMUtilsContext.closest(eventTarget, selectorItem);
648
+ const $closestMatches = DOMUtilsContext.closest(eventTarget, selectorItem);
648
649
  if ($closestMatches && totalParent?.contains($closestMatches)) {
649
650
  eventTarget = $closestMatches;
650
651
  return true;
@@ -660,7 +661,9 @@
660
661
  },
661
662
  });
662
663
  }
663
- catch (error) { }
664
+ catch {
665
+ // TODO
666
+ }
664
667
  listenerCallBack.call(eventTarget, event, eventTarget);
665
668
  checkOptionOnceToRemoveEventListener();
666
669
  }
@@ -675,7 +678,7 @@
675
678
  eventTypeList.forEach((eventName) => {
676
679
  elementItem.addEventListener(eventName, domUtilsEventCallBack, listenerOption);
677
680
  /* 获取对象上的事件 */
678
- let elementEvents = Reflect.get(elementItem, DOMUtilsData.SymbolEvents) || {};
681
+ const elementEvents = Reflect.get(elementItem, DOMUtilsData.SymbolEvents) || {};
679
682
  /* 初始化对象上的xx事件 */
680
683
  elementEvents[eventName] = elementEvents[eventName] || [];
681
684
  elementEvents[eventName].push({
@@ -697,7 +700,7 @@
697
700
  * @param option
698
701
  */
699
702
  function getOption(args1, startIndex, option) {
700
- let currentParam = args1[startIndex];
703
+ const currentParam = args1[startIndex];
701
704
  if (typeof currentParam === "boolean") {
702
705
  option.capture = currentParam;
703
706
  }
@@ -706,8 +709,9 @@
706
709
  }
707
710
  return option;
708
711
  }
709
- let DOMUtilsContext = this;
710
- let args = arguments;
712
+ const DOMUtilsContext = this;
713
+ // eslint-disable-next-line prefer-rest-params
714
+ const args = arguments;
711
715
  if (typeof element === "string") {
712
716
  element = DOMUtilsContext.selectorAll(element);
713
717
  }
@@ -769,14 +773,14 @@
769
773
  }
770
774
  elementList.forEach((elementItem) => {
771
775
  /* 获取对象上的事件 */
772
- let elementEvents = Reflect.get(elementItem, DOMUtilsData.SymbolEvents) || {};
776
+ const elementEvents = Reflect.get(elementItem, DOMUtilsData.SymbolEvents) || {};
773
777
  eventTypeList.forEach((eventName) => {
774
778
  let handlers = elementEvents[eventName] || [];
775
779
  if (typeof filter === "function") {
776
780
  handlers = handlers.filter(filter);
777
781
  }
778
782
  for (let index = 0; index < handlers.length; index++) {
779
- let handler = handlers[index];
783
+ const handler = handlers[index];
780
784
  let flag = true;
781
785
  if (flag && listenerCallBack && handler.originCallBack !== listenerCallBack) {
782
786
  // callback不同
@@ -811,7 +815,7 @@
811
815
  * @param eventType (可选)需要取消监听的事件
812
816
  */
813
817
  offAll(element, eventType) {
814
- let DOMUtilsContext = this;
818
+ const DOMUtilsContext = this;
815
819
  if (typeof element === "string") {
816
820
  element = DOMUtilsContext.selectorAll(element);
817
821
  }
@@ -837,10 +841,10 @@
837
841
  if (!symbolEvents.toString().startsWith("Symbol(events_")) {
838
842
  return;
839
843
  }
840
- let elementEvents = elementItem[symbolEvents] || {};
841
- let iterEventNameList = eventTypeList.length ? eventTypeList : Object.keys(elementEvents);
844
+ const elementEvents = elementItem[symbolEvents] || {};
845
+ const iterEventNameList = eventTypeList.length ? eventTypeList : Object.keys(elementEvents);
842
846
  iterEventNameList.forEach((eventName) => {
843
- let handlers = elementEvents[eventName];
847
+ const handlers = elementEvents[eventName];
844
848
  if (!handlers) {
845
849
  return;
846
850
  }
@@ -849,7 +853,7 @@
849
853
  capture: handler["option"]["capture"],
850
854
  });
851
855
  }
852
- let events = Reflect.get(elementItem, symbolEvents);
856
+ const events = Reflect.get(elementItem, symbolEvents);
853
857
  DOMUtilsCommonUtils.delete(events, eventName);
854
858
  });
855
859
  });
@@ -867,7 +871,7 @@
867
871
  if (typeof callback !== "function") {
868
872
  return;
869
873
  }
870
- let DOMUtilsContext = this;
874
+ const DOMUtilsContext = this;
871
875
  /**
872
876
  * 检测文档是否加载完毕
873
877
  */
@@ -882,7 +886,7 @@
882
886
  return false;
883
887
  }
884
888
  }
885
- catch (error) {
889
+ catch {
886
890
  return false;
887
891
  }
888
892
  }
@@ -893,7 +897,7 @@
893
897
  removeDomReadyListener();
894
898
  callback();
895
899
  }
896
- let targetList = [
900
+ const targetList = [
897
901
  {
898
902
  target: DOMUtilsContext.windowApi.document,
899
903
  eventType: "DOMContentLoaded",
@@ -910,7 +914,7 @@
910
914
  */
911
915
  function addDomReadyListener() {
912
916
  for (let index = 0; index < targetList.length; index++) {
913
- let item = targetList[index];
917
+ const item = targetList[index];
914
918
  item.target.addEventListener(item.eventType, item.callback);
915
919
  }
916
920
  }
@@ -919,7 +923,7 @@
919
923
  */
920
924
  function removeDomReadyListener() {
921
925
  for (let index = 0; index < targetList.length; index++) {
922
- let item = targetList[index];
926
+ const item = targetList[index];
923
927
  item.target.removeEventListener(item.eventType, item.callback);
924
928
  }
925
929
  }
@@ -947,7 +951,7 @@
947
951
  * DOMUtils.trigger("a.xx",["click","tap","hover"])
948
952
  */
949
953
  trigger(element, eventType, details, useDispatchToTriggerEvent = true) {
950
- let DOMUtilsContext = this;
954
+ const DOMUtilsContext = this;
951
955
  if (typeof element === "string") {
952
956
  element = DOMUtilsContext.selectorAll(element);
953
957
  }
@@ -971,7 +975,7 @@
971
975
  }
972
976
  elementList.forEach((elementItem) => {
973
977
  /* 获取对象上的事件 */
974
- let events = elementItem[DOMUtilsData.SymbolEvents] || {};
978
+ const events = elementItem[DOMUtilsData.SymbolEvents] || {};
975
979
  eventTypeList.forEach((_eventType_) => {
976
980
  let event = null;
977
981
  if (details && details instanceof Event) {
@@ -1011,7 +1015,7 @@
1011
1015
  * })
1012
1016
  * */
1013
1017
  click(element, handler, details, useDispatchToTriggerEvent) {
1014
- let DOMUtilsContext = this;
1018
+ const DOMUtilsContext = this;
1015
1019
  if (typeof element === "string") {
1016
1020
  element = DOMUtilsContext.selectorAll(element);
1017
1021
  }
@@ -1047,7 +1051,7 @@
1047
1051
  * })
1048
1052
  * */
1049
1053
  blur(element, handler, details, useDispatchToTriggerEvent) {
1050
- let DOMUtilsContext = this;
1054
+ const DOMUtilsContext = this;
1051
1055
  if (typeof element === "string") {
1052
1056
  element = DOMUtilsContext.selectorAll(element);
1053
1057
  }
@@ -1083,7 +1087,7 @@
1083
1087
  * })
1084
1088
  * */
1085
1089
  focus(element, handler, details, useDispatchToTriggerEvent) {
1086
- let DOMUtilsContext = this;
1090
+ const DOMUtilsContext = this;
1087
1091
  if (typeof element === "string") {
1088
1092
  element = DOMUtilsContext.selectorAll(element);
1089
1093
  }
@@ -1119,7 +1123,7 @@
1119
1123
  * })
1120
1124
  */
1121
1125
  hover(element, handler, option) {
1122
- let DOMUtilsContext = this;
1126
+ const DOMUtilsContext = this;
1123
1127
  if (typeof element === "string") {
1124
1128
  element = DOMUtilsContext.selectorAll(element);
1125
1129
  }
@@ -1143,7 +1147,7 @@
1143
1147
  * @param option 配置项,这里默认配置once为true
1144
1148
  */
1145
1149
  animationend(element, handler, option) {
1146
- let DOMUtilsContext = this;
1150
+ const DOMUtilsContext = this;
1147
1151
  if (typeof element === "string") {
1148
1152
  element = DOMUtilsContext.selector(element);
1149
1153
  }
@@ -1178,7 +1182,7 @@
1178
1182
  * @param option 配置项,这里默认配置once为true
1179
1183
  */
1180
1184
  transitionend(element, handler, option) {
1181
- let DOMUtilsContext = this;
1185
+ const DOMUtilsContext = this;
1182
1186
  if (typeof element === "string") {
1183
1187
  element = DOMUtilsContext.selector(element);
1184
1188
  }
@@ -1222,7 +1226,7 @@
1222
1226
  * })
1223
1227
  */
1224
1228
  keyup(element, handler, option) {
1225
- let DOMUtilsContext = this;
1229
+ const DOMUtilsContext = this;
1226
1230
  if (element == null) {
1227
1231
  return;
1228
1232
  }
@@ -1254,7 +1258,7 @@
1254
1258
  * })
1255
1259
  */
1256
1260
  keydown(element, handler, option) {
1257
- let DOMUtilsContext = this;
1261
+ const DOMUtilsContext = this;
1258
1262
  if (element == null) {
1259
1263
  return;
1260
1264
  }
@@ -1286,7 +1290,7 @@
1286
1290
  * })
1287
1291
  */
1288
1292
  keypress(element, handler, option) {
1289
- let DOMUtilsContext = this;
1293
+ const DOMUtilsContext = this;
1290
1294
  if (element == null) {
1291
1295
  return;
1292
1296
  }
@@ -1303,80 +1307,80 @@
1303
1307
  DOMUtilsContext.on(element, "keypress", null, handler, option);
1304
1308
  }
1305
1309
  /**
1306
- * 监听某个元素键盘按键事件或window全局按键事件
1307
- * 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
1308
- * @param element 需要监听的对象,可以是全局Window或者某个元素
1309
- * @param eventName 事件名,默认keypress
1310
- * @param callback 自己定义的回调事件,参数1为当前的key,参数2为组合按键,数组类型,包含ctrl、shift、alt和meta(win键或mac的cmd键)
1311
- * @param options 监听事件的配置
1312
- * @example
1313
- Utils.listenKeyboard(window,(keyName,keyValue,otherKey,event)=>{
1314
- if(keyName === "Enter"){
1315
- console.log("回车按键的值是:"+keyValue)
1316
- }
1317
- if(otherKey.indexOf("ctrl") && keyName === "Enter" ){
1318
- console.log("Ctrl和回车键");
1319
- }
1320
- })
1321
- * @example
1322
- 字母和数字键的键码值(keyCode)
1323
- 按键 键码 按键 键码 按键 键码 按键 键码
1324
- A 65 J 74 S 83 1 49
1325
- B 66 K 75 T 84 2 50
1326
- C 67 L 76 U 85 3 51
1327
- D 68 M 77 V 86 4 52
1328
- E 69 N 78 W 87 5 53
1329
- F 70 O 79 X 88 6 54
1330
- G 71 P 80 Y 89 7 55
1331
- H 72 Q 81 Z 90 8 56
1332
- I 73 R 82 0 48 9 57
1333
-
1334
- 数字键盘上的键的键码值(keyCode)
1335
- 功能键键码值(keyCode)
1336
- 按键 键码 按键 键码 按键 键码 按键 键码
1337
- 0 96 8 104 F1 112 F7 118
1338
- 1 97 9 105 F2 113 F8 119
1339
- 2 98 * 106 F3 114 F9 120
1340
- 3 99 + 107 F4 115 F10 121
1341
- 4 100 Enter 108 F5 116 F11 122
1342
- 5 101 - 109 F6 117 F12 123
1343
- 6 102 . 110
1344
- 7 103 / 111
1345
-
1346
- 控制键键码值(keyCode)
1347
- 按键 键码 按键 键码 按键 键码 按键 键码
1348
- BackSpace 8 Esc 27 → 39 -_ 189
1349
- Tab 9 Spacebar 32 ↓ 40 .> 190
1350
- Clear 12 Page Up 33 Insert 45 /? 191
1351
- Enter 13 Page Down 34 Delete 46 `~ 192
1352
- Shift 16 End 35 Num Lock 144 [{ 219
1353
- Control 17 Home 36 ;: 186 \| 220
1354
- Alt 18 ← 37 =+ 187 ]} 221
1355
- Cape Lock 20 ↑ 38 ,< 188 '" 222
1356
-
1357
- 多媒体键码值(keyCode)
1358
- 按键 键码
1359
- 音量加 175
1360
- 音量减 174
1361
- 停止 179
1362
- 静音 173
1363
- 浏览器 172
1364
- 邮件 180
1365
- 搜索 170
1366
- 收藏 171
1367
- **/
1310
+ * 监听某个元素键盘按键事件或window全局按键事件
1311
+ * 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
1312
+ * @param element 需要监听的对象,可以是全局Window或者某个元素
1313
+ * @param eventName 事件名,默认keypress
1314
+ * @param callback 自己定义的回调事件,参数1为当前的key,参数2为组合按键,数组类型,包含ctrl、shift、alt和meta(win键或mac的cmd键)
1315
+ * @param options 监听事件的配置
1316
+ * @example
1317
+ Utils.listenKeyboard(window,(keyName,keyValue,otherKey,event)=>{
1318
+ if(keyName === "Enter"){
1319
+ console.log("回车按键的值是:"+keyValue)
1320
+ }
1321
+ if(otherKey.indexOf("ctrl") && keyName === "Enter" ){
1322
+ console.log("Ctrl和回车键");
1323
+ }
1324
+ })
1325
+ * @example
1326
+ 字母和数字键的键码值(keyCode)
1327
+ 按键 键码 按键 键码 按键 键码 按键 键码
1328
+ A 65 J 74 S 83 1 49
1329
+ B 66 K 75 T 84 2 50
1330
+ C 67 L 76 U 85 3 51
1331
+ D 68 M 77 V 86 4 52
1332
+ E 69 N 78 W 87 5 53
1333
+ F 70 O 79 X 88 6 54
1334
+ G 71 P 80 Y 89 7 55
1335
+ H 72 Q 81 Z 90 8 56
1336
+ I 73 R 82 0 48 9 57
1337
+
1338
+ 数字键盘上的键的键码值(keyCode)
1339
+ 功能键键码值(keyCode)
1340
+ 按键 键码 按键 键码 按键 键码 按键 键码
1341
+ 0 96 8 104 F1 112 F7 118
1342
+ 1 97 9 105 F2 113 F8 119
1343
+ 2 98 * 106 F3 114 F9 120
1344
+ 3 99 + 107 F4 115 F10 121
1345
+ 4 100 Enter 108 F5 116 F11 122
1346
+ 5 101 - 109 F6 117 F12 123
1347
+ 6 102 . 110
1348
+ 7 103 / 111
1349
+
1350
+ 控制键键码值(keyCode)
1351
+ 按键 键码 按键 键码 按键 键码 按键 键码
1352
+ BackSpace 8 Esc 27 → 39 -_ 189
1353
+ Tab 9 Spacebar 32 ↓ 40 .> 190
1354
+ Clear 12 Page Up 33 Insert 45 /? 191
1355
+ Enter 13 Page Down 34 Delete 46 `~ 192
1356
+ Shift 16 End 35 Num Lock 144 [{ 219
1357
+ Control 17 Home 36 ;: 186 \| 220
1358
+ Alt 18 ← 37 =+ 187 ]} 221
1359
+ Cape Lock 20 ↑ 38 ,< 188 '" 222
1360
+
1361
+ 多媒体键码值(keyCode)
1362
+ 按键 键码
1363
+ 音量加 175
1364
+ 音量减 174
1365
+ 停止 179
1366
+ 静音 173
1367
+ 浏览器 172
1368
+ 邮件 180
1369
+ 搜索 170
1370
+ 收藏 171
1371
+ **/
1368
1372
  listenKeyboard(element, eventName = "keypress", callback, options) {
1369
- let DOMUtilsContext = this;
1373
+ const DOMUtilsContext = this;
1370
1374
  if (typeof element === "string") {
1371
1375
  element = DOMUtilsContext.selectorAll(element);
1372
1376
  }
1373
- let keyboardEventCallBack = function (event) {
1377
+ const keyboardEventCallBack = function (event) {
1374
1378
  /** 键名 */
1375
- let keyName = event.key || event.code;
1379
+ const keyName = event.key || event.code;
1376
1380
  /** 键值 */
1377
- let keyValue = event.charCode || event.keyCode || event.which;
1381
+ const keyValue = event.charCode || event.keyCode || event.which;
1378
1382
  /** 组合键列表 */
1379
- let otherCodeList = [];
1383
+ const otherCodeList = [];
1380
1384
  if (event.ctrlKey) {
1381
1385
  otherCodeList.push("ctrl");
1382
1386
  }
@@ -1414,29 +1418,27 @@
1414
1418
  return $ele?.innerHTML?.trim() === "";
1415
1419
  });
1416
1420
  }
1417
- else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/i) ||
1418
- selector.match(/[^\s]{1}:contains\('(.*)'\)$/i)) {
1421
+ else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/i) || selector.match(/[^\s]{1}:contains\('(.*)'\)$/i)) {
1419
1422
  // contains 语法
1420
- let textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
1421
- let text = textMatch[2];
1423
+ const textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
1424
+ const text = textMatch[2];
1422
1425
  selector = selector.replace(/:contains\(("|')(.*)("|')\)$/gi, "");
1423
1426
  return Array.from(parent.querySelectorAll(selector)).filter(($ele) => {
1424
1427
  // @ts-ignore
1425
1428
  return ($ele?.textContent || $ele?.innerText)?.includes(text);
1426
1429
  });
1427
1430
  }
1428
- else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/i) ||
1429
- selector.match(/[^\s]{1}:regexp\('(.*)'\)$/i)) {
1431
+ else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/i) || selector.match(/[^\s]{1}:regexp\('(.*)'\)$/i)) {
1430
1432
  // regexp 语法
1431
- let textMatch = selector.match(/:regexp\(("|')(.*)("|')\)$/i);
1433
+ const textMatch = selector.match(/:regexp\(("|')(.*)("|')\)$/i);
1432
1434
  let pattern = textMatch[2];
1433
- let flagMatch = pattern.match(/("|'),[\s]*("|')([igm]{0,3})$/i);
1435
+ const flagMatch = pattern.match(/("|'),[\s]*("|')([igm]{0,3})$/i);
1434
1436
  let flags = "";
1435
1437
  if (flagMatch) {
1436
1438
  pattern = pattern.replace(/("|'),[\s]*("|')([igm]{0,3})$/gi, "");
1437
1439
  flags = flagMatch[3];
1438
1440
  }
1439
- let regexp = new RegExp(pattern, flags);
1441
+ const regexp = new RegExp(pattern, flags);
1440
1442
  selector = selector.replace(/:regexp\(("|')(.*)("|')\)$/gi, "");
1441
1443
  return Array.from(parent.querySelectorAll(selector)).filter(($ele) => {
1442
1444
  // @ts-ignore
@@ -1479,11 +1481,10 @@
1479
1481
  selector = selector.replace(/:empty$/gi, "");
1480
1482
  return $el.matches(selector) && $el?.innerHTML?.trim() === "";
1481
1483
  }
1482
- else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/i) ||
1483
- selector.match(/[^\s]{1}:contains\('(.*)'\)$/i)) {
1484
+ else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/i) || selector.match(/[^\s]{1}:contains\('(.*)'\)$/i)) {
1484
1485
  // contains 语法
1485
- let textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
1486
- let text = textMatch[2];
1486
+ const textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
1487
+ const text = textMatch[2];
1487
1488
  selector = selector.replace(/:contains\(("|')(.*)("|')\)$/gi, "");
1488
1489
  // @ts-ignore
1489
1490
  let content = $el?.textContent || $el?.innerText;
@@ -1492,18 +1493,17 @@
1492
1493
  }
1493
1494
  return $el.matches(selector) && content?.includes(text);
1494
1495
  }
1495
- else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/i) ||
1496
- selector.match(/[^\s]{1}:regexp\('(.*)'\)$/i)) {
1496
+ else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/i) || selector.match(/[^\s]{1}:regexp\('(.*)'\)$/i)) {
1497
1497
  // regexp 语法
1498
- let textMatch = selector.match(/:regexp\(("|')(.*)("|')\)$/i);
1498
+ const textMatch = selector.match(/:regexp\(("|')(.*)("|')\)$/i);
1499
1499
  let pattern = textMatch[2];
1500
- let flagMatch = pattern.match(/("|'),[\s]*("|')([igm]{0,3})$/i);
1500
+ const flagMatch = pattern.match(/("|'),[\s]*("|')([igm]{0,3})$/i);
1501
1501
  let flags = "";
1502
1502
  if (flagMatch) {
1503
1503
  pattern = pattern.replace(/("|'),[\s]*("|')([igm]{0,3})$/gi, "");
1504
1504
  flags = flagMatch[3];
1505
1505
  }
1506
- let regexp = new RegExp(pattern, flags);
1506
+ const regexp = new RegExp(pattern, flags);
1507
1507
  selector = selector.replace(/:regexp\(("|')(.*)("|')\)$/gi, "");
1508
1508
  // @ts-ignore
1509
1509
  let content = $el?.textContent || $el?.innerText;
@@ -1522,45 +1522,43 @@
1522
1522
  if (selector.match(/[^\s]{1}:empty$/gi)) {
1523
1523
  // empty 语法
1524
1524
  selector = selector.replace(/:empty$/gi, "");
1525
- let $closest = $el?.closest(selector);
1525
+ const $closest = $el?.closest(selector);
1526
1526
  if ($closest && $closest?.innerHTML?.trim() === "") {
1527
1527
  return $closest;
1528
1528
  }
1529
1529
  return null;
1530
1530
  }
1531
- else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/i) ||
1532
- selector.match(/[^\s]{1}:contains\('(.*)'\)$/i)) {
1531
+ else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/i) || selector.match(/[^\s]{1}:contains\('(.*)'\)$/i)) {
1533
1532
  // contains 语法
1534
- let textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
1535
- let text = textMatch[2];
1533
+ const textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
1534
+ const text = textMatch[2];
1536
1535
  selector = selector.replace(/:contains\(("|')(.*)("|')\)$/gi, "");
1537
- let $closest = $el?.closest(selector);
1536
+ const $closest = $el?.closest(selector);
1538
1537
  if ($closest) {
1539
1538
  // @ts-ignore
1540
- let content = $el?.textContent || $el?.innerText;
1539
+ const content = $el?.textContent || $el?.innerText;
1541
1540
  if (typeof content === "string" && content.includes(text)) {
1542
1541
  return $closest;
1543
1542
  }
1544
1543
  }
1545
1544
  return null;
1546
1545
  }
1547
- else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/i) ||
1548
- selector.match(/[^\s]{1}:regexp\('(.*)'\)$/i)) {
1546
+ else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/i) || selector.match(/[^\s]{1}:regexp\('(.*)'\)$/i)) {
1549
1547
  // regexp 语法
1550
- let textMatch = selector.match(/:regexp\(("|')(.*)("|')\)$/i);
1548
+ const textMatch = selector.match(/:regexp\(("|')(.*)("|')\)$/i);
1551
1549
  let pattern = textMatch[2];
1552
- let flagMatch = pattern.match(/("|'),[\s]*("|')([igm]{0,3})$/i);
1550
+ const flagMatch = pattern.match(/("|'),[\s]*("|')([igm]{0,3})$/i);
1553
1551
  let flags = "";
1554
1552
  if (flagMatch) {
1555
1553
  pattern = pattern.replace(/("|'),[\s]*("|')([igm]{0,3})$/gi, "");
1556
1554
  flags = flagMatch[3];
1557
1555
  }
1558
- let regexp = new RegExp(pattern, flags);
1556
+ const regexp = new RegExp(pattern, flags);
1559
1557
  selector = selector.replace(/:regexp\(("|')(.*)("|')\)$/gi, "");
1560
- let $closest = $el?.closest(selector);
1558
+ const $closest = $el?.closest(selector);
1561
1559
  if ($closest) {
1562
1560
  // @ts-ignore
1563
- let content = $el?.textContent || $el?.innerText;
1561
+ const content = $el?.textContent || $el?.innerText;
1564
1562
  if (typeof content === "string" && content.match(regexp)) {
1565
1563
  return $closest;
1566
1564
  }
@@ -1569,20 +1567,22 @@
1569
1567
  }
1570
1568
  else {
1571
1569
  // 普通语法
1572
- let $closest = $el?.closest(selector);
1570
+ const $closest = $el?.closest(selector);
1573
1571
  return $closest;
1574
1572
  }
1575
1573
  }
1576
1574
  }
1577
1575
 
1576
+ const version = "1.6.6";
1577
+
1578
1578
  class DOMUtils extends DOMUtilsEvent {
1579
1579
  constructor(option) {
1580
1580
  super(option);
1581
1581
  }
1582
1582
  /** 版本号 */
1583
- version = "2025.8.11";
1583
+ version = version;
1584
1584
  attr(element, attrName, attrValue) {
1585
- let DOMUtilsContext = this;
1585
+ const DOMUtilsContext = this;
1586
1586
  if (typeof element === "string") {
1587
1587
  element = DOMUtilsContext.selectorAll(element);
1588
1588
  }
@@ -1616,8 +1616,8 @@
1616
1616
  property,
1617
1617
  /** 自定义属性 */
1618
1618
  attributes) {
1619
- let DOMUtilsContext = this;
1620
- let tempElement = DOMUtilsContext.windowApi.document.createElement(tagName);
1619
+ const DOMUtilsContext = this;
1620
+ const tempElement = DOMUtilsContext.windowApi.document.createElement(tagName);
1621
1621
  if (typeof property === "string") {
1622
1622
  DOMUtilsContext.html(tempElement, property);
1623
1623
  return tempElement;
@@ -1629,7 +1629,7 @@
1629
1629
  attributes = {};
1630
1630
  }
1631
1631
  Object.keys(property).forEach((key) => {
1632
- let value = property[key];
1632
+ const value = property[key];
1633
1633
  if (key === "innerHTML") {
1634
1634
  DOMUtilsContext.html(tempElement, value);
1635
1635
  return;
@@ -1651,18 +1651,16 @@
1651
1651
  return tempElement;
1652
1652
  }
1653
1653
  css(element, property, value) {
1654
- let DOMUtilsContext = this;
1654
+ const DOMUtilsContext = this;
1655
1655
  /**
1656
1656
  * 把纯数字没有px的加上
1657
1657
  */
1658
1658
  function handlePixe(propertyName, propertyValue) {
1659
- let allowAddPixe = ["width", "height", "top", "left", "right", "bottom", "font-size"];
1659
+ const allowAddPixe = ["width", "height", "top", "left", "right", "bottom", "font-size"];
1660
1660
  if (typeof propertyValue === "number") {
1661
1661
  propertyValue = propertyValue.toString();
1662
1662
  }
1663
- if (typeof propertyValue === "string" &&
1664
- allowAddPixe.includes(propertyName) &&
1665
- propertyValue.match(/[0-9]$/gi)) {
1663
+ if (typeof propertyValue === "string" && allowAddPixe.includes(propertyName) && propertyValue.match(/[0-9]$/gi)) {
1666
1664
  propertyValue = propertyValue + "px";
1667
1665
  }
1668
1666
  return propertyValue;
@@ -1694,10 +1692,9 @@
1694
1692
  });
1695
1693
  return;
1696
1694
  }
1697
- else ;
1698
1695
  return;
1699
1696
  }
1700
- let setStyleProperty = (propertyName, propertyValue) => {
1697
+ const setStyleProperty = (propertyName, propertyValue) => {
1701
1698
  if (typeof propertyValue === "string" && propertyValue.trim().endsWith("!important")) {
1702
1699
  propertyValue = propertyValue
1703
1700
  .trim()
@@ -1719,8 +1716,8 @@
1719
1716
  }
1720
1717
  }
1721
1718
  else if (typeof property === "object") {
1722
- for (let prop in property) {
1723
- let value = property[prop];
1719
+ for (const prop in property) {
1720
+ const value = property[prop];
1724
1721
  setStyleProperty(prop, value);
1725
1722
  }
1726
1723
  }
@@ -1730,7 +1727,7 @@
1730
1727
  }
1731
1728
  }
1732
1729
  text(element, text) {
1733
- let DOMUtilsContext = this;
1730
+ const DOMUtilsContext = this;
1734
1731
  if (typeof element === "string") {
1735
1732
  element = DOMUtilsContext.selectorAll(element);
1736
1733
  }
@@ -1766,7 +1763,7 @@
1766
1763
  }
1767
1764
  }
1768
1765
  html(element, html) {
1769
- let DOMUtilsContext = this;
1766
+ const DOMUtilsContext = this;
1770
1767
  if (typeof element === "string") {
1771
1768
  element = DOMUtilsContext.selectorAll(element);
1772
1769
  }
@@ -1804,19 +1801,19 @@
1804
1801
  * 获取移动元素的transform偏移
1805
1802
  */
1806
1803
  getTransform(element, isShow = false) {
1807
- let DOMUtilsContext = this;
1804
+ const DOMUtilsContext = this;
1808
1805
  let transform_left = 0;
1809
1806
  let transform_top = 0;
1810
1807
  if (!(isShow || (!isShow && DOMUtilsCommonUtils.isShow(element)))) {
1811
1808
  /* 未显示 */
1812
- let { recovery } = DOMUtilsCommonUtils.showElement(element);
1813
- let transformInfo = DOMUtilsContext.getTransform(element, true);
1809
+ const { recovery } = DOMUtilsCommonUtils.showElement(element);
1810
+ const transformInfo = DOMUtilsContext.getTransform(element, true);
1814
1811
  recovery();
1815
1812
  return transformInfo;
1816
1813
  }
1817
- let elementTransform = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element).transform;
1814
+ const elementTransform = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element).transform;
1818
1815
  if (elementTransform != null && elementTransform !== "none" && elementTransform !== "") {
1819
- let elementTransformSplit = elementTransform.match(/\((.+)\)/)?.[1].split(",");
1816
+ const elementTransformSplit = elementTransform.match(/\((.+)\)/)?.[1].split(",");
1820
1817
  if (elementTransformSplit) {
1821
1818
  transform_left = Math.abs(parseInt(elementTransformSplit[4]));
1822
1819
  transform_top = Math.abs(parseInt(elementTransformSplit[5]));
@@ -1832,7 +1829,7 @@
1832
1829
  };
1833
1830
  }
1834
1831
  val(element, value) {
1835
- let DOMUtilsContext = this;
1832
+ const DOMUtilsContext = this;
1836
1833
  if (typeof element === "string") {
1837
1834
  element = DOMUtilsContext.selectorAll(element);
1838
1835
  }
@@ -1872,7 +1869,7 @@
1872
1869
  }
1873
1870
  }
1874
1871
  prop(element, propName, propValue) {
1875
- let DOMUtilsContext = this;
1872
+ const DOMUtilsContext = this;
1876
1873
  if (typeof element === "string") {
1877
1874
  element = DOMUtilsContext.selectorAll(element);
1878
1875
  }
@@ -1914,7 +1911,7 @@
1914
1911
  * DOMUtils.removeAttr("a.xx","data-value")
1915
1912
  * */
1916
1913
  removeAttr(element, attrName) {
1917
- let DOMUtilsContext = this;
1914
+ const DOMUtilsContext = this;
1918
1915
  if (typeof element === "string") {
1919
1916
  element = DOMUtilsContext.selectorAll(element);
1920
1917
  }
@@ -1940,7 +1937,7 @@
1940
1937
  * DOMUtils.removeClass("a.xx","xx")
1941
1938
  */
1942
1939
  removeClass(element, className) {
1943
- let DOMUtilsContext = this;
1940
+ const DOMUtilsContext = this;
1944
1941
  if (typeof element === "string") {
1945
1942
  element = DOMUtilsContext.selectorAll(element);
1946
1943
  }
@@ -1977,7 +1974,7 @@
1977
1974
  * DOMUtils.removeProp("a.xx","href")
1978
1975
  * */
1979
1976
  removeProp(element, propName) {
1980
- let DOMUtilsContext = this;
1977
+ const DOMUtilsContext = this;
1981
1978
  if (typeof element === "string") {
1982
1979
  element = DOMUtilsContext.selectorAll(element);
1983
1980
  }
@@ -2003,7 +2000,7 @@
2003
2000
  * DOMUtils.replaceWith("a.xx",'<b class="xx"></b>')
2004
2001
  */
2005
2002
  replaceWith(element, newElement) {
2006
- let DOMUtilsContext = this;
2003
+ const DOMUtilsContext = this;
2007
2004
  if (typeof element === "string") {
2008
2005
  element = DOMUtilsContext.selectorAll(element);
2009
2006
  }
@@ -2020,7 +2017,7 @@
2020
2017
  if (typeof newElement === "string") {
2021
2018
  newElement = DOMUtilsContext.parseHTML(newElement, false, false);
2022
2019
  }
2023
- let $parent = element.parentElement;
2020
+ const $parent = element.parentElement;
2024
2021
  if ($parent) {
2025
2022
  $parent.replaceChild(newElement, element);
2026
2023
  }
@@ -2039,7 +2036,7 @@
2039
2036
  * DOMUtils.addClass("a.xx","_vue_")
2040
2037
  * */
2041
2038
  addClass(element, className) {
2042
- let DOMUtilsContext = this;
2039
+ const DOMUtilsContext = this;
2043
2040
  if (typeof element === "string") {
2044
2041
  element = DOMUtilsContext.selectorAll(element);
2045
2042
  }
@@ -2069,7 +2066,7 @@
2069
2066
  * @param className
2070
2067
  */
2071
2068
  hasClass(element, className) {
2072
- let DOMUtilsContext = this;
2069
+ const DOMUtilsContext = this;
2073
2070
  if (typeof element === "string") {
2074
2071
  element = DOMUtilsContext.selectorAll(element);
2075
2072
  }
@@ -2108,7 +2105,7 @@
2108
2105
  * DOMUtils.append("a.xx","'<b class="xx"></b>")
2109
2106
  * */
2110
2107
  append(element, content) {
2111
- let DOMUtilsContext = this;
2108
+ const DOMUtilsContext = this;
2112
2109
  if (typeof element === "string") {
2113
2110
  element = DOMUtilsContext.selectorAll(element);
2114
2111
  }
@@ -2140,7 +2137,7 @@
2140
2137
  }
2141
2138
  if (Array.isArray(content) || content instanceof NodeList) {
2142
2139
  /* 数组 */
2143
- let fragment = DOMUtilsContext.windowApi.document.createDocumentFragment();
2140
+ const fragment = DOMUtilsContext.windowApi.document.createDocumentFragment();
2144
2141
  content.forEach((ele) => {
2145
2142
  if (typeof ele === "string") {
2146
2143
  // 转为元素
@@ -2164,7 +2161,7 @@
2164
2161
  * DOMUtils.prepend("a.xx","'<b class="xx"></b>")
2165
2162
  * */
2166
2163
  prepend(element, content) {
2167
- let DOMUtilsContext = this;
2164
+ const DOMUtilsContext = this;
2168
2165
  if (typeof element === "string") {
2169
2166
  element = DOMUtilsContext.selectorAll(element);
2170
2167
  }
@@ -2188,7 +2185,7 @@
2188
2185
  }
2189
2186
  }
2190
2187
  else {
2191
- let $firstChild = element.firstChild;
2188
+ const $firstChild = element.firstChild;
2192
2189
  if ($firstChild == null) {
2193
2190
  element.prepend(content);
2194
2191
  }
@@ -2207,7 +2204,7 @@
2207
2204
  * DOMUtils.after("a.xx","'<b class="xx"></b>")
2208
2205
  * */
2209
2206
  after(element, content) {
2210
- let DOMUtilsContext = this;
2207
+ const DOMUtilsContext = this;
2211
2208
  if (typeof element === "string") {
2212
2209
  element = DOMUtilsContext.selectorAll(element);
2213
2210
  }
@@ -2225,8 +2222,8 @@
2225
2222
  element.insertAdjacentHTML("afterend", DOMUtilsCommonUtils.getSafeHTML(content));
2226
2223
  }
2227
2224
  else {
2228
- let $parent = element.parentElement;
2229
- let $nextSlibling = element.nextSibling;
2225
+ const $parent = element.parentElement;
2226
+ const $nextSlibling = element.nextSibling;
2230
2227
  if (!$parent || $nextSlibling) {
2231
2228
  // 任意一个不行
2232
2229
  element.after(content);
@@ -2246,7 +2243,7 @@
2246
2243
  * DOMUtils.before("a.xx","'<b class="xx"></b>")
2247
2244
  * */
2248
2245
  before(element, content) {
2249
- let DOMUtilsContext = this;
2246
+ const DOMUtilsContext = this;
2250
2247
  if (typeof element === "string") {
2251
2248
  element = DOMUtilsContext.selectorAll(element);
2252
2249
  }
@@ -2264,7 +2261,7 @@
2264
2261
  element.insertAdjacentHTML("beforebegin", DOMUtilsCommonUtils.getSafeHTML(content));
2265
2262
  }
2266
2263
  else {
2267
- let $parent = element.parentElement;
2264
+ const $parent = element.parentElement;
2268
2265
  if (!$parent) {
2269
2266
  element.before(content);
2270
2267
  }
@@ -2283,7 +2280,7 @@
2283
2280
  * DOMUtils.remove("a.xx")
2284
2281
  * */
2285
2282
  remove(element) {
2286
- let DOMUtilsContext = this;
2283
+ const DOMUtilsContext = this;
2287
2284
  if (typeof element === "string") {
2288
2285
  element = DOMUtilsContext.selectorAll(element);
2289
2286
  }
@@ -2315,7 +2312,7 @@
2315
2312
  * DOMUtils.empty("a.xx")
2316
2313
  * */
2317
2314
  empty(element) {
2318
- let DOMUtilsContext = this;
2315
+ const DOMUtilsContext = this;
2319
2316
  if (typeof element === "string") {
2320
2317
  element = DOMUtilsContext.selectorAll(element);
2321
2318
  }
@@ -2346,14 +2343,14 @@
2346
2343
  * > 0
2347
2344
  */
2348
2345
  offset(element) {
2349
- let DOMUtilsContext = this;
2346
+ const DOMUtilsContext = this;
2350
2347
  if (typeof element === "string") {
2351
2348
  element = DOMUtilsContext.selector(element);
2352
2349
  }
2353
2350
  if (element == null) {
2354
2351
  return;
2355
2352
  }
2356
- let rect = element.getBoundingClientRect();
2353
+ const rect = element.getBoundingClientRect();
2357
2354
  return {
2358
2355
  /** y轴偏移 */
2359
2356
  top: rect.top + DOMUtilsContext.windowApi.globalThis.scrollY,
@@ -2362,14 +2359,10 @@
2362
2359
  };
2363
2360
  }
2364
2361
  width(element, isShow = false) {
2365
- let DOMUtilsContext = this;
2362
+ const DOMUtilsContext = this;
2366
2363
  if (typeof element === "string") {
2367
2364
  element = DOMUtilsContext.selector(element);
2368
2365
  }
2369
- if (element == null) {
2370
- // @ts-ignore
2371
- return;
2372
- }
2373
2366
  if (DOMUtilsCommonUtils.isWin(element)) {
2374
2367
  return DOMUtilsContext.windowApi.window.document.documentElement.clientWidth;
2375
2368
  }
@@ -2388,11 +2381,11 @@
2388
2381
  }
2389
2382
  /* 如果从css里获取到的值不是大于0 可能是auto 则通过offsetWidth来进行计算 */
2390
2383
  if (element.offsetWidth > 0) {
2391
- let borderLeftWidth = DOMUtilsCommonUtils.getStyleValue(element, "borderLeftWidth");
2392
- let borderRightWidth = DOMUtilsCommonUtils.getStyleValue(element, "borderRightWidth");
2393
- let paddingLeft = DOMUtilsCommonUtils.getStyleValue(element, "paddingLeft");
2394
- let paddingRight = DOMUtilsCommonUtils.getStyleValue(element, "paddingRight");
2395
- let backHeight = parseFloat(element.offsetWidth.toString()) -
2384
+ const borderLeftWidth = DOMUtilsCommonUtils.getStyleValue(element, "borderLeftWidth");
2385
+ const borderRightWidth = DOMUtilsCommonUtils.getStyleValue(element, "borderRightWidth");
2386
+ const paddingLeft = DOMUtilsCommonUtils.getStyleValue(element, "paddingLeft");
2387
+ const paddingRight = DOMUtilsCommonUtils.getStyleValue(element, "paddingRight");
2388
+ const backHeight = parseFloat(element.offsetWidth.toString()) -
2396
2389
  parseFloat(borderLeftWidth.toString()) -
2397
2390
  parseFloat(borderRightWidth.toString()) -
2398
2391
  parseFloat(paddingLeft.toString()) -
@@ -2404,24 +2397,20 @@
2404
2397
  else {
2405
2398
  /* 未显示 */
2406
2399
  element = element;
2407
- let { recovery } = DOMUtilsCommonUtils.showElement(element);
2408
- let width = DOMUtilsContext.width(element, true);
2400
+ const { recovery } = DOMUtilsCommonUtils.showElement(element);
2401
+ const width = DOMUtilsContext.width(element, true);
2409
2402
  recovery();
2410
2403
  return width;
2411
2404
  }
2412
2405
  }
2413
2406
  height(element, isShow = false) {
2414
- let DOMUtilsContext = this;
2407
+ const DOMUtilsContext = this;
2415
2408
  if (DOMUtilsCommonUtils.isWin(element)) {
2416
2409
  return DOMUtilsContext.windowApi.window.document.documentElement.clientHeight;
2417
2410
  }
2418
2411
  if (typeof element === "string") {
2419
2412
  element = DOMUtilsContext.selector(element);
2420
2413
  }
2421
- if (element == null) {
2422
- // @ts-ignore
2423
- return;
2424
- }
2425
2414
  if (element.nodeType === 9) {
2426
2415
  element = element;
2427
2416
  /* Document文档节点 */
@@ -2437,11 +2426,11 @@
2437
2426
  }
2438
2427
  /* 如果从css里获取到的值不是大于0 可能是auto 则通过offsetHeight来进行计算 */
2439
2428
  if (element.offsetHeight > 0) {
2440
- let borderTopWidth = DOMUtilsCommonUtils.getStyleValue(element, "borderTopWidth");
2441
- let borderBottomWidth = DOMUtilsCommonUtils.getStyleValue(element, "borderBottomWidth");
2442
- let paddingTop = DOMUtilsCommonUtils.getStyleValue(element, "paddingTop");
2443
- let paddingBottom = DOMUtilsCommonUtils.getStyleValue(element, "paddingBottom");
2444
- let backHeight = parseFloat(element.offsetHeight.toString()) -
2429
+ const borderTopWidth = DOMUtilsCommonUtils.getStyleValue(element, "borderTopWidth");
2430
+ const borderBottomWidth = DOMUtilsCommonUtils.getStyleValue(element, "borderBottomWidth");
2431
+ const paddingTop = DOMUtilsCommonUtils.getStyleValue(element, "paddingTop");
2432
+ const paddingBottom = DOMUtilsCommonUtils.getStyleValue(element, "paddingBottom");
2433
+ const backHeight = parseFloat(element.offsetHeight.toString()) -
2445
2434
  parseFloat(borderTopWidth.toString()) -
2446
2435
  parseFloat(borderBottomWidth.toString()) -
2447
2436
  parseFloat(paddingTop.toString()) -
@@ -2453,60 +2442,52 @@
2453
2442
  else {
2454
2443
  /* 未显示 */
2455
2444
  element = element;
2456
- let { recovery } = DOMUtilsCommonUtils.showElement(element);
2457
- let height = DOMUtilsContext.height(element, true);
2445
+ const { recovery } = DOMUtilsCommonUtils.showElement(element);
2446
+ const height = DOMUtilsContext.height(element, true);
2458
2447
  recovery();
2459
2448
  return height;
2460
2449
  }
2461
2450
  }
2462
2451
  outerWidth(element, isShow = false) {
2463
- let DOMUtilsContext = this;
2452
+ const DOMUtilsContext = this;
2464
2453
  if (DOMUtilsCommonUtils.isWin(element)) {
2465
2454
  return DOMUtilsContext.windowApi.window.innerWidth;
2466
2455
  }
2467
2456
  if (typeof element === "string") {
2468
2457
  element = DOMUtilsContext.selector(element);
2469
2458
  }
2470
- if (element == null) {
2471
- // @ts-ignore
2472
- return;
2473
- }
2474
2459
  element = element;
2475
2460
  if (isShow || (!isShow && DOMUtilsCommonUtils.isShow(element))) {
2476
- let style = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element, null);
2477
- let marginLeft = DOMUtilsCommonUtils.getStyleValue(style, "marginLeft");
2478
- let marginRight = DOMUtilsCommonUtils.getStyleValue(style, "marginRight");
2461
+ const style = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element, null);
2462
+ const marginLeft = DOMUtilsCommonUtils.getStyleValue(style, "marginLeft");
2463
+ const marginRight = DOMUtilsCommonUtils.getStyleValue(style, "marginRight");
2479
2464
  return element.offsetWidth + marginLeft + marginRight;
2480
2465
  }
2481
2466
  else {
2482
- let { recovery } = DOMUtilsCommonUtils.showElement(element);
2483
- let outerWidth = DOMUtilsContext.outerWidth(element, true);
2467
+ const { recovery } = DOMUtilsCommonUtils.showElement(element);
2468
+ const outerWidth = DOMUtilsContext.outerWidth(element, true);
2484
2469
  recovery();
2485
2470
  return outerWidth;
2486
2471
  }
2487
2472
  }
2488
2473
  outerHeight(element, isShow = false) {
2489
- let DOMUtilsContext = this;
2474
+ const DOMUtilsContext = this;
2490
2475
  if (DOMUtilsCommonUtils.isWin(element)) {
2491
2476
  return DOMUtilsContext.windowApi.window.innerHeight;
2492
2477
  }
2493
2478
  if (typeof element === "string") {
2494
2479
  element = DOMUtilsContext.selector(element);
2495
2480
  }
2496
- if (element == null) {
2497
- // @ts-ignore
2498
- return;
2499
- }
2500
2481
  element = element;
2501
2482
  if (isShow || (!isShow && DOMUtilsCommonUtils.isShow(element))) {
2502
- let style = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element, null);
2503
- let marginTop = DOMUtilsCommonUtils.getStyleValue(style, "marginTop");
2504
- let marginBottom = DOMUtilsCommonUtils.getStyleValue(style, "marginBottom");
2483
+ const style = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element, null);
2484
+ const marginTop = DOMUtilsCommonUtils.getStyleValue(style, "marginTop");
2485
+ const marginBottom = DOMUtilsCommonUtils.getStyleValue(style, "marginBottom");
2505
2486
  return element.offsetHeight + marginTop + marginBottom;
2506
2487
  }
2507
2488
  else {
2508
- let { recovery } = DOMUtilsCommonUtils.showElement(element);
2509
- let outerHeight = DOMUtilsContext.outerHeight(element, true);
2489
+ const { recovery } = DOMUtilsCommonUtils.showElement(element);
2490
+ const outerHeight = DOMUtilsContext.outerHeight(element, true);
2510
2491
  recovery();
2511
2492
  return outerHeight;
2512
2493
  }
@@ -2524,7 +2505,7 @@
2524
2505
  * })
2525
2506
  */
2526
2507
  animate(element, styles, duration = 1000, callback = null) {
2527
- let DOMUtilsContext = this;
2508
+ const DOMUtilsContext = this;
2528
2509
  if (typeof element === "string") {
2529
2510
  element = DOMUtilsContext.selectorAll(element);
2530
2511
  }
@@ -2550,21 +2531,20 @@
2550
2531
  if (Object.keys(styles).length === 0) {
2551
2532
  throw new Error("styles must contain at least one property");
2552
2533
  }
2553
- let start = performance.now();
2554
- let from = {};
2555
- let to = {};
2556
- for (let prop in styles) {
2557
- from[prop] =
2558
- element.style[prop] || DOMUtilsContext.windowApi.globalThis.getComputedStyle(element)[prop];
2534
+ const start = performance.now();
2535
+ const from = {};
2536
+ const to = {};
2537
+ for (const prop in styles) {
2538
+ from[prop] = element.style[prop] || DOMUtilsContext.windowApi.globalThis.getComputedStyle(element)[prop];
2559
2539
  to[prop] = styles[prop];
2560
2540
  }
2561
- let timer = DOMUtilsCommonUtils.setInterval(function () {
2562
- let timePassed = performance.now() - start;
2541
+ const timer = DOMUtilsCommonUtils.setInterval(function () {
2542
+ const timePassed = performance.now() - start;
2563
2543
  let progress = timePassed / duration;
2564
2544
  if (progress > 1) {
2565
2545
  progress = 1;
2566
2546
  }
2567
- for (let prop in styles) {
2547
+ for (const prop in styles) {
2568
2548
  element.style[prop] = from[prop] + (to[prop] - from[prop]) * progress + "px";
2569
2549
  }
2570
2550
  if (progress === 1) {
@@ -2584,7 +2564,7 @@
2584
2564
  * DOMUtils.wrap(document.querySelector("a.xx"),"<div></div>")
2585
2565
  */
2586
2566
  wrap(element, wrapperHTML) {
2587
- let DOMUtilsContext = this;
2567
+ const DOMUtilsContext = this;
2588
2568
  if (typeof element === "string") {
2589
2569
  element = DOMUtilsContext.selectorAll(element);
2590
2570
  }
@@ -2600,17 +2580,17 @@
2600
2580
  }
2601
2581
  element = element;
2602
2582
  // 创建一个新的div元素,并将wrapperHTML作为其innerHTML
2603
- let wrapper = DOMUtilsContext.windowApi.document.createElement("div");
2583
+ const wrapper = DOMUtilsContext.windowApi.document.createElement("div");
2604
2584
  DOMUtilsContext.html(wrapper, wrapperHTML);
2605
- let wrapperFirstChild = wrapper.firstChild;
2585
+ const wrapperFirstChild = wrapper.firstChild;
2606
2586
  // 将要包裹的元素插入目标元素前面
2607
- let parentElement = element.parentElement;
2587
+ const parentElement = element.parentElement;
2608
2588
  parentElement.insertBefore(wrapperFirstChild, element);
2609
2589
  // 将要包裹的元素移动到wrapper中
2610
2590
  wrapperFirstChild.appendChild(element);
2611
2591
  }
2612
2592
  prev(element) {
2613
- let DOMUtilsContext = this;
2593
+ const DOMUtilsContext = this;
2614
2594
  if (typeof element === "string") {
2615
2595
  element = DOMUtilsContext.selector(element);
2616
2596
  }
@@ -2620,7 +2600,7 @@
2620
2600
  return element.previousElementSibling;
2621
2601
  }
2622
2602
  next(element) {
2623
- let DOMUtilsContext = this;
2603
+ const DOMUtilsContext = this;
2624
2604
  if (typeof element === "string") {
2625
2605
  element = DOMUtilsContext.selector(element);
2626
2606
  }
@@ -2635,7 +2615,7 @@
2635
2615
  * let DOMUtils = window.DOMUtils.noConflict()
2636
2616
  */
2637
2617
  noConflict() {
2638
- let DOMUtilsContext = this;
2618
+ const DOMUtilsContext = this;
2639
2619
  if (DOMUtilsContext.windowApi.window.DOMUtils) {
2640
2620
  DOMUtilsCommonUtils.delete(window, "DOMUtils");
2641
2621
  }
@@ -2643,7 +2623,7 @@
2643
2623
  return this;
2644
2624
  }
2645
2625
  siblings(element) {
2646
- let DOMUtilsContext = this;
2626
+ const DOMUtilsContext = this;
2647
2627
  if (typeof element === "string") {
2648
2628
  element = DOMUtilsContext.selector(element);
2649
2629
  }
@@ -2663,7 +2643,7 @@
2663
2643
  * > <div ...>....</div>
2664
2644
  */
2665
2645
  parent(element) {
2666
- let DOMUtilsContext = this;
2646
+ const DOMUtilsContext = this;
2667
2647
  if (typeof element === "string") {
2668
2648
  element = DOMUtilsContext.selector(element);
2669
2649
  }
@@ -2671,7 +2651,7 @@
2671
2651
  return;
2672
2652
  }
2673
2653
  if (DOMUtilsCommonUtils.isNodeList(element)) {
2674
- let resultArray = [];
2654
+ const resultArray = [];
2675
2655
  element.forEach(($ele) => {
2676
2656
  resultArray.push(DOMUtilsContext.parent($ele));
2677
2657
  });
@@ -2682,11 +2662,11 @@
2682
2662
  }
2683
2663
  }
2684
2664
  parseHTML(html, useParser = false, isComplete = false) {
2685
- let DOMUtilsContext = this;
2665
+ const DOMUtilsContext = this;
2686
2666
  // 去除html前后的空格
2687
2667
  html = html.trim();
2688
2668
  function parseHTMLByDOMParser() {
2689
- let parser = new DOMParser();
2669
+ const parser = new DOMParser();
2690
2670
  if (isComplete) {
2691
2671
  return parser.parseFromString(html, "text/html");
2692
2672
  }
@@ -2695,7 +2675,7 @@
2695
2675
  }
2696
2676
  }
2697
2677
  function parseHTMLByCreateDom() {
2698
- let tempDIV = DOMUtilsContext.windowApi.document.createElement("div");
2678
+ const tempDIV = DOMUtilsContext.windowApi.document.createElement("div");
2699
2679
  DOMUtilsContext.html(tempDIV, html);
2700
2680
  if (isComplete) {
2701
2681
  return tempDIV;
@@ -2720,7 +2700,7 @@
2720
2700
  */
2721
2701
  serialize($form) {
2722
2702
  const elements = $form.elements;
2723
- let serializedArray = [];
2703
+ const serializedArray = [];
2724
2704
  for (let i = 0; i < elements.length; i++) {
2725
2705
  const element = elements[i];
2726
2706
  if (element.name &&
@@ -2759,7 +2739,7 @@
2759
2739
  * DOMUtils.show("a.xx")
2760
2740
  */
2761
2741
  show(target, checkVisiblie = true) {
2762
- let DOMUtilsContext = this;
2742
+ const DOMUtilsContext = this;
2763
2743
  if (target == null) {
2764
2744
  return;
2765
2745
  }
@@ -2796,7 +2776,7 @@
2796
2776
  * DOMUtils.hide("a.xx")
2797
2777
  */
2798
2778
  hide(target, checkVisiblie = true) {
2799
- let DOMUtilsContext = this;
2779
+ const DOMUtilsContext = this;
2800
2780
  if (target == null) {
2801
2781
  return;
2802
2782
  }
@@ -2838,7 +2818,7 @@
2838
2818
  if (element == null) {
2839
2819
  return;
2840
2820
  }
2841
- let DOMUtilsContext = this;
2821
+ const DOMUtilsContext = this;
2842
2822
  if (typeof element === "string") {
2843
2823
  element = DOMUtilsContext.selectorAll(element);
2844
2824
  }
@@ -2856,7 +2836,7 @@
2856
2836
  function step(timestamp) {
2857
2837
  if (!start)
2858
2838
  start = timestamp;
2859
- let progress = timestamp - start;
2839
+ const progress = timestamp - start;
2860
2840
  element = element;
2861
2841
  element.style.opacity = Math.min(progress / duration, 1).toString();
2862
2842
  if (progress < duration) {
@@ -2886,7 +2866,7 @@
2886
2866
  * })
2887
2867
  */
2888
2868
  fadeOut(element, duration = 400, callback) {
2889
- let DOMUtilsContext = this;
2869
+ const DOMUtilsContext = this;
2890
2870
  if (element == null) {
2891
2871
  return;
2892
2872
  }
@@ -2906,7 +2886,7 @@
2906
2886
  function step(timestamp) {
2907
2887
  if (!start)
2908
2888
  start = timestamp;
2909
- let progress = timestamp - start;
2889
+ const progress = timestamp - start;
2910
2890
  element = element;
2911
2891
  element.style.opacity = Math.max(1 - progress / duration, 0).toString();
2912
2892
  if (progress < duration) {
@@ -2932,7 +2912,7 @@
2932
2912
  * DOMUtils.toggle("a.xx")
2933
2913
  */
2934
2914
  toggle(element, checkVisiblie) {
2935
- let DOMUtilsContext = this;
2915
+ const DOMUtilsContext = this;
2936
2916
  if (typeof element === "string") {
2937
2917
  element = DOMUtilsContext.selectorAll(element);
2938
2918
  }
@@ -2970,7 +2950,7 @@
2970
2950
  * DOMUtils.getTextBoundingRect(document.querySelector("input"));
2971
2951
  */
2972
2952
  getTextBoundingRect($input, selectionStart, selectionEnd) {
2973
- let DOMUtilsContext = this;
2953
+ const DOMUtilsContext = this;
2974
2954
  // Basic parameter validation
2975
2955
  if (!$input || !("value" in $input))
2976
2956
  return $input;
@@ -2999,18 +2979,20 @@
2999
2979
  else
3000
2980
  selectionEnd = Math.min($input.value.length, selectionEnd);
3001
2981
  // If available (thus IE), use the createTextRange method
3002
- // @ts-ignore
3003
2982
  if (typeof $input.createTextRange == "function") {
3004
- let range = $input.createTextRange();
2983
+ const range = $input.createTextRange();
3005
2984
  range.collapse(true);
3006
2985
  range.moveStart("character", selectionStart);
3007
2986
  range.moveEnd("character", selectionEnd - selectionStart);
3008
2987
  return range.getBoundingClientRect();
3009
2988
  }
3010
2989
  // createTextRange is not supported, create a fake text range
3011
- let offset = getInputOffset(), topPos = offset.top, leftPos = offset.left, width = getInputCSS("width", true), height = getInputCSS("height", true);
2990
+ const offset = getInputOffset(), width = getInputCSS("width", true), height = getInputCSS("height", true);
2991
+ let topPos = offset.top;
2992
+ let leftPos = offset.left;
3012
2993
  // Styles to simulate a node in an input field
3013
- let cssDefaultStyles = "white-space:pre;padding:0;margin:0;", listOfModifiers = [
2994
+ let cssDefaultStyles = "white-space:pre;padding:0;margin:0;";
2995
+ const listOfModifiers = [
3014
2996
  "direction",
3015
2997
  "font-family",
3016
2998
  "font-size",
@@ -3032,16 +3014,15 @@
3032
3014
  leftPos += getInputCSS("border-left-width", true);
3033
3015
  leftPos += 1; //Seems to be necessary
3034
3016
  for (let index = 0; index < listOfModifiers.length; index++) {
3035
- let property = listOfModifiers[index];
3036
- // @ts-ignore
3037
- cssDefaultStyles += property + ":" + getInputCSS(property) + ";";
3017
+ const property = listOfModifiers[index];
3018
+ cssDefaultStyles += property + ":" + getInputCSS(property, false) + ";";
3038
3019
  }
3039
3020
  // End of CSS variable checks
3040
3021
  // 不能为空,不然获取不到高度
3041
- let text = $input.value || "G", textLen = text.length, fakeClone = DOMUtilsContext.windowApi.document.createElement("div");
3022
+ const text = $input.value || "G", textLen = text.length, fakeClone = DOMUtilsContext.windowApi.document.createElement("div");
3042
3023
  if (selectionStart > 0)
3043
3024
  appendPart(0, selectionStart);
3044
- var fakeRange = appendPart(selectionStart, selectionEnd);
3025
+ const fakeRange = appendPart(selectionStart, selectionEnd);
3045
3026
  if (textLen > selectionEnd)
3046
3027
  appendPart(selectionEnd, textLen);
3047
3028
  // Styles to inherit the font styles of the element
@@ -3053,7 +3034,7 @@
3053
3034
  fakeClone.style.width = width + "px";
3054
3035
  fakeClone.style.height = height + "px";
3055
3036
  DOMUtilsContext.windowApi.document.body.appendChild(fakeClone);
3056
- var returnValue = fakeRange.getBoundingClientRect(); //Get rect
3037
+ const returnValue = fakeRange.getBoundingClientRect(); //Get rect
3057
3038
  fakeClone?.parentNode?.removeChild(fakeClone); //Remove temp
3058
3039
  return returnValue;
3059
3040
  // Local functions for readability of the previous code
@@ -3064,7 +3045,7 @@
3064
3045
  * @returns
3065
3046
  */
3066
3047
  function appendPart(start, end) {
3067
- var span = DOMUtilsContext.windowApi.document.createElement("span");
3048
+ const span = DOMUtilsContext.windowApi.document.createElement("span");
3068
3049
  span.style.cssText = cssDefaultStyles; //Force styles to prevent unexpected results
3069
3050
  span.textContent = text.substring(start, end);
3070
3051
  fakeClone.appendChild(span);
@@ -3072,13 +3053,13 @@
3072
3053
  }
3073
3054
  // Computing offset position
3074
3055
  function getInputOffset() {
3075
- let body = DOMUtilsContext.windowApi.document.body, win = DOMUtilsContext.windowApi.document.defaultView, docElem = DOMUtilsContext.windowApi.document.documentElement, $box = DOMUtilsContext.windowApi.document.createElement("div");
3056
+ const body = DOMUtilsContext.windowApi.document.body, win = DOMUtilsContext.windowApi.document.defaultView, docElem = DOMUtilsContext.windowApi.document.documentElement, $box = DOMUtilsContext.windowApi.document.createElement("div");
3076
3057
  $box.style.paddingLeft = $box.style.width = "1px";
3077
3058
  body.appendChild($box);
3078
- var isBoxModel = $box.offsetWidth == 2;
3059
+ const isBoxModel = $box.offsetWidth == 2;
3079
3060
  body.removeChild($box);
3080
- let $boxRect = $input.getBoundingClientRect();
3081
- var clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, scrollTop = win.pageYOffset || (isBoxModel && docElem.scrollTop) || body.scrollTop, scrollLeft = win.pageXOffset || (isBoxModel && docElem.scrollLeft) || body.scrollLeft;
3061
+ const $boxRect = $input.getBoundingClientRect();
3062
+ const clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, scrollTop = win.pageYOffset || (isBoxModel && docElem.scrollTop) || body.scrollTop, scrollLeft = win.pageXOffset || (isBoxModel && docElem.scrollLeft) || body.scrollLeft;
3082
3063
  return {
3083
3064
  top: $boxRect.top + scrollTop - clientTop,
3084
3065
  left: $boxRect.left + scrollLeft - clientLeft,
@@ -3091,10 +3072,13 @@
3091
3072
  * @returns
3092
3073
  */
3093
3074
  function getInputCSS(prop, isNumber) {
3094
- var val = DOMUtilsContext.windowApi.document
3095
- .defaultView.getComputedStyle($input, null)
3096
- .getPropertyValue(prop);
3097
- return isNumber ? parseFloat(val) : val;
3075
+ const val = DOMUtilsContext.windowApi.document.defaultView.getComputedStyle($input, null).getPropertyValue(prop);
3076
+ if (isNumber) {
3077
+ return parseFloat(val);
3078
+ }
3079
+ else {
3080
+ return val;
3081
+ }
3098
3082
  }
3099
3083
  }
3100
3084
  /** 获取 animationend 在各个浏览器的兼容名 */
@@ -3106,7 +3090,7 @@
3106
3090
  return DOMUtilsCommonUtils.getTransitionEndNameList();
3107
3091
  }
3108
3092
  }
3109
- let domUtils = new DOMUtils();
3093
+ const domUtils = new DOMUtils();
3110
3094
 
3111
3095
  return domUtils;
3112
3096