@whitesev/domutils 1.2.0 → 1.3.1

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.esm.js CHANGED
@@ -1,40 +1,9 @@
1
- const DOMUtilsCoreDefaultEnv = {
2
- document: document,
3
- window: window,
4
- globalThis: globalThis,
5
- self: self,
6
- top: top,
7
- };
8
- const DOMUtilsCoreEnv = {
9
- document: document,
10
- window: window,
11
- globalThis: globalThis,
12
- self: self,
13
- top: top,
14
- };
15
- const DOMUtilsCore = {
16
- init(option) {
17
- if (!option) {
18
- option = Object.assign({}, DOMUtilsCoreDefaultEnv);
19
- }
20
- Object.assign(DOMUtilsCoreEnv, option);
21
- },
22
- get document() {
23
- return DOMUtilsCoreEnv.document;
24
- },
25
- get window() {
26
- return DOMUtilsCoreEnv.window;
27
- },
28
- get globalThis() {
29
- return DOMUtilsCoreEnv.globalThis;
30
- },
31
- get self() {
32
- return DOMUtilsCoreEnv.self;
33
- },
34
- };
35
-
36
1
  /** 通用工具类 */
37
2
  const DOMUtilsCommonUtils = {
3
+ windowApi: {
4
+ window: window,
5
+ document: document,
6
+ },
38
7
  /**
39
8
  * 判断元素是否已显示或已连接
40
9
  * @param element
@@ -49,7 +18,7 @@ const DOMUtilsCommonUtils = {
49
18
  showElement(element) {
50
19
  let dupNode = element.cloneNode(true);
51
20
  dupNode.setAttribute("style", "visibility: hidden !important;display:block !important;");
52
- DOMUtilsCore.document.documentElement.appendChild(dupNode);
21
+ this.windowApi.document.documentElement.appendChild(dupNode);
53
22
  return {
54
23
  /**
55
24
  * 恢复修改的style
@@ -106,13 +75,13 @@ const DOMUtilsCommonUtils = {
106
75
  if (target === self) {
107
76
  return true;
108
77
  }
109
- if (target === DOMUtilsCore.globalThis) {
78
+ if (target === globalThis) {
110
79
  return true;
111
80
  }
112
- if (target === DOMUtilsCore.window) {
81
+ if (target === window) {
113
82
  return true;
114
83
  }
115
- if (target === DOMUtilsCore.self) {
84
+ if (target === self) {
116
85
  return true;
117
86
  }
118
87
  if (typeof unsafeWindow !== "undefined" && target === unsafeWindow) {
@@ -150,7 +119,45 @@ const OriginPrototype = {
150
119
  },
151
120
  };
152
121
 
122
+ class WindowApi {
123
+ /** 默认的配置 */
124
+ defaultApi = {
125
+ document: document,
126
+ window: window,
127
+ globalThis: globalThis,
128
+ self: self,
129
+ top: top,
130
+ };
131
+ /** 使用的配置 */
132
+ api;
133
+ constructor(option) {
134
+ if (!option) {
135
+ option = Object.assign({}, this.defaultApi);
136
+ }
137
+ this.api = Object.assign({}, option);
138
+ }
139
+ get document() {
140
+ return this.api.document;
141
+ }
142
+ get window() {
143
+ return this.api.window;
144
+ }
145
+ get globalThis() {
146
+ return this.api.globalThis;
147
+ }
148
+ get self() {
149
+ return this.api.self;
150
+ }
151
+ get top() {
152
+ return this.api.top;
153
+ }
154
+ }
155
+
153
156
  class DOMUtilsEvent {
157
+ windowApi;
158
+ constructor(windowApiOption) {
159
+ this.windowApi = new WindowApi(windowApiOption);
160
+ }
154
161
  on(element, eventType, selector, callback, option) {
155
162
  /**
156
163
  * 获取option配置
@@ -181,7 +188,7 @@ class DOMUtilsEvent {
181
188
  let DOMUtilsContext = this;
182
189
  let args = arguments;
183
190
  if (typeof element === "string") {
184
- element = DOMUtilsCore.document.querySelectorAll(element);
191
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
185
192
  }
186
193
  if (element == null) {
187
194
  return;
@@ -232,7 +239,7 @@ class DOMUtilsEvent {
232
239
  if (_selector_) {
233
240
  /* 存在自定义子元素选择器 */
234
241
  let totalParent = DOMUtilsCommonUtils.isWin(elementItem)
235
- ? DOMUtilsCore.document.documentElement
242
+ ? DOMUtilsContext.windowApi.document.documentElement
236
243
  : elementItem;
237
244
  if (target.matches(_selector_)) {
238
245
  /* 当前目标可以被selector所匹配到 */
@@ -296,9 +303,10 @@ class DOMUtilsEvent {
296
303
  }
297
304
  return option;
298
305
  }
306
+ let DOMUtilsContext = this;
299
307
  let args = arguments;
300
308
  if (typeof element === "string") {
301
- element = DOMUtilsCore.document.querySelectorAll(element);
309
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
302
310
  }
303
311
  if (element == null) {
304
312
  return;
@@ -381,8 +389,9 @@ class DOMUtilsEvent {
381
389
  * @param eventType (可选)需要取消监听的事件
382
390
  */
383
391
  offAll(element, eventType) {
392
+ let DOMUtilsContext = this;
384
393
  if (typeof element === "string") {
385
- element = DOMUtilsCore.document.querySelectorAll(element);
394
+ element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
386
395
  }
387
396
  if (element == null) {
388
397
  return;
@@ -437,14 +446,16 @@ class DOMUtilsEvent {
437
446
  if (typeof callback !== "function") {
438
447
  return;
439
448
  }
449
+ let DOMUtilsContext = this;
440
450
  /**
441
451
  * 检测文档是否加载完毕
442
452
  */
443
453
  function checkDOMReadyState() {
444
454
  try {
445
- if (DOMUtilsCore.document.readyState === "complete" ||
446
- (DOMUtilsCore.document.readyState !== "loading" &&
447
- !DOMUtilsCore.document.documentElement.doScroll)) {
455
+ if (DOMUtilsContext.windowApi.document.readyState === "complete" ||
456
+ (DOMUtilsContext.windowApi.document.readyState !== "loading" &&
457
+ !DOMUtilsContext.windowApi.document.documentElement
458
+ .doScroll)) {
448
459
  return true;
449
460
  }
450
461
  else {
@@ -464,12 +475,12 @@ class DOMUtilsEvent {
464
475
  }
465
476
  let targetList = [
466
477
  {
467
- target: DOMUtilsCore.document,
478
+ target: DOMUtilsContext.windowApi.document,
468
479
  eventType: "DOMContentLoaded",
469
480
  callback: completed,
470
481
  },
471
482
  {
472
- target: DOMUtilsCore.window,
483
+ target: DOMUtilsContext.windowApi.window,
473
484
  eventType: "load",
474
485
  callback: completed,
475
486
  },
@@ -516,8 +527,9 @@ class DOMUtilsEvent {
516
527
  * DOMUtils.trigger("a.xx",["click","tap","hover"])
517
528
  */
518
529
  trigger(element, eventType, details, useDispatchToTriggerEvent = true) {
530
+ let DOMUtilsContext = this;
519
531
  if (typeof element === "string") {
520
- element = DOMUtilsCore.document.querySelector(element);
532
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
521
533
  }
522
534
  if (element == null) {
523
535
  return;
@@ -581,7 +593,7 @@ class DOMUtilsEvent {
581
593
  click(element, handler, details, useDispatchToTriggerEvent) {
582
594
  let DOMUtilsContext = this;
583
595
  if (typeof element === "string") {
584
- element = DOMUtilsCore.document.querySelector(element);
596
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
585
597
  }
586
598
  if (element == null) {
587
599
  return;
@@ -610,7 +622,7 @@ class DOMUtilsEvent {
610
622
  blur(element, handler, details, useDispatchToTriggerEvent) {
611
623
  let DOMUtilsContext = this;
612
624
  if (typeof element === "string") {
613
- element = DOMUtilsCore.document.querySelector(element);
625
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
614
626
  }
615
627
  if (element == null) {
616
628
  return;
@@ -639,7 +651,7 @@ class DOMUtilsEvent {
639
651
  focus(element, handler, details, useDispatchToTriggerEvent) {
640
652
  let DOMUtilsContext = this;
641
653
  if (typeof element === "string") {
642
- element = DOMUtilsCore.document.querySelector(element);
654
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
643
655
  }
644
656
  if (element == null) {
645
657
  return;
@@ -668,7 +680,7 @@ class DOMUtilsEvent {
668
680
  hover(element, handler, option) {
669
681
  let DOMUtilsContext = this;
670
682
  if (typeof element === "string") {
671
- element = DOMUtilsCore.document.querySelector(element);
683
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
672
684
  }
673
685
  if (element == null) {
674
686
  return;
@@ -697,7 +709,7 @@ class DOMUtilsEvent {
697
709
  return;
698
710
  }
699
711
  if (typeof target === "string") {
700
- target = DOMUtilsCore.document.querySelector(target);
712
+ target = DOMUtilsContext.windowApi.document.querySelector(target);
701
713
  }
702
714
  DOMUtilsContext.on(target, "keyup", null, handler, option);
703
715
  }
@@ -722,7 +734,7 @@ class DOMUtilsEvent {
722
734
  return;
723
735
  }
724
736
  if (typeof target === "string") {
725
- target = DOMUtilsCore.document.querySelector(target);
737
+ target = DOMUtilsContext.windowApi.document.querySelector(target);
726
738
  }
727
739
  DOMUtilsContext.on(target, "keydown", null, handler, option);
728
740
  }
@@ -747,22 +759,113 @@ class DOMUtilsEvent {
747
759
  return;
748
760
  }
749
761
  if (typeof target === "string") {
750
- target = DOMUtilsCore.document.querySelector(target);
762
+ target = DOMUtilsContext.windowApi.document.querySelector(target);
751
763
  }
752
764
  DOMUtilsContext.on(target, "keypress", null, handler, option);
753
765
  }
766
+ /**
767
+ * 监听某个元素键盘按键事件或window全局按键事件
768
+ * 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
769
+ * @param target 需要监听的对象,可以是全局Window或者某个元素
770
+ * @param eventName 事件名,默认keypress
771
+ * @param callback 自己定义的回调事件,参数1为当前的key,参数2为组合按键,数组类型,包含ctrl、shift、alt和meta(win键或mac的cmd键)
772
+ * @param options 监听事件的配置
773
+ * @example
774
+ Utils.listenKeyboard(window,(keyName,keyValue,otherKey,event)=>{
775
+ if(keyName === "Enter"){
776
+ console.log("回车按键的值是:"+keyValue)
777
+ }
778
+ if(otherKey.indexOf("ctrl") && keyName === "Enter" ){
779
+ console.log("Ctrl和回车键");
780
+ }
781
+ })
782
+ * @example
783
+ 字母和数字键的键码值(keyCode)
784
+ 按键 键码 按键 键码 按键 键码 按键 键码
785
+ A 65 J 74 S 83 1 49
786
+ B 66 K 75 T 84 2 50
787
+ C 67 L 76 U 85 3 51
788
+ D 68 M 77 V 86 4 52
789
+ E 69 N 78 W 87 5 53
790
+ F 70 O 79 X 88 6 54
791
+ G 71 P 80 Y 89 7 55
792
+ H 72 Q 81 Z 90 8 56
793
+ I 73 R 82 0 48 9 57
794
+
795
+ 数字键盘上的键的键码值(keyCode)
796
+ 功能键键码值(keyCode)
797
+ 按键 键码 按键 键码 按键 键码 按键 键码
798
+ 0 96 8 104 F1 112 F7 118
799
+ 1 97 9 105 F2 113 F8 119
800
+ 2 98 * 106 F3 114 F9 120
801
+ 3 99 + 107 F4 115 F10 121
802
+ 4 100 Enter 108 F5 116 F11 122
803
+ 5 101 - 109 F6 117 F12 123
804
+ 6 102 . 110
805
+ 7 103 / 111
806
+
807
+ 控制键键码值(keyCode)
808
+ 按键 键码 按键 键码 按键 键码 按键 键码
809
+ BackSpace 8 Esc 27 → 39 -_ 189
810
+ Tab 9 Spacebar 32 ↓ 40 .> 190
811
+ Clear 12 Page Up 33 Insert 45 /? 191
812
+ Enter 13 Page Down 34 Delete 46 `~ 192
813
+ Shift 16 End 35 Num Lock 144 [{ 219
814
+ Control 17 Home 36 ;: 186 \| 220
815
+ Alt 18 ← 37 =+ 187 ]} 221
816
+ Cape Lock 20 ↑ 38 ,< 188 '" 222
817
+
818
+ 多媒体键码值(keyCode)
819
+ 按键 键码
820
+ 音量加 175
821
+ 音量减 174
822
+ 停止 179
823
+ 静音 173
824
+ 浏览器 172
825
+ 邮件 180
826
+ 搜索 170
827
+ 收藏 171
828
+ **/
829
+ listenKeyboard(target, eventName = "keypress", callback, options) {
830
+ let keyboardEventCallBack = function (event) {
831
+ let keyName = event.key || event.code;
832
+ let keyValue = event.charCode || event.keyCode || event.which;
833
+ let otherCodeList = [];
834
+ if (event.ctrlKey) {
835
+ otherCodeList.push("ctrl");
836
+ }
837
+ if (event.altKey) {
838
+ otherCodeList.push("alt");
839
+ }
840
+ if (event.metaKey) {
841
+ otherCodeList.push("meta");
842
+ }
843
+ if (event.shiftKey) {
844
+ otherCodeList.push("shift");
845
+ }
846
+ if (typeof callback === "function") {
847
+ callback(keyName, keyValue.toString(), otherCodeList, event);
848
+ }
849
+ };
850
+ this.on(target, eventName, keyboardEventCallBack, options);
851
+ return {
852
+ removeListen: () => {
853
+ this.off(target, eventName, keyboardEventCallBack, options);
854
+ },
855
+ };
856
+ }
754
857
  }
755
858
 
756
859
  class DOMUtils extends DOMUtilsEvent {
757
860
  constructor(option) {
758
- DOMUtilsCore.init(option);
759
- super();
861
+ super(option);
760
862
  }
761
863
  /** 版本号 */
762
- version = "2024.6.21";
864
+ version = "2024.8.30";
763
865
  attr(element, attrName, attrValue) {
866
+ let DOMUtilsContext = this;
764
867
  if (typeof element === "string") {
765
- element = DOMUtilsCore.document.querySelector(element);
868
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
766
869
  }
767
870
  if (element == null) {
768
871
  return;
@@ -799,7 +902,8 @@ class DOMUtils extends DOMUtilsEvent {
799
902
  property,
800
903
  /** 自定义属性 */
801
904
  attributes) {
802
- let tempElement = DOMUtilsCore.document.createElement(tagName);
905
+ let DOMUtilsContext = this;
906
+ let tempElement = DOMUtilsContext.windowApi.document.createElement(tagName);
803
907
  if (typeof property === "string") {
804
908
  tempElement.innerHTML = property;
805
909
  return tempElement;
@@ -829,6 +933,7 @@ class DOMUtils extends DOMUtilsEvent {
829
933
  return tempElement;
830
934
  }
831
935
  css(element, property, value) {
936
+ let DOMUtilsContext = this;
832
937
  /**
833
938
  * 把纯数字没有px的加上
834
939
  */
@@ -853,7 +958,7 @@ class DOMUtils extends DOMUtilsEvent {
853
958
  return propertyValue;
854
959
  }
855
960
  if (typeof element === "string") {
856
- element = DOMUtilsCore.document.querySelector(element);
961
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
857
962
  }
858
963
  if (element == null) {
859
964
  return;
@@ -886,8 +991,9 @@ class DOMUtils extends DOMUtilsEvent {
886
991
  }
887
992
  }
888
993
  text(element, text) {
994
+ let DOMUtilsContext = this;
889
995
  if (typeof element === "string") {
890
- element = DOMUtilsCore.document.querySelector(element);
996
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
891
997
  }
892
998
  if (element == null) {
893
999
  return;
@@ -908,8 +1014,9 @@ class DOMUtils extends DOMUtilsEvent {
908
1014
  }
909
1015
  }
910
1016
  html(element, html) {
1017
+ let DOMUtilsContext = this;
911
1018
  if (typeof element === "string") {
912
- element = DOMUtilsCore.document.querySelector(element);
1019
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
913
1020
  }
914
1021
  if (element == null) {
915
1022
  return;
@@ -962,8 +1069,9 @@ class DOMUtils extends DOMUtilsEvent {
962
1069
  };
963
1070
  }
964
1071
  val(element, value) {
1072
+ let DOMUtilsContext = this;
965
1073
  if (typeof element === "string") {
966
- element = DOMUtilsCore.document.querySelector(element);
1074
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
967
1075
  }
968
1076
  if (element == null) {
969
1077
  return;
@@ -988,11 +1096,12 @@ class DOMUtils extends DOMUtilsEvent {
988
1096
  }
989
1097
  }
990
1098
  prop(element, propName, propValue) {
1099
+ let DOMUtilsContext = this;
991
1100
  if (element == null) {
992
1101
  return;
993
1102
  }
994
1103
  if (typeof element === "string") {
995
- element = DOMUtilsCore.document.querySelector(element);
1104
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
996
1105
  }
997
1106
  if (propValue == null) {
998
1107
  return element[propName];
@@ -1011,8 +1120,9 @@ class DOMUtils extends DOMUtilsEvent {
1011
1120
  * DOMUtils.removeAttr("a.xx","data-value")
1012
1121
  * */
1013
1122
  removeAttr(element, attrName) {
1123
+ let DOMUtilsContext = this;
1014
1124
  if (typeof element === "string") {
1015
- element = DOMUtilsCore.document.querySelector(element);
1125
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1016
1126
  }
1017
1127
  if (element == null) {
1018
1128
  return;
@@ -1029,8 +1139,9 @@ class DOMUtils extends DOMUtilsEvent {
1029
1139
  * DOMUtils.removeClass("a.xx","xx")
1030
1140
  */
1031
1141
  removeClass(element, className) {
1142
+ let DOMUtilsContext = this;
1032
1143
  if (typeof element === "string") {
1033
- element = DOMUtilsCore.document.querySelector(element);
1144
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1034
1145
  }
1035
1146
  if (element == null) {
1036
1147
  return;
@@ -1050,8 +1161,9 @@ class DOMUtils extends DOMUtilsEvent {
1050
1161
  * DOMUtils.removeProp("a.xx","href")
1051
1162
  * */
1052
1163
  removeProp(element, propName) {
1164
+ let DOMUtilsContext = this;
1053
1165
  if (typeof element === "string") {
1054
- element = DOMUtilsCore.document.querySelector(element);
1166
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1055
1167
  }
1056
1168
  if (element == null) {
1057
1169
  return;
@@ -1070,7 +1182,7 @@ class DOMUtils extends DOMUtilsEvent {
1070
1182
  replaceWith(element, newElement) {
1071
1183
  let DOMUtilsContext = this;
1072
1184
  if (typeof element === "string") {
1073
- element = DOMUtilsCore.document.querySelector(element);
1185
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1074
1186
  }
1075
1187
  if (element == null) {
1076
1188
  return;
@@ -1097,8 +1209,9 @@ class DOMUtils extends DOMUtilsEvent {
1097
1209
  * DOMUtils.addClass("a.xx","_vue_")
1098
1210
  * */
1099
1211
  addClass(element, className) {
1212
+ let DOMUtilsContext = this;
1100
1213
  if (typeof element === "string") {
1101
- element = DOMUtilsCore.document.querySelector(element);
1214
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1102
1215
  }
1103
1216
  if (element == null) {
1104
1217
  return;
@@ -1115,8 +1228,9 @@ class DOMUtils extends DOMUtilsEvent {
1115
1228
  * DOMUtils.append("a.xx","'<b class="xx"></b>")
1116
1229
  * */
1117
1230
  append(element, content) {
1231
+ let DOMUtilsContext = this;
1118
1232
  if (typeof element === "string") {
1119
- element = DOMUtilsCore.document.querySelector(element);
1233
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1120
1234
  }
1121
1235
  if (element == null) {
1122
1236
  return;
@@ -1131,7 +1245,7 @@ class DOMUtils extends DOMUtilsEvent {
1131
1245
  }
1132
1246
  if (Array.isArray(content) || content instanceof NodeList) {
1133
1247
  /* 数组 */
1134
- let fragment = DOMUtilsCore.document.createDocumentFragment();
1248
+ let fragment = DOMUtilsContext.windowApi.document.createDocumentFragment();
1135
1249
  content.forEach((ele) => {
1136
1250
  if (typeof ele === "string") {
1137
1251
  ele = this.parseHTML(ele, true, false);
@@ -1154,8 +1268,9 @@ class DOMUtils extends DOMUtilsEvent {
1154
1268
  * DOMUtils.prepend("a.xx","'<b class="xx"></b>")
1155
1269
  * */
1156
1270
  prepend(element, content) {
1271
+ let DOMUtilsContext = this;
1157
1272
  if (typeof element === "string") {
1158
- element = DOMUtilsCore.document.querySelector(element);
1273
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1159
1274
  }
1160
1275
  if (element == null) {
1161
1276
  return;
@@ -1177,8 +1292,9 @@ class DOMUtils extends DOMUtilsEvent {
1177
1292
  * DOMUtils.after("a.xx","'<b class="xx"></b>")
1178
1293
  * */
1179
1294
  after(element, content) {
1295
+ let DOMUtilsContext = this;
1180
1296
  if (typeof element === "string") {
1181
- element = DOMUtilsCore.document.querySelector(element);
1297
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1182
1298
  }
1183
1299
  if (element == null) {
1184
1300
  return;
@@ -1200,8 +1316,9 @@ class DOMUtils extends DOMUtilsEvent {
1200
1316
  * DOMUtils.before("a.xx","'<b class="xx"></b>")
1201
1317
  * */
1202
1318
  before(element, content) {
1319
+ let DOMUtilsContext = this;
1203
1320
  if (typeof element === "string") {
1204
- element = DOMUtilsCore.document.querySelector(element);
1321
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1205
1322
  }
1206
1323
  if (element == null) {
1207
1324
  return;
@@ -1225,7 +1342,7 @@ class DOMUtils extends DOMUtilsEvent {
1225
1342
  remove(target) {
1226
1343
  let DOMUtilsContext = this;
1227
1344
  if (typeof target === "string") {
1228
- target = DOMUtilsCore.document.querySelectorAll(target);
1345
+ target = DOMUtilsContext.windowApi.document.querySelectorAll(target);
1229
1346
  }
1230
1347
  if (target == null) {
1231
1348
  return;
@@ -1249,8 +1366,9 @@ class DOMUtils extends DOMUtilsEvent {
1249
1366
  * DOMUtils.empty("a.xx")
1250
1367
  * */
1251
1368
  empty(element) {
1369
+ let DOMUtilsContext = this;
1252
1370
  if (typeof element === "string") {
1253
- element = DOMUtilsCore.document.querySelector(element);
1371
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1254
1372
  }
1255
1373
  if (element == null) {
1256
1374
  return;
@@ -1267,8 +1385,9 @@ class DOMUtils extends DOMUtilsEvent {
1267
1385
  * > 0
1268
1386
  */
1269
1387
  offset(element) {
1388
+ let DOMUtilsContext = this;
1270
1389
  if (typeof element === "string") {
1271
- element = DOMUtilsCore.document.querySelector(element);
1390
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1272
1391
  }
1273
1392
  if (element == null) {
1274
1393
  return;
@@ -1276,21 +1395,22 @@ class DOMUtils extends DOMUtilsEvent {
1276
1395
  let rect = element.getBoundingClientRect();
1277
1396
  return {
1278
1397
  /** y轴偏移 */
1279
- top: rect.top + DOMUtilsCore.globalThis.scrollY,
1398
+ top: rect.top + DOMUtilsContext.windowApi.globalThis.scrollY,
1280
1399
  /** x轴偏移 */
1281
- left: rect.left + DOMUtilsCore.globalThis.scrollX,
1400
+ left: rect.left + DOMUtilsContext.windowApi.globalThis.scrollX,
1282
1401
  };
1283
1402
  }
1284
1403
  width(element, isShow = false) {
1285
1404
  let DOMUtilsContext = this;
1286
1405
  if (typeof element === "string") {
1287
- element = DOMUtilsCore.document.querySelector(element);
1406
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1288
1407
  }
1289
1408
  if (element == null) {
1290
1409
  return;
1291
1410
  }
1292
1411
  if (DOMUtilsCommonUtils.isWin(element)) {
1293
- return DOMUtilsCore.window.document.documentElement.clientWidth;
1412
+ return DOMUtilsContext.windowApi.window.document.documentElement
1413
+ .clientWidth;
1294
1414
  }
1295
1415
  if (element.nodeType === 9) {
1296
1416
  /* Document文档节点 */
@@ -1333,10 +1453,11 @@ class DOMUtils extends DOMUtilsEvent {
1333
1453
  height(element, isShow = false) {
1334
1454
  let DOMUtilsContext = this;
1335
1455
  if (DOMUtilsCommonUtils.isWin(element)) {
1336
- return DOMUtilsCore.window.document.documentElement.clientHeight;
1456
+ return DOMUtilsContext.windowApi.window.document.documentElement
1457
+ .clientHeight;
1337
1458
  }
1338
1459
  if (typeof element === "string") {
1339
- element = DOMUtilsCore.document.querySelector(element);
1460
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1340
1461
  }
1341
1462
  if (element == null) {
1342
1463
  // @ts-ignore
@@ -1383,10 +1504,10 @@ class DOMUtils extends DOMUtilsEvent {
1383
1504
  outerWidth(element, isShow = false) {
1384
1505
  let DOMUtilsContext = this;
1385
1506
  if (DOMUtilsCommonUtils.isWin(element)) {
1386
- return DOMUtilsCore.window.innerWidth;
1507
+ return DOMUtilsContext.windowApi.window.innerWidth;
1387
1508
  }
1388
1509
  if (typeof element === "string") {
1389
- element = DOMUtilsCore.document.querySelector(element);
1510
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1390
1511
  }
1391
1512
  if (element == null) {
1392
1513
  // @ts-ignore
@@ -1409,10 +1530,10 @@ class DOMUtils extends DOMUtilsEvent {
1409
1530
  outerHeight(element, isShow = false) {
1410
1531
  let DOMUtilsContext = this;
1411
1532
  if (DOMUtilsCommonUtils.isWin(element)) {
1412
- return DOMUtilsCore.window.innerHeight;
1533
+ return DOMUtilsContext.windowApi.window.innerHeight;
1413
1534
  }
1414
1535
  if (typeof element === "string") {
1415
- element = DOMUtilsCore.document.querySelector(element);
1536
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1416
1537
  }
1417
1538
  if (element == null) {
1418
1539
  // @ts-ignore
@@ -1445,8 +1566,9 @@ class DOMUtils extends DOMUtilsEvent {
1445
1566
  * })
1446
1567
  */
1447
1568
  animate(element, styles, duration = 1000, callback = null) {
1569
+ let DOMUtilsContext = this;
1448
1570
  if (typeof element === "string") {
1449
- element = DOMUtilsCore.document.querySelector(element);
1571
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1450
1572
  }
1451
1573
  if (element == null) {
1452
1574
  return;
@@ -1497,15 +1619,16 @@ class DOMUtils extends DOMUtilsEvent {
1497
1619
  * DOMUtils.wrap(document.querySelector("a.xx"),"<div></div>")
1498
1620
  */
1499
1621
  wrap(element, wrapperHTML) {
1622
+ let DOMUtilsContext = this;
1500
1623
  if (typeof element === "string") {
1501
- element = DOMUtilsCore.document.querySelector(element);
1624
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1502
1625
  }
1503
1626
  if (element == null) {
1504
1627
  return;
1505
1628
  }
1506
1629
  element = element;
1507
1630
  // 创建一个新的div元素,并将wrapperHTML作为其innerHTML
1508
- let wrapper = DOMUtilsCore.document.createElement("div");
1631
+ let wrapper = DOMUtilsContext.windowApi.document.createElement("div");
1509
1632
  wrapper.innerHTML = wrapperHTML;
1510
1633
  let wrapperFirstChild = wrapper.firstChild;
1511
1634
  // 将要包裹的元素插入目标元素前面
@@ -1514,8 +1637,9 @@ class DOMUtils extends DOMUtilsEvent {
1514
1637
  wrapperFirstChild.appendChild(element);
1515
1638
  }
1516
1639
  prev(element) {
1640
+ let DOMUtilsContext = this;
1517
1641
  if (typeof element === "string") {
1518
- element = DOMUtilsCore.document.querySelector(element);
1642
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1519
1643
  }
1520
1644
  if (element == null) {
1521
1645
  return;
@@ -1523,8 +1647,9 @@ class DOMUtils extends DOMUtilsEvent {
1523
1647
  return element.previousElementSibling;
1524
1648
  }
1525
1649
  next(element) {
1650
+ let DOMUtilsContext = this;
1526
1651
  if (typeof element === "string") {
1527
- element = DOMUtilsCore.document.querySelector(element);
1652
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1528
1653
  }
1529
1654
  if (element == null) {
1530
1655
  return;
@@ -1537,15 +1662,17 @@ class DOMUtils extends DOMUtilsEvent {
1537
1662
  * let DOMUtils = window.DOMUtils.noConflict()
1538
1663
  */
1539
1664
  noConflict() {
1540
- if (DOMUtilsCore.window.DOMUtils) {
1665
+ let DOMUtilsContext = this;
1666
+ if (DOMUtilsContext.windowApi.window.DOMUtils) {
1541
1667
  DOMUtilsCommonUtils.delete(window, "DOMUtils");
1542
1668
  }
1543
- DOMUtilsCore.window.DOMUtils = this;
1669
+ DOMUtilsContext.windowApi.window.DOMUtils = this;
1544
1670
  return this;
1545
1671
  }
1546
1672
  siblings(element) {
1673
+ let DOMUtilsContext = this;
1547
1674
  if (typeof element === "string") {
1548
- element = DOMUtilsCore.document.querySelector(element);
1675
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1549
1676
  }
1550
1677
  if (element == null) {
1551
1678
  return;
@@ -1566,7 +1693,7 @@ class DOMUtils extends DOMUtilsEvent {
1566
1693
  parent(element) {
1567
1694
  let DOMUtilsContext = this;
1568
1695
  if (typeof element === "string") {
1569
- element = DOMUtilsCore.document.querySelector(element);
1696
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1570
1697
  }
1571
1698
  if (element == null) {
1572
1699
  return;
@@ -1584,6 +1711,7 @@ class DOMUtils extends DOMUtilsEvent {
1584
1711
  }
1585
1712
  }
1586
1713
  parseHTML(html, useParser = false, isComplete = false) {
1714
+ let DOMUtilsContext = this;
1587
1715
  function parseHTMLByDOMParser() {
1588
1716
  let parser = new DOMParser();
1589
1717
  if (isComplete) {
@@ -1594,7 +1722,7 @@ class DOMUtils extends DOMUtilsEvent {
1594
1722
  }
1595
1723
  }
1596
1724
  function parseHTMLByCreateDom() {
1597
- let tempDIV = DOMUtilsCore.document.createElement("div");
1725
+ let tempDIV = DOMUtilsContext.windowApi.document.createElement("div");
1598
1726
  tempDIV.innerHTML = html;
1599
1727
  if (isComplete) {
1600
1728
  return tempDIV;
@@ -1625,7 +1753,7 @@ class DOMUtils extends DOMUtilsEvent {
1625
1753
  return;
1626
1754
  }
1627
1755
  if (typeof target === "string") {
1628
- target = DOMUtilsCore.document.querySelectorAll(target);
1756
+ target = DOMUtilsContext.windowApi.document.querySelectorAll(target);
1629
1757
  }
1630
1758
  if (target instanceof NodeList || target instanceof Array) {
1631
1759
  target = target;
@@ -1657,7 +1785,7 @@ class DOMUtils extends DOMUtilsEvent {
1657
1785
  return;
1658
1786
  }
1659
1787
  if (typeof target === "string") {
1660
- target = DOMUtilsCore.document.querySelectorAll(target);
1788
+ target = DOMUtilsContext.windowApi.document.querySelectorAll(target);
1661
1789
  }
1662
1790
  if (target instanceof NodeList || target instanceof Array) {
1663
1791
  target = target;
@@ -1692,8 +1820,9 @@ class DOMUtils extends DOMUtilsEvent {
1692
1820
  if (element == null) {
1693
1821
  return;
1694
1822
  }
1823
+ let DOMUtilsContext = this;
1695
1824
  if (typeof element === "string") {
1696
- element = DOMUtilsCore.document.querySelector(element);
1825
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1697
1826
  }
1698
1827
  element = element;
1699
1828
  element.style.opacity = "0";
@@ -1707,16 +1836,16 @@ class DOMUtils extends DOMUtilsEvent {
1707
1836
  element = element;
1708
1837
  element.style.opacity = Math.min(progress / duration, 1).toString();
1709
1838
  if (progress < duration) {
1710
- DOMUtilsCore.window.requestAnimationFrame(step);
1839
+ DOMUtilsContext.windowApi.window.requestAnimationFrame(step);
1711
1840
  }
1712
1841
  else {
1713
1842
  if (callback && typeof callback === "function") {
1714
1843
  callback();
1715
1844
  }
1716
- DOMUtilsCore.window.cancelAnimationFrame(timer);
1845
+ DOMUtilsContext.windowApi.window.cancelAnimationFrame(timer);
1717
1846
  }
1718
1847
  }
1719
- timer = DOMUtilsCore.window.requestAnimationFrame(step);
1848
+ timer = DOMUtilsContext.windowApi.window.requestAnimationFrame(step);
1720
1849
  }
1721
1850
  /**
1722
1851
  * 淡出元素
@@ -1733,11 +1862,12 @@ class DOMUtils extends DOMUtilsEvent {
1733
1862
  * })
1734
1863
  */
1735
1864
  fadeOut(element, duration = 400, callback) {
1865
+ let DOMUtilsContext = this;
1736
1866
  if (element == null) {
1737
1867
  return;
1738
1868
  }
1739
1869
  if (typeof element === "string") {
1740
- element = DOMUtilsCore.document.querySelector(element);
1870
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1741
1871
  }
1742
1872
  element = element;
1743
1873
  element.style.opacity = "1";
@@ -1750,17 +1880,17 @@ class DOMUtils extends DOMUtilsEvent {
1750
1880
  element = element;
1751
1881
  element.style.opacity = Math.max(1 - progress / duration, 0).toString();
1752
1882
  if (progress < duration) {
1753
- DOMUtilsCore.window.requestAnimationFrame(step);
1883
+ DOMUtilsContext.windowApi.window.requestAnimationFrame(step);
1754
1884
  }
1755
1885
  else {
1756
1886
  element.style.display = "none";
1757
1887
  if (typeof callback === "function") {
1758
1888
  callback();
1759
1889
  }
1760
- DOMUtilsCore.window.cancelAnimationFrame(timer);
1890
+ DOMUtilsContext.windowApi.window.cancelAnimationFrame(timer);
1761
1891
  }
1762
1892
  }
1763
- timer = DOMUtilsCore.window.requestAnimationFrame(step);
1893
+ timer = DOMUtilsContext.windowApi.window.requestAnimationFrame(step);
1764
1894
  }
1765
1895
  /**
1766
1896
  * 切换元素的显示和隐藏状态
@@ -1773,7 +1903,7 @@ class DOMUtils extends DOMUtilsEvent {
1773
1903
  toggle(element) {
1774
1904
  let DOMUtilsContext = this;
1775
1905
  if (typeof element === "string") {
1776
- element = DOMUtilsCore.document.querySelector(element);
1906
+ element = DOMUtilsContext.windowApi.document.querySelector(element);
1777
1907
  }
1778
1908
  if (element == null) {
1779
1909
  return;
@@ -1802,6 +1932,7 @@ class DOMUtils extends DOMUtilsEvent {
1802
1932
  * DOMUtils.getTextBoundingRect(document.querySelector("input"));
1803
1933
  */
1804
1934
  getTextBoundingRect($input, selectionStart, selectionEnd) {
1935
+ let DOMUtilsContext = this;
1805
1936
  // Basic parameter validation
1806
1937
  if (!$input || !("value" in $input))
1807
1938
  return $input;
@@ -1871,7 +2002,7 @@ class DOMUtils extends DOMUtilsEvent {
1871
2002
  }
1872
2003
  // End of CSS variable checks
1873
2004
  // 不能为空,不然获取不到高度
1874
- let text = $input.value || "G", textLen = text.length, fakeClone = DOMUtilsCore.document.createElement("div");
2005
+ let text = $input.value || "G", textLen = text.length, fakeClone = DOMUtilsContext.windowApi.document.createElement("div");
1875
2006
  if (selectionStart > 0)
1876
2007
  appendPart(0, selectionStart);
1877
2008
  var fakeRange = appendPart(selectionStart, selectionEnd);
@@ -1885,7 +2016,7 @@ class DOMUtils extends DOMUtilsEvent {
1885
2016
  fakeClone.style.left = leftPos + "px";
1886
2017
  fakeClone.style.width = width + "px";
1887
2018
  fakeClone.style.height = height + "px";
1888
- DOMUtilsCore.document.body.appendChild(fakeClone);
2019
+ DOMUtilsContext.windowApi.document.body.appendChild(fakeClone);
1889
2020
  var returnValue = fakeRange.getBoundingClientRect(); //Get rect
1890
2021
  fakeClone?.parentNode?.removeChild(fakeClone); //Remove temp
1891
2022
  return returnValue;
@@ -1897,7 +2028,7 @@ class DOMUtils extends DOMUtilsEvent {
1897
2028
  * @returns
1898
2029
  */
1899
2030
  function appendPart(start, end) {
1900
- var span = DOMUtilsCore.document.createElement("span");
2031
+ var span = DOMUtilsContext.windowApi.document.createElement("span");
1901
2032
  span.style.cssText = cssDefaultStyles; //Force styles to prevent unexpected results
1902
2033
  span.textContent = text.substring(start, end);
1903
2034
  fakeClone.appendChild(span);
@@ -1905,7 +2036,7 @@ class DOMUtils extends DOMUtilsEvent {
1905
2036
  }
1906
2037
  // Computing offset position
1907
2038
  function getInputOffset() {
1908
- let body = DOMUtilsCore.document.body, win = DOMUtilsCore.document.defaultView, docElem = DOMUtilsCore.document.documentElement, $box = DOMUtilsCore.document.createElement("div");
2039
+ let body = DOMUtilsContext.windowApi.document.body, win = DOMUtilsContext.windowApi.document.defaultView, docElem = DOMUtilsContext.windowApi.document.documentElement, $box = DOMUtilsContext.windowApi.document.createElement("div");
1909
2040
  $box.style.paddingLeft = $box.style.width = "1px";
1910
2041
  body.appendChild($box);
1911
2042
  var isBoxModel = $box.offsetWidth == 2;
@@ -1928,7 +2059,7 @@ class DOMUtils extends DOMUtilsEvent {
1928
2059
  * @returns
1929
2060
  */
1930
2061
  function getInputCSS(prop, isNumber) {
1931
- var val = DOMUtilsCore.document
2062
+ var val = DOMUtilsContext.windowApi.document
1932
2063
  .defaultView.getComputedStyle($input, null)
1933
2064
  .getPropertyValue(prop);
1934
2065
  return isNumber ? parseFloat(val) : val;