@whitesev/utils 1.2.2 → 1.3.1

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.
@@ -34,22 +34,88 @@ export declare interface AnyObject {
34
34
  toString(): string;
35
35
  }
36
36
  export declare interface Vue2Context extends AnyObject {
37
- _isVue: true;
37
+ $attrs: AnyObject;
38
+ $children: Vue2Context[];
39
+ $createElement: (...args: any[]) => any;
40
+ $el: HTMLElement;
41
+ $listeners: AnyObject;
38
42
  $options: AnyObject;
39
43
  $parent: Vue2Context;
44
+ $refs: AnyObject;
40
45
  $root: Vue2Context;
41
- $children: Vue2Context[];
42
- $vnode: AnyObject;
43
- $slots: AnyObject;
44
46
  $scopedSlots: AnyObject;
45
- $attrs: AnyObject;
46
- $listeners: AnyObject;
47
+ $slots: AnyObject;
47
48
  $store: AnyObject;
49
+ $vnode: AnyObject;
50
+ _data: AnyObject;
51
+ _directInactive: boolean;
52
+ _events: AnyObject;
53
+ _hasHookEvent: boolean;
54
+ _isBeingDestroyed: boolean;
55
+ _isDestroyed: boolean;
56
+ _isMounted: boolean;
57
+ _isVue: boolean;
58
+ $data: AnyObject;
59
+ $isServer: boolean;
60
+ $props: AnyObject;
61
+ $route: AnyObject & {
62
+ fullPath: string;
63
+ hash: string;
64
+ matched: AnyObject[];
65
+ meta: AnyObject;
66
+ name: string;
67
+ params: AnyObject;
68
+ path: string;
69
+ query: AnyObject;
70
+ };
71
+ $router: AnyObject & {
72
+ afterHooks: AnyObject[];
73
+ app: Vue2Context;
74
+ apps: Vue2Context[];
75
+ beforeHooks: ((...args: any[]) => any)[];
76
+ fallback: boolean;
77
+ history: AnyObject & {
78
+ base: string;
79
+ current: AnyObject;
80
+ listeners: AnyObject[];
81
+ router: Vue2Context["$router"];
82
+ /**
83
+ *
84
+ * @param delta 访问的距离。如果 delta < 0 则后退相应数量的记录,如果 > 0 则前进。
85
+ * @param triggerListeners 是否应该触发连接到该历史的监听器
86
+ * @returns
87
+ */
88
+ go: (delta: number, triggerListeners?: boolean) => void;
89
+ /**
90
+ *
91
+ * @param to 要设置的地址
92
+ * @param data 可选的 HistoryState 以关联该导航记录
93
+ * @returns
94
+ */
95
+ push: (to: string, data?: AnyObject) => void;
96
+ /**
97
+ *
98
+ * @param to 要设置的地址
99
+ * @param data 可选的 HistoryState 以关联该导航记录
100
+ * @returns
101
+ */
102
+ replace: (to: string, data?: AnyObject) => void;
103
+ };
104
+ matcher: AnyObject & {
105
+ addRoute: (...args: any[]) => any;
106
+ addRoutes: (...args: any[]) => any;
107
+ getRoutes: () => any;
108
+ match: (...args: any[]) => any;
109
+ };
110
+ mode: string;
111
+ resolveHooks: ((...args: any[]) => any)[];
112
+ currentRoute: AnyObject;
113
+ };
114
+ $ssrContext: AnyObject;
48
115
  $watch: (key: string | string[], handler: (this: any, newVal: any, oldVal: any) => void, options?: {
49
116
  immediate?: boolean;
50
117
  deep?: boolean;
51
118
  }) => void;
52
- $el: Element;
53
119
  }
54
120
  declare class Utils {
55
121
  /** 版本号 */
@@ -1445,143 +1511,209 @@ declare class Utils {
1445
1511
  **/
1446
1512
  waitArrayLoopToEnd(data: any[] | HTMLElement[], handleFunc: Function): Promise<void[]>;
1447
1513
  /**
1448
- * 等待指定元素出现,支持多个selector
1449
- * @param nodeSelectors 一个或多个节点选择器,必须为字符串类型
1514
+ * 等待元素出现
1515
+ * @param selector CSS选择器
1516
+ * @param parent (可选)父元素,默认document
1450
1517
  * @example
1451
- * Utils.waitNode("div.xxx").then( element =>{
1452
- * console.log(element); // div.xxx => HTMLElement
1518
+ * Utils.waitNode("div").then( $div =>{
1519
+ * console.log($div); // div => HTMLDivELement
1520
+ * })
1521
+ * Utils.waitNode("div",document).then( $div =>{
1522
+ * console.log($div); // div => HTMLDivELement
1453
1523
  * })
1524
+ */
1525
+ waitNode<T extends Element>(selector: string, parent?: Node | Element | Document | HTMLElement): Promise<T>;
1526
+ /**
1527
+ * 等待元素出现
1528
+ * @param selectorList CSS选择器数组
1529
+ * @param parent (可选)父元素,默认document
1530
+ * @example
1531
+ * Utils.waitNode(["div"]).then( ([$div]) =>{
1532
+ * console.log($div); // div => HTMLDivELement[]
1533
+ * })
1534
+ * Utils.waitNode(["div"],document).then( ([$div]) =>{
1535
+ * console.log($div); // div => HTMLDivELement[]
1536
+ * })
1537
+ */
1538
+ waitNode<T extends Element[]>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
1539
+ /**
1540
+ * 等待元素出现
1541
+ * @param selector CSS选择器
1542
+ * @param parent 父元素,默认document
1543
+ * @param timeout 超时时间,默认0
1454
1544
  * @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
1545
+ * Utils.waitNode("div",document,1000).then( $div =>{
1546
+ * console.log($div); // $div => HTMLDivELement | null
1458
1547
  * })
1459
1548
  */
1460
- waitNode<T extends HTMLElement>(nodeSelector: string | [string]): Promise<T>;
1549
+ waitNode<T extends Element>(selector: string, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1461
1550
  /**
1462
- * 等待指定元素出现,支持多个selector
1463
- * @param nodeSelectors 一个或多个节点选择器,必须为字符串类型
1551
+ * 等待元素出现
1552
+ * @param selectorList CSS选择器数组
1553
+ * @param parent 父元素,默认document
1554
+ * @param timeout 超时时间,默认0
1464
1555
  * @example
1465
- * Utils.waitNode("div.xxx").then( element =>{
1466
- * console.log(element); // div.xxx => HTMLElement
1556
+ * Utils.waitNode(["div"],document,1000).then( ([$div]) =>{
1557
+ * console.log($div); // $div => HTMLDivELement[] | null
1467
1558
  * })
1559
+ */
1560
+ waitNode<T extends Element[]>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1561
+ /**
1562
+ * 等待元素出现
1563
+ * @param selector CSS选择器
1564
+ * @param timeout 超时时间,默认0
1468
1565
  * @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
1566
+ * Utils.waitNode("div",1000).then( $div =>{
1567
+ * console.log($div); // $div => HTMLDivELement | null
1472
1568
  * })
1473
1569
  */
1474
- waitNode<T extends HTMLElement>(...nodeSelectors: string[]): Promise<T[]>;
1570
+ waitNode<T extends Element>(selector: string, timeout: number): Promise<T | null>;
1475
1571
  /**
1476
- * 等待指定元素出现,支持多个selector
1477
- * @param nodeSelectors 一个或多个节点选择器,必须为字符串类型
1572
+ * 等待元素出现
1573
+ * @param selectorList CSS选择器数组
1574
+ * @param timeout 超时时间,默认0
1478
1575
  * @example
1479
- * Utils.waitNode("div.xxx").then( element =>{
1480
- * console.log(element); // div.xxx => HTMLElement
1576
+ * Utils.waitNode(["div"],1000).then( [$div] =>{
1577
+ * console.log($div); // $div => HTMLDivELement[] | null
1481
1578
  * })
1579
+ */
1580
+ waitNode<T extends Element[]>(selectorList: string[], timeout: number): Promise<T | null>;
1581
+ /**
1582
+ * 等待任意元素出现
1583
+ * @param selectorList CSS选择器数组
1584
+ * @param parent (可选)监听的父元素
1482
1585
  * @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
1586
+ * Utils.waitAnyNode(["div","div"]).then( $div =>{
1587
+ * console.log($div); // $div => HTMLDivELement 这里是第一个
1588
+ * })
1589
+ * Utils.waitAnyNode(["a","div"],document).then( $a =>{
1590
+ * console.log($a); // $a => HTMLAnchorElement 这里是第一个
1486
1591
  * })
1487
1592
  */
1488
- waitNode<T extends HTMLElement>(...nodeSelectors: string[]): Promise<T | T[]>;
1593
+ waitAnyNode<T extends Element>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
1489
1594
  /**
1490
- * 在规定时间内,等待任意元素出现,支持多个selector,如果未出现,则关闭监听
1491
- * @param nodeSelectorsList 一个或多个节点选择器,必须为字符串类型
1492
- * @param maxTime (可选)xx毫秒(ms)后关闭监听,默认:0(ms)
1595
+ * 等待任意元素出现
1596
+ * @param selectorList CSS选择器数组
1597
+ * @param parent 父元素,默认document
1598
+ * @param timeout 超时时间,默认0
1493
1599
  * @example
1494
- * Utils.waitNodeWithInterval("a.xxx",30000).then(element=>{
1495
- * console.log(element);
1600
+ * Utils.waitAnyNode(["div","div"],document,10000).then( $div =>{
1601
+ * console.log($div); // $div => HTMLDivELement | null
1496
1602
  * })
1603
+ */
1604
+ waitAnyNode<T extends Element>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1605
+ /**
1606
+ * 等待任意元素出现
1607
+ * @param selectorList CSS选择器数组
1608
+ * @param timeout 超时时间,默认0
1497
1609
  * @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
1610
+ * Utils.waitAnyNode(["div","div"],10000).then( $div =>{
1611
+ * console.log($div); // $div => HTMLDivELement | null
1501
1612
  * })
1502
1613
  */
1503
- waitNodeWithInterval<T extends HTMLElement>(nodeSelectorsList?: string[] | string, maxTime?: number): Promise<T | T[]>;
1614
+ waitAnyNode<T extends Element>(selectorList: string[], timeout: number): Promise<T | null>;
1504
1615
  /**
1505
- * 等待任意元素出现,支持多个selector
1506
- * @param nodeSelectors 一个或多个节点选择器,必须为字符串类型
1616
+ * 等待元素数组出现
1617
+ * @param selector CSS选择器
1618
+ * @param parent (可选)监听的父元素
1507
1619
  * @example
1508
- * Utils.waitAnyNode("div.xxx","a.xxx").then( element =>{
1509
- * console.log(element); // a.xxx => HTMLElement
1620
+ * Utils.waitNodeList("div").then( $result =>{
1621
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>
1622
+ * })
1623
+ * Utils.waitNodeList("div",document).then( $result =>{
1624
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>
1510
1625
  * })
1511
1626
  */
1512
- waitAnyNode<T extends HTMLElement>(...nodeSelectors: any[]): Promise<T>;
1627
+ waitNodeList<T extends NodeListOf<Element>>(selector: string, parent?: Node | Element | Document | HTMLElement): Promise<T>;
1513
1628
  /**
1514
- * 等待指定元素出现
1515
- * @param nodeSelectors
1516
- * @returns 当nodeSelectors为数组多个时,
1517
- * 返回如:[ NodeList, NodeList ],
1518
- * 当nodeSelectors为单个时,
1519
- * 返回如:NodeList。
1520
- * NodeList元素与页面存在强绑定,当已获取该NodeList,但是页面中却删除了,该元素在NodeList中会被自动删除
1629
+ * 等待元素数组出现
1630
+ * @param selectorList CSS选择器数组
1631
+ * @param parent (可选)监听的父元素
1521
1632
  * @example
1522
- * Utils.waitNodeList("div.xxx").then( nodeList =>{
1523
- * console.log(nodeList) // div.xxx => NodeList
1633
+ * Utils.waitNodeList(["div"]).then( $result =>{
1634
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>[]
1635
+ * })
1636
+ * Utils.waitNodeList(["div"],document).then( $result =>{
1637
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>[]
1524
1638
  * })
1639
+ */
1640
+ waitNodeList<T extends NodeListOf<Element>[]>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<T>;
1641
+ /**
1642
+ * 等待元素数组出现
1643
+ * @param selector CSS选择器
1644
+ * @param parent 监听的父元素
1645
+ * @param timeout 超时时间,默认0
1525
1646
  * @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
1647
+ * Utils.waitNodeList("div",document,10000).then( $result =>{
1648
+ * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1529
1649
  * })
1530
1650
  */
1531
- waitNodeList<T extends HTMLElement>(nodeSelector: string): Promise<T>;
1651
+ waitNodeList<T extends NodeListOf<Element>>(selector: string, parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1532
1652
  /**
1533
- * 等待指定元素出现
1534
- * @param nodeSelectors
1535
- * @returns 当nodeSelectors为数组多个时,
1536
- * 返回如:[ NodeList, NodeList ],
1537
- * 当nodeSelectors为单个时,
1538
- * 返回如:NodeList。
1539
- * NodeList元素与页面存在强绑定,当已获取该NodeList,但是页面中却删除了,该元素在NodeList中会被自动删除
1653
+ * 等待元素数组出现
1654
+ * @param selectorList CSS选择器数组
1655
+ * @param parent 监听的父元素
1656
+ * @param timeout 超时时间,默认0
1540
1657
  * @example
1541
- * Utils.waitNodeList("div.xxx").then( nodeList =>{
1542
- * console.log(nodeList) // div.xxx => NodeList
1658
+ * Utils.waitNodeList(["div"],document,10000).then( $result =>{
1659
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>[] | null
1543
1660
  * })
1661
+ */
1662
+ waitNodeList<T extends NodeListOf<Element>[]>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<T | null>;
1663
+ /**
1664
+ * 等待元素数组出现
1665
+ * @param selector CSS选择器数组
1666
+ * @param timeout 超时时间,默认0
1544
1667
  * @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
1668
+ * Utils.waitNodeList("div",10000).then( $result =>{
1669
+ * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1548
1670
  * })
1549
1671
  */
1550
- waitNodeList<T extends HTMLElement[]>(nodeSelector: string): Promise<T>;
1672
+ waitNodeList<T extends NodeListOf<Element>>(selector: string[], timeout: number): Promise<T | null>;
1551
1673
  /**
1552
- * 等待指定元素出现,支持多个selector
1553
- * @param nodeSelectors
1554
- * @returns 当nodeSelectors为数组多个时,
1555
- * 返回如:[ NodeList, NodeList ],
1556
- * 当nodeSelectors为单个时,
1557
- * 返回如:NodeList。
1558
- * NodeList元素与页面存在强绑定,当已获取该NodeList,但是页面中却删除了,该元素在NodeList中会被自动删除
1674
+ * 等待元素数组出现
1675
+ * @param selectorList CSS选择器数组
1676
+ * @param timeout 超时时间,默认0
1559
1677
  * @example
1560
- * Utils.waitNodeList("div.xxx").then( nodeList =>{
1561
- * console.log(nodeList) // div.xxx => NodeList
1678
+ * Utils.waitNodeList(["div"],10000).then( $result =>{
1679
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>[] | null
1562
1680
  * })
1681
+ */
1682
+ waitNodeList<T extends NodeListOf<Element>>(selectorList: string[], timeout: number): Promise<T[] | null>;
1683
+ /**
1684
+ * 等待任意元素数组出现
1685
+ * @param selectorList CSS选择器数组
1686
+ * @param parent (可选)监听的父元素
1563
1687
  * @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
1688
+ * Utils.waitAnyNodeList(["div","a"]).then( $result =>{
1689
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>
1690
+ * })
1691
+ * Utils.waitAnyNodeList(["div","a"],document).then( $result =>{
1692
+ * console.log($result); // $result => NodeListOf<HTMLDivElement>
1567
1693
  * })
1568
1694
  */
1569
- waitNodeList<T extends HTMLElement>(...nodeSelectors: string[]): Promise<NodeListOf<T>[]>;
1695
+ waitAnyNodeList<T extends Element>(selectorList: string[], parent?: Node | Element | Document | HTMLElement): Promise<NodeListOf<T>>;
1570
1696
  /**
1571
- * 等待任意元素出现,支持多个selector
1572
- * @param nodeSelectors
1573
- * @returns 返回NodeList
1574
- * NodeList元素与页面存在强绑定,当已获取该NodeList,但是页面中却删除了,该元素在NodeList中会被自动删除
1697
+ * 等待任意元素数组出现
1698
+ * @param selectorList CSS选择器数组
1699
+ * @param parent 父元素,默认document
1700
+ * @param timeout 超时时间,默认0
1575
1701
  * @example
1576
- * Utils.waitAnyNodeList("div.xxx").then( nodeList =>{
1577
- * console.log(nodeList) // div.xxx => NodeList
1702
+ * Utils.waitAnyNodeList(["div","a"],document,10000).then( $result =>{
1703
+ * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1578
1704
  * })
1705
+ */
1706
+ waitAnyNodeList<T extends Element>(selectorList: string[], parent: Node | Element | Document | HTMLElement, timeout: number): Promise<NodeListOf<T> | null>;
1707
+ /**
1708
+ * 等待任意元素出现
1709
+ * @param selectorList CSS选择器数组
1710
+ * @param timeout 超时时间,默认0
1579
1711
  * @example
1580
- * Utils.waitAnyNodeList("div.xxx","a.xxx").then( nodeList =>{
1581
- * console.log(nodeList) // a.xxx => NodeList
1712
+ * Utils.waitAnyNodeList(["div","div"],10000).then( $result =>{
1713
+ * console.log($result); // $result => NodeListOf<HTMLDivElement> | null
1582
1714
  * })
1583
1715
  */
1584
- waitAnyNodeList<T extends HTMLElement>(...nodeSelectors: string[]): Promise<NodeListOf<T>[]>;
1716
+ waitAnyNodeList<T extends Element>(selectorList: string[], timeout: number): Promise<NodeListOf<T> | null>;
1585
1717
  /**
1586
1718
  * 等待对象上的属性出现
1587
1719
  * @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.1",
4
4
  "description": "一个常用的工具库",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/node/index.esm.js",