@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.umd.js CHANGED
@@ -4,12 +4,56 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMUtils = factory());
5
5
  })(this, (function () { 'use strict';
6
6
 
7
+ class WindowApi {
8
+ /** 默认的配置 */
9
+ defaultApi = {
10
+ document: document,
11
+ window: window,
12
+ globalThis: globalThis,
13
+ self: self,
14
+ top: top,
15
+ };
16
+ /** 使用的配置 */
17
+ api;
18
+ constructor(option) {
19
+ if (option) {
20
+ if (option.globalThis == null) {
21
+ option.globalThis = option.window;
22
+ }
23
+ if (option.self == null) {
24
+ option.self = option.window;
25
+ }
26
+ }
27
+ if (!option) {
28
+ option = Object.assign({}, this.defaultApi);
29
+ }
30
+ // @ts-ignore
31
+ this.api = Object.assign({}, option);
32
+ }
33
+ get document() {
34
+ return this.api.document;
35
+ }
36
+ get window() {
37
+ return this.api.window;
38
+ }
39
+ get globalThis() {
40
+ return this.api.globalThis;
41
+ }
42
+ get self() {
43
+ return this.api.self;
44
+ }
45
+ get top() {
46
+ return this.api.top;
47
+ }
48
+ }
49
+
7
50
  /** 通用工具类 */
8
51
  const DOMUtilsCommonUtils = {
9
- windowApi: {
10
- window: window,
52
+ windowApi: new WindowApi({
11
53
  document: document,
12
- },
54
+ window: window,
55
+ top: top,
56
+ }),
13
57
  /**
14
58
  * 判断元素是否已显示或已连接
15
59
  * @param element
@@ -115,7 +159,7 @@
115
159
 
116
160
  /* 数据 */
117
161
  const DOMUtilsData = {
118
- /** .on绑定的事件 */
162
+ /** .on添加在元素存储的事件 */
119
163
  SymbolEvents: Symbol("events_" + (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1)),
120
164
  };
121
165
 
@@ -125,40 +169,6 @@
125
169
  },
126
170
  };
127
171
 
128
- class WindowApi {
129
- /** 默认的配置 */
130
- defaultApi = {
131
- document: document,
132
- window: window,
133
- globalThis: globalThis,
134
- self: self,
135
- top: top,
136
- };
137
- /** 使用的配置 */
138
- api;
139
- constructor(option) {
140
- if (!option) {
141
- option = Object.assign({}, this.defaultApi);
142
- }
143
- this.api = Object.assign({}, option);
144
- }
145
- get document() {
146
- return this.api.document;
147
- }
148
- get window() {
149
- return this.api.window;
150
- }
151
- get globalThis() {
152
- return this.api.globalThis;
153
- }
154
- get self() {
155
- return this.api.self;
156
- }
157
- get top() {
158
- return this.api.top;
159
- }
160
- }
161
-
162
172
  class DOMUtilsEvent {
163
173
  windowApi;
164
174
  constructor(windowApiOption) {
@@ -535,7 +545,7 @@
535
545
  trigger(element, eventType, details, useDispatchToTriggerEvent = true) {
536
546
  let DOMUtilsContext = this;
537
547
  if (typeof element === "string") {
538
- element = DOMUtilsContext.windowApi.document.querySelector(element);
548
+ element = DOMUtilsContext.selectorAll(element);
539
549
  }
540
550
  if (element == null) {
541
551
  return;
@@ -635,7 +645,7 @@
635
645
  blur(element, handler, details, useDispatchToTriggerEvent) {
636
646
  let DOMUtilsContext = this;
637
647
  if (typeof element === "string") {
638
- element = DOMUtilsContext.windowApi.document.querySelector(element);
648
+ element = DOMUtilsContext.selectorAll(element);
639
649
  }
640
650
  if (element == null) {
641
651
  return;
@@ -971,7 +981,7 @@
971
981
  super(option);
972
982
  }
973
983
  /** 版本号 */
974
- version = "2024.10.23";
984
+ version = "2024.11.6";
975
985
  attr(element, attrName, attrValue) {
976
986
  let DOMUtilsContext = this;
977
987
  if (typeof element === "string") {
@@ -1468,6 +1478,41 @@
1468
1478
  element.classList.add(itemClassName);
1469
1479
  });
1470
1480
  }
1481
+ /**
1482
+ * 判断元素是否存在className
1483
+ * @param element
1484
+ * @param className
1485
+ */
1486
+ hasClass(element, className) {
1487
+ let DOMUtilsContext = this;
1488
+ if (typeof element === "string") {
1489
+ element = DOMUtilsContext.selectorAll(element);
1490
+ }
1491
+ if (element == null) {
1492
+ return false;
1493
+ }
1494
+ if (isNodeList(element)) {
1495
+ let flag = true;
1496
+ for (let index = 0; index < element.length; index++) {
1497
+ const $ele = element[index];
1498
+ flag = flag && DOMUtilsContext.hasClass($ele, className);
1499
+ }
1500
+ return flag;
1501
+ }
1502
+ if (!element?.classList) {
1503
+ return false;
1504
+ }
1505
+ if (!Array.isArray(className)) {
1506
+ className = className.split(" ");
1507
+ }
1508
+ for (let index = 0; index < className.length; index++) {
1509
+ const item = className[index].trim();
1510
+ if (!element.classList.contains(item)) {
1511
+ return false;
1512
+ }
1513
+ }
1514
+ return true;
1515
+ }
1471
1516
  /**
1472
1517
  * 函数在元素内部末尾添加子元素或HTML字符串
1473
1518
  * @param element 目标元素
@@ -1690,7 +1735,7 @@
1690
1735
  offset(element) {
1691
1736
  let DOMUtilsContext = this;
1692
1737
  if (typeof element === "string") {
1693
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1738
+ element = DOMUtilsContext.selector(element);
1694
1739
  }
1695
1740
  if (element == null) {
1696
1741
  return;
@@ -1706,8 +1751,7 @@
1706
1751
  width(element, isShow = false) {
1707
1752
  let DOMUtilsContext = this;
1708
1753
  if (typeof element === "string") {
1709
- element =
1710
- DOMUtilsContext.windowApi.document.querySelector(element);
1754
+ element = DOMUtilsContext.selector(element);
1711
1755
  }
1712
1756
  if (element == null) {
1713
1757
  return;
@@ -1761,7 +1805,7 @@
1761
1805
  .clientHeight;
1762
1806
  }
1763
1807
  if (typeof element === "string") {
1764
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1808
+ element = DOMUtilsContext.selector(element);
1765
1809
  }
1766
1810
  if (element == null) {
1767
1811
  // @ts-ignore
@@ -1811,7 +1855,7 @@
1811
1855
  return DOMUtilsContext.windowApi.window.innerWidth;
1812
1856
  }
1813
1857
  if (typeof element === "string") {
1814
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1858
+ element = DOMUtilsContext.selector(element);
1815
1859
  }
1816
1860
  if (element == null) {
1817
1861
  // @ts-ignore
@@ -1837,7 +1881,7 @@
1837
1881
  return DOMUtilsContext.windowApi.window.innerHeight;
1838
1882
  }
1839
1883
  if (typeof element === "string") {
1840
- element = DOMUtilsContext.windowApi.document.querySelector(element);
1884
+ element = DOMUtilsContext.selector(element);
1841
1885
  }
1842
1886
  if (element == null) {
1843
1887
  // @ts-ignore
@@ -1960,7 +2004,7 @@
1960
2004
  prev(element) {
1961
2005
  let DOMUtilsContext = this;
1962
2006
  if (typeof element === "string") {
1963
- element = DOMUtilsContext.windowApi.document.querySelector(element);
2007
+ element = DOMUtilsContext.selector(element);
1964
2008
  }
1965
2009
  if (element == null) {
1966
2010
  return;
@@ -1970,7 +2014,7 @@
1970
2014
  next(element) {
1971
2015
  let DOMUtilsContext = this;
1972
2016
  if (typeof element === "string") {
1973
- element = DOMUtilsContext.windowApi.document.querySelector(element);
2017
+ element = DOMUtilsContext.selector(element);
1974
2018
  }
1975
2019
  if (element == null) {
1976
2020
  return;
@@ -1993,7 +2037,7 @@
1993
2037
  siblings(element) {
1994
2038
  let DOMUtilsContext = this;
1995
2039
  if (typeof element === "string") {
1996
- element = DOMUtilsContext.windowApi.document.querySelector(element);
2040
+ element = DOMUtilsContext.selector(element);
1997
2041
  }
1998
2042
  if (element == null) {
1999
2043
  return;
@@ -2014,16 +2058,15 @@
2014
2058
  parent(element) {
2015
2059
  let DOMUtilsContext = this;
2016
2060
  if (typeof element === "string") {
2017
- element = DOMUtilsContext.windowApi.document.querySelector(element);
2061
+ element = DOMUtilsContext.selector(element);
2018
2062
  }
2019
2063
  if (element == null) {
2020
2064
  return;
2021
2065
  }
2022
- if (element instanceof NodeList || element instanceof Array) {
2023
- element = element;
2066
+ if (isNodeList(element)) {
2024
2067
  let resultArray = [];
2025
- element.forEach((eleItem) => {
2026
- resultArray.push(DOMUtilsContext.parent(eleItem));
2068
+ element.forEach(($ele) => {
2069
+ resultArray.push(DOMUtilsContext.parent($ele));
2027
2070
  });
2028
2071
  return resultArray;
2029
2072
  }