@whitesev/domutils 1.5.5 → 1.5.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.
@@ -463,6 +463,13 @@ System.register('DOMUtils', [], (function (exports) {
463
463
  globalThis.clearInterval(timeId);
464
464
  }
465
465
  },
466
+ /**
467
+ * 判断是否是元素列表
468
+ * @param $ele
469
+ */
470
+ isNodeList($ele) {
471
+ return Array.isArray($ele) || $ele instanceof NodeList;
472
+ },
466
473
  };
467
474
 
468
475
  /* 数据 */
@@ -589,12 +596,12 @@ System.register('DOMUtils', [], (function (exports) {
589
596
  : elementItem;
590
597
  let findValue = selectorList.find((selectorItem) => {
591
598
  // 判断目标元素是否匹配选择器
592
- if (eventTarget?.matches(selectorItem)) {
599
+ if (DOMUtilsContext.matches(eventTarget, selectorItem)) {
593
600
  /* 当前目标可以被selector所匹配到 */
594
601
  return true;
595
602
  }
596
603
  /* 在上层与主元素之间寻找可以被selector所匹配到的 */
597
- let $closestMatches = eventTarget?.closest(selectorItem);
604
+ let $closestMatches = DOMUtilsContext.closest(eventTarget, selectorItem);
598
605
  if ($closestMatches && totalParent?.contains($closestMatches)) {
599
606
  eventTarget = $closestMatches;
600
607
  return true;
@@ -976,7 +983,7 @@ System.register('DOMUtils', [], (function (exports) {
976
983
  if (element == null) {
977
984
  return;
978
985
  }
979
- if (isNodeList(element)) {
986
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
980
987
  // 设置
981
988
  element.forEach(($ele) => {
982
989
  DOMUtilsContext.click($ele, handler, details, useDispatchToTriggerEvent);
@@ -1012,7 +1019,7 @@ System.register('DOMUtils', [], (function (exports) {
1012
1019
  if (element == null) {
1013
1020
  return;
1014
1021
  }
1015
- if (isNodeList(element)) {
1022
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1016
1023
  // 设置
1017
1024
  element.forEach(($ele) => {
1018
1025
  DOMUtilsContext.focus($ele, handler, details, useDispatchToTriggerEvent);
@@ -1048,7 +1055,7 @@ System.register('DOMUtils', [], (function (exports) {
1048
1055
  if (element == null) {
1049
1056
  return;
1050
1057
  }
1051
- if (isNodeList(element)) {
1058
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1052
1059
  // 设置
1053
1060
  element.forEach(($ele) => {
1054
1061
  DOMUtilsContext.focus($ele, handler, details, useDispatchToTriggerEvent);
@@ -1084,7 +1091,7 @@ System.register('DOMUtils', [], (function (exports) {
1084
1091
  if (element == null) {
1085
1092
  return;
1086
1093
  }
1087
- if (isNodeList(element)) {
1094
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1088
1095
  // 设置
1089
1096
  element.forEach(($ele) => {
1090
1097
  DOMUtilsContext.hover($ele, handler, option);
@@ -1117,7 +1124,7 @@ System.register('DOMUtils', [], (function (exports) {
1117
1124
  if (typeof element === "string") {
1118
1125
  element = DOMUtilsContext.selectorAll(element);
1119
1126
  }
1120
- if (isNodeList(element)) {
1127
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1121
1128
  // 设置
1122
1129
  element.forEach(($ele) => {
1123
1130
  DOMUtilsContext.keyup($ele, handler, option);
@@ -1149,7 +1156,7 @@ System.register('DOMUtils', [], (function (exports) {
1149
1156
  if (typeof element === "string") {
1150
1157
  element = DOMUtilsContext.selectorAll(element);
1151
1158
  }
1152
- if (isNodeList(element)) {
1159
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1153
1160
  // 设置
1154
1161
  element.forEach(($ele) => {
1155
1162
  DOMUtilsContext.keydown($ele, handler, option);
@@ -1181,7 +1188,7 @@ System.register('DOMUtils', [], (function (exports) {
1181
1188
  if (typeof element === "string") {
1182
1189
  element = DOMUtilsContext.selectorAll(element);
1183
1190
  }
1184
- if (isNodeList(element)) {
1191
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1185
1192
  // 设置
1186
1193
  element.forEach(($ele) => {
1187
1194
  DOMUtilsContext.keypress($ele, handler, option);
@@ -1335,21 +1342,121 @@ System.register('DOMUtils', [], (function (exports) {
1335
1342
  return Array.from(context.windowApi.document.querySelectorAll(selector));
1336
1343
  }
1337
1344
  }
1345
+ /**
1346
+ * 匹配元素,可使用以下的额外语法
1347
+ */
1348
+ matches($el, selector) {
1349
+ selector = selector.trim();
1350
+ if ($el == null) {
1351
+ return false;
1352
+ }
1353
+ if (selector.match(/[^\s]{1}:empty$/gi)) {
1354
+ // empty 语法
1355
+ selector = selector.replace(/:empty$/gi, "");
1356
+ return $el.matches(selector) && $el?.innerHTML?.trim() === "";
1357
+ }
1358
+ else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/i) ||
1359
+ selector.match(/[^\s]{1}:contains\('(.*)'\)$/i)) {
1360
+ // contains 语法
1361
+ let textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
1362
+ let text = textMatch[2];
1363
+ selector = selector.replace(/:contains\(("|')(.*)("|')\)$/gi, "");
1364
+ // @ts-ignore
1365
+ let content = $el?.textContent || $el?.innerText;
1366
+ if (typeof content !== "string") {
1367
+ content = "";
1368
+ }
1369
+ return $el.matches(selector) && content?.includes(text);
1370
+ }
1371
+ else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/i) ||
1372
+ selector.match(/[^\s]{1}:regexp\('(.*)'\)$/i)) {
1373
+ // regexp 语法
1374
+ let textMatch = selector.match(/:regexp\(("|')(.*)("|')\)$/i);
1375
+ let pattern = textMatch[2];
1376
+ let flagMatch = pattern.match(/("|'),[\s]*("|')([igm]{0,3})$/i);
1377
+ let flags = "";
1378
+ if (flagMatch) {
1379
+ pattern = pattern.replace(/("|'),[\s]*("|')([igm]{0,3})$/gi, "");
1380
+ flags = flagMatch[3];
1381
+ }
1382
+ let regexp = new RegExp(pattern, flags);
1383
+ selector = selector.replace(/:regexp\(("|')(.*)("|')\)$/gi, "");
1384
+ // @ts-ignore
1385
+ let content = $el?.textContent || $el?.innerText;
1386
+ if (typeof content !== "string") {
1387
+ content = "";
1388
+ }
1389
+ return $el.matches(selector) && Boolean(content?.match(regexp));
1390
+ }
1391
+ else {
1392
+ // 普通语法
1393
+ return $el.matches(selector);
1394
+ }
1395
+ }
1396
+ closest($el, selector) {
1397
+ selector = selector.trim();
1398
+ if (selector.match(/[^\s]{1}:empty$/gi)) {
1399
+ // empty 语法
1400
+ selector = selector.replace(/:empty$/gi, "");
1401
+ let $closest = $el?.closest(selector);
1402
+ if ($closest && $closest?.innerHTML?.trim() === "") {
1403
+ return $closest;
1404
+ }
1405
+ return null;
1406
+ }
1407
+ else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/i) ||
1408
+ selector.match(/[^\s]{1}:contains\('(.*)'\)$/i)) {
1409
+ // contains 语法
1410
+ let textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
1411
+ let text = textMatch[2];
1412
+ selector = selector.replace(/:contains\(("|')(.*)("|')\)$/gi, "");
1413
+ let $closest = $el?.closest(selector);
1414
+ if ($closest) {
1415
+ // @ts-ignore
1416
+ let content = $el?.textContent || $el?.innerText;
1417
+ if (typeof content === "string" && content.includes(text)) {
1418
+ return $closest;
1419
+ }
1420
+ }
1421
+ return null;
1422
+ }
1423
+ else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/i) ||
1424
+ selector.match(/[^\s]{1}:regexp\('(.*)'\)$/i)) {
1425
+ // regexp 语法
1426
+ let textMatch = selector.match(/:regexp\(("|')(.*)("|')\)$/i);
1427
+ let pattern = textMatch[2];
1428
+ let flagMatch = pattern.match(/("|'),[\s]*("|')([igm]{0,3})$/i);
1429
+ let flags = "";
1430
+ if (flagMatch) {
1431
+ pattern = pattern.replace(/("|'),[\s]*("|')([igm]{0,3})$/gi, "");
1432
+ flags = flagMatch[3];
1433
+ }
1434
+ let regexp = new RegExp(pattern, flags);
1435
+ selector = selector.replace(/:regexp\(("|')(.*)("|')\)$/gi, "");
1436
+ let $closest = $el?.closest(selector);
1437
+ if ($closest) {
1438
+ // @ts-ignore
1439
+ let content = $el?.textContent || $el?.innerText;
1440
+ if (typeof content === "string" && content.match(regexp)) {
1441
+ return $closest;
1442
+ }
1443
+ }
1444
+ return null;
1445
+ }
1446
+ else {
1447
+ // 普通语法
1448
+ let $closest = $el?.closest(selector);
1449
+ return $closest;
1450
+ }
1451
+ }
1338
1452
  }
1339
1453
 
1340
- /**
1341
- * 判断是否是元素列表
1342
- * @param $ele
1343
- */
1344
- const isNodeList = ($ele) => {
1345
- return Array.isArray($ele) || $ele instanceof NodeList;
1346
- };
1347
1454
  class DOMUtils extends DOMUtilsEvent {
1348
1455
  constructor(option) {
1349
1456
  super(option);
1350
1457
  }
1351
1458
  /** 版本号 */
1352
- version = "2025.5.26";
1459
+ version = "2025.5.30";
1353
1460
  attr(element, attrName, attrValue) {
1354
1461
  let DOMUtilsContext = this;
1355
1462
  if (typeof element === "string") {
@@ -1358,7 +1465,7 @@ System.register('DOMUtils', [], (function (exports) {
1358
1465
  if (element == null) {
1359
1466
  return;
1360
1467
  }
1361
- if (isNodeList(element)) {
1468
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1362
1469
  if (attrValue == null) {
1363
1470
  // 获取属性
1364
1471
  return DOMUtilsContext.attr(element[0], attrName, attrValue);
@@ -1468,7 +1575,7 @@ System.register('DOMUtils', [], (function (exports) {
1468
1575
  if (element == null) {
1469
1576
  return;
1470
1577
  }
1471
- if (isNodeList(element)) {
1578
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1472
1579
  if (typeof property === "string") {
1473
1580
  if (value == null) {
1474
1581
  // 获取属性
@@ -1535,7 +1642,7 @@ System.register('DOMUtils', [], (function (exports) {
1535
1642
  if (element == null) {
1536
1643
  return;
1537
1644
  }
1538
- if (isNodeList(element)) {
1645
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1539
1646
  if (text == null) {
1540
1647
  // 获取
1541
1648
  return DOMUtilsContext.text(element[0]);
@@ -1571,7 +1678,7 @@ System.register('DOMUtils', [], (function (exports) {
1571
1678
  if (element == null) {
1572
1679
  return;
1573
1680
  }
1574
- if (isNodeList(element)) {
1681
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1575
1682
  if (html == null) {
1576
1683
  // 获取
1577
1684
  return DOMUtilsContext.html(element[0]);
@@ -1641,7 +1748,7 @@ System.register('DOMUtils', [], (function (exports) {
1641
1748
  if (element == null) {
1642
1749
  return;
1643
1750
  }
1644
- if (isNodeList(element)) {
1751
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1645
1752
  if (value == null) {
1646
1753
  // 获取
1647
1754
  return DOMUtilsContext.val(element[0]);
@@ -1683,7 +1790,7 @@ System.register('DOMUtils', [], (function (exports) {
1683
1790
  if (element == null) {
1684
1791
  return;
1685
1792
  }
1686
- if (isNodeList(element)) {
1793
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1687
1794
  if (propValue == null) {
1688
1795
  // 获取
1689
1796
  return DOMUtilsContext.prop(element[0], propName);
@@ -1725,7 +1832,7 @@ System.register('DOMUtils', [], (function (exports) {
1725
1832
  if (element == null) {
1726
1833
  return;
1727
1834
  }
1728
- if (isNodeList(element)) {
1835
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1729
1836
  // 设置
1730
1837
  element.forEach(($ele) => {
1731
1838
  DOMUtilsContext.removeAttr($ele, attrName);
@@ -1751,7 +1858,7 @@ System.register('DOMUtils', [], (function (exports) {
1751
1858
  if (element == null) {
1752
1859
  return;
1753
1860
  }
1754
- if (isNodeList(element)) {
1861
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1755
1862
  // 设置
1756
1863
  element.forEach(($ele) => {
1757
1864
  DOMUtilsContext.removeClass($ele, className);
@@ -1788,7 +1895,7 @@ System.register('DOMUtils', [], (function (exports) {
1788
1895
  if (element == null) {
1789
1896
  return;
1790
1897
  }
1791
- if (isNodeList(element)) {
1898
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1792
1899
  // 设置
1793
1900
  element.forEach(($ele) => {
1794
1901
  DOMUtilsContext.removeProp($ele, propName);
@@ -1814,7 +1921,7 @@ System.register('DOMUtils', [], (function (exports) {
1814
1921
  if (element == null) {
1815
1922
  return;
1816
1923
  }
1817
- if (isNodeList(element)) {
1924
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1818
1925
  // 设置
1819
1926
  element.forEach(($ele) => {
1820
1927
  DOMUtilsContext.replaceWith($ele, newElement);
@@ -1843,7 +1950,7 @@ System.register('DOMUtils', [], (function (exports) {
1843
1950
  if (element == null) {
1844
1951
  return;
1845
1952
  }
1846
- if (isNodeList(element)) {
1953
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1847
1954
  // 设置
1848
1955
  element.forEach(($ele) => {
1849
1956
  DOMUtilsContext.addClass($ele, className);
@@ -1873,7 +1980,7 @@ System.register('DOMUtils', [], (function (exports) {
1873
1980
  if (element == null) {
1874
1981
  return false;
1875
1982
  }
1876
- if (isNodeList(element)) {
1983
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1877
1984
  let flag = true;
1878
1985
  for (let index = 0; index < element.length; index++) {
1879
1986
  const $ele = element[index];
@@ -1912,7 +2019,7 @@ System.register('DOMUtils', [], (function (exports) {
1912
2019
  if (element == null) {
1913
2020
  return;
1914
2021
  }
1915
- if (isNodeList(element)) {
2022
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1916
2023
  // 设置
1917
2024
  element.forEach(($ele) => {
1918
2025
  DOMUtilsContext.append($ele, content);
@@ -1959,7 +2066,7 @@ System.register('DOMUtils', [], (function (exports) {
1959
2066
  if (element == null) {
1960
2067
  return;
1961
2068
  }
1962
- if (isNodeList(element)) {
2069
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
1963
2070
  // 设置
1964
2071
  element.forEach(($ele) => {
1965
2072
  DOMUtilsContext.prepend($ele, content);
@@ -1996,7 +2103,7 @@ System.register('DOMUtils', [], (function (exports) {
1996
2103
  if (element == null) {
1997
2104
  return;
1998
2105
  }
1999
- if (isNodeList(element)) {
2106
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
2000
2107
  // 设置
2001
2108
  element.forEach(($ele) => {
2002
2109
  DOMUtilsContext.after($ele, content);
@@ -2035,7 +2142,7 @@ System.register('DOMUtils', [], (function (exports) {
2035
2142
  if (element == null) {
2036
2143
  return;
2037
2144
  }
2038
- if (isNodeList(element)) {
2145
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
2039
2146
  // 设置
2040
2147
  element.forEach(($ele) => {
2041
2148
  DOMUtilsContext.before($ele, content);
@@ -2072,7 +2179,7 @@ System.register('DOMUtils', [], (function (exports) {
2072
2179
  if (element == null) {
2073
2180
  return;
2074
2181
  }
2075
- if (isNodeList(element)) {
2182
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
2076
2183
  element.forEach(($ele) => {
2077
2184
  DOMUtilsContext.remove($ele);
2078
2185
  });
@@ -2096,7 +2203,7 @@ System.register('DOMUtils', [], (function (exports) {
2096
2203
  if (element == null) {
2097
2204
  return;
2098
2205
  }
2099
- if (isNodeList(element)) {
2206
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
2100
2207
  // 设置
2101
2208
  element.forEach(($ele) => {
2102
2209
  DOMUtilsContext.empty($ele);
@@ -2303,7 +2410,7 @@ System.register('DOMUtils', [], (function (exports) {
2303
2410
  if (element == null) {
2304
2411
  return;
2305
2412
  }
2306
- if (isNodeList(element)) {
2413
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
2307
2414
  // 设置
2308
2415
  element.forEach(($ele) => {
2309
2416
  DOMUtilsContext.animate($ele, styles, duration, callback);
@@ -2365,7 +2472,7 @@ System.register('DOMUtils', [], (function (exports) {
2365
2472
  if (element == null) {
2366
2473
  return;
2367
2474
  }
2368
- if (isNodeList(element)) {
2475
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
2369
2476
  // 设置
2370
2477
  element.forEach(($ele) => {
2371
2478
  DOMUtilsContext.wrap($ele, wrapperHTML);
@@ -2445,7 +2552,7 @@ System.register('DOMUtils', [], (function (exports) {
2445
2552
  if (element == null) {
2446
2553
  return;
2447
2554
  }
2448
- if (isNodeList(element)) {
2555
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
2449
2556
  let resultArray = [];
2450
2557
  element.forEach(($ele) => {
2451
2558
  resultArray.push(DOMUtilsContext.parent($ele));
@@ -2624,7 +2731,7 @@ System.register('DOMUtils', [], (function (exports) {
2624
2731
  if (typeof element === "string") {
2625
2732
  element = DOMUtilsContext.selectorAll(element);
2626
2733
  }
2627
- if (isNodeList(element)) {
2734
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
2628
2735
  // 设置
2629
2736
  element.forEach(($ele) => {
2630
2737
  DOMUtilsContext.fadeIn($ele, duration, callback);
@@ -2675,7 +2782,7 @@ System.register('DOMUtils', [], (function (exports) {
2675
2782
  if (typeof element === "string") {
2676
2783
  element = DOMUtilsContext.selectorAll(element);
2677
2784
  }
2678
- if (isNodeList(element)) {
2785
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
2679
2786
  // 设置
2680
2787
  element.forEach(($ele) => {
2681
2788
  DOMUtilsContext.fadeOut($ele, duration, callback);
@@ -2721,7 +2828,7 @@ System.register('DOMUtils', [], (function (exports) {
2721
2828
  if (element == null) {
2722
2829
  return;
2723
2830
  }
2724
- if (isNodeList(element)) {
2831
+ if (DOMUtilsCommonUtils.isNodeList(element)) {
2725
2832
  // 设置
2726
2833
  element.forEach(($ele) => {
2727
2834
  DOMUtilsContext.toggle($ele);