zar 0.2.0 → 0.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.
- package/dist/zar.es.js +34 -22
- package/dist/zar.es.js.map +1 -1
- package/dist/zar.iife.js +2 -2
- package/dist/zar.iife.js.map +1 -1
- package/dist/zar.umd.js +2 -2
- package/dist/zar.umd.js.map +1 -1
- package/package.json +2 -2
package/dist/zar.es.js
CHANGED
|
@@ -1349,7 +1349,7 @@ function dbg() {
|
|
|
1349
1349
|
return;
|
|
1350
1350
|
console.debug(...arguments);
|
|
1351
1351
|
}
|
|
1352
|
-
function
|
|
1352
|
+
function warn(msg) {
|
|
1353
1353
|
console.warn(msg);
|
|
1354
1354
|
if (window.Rollbar) {
|
|
1355
1355
|
window.Rollbar.warning(msg);
|
|
@@ -1488,7 +1488,7 @@ function postBeacon(_0) {
|
|
|
1488
1488
|
}
|
|
1489
1489
|
return false;
|
|
1490
1490
|
} catch (e2) {
|
|
1491
|
-
|
|
1491
|
+
warn("postBeacon:");
|
|
1492
1492
|
return false;
|
|
1493
1493
|
}
|
|
1494
1494
|
}
|
|
@@ -1527,6 +1527,7 @@ var NUMBER_POOL_RENEWAL_TIME_MS = 30 * 1e3;
|
|
|
1527
1527
|
var getNumberFailureCount = 0;
|
|
1528
1528
|
var MAX_GET_NUMBER_FAILURES = 3;
|
|
1529
1529
|
var poolIntervals = {};
|
|
1530
|
+
window.zarPoolData = null;
|
|
1530
1531
|
var numberOverlayMap = /* @__PURE__ */ new Map();
|
|
1531
1532
|
function generateVisitId() {
|
|
1532
1533
|
return Date.now().toString(36) + "." + Math.random().toString(36).substring(2);
|
|
@@ -1590,7 +1591,7 @@ function extractPhoneNumber({ elem }) {
|
|
|
1590
1591
|
}
|
|
1591
1592
|
return { text, html, numberText, href, number };
|
|
1592
1593
|
}
|
|
1593
|
-
function overlayPhoneNumber({ elems, number }) {
|
|
1594
|
+
function overlayPhoneNumber({ elems, number, force = false }) {
|
|
1594
1595
|
var origNum;
|
|
1595
1596
|
var overlayNum = number;
|
|
1596
1597
|
if (!number.startsWith("+1")) {
|
|
@@ -1598,17 +1599,23 @@ function overlayPhoneNumber({ elems, number }) {
|
|
|
1598
1599
|
}
|
|
1599
1600
|
for (var i2 = 0; i2 < elems.length; i2++) {
|
|
1600
1601
|
if (numberOverlayMap.has(elems[i2])) {
|
|
1601
|
-
|
|
1602
|
-
|
|
1602
|
+
if (force) {
|
|
1603
|
+
origNum = numberOverlayMap.get(elems[i2]);
|
|
1604
|
+
} else {
|
|
1605
|
+
dbg("element already in overlay map:", elems[i2]);
|
|
1606
|
+
continue;
|
|
1607
|
+
}
|
|
1603
1608
|
}
|
|
1604
1609
|
var elemNum = extractPhoneNumber({ elem: elems[i2] });
|
|
1605
1610
|
if (!origNum) {
|
|
1606
1611
|
origNum = elemNum;
|
|
1607
|
-
} else if (elemNum.number && origNum.number && origNum.number !== elemNum.number) {
|
|
1608
|
-
|
|
1612
|
+
} else if (!force && (elemNum.number && origNum.number) && origNum.number !== elemNum.number) {
|
|
1613
|
+
warn("overlaying multiple numbers with a single number", origNum.number, elemNum.number);
|
|
1609
1614
|
}
|
|
1610
1615
|
dbg("overlaying", overlayNum, "on", elems[i2]);
|
|
1611
|
-
numberOverlayMap.
|
|
1616
|
+
if (!numberOverlayMap.has(elems[i2])) {
|
|
1617
|
+
numberOverlayMap.set(elems[i2], elemNum);
|
|
1618
|
+
}
|
|
1612
1619
|
if (elemNum.href) {
|
|
1613
1620
|
elems[i2].href = "tel:" + overlayNum;
|
|
1614
1621
|
}
|
|
@@ -1687,8 +1694,6 @@ function getPoolStats(_0) {
|
|
|
1687
1694
|
}
|
|
1688
1695
|
function renewTrackingPool() {
|
|
1689
1696
|
return __async(this, arguments, function* ({
|
|
1690
|
-
poolId,
|
|
1691
|
-
number,
|
|
1692
1697
|
overlayElements,
|
|
1693
1698
|
apiUrl = getDefaultApiUrl(),
|
|
1694
1699
|
contextCallback = null
|
|
@@ -1697,14 +1702,16 @@ function renewTrackingPool() {
|
|
|
1697
1702
|
if (contextCallback) {
|
|
1698
1703
|
context = contextCallback() || {};
|
|
1699
1704
|
}
|
|
1705
|
+
const poolId = window.zarPoolData.pool_id;
|
|
1706
|
+
const number = window.zarPoolData.number;
|
|
1700
1707
|
try {
|
|
1701
1708
|
var resp = yield getPoolNumber({ poolId, apiUrl, number, context });
|
|
1702
1709
|
} catch (e2) {
|
|
1703
1710
|
var msg = "error getting number: " + JSON.stringify(e2);
|
|
1704
|
-
|
|
1711
|
+
warn(msg);
|
|
1705
1712
|
getNumberFailureCount++;
|
|
1706
1713
|
if (getNumberFailureCount >= MAX_GET_NUMBER_FAILURES) {
|
|
1707
|
-
|
|
1714
|
+
warn("max failures, stopping pool");
|
|
1708
1715
|
clearPoolIntervals();
|
|
1709
1716
|
if (overlayElements) {
|
|
1710
1717
|
revertOverlayNumbers({ elems: overlayElements });
|
|
@@ -1713,8 +1720,14 @@ function renewTrackingPool() {
|
|
|
1713
1720
|
return { status: NUMBER_POOL_ERROR, msg };
|
|
1714
1721
|
}
|
|
1715
1722
|
if (resp.status === NUMBER_POOL_SUCCESS && resp.number) {
|
|
1723
|
+
var force = false;
|
|
1724
|
+
if (resp.number !== window.zarPoolData.number) {
|
|
1725
|
+
warn("number changed from " + window.zarPoolData.number + " to " + resp.number);
|
|
1726
|
+
window.zarPoolData.number = resp.number;
|
|
1727
|
+
force = true;
|
|
1728
|
+
}
|
|
1716
1729
|
if (overlayElements) {
|
|
1717
|
-
overlayPhoneNumber({ elems: overlayElements, number: resp.number });
|
|
1730
|
+
overlayPhoneNumber({ elems: overlayElements, number: resp.number, force });
|
|
1718
1731
|
}
|
|
1719
1732
|
} else {
|
|
1720
1733
|
if (overlayElements) {
|
|
@@ -1738,7 +1751,7 @@ function initTrackingPool() {
|
|
|
1738
1751
|
var msg;
|
|
1739
1752
|
if (!poolConfig || !poolConfig.poolId || !poolConfig.overlayQuerySelector || !apiUrl) {
|
|
1740
1753
|
msg = "missing pool config: " + JSON.stringify(poolConfig);
|
|
1741
|
-
|
|
1754
|
+
warn(msg);
|
|
1742
1755
|
if (poolConfig.initCallback) {
|
|
1743
1756
|
poolConfig.initCallback({ status: NUMBER_POOL_ERROR, msg });
|
|
1744
1757
|
}
|
|
@@ -1751,7 +1764,7 @@ function initTrackingPool() {
|
|
|
1751
1764
|
var poolId = getPoolId(poolConfig.poolId);
|
|
1752
1765
|
if (!poolId) {
|
|
1753
1766
|
msg = "no pool ID";
|
|
1754
|
-
|
|
1767
|
+
warn(msg);
|
|
1755
1768
|
if (poolConfig.initCallback) {
|
|
1756
1769
|
poolConfig.initCallback({ status: NUMBER_POOL_ERROR, msg });
|
|
1757
1770
|
}
|
|
@@ -1762,19 +1775,20 @@ function initTrackingPool() {
|
|
|
1762
1775
|
poolData = yield getPoolNumber({ poolId, apiUrl, number: null, context });
|
|
1763
1776
|
} catch (e2) {
|
|
1764
1777
|
msg = "error getting number on init: " + JSON.stringify(e2);
|
|
1765
|
-
|
|
1778
|
+
warn(msg);
|
|
1766
1779
|
if (poolConfig.initCallback) {
|
|
1767
1780
|
poolConfig.initCallback({ status: NUMBER_POOL_ERROR, msg });
|
|
1768
1781
|
}
|
|
1769
1782
|
return poolIntervals;
|
|
1770
1783
|
}
|
|
1771
1784
|
}
|
|
1785
|
+
window.zarPoolData = poolData;
|
|
1772
1786
|
if (poolData && poolData.status === NUMBER_POOL_SUCCESS && poolData.number) {
|
|
1773
1787
|
afterDOMContentLoaded(function() {
|
|
1774
1788
|
var overlayElements = document.querySelectorAll(poolConfig.overlayQuerySelector);
|
|
1775
1789
|
if (!overlayElements) {
|
|
1776
1790
|
var msg2 = "No elems found for:" + poolConfig.overlayQuerySelector;
|
|
1777
|
-
|
|
1791
|
+
warn(msg2);
|
|
1778
1792
|
if (poolConfig.initCallback) {
|
|
1779
1793
|
poolConfig.initCallback({ status: NUMBER_POOL_ERROR, msg: msg2 });
|
|
1780
1794
|
}
|
|
@@ -1784,15 +1798,13 @@ function initTrackingPool() {
|
|
|
1784
1798
|
var interval = setInterval(function() {
|
|
1785
1799
|
try {
|
|
1786
1800
|
renewTrackingPool({
|
|
1787
|
-
poolId: poolData.pool_id,
|
|
1788
|
-
number: poolData.number,
|
|
1789
1801
|
overlayElements,
|
|
1790
1802
|
apiUrl,
|
|
1791
1803
|
contextCallback: poolConfig.contextCallback
|
|
1792
1804
|
});
|
|
1793
1805
|
} catch (e2) {
|
|
1794
1806
|
var msg3 = "error on interval: " + JSON.stringify(e2);
|
|
1795
|
-
|
|
1807
|
+
warn(msg3);
|
|
1796
1808
|
}
|
|
1797
1809
|
}, poolConfig.renewalInterval || NUMBER_POOL_RENEWAL_TIME_MS);
|
|
1798
1810
|
poolIntervals[poolData.pool_id] = interval;
|
|
@@ -1836,7 +1848,7 @@ function zar({ apiUrl, poolConfig }) {
|
|
|
1836
1848
|
}
|
|
1837
1849
|
}
|
|
1838
1850
|
} catch (e2) {
|
|
1839
|
-
|
|
1851
|
+
warn("error getting pool id: " + JSON.stringify(e2));
|
|
1840
1852
|
}
|
|
1841
1853
|
return payload;
|
|
1842
1854
|
},
|
|
@@ -1853,7 +1865,7 @@ function zar({ apiUrl, poolConfig }) {
|
|
|
1853
1865
|
} catch (e2) {
|
|
1854
1866
|
tries++;
|
|
1855
1867
|
if (tries >= maxTries) {
|
|
1856
|
-
|
|
1868
|
+
warn("error posting page: " + JSON.stringify(e2));
|
|
1857
1869
|
throw e2;
|
|
1858
1870
|
}
|
|
1859
1871
|
yield new Promise((r2) => setTimeout(r2, 1e3));
|