@whitesev/utils 1.2.1 → 1.3.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.
@@ -1445,124 +1445,206 @@ declare class Utils {
1445
1445
  **/
1446
1446
  waitArrayLoopToEnd(data: any[] | HTMLElement[], handleFunc: Function): Promise<void[]>;
1447
1447
  /**
1448
- * 等待指定元素出现,支持多个selector
1449
- * @param nodeSelectors 一个或多个节点选择器,必须为字符串类型
1448
+ * 等待元素出现
1449
+ * @param selector CSS选择器
1450
+ * @param parent (可选)父元素,默认document
1450
1451
  * @example
1451
- * Utils.waitNode("div.xxx").then( element =>{
1452
- * console.log(element); // div.xxx => HTMLElement
1452
+ * Utils.waitNode("div").then( $div =>{
1453
+ * console.log($div); // div => HTMLDivELement
1453
1454
  * })
1455
+ * Utils.waitNode("div",document).then( $div =>{
1456
+ * console.log($div); // div => HTMLDivELement
1457
+ * })
1458
+ */
1459
+ waitNode<T extends Element>(selector: string, parent?: Node | Element | Document | HTMLElement): Promise<T>;
1460
+ /**
1461
+ * 等待元素出现
1462
+ * @param selectorList CSS选择器数组
1463
+ * @param parent (可选)父元素,默认document
1454
1464
  * @example
1455
- * Utils.waitNode("div.xxx","a.xxx").then( (elementList)=>{
1456
- * console.log(elementList[0]); // div.xxx => HTMLElement
1457
- * console.log(elementList[1]); // a.xxx => HTMLElement
1465
+ * Utils.waitNode(["div"]).then( ([$div]) =>{
1466
+ * console.log($div); // div => HTMLDivELement[]
1467
+ * })
1468
+ * Utils.waitNode(["div"],document).then( ([$div]) =>{
1469
+ * console.log($div); // div => HTMLDivELement[]
1458
1470
  * })
1459
1471
  */
1460
- waitNode<T extends HTMLElement>(nodeSelector: string | [string]): Promise<T>;
1472
+ waitNode<T extends Element[]>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
1461
1473
  /**
1462
- * 等待指定元素出现,支持多个selector
1463
- * @param nodeSelectors 一个或多个节点选择器,必须为字符串类型
1474
+ * 等待元素出现
1475
+ * @param selector CSS选择器
1476
+ * @param parent 父元素,默认document
1477
+ * @param timeout 超时时间,默认0
1464
1478
  * @example
1465
- * Utils.waitNode("div.xxx").then( element =>{
1466
- * console.log(element); // div.xxx => HTMLElement
1479
+ * Utils.waitNode("div",document,1000).then( $div =>{
1480
+ * console.log($div); // $div => HTMLDivELement | null
1467
1481
  * })
1482
+ */
1483
+ waitNode<T extends Element>(selector: string, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1484
+ /**
1485
+ * 等待元素出现
1486
+ * @param selectorList CSS选择器数组
1487
+ * @param parent 父元素,默认document
1488
+ * @param timeout 超时时间,默认0
1468
1489
  * @example
1469
- * Utils.waitNode("div.xxx","a.xxx").then( (elementList)=>{
1470
- * console.log(elementList[0]); // div.xxx => HTMLElement
1471
- * console.log(elementList[1]); // a.xxx => HTMLElement
1490
+ * Utils.waitNode(["div"],document,1000).then( ([$div]) =>{
1491
+ * console.log($div); // $div => HTMLDivELement[] | null
1472
1492
  * })
1473
1493
  */
1474
- waitNode<T extends HTMLElement>(...nodeSelectors: string[]): Promise<T[]>;
1494
+ waitNode<T extends Element[]>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1475
1495
  /**
1476
- * 等待指定元素出现,支持多个selector
1477
- * @param nodeSelectors 一个或多个节点选择器,必须为字符串类型
1496
+ * 等待元素出现
1497
+ * @param selector CSS选择器
1498
+ * @param timeout 超时时间,默认0
1478
1499
  * @example
1479
- * Utils.waitNode("div.xxx").then( element =>{
1480
- * console.log(element); // div.xxx => HTMLElement
1500
+ * Utils.waitNode("div",1000).then( $div =>{
1501
+ * console.log($div); // $div => HTMLDivELement | null
1481
1502
  * })
1503
+ */
1504
+ waitNode<T extends Element>(selector: string, timeout: number): Promise<T | null>;
1505
+ /**
1506
+ * 等待元素出现
1507
+ * @param selectorList CSS选择器数组
1508
+ * @param timeout 超时时间,默认0
1482
1509
  * @example
1483
- * Utils.waitNode("div.xxx","a.xxx").then( (elementList)=>{
1484
- * console.log(elementList[0]); // div.xxx => HTMLElement
1485
- * console.log(elementList[1]); // a.xxx => HTMLElement
1510
+ * Utils.waitNode(["div"],1000).then( [$div] =>{
1511
+ * console.log($div); // $div => HTMLDivELement[] | null
1486
1512
  * })
1487
1513
  */
1488
- waitNode<T extends HTMLElement>(...nodeSelectors: string[]): Promise<T | T[]>;
1514
+ waitNode<T extends Element[]>(selectorList: string[], timeout: number): Promise<T | null>;
1489
1515
  /**
1490
- * 在规定时间内,等待任意元素出现,支持多个selector,如果未出现,则关闭监听
1491
- * @param nodeSelectorsList 一个或多个节点选择器,必须为字符串类型
1492
- * @param maxTime (可选)xx毫秒(ms)后关闭监听,默认:0(ms)
1516
+ * 等待任意元素出现
1517
+ * @param selectorList CSS选择器数组
1518
+ * @param parent (可选)监听的父元素
1493
1519
  * @example
1494
- * Utils.waitNodeWithInterval("a.xxx",30000).then(element=>{
1495
- * console.log(element);
1520
+ * Utils.waitAnyNode(["div","div"]).then( $div =>{
1521
+ * console.log($div); // $div => HTMLDivELement 这里是第一个
1496
1522
  * })
1523
+ * Utils.waitAnyNode(["a","div"],document).then( $a =>{
1524
+ * console.log($a); // $a => HTMLAnchorElement 这里是第一个
1525
+ * })
1526
+ */
1527
+ waitAnyNode<T extends Element>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
1528
+ /**
1529
+ * 等待任意元素出现
1530
+ * @param selectorList CSS选择器数组
1531
+ * @param parent 父元素,默认document
1532
+ * @param timeout 超时时间,默认0
1497
1533
  * @example
1498
- * Utils.waitNodeWithInterval(["div.xxx","a.xxx"],30000).then(elementList=>{
1499
- * console.log(elementList[0]); // div.xxx => HTMLElement
1500
- * console.log(elementList[1]); // a.xxx => HTMLElement
1534
+ * Utils.waitAnyNode(["div","div"],document,10000).then( $div =>{
1535
+ * console.log($div); // $div => HTMLDivELement | null
1501
1536
  * })
1502
1537
  */
1503
- waitNodeWithInterval<T extends HTMLElement>(nodeSelectorsList?: string[] | string, maxTime?: number): Promise<T | T[]>;
1538
+ waitAnyNode<T extends Element>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1504
1539
  /**
1505
- * 等待任意元素出现,支持多个selector
1506
- * @param nodeSelectors 一个或多个节点选择器,必须为字符串类型
1540
+ * 等待任意元素出现
1541
+ * @param selectorList CSS选择器数组
1542
+ * @param timeout 超时时间,默认0
1507
1543
  * @example
1508
- * Utils.waitAnyNode("div.xxx","a.xxx").then( element =>{
1509
- * console.log(element); // a.xxx => HTMLElement
1544
+ * Utils.waitAnyNode(["div","div"],10000).then( $div =>{
1545
+ * console.log($div); // $div => HTMLDivELement | null
1510
1546
  * })
1511
1547
  */
1512
- waitAnyNode<T extends HTMLElement>(...nodeSelectors: any[]): Promise<T>;
1548
+ waitAnyNode<T extends Element>(selectorList: string[], timeout: number): Promise<T | null>;
1513
1549
  /**
1514
- * 等待指定元素出现
1515
- * @param nodeSelectors
1516
- * @returns 当nodeSelectors为数组多个时,
1517
- * 返回如:[ NodeList, NodeList ],
1518
- * 当nodeSelectors为单个时,
1519
- * 返回如:NodeList。
1520
- * NodeList元素与页面存在强绑定,当已获取该NodeList,但是页面中却删除了,该元素在NodeList中会被自动删除
1550
+ * 等待元素数组出现
1551
+ * @param selector CSS选择器
1552
+ * @param parent (可选)监听的父元素
1521
1553
  * @example
1522
- * Utils.waitNodeList("div.xxx").then( nodeList =>{
1523
- * console.log(nodeList) // div.xxx => NodeList
1554
+ * Utils.waitNodeList("div").then( $result =>{
1555
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>
1556
+ * })
1557
+ * Utils.waitNodeList("div",document).then( $result =>{
1558
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>
1524
1559
  * })
1560
+ */
1561
+ waitNodeList<T extends NodeListOf<Element>>(selector: string, parent?: Node | Element | Document | HTMLElement): Promise<T>;
1562
+ /**
1563
+ * 等待元素数组出现
1564
+ * @param selectorList CSS选择器数组
1565
+ * @param parent (可选)监听的父元素
1525
1566
  * @example
1526
- * Utils.waitNodeList("div.xxx","a.xxx").then( nodeListArray =>{
1527
- * console.log(nodeListArray[0]) // div.xxx => NodeList
1528
- * console.log(nodeListArray[1]) // a.xxx => NodeList
1567
+ * Utils.waitNodeList(["div"]).then( $result =>{
1568
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>[]
1529
1569
  * })
1530
1570
  */
1531
- waitNodeList<T extends HTMLElement>(nodeSelector: string): Promise<T>;
1571
+ waitNodeList<T extends NodeListOf<Element>[]>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
1532
1572
  /**
1533
- * 等待指定元素出现,支持多个selector
1534
- * @param nodeSelectors
1535
- * @returns 当nodeSelectors为数组多个时,
1536
- * 返回如:[ NodeList, NodeList ],
1537
- * 当nodeSelectors为单个时,
1538
- * 返回如:NodeList。
1539
- * NodeList元素与页面存在强绑定,当已获取该NodeList,但是页面中却删除了,该元素在NodeList中会被自动删除
1573
+ * 等待元素数组出现
1574
+ * @param selector CSS选择器
1575
+ * @param parent 监听的父元素
1576
+ * @param timeout 超时时间,默认0
1540
1577
  * @example
1541
- * Utils.waitNodeList("div.xxx").then( nodeList =>{
1542
- * console.log(nodeList) // div.xxx => NodeList
1578
+ * Utils.waitNodeList("div",document,10000).then( $result =>{
1579
+ * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1543
1580
  * })
1581
+ */
1582
+ waitNodeList<T extends NodeListOf<Element>>(selector: string, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1583
+ /**
1584
+ * 等待元素数组出现
1585
+ * @param selectorList CSS选择器数组
1586
+ * @param parent 监听的父元素
1587
+ * @param timeout 超时时间,默认0
1544
1588
  * @example
1545
- * Utils.waitNodeList("div.xxx","a.xxx").then( nodeListArray =>{
1546
- * console.log(nodeListArray[0]) // div.xxx => NodeList
1547
- * console.log(nodeListArray[1]) // a.xxx => NodeList
1589
+ * Utils.waitNodeList("div",document,10000).then( $result =>{
1590
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>[] | null
1548
1591
  * })
1549
1592
  */
1550
- waitNodeList<T extends HTMLElement>(...nodeSelectors: string[]): Promise<NodeListOf<T>[]>;
1593
+ waitNodeList<T extends NodeListOf<Element>[]>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1551
1594
  /**
1552
- * 等待任意元素出现,支持多个selector
1553
- * @param nodeSelectors
1554
- * @returns 返回NodeList
1555
- * NodeList元素与页面存在强绑定,当已获取该NodeList,但是页面中却删除了,该元素在NodeList中会被自动删除
1595
+ * 等待元素数组出现
1596
+ * @param selector CSS选择器数组
1597
+ * @param timeout 超时时间,默认0
1556
1598
  * @example
1557
- * Utils.waitAnyNodeList("div.xxx").then( nodeList =>{
1558
- * console.log(nodeList) // div.xxx => NodeList
1599
+ * Utils.waitNodeList("div",10000).then( $result =>{
1600
+ * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1559
1601
  * })
1602
+ */
1603
+ waitNodeList<T extends NodeListOf<Element>>(selector: string[], timeout: number): Promise<T | null>;
1604
+ /**
1605
+ * 等待元素数组出现
1606
+ * @param selectorList CSS选择器数组
1607
+ * @param timeout 超时时间,默认0
1608
+ * @example
1609
+ * Utils.waitNodeList("div",10000).then( $result =>{
1610
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>[] | null
1611
+ * })
1612
+ */
1613
+ waitNodeList<T extends NodeListOf<Element>>(selectorList: string[], timeout: number): Promise<T[] | null>;
1614
+ /**
1615
+ * 等待任意元素数组出现
1616
+ * @param selectorList CSS选择器数组
1617
+ * @param parent (可选)监听的父元素
1618
+ * @example
1619
+ * Utils.waitAnyNodeList(["div","a"]).then( $result =>{
1620
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>
1621
+ * })
1622
+ * Utils.waitAnyNodeList(["div","a"],document).then( $result =>{
1623
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>
1624
+ * })
1625
+ */
1626
+ waitAnyNodeList<T extends Element>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<NodeListOf<T>>;
1627
+ /**
1628
+ * 等待任意元素数组出现
1629
+ * @param selectorList CSS选择器数组
1630
+ * @param parent 父元素,默认document
1631
+ * @param timeout 超时时间,默认0
1632
+ * @example
1633
+ * Utils.waitAnyNodeList(["div","a"],document,10000).then( $result =>{
1634
+ * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1635
+ * })
1636
+ */
1637
+ waitAnyNodeList<T extends Element>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<NodeListOf<T> | null>;
1638
+ /**
1639
+ * 等待任意元素出现
1640
+ * @param selectorList CSS选择器数组
1641
+ * @param timeout 超时时间,默认0
1560
1642
  * @example
1561
- * Utils.waitAnyNodeList("div.xxx","a.xxx").then( nodeList =>{
1562
- * console.log(nodeList) // a.xxx => NodeList
1643
+ * Utils.waitAnyNodeList(["div","div"],10000).then( $result =>{
1644
+ * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1563
1645
  * })
1564
1646
  */
1565
- waitAnyNodeList<T extends HTMLElement>(...nodeSelectors: string[]): Promise<NodeListOf<T>[]>;
1647
+ waitAnyNodeList<T extends Element>(selectorList: string[], timeout: number): Promise<NodeListOf<T> | null>;
1566
1648
  /**
1567
1649
  * 等待对象上的属性出现
1568
1650
  * @param checkObj 检查的对象
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitesev/utils",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "一个常用的工具库",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/node/index.esm.js",