@whitesev/utils 1.2.2 → 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,143 +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 这里是第一个
1522
+ * })
1523
+ * Utils.waitAnyNode(["a","div"],document).then( $a =>{
1524
+ * console.log($a); // $a => HTMLAnchorElement 这里是第一个
1496
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 (可选)监听的父元素
1566
+ * @example
1567
+ * Utils.waitNodeList(["div"]).then( $result =>{
1568
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>[]
1569
+ * })
1570
+ */
1571
+ waitNodeList<T extends NodeListOf<Element>[]>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
1572
+ /**
1573
+ * 等待元素数组出现
1574
+ * @param selector CSS选择器
1575
+ * @param parent 监听的父元素
1576
+ * @param timeout 超时时间,默认0
1525
1577
  * @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
1578
+ * Utils.waitNodeList("div",document,10000).then( $result =>{
1579
+ * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1529
1580
  * })
1530
1581
  */
1531
- waitNodeList<T extends HTMLElement>(nodeSelector: string): Promise<T>;
1582
+ waitNodeList<T extends NodeListOf<Element>>(selector: string, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1532
1583
  /**
1533
- * 等待指定元素出现
1534
- * @param nodeSelectors
1535
- * @returns 当nodeSelectors为数组多个时,
1536
- * 返回如:[ NodeList, NodeList ],
1537
- * 当nodeSelectors为单个时,
1538
- * 返回如:NodeList。
1539
- * NodeList元素与页面存在强绑定,当已获取该NodeList,但是页面中却删除了,该元素在NodeList中会被自动删除
1584
+ * 等待元素数组出现
1585
+ * @param selectorList CSS选择器数组
1586
+ * @param parent 监听的父元素
1587
+ * @param timeout 超时时间,默认0
1540
1588
  * @example
1541
- * Utils.waitNodeList("div.xxx").then( nodeList =>{
1542
- * console.log(nodeList) // div.xxx => NodeList
1589
+ * Utils.waitNodeList("div",document,10000).then( $result =>{
1590
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>[] | null
1543
1591
  * })
1592
+ */
1593
+ waitNodeList<T extends NodeListOf<Element>[]>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1594
+ /**
1595
+ * 等待元素数组出现
1596
+ * @param selector CSS选择器数组
1597
+ * @param timeout 超时时间,默认0
1544
1598
  * @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
1599
+ * Utils.waitNodeList("div",10000).then( $result =>{
1600
+ * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1548
1601
  * })
1549
1602
  */
1550
- waitNodeList<T extends HTMLElement[]>(nodeSelector: string): Promise<T>;
1603
+ waitNodeList<T extends NodeListOf<Element>>(selector: string[], timeout: number): Promise<T | null>;
1551
1604
  /**
1552
- * 等待指定元素出现,支持多个selector
1553
- * @param nodeSelectors
1554
- * @returns 当nodeSelectors为数组多个时,
1555
- * 返回如:[ NodeList, NodeList ],
1556
- * 当nodeSelectors为单个时,
1557
- * 返回如:NodeList。
1558
- * NodeList元素与页面存在强绑定,当已获取该NodeList,但是页面中却删除了,该元素在NodeList中会被自动删除
1605
+ * 等待元素数组出现
1606
+ * @param selectorList CSS选择器数组
1607
+ * @param timeout 超时时间,默认0
1559
1608
  * @example
1560
- * Utils.waitNodeList("div.xxx").then( nodeList =>{
1561
- * console.log(nodeList) // div.xxx => NodeList
1609
+ * Utils.waitNodeList("div",10000).then( $result =>{
1610
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>[] | null
1562
1611
  * })
1612
+ */
1613
+ waitNodeList<T extends NodeListOf<Element>>(selectorList: string[], timeout: number): Promise<T[] | null>;
1614
+ /**
1615
+ * 等待任意元素数组出现
1616
+ * @param selectorList CSS选择器数组
1617
+ * @param parent (可选)监听的父元素
1563
1618
  * @example
1564
- * Utils.waitNodeList("div.xxx","a.xxx").then( nodeListArray =>{
1565
- * console.log(nodeListArray[0]) // div.xxx => NodeList
1566
- * console.log(nodeListArray[1]) // a.xxx => NodeList
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>
1567
1624
  * })
1568
1625
  */
1569
- waitNodeList<T extends HTMLElement>(...nodeSelectors: string[]): Promise<NodeListOf<T>[]>;
1626
+ waitAnyNodeList<T extends Element>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<NodeListOf<T>>;
1570
1627
  /**
1571
- * 等待任意元素出现,支持多个selector
1572
- * @param nodeSelectors
1573
- * @returns 返回NodeList
1574
- * NodeList元素与页面存在强绑定,当已获取该NodeList,但是页面中却删除了,该元素在NodeList中会被自动删除
1628
+ * 等待任意元素数组出现
1629
+ * @param selectorList CSS选择器数组
1630
+ * @param parent 父元素,默认document
1631
+ * @param timeout 超时时间,默认0
1575
1632
  * @example
1576
- * Utils.waitAnyNodeList("div.xxx").then( nodeList =>{
1577
- * console.log(nodeList) // div.xxx => NodeList
1633
+ * Utils.waitAnyNodeList(["div","a"],document,10000).then( $result =>{
1634
+ * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1578
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
1579
1642
  * @example
1580
- * Utils.waitAnyNodeList("div.xxx","a.xxx").then( nodeList =>{
1581
- * console.log(nodeList) // a.xxx => NodeList
1643
+ * Utils.waitAnyNodeList(["div","div"],10000).then( $result =>{
1644
+ * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1582
1645
  * })
1583
1646
  */
1584
- waitAnyNodeList<T extends HTMLElement>(...nodeSelectors: string[]): Promise<NodeListOf<T>[]>;
1647
+ waitAnyNodeList<T extends Element>(selectorList: string[], timeout: number): Promise<NodeListOf<T> | null>;
1585
1648
  /**
1586
1649
  * 等待对象上的属性出现
1587
1650
  * @param checkObj 检查的对象
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitesev/utils",
3
- "version": "1.2.2",
3
+ "version": "1.3.0",
4
4
  "description": "一个常用的工具库",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/node/index.esm.js",