@whitesev/domutils 1.3.7 → 1.4.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.
package/dist/index.esm.js CHANGED
@@ -1,9 +1,53 @@
1
+ class WindowApi {
2
+ /** 默认的配置 */
3
+ defaultApi = {
4
+ document: document,
5
+ window: window,
6
+ globalThis: globalThis,
7
+ self: self,
8
+ top: top,
9
+ };
10
+ /** 使用的配置 */
11
+ api;
12
+ constructor(option) {
13
+ if (option) {
14
+ if (option.globalThis == null) {
15
+ option.globalThis = option.window;
16
+ }
17
+ if (option.self == null) {
18
+ option.self = option.window;
19
+ }
20
+ }
21
+ if (!option) {
22
+ option = Object.assign({}, this.defaultApi);
23
+ }
24
+ // @ts-ignore
25
+ this.api = Object.assign({}, option);
26
+ }
27
+ get document() {
28
+ return this.api.document;
29
+ }
30
+ get window() {
31
+ return this.api.window;
32
+ }
33
+ get globalThis() {
34
+ return this.api.globalThis;
35
+ }
36
+ get self() {
37
+ return this.api.self;
38
+ }
39
+ get top() {
40
+ return this.api.top;
41
+ }
42
+ }
43
+
1
44
  /** 通用工具类 */
2
45
  const DOMUtilsCommonUtils = {
3
- windowApi: {
4
- window: window,
46
+ windowApi: new WindowApi({
5
47
  document: document,
6
- },
48
+ window: window,
49
+ top: top,
50
+ }),
7
51
  /**
8
52
  * 判断元素是否已显示或已连接
9
53
  * @param element
@@ -109,7 +153,7 @@ const DOMUtilsCommonUtils = {
109
153
 
110
154
  /* 数据 */
111
155
  const DOMUtilsData = {
112
- /** .on绑定的事件 */
156
+ /** .on添加在元素存储的事件 */
113
157
  SymbolEvents: Symbol("events_" + (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1)),
114
158
  };
115
159
 
@@ -119,40 +163,6 @@ const OriginPrototype = {
119
163
  },
120
164
  };
121
165
 
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
-
156
166
  class DOMUtilsEvent {
157
167
  windowApi;
158
168
  constructor(windowApiOption) {
@@ -529,7 +539,7 @@ class DOMUtilsEvent {
529
539
  trigger(element, eventType, details, useDispatchToTriggerEvent = true) {
530
540
  let DOMUtilsContext = this;
531
541
  if (typeof element === "string") {
532
- element = DOMUtilsContext.windowApi.document.querySelector(element);
542
+ element = DOMUtilsContext.selectorAll(element);
533
543
  }
534
544
  if (element == null) {
535
545
  return;
@@ -629,7 +639,7 @@ class DOMUtilsEvent {
629
639
  blur(element, handler, details, useDispatchToTriggerEvent) {
630
640
  let DOMUtilsContext = this;
631
641
  if (typeof element === "string") {
632
- element = DOMUtilsContext.windowApi.document.querySelector(element);
642
+ element = DOMUtilsContext.selectorAll(element);
633
643
  }
634
644
  if (element == null) {
635
645
  return;
@@ -965,7 +975,7 @@ class DOMUtils extends DOMUtilsEvent {
965
975
  super(option);
966
976
  }
967
977
  /** 版本号 */
968
- version = "2024.10.23";
978
+ version = "2024.11.6";
969
979
  attr(element, attrName, attrValue) {
970
980
  let DOMUtilsContext = this;
971
981
  if (typeof element === "string") {
@@ -1462,6 +1472,41 @@ class DOMUtils extends DOMUtilsEvent {
1462
1472
  element.classList.add(itemClassName);
1463
1473
  });
1464
1474
  }
1475
+ /**
1476
+ * 判断元素是否存在className
1477
+ * @param element
1478
+ * @param className
1479
+ */
1480
+ hasClass(element, className) {
1481
+ let DOMUtilsContext = this;
1482
+ if (typeof element === "string") {
1483
+ element = DOMUtilsContext.selectorAll(element);
1484
+ }
1485
+ if (element == null) {
1486
+ return false;
1487
+ }
1488
+ if (isNodeList(element)) {
1489
+ let flag = true;
1490
+ for (let index = 0; index < element.length; index++) {
1491
+ const $ele = element[index];
1492
+ flag = flag && DOMUtilsContext.hasClass($ele, className);
1493
+ }
1494
+ return flag;
1495
+ }
1496
+ if (!element?.classList) {
1497
+ return false;
1498
+ }
1499
+ if (!Array.isArray(className)) {
1500
+ className = className.split(" ");
1501
+ }
1502
+ for (let index = 0; index < className.length; index++) {
1503
+ const item = className[index].trim();
1504
+ if (!element.classList.contains(item)) {
1505
+ return false;
1506
+ }
1507
+ }
1508
+ return true;
1509
+ }
1465
1510
  /**
1466
1511
  * 函数在元素内部末尾添加子元素或HTML字符串
1467
1512
  * @param element 目标元素
@@ -1684,7 +1729,7 @@ class DOMUtils extends DOMUtilsEvent {
1684
1729
  offset(element) {
1685
1730
  let DOMUtilsContext = this;
1686
1731
  if (typeof element === "string") {
1687
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1732
+ element = DOMUtilsContext.selector(element);
1688
1733
  }
1689
1734
  if (element == null) {
1690
1735
  return;
@@ -1700,8 +1745,7 @@ class DOMUtils extends DOMUtilsEvent {
1700
1745
  width(element, isShow = false) {
1701
1746
  let DOMUtilsContext = this;
1702
1747
  if (typeof element === "string") {
1703
- element =
1704
- DOMUtilsContext.windowApi.document.querySelector(element);
1748
+ element = DOMUtilsContext.selector(element);
1705
1749
  }
1706
1750
  if (element == null) {
1707
1751
  return;
@@ -1755,7 +1799,7 @@ class DOMUtils extends DOMUtilsEvent {
1755
1799
  .clientHeight;
1756
1800
  }
1757
1801
  if (typeof element === "string") {
1758
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1802
+ element = DOMUtilsContext.selector(element);
1759
1803
  }
1760
1804
  if (element == null) {
1761
1805
  // @ts-ignore
@@ -1805,7 +1849,7 @@ class DOMUtils extends DOMUtilsEvent {
1805
1849
  return DOMUtilsContext.windowApi.window.innerWidth;
1806
1850
  }
1807
1851
  if (typeof element === "string") {
1808
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1852
+ element = DOMUtilsContext.selector(element);
1809
1853
  }
1810
1854
  if (element == null) {
1811
1855
  // @ts-ignore
@@ -1831,7 +1875,7 @@ class DOMUtils extends DOMUtilsEvent {
1831
1875
  return DOMUtilsContext.windowApi.window.innerHeight;
1832
1876
  }
1833
1877
  if (typeof element === "string") {
1834
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1878
+ element = DOMUtilsContext.selector(element);
1835
1879
  }
1836
1880
  if (element == null) {
1837
1881
  // @ts-ignore
@@ -1954,7 +1998,7 @@ class DOMUtils extends DOMUtilsEvent {
1954
1998
  prev(element) {
1955
1999
  let DOMUtilsContext = this;
1956
2000
  if (typeof element === "string") {
1957
- element = DOMUtilsContext.windowApi.document.querySelector(element);
2001
+ element = DOMUtilsContext.selector(element);
1958
2002
  }
1959
2003
  if (element == null) {
1960
2004
  return;
@@ -1964,7 +2008,7 @@ class DOMUtils extends DOMUtilsEvent {
1964
2008
  next(element) {
1965
2009
  let DOMUtilsContext = this;
1966
2010
  if (typeof element === "string") {
1967
- element = DOMUtilsContext.windowApi.document.querySelector(element);
2011
+ element = DOMUtilsContext.selector(element);
1968
2012
  }
1969
2013
  if (element == null) {
1970
2014
  return;
@@ -1987,7 +2031,7 @@ class DOMUtils extends DOMUtilsEvent {
1987
2031
  siblings(element) {
1988
2032
  let DOMUtilsContext = this;
1989
2033
  if (typeof element === "string") {
1990
- element = DOMUtilsContext.windowApi.document.querySelector(element);
2034
+ element = DOMUtilsContext.selector(element);
1991
2035
  }
1992
2036
  if (element == null) {
1993
2037
  return;
@@ -2008,16 +2052,15 @@ class DOMUtils extends DOMUtilsEvent {
2008
2052
  parent(element) {
2009
2053
  let DOMUtilsContext = this;
2010
2054
  if (typeof element === "string") {
2011
- element = DOMUtilsContext.windowApi.document.querySelector(element);
2055
+ element = DOMUtilsContext.selector(element);
2012
2056
  }
2013
2057
  if (element == null) {
2014
2058
  return;
2015
2059
  }
2016
- if (element instanceof NodeList || element instanceof Array) {
2017
- element = element;
2060
+ if (isNodeList(element)) {
2018
2061
  let resultArray = [];
2019
- element.forEach((eleItem) => {
2020
- resultArray.push(DOMUtilsContext.parent(eleItem));
2062
+ element.forEach(($ele) => {
2063
+ resultArray.push(DOMUtilsContext.parent($ele));
2021
2064
  });
2022
2065
  return resultArray;
2023
2066
  }