clarity-js 0.7.33 → 0.7.36
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/build/clarity.extended.js +1 -1
- package/build/clarity.insight.js +1 -1
- package/build/clarity.js +50 -47
- package/build/clarity.min.js +1 -1
- package/build/clarity.module.js +50 -47
- package/build/clarity.performance.js +1 -1
- package/package.json +1 -1
- package/src/core/version.ts +1 -1
- package/src/insight/blank.ts +2 -0
- package/src/insight/style.ts +4 -4
- package/src/layout/dom.ts +5 -0
- package/src/layout/encode.ts +4 -5
- package/src/layout/style.ts +33 -28
package/build/clarity.module.js
CHANGED
|
@@ -160,7 +160,7 @@ function stop$F() {
|
|
|
160
160
|
startTime = 0;
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
-
var version$1 = "0.7.
|
|
163
|
+
var version$1 = "0.7.36";
|
|
164
164
|
|
|
165
165
|
// tslint:disable: no-bitwise
|
|
166
166
|
function hash (input, precision) {
|
|
@@ -361,7 +361,7 @@ function redact$1(value) {
|
|
|
361
361
|
return array ? array.join("" /* Data.Constant.Empty */) : value;
|
|
362
362
|
}
|
|
363
363
|
|
|
364
|
-
var state$
|
|
364
|
+
var state$b = null;
|
|
365
365
|
var buffer = null;
|
|
366
366
|
var update$2 = false;
|
|
367
367
|
function start$H() {
|
|
@@ -372,7 +372,7 @@ function reset$s() {
|
|
|
372
372
|
// Baseline state holds the previous values - if it is updated in the current payload,
|
|
373
373
|
// reset the state to current value after sending the previous state
|
|
374
374
|
if (update$2) {
|
|
375
|
-
state$
|
|
375
|
+
state$b = { time: time(), event: 4 /* Event.Baseline */, data: {
|
|
376
376
|
visible: buffer.visible,
|
|
377
377
|
docWidth: buffer.docWidth,
|
|
378
378
|
docHeight: buffer.docHeight,
|
|
@@ -448,7 +448,7 @@ var baseline = /*#__PURE__*/Object.freeze({
|
|
|
448
448
|
compute: compute$e,
|
|
449
449
|
reset: reset$s,
|
|
450
450
|
start: start$H,
|
|
451
|
-
get state () { return state$
|
|
451
|
+
get state () { return state$b; },
|
|
452
452
|
stop: stop$E,
|
|
453
453
|
track: track$8,
|
|
454
454
|
visibility: visibility
|
|
@@ -1358,6 +1358,11 @@ function remove(id, source) {
|
|
|
1358
1358
|
}
|
|
1359
1359
|
}
|
|
1360
1360
|
function removeNodeFromNodesMap(id) {
|
|
1361
|
+
// Shadow dom roots shouldn't be deleted,
|
|
1362
|
+
// we should keep listening to the mutations there even they're not rendered in the DOM.
|
|
1363
|
+
if (nodesMap.get(id).nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
|
|
1364
|
+
return;
|
|
1365
|
+
}
|
|
1361
1366
|
nodesMap.delete(id);
|
|
1362
1367
|
var value = id in values ? values[id] : null;
|
|
1363
1368
|
if (value && value.children) {
|
|
@@ -1502,7 +1507,7 @@ function run() {
|
|
|
1502
1507
|
});
|
|
1503
1508
|
}
|
|
1504
1509
|
}
|
|
1505
|
-
function state$
|
|
1510
|
+
function state$a(timer) {
|
|
1506
1511
|
var id = key(timer);
|
|
1507
1512
|
if (id in tracker) {
|
|
1508
1513
|
var elapsed = performance.now() - tracker[id].start;
|
|
@@ -1691,11 +1696,11 @@ function stop$v() {
|
|
|
1691
1696
|
reset$k();
|
|
1692
1697
|
}
|
|
1693
1698
|
|
|
1694
|
-
var
|
|
1699
|
+
var sheetAdoptionState = [];
|
|
1700
|
+
var sheetUpdateState = [];
|
|
1695
1701
|
var replace = null;
|
|
1696
1702
|
var replaceSync = null;
|
|
1697
1703
|
function start$w() {
|
|
1698
|
-
reset$j();
|
|
1699
1704
|
if (replace === null) {
|
|
1700
1705
|
replace = CSSStyleSheet.prototype.replace;
|
|
1701
1706
|
CSSStyleSheet.prototype.replace = function () {
|
|
@@ -1726,7 +1731,8 @@ function compute$8() {
|
|
|
1726
1731
|
checkDocumentStyles(document);
|
|
1727
1732
|
}
|
|
1728
1733
|
function reset$j() {
|
|
1729
|
-
|
|
1734
|
+
sheetAdoptionState = [];
|
|
1735
|
+
sheetUpdateState = [];
|
|
1730
1736
|
}
|
|
1731
1737
|
function stop$u() {
|
|
1732
1738
|
reset$j();
|
|
@@ -1830,19 +1836,19 @@ function encode$4 (type, timer, ts) {
|
|
|
1830
1836
|
case 8 /* Event.Document */: return [3 /*break*/, 1];
|
|
1831
1837
|
case 7 /* Event.Region */: return [3 /*break*/, 2];
|
|
1832
1838
|
case 45 /* Event.StyleSheetAdoption */: return [3 /*break*/, 3];
|
|
1833
|
-
case 46 /* Event.StyleSheetUpdate */: return [3 /*break*/,
|
|
1834
|
-
case 44 /* Event.Animation */: return [3 /*break*/,
|
|
1835
|
-
case 5 /* Event.Discover */: return [3 /*break*/,
|
|
1836
|
-
case 6 /* Event.Mutation */: return [3 /*break*/,
|
|
1839
|
+
case 46 /* Event.StyleSheetUpdate */: return [3 /*break*/, 3];
|
|
1840
|
+
case 44 /* Event.Animation */: return [3 /*break*/, 4];
|
|
1841
|
+
case 5 /* Event.Discover */: return [3 /*break*/, 5];
|
|
1842
|
+
case 6 /* Event.Mutation */: return [3 /*break*/, 5];
|
|
1837
1843
|
}
|
|
1838
|
-
return [3 /*break*/,
|
|
1844
|
+
return [3 /*break*/, 12];
|
|
1839
1845
|
case 1:
|
|
1840
1846
|
d = data$c;
|
|
1841
1847
|
tokens.push(d.width);
|
|
1842
1848
|
tokens.push(d.height);
|
|
1843
1849
|
track$8(type, d.width, d.height);
|
|
1844
1850
|
queue(tokens);
|
|
1845
|
-
return [3 /*break*/,
|
|
1851
|
+
return [3 /*break*/, 12];
|
|
1846
1852
|
case 2:
|
|
1847
1853
|
for (_i = 0, _b = state$8; _i < _b.length; _i++) {
|
|
1848
1854
|
r = _b[_i];
|
|
@@ -1854,9 +1860,9 @@ function encode$4 (type, timer, ts) {
|
|
|
1854
1860
|
queue(tokens);
|
|
1855
1861
|
}
|
|
1856
1862
|
reset$h();
|
|
1857
|
-
return [3 /*break*/,
|
|
1863
|
+
return [3 /*break*/, 12];
|
|
1858
1864
|
case 3:
|
|
1859
|
-
for (_c = 0, _d =
|
|
1865
|
+
for (_c = 0, _d = sheetAdoptionState; _c < _d.length; _c++) {
|
|
1860
1866
|
entry = _d[_c];
|
|
1861
1867
|
tokens = [entry.time, entry.event];
|
|
1862
1868
|
tokens.push(entry.data.id);
|
|
@@ -1864,10 +1870,7 @@ function encode$4 (type, timer, ts) {
|
|
|
1864
1870
|
tokens.push(entry.data.newIds);
|
|
1865
1871
|
queue(tokens);
|
|
1866
1872
|
}
|
|
1867
|
-
|
|
1868
|
-
return [3 /*break*/, 13];
|
|
1869
|
-
case 4:
|
|
1870
|
-
for (_e = 0, _f = state$a; _e < _f.length; _e++) {
|
|
1873
|
+
for (_e = 0, _f = sheetUpdateState; _e < _f.length; _e++) {
|
|
1871
1874
|
entry = _f[_e];
|
|
1872
1875
|
tokens = [entry.time, entry.event];
|
|
1873
1876
|
tokens.push(entry.data.id);
|
|
@@ -1876,8 +1879,8 @@ function encode$4 (type, timer, ts) {
|
|
|
1876
1879
|
queue(tokens);
|
|
1877
1880
|
}
|
|
1878
1881
|
reset$j();
|
|
1879
|
-
|
|
1880
|
-
case
|
|
1882
|
+
return [3 /*break*/, 12];
|
|
1883
|
+
case 4:
|
|
1881
1884
|
for (_g = 0, _h = state$9; _g < _h.length; _g++) {
|
|
1882
1885
|
entry = _h[_g];
|
|
1883
1886
|
tokens = [entry.time, entry.event];
|
|
@@ -1890,28 +1893,28 @@ function encode$4 (type, timer, ts) {
|
|
|
1890
1893
|
queue(tokens);
|
|
1891
1894
|
}
|
|
1892
1895
|
reset$i();
|
|
1893
|
-
return [3 /*break*/,
|
|
1894
|
-
case
|
|
1896
|
+
return [3 /*break*/, 12];
|
|
1897
|
+
case 5:
|
|
1895
1898
|
// Check if we are operating within the context of the current page
|
|
1896
|
-
if (state$
|
|
1897
|
-
return [3 /*break*/,
|
|
1899
|
+
if (state$a(timer) === 2 /* Task.Stop */) {
|
|
1900
|
+
return [3 /*break*/, 12];
|
|
1898
1901
|
}
|
|
1899
1902
|
values = updates$2();
|
|
1900
|
-
if (!(values.length > 0)) return [3 /*break*/,
|
|
1903
|
+
if (!(values.length > 0)) return [3 /*break*/, 11];
|
|
1901
1904
|
_j = 0, values_1 = values;
|
|
1902
|
-
_l.label =
|
|
1903
|
-
case
|
|
1904
|
-
if (!(_j < values_1.length)) return [3 /*break*/,
|
|
1905
|
+
_l.label = 6;
|
|
1906
|
+
case 6:
|
|
1907
|
+
if (!(_j < values_1.length)) return [3 /*break*/, 10];
|
|
1905
1908
|
value = values_1[_j];
|
|
1906
|
-
state = state$
|
|
1907
|
-
if (!(state === 0 /* Task.Wait */)) return [3 /*break*/,
|
|
1909
|
+
state = state$a(timer);
|
|
1910
|
+
if (!(state === 0 /* Task.Wait */)) return [3 /*break*/, 8];
|
|
1908
1911
|
return [4 /*yield*/, suspend$1(timer)];
|
|
1909
|
-
case
|
|
1912
|
+
case 7:
|
|
1910
1913
|
state = _l.sent();
|
|
1911
|
-
_l.label =
|
|
1912
|
-
case
|
|
1914
|
+
_l.label = 8;
|
|
1915
|
+
case 8:
|
|
1913
1916
|
if (state === 2 /* Task.Stop */) {
|
|
1914
|
-
return [3 /*break*/,
|
|
1917
|
+
return [3 /*break*/, 10];
|
|
1915
1918
|
}
|
|
1916
1919
|
data = value.data;
|
|
1917
1920
|
active = value.metadata.active;
|
|
@@ -1952,18 +1955,18 @@ function encode$4 (type, timer, ts) {
|
|
|
1952
1955
|
}
|
|
1953
1956
|
}
|
|
1954
1957
|
}
|
|
1955
|
-
_l.label =
|
|
1956
|
-
case
|
|
1958
|
+
_l.label = 9;
|
|
1959
|
+
case 9:
|
|
1957
1960
|
_j++;
|
|
1958
|
-
return [3 /*break*/,
|
|
1959
|
-
case
|
|
1961
|
+
return [3 /*break*/, 6];
|
|
1962
|
+
case 10:
|
|
1960
1963
|
if (type === 6 /* Event.Mutation */) {
|
|
1961
1964
|
activity(eventTime);
|
|
1962
1965
|
}
|
|
1963
1966
|
queue(tokenize(tokens), !config$1.lean);
|
|
1964
|
-
_l.label =
|
|
1965
|
-
case
|
|
1966
|
-
case
|
|
1967
|
+
_l.label = 11;
|
|
1968
|
+
case 11: return [3 /*break*/, 12];
|
|
1969
|
+
case 12: return [2 /*return*/];
|
|
1967
1970
|
}
|
|
1968
1971
|
});
|
|
1969
1972
|
});
|
|
@@ -3066,7 +3069,7 @@ function traverse (root, timer, source, timestamp) {
|
|
|
3066
3069
|
queue.push(next);
|
|
3067
3070
|
next = next.nextSibling;
|
|
3068
3071
|
}
|
|
3069
|
-
state = state$
|
|
3072
|
+
state = state$a(timer);
|
|
3070
3073
|
if (!(state === 0 /* Task.Wait */)) return [3 /*break*/, 3];
|
|
3071
3074
|
return [4 /*yield*/, suspend$1(timer)];
|
|
3072
3075
|
case 2:
|
|
@@ -3214,7 +3217,7 @@ function process$1() {
|
|
|
3214
3217
|
case 2:
|
|
3215
3218
|
if (!(_i < _a.length)) return [3 /*break*/, 6];
|
|
3216
3219
|
mutation = _a[_i];
|
|
3217
|
-
state = state$
|
|
3220
|
+
state = state$a(timer);
|
|
3218
3221
|
if (!(state === 0 /* Task.Wait */)) return [3 /*break*/, 4];
|
|
3219
3222
|
return [4 /*yield*/, suspend$1(timer)];
|
|
3220
3223
|
case 3:
|
|
@@ -3323,7 +3326,7 @@ function processNodeList(list, source, timer, timestamp) {
|
|
|
3323
3326
|
traverse(list[i], timer, source);
|
|
3324
3327
|
return [3 /*break*/, 5];
|
|
3325
3328
|
case 2:
|
|
3326
|
-
state = state$
|
|
3329
|
+
state = state$a(timer);
|
|
3327
3330
|
if (!(state === 0 /* Task.Wait */)) return [3 /*break*/, 4];
|
|
3328
3331
|
return [4 /*yield*/, suspend$1(timer)];
|
|
3329
3332
|
case 3:
|
|
@@ -4211,7 +4214,7 @@ function encode$1 (event) {
|
|
|
4211
4214
|
var tokens = [t, event];
|
|
4212
4215
|
switch (event) {
|
|
4213
4216
|
case 4 /* Event.Baseline */:
|
|
4214
|
-
var b = state$
|
|
4217
|
+
var b = state$b;
|
|
4215
4218
|
if (b) {
|
|
4216
4219
|
tokens = [b.time, b.event];
|
|
4217
4220
|
tokens.push(b.data.visible);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var t=Object.freeze({__proto__:null,get queue(){return gt},get start(){return vt},get stop(){return mt},get track(){return st}}),n=Object.freeze({__proto__:null,get check(){return Et},get compute(){return Mt},get data(){return lt},get start(){return St},get stop(){return Ot},get trigger(){return It}}),e=Object.freeze({__proto__:null,get compute(){return qt},get data(){return xt},get log(){return Ct},get reset(){return At},get start(){return jt},get stop(){return zt},get updates(){return Tt}}),r=Object.freeze({__proto__:null,get callbacks(){return Rt},get clear(){return Xt},get consent(){return Bt},get data(){return Nt},get electron(){return Dt},get id(){return Vt},get metadata(){return Lt},get save(){return Jt},get shortid(){return Zt},get start(){return Ht},get stop(){return Ut}}),o=Object.freeze({__proto__:null,get data(){return nn},get envelope(){return on},get start(){return en},get stop(){return rn}}),a={projectId:null,delay:1e3,lean:!1,track:!0,content:!0,drop:[],mask:[],unmask:[],regions:[],cookies:[],fraud:!0,checksum:[],report:null,upload:null,fallback:null,upgrade:null,action:null,dob:null,delayDom:!1,throttleDom:!0};function u(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}var c=0;function i(t){void 0===t&&(t=null);var n=t&&t.timeStamp>0?t.timeStamp:performance.now(),e=t&&t.view?t.view.performance.timeOrigin:performance.timeOrigin;return Math.max(Math.round(n+e-c),0)}var s="0.7.33";var l=!0,p=null,d=null;function f(t,n,e){return function(){if(l&&null===p)try{p=new RegExp("\\p{N}","gu"),d=new RegExp("\\p{L}","gu"),new RegExp("\\p{Sc}","gu")}catch(t){l=!1}}(),t?t.replace(d,n).replace(p,e):t}var h=[],v=null;function g(){}var m=[];function y(){}function b(){}var w=Object.freeze({__proto__:null,checkDocumentStyles:function(t){},compute:function(){},data:v,hashText:y,keys:m,log:g,observe:function(){},reset:function(){},start:function(){},state:h,stop:function(){},trigger:b}),k=null;function _(t,n){jn()&&t&&"string"==typeof t&&t.length<255&&(k=n&&"string"==typeof n&&n.length<255?{key:t,value:n}:{value:t},_t(24))}var S,E=null,I=null;function M(t){t in E||(E[t]=0),t in I||(I[t]=0),E[t]++,I[t]++}function O(t,n){null!==n&&(t in E||(E[t]=0),t in I||(I[t]=0),E[t]+=n,I[t]+=n)}function x(t,n){null!==n&&!1===isNaN(n)&&(t in E||(E[t]=0),(n>E[t]||0===E[t])&&(I[t]=n,E[t]=n))}function T(t,n,e){return window.setTimeout(cn(t),n,e)}function j(t){return window.clearTimeout(t)}var z=0,C=0,q=null;function A(){q&&j(q),q=T(N,C),z=i()}function N(){var t=i();S={gap:t-z},_t(25),S.gap<3e5?q=T(N,C):On&&(_("clarity","suspend"),Bn(),["mousemove","touchstart"].forEach((function(t){return ln(document,t,Cn)})),["resize","scroll","pageshow"].forEach((function(t){return ln(window,t,Cn)})))}var R=Object.freeze({__proto__:null,get data(){return S},reset:A,start:function(){C=6e4,z=0},stop:function(){j(q),z=0,C=0}}),D=null;function P(t){jn()&&a.lean&&(a.lean=!1,D={key:t},Jt(),a.upgrade&&a.upgrade(t),_t(3))}var H=Object.freeze({__proto__:null,get data(){return D},start:function(){!a.lean&&a.upgrade&&a.upgrade("Config"),D=null},stop:function(){D=null},upgrade:P});function U(t,n,e,r){return new(e||(e=Promise))((function(o,a){function u(t){try{i(r.next(t))}catch(t){a(t)}}function c(t){try{i(r.throw(t))}catch(t){a(t)}}function i(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(u,c)}i((r=r.apply(t,n||[])).next())}))}function L(t,n){var e,r,o,a,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(i){return function(c){if(e)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(u=0)),u;)try{if(e=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return u.label++,{value:c[1],done:!1};case 5:u.label++,r=c[1],c=[0];continue;case 7:c=u.ops.pop(),u.trys.pop();continue;default:if(!(o=u.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){u=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){u.label=c[1];break}if(6===c[0]&&u.label<o[1]){u.label=o[1],o=c;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(c);break}o[2]&&u.ops.pop(),u.trys.pop();continue}c=n.call(t,u)}catch(t){c=[6,t],r=0}finally{e=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,i])}}}var V=null;function B(t,n){J(t,"string"==typeof n?[n]:n)}function X(t,n,e,r){return void 0===n&&(n=null),void 0===e&&(e=null),void 0===r&&(r=null),U(this,void 0,void 0,(function(){var o,a;return L(this,(function(u){switch(u.label){case 0:return a={},[4,Z(t)];case 1:return a.userId=u.sent(),a.userHint=r||((c=t)&&c.length>=5?"".concat(c.substring(0,2)).concat(f(c.substring(2),"*","*")):f(c,"*","*")),J("userId",[(o=a).userId]),J("userHint",[o.userHint]),J("userType",[Y(t)]),n&&(J("sessionId",[n]),o.sessionId=n),e&&(J("pageId",[e]),o.pageId=e),[2,o]}var c}))}))}function J(t,n){if(jn()&&t&&n&&"string"==typeof t&&t.length<255){for(var e=(t in V?V[t]:[]),r=0;r<n.length;r++)"string"==typeof n[r]&&n[r].length<255&&e.push(n[r]);V[t]=e}}function W(){_t(34)}function G(){V={}}function Z(t){return U(this,void 0,void 0,(function(){var n;return L(this,(function(e){switch(e.label){case 0:return e.trys.push([0,4,,5]),crypto&&t?[4,crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t))]:[3,2];case 1:return n=e.sent(),[2,Array.prototype.map.call(new Uint8Array(n),(function(t){return("00"+t.toString(16)).slice(-2)})).join("")];case 2:return[2,""];case 3:return[3,5];case 4:return e.sent(),[2,""];case 5:return[2]}}))}))}function Y(t){return t&&t.indexOf("@")>0?"email":"string"}var F="CompressionStream"in window;function K(t){return U(this,void 0,void 0,(function(){var n,e;return L(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),F?(n=new ReadableStream({start:function(n){return U(this,void 0,void 0,(function(){return L(this,(function(e){return n.enqueue(t),n.close(),[2]}))}))}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip")),e=Uint8Array.bind,[4,Q(n)]):[3,2];case 1:return[2,new(e.apply(Uint8Array,[void 0,r.sent()]))];case 2:return[3,4];case 3:return r.sent(),[3,4];case 4:return[2,null]}}))}))}function Q(t){return U(this,void 0,void 0,(function(){var n,e,r,o,a;return L(this,(function(u){switch(u.label){case 0:n=t.getReader(),e=[],r=!1,o=[],u.label=1;case 1:return r?[3,3]:[4,n.read()];case 2:return a=u.sent(),r=a.done,o=a.value,r?[2,e]:(e.push.apply(e,o),[3,1]);case 3:return[2,e]}}))}))}var $=null;function tt(t){try{if(!$)return;var n=function(t){try{return JSON.parse(t)}catch(t){return[]}}(t);n.forEach((function(t){$(t)}))}catch(t){}}var nt=[w,e,Object.freeze({__proto__:null,compute:W,get data(){return V},identify:X,reset:G,set:B,start:function(){G()},stop:function(){G()}}),n,w,r,o,t,R,H,w];function et(){E={},I={},M(5),nt.forEach((function(t){return cn(t.start)()}))}function rt(){nt.slice().reverse().forEach((function(t){return cn(t.stop)()})),E={},I={}}function ot(){W(),qt(),_t(0),Mt()}var at,ut,ct,it,st,lt,pt=0,dt=0,ft=null,ht=0;function vt(){it=!0,pt=0,dt=0,ht=0,at=[],ut=[],ct={},st=null}function gt(t,n){if(void 0===n&&(n=!0),it){var e=i(),r=t.length>1?t[1]:null,o=JSON.stringify(t);switch(r){case 5:pt+=o.length;case 37:case 6:case 43:case 45:case 46:dt+=o.length,at.push(o);break;default:ut.push(o)}M(25);var u=function(){var t=!1===a.lean&&pt>0?100:nn.sequence*a.delay;return"string"==typeof a.upload?Math.max(Math.min(t,3e4),100):a.delay}();e-ht>2*u&&(j(ft),ft=null),n&&null===ft&&(25!==r&&A(),ft=T(yt,u),ht=e,Et(dt))}}function mt(){j(ft),yt(!0),pt=0,dt=0,ht=0,at=[],ut=[],ct={},st=null,it=!1}function yt(t){return void 0===t&&(t=!1),U(this,void 0,void 0,(function(){var n,e,r,o,u,c,i,s;return L(this,(function(l){switch(l.label){case 0:return ft=null,(n=!1===a.lean&&dt>0&&(dt<1048576||nn.sequence>0))&&x(1,1),ot(),e=!0===t,r=JSON.stringify(on(e)),o="[".concat(ut.join(),"]"),u=n?"[".concat(at.join(),"]"):"",c=function(t){return t.p.length>0?'{"e":'.concat(t.e,',"a":').concat(t.a,',"p":').concat(t.p,"}"):'{"e":'.concat(t.e,',"a":').concat(t.a,"}")}({e:r,a:o,p:u}),e?(s=null,[3,3]):[3,1];case 1:return[4,K(c)];case 2:s=l.sent(),l.label=3;case 3:return O(2,(i=s)?i.length:c.length),bt(c,i,nn.sequence,e),ut=[],n&&(at=[],dt=0,pt=0),[2]}}))}))}function bt(t,n,e,r){if(void 0===r&&(r=!1),"string"==typeof a.upload){var o=a.upload,u=!1;if(r&&"sendBeacon"in navigator)try{(u=navigator.sendBeacon.bind(navigator)(o,t))&&kt(e)}catch(t){}if(!1===u){e in ct?ct[e].attempts++:ct[e]={data:t,attempts:1};var c=new XMLHttpRequest;c.open("POST",o,!0),c.timeout=15e3,c.ontimeout=function(){un(new Error("".concat("Timeout"," : ").concat(o)))},null!==e&&(c.onreadystatechange=function(){cn(wt)(c,e)}),c.withCredentials=!0,n?(c.setRequestHeader("Accept","application/x-clarity-gzip"),c.send(n)):c.send(t)}}else if(a.upload){(0,a.upload)(t),kt(e)}}function wt(t,n){var e=ct[n];t&&4===t.readyState&&e&&((t.status<200||t.status>208)&&e.attempts<=1?t.status>=400&&t.status<500?It(6):(0===t.status&&(a.upload=a.fallback?a.fallback:a.upload),bt(e.data,null,n)):(st={sequence:n,attempts:e.attempts,status:t.status},e.attempts>1&&_t(2),200===t.status&&t.responseText&&function(t){for(var n=t&&t.length>0?t.split("\n"):[],e=0,r=n;e<r.length;e++){var o=r[e],u=o&&o.length>0?o.split(/ (.*)/):[""];switch(u[0]){case"END":It(6);break;case"UPGRADE":P("Auto");break;case"ACTION":a.action&&u.length>1&&a.action(u[1]);break;case"EXTRACT":u.length>1&&u[1];break;case"SIGNAL":u.length>1&&tt(u[1])}}}(t.responseText),0===t.status&&(bt(e.data,null,n,!0),It(3)),t.status>=200&&t.status<=208&&kt(n),delete ct[n]))}function kt(t){1===t&&Jt()}function _t(t){var n=[i(),t];switch(t){case 4:var e=h;e&&((n=[e.time,e.event]).push(e.data.visible),n.push(e.data.docWidth),n.push(e.data.docHeight),n.push(e.data.screenWidth),n.push(e.data.screenHeight),n.push(e.data.scrollX),n.push(e.data.scrollY),n.push(e.data.pointerX),n.push(e.data.pointerY),n.push(e.data.activityTime),n.push(e.data.scrollTime),gt(n,!1));break;case 25:n.push(S.gap),gt(n);break;case 35:n.push(lt.check),gt(n,!1);break;case 3:n.push(D.key),gt(n);break;case 2:n.push(st.sequence),n.push(st.attempts),n.push(st.status),gt(n,!1);break;case 24:k.key&&n.push(k.key),n.push(k.value),gt(n);break;case 34:var r=Object.keys(V);if(r.length>0){for(var o=0,a=r;o<a.length;o++){var u=a[o];n.push(u),n.push(V[u])}G(),gt(n,!1)}break;case 0:var c=Object.keys(I);if(c.length>0){for(var s=0,l=c;s<l.length;s++){var p=l[s],d=parseInt(p,10);n.push(d),n.push(Math.round(I[p]))}I={},gt(n,!1)}break;case 1:var f=Object.keys(Tt);if(f.length>0){for(var g=0,y=f;g<y.length;g++){var b=y[g];d=parseInt(b,10);n.push(d),n.push(Tt[b])}At(),gt(n,!1)}break;case 36:var w=Object.keys(v);if(w.length>0){for(var _=0,E=w;_<E.length;_++){var M=E[_];d=parseInt(M,10);n.push(d),n.push([].concat.apply([],v[M]))}gt(n,!1)}break;case 40:m.forEach((function(t){n.push(t);var e=[];for(var r in v[t]){var o=parseInt(r,10);e.push(o),e.push(v[t][r])}n.push(e)})),gt(n,!1)}}function St(){lt={check:0}}function Et(t){if(0===lt.check){var n=lt.check;n=nn.sequence>=128?1:n,n=nn.pageNum>=128?7:n,n=i()>72e5?2:n,(n=t>10485760?2:n)!==lt.check&&It(n)}}function It(t){lt.check=t,Xt(),Bn()}function Mt(){0!==lt.check&&_t(35)}function Ot(){lt=null}var xt=null,Tt=null;function jt(){xt={},Tt={}}function zt(){xt={},Tt={}}function Ct(t,n){n&&(n="".concat(n),t in xt||(xt[t]=[]),xt[t].indexOf(n)<0&&(xt[t].push(n),t in Tt||(Tt[t]=[]),Tt[t].push(n),xt[t].length>128&&It(5)))}function qt(){_t(1)}function At(){Tt={}}var Nt=null,Rt=[],Dt=0,Pt=null;function Ht(){Pt=null;var t=navigator&&"userAgent"in navigator?navigator.userAgent:"",n=document&&document.title?document.title:"";Dt=t.indexOf("Electron")>0?1:0;var e,r=function(){var t={session:Zt(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},n=Kt("_clsk");if(n){var e=n.split("|");e.length>=5&&t.ts-Yt(e[1])<18e5&&(t.session=e[0],t.count=Yt(e[2])+1,t.upgrade=Yt(e[3]),t.upload=e.length>=6?"".concat("https://").concat(e[5],"/").concat(e[4]):"".concat("https://").concat(e[4]))}return t}(),o=Ft(),u=a.projectId||function(t,n){void 0===n&&(n=null);for(var e,r=5381,o=r,a=0;a<t.length;a+=2)r=(r<<5)+r^t.charCodeAt(a),a+1<t.length&&(o=(o<<5)+o^t.charCodeAt(a+1));return e=Math.abs(r+11579*o),(n?e%Math.pow(2,n):e).toString(36)}(location.host);Nt={projectId:u,userId:o.id,sessionId:r.session,pageNum:r.count},a.lean=a.track&&null!==r.upgrade?0===r.upgrade:a.lean,a.upload=a.track&&"string"==typeof a.upload&&r.upload&&r.upload.length>"https://".length?r.upload:a.upload,Ct(0,t),Ct(3,n),Ct(1,function(t,n){if(void 0===n&&(n=!1),n)return"".concat("https://").concat("Electron");var e=a.drop;if(e&&e.length>0&&t&&t.indexOf("?")>0){var r=t.split("?");return r[0]+"?"+r[1].split("&").map((function(t){return e.some((function(n){return 0===t.indexOf("".concat(n,"="))}))?"".concat(t.split("=")[0],"=").concat("*na*"):t})).join("&")}return t}(location.href,!!Dt)),Ct(2,document.referrer),Ct(15,function(){var t=Zt();if(a.track&&Wt(window,"sessionStorage")){var n=sessionStorage.getItem("_cltk");t=n||t,sessionStorage.setItem("_cltk",t)}return t}()),Ct(16,document.documentElement.lang),Ct(17,document.dir),Ct(26,"".concat(window.devicePixelRatio)),Ct(28,o.dob.toString()),Ct(29,o.version.toString()),x(0,r.ts),x(1,0),x(35,Dt),navigator&&(Ct(9,navigator.language),x(33,navigator.hardwareConcurrency),x(32,navigator.maxTouchPoints),x(34,Math.round(navigator.deviceMemory)),(e=navigator.userAgentData)&&e.getHighEntropyValues?e.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){var n;Ct(22,t.platform),Ct(23,t.platformVersion),null===(n=t.brands)||void 0===n||n.forEach((function(t){Ct(24,t.name+"~"+t.version)})),Ct(25,t.model),x(27,t.mobile?1:0)})):Ct(22,navigator.platform)),screen&&(x(14,Math.round(screen.width)),x(15,Math.round(screen.height)),x(16,Math.round(screen.colorDepth)));for(var c=0,i=a.cookies;c<i.length;c++){var s=i[c],l=Kt(s);l&&B(s,l)}Gt(o)}function Ut(){Pt=null,Nt=null}function Lt(t,n){void 0===n&&(n=!0);var e=a.lean?0:1;Nt&&(e||!1===n)?t(Nt,!a.lean):Rt.push({callback:t,wait:n})}function Vt(){return Nt?[Nt.userId,Nt.sessionId,Nt.pageNum].join("."):""}function Bt(t){if(void 0===t&&(t=!0),!t)return a.track=!1,$t("_clsk","",-Number.MAX_VALUE),$t("_clck","",-Number.MAX_VALUE),Bn(),void window.setTimeout(Vn,250);jn()&&(a.track=!0,Gt(Ft(),1))}function Xt(){$t("_clsk","",0)}function Jt(){var t=Math.round(Date.now()),n=a.upload&&"string"==typeof a.upload?a.upload.replace("https://",""):"",e=a.lean?0:1;!function(t){Rt.length>0&&Rt.forEach((function(n){!n.callback||n.wait&&!t||n.callback(Nt,!a.lean)}))}(e),$t("_clsk",[Nt.sessionId,t,Nt.pageNum,e,n].join("|"),1)}function Wt(t,n){try{return!!t[n]}catch(t){return!1}}function Gt(t,n){void 0===n&&(n=null),n=null===n?t.consent:n;var e=Math.ceil((Date.now()+31536e6)/864e5),r=0===t.dob?null===a.dob?0:a.dob:t.dob;(null===t.expiry||Math.abs(e-t.expiry)>=1||t.consent!==n||t.dob!==r)&&$t("_clck",[Nt.userId,2,e.toString(36),n,r].join("|"),365)}function Zt(){var t=Math.floor(Math.random()*Math.pow(2,32));return window&&window.crypto&&window.crypto.getRandomValues&&Uint32Array&&(t=window.crypto.getRandomValues(new Uint32Array(1))[0]),t.toString(36)}function Yt(t,n){return void 0===n&&(n=10),parseInt(t,n)}function Ft(){var t={id:Zt(),version:0,expiry:null,consent:0,dob:0},n=Kt("_clck");if(n&&n.length>0){for(var e=n.split("|"),r=0,o=0,u=document.cookie.split(";");o<u.length;o++){r+="_clck"===u[o].split("=")[0].trim()?1:0}if(1===e.length||r>1){var c="".concat(";").concat("expires=").concat(new Date(0).toUTCString()).concat(";path=/");document.cookie="".concat("_clck","=").concat(c),document.cookie="".concat("_clsk","=").concat(c)}e.length>1&&(t.version=Yt(e[1])),e.length>2&&(t.expiry=Yt(e[2],36)),e.length>3&&1===Yt(e[3])&&(t.consent=1),e.length>4&&Yt(e[1])>1&&(t.dob=Yt(e[4])),a.track=a.track||1===t.consent,t.id=a.track?e[0]:t.id}return t}function Kt(t){var n;if(Wt(document,"cookie")){var e=document.cookie.split(";");if(e)for(var r=0;r<e.length;r++){var o=e[r].split("=");if(o.length>1&&o[0]&&o[0].trim()===t){for(var a=Qt(o[1]),u=a[0],c=a[1];u;)u=(n=Qt(c))[0],c=n[1];return c}}}return null}function Qt(t){try{var n=decodeURIComponent(t);return[n!=t,n]}catch(t){}return[!1,t]}function $t(t,n,e){if((a.track||""==n)&&(navigator&&navigator.cookieEnabled||Wt(document,"cookie"))){var r=function(t){return encodeURIComponent(t)}(n),o=new Date;o.setDate(o.getDate()+e);var u=o?"expires="+o.toUTCString():"",c="".concat(t,"=").concat(r).concat(";").concat(u).concat(";path=/");try{if(null===Pt){for(var i=location.hostname?location.hostname.split("."):[],s=i.length-1;s>=0;s--)if(Pt=".".concat(i[s]).concat(Pt||""),s<i.length-1&&(document.cookie="".concat(c).concat(";").concat("domain=").concat(Pt),Kt(t)===n))return;Pt=""}}catch(t){Pt=""}document.cookie=Pt?"".concat(c).concat(";").concat("domain=").concat(Pt):c}}var tn,nn=null;function en(){var t=Nt;nn={version:s,sequence:0,start:0,duration:0,projectId:t.projectId,userId:t.userId,sessionId:t.sessionId,pageNum:t.pageNum,upload:0,end:0}}function rn(){nn=null}function on(t){return nn.start=nn.start+nn.duration,nn.duration=i()-nn.start,nn.sequence++,nn.upload=t&&"sendBeacon"in navigator?1:0,nn.end=t?1:0,[nn.version,nn.sequence,nn.start,nn.duration,nn.projectId,nn.userId,nn.sessionId,nn.pageNum,nn.upload,nn.end]}function an(){tn=[]}function un(t){if(tn&&-1===tn.indexOf(t.message)){var n=a.report;if(n&&n.length>0){var e={v:nn.version,p:nn.projectId,u:nn.userId,s:nn.sessionId,n:nn.pageNum};t.message&&(e.m=t.message),t.stack&&(e.e=t.stack);var r=new XMLHttpRequest;r.open("POST",n,!0),r.send(JSON.stringify(e)),tn.push(t.message)}}return t}function cn(t){return function(){var n=performance.now();try{t.apply(this,arguments)}catch(t){throw un(t)}var e=performance.now()-n;O(4,e),e>30&&(M(7),x(6,e))}}var sn=[];function ln(t,n,e,r){void 0===r&&(r=!1),e=cn(e);try{t[u("addEventListener")](n,e,r),sn.push({event:n,target:t,listener:e,capture:r})}catch(t){}}function pn(){for(var t=0,n=sn;t<n.length;t++){var e=n[t];try{e.target[u("removeEventListener")](e.event,e.listener,e.capture)}catch(t){}}sn=[]}var dn=null,fn=null,hn=null,vn=0;function gn(){return!(vn++>20)}function mn(){vn=0,hn!==bn()&&(Bn(),window.setTimeout(yn,250))}function yn(){Vn(),x(29,1)}function bn(){return location.href?location.href.replace(location.hash,""):location.href}var wn=[],kn=null,_n=null,Sn=null;function En(){_n&&(Sn(),_n=null,null===kn&&Mn())}function In(){wn=[],kn=null,_n=null}function Mn(){var t=wn.shift();t&&(kn=t,t.task().then((function(){t.id===Vt()&&(t.resolve(),kn=null,Mn())})).catch((function(n){t.id===Vt()&&(n&&(n.name,n.message,n.stack),kn=null,Mn())})))}var On=!1;function xn(){On=!0,c=performance.now()+performance.timeOrigin,In(),pn(),an(),hn=bn(),vn=0,ln(window,"popstate",mn),null===dn&&(dn=history.pushState,history.pushState=function(){dn.apply(this,arguments),jn()&&gn()&&mn()}),null===fn&&(fn=history.replaceState,history.replaceState=function(){fn.apply(this,arguments),jn()&&gn()&&mn()})}function Tn(){hn=null,vn=0,an(),pn(),In(),c=0,On=!1}function jn(){return On}function zn(t){if(null===t||On)return!1;for(var n in t)n in a&&(a[n]=t[n]);return!0}function Cn(){Vn(),_("clarity","restart")}var qn,An=null;function Nn(){An=null}function Rn(t){An={fetchStart:Math.round(t.fetchStart),connectStart:Math.round(t.connectStart),connectEnd:Math.round(t.connectEnd),requestStart:Math.round(t.requestStart),responseStart:Math.round(t.responseStart),responseEnd:Math.round(t.responseEnd),domInteractive:Math.round(t.domInteractive),domComplete:Math.round(t.domComplete),loadEventStart:Math.round(t.loadEventStart),loadEventEnd:Math.round(t.loadEventEnd),redirectCount:Math.round(t.redirectCount),size:t.transferSize?t.transferSize:0,type:t.type,protocol:t.nextHopProtocol,encodedSize:t.encodedBodySize?t.encodedBodySize:0,decodedSize:t.decodedBodySize?t.decodedBodySize:0},function(t){U(this,void 0,void 0,(function(){var n,e;return L(this,(function(r){return n=i(),e=[n,t],29===t&&(e.push(An.fetchStart),e.push(An.connectStart),e.push(An.connectEnd),e.push(An.requestStart),e.push(An.responseStart),e.push(An.responseEnd),e.push(An.domInteractive),e.push(An.domComplete),e.push(An.loadEventStart),e.push(An.loadEventEnd),e.push(An.redirectCount),e.push(An.size),e.push(An.type),e.push(An.protocol),e.push(An.encodedSize),e.push(An.decodedSize),Nn(),gt(e)),[2]}))}))}(29)}var Dn=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint"];function Pn(){try{qn&&qn.disconnect(),qn=new PerformanceObserver(cn(Hn));for(var t=0,n=Dn;t<n.length;t++){var e=n[t];PerformanceObserver.supportedEntryTypes.indexOf(e)>=0&&("layout-shift"===e&&O(9,0),qn.observe({type:e,buffered:!0}))}}catch(t){}}function Hn(t){!function(t){for(var n=(!("visibilityState"in document)||"visible"===document.visibilityState),e=0;e<t.length;e++){var r=t[e];switch(r.entryType){case"navigation":Rn(r);break;case"resource":var o=r.name;Ct(4,Un(o)),o!==a.upload&&o!==a.fallback||x(28,r.duration);break;case"longtask":M(7);break;case"first-input":n&&x(10,r.processingStart-r.startTime);break;case"layout-shift":n&&!r.hadRecentInput&&O(9,1e3*r.value);break;case"largest-contentful-paint":n&&x(8,r.startTime)}}}(t.getEntries())}function Un(t){var n=document.createElement("a");return n.href=t,n.host}var Ln=[w,w,w,Object.freeze({__proto__:null,start:function(){Nn(),function(){navigator&&"connection"in navigator&&Ct(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?ln(window,"load",T.bind(this,Pn,0)):Pn())}()},stop:function(){qn&&qn.disconnect(),qn=null,Nn()}})];function Vn(t){void 0===t&&(t=null),function(){try{var t=navigator&&"globalPrivacyControl"in navigator&&1==navigator.globalPrivacyControl;return!1===On&&"undefined"!=typeof Promise&&window.MutationObserver&&document.createTreeWalker&&"now"in Date&&"now"in performance&&"undefined"!=typeof WeakMap&&!t}catch(t){return!1}}()&&(zn(t),xn(),et(),Ln.forEach((function(t){return cn(t.start)()})),null===t&&Gn())}function Bn(){jn()&&(Ln.slice().reverse().forEach((function(t){return cn(t.stop)()})),rt(),Tn(),void 0!==Jn&&(Jn[Wn]=function(){(Jn[Wn].q=Jn[Wn].q||[]).push(arguments),"start"===arguments[0]&&Jn[Wn].q.unshift(Jn[Wn].q.pop())&&Gn()}))}var Xn=Object.freeze({__proto__:null,consent:Bt,event:_,hashText:y,identify:X,metadata:Lt,pause:function(){jn()&&(_("clarity","pause"),null===_n&&(_n=new Promise((function(t){Sn=t}))))},resume:function(){jn()&&(En(),_("clarity","resume"))},set:B,signal:function(t){$=t},start:Vn,stop:Bn,upgrade:P,version:s}),Jn=window,Wn="clarity";function Gn(){if(void 0!==Jn){if(Jn[Wn]&&Jn[Wn].v)return console.warn("Error CL001: Multiple Clarity tags detected.");var t=Jn[Wn]&&Jn[Wn].q||[];for(Jn[Wn]=function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return Xn[t].apply(Xn,n)},Jn[Wn].v=s;t.length>0;)Jn[Wn].apply(Jn,t.shift())}}Gn()}();
|
|
1
|
+
!function(){"use strict";var t=Object.freeze({__proto__:null,get queue(){return gt},get start(){return vt},get stop(){return mt},get track(){return st}}),n=Object.freeze({__proto__:null,get check(){return Et},get compute(){return Mt},get data(){return lt},get start(){return St},get stop(){return Ot},get trigger(){return It}}),e=Object.freeze({__proto__:null,get compute(){return Ct},get data(){return xt},get log(){return At},get reset(){return qt},get start(){return jt},get stop(){return zt},get updates(){return Tt}}),r=Object.freeze({__proto__:null,get callbacks(){return Rt},get clear(){return Xt},get consent(){return Bt},get data(){return Nt},get electron(){return Dt},get id(){return Vt},get metadata(){return Lt},get save(){return Jt},get shortid(){return Zt},get start(){return Ut},get stop(){return Ht}}),o=Object.freeze({__proto__:null,get data(){return nn},get envelope(){return on},get start(){return en},get stop(){return rn}}),a={projectId:null,delay:1e3,lean:!1,track:!0,content:!0,drop:[],mask:[],unmask:[],regions:[],cookies:[],fraud:!0,checksum:[],report:null,upload:null,fallback:null,upgrade:null,action:null,dob:null,delayDom:!1,throttleDom:!0};function u(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}var c=0;function i(t){void 0===t&&(t=null);var n=t&&t.timeStamp>0?t.timeStamp:performance.now(),e=t&&t.view?t.view.performance.timeOrigin:performance.timeOrigin;return Math.max(Math.round(n+e-c),0)}var s="0.7.36";var l=!0,p=null,d=null;function f(t,n,e){return function(){if(l&&null===p)try{p=new RegExp("\\p{N}","gu"),d=new RegExp("\\p{L}","gu"),new RegExp("\\p{Sc}","gu")}catch(t){l=!1}}(),t?t.replace(d,n).replace(p,e):t}var h=[],v=null;function g(){}var m=[];function y(){}function b(){}var w=Object.freeze({__proto__:null,checkDocumentStyles:function(t){},compute:function(){},data:v,hashText:y,keys:m,log:g,observe:function(){},reset:function(){},sheetAdoptionState:[],sheetUpdateState:[],start:function(){},state:h,stop:function(){},trigger:b}),k=null;function _(t,n){jn()&&t&&"string"==typeof t&&t.length<255&&(k=n&&"string"==typeof n&&n.length<255?{key:t,value:n}:{value:t},_t(24))}var S,E=null,I=null;function M(t){t in E||(E[t]=0),t in I||(I[t]=0),E[t]++,I[t]++}function O(t,n){null!==n&&(t in E||(E[t]=0),t in I||(I[t]=0),E[t]+=n,I[t]+=n)}function x(t,n){null!==n&&!1===isNaN(n)&&(t in E||(E[t]=0),(n>E[t]||0===E[t])&&(I[t]=n,E[t]=n))}function T(t,n,e){return window.setTimeout(cn(t),n,e)}function j(t){return window.clearTimeout(t)}var z=0,A=0,C=null;function q(){C&&j(C),C=T(N,A),z=i()}function N(){var t=i();S={gap:t-z},_t(25),S.gap<3e5?C=T(N,A):On&&(_("clarity","suspend"),Bn(),["mousemove","touchstart"].forEach((function(t){return ln(document,t,An)})),["resize","scroll","pageshow"].forEach((function(t){return ln(window,t,An)})))}var R=Object.freeze({__proto__:null,get data(){return S},reset:q,start:function(){A=6e4,z=0},stop:function(){j(C),z=0,A=0}}),D=null;function P(t){jn()&&a.lean&&(a.lean=!1,D={key:t},Jt(),a.upgrade&&a.upgrade(t),_t(3))}var U=Object.freeze({__proto__:null,get data(){return D},start:function(){!a.lean&&a.upgrade&&a.upgrade("Config"),D=null},stop:function(){D=null},upgrade:P});function H(t,n,e,r){return new(e||(e=Promise))((function(o,a){function u(t){try{i(r.next(t))}catch(t){a(t)}}function c(t){try{i(r.throw(t))}catch(t){a(t)}}function i(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(u,c)}i((r=r.apply(t,n||[])).next())}))}function L(t,n){var e,r,o,a,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(i){return function(c){if(e)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(u=0)),u;)try{if(e=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return u.label++,{value:c[1],done:!1};case 5:u.label++,r=c[1],c=[0];continue;case 7:c=u.ops.pop(),u.trys.pop();continue;default:if(!(o=u.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){u=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){u.label=c[1];break}if(6===c[0]&&u.label<o[1]){u.label=o[1],o=c;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(c);break}o[2]&&u.ops.pop(),u.trys.pop();continue}c=n.call(t,u)}catch(t){c=[6,t],r=0}finally{e=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,i])}}}var V=null;function B(t,n){J(t,"string"==typeof n?[n]:n)}function X(t,n,e,r){return void 0===n&&(n=null),void 0===e&&(e=null),void 0===r&&(r=null),H(this,void 0,void 0,(function(){var o,a;return L(this,(function(u){switch(u.label){case 0:return a={},[4,Z(t)];case 1:return a.userId=u.sent(),a.userHint=r||((c=t)&&c.length>=5?"".concat(c.substring(0,2)).concat(f(c.substring(2),"*","*")):f(c,"*","*")),J("userId",[(o=a).userId]),J("userHint",[o.userHint]),J("userType",[Y(t)]),n&&(J("sessionId",[n]),o.sessionId=n),e&&(J("pageId",[e]),o.pageId=e),[2,o]}var c}))}))}function J(t,n){if(jn()&&t&&n&&"string"==typeof t&&t.length<255){for(var e=(t in V?V[t]:[]),r=0;r<n.length;r++)"string"==typeof n[r]&&n[r].length<255&&e.push(n[r]);V[t]=e}}function W(){_t(34)}function G(){V={}}function Z(t){return H(this,void 0,void 0,(function(){var n;return L(this,(function(e){switch(e.label){case 0:return e.trys.push([0,4,,5]),crypto&&t?[4,crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t))]:[3,2];case 1:return n=e.sent(),[2,Array.prototype.map.call(new Uint8Array(n),(function(t){return("00"+t.toString(16)).slice(-2)})).join("")];case 2:return[2,""];case 3:return[3,5];case 4:return e.sent(),[2,""];case 5:return[2]}}))}))}function Y(t){return t&&t.indexOf("@")>0?"email":"string"}var F="CompressionStream"in window;function K(t){return H(this,void 0,void 0,(function(){var n,e;return L(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),F?(n=new ReadableStream({start:function(n){return H(this,void 0,void 0,(function(){return L(this,(function(e){return n.enqueue(t),n.close(),[2]}))}))}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip")),e=Uint8Array.bind,[4,Q(n)]):[3,2];case 1:return[2,new(e.apply(Uint8Array,[void 0,r.sent()]))];case 2:return[3,4];case 3:return r.sent(),[3,4];case 4:return[2,null]}}))}))}function Q(t){return H(this,void 0,void 0,(function(){var n,e,r,o,a;return L(this,(function(u){switch(u.label){case 0:n=t.getReader(),e=[],r=!1,o=[],u.label=1;case 1:return r?[3,3]:[4,n.read()];case 2:return a=u.sent(),r=a.done,o=a.value,r?[2,e]:(e.push.apply(e,o),[3,1]);case 3:return[2,e]}}))}))}var $=null;function tt(t){try{if(!$)return;var n=function(t){try{return JSON.parse(t)}catch(t){return[]}}(t);n.forEach((function(t){$(t)}))}catch(t){}}var nt=[w,e,Object.freeze({__proto__:null,compute:W,get data(){return V},identify:X,reset:G,set:B,start:function(){G()},stop:function(){G()}}),n,w,r,o,t,R,U,w];function et(){E={},I={},M(5),nt.forEach((function(t){return cn(t.start)()}))}function rt(){nt.slice().reverse().forEach((function(t){return cn(t.stop)()})),E={},I={}}function ot(){W(),Ct(),_t(0),Mt()}var at,ut,ct,it,st,lt,pt=0,dt=0,ft=null,ht=0;function vt(){it=!0,pt=0,dt=0,ht=0,at=[],ut=[],ct={},st=null}function gt(t,n){if(void 0===n&&(n=!0),it){var e=i(),r=t.length>1?t[1]:null,o=JSON.stringify(t);switch(r){case 5:pt+=o.length;case 37:case 6:case 43:case 45:case 46:dt+=o.length,at.push(o);break;default:ut.push(o)}M(25);var u=function(){var t=!1===a.lean&&pt>0?100:nn.sequence*a.delay;return"string"==typeof a.upload?Math.max(Math.min(t,3e4),100):a.delay}();e-ht>2*u&&(j(ft),ft=null),n&&null===ft&&(25!==r&&q(),ft=T(yt,u),ht=e,Et(dt))}}function mt(){j(ft),yt(!0),pt=0,dt=0,ht=0,at=[],ut=[],ct={},st=null,it=!1}function yt(t){return void 0===t&&(t=!1),H(this,void 0,void 0,(function(){var n,e,r,o,u,c,i,s;return L(this,(function(l){switch(l.label){case 0:return ft=null,(n=!1===a.lean&&dt>0&&(dt<1048576||nn.sequence>0))&&x(1,1),ot(),e=!0===t,r=JSON.stringify(on(e)),o="[".concat(ut.join(),"]"),u=n?"[".concat(at.join(),"]"):"",c=function(t){return t.p.length>0?'{"e":'.concat(t.e,',"a":').concat(t.a,',"p":').concat(t.p,"}"):'{"e":'.concat(t.e,',"a":').concat(t.a,"}")}({e:r,a:o,p:u}),e?(s=null,[3,3]):[3,1];case 1:return[4,K(c)];case 2:s=l.sent(),l.label=3;case 3:return O(2,(i=s)?i.length:c.length),bt(c,i,nn.sequence,e),ut=[],n&&(at=[],dt=0,pt=0),[2]}}))}))}function bt(t,n,e,r){if(void 0===r&&(r=!1),"string"==typeof a.upload){var o=a.upload,u=!1;if(r&&"sendBeacon"in navigator)try{(u=navigator.sendBeacon.bind(navigator)(o,t))&&kt(e)}catch(t){}if(!1===u){e in ct?ct[e].attempts++:ct[e]={data:t,attempts:1};var c=new XMLHttpRequest;c.open("POST",o,!0),c.timeout=15e3,c.ontimeout=function(){un(new Error("".concat("Timeout"," : ").concat(o)))},null!==e&&(c.onreadystatechange=function(){cn(wt)(c,e)}),c.withCredentials=!0,n?(c.setRequestHeader("Accept","application/x-clarity-gzip"),c.send(n)):c.send(t)}}else if(a.upload){(0,a.upload)(t),kt(e)}}function wt(t,n){var e=ct[n];t&&4===t.readyState&&e&&((t.status<200||t.status>208)&&e.attempts<=1?t.status>=400&&t.status<500?It(6):(0===t.status&&(a.upload=a.fallback?a.fallback:a.upload),bt(e.data,null,n)):(st={sequence:n,attempts:e.attempts,status:t.status},e.attempts>1&&_t(2),200===t.status&&t.responseText&&function(t){for(var n=t&&t.length>0?t.split("\n"):[],e=0,r=n;e<r.length;e++){var o=r[e],u=o&&o.length>0?o.split(/ (.*)/):[""];switch(u[0]){case"END":It(6);break;case"UPGRADE":P("Auto");break;case"ACTION":a.action&&u.length>1&&a.action(u[1]);break;case"EXTRACT":u.length>1&&u[1];break;case"SIGNAL":u.length>1&&tt(u[1])}}}(t.responseText),0===t.status&&(bt(e.data,null,n,!0),It(3)),t.status>=200&&t.status<=208&&kt(n),delete ct[n]))}function kt(t){1===t&&Jt()}function _t(t){var n=[i(),t];switch(t){case 4:var e=h;e&&((n=[e.time,e.event]).push(e.data.visible),n.push(e.data.docWidth),n.push(e.data.docHeight),n.push(e.data.screenWidth),n.push(e.data.screenHeight),n.push(e.data.scrollX),n.push(e.data.scrollY),n.push(e.data.pointerX),n.push(e.data.pointerY),n.push(e.data.activityTime),n.push(e.data.scrollTime),gt(n,!1));break;case 25:n.push(S.gap),gt(n);break;case 35:n.push(lt.check),gt(n,!1);break;case 3:n.push(D.key),gt(n);break;case 2:n.push(st.sequence),n.push(st.attempts),n.push(st.status),gt(n,!1);break;case 24:k.key&&n.push(k.key),n.push(k.value),gt(n);break;case 34:var r=Object.keys(V);if(r.length>0){for(var o=0,a=r;o<a.length;o++){var u=a[o];n.push(u),n.push(V[u])}G(),gt(n,!1)}break;case 0:var c=Object.keys(I);if(c.length>0){for(var s=0,l=c;s<l.length;s++){var p=l[s],d=parseInt(p,10);n.push(d),n.push(Math.round(I[p]))}I={},gt(n,!1)}break;case 1:var f=Object.keys(Tt);if(f.length>0){for(var g=0,y=f;g<y.length;g++){var b=y[g];d=parseInt(b,10);n.push(d),n.push(Tt[b])}qt(),gt(n,!1)}break;case 36:var w=Object.keys(v);if(w.length>0){for(var _=0,E=w;_<E.length;_++){var M=E[_];d=parseInt(M,10);n.push(d),n.push([].concat.apply([],v[M]))}gt(n,!1)}break;case 40:m.forEach((function(t){n.push(t);var e=[];for(var r in v[t]){var o=parseInt(r,10);e.push(o),e.push(v[t][r])}n.push(e)})),gt(n,!1)}}function St(){lt={check:0}}function Et(t){if(0===lt.check){var n=lt.check;n=nn.sequence>=128?1:n,n=nn.pageNum>=128?7:n,n=i()>72e5?2:n,(n=t>10485760?2:n)!==lt.check&&It(n)}}function It(t){lt.check=t,Xt(),Bn()}function Mt(){0!==lt.check&&_t(35)}function Ot(){lt=null}var xt=null,Tt=null;function jt(){xt={},Tt={}}function zt(){xt={},Tt={}}function At(t,n){n&&(n="".concat(n),t in xt||(xt[t]=[]),xt[t].indexOf(n)<0&&(xt[t].push(n),t in Tt||(Tt[t]=[]),Tt[t].push(n),xt[t].length>128&&It(5)))}function Ct(){_t(1)}function qt(){Tt={}}var Nt=null,Rt=[],Dt=0,Pt=null;function Ut(){Pt=null;var t=navigator&&"userAgent"in navigator?navigator.userAgent:"",n=document&&document.title?document.title:"";Dt=t.indexOf("Electron")>0?1:0;var e,r=function(){var t={session:Zt(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},n=Kt("_clsk");if(n){var e=n.split("|");e.length>=5&&t.ts-Yt(e[1])<18e5&&(t.session=e[0],t.count=Yt(e[2])+1,t.upgrade=Yt(e[3]),t.upload=e.length>=6?"".concat("https://").concat(e[5],"/").concat(e[4]):"".concat("https://").concat(e[4]))}return t}(),o=Ft(),u=a.projectId||function(t,n){void 0===n&&(n=null);for(var e,r=5381,o=r,a=0;a<t.length;a+=2)r=(r<<5)+r^t.charCodeAt(a),a+1<t.length&&(o=(o<<5)+o^t.charCodeAt(a+1));return e=Math.abs(r+11579*o),(n?e%Math.pow(2,n):e).toString(36)}(location.host);Nt={projectId:u,userId:o.id,sessionId:r.session,pageNum:r.count},a.lean=a.track&&null!==r.upgrade?0===r.upgrade:a.lean,a.upload=a.track&&"string"==typeof a.upload&&r.upload&&r.upload.length>"https://".length?r.upload:a.upload,At(0,t),At(3,n),At(1,function(t,n){if(void 0===n&&(n=!1),n)return"".concat("https://").concat("Electron");var e=a.drop;if(e&&e.length>0&&t&&t.indexOf("?")>0){var r=t.split("?");return r[0]+"?"+r[1].split("&").map((function(t){return e.some((function(n){return 0===t.indexOf("".concat(n,"="))}))?"".concat(t.split("=")[0],"=").concat("*na*"):t})).join("&")}return t}(location.href,!!Dt)),At(2,document.referrer),At(15,function(){var t=Zt();if(a.track&&Wt(window,"sessionStorage")){var n=sessionStorage.getItem("_cltk");t=n||t,sessionStorage.setItem("_cltk",t)}return t}()),At(16,document.documentElement.lang),At(17,document.dir),At(26,"".concat(window.devicePixelRatio)),At(28,o.dob.toString()),At(29,o.version.toString()),x(0,r.ts),x(1,0),x(35,Dt),navigator&&(At(9,navigator.language),x(33,navigator.hardwareConcurrency),x(32,navigator.maxTouchPoints),x(34,Math.round(navigator.deviceMemory)),(e=navigator.userAgentData)&&e.getHighEntropyValues?e.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){var n;At(22,t.platform),At(23,t.platformVersion),null===(n=t.brands)||void 0===n||n.forEach((function(t){At(24,t.name+"~"+t.version)})),At(25,t.model),x(27,t.mobile?1:0)})):At(22,navigator.platform)),screen&&(x(14,Math.round(screen.width)),x(15,Math.round(screen.height)),x(16,Math.round(screen.colorDepth)));for(var c=0,i=a.cookies;c<i.length;c++){var s=i[c],l=Kt(s);l&&B(s,l)}Gt(o)}function Ht(){Pt=null,Nt=null}function Lt(t,n){void 0===n&&(n=!0);var e=a.lean?0:1;Nt&&(e||!1===n)?t(Nt,!a.lean):Rt.push({callback:t,wait:n})}function Vt(){return Nt?[Nt.userId,Nt.sessionId,Nt.pageNum].join("."):""}function Bt(t){if(void 0===t&&(t=!0),!t)return a.track=!1,$t("_clsk","",-Number.MAX_VALUE),$t("_clck","",-Number.MAX_VALUE),Bn(),void window.setTimeout(Vn,250);jn()&&(a.track=!0,Gt(Ft(),1))}function Xt(){$t("_clsk","",0)}function Jt(){var t=Math.round(Date.now()),n=a.upload&&"string"==typeof a.upload?a.upload.replace("https://",""):"",e=a.lean?0:1;!function(t){Rt.length>0&&Rt.forEach((function(n){!n.callback||n.wait&&!t||n.callback(Nt,!a.lean)}))}(e),$t("_clsk",[Nt.sessionId,t,Nt.pageNum,e,n].join("|"),1)}function Wt(t,n){try{return!!t[n]}catch(t){return!1}}function Gt(t,n){void 0===n&&(n=null),n=null===n?t.consent:n;var e=Math.ceil((Date.now()+31536e6)/864e5),r=0===t.dob?null===a.dob?0:a.dob:t.dob;(null===t.expiry||Math.abs(e-t.expiry)>=1||t.consent!==n||t.dob!==r)&&$t("_clck",[Nt.userId,2,e.toString(36),n,r].join("|"),365)}function Zt(){var t=Math.floor(Math.random()*Math.pow(2,32));return window&&window.crypto&&window.crypto.getRandomValues&&Uint32Array&&(t=window.crypto.getRandomValues(new Uint32Array(1))[0]),t.toString(36)}function Yt(t,n){return void 0===n&&(n=10),parseInt(t,n)}function Ft(){var t={id:Zt(),version:0,expiry:null,consent:0,dob:0},n=Kt("_clck");if(n&&n.length>0){for(var e=n.split("|"),r=0,o=0,u=document.cookie.split(";");o<u.length;o++){r+="_clck"===u[o].split("=")[0].trim()?1:0}if(1===e.length||r>1){var c="".concat(";").concat("expires=").concat(new Date(0).toUTCString()).concat(";path=/");document.cookie="".concat("_clck","=").concat(c),document.cookie="".concat("_clsk","=").concat(c)}e.length>1&&(t.version=Yt(e[1])),e.length>2&&(t.expiry=Yt(e[2],36)),e.length>3&&1===Yt(e[3])&&(t.consent=1),e.length>4&&Yt(e[1])>1&&(t.dob=Yt(e[4])),a.track=a.track||1===t.consent,t.id=a.track?e[0]:t.id}return t}function Kt(t){var n;if(Wt(document,"cookie")){var e=document.cookie.split(";");if(e)for(var r=0;r<e.length;r++){var o=e[r].split("=");if(o.length>1&&o[0]&&o[0].trim()===t){for(var a=Qt(o[1]),u=a[0],c=a[1];u;)u=(n=Qt(c))[0],c=n[1];return c}}}return null}function Qt(t){try{var n=decodeURIComponent(t);return[n!=t,n]}catch(t){}return[!1,t]}function $t(t,n,e){if((a.track||""==n)&&(navigator&&navigator.cookieEnabled||Wt(document,"cookie"))){var r=function(t){return encodeURIComponent(t)}(n),o=new Date;o.setDate(o.getDate()+e);var u=o?"expires="+o.toUTCString():"",c="".concat(t,"=").concat(r).concat(";").concat(u).concat(";path=/");try{if(null===Pt){for(var i=location.hostname?location.hostname.split("."):[],s=i.length-1;s>=0;s--)if(Pt=".".concat(i[s]).concat(Pt||""),s<i.length-1&&(document.cookie="".concat(c).concat(";").concat("domain=").concat(Pt),Kt(t)===n))return;Pt=""}}catch(t){Pt=""}document.cookie=Pt?"".concat(c).concat(";").concat("domain=").concat(Pt):c}}var tn,nn=null;function en(){var t=Nt;nn={version:s,sequence:0,start:0,duration:0,projectId:t.projectId,userId:t.userId,sessionId:t.sessionId,pageNum:t.pageNum,upload:0,end:0}}function rn(){nn=null}function on(t){return nn.start=nn.start+nn.duration,nn.duration=i()-nn.start,nn.sequence++,nn.upload=t&&"sendBeacon"in navigator?1:0,nn.end=t?1:0,[nn.version,nn.sequence,nn.start,nn.duration,nn.projectId,nn.userId,nn.sessionId,nn.pageNum,nn.upload,nn.end]}function an(){tn=[]}function un(t){if(tn&&-1===tn.indexOf(t.message)){var n=a.report;if(n&&n.length>0){var e={v:nn.version,p:nn.projectId,u:nn.userId,s:nn.sessionId,n:nn.pageNum};t.message&&(e.m=t.message),t.stack&&(e.e=t.stack);var r=new XMLHttpRequest;r.open("POST",n,!0),r.send(JSON.stringify(e)),tn.push(t.message)}}return t}function cn(t){return function(){var n=performance.now();try{t.apply(this,arguments)}catch(t){throw un(t)}var e=performance.now()-n;O(4,e),e>30&&(M(7),x(6,e))}}var sn=[];function ln(t,n,e,r){void 0===r&&(r=!1),e=cn(e);try{t[u("addEventListener")](n,e,r),sn.push({event:n,target:t,listener:e,capture:r})}catch(t){}}function pn(){for(var t=0,n=sn;t<n.length;t++){var e=n[t];try{e.target[u("removeEventListener")](e.event,e.listener,e.capture)}catch(t){}}sn=[]}var dn=null,fn=null,hn=null,vn=0;function gn(){return!(vn++>20)}function mn(){vn=0,hn!==bn()&&(Bn(),window.setTimeout(yn,250))}function yn(){Vn(),x(29,1)}function bn(){return location.href?location.href.replace(location.hash,""):location.href}var wn=[],kn=null,_n=null,Sn=null;function En(){_n&&(Sn(),_n=null,null===kn&&Mn())}function In(){wn=[],kn=null,_n=null}function Mn(){var t=wn.shift();t&&(kn=t,t.task().then((function(){t.id===Vt()&&(t.resolve(),kn=null,Mn())})).catch((function(n){t.id===Vt()&&(n&&(n.name,n.message,n.stack),kn=null,Mn())})))}var On=!1;function xn(){On=!0,c=performance.now()+performance.timeOrigin,In(),pn(),an(),hn=bn(),vn=0,ln(window,"popstate",mn),null===dn&&(dn=history.pushState,history.pushState=function(){dn.apply(this,arguments),jn()&&gn()&&mn()}),null===fn&&(fn=history.replaceState,history.replaceState=function(){fn.apply(this,arguments),jn()&&gn()&&mn()})}function Tn(){hn=null,vn=0,an(),pn(),In(),c=0,On=!1}function jn(){return On}function zn(t){if(null===t||On)return!1;for(var n in t)n in a&&(a[n]=t[n]);return!0}function An(){Vn(),_("clarity","restart")}var Cn,qn=null;function Nn(){qn=null}function Rn(t){qn={fetchStart:Math.round(t.fetchStart),connectStart:Math.round(t.connectStart),connectEnd:Math.round(t.connectEnd),requestStart:Math.round(t.requestStart),responseStart:Math.round(t.responseStart),responseEnd:Math.round(t.responseEnd),domInteractive:Math.round(t.domInteractive),domComplete:Math.round(t.domComplete),loadEventStart:Math.round(t.loadEventStart),loadEventEnd:Math.round(t.loadEventEnd),redirectCount:Math.round(t.redirectCount),size:t.transferSize?t.transferSize:0,type:t.type,protocol:t.nextHopProtocol,encodedSize:t.encodedBodySize?t.encodedBodySize:0,decodedSize:t.decodedBodySize?t.decodedBodySize:0},function(t){H(this,void 0,void 0,(function(){var n,e;return L(this,(function(r){return n=i(),e=[n,t],29===t&&(e.push(qn.fetchStart),e.push(qn.connectStart),e.push(qn.connectEnd),e.push(qn.requestStart),e.push(qn.responseStart),e.push(qn.responseEnd),e.push(qn.domInteractive),e.push(qn.domComplete),e.push(qn.loadEventStart),e.push(qn.loadEventEnd),e.push(qn.redirectCount),e.push(qn.size),e.push(qn.type),e.push(qn.protocol),e.push(qn.encodedSize),e.push(qn.decodedSize),Nn(),gt(e)),[2]}))}))}(29)}var Dn=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint"];function Pn(){try{Cn&&Cn.disconnect(),Cn=new PerformanceObserver(cn(Un));for(var t=0,n=Dn;t<n.length;t++){var e=n[t];PerformanceObserver.supportedEntryTypes.indexOf(e)>=0&&("layout-shift"===e&&O(9,0),Cn.observe({type:e,buffered:!0}))}}catch(t){}}function Un(t){!function(t){for(var n=(!("visibilityState"in document)||"visible"===document.visibilityState),e=0;e<t.length;e++){var r=t[e];switch(r.entryType){case"navigation":Rn(r);break;case"resource":var o=r.name;At(4,Hn(o)),o!==a.upload&&o!==a.fallback||x(28,r.duration);break;case"longtask":M(7);break;case"first-input":n&&x(10,r.processingStart-r.startTime);break;case"layout-shift":n&&!r.hadRecentInput&&O(9,1e3*r.value);break;case"largest-contentful-paint":n&&x(8,r.startTime)}}}(t.getEntries())}function Hn(t){var n=document.createElement("a");return n.href=t,n.host}var Ln=[w,w,w,Object.freeze({__proto__:null,start:function(){Nn(),function(){navigator&&"connection"in navigator&&At(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?ln(window,"load",T.bind(this,Pn,0)):Pn())}()},stop:function(){Cn&&Cn.disconnect(),Cn=null,Nn()}})];function Vn(t){void 0===t&&(t=null),function(){try{var t=navigator&&"globalPrivacyControl"in navigator&&1==navigator.globalPrivacyControl;return!1===On&&"undefined"!=typeof Promise&&window.MutationObserver&&document.createTreeWalker&&"now"in Date&&"now"in performance&&"undefined"!=typeof WeakMap&&!t}catch(t){return!1}}()&&(zn(t),xn(),et(),Ln.forEach((function(t){return cn(t.start)()})),null===t&&Gn())}function Bn(){jn()&&(Ln.slice().reverse().forEach((function(t){return cn(t.stop)()})),rt(),Tn(),void 0!==Jn&&(Jn[Wn]=function(){(Jn[Wn].q=Jn[Wn].q||[]).push(arguments),"start"===arguments[0]&&Jn[Wn].q.unshift(Jn[Wn].q.pop())&&Gn()}))}var Xn=Object.freeze({__proto__:null,consent:Bt,event:_,hashText:y,identify:X,metadata:Lt,pause:function(){jn()&&(_("clarity","pause"),null===_n&&(_n=new Promise((function(t){Sn=t}))))},resume:function(){jn()&&(En(),_("clarity","resume"))},set:B,signal:function(t){$=t},start:Vn,stop:Bn,upgrade:P,version:s}),Jn=window,Wn="clarity";function Gn(){if(void 0!==Jn){if(Jn[Wn]&&Jn[Wn].v)return console.warn("Error CL001: Multiple Clarity tags detected.");var t=Jn[Wn]&&Jn[Wn].q||[];for(Jn[Wn]=function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return Xn[t].apply(Xn,n)},Jn[Wn].v=s;t.length>0;)Jn[Wn].apply(Jn,t.shift())}}Gn()}();
|
package/package.json
CHANGED
package/src/core/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
let version = "0.7.
|
|
1
|
+
let version = "0.7.36";
|
|
2
2
|
export default version;
|
package/src/insight/blank.ts
CHANGED
package/src/insight/style.ts
CHANGED
|
@@ -3,13 +3,12 @@ import { StyleSheetState } from "@clarity-types/layout";
|
|
|
3
3
|
import * as core from "@src/core";
|
|
4
4
|
import * as metric from "@src/data/metric";
|
|
5
5
|
|
|
6
|
-
export let
|
|
6
|
+
export let sheetAdoptionState: StyleSheetState[] = [];
|
|
7
|
+
export let sheetUpdateState: StyleSheetState[] = [];
|
|
7
8
|
let replace: (text?: string) => Promise<CSSStyleSheet> = null;
|
|
8
9
|
let replaceSync: (text?: string) => void = null;
|
|
9
10
|
|
|
10
11
|
export function start(): void {
|
|
11
|
-
reset();
|
|
12
|
-
|
|
13
12
|
if (replace === null) {
|
|
14
13
|
replace = CSSStyleSheet.prototype.replace;
|
|
15
14
|
CSSStyleSheet.prototype.replace = function(): Promise<CSSStyleSheet> {
|
|
@@ -44,7 +43,8 @@ export function compute(): void {
|
|
|
44
43
|
}
|
|
45
44
|
|
|
46
45
|
export function reset(): void {
|
|
47
|
-
|
|
46
|
+
sheetAdoptionState = [];
|
|
47
|
+
sheetUpdateState = [];
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
export function stop(): void {
|
package/src/layout/dom.ts
CHANGED
|
@@ -343,6 +343,11 @@ function remove(id: number, source: Source): void {
|
|
|
343
343
|
}
|
|
344
344
|
|
|
345
345
|
function removeNodeFromNodesMap(id: number) {
|
|
346
|
+
// Shadow dom roots shouldn't be deleted,
|
|
347
|
+
// we should keep listening to the mutations there even they're not rendered in the DOM.
|
|
348
|
+
if(nodesMap.get(id).nodeType === Node.DOCUMENT_FRAGMENT_NODE){
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
346
351
|
nodesMap.delete(id);
|
|
347
352
|
|
|
348
353
|
let value = id in values ? values[id] : null;
|
package/src/layout/encode.ts
CHANGED
|
@@ -38,17 +38,15 @@ export default async function (type: Event, timer: Timer = null, ts: number = nu
|
|
|
38
38
|
region.reset();
|
|
39
39
|
break;
|
|
40
40
|
case Event.StyleSheetAdoption:
|
|
41
|
-
|
|
41
|
+
case Event.StyleSheetUpdate:
|
|
42
|
+
for (let entry of style.sheetAdoptionState) {
|
|
42
43
|
tokens = [entry.time, entry.event];
|
|
43
44
|
tokens.push(entry.data.id);
|
|
44
45
|
tokens.push(entry.data.operation);
|
|
45
46
|
tokens.push(entry.data.newIds);
|
|
46
47
|
queue(tokens);
|
|
47
48
|
}
|
|
48
|
-
style.
|
|
49
|
-
break;
|
|
50
|
-
case Event.StyleSheetUpdate:
|
|
51
|
-
for (let entry of style.state) {
|
|
49
|
+
for (let entry of style.sheetUpdateState) {
|
|
52
50
|
tokens = [entry.time, entry.event];
|
|
53
51
|
tokens.push(entry.data.id);
|
|
54
52
|
tokens.push(entry.data.operation);
|
|
@@ -56,6 +54,7 @@ export default async function (type: Event, timer: Timer = null, ts: number = nu
|
|
|
56
54
|
queue(tokens);
|
|
57
55
|
}
|
|
58
56
|
style.reset();
|
|
57
|
+
break;
|
|
59
58
|
case Event.Animation:
|
|
60
59
|
for (let entry of animation.state) {
|
|
61
60
|
tokens = [entry.time, entry.event];
|
package/src/layout/style.ts
CHANGED
|
@@ -3,29 +3,33 @@ import { StyleSheetOperation, StyleSheetState } from "@clarity-types/layout";
|
|
|
3
3
|
import { time } from "@src/core/time";
|
|
4
4
|
import { shortid, data as metadataFields } from "@src/data/metadata";
|
|
5
5
|
import encode from "@src/layout/encode";
|
|
6
|
-
import { getId
|
|
6
|
+
import { getId } from "@src/layout/dom";
|
|
7
7
|
import * as core from "@src/core";
|
|
8
8
|
import { getCssRules } from "./node";
|
|
9
9
|
import * as metric from "@src/data/metric";
|
|
10
10
|
|
|
11
|
-
export let
|
|
11
|
+
export let sheetUpdateState: StyleSheetState[] = [];
|
|
12
|
+
export let sheetAdoptionState: StyleSheetState[] = [];
|
|
12
13
|
let replace: (text?: string) => Promise<CSSStyleSheet> = null;
|
|
13
14
|
let replaceSync: (text?: string) => void = null;
|
|
14
15
|
const styleSheetId = 'claritySheetId';
|
|
15
16
|
const styleSheetPageNum = 'claritySheetNum';
|
|
16
17
|
let styleSheetMap = {};
|
|
17
18
|
let styleTimeMap: {[key: string]: number} = {};
|
|
19
|
+
let documentNodes = [];
|
|
18
20
|
|
|
19
21
|
export function start(): void {
|
|
20
|
-
reset();
|
|
21
|
-
|
|
22
22
|
if (replace === null) {
|
|
23
23
|
replace = CSSStyleSheet.prototype.replace;
|
|
24
24
|
CSSStyleSheet.prototype.replace = function(): Promise<CSSStyleSheet> {
|
|
25
25
|
if (core.active()) {
|
|
26
26
|
metric.max(Metric.ConstructedStyles, 1);
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
// if we haven't seen this stylesheet on this page yet, wait until the checkDocumentStyles has found it
|
|
28
|
+
// and attached the sheet to a document. This way the timestamp of the style sheet creation will align
|
|
29
|
+
// to when it is used in the document rather than potentially being misaligned during the traverse process.
|
|
30
|
+
if (this[styleSheetPageNum] === metadataFields.pageNum) {
|
|
31
|
+
trackStyleChange(time(), this[styleSheetId], StyleSheetOperation.Replace, arguments[0]);
|
|
32
|
+
}
|
|
29
33
|
}
|
|
30
34
|
return replace.apply(this, arguments);
|
|
31
35
|
};
|
|
@@ -36,28 +40,22 @@ export function start(): void {
|
|
|
36
40
|
CSSStyleSheet.prototype.replaceSync = function(): void {
|
|
37
41
|
if (core.active()) {
|
|
38
42
|
metric.max(Metric.ConstructedStyles, 1);
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
// if we haven't seen this stylesheet on this page yet, wait until the checkDocumentStyles has found it
|
|
44
|
+
// and attached the sheet to a document. This way the timestamp of the style sheet creation will align
|
|
45
|
+
// to when it is used in the document rather than potentially being misaligned during the traverse process.
|
|
46
|
+
if (this[styleSheetPageNum] === metadataFields.pageNum) {
|
|
47
|
+
trackStyleChange(time(), this[styleSheetId], StyleSheetOperation.ReplaceSync, arguments[0]);
|
|
48
|
+
}
|
|
41
49
|
}
|
|
42
50
|
return replaceSync.apply(this, arguments);
|
|
43
51
|
};
|
|
44
52
|
}
|
|
45
53
|
}
|
|
46
54
|
|
|
47
|
-
function bootStrapStyleSheet(styleSheet: CSSStyleSheet): void {
|
|
48
|
-
// If we haven't seen this style sheet on this page yet, we create a reference to it for the visualizer.
|
|
49
|
-
// For SPA or times in which Clarity restarts on a given page, our visualizer would lose context
|
|
50
|
-
// on the previously created style sheet for page N-1.
|
|
51
|
-
const pageNum = metadataFields.pageNum;
|
|
52
|
-
if (styleSheet[styleSheetPageNum] !== pageNum) {
|
|
53
|
-
styleSheet[styleSheetPageNum] = pageNum;
|
|
54
|
-
styleSheet[styleSheetId] = shortid();
|
|
55
|
-
// need to pass a create style sheet event (don't add it to any nodes, but do create it)
|
|
56
|
-
trackStyleChange(time(), styleSheet[styleSheetId], StyleSheetOperation.Create);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
55
|
export function checkDocumentStyles(documentNode: Document, timestamp: number): void {
|
|
56
|
+
if (documentNodes.indexOf(documentNode) === -1) {
|
|
57
|
+
documentNodes.push(documentNode);
|
|
58
|
+
}
|
|
61
59
|
timestamp = timestamp || time();
|
|
62
60
|
if (!documentNode?.adoptedStyleSheets) {
|
|
63
61
|
// if we don't have adoptedStyledSheets on the Node passed to us, we can short circuit.
|
|
@@ -67,7 +65,10 @@ export function checkDocumentStyles(documentNode: Document, timestamp: number):
|
|
|
67
65
|
let currentStyleSheets: string[] = [];
|
|
68
66
|
for (var styleSheet of documentNode.adoptedStyleSheets) {
|
|
69
67
|
const pageNum = metadataFields.pageNum;
|
|
70
|
-
//
|
|
68
|
+
// If we haven't seen this style sheet on this page yet, we create a reference to it for the visualizer.
|
|
69
|
+
// For SPA or times in which Clarity restarts on a given page, our visualizer would lose context
|
|
70
|
+
// on the previously created style sheet for page N-1.
|
|
71
|
+
// Then we synthetically call replaceSync with its contents to bootstrap it
|
|
71
72
|
if (styleSheet[styleSheetPageNum] !== pageNum) {
|
|
72
73
|
styleSheet[styleSheetPageNum] = pageNum;
|
|
73
74
|
styleSheet[styleSheetId] = shortid();
|
|
@@ -90,23 +91,27 @@ export function checkDocumentStyles(documentNode: Document, timestamp: number):
|
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
export function compute(): void {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
for (var documentNode of documentNodes) {
|
|
95
|
+
var docId = documentNode == document ? -1 : getId(documentNode);
|
|
96
|
+
let ts = docId in styleTimeMap ? styleTimeMap[docId] : null;
|
|
97
|
+
checkDocumentStyles(document, ts);
|
|
98
|
+
}
|
|
96
99
|
}
|
|
97
100
|
|
|
98
101
|
export function reset(): void {
|
|
99
|
-
|
|
102
|
+
sheetAdoptionState = [];
|
|
103
|
+
sheetUpdateState = [];
|
|
100
104
|
}
|
|
101
105
|
|
|
102
106
|
export function stop(): void {
|
|
103
107
|
styleSheetMap = {};
|
|
104
108
|
styleTimeMap = {};
|
|
109
|
+
documentNodes = [];
|
|
105
110
|
reset();
|
|
106
111
|
}
|
|
107
112
|
|
|
108
113
|
function trackStyleChange(time: number, id: string, operation: StyleSheetOperation, cssRules?: string): void {
|
|
109
|
-
|
|
114
|
+
sheetUpdateState.push({
|
|
110
115
|
time,
|
|
111
116
|
event: Event.StyleSheetUpdate,
|
|
112
117
|
data: {
|
|
@@ -120,7 +125,7 @@ function trackStyleChange(time: number, id: string, operation: StyleSheetOperati
|
|
|
120
125
|
}
|
|
121
126
|
|
|
122
127
|
function trackStyleAdoption(time: number, id: number, operation: StyleSheetOperation, newIds: string[]): void {
|
|
123
|
-
|
|
128
|
+
sheetAdoptionState.push({
|
|
124
129
|
time,
|
|
125
130
|
event: Event.StyleSheetAdoption,
|
|
126
131
|
data: {
|