clarity-js 0.8.12 → 0.8.14

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.
Files changed (92) hide show
  1. package/build/clarity.extended.js +1 -1
  2. package/build/clarity.insight.js +1 -1
  3. package/build/clarity.js +4609 -4762
  4. package/build/clarity.min.js +1 -1
  5. package/build/clarity.module.js +4609 -4762
  6. package/build/clarity.performance.js +1 -1
  7. package/package.json +69 -76
  8. package/rollup.config.ts +88 -84
  9. package/src/clarity.ts +29 -35
  10. package/src/core/api.ts +1 -8
  11. package/src/core/config.ts +2 -2
  12. package/src/core/event.ts +32 -36
  13. package/src/core/hash.ts +6 -5
  14. package/src/core/history.ts +11 -10
  15. package/src/core/index.ts +11 -21
  16. package/src/core/measure.ts +5 -9
  17. package/src/core/report.ts +6 -10
  18. package/src/core/scrub.ts +27 -30
  19. package/src/core/task.ts +45 -73
  20. package/src/core/time.ts +3 -3
  21. package/src/core/timeout.ts +2 -2
  22. package/src/core/version.ts +1 -1
  23. package/src/data/baseline.ts +55 -60
  24. package/src/data/consent.ts +22 -4
  25. package/src/data/custom.ts +13 -8
  26. package/src/data/dimension.ts +7 -11
  27. package/src/data/encode.ts +38 -36
  28. package/src/data/envelope.ts +38 -38
  29. package/src/data/extract.ts +77 -86
  30. package/src/data/index.ts +9 -11
  31. package/src/data/limit.ts +1 -1
  32. package/src/data/metadata.ts +319 -305
  33. package/src/data/metric.ts +8 -18
  34. package/src/data/ping.ts +4 -8
  35. package/src/data/signal.ts +18 -18
  36. package/src/data/summary.ts +4 -6
  37. package/src/data/token.ts +8 -10
  38. package/src/data/upgrade.ts +3 -7
  39. package/src/data/upload.ts +49 -100
  40. package/src/data/variable.ts +20 -27
  41. package/src/diagnostic/encode.ts +2 -2
  42. package/src/diagnostic/fraud.ts +4 -3
  43. package/src/diagnostic/internal.ts +5 -11
  44. package/src/diagnostic/script.ts +8 -12
  45. package/src/global.ts +1 -1
  46. package/src/insight/blank.ts +4 -4
  47. package/src/insight/encode.ts +17 -23
  48. package/src/insight/snapshot.ts +37 -57
  49. package/src/interaction/change.ts +6 -9
  50. package/src/interaction/click.ts +28 -34
  51. package/src/interaction/clipboard.ts +2 -2
  52. package/src/interaction/encode.ts +31 -35
  53. package/src/interaction/input.ts +9 -11
  54. package/src/interaction/pointer.ts +30 -41
  55. package/src/interaction/resize.ts +5 -5
  56. package/src/interaction/scroll.ts +17 -20
  57. package/src/interaction/selection.ts +8 -12
  58. package/src/interaction/submit.ts +2 -2
  59. package/src/interaction/timeline.ts +9 -13
  60. package/src/interaction/unload.ts +1 -1
  61. package/src/interaction/visibility.ts +2 -2
  62. package/src/layout/animation.ts +41 -47
  63. package/src/layout/discover.ts +5 -5
  64. package/src/layout/document.ts +19 -31
  65. package/src/layout/dom.ts +91 -141
  66. package/src/layout/encode.ts +37 -52
  67. package/src/layout/mutation.ts +318 -321
  68. package/src/layout/node.ts +81 -104
  69. package/src/layout/offset.ts +6 -7
  70. package/src/layout/region.ts +43 -66
  71. package/src/layout/schema.ts +8 -15
  72. package/src/layout/selector.ts +25 -47
  73. package/src/layout/style.ts +37 -45
  74. package/src/layout/target.ts +10 -14
  75. package/src/layout/traverse.ts +11 -17
  76. package/src/performance/blank.ts +1 -1
  77. package/src/performance/encode.ts +4 -4
  78. package/src/performance/interaction.ts +70 -58
  79. package/src/performance/navigation.ts +2 -2
  80. package/src/performance/observer.ts +26 -59
  81. package/src/queue.ts +9 -16
  82. package/tsconfig.json +1 -1
  83. package/tslint.json +32 -25
  84. package/types/core.d.ts +13 -13
  85. package/types/data.d.ts +48 -32
  86. package/types/diagnostic.d.ts +1 -1
  87. package/types/index.d.ts +1 -0
  88. package/types/interaction.d.ts +4 -5
  89. package/types/layout.d.ts +21 -36
  90. package/types/performance.d.ts +5 -6
  91. package/.lintstagedrc.yml +0 -3
  92. package/biome.json +0 -43
@@ -1 +1 @@
1
- !function(){"use strict";var t=Object.freeze({__proto__:null,get queue(){return bt},get start(){return yt},get stop(){return wt},get track(){return dt}}),n=Object.freeze({__proto__:null,get check(){return Tt},get compute(){return xt},get data(){return pt},get start(){return Ot},get stop(){return jt},get trigger(){return Et}}),e=Object.freeze({__proto__:null,get compute(){return Dt},get data(){return Nt},get log(){return qt},get reset(){return Rt},get start(){return Ct},get stop(){return Pt},get updates(){return zt}}),r=Object.freeze({__proto__:null,get callback(){return Gt},get callbacks(){return Xt},get clear(){return Ft},get consent(){return Zt},get data(){return Ut},get electron(){return Vt},get id(){return Jt},get metadata(){return Wt},get save(){return Kt},get shortid(){return tn},get start(){return Bt},get stop(){return Yt}}),a=Object.freeze({__proto__:null,get data(){return cn},get envelope(){return dn},get start(){return sn},get stop(){return ln}}),o={projectId:null,delay:1e3,lean:!1,lite:!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,conversions:!1,includeSubdomains:!0},i=[],u=null;function c(){}var s=[];function l(){}function d(){}var p=Object.freeze({__proto__:null,checkDocumentStyles:function(t){},compute:function(){},data:u,hashText:l,keys:s,log:c,observe:function(){},reset:function(){},sheetAdoptionState:[],sheetUpdateState:[],start:function(){},state:i,stop:function(){},trigger:d});function f(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}var h=255,v=!0,g=null,m=null;function y(t,n,e){void 0===n&&(n=!1),void 0===e&&(e=!1);var r=t;if(n)r="".concat("https://").concat("Electron");else{var a=o.drop;if(a&&a.length>0&&t&&t.indexOf("?")>0){var i=t.split("?"),u=i[0],c=i[1];r="".concat(u,"?").concat(c.split("&").map((function(t){return a.some((function(n){return 0===t.indexOf("".concat(n,"="))}))?"".concat(t.split("=")[0],"=").concat("*na*"):t})).join("&"))}}return e&&(r=r.substring(0,h)),r}function b(t,n,e){return function(){if(v&&null===g)try{g=/\p{N}/gu,m=/\p{L}/gu}catch(t){v=!1}}(),t?t.replace(m,n).replace(g,e):t}var w=0;function k(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-w),0)}var S="0.8.12";var _=null;function I(t,n){qn()&&t&&"string"==typeof t&&t.length<255&&(_=n&&"string"==typeof n&&n.length<255?{key:t,value:n}:{value:t},Mt(24))}var M,O=null,T=null;function E(t){t in O||(O[t]=0),t in T||(T[t]=0),O[t]++,T[t]++}function x(t,n){null!==n&&(t in O||(O[t]=0),t in T||(T[t]=0),O[t]+=n,T[t]+=n)}function j(t,n){null!==n&&!1===Number.isNaN(n)&&(t in O||(O[t]=0),(n>O[t]||0===O[t])&&(T[t]=n,O[t]=n))}function N(t,n,e){return window.setTimeout(hn(t),n,e)}function z(t){window.clearTimeout(t)}var A=0,C=0,P=null;function q(){P&&z(P),P=N(D,C),A=k()}function D(){var t=k();M={gap:t-A},Mt(25),M.gap<3e5?P=N(D,C):function(){if(An){I("clarity","suspend"),oe();for(var t=0,n=["mousemove","touchstart"];t<n.length;t++){var e=n[t];gn(document,e,Dn)}for(var r=0,a=["resize","scroll","pageshow"];r<a.length;r++){e=a[r];gn(window,e,Dn)}}}()}var R=Object.freeze({__proto__:null,get data(){return M},reset:q,start:function(){C=6e4,A=0},stop:function(){z(P),A=0,C=0}}),H=null;function U(t){qn()&&o.lean&&(o.lean=!1,H={key:t},Gt(),Kt(),o.upgrade&&o.upgrade(t),Mt(3),o.lite)}var X=Object.freeze({__proto__:null,get data(){return H},start:function(){!o.lean&&o.upgrade&&o.upgrade("Config"),H=null},stop:function(){H=null},upgrade:U});function V(t,n,e,r){return new(e||(e=Promise))((function(a,o){function i(t){try{c(r.next(t))}catch(t){o(t)}}function u(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var n;t.done?a(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(i,u)}c((r=r.apply(t,n||[])).next())}))}function L(t,n){var e,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(u){return function(c){return function(u){if(e)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(i=0)),i;)try{if(e=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){i.label=u[1];break}if(6===u[0]&&i.label<a[1]){i.label=a[1],a=u;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(u);break}a[2]&&i.ops.pop(),i.trys.pop();continue}u=n.call(t,i)}catch(t){u=[6,t],r=0}finally{e=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}var B=null;function Y(t,n){J(t,"string"==typeof n?[n]:n)}function W(t,n,e,r){return void 0===n&&(n=null),void 0===e&&(e=null),void 0===r&&(r=null),V(this,void 0,void 0,(function(){var a,o;return L(this,(function(i){switch(i.label){case 0:return o={},[4,G(t)];case 1:return o.userId=i.sent(),o.userHint=r||((u=t)&&u.length>=5?"".concat(u.substring(0,2)).concat(b(u.substring(2),"*","*")):b(u,"*","*")),J("userId",[(a=o).userId]),J("userHint",[a.userHint]),J("userType",[K(t)]),n&&(J("sessionId",[n]),a.sessionId=n),e&&(J("pageId",[e]),a.pageId=e),[2,a]}var u}))}))}function J(t,n){if(qn()&&t&&n&&"string"==typeof t&&t.length<255){for(var e=(t in B?B[t]:[]),r=0;r<n.length;r++)"string"==typeof n[r]&&n[r].length<255&&e.push(n[r]);B[t]=e}}function Z(){Mt(34)}function F(){B={}}function G(t){return V(this,void 0,void 0,(function(){var n;return L(this,(function(e){switch(e.label){case 0:return e.trys.push([0,3,,4]),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".concat(t.toString(16)).slice(-2)})).join("")];case 2:return[2,""];case 3:return e.sent(),[2,""];case 4:return[2]}}))}))}function K(t){return t&&t.indexOf("@")>0?"email":"string"}var Q="CompressionStream"in window;function $(t){return V(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]),Q?(n=new ReadableStream({start:function(n){return V(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,tt(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 tt(t){return V(this,void 0,void 0,(function(){var n,e,r,a,o;return L(this,(function(i){switch(i.label){case 0:n=t.getReader(),e=[],r=!1,a=[],i.label=1;case 1:return r?[3,3]:[4,n.read()];case 2:return o=i.sent(),r=o.done,a=o.value,r?[2,e]:(e.push.apply(e,a),[3,1]);case 3:return[2,e]}}))}))}var nt=null;function et(t){try{if(!nt)return;for(var n=function(t){try{return JSON.parse(t)}catch(t){return[]}}(t),e=0,r=n;e<r.length;e++){var a=r[e];nt(a)}}catch(t){}}var rt=[p,e,Object.freeze({__proto__:null,compute:Z,get data(){return B},identify:W,reset:F,set:Y,start:function(){F()},stop:function(){F()}}),n,p,r,a,t,R,X,p];function at(){O={},T={},E(5);for(var t=0,n=rt;t<n.length;t++){hn(n[t].start)()}}function ot(){for(var t=0,n=rt.slice().reverse();t<n.length;t++){hn(n[t].stop)()}O={},T={}}function it(){Z(),Dt(),Mt(0),xt()}var ut,ct,st,lt,dt,pt,ft=0,ht=0,vt=null,gt=0,mt=!1;function yt(){lt=!0,ft=0,ht=0,mt=!1,gt=0,ut=[],ct=[],st={},dt=null}function bt(t,n){if(void 0===n&&(n=!0),lt){var e=k(),r=t.length>1?t[1]:null,a=JSON.stringify(t);switch(o.lean?!mt&&ht+a.length>10485760&&(mt=!0):mt=!1,r){case 5:if(mt)break;ft+=a.length;case 37:case 6:case 43:case 45:case 46:if(mt)break;ht+=a.length,ut.push(a);break;default:ct.push(a)}E(25);var i=function(){var t=!1===o.lean&&ft>0?100:cn.sequence*o.delay;return"string"==typeof o.upload?Math.max(Math.min(t,3e4),100):o.delay}();e-gt>2*i&&(z(vt),vt=null),n&&null===vt&&(25!==r&&q(),vt=N(kt,i),gt=e,Tt(ht))}}function wt(){z(vt),kt(!0),ft=0,ht=0,mt=!1,gt=0,ut=[],ct=[],st={},dt=null,lt=!1}function kt(t){return void 0===t&&(t=!1),V(this,void 0,void 0,(function(){var n,e,r,a,i,u,c,s;return L(this,(function(l){switch(l.label){case 0:return vt=null,(n=!1===o.lean&&ht>0&&(ht<1048576||cn.sequence>0))&&j(1,1),it(),e=!0===t,r=JSON.stringify(dn(e)),a="[".concat(ct.join(),"]"),i=n?"[".concat(ut.join(),"]"):"",u=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:a,p:i}),e?(s=null,[3,3]):[3,1];case 1:return[4,$(u)];case 2:s=l.sent(),l.label=3;case 3:return x(2,(c=s)?c.length:u.length),St(u,c,cn.sequence,e),ct=[],n&&(ut=[],ht=0,ft=0,mt=!1),[2]}}))}))}function St(t,n,e,r){if(void 0===r&&(r=!1),"string"==typeof o.upload){var a=o.upload,i=!1;if(r&&"sendBeacon"in navigator)try{(i=navigator.sendBeacon.bind(navigator)(a,t))&&It(e)}catch(t){}if(!1===i){e in st?st[e].attempts++:st[e]={data:t,attempts:1};var u=new XMLHttpRequest;u.open("POST",a,!0),u.timeout=15e3,u.ontimeout=function(){fn(new Error("".concat("Timeout"," : ").concat(a)))},null!==e&&(u.onreadystatechange=function(){hn(_t)(u,e)}),u.withCredentials=!0,n?(u.setRequestHeader("Accept","application/x-clarity-gzip"),u.send(n)):u.send(t)}}else if(o.upload){(0,o.upload)(t),It(e)}}function _t(t,n){var e=st[n];t&&4===t.readyState&&e&&((t.status<200||t.status>208)&&e.attempts<=1?t.status>=400&&t.status<500?Et(6):(0===t.status&&(o.upload=o.fallback?o.fallback:o.upload),St(e.data,null,n)):(dt={sequence:n,attempts:e.attempts,status:t.status},e.attempts>1&&Mt(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 a=r[e],i=a&&a.length>0?a.split(/ (.*)/):[""];switch(i[0]){case"END":Et(6);break;case"UPGRADE":U("Auto");break;case"ACTION":o.action&&i.length>1&&o.action(i[1]);break;case"EXTRACT":i.length>1&&i[1];break;case"SIGNAL":i.length>1&&et(i[1])}}}(t.responseText),0===t.status&&(St(e.data,null,n,!0),Et(3)),t.status>=200&&t.status<=208&&It(n),delete st[n]))}function It(t){1===t&&(Kt(),Gt())}function Mt(t){var n=[k(),t];switch(t){case 4:var e=i;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),n.push(e.data.pointerTime),n.push(e.data.moveX),n.push(e.data.moveY),n.push(e.data.moveTime),n.push(e.data.downX),n.push(e.data.downY),n.push(e.data.downTime),n.push(e.data.upX),n.push(e.data.upY),n.push(e.data.upTime),n.push(e.data.pointerPrevX),n.push(e.data.pointerPrevY),n.push(e.data.pointerPrevTime),bt(n,!1));break;case 25:n.push(M.gap),bt(n);break;case 35:n.push(pt.check),bt(n,!1);break;case 3:n.push(H.key),bt(n);break;case 2:n.push(dt.sequence),n.push(dt.attempts),n.push(dt.status),bt(n,!1);break;case 24:_.key&&n.push(_.key),n.push(_.value),bt(n);break;case 34:var r=Object.keys(B);if(r.length>0){for(var a=0,o=r;a<o.length;a++){var c=o[a];n.push(c),n.push(B[c])}F(),bt(n,!1)}break;case 0:var l=Object.keys(T);if(l.length>0){for(var d=0,p=l;d<p.length;d++){var f=p[d],h=Number.parseInt(f,10);n.push(h),n.push(Math.round(T[f]))}T={},bt(n,!1)}break;case 1:var v=Object.keys(zt);if(v.length>0){for(var g=0,m=v;g<m.length;g++){var y=m[g];h=Number.parseInt(y,10);n.push(h),n.push(zt[y])}Rt(),bt(n,!1)}break;case 36:var b=Object.keys(u);if(b.length>0){for(var w=0,S=b;w<S.length;w++){var I=S[w];h=Number.parseInt(I,10);n.push(h),n.push([].concat.apply([],u[I]))}bt(n,!1)}break;case 40:for(var O=s,E=0,x=Array.from(O);E<x.length;E++){I=x[E];n.push(I);var j=[];for(var y in u[I]){h=Number.parseInt(y,10);j.push(h),j.push(u[I][y])}n.push(j)}bt(n,!1)}}function Ot(){pt={check:0}}function Tt(t){if(0===pt.check){var n=pt.check;n=cn.sequence>=128?1:n,n=cn.pageNum>=128?7:n,n=k()>72e5?2:n,(n=t>10485760?2:n)!==pt.check&&Et(n)}}function Et(t){pt.check=t,5!==t&&(Ft(),oe())}function xt(){0!==pt.check&&Mt(35)}function jt(){pt=null}var Nt=null,zt=null,At=!1;function Ct(){Nt={},zt={},At=!1}function Pt(){Nt={},zt={},At=!1}function qt(t,n){if(n){var e="".concat(n);if(t in Nt||(Nt[t]=[]),Nt[t].indexOf(e)<0){if(Nt[t].length>128)return void(At||(At=!0,Et(5)));Nt[t].push(e),t in zt||(zt[t]=[]),zt[t].push(e)}}}function Dt(){Mt(1)}function Rt(){zt={},At=!1}function Ht(t){qt(36,t.toString())}var Ut=null,Xt=[],Vt=0,Lt=null;function Bt(){var t,n,e;Lt=null;var r=navigator&&"userAgent"in navigator?navigator.userAgent:"",a=null!==(e=null===(n=null===(t=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===t?void 0:t.resolvedOptions())||void 0===n?void 0:n.timeZone)&&void 0!==e?e:"",i=(new Date).getTimezoneOffset().toString(),u=window.location.ancestorOrigins?Array.from(window.location.ancestorOrigins).toString():"",c=(null===document||void 0===document?void 0:document.title)?document.title:"";Vt=r.indexOf("Electron")>0?1:0;var s,l=function(){var t={session:tn(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},n=rn("_clsk",!o.includeSubdomains);if(n){var e=n.includes("^")?n.split("^"):n.split("|");e.length>=5&&t.ts-nn(e[1])<18e5&&(t.session=e[0],t.count=nn(e[2])+1,t.upgrade=nn(e[3]),t.upload=e.length>=6?"".concat("https://").concat(e[5],"/").concat(e[4]):"".concat("https://").concat(e[4]))}return t}(),d=en(),p=o.projectId||function(t,n){void 0===n&&(n=null);for(var e,r=5381,a=r,o=0;o<t.length;o+=2)r=(r<<5)+r^t.charCodeAt(o),o+1<t.length&&(a=(a<<5)+a^t.charCodeAt(o+1));return e=Math.abs(r+11579*a),(n?e%Math.pow(2,n):e).toString(36)}(location.host);Ut={projectId:p,userId:d.id,sessionId:l.session,pageNum:l.count},o.lean=o.track&&null!==l.upgrade?0===l.upgrade:o.lean,o.upload=o.track&&"string"==typeof o.upload&&l.upload&&l.upload.length>8?l.upload:o.upload,qt(0,r),qt(3,c),qt(1,y(location.href,!!Vt)),qt(2,document.referrer),qt(15,function(){var t=tn();if(o.track&&Qt(window,"sessionStorage")){var n=sessionStorage.getItem("_cltk");t=n||t,sessionStorage.setItem("_cltk",t)}return t}()),qt(16,document.documentElement.lang),qt(17,document.dir),qt(26,"".concat(window.devicePixelRatio)),qt(28,d.dob.toString()),qt(29,d.version.toString()),qt(33,u),qt(34,a),qt(35,i),j(0,l.ts),j(1,0),j(35,Vt),navigator&&(qt(9,navigator.language),j(33,navigator.hardwareConcurrency),j(32,navigator.maxTouchPoints),j(34,Math.round(navigator.deviceMemory)),(null==(s=navigator.userAgentData)?void 0:s.getHighEntropyValues)?s.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){if(qt(22,t.platform),qt(23,t.platformVersion),t.brands)for(var n=0,e=t.brands;n<e.length;n++){var r=e[n];qt(24,r.name+"~"+r.version)}qt(25,t.model),j(27,t.mobile?1:0)})):qt(22,navigator.platform)),screen&&(j(14,Math.round(screen.width)),j(15,Math.round(screen.height)),j(16,Math.round(screen.colorDepth)));for(var f=0,h=o.cookies;f<h.length;f++){var v=h[f],g=rn(v);g&&Y(v,g)}!function(t){Ht(t?1:0)}(o.track),$t(d)}function Yt(){Lt=null,Ut=null;for(var t=0,n=Xt;t<n.length;t++){n[t].called=!1}}function Wt(t,n,e){void 0===n&&(n=!0),void 0===e&&(e=!1);var r=o.lean?0:1,a=!1;Ut&&(r||!1===n)&&(t(Ut,!o.lean),a=!0),!e&&a||Xt.push({callback:t,wait:n,recall:e,called:a})}function Jt(){return Ut?[Ut.userId,Ut.sessionId,Ut.pageNum].join("."):""}function Zt(t){if(void 0===t&&(t=!0),!t)return o.track=!1,on("_clsk","",-Number.MAX_VALUE),on("_clck","",-Number.MAX_VALUE),oe(),void window.setTimeout(ae,250);qn()&&(o.track=!0,$t(en(),1),Kt(),Ht(2))}function Ft(){on("_clsk","",0)}function Gt(){!function(t){if(Xt.length>0)for(var n=0;n<Xt.length;n++){var e=Xt[n];!e.callback||e.called||e.wait&&!t||(e.callback(Ut,!o.lean),e.called=!0,e.recall||(Xt.splice(n,1),n--))}}(o.lean?0:1)}function Kt(){if(Ut&&o.track){var t=Math.round(Date.now()),n=o.upload&&"string"==typeof o.upload?o.upload.replace("https://",""):"",e=o.lean?0:1;on("_clsk",[Ut.sessionId,t,Ut.pageNum,e,n].join("|"),1)}}function Qt(t,n){try{return!!t[n]}catch(t){return!1}}function $t(t,n){void 0===n&&(n=null);var e=null===n?t.consent:n,r=Math.ceil((Date.now()+31536e6)/864e5),a=0===t.dob?null===o.dob?0:o.dob:t.dob;(null===t.expiry||Math.abs(r-t.expiry)>=1||t.consent!==e||t.dob!==a)&&on("_clck",[Ut.userId,2,r.toString(36),e,a].join("|"),365)}function tn(){var t,n=Math.floor(Math.random()*Math.pow(2,32));return(null===(t=null===window||void 0===window?void 0:window.crypto)||void 0===t?void 0:t.getRandomValues)&&Uint32Array&&(n=window.crypto.getRandomValues(new Uint32Array(1))[0]),n.toString(36)}function nn(t,n){return void 0===n&&(n=10),Number.parseInt(t,n)}function en(){var t={id:tn(),version:0,expiry:null,consent:0,dob:0},n=rn("_clck",!o.includeSubdomains);if(n&&n.length>0){var e=n.includes("^")?n.split("^"):n.split("|");e.length>1&&(t.version=nn(e[1])),e.length>2&&(t.expiry=nn(e[2],36)),e.length>3&&1===nn(e[3])&&(t.consent=1),e.length>4&&nn(e[1])>1&&(t.dob=nn(e[4])),o.track=o.track||1===t.consent,t.id=o.track?e[0]:t.id}return t}function rn(t,n){var e;if(void 0===n&&(n=!1),Qt(document,"cookie")){var r=document.cookie.split(";");if(r)for(var a=0;a<r.length;a++){var o=r[a].split("=");if(o.length>1&&o[0]&&o[0].trim()===t){for(var i=an(o[1]),u=i[0],c=i[1];u;)u=(e=an(c))[0],c=e[1];return n?c.endsWith("".concat("~","1"))?c.substring(0,c.length-2):null:c}}}return null}function an(t){try{var n=decodeURIComponent(t);return[n!==t,n]}catch(t){}return[!1,t]}function on(t,n,e){if((o.track||""===n)&&((null===navigator||void 0===navigator?void 0:navigator.cookieEnabled)||Qt(document,"cookie"))){var r=function(t){return encodeURIComponent(t)}(n),a=new Date;a.setDate(a.getDate()+e);var i=a?"expires="+a.toUTCString():"",u="".concat(t,"=").concat(r).concat(";").concat(i).concat(";path=/");try{if(null===Lt){for(var c=location.hostname?location.hostname.split("."):[],s=c.length-1;s>=0;s--)if(Lt=".".concat(c[s]).concat(Lt||""),s<c.length-1&&(document.cookie="".concat(u).concat(";").concat("domain=").concat(Lt),rn(t)===n))return;Lt=""}}catch(t){Lt=""}document.cookie=Lt?"".concat(u).concat(";").concat("domain=").concat(Lt):u}}var un,cn=null;function sn(){var t=Ut;cn={version:S,sequence:0,start:0,duration:0,projectId:t.projectId,userId:t.userId,sessionId:t.sessionId,pageNum:t.pageNum,upload:0,end:0,applicationPlatform:0,url:""}}function ln(){cn=null}function dn(t){return cn.start=cn.start+cn.duration,cn.duration=k()-cn.start,cn.sequence++,cn.upload=t&&"sendBeacon"in navigator?1:0,cn.end=t?1:0,cn.applicationPlatform=0,cn.url=y(location.href,!1,!0),[cn.version,cn.sequence,cn.start,cn.duration,cn.projectId,cn.userId,cn.sessionId,cn.pageNum,cn.upload,cn.end,cn.applicationPlatform,cn.url]}function pn(){un=[]}function fn(t){if(un&&-1===un.indexOf(t.message)){var n=o.report;if(n&&n.length>0){var e={v:cn.version,p:cn.projectId,u:cn.userId,s:cn.sessionId,n:cn.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)),un.push(t.message)}}return t}function hn(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=performance.now();try{t.apply(this,n)}catch(t){throw fn(t)}var a=performance.now()-r;x(4,a),a>30&&(E(7),j(6,a),"".concat(t.dn||t.name,"-").concat(a))}}var vn=new Map;function gn(t,n,e,r,a){void 0===r&&(r=!1),void 0===a&&(a=!0),e=hn(e);try{t[f("addEventListener")](n,e,{capture:r,passive:a}),function(t){return vn.has(t)}(t)||vn.set(t,[]),vn.get(t).push({event:n,listener:e,options:{capture:r,passive:a}})}catch(t){}}function mn(){vn.forEach((function(t,n){!function(t,n){for(var e=0,r=t;e<r.length;e++){var a=r[e];try{n[f("removeEventListener")](a.event,a.listener,{capture:a.options.capture,passive:a.options.passive})}catch(t){}}vn.delete(n)}(t,n)})),vn=new Map}var yn=null,bn=null,wn=null,kn=0;function Sn(){return!(kn++>20)}function _n(){_n.dn=1,kn=0,wn!==Mn()&&(oe(),window.setTimeout(In,250))}function In(){ae(),j(29,1)}function Mn(){return location.href?location.href.replace(location.hash,""):location.href}var On=[],Tn=null,En=null,xn=null;function jn(){En&&(xn(),En=null,null===Tn&&zn())}function Nn(){On=[],Tn=null,En=null}function zn(){var t=On.shift();t&&(Tn=t,t.task().then((function(){t.id===Jt()&&(t.resolve(),Tn=null,zn())})).catch((function(n){t.id===Jt()&&(n&&(n.name,n.message,n.stack),Tn=null,zn())})))}var An=!1;function Cn(){An=!0,w=performance.now()+performance.timeOrigin,Nn(),mn(),pn(),wn=Mn(),kn=0,gn(window,"popstate",_n),null===yn&&(yn=history.pushState,history.pushState=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];yn.apply(this,t),qn()&&Sn()&&_n()}),null===bn&&(bn=history.replaceState,history.replaceState=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];bn.apply(this,t),qn()&&Sn()&&_n()})}function Pn(){wn=null,kn=0,pn(),mn(),Nn(),w=0,An=!1}function qn(){return An}function Dn(){Dn.dn=2,ae(),I("clarity","restart")}var Rn=null;function Hn(){Rn=null}function Un(t){Rn={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){V(this,void 0,void 0,(function(){var n,e;return L(this,(function(r){return n=k(),e=[n,t],29===t&&(e.push(Rn.fetchStart),e.push(Rn.connectStart),e.push(Rn.connectEnd),e.push(Rn.requestStart),e.push(Rn.responseStart),e.push(Rn.responseEnd),e.push(Rn.domInteractive),e.push(Rn.domComplete),e.push(Rn.loadEventStart),e.push(Rn.loadEventEnd),e.push(Rn.redirectCount),e.push(Rn.size),e.push(Rn.type),e.push(Rn.protocol),e.push(Rn.encodedSize),e.push(Rn.decodedSize),Hn(),bt(e)),[2]}))}))}(29)}var Xn,Vn=0,Ln=Number.POSITIVE_INFINITY,Bn=0,Yn=0,Wn=[],Jn=new Map,Zn=function(){return Vn||0},Fn=function(){if(!Wn.length)return-1;var t=Math.min(Wn.length-1,Math.floor((Zn()-Yn)/50));return Wn[t].latency},Gn=function(t){if(t.interactionId&&!(t.duration<40)){!function(t){"interactionCount"in performance?Vn=performance.interactionCount:t.interactionId&&(Ln=Math.min(Ln,t.interactionId),Bn=Math.max(Bn,t.interactionId),Vn=Bn?(Bn-Ln)/7+1:0)}(t);var n=Wn[Wn.length-1],e=Jn.get(t.interactionId);if(e||Wn.length<10||t.duration>(null==n?void 0:n.latency)){if(e)t.duration>e.latency&&(e.latency=t.duration);else{var r={id:t.interactionId,latency:t.duration};Jn.set(r.id,r),Wn.push(r)}if(Wn.sort((function(t,n){return n.latency-t.latency})),Wn.length>10)for(var a=0,o=Wn.splice(10);a<o.length;a++){var i=o[a];Jn.delete(i.id)}}}},Kn=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint","event"];function Qn(){Qn.dn=26;try{Xn&&Xn.disconnect(),Xn=new PerformanceObserver(hn($n));for(var t=0,n=Kn;t<n.length;t++){var e=n[t];PerformanceObserver.supportedEntryTypes.indexOf(e)>=0&&("layout-shift"===e&&x(9,0),Xn.observe({type:e,buffered:!0}))}}catch(t){}}function $n(t){$n.dn=27,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":Un(r);break;case"resource":var a=r.name;qt(4,ne(a)),a!==o.upload&&a!==o.fallback||j(28,r.duration);break;case"longtask":E(7);break;case"first-input":n&&r.processingStart&&j(10,r.processingStart-r.startTime);break;case"event":n&&"PerformanceEventTiming"in window&&"interactionId"in PerformanceEventTiming.prototype&&(Gn(r),qt(37,Fn().toString()));break;case"layout-shift":n&&!r.hadRecentInput&&x(9,1e3*r.value);break;case"largest-contentful-paint":n&&j(8,r.startTime)}}}(t.getEntries())}function te(){Xn&&Xn.disconnect(),Xn=null,Yn=Zn(),Wn.length=0,Jn.clear()}function ne(t){var n=document.createElement("a");return n.href=t,n.host}var ee=Object.freeze({__proto__:null,start:function t(){t.dn=25,Hn(),function(){navigator&&"connection"in navigator&&qt(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?gn(window,"load",N.bind(this,Qn,0)):Qn())}()},stop:function(){te(),Hn()}}),re=[p,p,p,ee];function ae(t){if(void 0===t&&(t=null),function(){try{var t=navigator&&"globalPrivacyControl"in navigator&&!0===navigator.globalPrivacyControl;return!1===An&&"undefined"!=typeof Promise&&window.MutationObserver&&document.createTreeWalker&&"now"in Date&&"now"in performance&&"undefined"!=typeof WeakMap&&!t}catch(t){return!1}}()){!function(t){if(null===t||An)return!1;for(var n in t)n in o&&(o[n]=t[n])}(t),Cn(),at();for(var n=0,e=re;n<e.length;n++){hn(e[n].start)()}null===t&&se()}}function oe(){if(qn()){for(var t=0,n=re.slice().reverse();t<n.length;t++){hn(n[t].stop)()}ot(),Pn(),void 0!==ue&&(ue[ce]=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];ue[ce].q||(ue[ce].q=[]),ue[ce].q.push(t),"start"===t[0]&&ue[ce].q.unshift(ue[ce].q.pop())&&se()})}}var ie=Object.freeze({__proto__:null,consent:Zt,event:I,hashText:l,identify:W,metadata:Wt,pause:function(){qn()&&(I("clarity","pause"),null===En&&(En=new Promise((function(t){xn=t}))))},resume:function(){qn()&&(jn(),I("clarity","resume"))},set:Y,signal:function(t){nt=t},start:ae,stop:oe,upgrade:U,version:S}),ue=window,ce="clarity";function se(){var t;if(void 0!==ue){if(null===(t=ue[ce])||void 0===t?void 0:t.v)return console.warn("Error CL001: Multiple Clarity tags detected.");var n=ue[ce]&&ue[ce].q||[];for(ue[ce]=function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return ie[t].apply(ie,n)},ue[ce].v=S;n.length>0;)ue[ce].apply(ue,n.shift())}}se()}();
1
+ !function(){"use strict";var t=Object.freeze({__proto__:null,get queue(){return _t},get start(){return St},get stop(){return It},get track(){return vt}}),n=Object.freeze({__proto__:null,get check(){return zt},get compute(){return At},get data(){return gt},get start(){return jt},get stop(){return Pt},get trigger(){return Ct}}),e=Object.freeze({__proto__:null,get compute(){return Xt},get data(){return qt},get log(){return Ut},get reset(){return Lt},get start(){return Rt},get stop(){return Ht},get updates(){return Nt}}),r=Object.freeze({__proto__:null,get callback(){return an},get callbacks(){return Bt},get clear(){return rn},get consent(){return $t},get consentv2(){return tn},get data(){return Vt},get electron(){return Yt},get id(){return Qt},get metadata(){return Kt},get save(){return on},get shortid(){return sn},get start(){return Gt},get stop(){return Ft}}),a=Object.freeze({__proto__:null,get data(){return gn},get envelope(){return wn},get start(){return mn},get stop(){return yn}}),o={projectId:null,delay:1e3,lean:!1,lite:!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,conversions:!1,includeSubdomains:!0};function i(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}var u=0;function c(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-u),0)}var s="0.8.14";var l=255,d=!0,p=null,f=null;function h(t,n,e){void 0===n&&(n=!1),void 0===e&&(e=!1);var r=t;if(n)r="".concat("https://").concat("Electron");else{var a=o.drop;if(a&&a.length>0&&t&&t.indexOf("?")>0){var i=t.split("?"),u=i[0],c=i[1];r=u+"?"+c.split("&").map((function(t){return a.some((function(n){return 0===t.indexOf("".concat(n,"="))}))?"".concat(t.split("=")[0],"=").concat("*na*"):t})).join("&")}}return e&&(r=r.substring(0,l)),r}function v(t,n,e){return function(){if(d&&null===p)try{p=new RegExp("\\p{N}","gu"),f=new RegExp("\\p{L}","gu"),new RegExp("\\p{Sc}","gu")}catch(t){d=!1}}(),t?t.replace(f,n).replace(p,e):t}var g=[],m=null;function y(){}var w=[];function b(){}function k(){}var S=Object.freeze({__proto__:null,checkDocumentStyles:function(t){},compute:function(){},data:m,hashText:b,keys:w,log:y,observe:function(){},reset:function(){},sheetAdoptionState:[],sheetUpdateState:[],start:function(){},state:g,stop:function(){},trigger:k}),_=null,I=!0;function E(){M(2)}function M(t){Ut(36,t.toString())}var O=null;function T(t,n){Bn()&&t&&"string"==typeof t&&t.length<255&&(O=n&&"string"==typeof n&&n.length<255?{key:t,value:n}:{value:t},xt(24))}var x,j=null,z=null;function C(t){t in j||(j[t]=0),t in z||(z[t]=0),j[t]++,z[t]++}function A(t,n){null!==n&&(t in j||(j[t]=0),t in z||(z[t]=0),j[t]+=n,z[t]+=n)}function P(t,n){null!==n&&!1===isNaN(n)&&(t in j||(j[t]=0),(n>j[t]||0===j[t])&&(z[t]=n,j[t]=n))}function q(t,n,e){return window.setTimeout(Sn(t),n,e)}function N(t){return window.clearTimeout(t)}var D=0,R=0,H=null;function U(){H&&N(H),H=q(X,R),D=c()}function X(){var t=c();x={gap:t-D},xt(25),x.gap<3e5?H=q(X,R):Xn&&(T("clarity","suspend"),fe(),["mousemove","touchstart"].forEach((function(t){return In(document,t,Yn)})),["resize","scroll","pageshow"].forEach((function(t){return In(window,t,Yn)})))}var L=Object.freeze({__proto__:null,get data(){return x},reset:U,start:function(){R=6e4,D=0},stop:function(){N(H),D=0,R=0}}),V=null;function B(t){Bn()&&o.lean&&(o.lean=!1,V={key:t},an(),on(),o.upgrade&&o.upgrade(t),xt(3),o.lite)}var Y=Object.freeze({__proto__:null,get data(){return V},start:function(){!o.lean&&o.upgrade&&o.upgrade("Config"),V=null},stop:function(){V=null},upgrade:B});function W(t,n,e,r){return new(e||(e=Promise))((function(a,o){function i(t){try{c(r.next(t))}catch(t){o(t)}}function u(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var n;t.done?a(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(i,u)}c((r=r.apply(t,n||[])).next())}))}function Z(t,n){var e,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(u){return function(c){return function(u){if(e)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(i=0)),i;)try{if(e=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){i.label=u[1];break}if(6===u[0]&&i.label<a[1]){i.label=a[1],a=u;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(u);break}a[2]&&i.ops.pop(),i.trys.pop();continue}u=n.call(t,i)}catch(t){u=[6,t],r=0}finally{e=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}var J=null;function G(t,n){K(t,"string"==typeof n?[n]:n)}function F(t,n,e,r){return void 0===n&&(n=null),void 0===e&&(e=null),void 0===r&&(r=null),W(this,void 0,void 0,(function(){var a,o;return Z(this,(function(i){switch(i.label){case 0:return o={},[4,tt(t)];case 1:return o.userId=i.sent(),o.userHint=r||((u=t)&&u.length>=5?"".concat(u.substring(0,2)).concat(v(u.substring(2),"*","*")):v(u,"*","*")),K("userId",[(a=o).userId]),K("userHint",[a.userHint]),K("userType",[nt(t)]),n&&(K("sessionId",[n]),a.sessionId=n),e&&(K("pageId",[e]),a.pageId=e),[2,a]}var u}))}))}function K(t,n){if(Bn()&&t&&n&&"string"==typeof t&&t.length<255){for(var e=(t in J?J[t]:[]),r=0;r<n.length;r++)"string"==typeof n[r]&&n[r].length<255&&e.push(n[r]);J[t]=e}}function Q(){xt(34)}function $(){J={}}function tt(t){return W(this,void 0,void 0,(function(){var n;return Z(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 nt(t){return t&&t.indexOf("@")>0?"email":"string"}var et="CompressionStream"in window;function rt(t){return W(this,void 0,void 0,(function(){var n,e;return Z(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),et?(n=new ReadableStream({start:function(n){return W(this,void 0,void 0,(function(){return Z(this,(function(e){return n.enqueue(t),n.close(),[2]}))}))}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip")),e=Uint8Array.bind,[4,at(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 at(t){return W(this,void 0,void 0,(function(){var n,e,r,a,o;return Z(this,(function(i){switch(i.label){case 0:n=t.getReader(),e=[],r=!1,a=[],i.label=1;case 1:return r?[3,3]:[4,n.read()];case 2:return o=i.sent(),r=o.done,a=o.value,r?[2,e]:(e.push.apply(e,a),[3,1]);case 3:return[2,e]}}))}))}var ot=null;function it(t){try{if(!ot)return;var n=function(t){try{return JSON.parse(t)}catch(t){return[]}}(t);n.forEach((function(t){ot(t)}))}catch(t){}}var ut=[S,e,Object.freeze({__proto__:null,compute:Q,get data(){return J},identify:F,reset:$,set:G,start:function(){$()},stop:function(){$()}}),n,S,r,a,t,L,Y,S];function ct(){j={},z={},C(5),ut.forEach((function(t){return Sn(t.start)()}))}function st(){ut.slice().reverse().forEach((function(t){return Sn(t.stop)()})),j={},z={}}function lt(){Q(),Xt(),xt(0),At(),I&&(xt(47),I=!1)}var dt,pt,ft,ht,vt,gt,mt=0,yt=0,wt=null,bt=0,kt=!1;function St(){ht=!0,mt=0,yt=0,kt=!1,bt=0,dt=[],pt=[],ft={},vt=null}function _t(t,n){if(void 0===n&&(n=!0),ht){var e=c(),r=t.length>1?t[1]:null,a=JSON.stringify(t);switch(o.lean?!kt&&yt+a.length>10485760&&(kt=!0):kt=!1,r){case 5:if(kt)break;mt+=a.length;case 37:case 6:case 43:case 45:case 46:if(kt)break;yt+=a.length,dt.push(a);break;default:pt.push(a)}C(25);var i=function(){var t=!1===o.lean&&mt>0?100:gn.sequence*o.delay;return"string"==typeof o.upload?Math.max(Math.min(t,3e4),100):o.delay}();e-bt>2*i&&(N(wt),wt=null),n&&null===wt&&(25!==r&&U(),wt=q(Et,i),bt=e,zt(yt))}}function It(){N(wt),Et(!0),mt=0,yt=0,kt=!1,bt=0,dt=[],pt=[],ft={},vt=null,ht=!1}function Et(t){return void 0===t&&(t=!1),W(this,void 0,void 0,(function(){var n,e,r,a,i,u,c,s;return Z(this,(function(l){switch(l.label){case 0:return wt=null,(n=!1===o.lean&&yt>0&&(yt<1048576||gn.sequence>0))&&P(1,1),lt(),e=!0===t,r=JSON.stringify(wn(e)),a="[".concat(pt.join(),"]"),i=n?"[".concat(dt.join(),"]"):"",u=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:a,p:i}),e?(s=null,[3,3]):[3,1];case 1:return[4,rt(u)];case 2:s=l.sent(),l.label=3;case 3:return A(2,(c=s)?c.length:u.length),Mt(u,c,gn.sequence,e),pt=[],n&&(dt=[],yt=0,mt=0,kt=!1),[2]}}))}))}function Mt(t,n,e,r){if(void 0===r&&(r=!1),"string"==typeof o.upload){var a=o.upload,i=!1;if(r&&"sendBeacon"in navigator)try{(i=navigator.sendBeacon.bind(navigator)(a,t))&&Tt(e)}catch(t){}if(!1===i){e in ft?ft[e].attempts++:ft[e]={data:t,attempts:1};var u=new XMLHttpRequest;u.open("POST",a,!0),u.timeout=15e3,u.ontimeout=function(){kn(new Error("".concat("Timeout"," : ").concat(a)))},null!==e&&(u.onreadystatechange=function(){Sn(Ot)(u,e)}),u.withCredentials=!0,n?(u.setRequestHeader("Accept","application/x-clarity-gzip"),u.send(n)):u.send(t)}}else if(o.upload){(0,o.upload)(t),Tt(e)}}function Ot(t,n){var e=ft[n];t&&4===t.readyState&&e&&((t.status<200||t.status>208)&&e.attempts<=1?t.status>=400&&t.status<500?Ct(6):(0===t.status&&(o.upload=o.fallback?o.fallback:o.upload),Mt(e.data,null,n)):(vt={sequence:n,attempts:e.attempts,status:t.status},e.attempts>1&&xt(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 a=r[e],i=a&&a.length>0?a.split(/ (.*)/):[""];switch(i[0]){case"END":Ct(6);break;case"UPGRADE":B("Auto");break;case"ACTION":o.action&&i.length>1&&o.action(i[1]);break;case"EXTRACT":i.length>1&&i[1];break;case"SIGNAL":i.length>1&&it(i[1])}}}(t.responseText),0===t.status&&(Mt(e.data,null,n,!0),Ct(3)),t.status>=200&&t.status<=208&&Tt(n),delete ft[n]))}function Tt(t){1===t&&(on(),an())}function xt(t){var n=[c(),t];switch(t){case 4:var e=g;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),n.push(e.data.pointerTime),n.push(e.data.moveX),n.push(e.data.moveY),n.push(e.data.moveTime),n.push(e.data.downX),n.push(e.data.downY),n.push(e.data.downTime),n.push(e.data.upX),n.push(e.data.upY),n.push(e.data.upTime),n.push(e.data.pointerPrevX),n.push(e.data.pointerPrevY),n.push(e.data.pointerPrevTime),_t(n,!1));break;case 25:n.push(x.gap),_t(n);break;case 35:n.push(gt.check),_t(n,!1);break;case 3:n.push(V.key),_t(n);break;case 2:n.push(vt.sequence),n.push(vt.attempts),n.push(vt.status),_t(n,!1);break;case 24:O.key&&n.push(O.key),n.push(O.value),_t(n);break;case 34:var r=Object.keys(J);if(r.length>0){for(var a=0,o=r;a<o.length;a++){var i=o[a];n.push(i),n.push(J[i])}$(),_t(n,!1)}break;case 0:var u=Object.keys(z);if(u.length>0){for(var s=0,l=u;s<l.length;s++){var d=l[s],p=parseInt(d,10);n.push(p),n.push(Math.round(z[d]))}z={},_t(n,!1)}break;case 1:var f=Object.keys(Nt);if(f.length>0){for(var h=0,v=f;h<v.length;h++){var y=v[h];p=parseInt(y,10);n.push(p),n.push(Nt[y])}Lt(),_t(n,!1)}break;case 36:var b=Object.keys(m);if(b.length>0){for(var k=0,S=b;k<S.length;k++){var I=S[k];p=parseInt(I,10);n.push(p),n.push([].concat.apply([],m[I]))}_t(n,!1)}break;case 40:w.forEach((function(t){n.push(t);var e=[];for(var r in m[t]){var a=parseInt(r,10);e.push(a),e.push(m[t][r])}n.push(e)})),_t(n,!1);case 47:n.push(_.source),n.push(_.ad_Storage),n.push(_.analytics_Storage),_t(n)}}function jt(){gt={check:0}}function zt(t){if(0===gt.check){var n=gt.check;n=gn.sequence>=128?1:n,n=gn.pageNum>=128?7:n,n=c()>72e5?2:n,(n=t>10485760?2:n)!==gt.check&&Ct(n)}}function Ct(t){gt.check=t,5!==t&&(rn(),fe())}function At(){0!==gt.check&&xt(35)}function Pt(){gt=null}var qt=null,Nt=null,Dt=!1;function Rt(){qt={},Nt={},Dt=!1}function Ht(){qt={},Nt={},Dt=!1}function Ut(t,n){if(n&&(n="".concat(n),t in qt||(qt[t]=[]),qt[t].indexOf(n)<0)){if(qt[t].length>128)return void(Dt||(Dt=!0,Ct(5)));qt[t].push(n),t in Nt||(Nt[t]=[]),Nt[t].push(n)}}function Xt(){xt(1)}function Lt(){Nt={},Dt=!1}var Vt=null,Bt=[],Yt=0,Wt=null,Zt=null,Jt={ad_Storage:"denied",analytics_Storage:"denied"};function Gt(){var t,n,e;Wt=null;var r=navigator&&"userAgent"in navigator?navigator.userAgent:"",a=null!==(e=null===(n=null===(t=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===t?void 0:t.resolvedOptions())||void 0===n?void 0:n.timeZone)&&void 0!==e?e:"",i=(new Date).getTimezoneOffset().toString(),u=window.location.ancestorOrigins?Array.from(window.location.ancestorOrigins).toString():"",c=document&&document.title?document.title:"";Yt=r.indexOf("Electron")>0?1:0;var s=function(){var t={session:sn(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},n=pn("_clsk",!o.includeSubdomains);if(n){var e=n.includes("^")?n.split("^"):n.split("|");e.length>=5&&t.ts-ln(e[1])<18e5&&(t.session=e[0],t.count=ln(e[2])+1,t.upgrade=ln(e[3]),t.upload=e.length>=6?"".concat("https://").concat(e[5],"/").concat(e[4]):"".concat("https://").concat(e[4]))}return t}(),l=dn(),d=o.projectId||function(t,n){void 0===n&&(n=null);for(var e,r=5381,a=r,o=0;o<t.length;o+=2)r=(r<<5)+r^t.charCodeAt(o),o+1<t.length&&(a=(a<<5)+a^t.charCodeAt(o+1));return e=Math.abs(r+11579*a),(n?e%Math.pow(2,n):e).toString(36)}(location.host);Vt={projectId:d,userId:l.id,sessionId:s.session,pageNum:s.count},o.lean=o.track&&null!==s.upgrade?0===s.upgrade:o.lean,o.upload=o.track&&"string"==typeof o.upload&&s.upload&&s.upload.length>8?s.upload:o.upload,Ut(0,r),Ut(3,c),Ut(1,h(location.href,!!Yt)),Ut(2,document.referrer),Ut(15,function(){var t=sn();if(o.track&&un(window,"sessionStorage")){var n=sessionStorage.getItem("_cltk");t=n||t,sessionStorage.setItem("_cltk",t)}return t}()),Ut(16,document.documentElement.lang),Ut(17,document.dir),Ut(26,"".concat(window.devicePixelRatio)),Ut(28,l.dob.toString()),Ut(29,l.version.toString()),Ut(33,u),Ut(34,a),Ut(35,i),P(0,s.ts),P(1,0),P(35,Yt);var p,f=null===window||void 0===window?void 0:window.Zone;f&&"__symbol__"in f&&P(39,1),navigator&&(Ut(9,navigator.language),P(33,navigator.hardwareConcurrency),P(32,navigator.maxTouchPoints),P(34,Math.round(navigator.deviceMemory)),(p=navigator.userAgentData)&&p.getHighEntropyValues?p.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){var n;Ut(22,t.platform),Ut(23,t.platformVersion),null===(n=t.brands)||void 0===n||n.forEach((function(t){Ut(24,t.name+"~"+t.version)})),Ut(25,t.model),P(27,t.mobile?1:0)})):Ut(22,navigator.platform)),screen&&(P(14,Math.round(screen.width)),P(15,Math.round(screen.height)),P(16,Math.round(screen.colorDepth)));for(var v=0,g=o.cookies;v<g.length;v++){var m=g[v],y=pn(m);y&&G(m,y)}!function(t){M(t.analytics_Storage?1:0),_=t}(nn(Zt={ad_Storage:o.track?"granted":"denied",analytics_Storage:o.track?"granted":"denied"},0)),cn(l)}function Ft(){Wt=null,Vt=null,Zt=null,Bt.forEach((function(t){t.called=!1}))}function Kt(t,n,e,r){void 0===n&&(n=!0),void 0===e&&(e=!1),void 0===r&&(r=!1);var a=o.lean?0:1,i=!1;Vt&&(a||!1===n)&&(t(Vt,!o.lean,r?Zt:void 0),i=!0),!e&&i||Bt.push({callback:t,wait:n,recall:e,called:i,consentInfo:r})}function Qt(){return Vt?[Vt.userId,Vt.sessionId,Vt.pageNum].join("."):""}function $t(t){void 0===t&&(t=!0),t?(tn({ad_Storage:"granted",analytics_Storage:"granted"}),E()):tn()}function tn(t,n){void 0===t&&(t=Jt),void 0===n&&(n=1),Zt={ad_Storage:en(t.ad_Storage),analytics_Storage:en(t.analytics_Storage)},an(!0);var e=nn(Zt,n);if(!e.analytics_Storage)return o.track=!1,hn("_clsk","",-Number.MAX_VALUE),hn("_clck","",-Number.MAX_VALUE),fe(),void window.setTimeout(pe,250);Bn()&&(o.track=!0,cn(dn(),1),on(),function(t){_=t,xt(47)}(e),E())}function nn(t,n){return{source:n,ad_Storage:"granted"===t.ad_Storage?1:0,analytics_Storage:"granted"===t.analytics_Storage?1:0}}function en(t){return"string"==typeof t?t.toLowerCase():"denied"}function rn(){hn("_clsk","",0)}function an(t){void 0===t&&(t=!1),function(t,n){void 0===n&&(n=!1);if(Bt.length>0)for(var e=0;e<Bt.length;e++){var r=Bt[e];r.callback&&(!r.called&&!n||r.consentInfo&&n)&&(!r.wait||t)&&(r.callback(Vt,!o.lean,r.consentInfo?Zt:void 0),r.called=!0,r.recall||(Bt.splice(e,1),e--))}}(o.lean?0:1,t)}function on(){if(Vt&&o.track){var t=Math.round(Date.now()),n=o.upload&&"string"==typeof o.upload?o.upload.replace("https://",""):"",e=o.lean?0:1;hn("_clsk",[Vt.sessionId,t,Vt.pageNum,e,n].join("|"),1)}}function un(t,n){try{return!!t[n]}catch(t){return!1}}function cn(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===o.dob?0:o.dob:t.dob;(null===t.expiry||Math.abs(e-t.expiry)>=1||t.consent!==n||t.dob!==r)&&hn("_clck",[Vt.userId,2,e.toString(36),n,r].join("|"),365)}function sn(){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 ln(t,n){return void 0===n&&(n=10),parseInt(t,n)}function dn(){var t={id:sn(),version:0,expiry:null,consent:0,dob:0},n=pn("_clck",!o.includeSubdomains);if(n&&n.length>0){var e=n.includes("^")?n.split("^"):n.split("|");e.length>1&&(t.version=ln(e[1])),e.length>2&&(t.expiry=ln(e[2],36)),e.length>3&&1===ln(e[3])&&(t.consent=1),e.length>4&&ln(e[1])>1&&(t.dob=ln(e[4])),o.track=o.track||1===t.consent,t.id=o.track?e[0]:t.id}return t}function pn(t,n){var e;if(void 0===n&&(n=!1),un(document,"cookie")){var r=document.cookie.split(";");if(r)for(var a=0;a<r.length;a++){var o=r[a].split("=");if(o.length>1&&o[0]&&o[0].trim()===t){for(var i=fn(o[1]),u=i[0],c=i[1];u;)u=(e=fn(c))[0],c=e[1];return n?c.endsWith("".concat("~","1"))?c.substring(0,c.length-2):null:c}}}return null}function fn(t){try{var n=decodeURIComponent(t);return[n!=t,n]}catch(t){}return[!1,t]}function hn(t,n,e){if((o.track||""==n)&&(navigator&&navigator.cookieEnabled||un(document,"cookie"))){var r=function(t){return encodeURIComponent(t)}(n),a=new Date;a.setDate(a.getDate()+e);var i=a?"expires="+a.toUTCString():"",u="".concat(t,"=").concat(r).concat(";").concat(i).concat(";path=/");try{if(null===Wt){for(var c=location.hostname?location.hostname.split("."):[],s=c.length-1;s>=0;s--)if(Wt=".".concat(c[s]).concat(Wt||""),s<c.length-1&&(document.cookie="".concat(u).concat(";").concat("domain=").concat(Wt),pn(t)===n))return;Wt=""}}catch(t){Wt=""}document.cookie=Wt?"".concat(u).concat(";").concat("domain=").concat(Wt):u}}var vn,gn=null;function mn(){var t=Vt;gn={version:s,sequence:0,start:0,duration:0,projectId:t.projectId,userId:t.userId,sessionId:t.sessionId,pageNum:t.pageNum,upload:0,end:0,applicationPlatform:0,url:""}}function yn(){gn=null}function wn(t){return gn.start=gn.start+gn.duration,gn.duration=c()-gn.start,gn.sequence++,gn.upload=t&&"sendBeacon"in navigator?1:0,gn.end=t?1:0,gn.applicationPlatform=0,gn.url=h(location.href,!1,!0),[gn.version,gn.sequence,gn.start,gn.duration,gn.projectId,gn.userId,gn.sessionId,gn.pageNum,gn.upload,gn.end,gn.applicationPlatform,gn.url]}function bn(){vn=[]}function kn(t){if(vn&&-1===vn.indexOf(t.message)){var n=o.report;if(n&&n.length>0&&gn){var e={v:gn.version,p:gn.projectId,u:gn.userId,s:gn.sessionId,n:gn.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)),vn.push(t.message)}}return t}function Sn(t){return function(){var n=performance.now();try{t.apply(this,arguments)}catch(t){throw kn(t)}var e=performance.now()-n;A(4,e),e>30&&(C(7),P(6,e),"".concat(t.dn||t.name,"-").concat(e))}}var _n=new Map;function In(t,n,e,r,a){void 0===r&&(r=!1),void 0===a&&(a=!0),e=Sn(e);try{t[i("addEventListener")](n,e,{capture:r,passive:a}),function(t){return _n.has(t)}(t)||_n.set(t,[]),_n.get(t).push({event:n,listener:e,options:{capture:r,passive:a}})}catch(t){}}function En(){_n.forEach((function(t,n){!function(t,n){t.forEach((function(t){try{n[i("removeEventListener")](t.event,t.listener,{capture:t.options.capture,passive:t.options.passive})}catch(t){}})),_n.delete(n)}(t,n)})),_n=new Map}var Mn=null,On=null,Tn=null,xn=0;function jn(){return!(xn++>20)}function zn(){zn.dn=1,xn=0,Tn!==An()&&(fe(),window.setTimeout(Cn,250))}function Cn(){pe(),P(29,1)}function An(){return location.href?location.href.replace(location.hash,""):location.href}var Pn=[],qn=null,Nn=null,Dn=null;function Rn(){Nn&&(Dn(),Nn=null,null===qn&&Un())}function Hn(){Pn=[],qn=null,Nn=null}function Un(){var t=Pn.shift();t&&(qn=t,t.task().then((function(){t.id===Qt()&&(t.resolve(),qn=null,Un())})).catch((function(n){t.id===Qt()&&(n&&(n.name,n.message,n.stack),qn=null,Un())})))}var Xn=!1;function Ln(){Xn=!0,u=performance.now()+performance.timeOrigin,Hn(),En(),bn(),Tn=An(),xn=0,In(window,"popstate",zn),null===Mn&&(Mn=history.pushState,history.pushState=function(){Mn.apply(this,arguments),Bn()&&jn()&&zn()}),null===On&&(On=history.replaceState,history.replaceState=function(){On.apply(this,arguments),Bn()&&jn()&&zn()})}function Vn(){Tn=null,xn=0,bn(),En(),Hn(),u=0,Xn=!1}function Bn(){return Xn}function Yn(){Yn.dn=2,pe(),T("clarity","restart")}var Wn=null;function Zn(){Wn=null}function Jn(t){Wn={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){W(this,void 0,void 0,(function(){var n,e;return Z(this,(function(r){return n=c(),e=[n,t],29===t&&(e.push(Wn.fetchStart),e.push(Wn.connectStart),e.push(Wn.connectEnd),e.push(Wn.requestStart),e.push(Wn.responseStart),e.push(Wn.responseEnd),e.push(Wn.domInteractive),e.push(Wn.domComplete),e.push(Wn.loadEventStart),e.push(Wn.loadEventEnd),e.push(Wn.redirectCount),e.push(Wn.size),e.push(Wn.type),e.push(Wn.protocol),e.push(Wn.encodedSize),e.push(Wn.decodedSize),Zn(),_t(e)),[2]}))}))}(29)}var Gn,Fn=0,Kn=1/0,Qn=0,$n=0,te=[],ne=new Map,ee=function(){return Fn||0},re=function(){if(!te.length)return-1;var t=Math.min(te.length-1,Math.floor((ee()-$n)/50));return te[t].latency},ae=function(t){if(t.interactionId&&!(t.duration<40)){!function(t){"interactionCount"in performance?Fn=performance.interactionCount:t.interactionId&&(Kn=Math.min(Kn,t.interactionId),Qn=Math.max(Qn,t.interactionId),Fn=Qn?(Qn-Kn)/7+1:0)}(t);var n=te[te.length-1],e=ne.get(t.interactionId);if(e||te.length<10||t.duration>(null==n?void 0:n.latency)){if(e)t.duration>e.latency&&(e.latency=t.duration);else{var r={id:t.interactionId,latency:t.duration};ne.set(r.id,r),te.push(r)}te.sort((function(t,n){return n.latency-t.latency})),te.length>10&&te.splice(10).forEach((function(t){return ne.delete(t.id)}))}}},oe=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint","event"];function ie(){ie.dn=26;try{Gn&&Gn.disconnect(),Gn=new PerformanceObserver(Sn(ue));for(var t=0,n=oe;t<n.length;t++){var e=n[t];PerformanceObserver.supportedEntryTypes.indexOf(e)>=0&&("layout-shift"===e&&A(9,0),Gn.observe({type:e,buffered:!0}))}}catch(t){}}function ue(t){ue.dn=27,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":Jn(r);break;case"resource":var a=r.name;Ut(4,se(a)),a!==o.upload&&a!==o.fallback||P(28,r.duration);break;case"longtask":C(7);break;case"first-input":n&&P(10,r.processingStart-r.startTime);break;case"event":n&&"PerformanceEventTiming"in window&&"interactionId"in PerformanceEventTiming.prototype&&(ae(r),Ut(37,re().toString()));break;case"layout-shift":n&&!r.hadRecentInput&&A(9,1e3*r.value);break;case"largest-contentful-paint":n&&P(8,r.startTime)}}}(t.getEntries())}function ce(){Gn&&Gn.disconnect(),Gn=null,$n=ee(),te.length=0,ne.clear()}function se(t){var n=document.createElement("a");return n.href=t,n.host}var le=Object.freeze({__proto__:null,start:function t(){t.dn=25,Zn(),function(){navigator&&"connection"in navigator&&Ut(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?In(window,"load",q.bind(this,ie,0)):ie())}()},stop:function(){ce(),Zn()}}),de=[S,S,S,le];function pe(t){void 0===t&&(t=null),function(){try{var t=navigator&&"globalPrivacyControl"in navigator&&1==navigator.globalPrivacyControl;return!1===Xn&&"undefined"!=typeof Promise&&window.MutationObserver&&document.createTreeWalker&&"now"in Date&&"now"in performance&&"undefined"!=typeof WeakMap&&!t}catch(t){return!1}}()&&(!function(t){if(null===t||Xn)return!1;for(var n in t)n in o&&(o[n]=t[n])}(t),Ln(),ct(),de.forEach((function(t){return Sn(t.start)()})),null===t&&me())}function fe(){Bn()&&(de.slice().reverse().forEach((function(t){return Sn(t.stop)()})),st(),Vn(),void 0!==ve&&(ve[ge]=function(){(ve[ge].q=ve[ge].q||[]).push(arguments),"start"===arguments[0]&&ve[ge].q.unshift(ve[ge].q.pop())&&me()}))}var he=Object.freeze({__proto__:null,consent:$t,consentv2:tn,event:T,hashText:b,identify:F,metadata:Kt,pause:function(){Bn()&&(T("clarity","pause"),null===Nn&&(Nn=new Promise((function(t){Dn=t}))))},resume:function(){Bn()&&(Rn(),T("clarity","resume"))},set:G,signal:function(t){ot=t},start:pe,stop:fe,upgrade:B,version:s}),ve=window,ge="clarity";function me(){if(void 0!==ve){if(ve[ge]&&ve[ge].v)return console.warn("Error CL001: Multiple Clarity tags detected.");var t=ve[ge]&&ve[ge].q||[];for(ve[ge]=function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return he[t].apply(he,n)},ve[ge].v=s;t.length>0;)ve[ge].apply(ve,t.shift())}}me()}();
package/package.json CHANGED
@@ -1,77 +1,70 @@
1
- {
2
- "name": "clarity-js",
3
- "version": "0.8.12",
4
- "description": "An analytics library that uses web page interactions to generate aggregated insights",
5
- "author": "Microsoft Corp.",
6
- "license": "MIT",
7
- "main": "build/clarity.js",
8
- "module": "build/clarity.module.js",
9
- "unpkg": "build/clarity.min.js",
10
- "extended": "build/clarity.extended.js",
11
- "insight": "build/clarity.insight.js",
12
- "performance": "build/clarity.performance.js",
13
- "types": "types/index.d.ts",
14
- "keywords": [
15
- "clarity",
16
- "Microsoft",
17
- "interactions",
18
- "cursor",
19
- "pointer",
20
- "instrumentation",
21
- "analytics"
22
- ],
23
- "repository": {
24
- "type": "git",
25
- "url": "https://github.com/microsoft/clarity.git",
26
- "directory": "packages/clarity-js"
27
- },
28
- "bugs": {
29
- "url": "https://github.com/microsoft/clarity/issues"
30
- },
31
- "devDependencies": {
32
- "@biomejs/biome": "1.9.4",
33
- "@rollup/plugin-alias": "^5.1.1",
34
- "@rollup/plugin-commonjs": "^28.0.3",
35
- "@rollup/plugin-node-resolve": "^16.0.1",
36
- "@rollup/plugin-terser": "^0.4.4",
37
- "@rollup/plugin-typescript": "^12.1.2",
38
- "@types/chai": "^4.2.21",
39
- "@types/mocha": "^10.0.0",
40
- "@types/resize-observer-browser": "^0.1.6",
41
- "chai": "^4.2.0",
42
- "del-cli": "^5.0.0",
43
- "husky": "^8.0.0",
44
- "lint-staged": "^15.2.9",
45
- "mocha": "^10.2.0",
46
- "playwright": "^1.6.2",
47
- "rollup": "^3.0.0",
48
- "ts-mocha": "^10.0.0",
49
- "tslib": "^2.3.0",
50
- "typescript": "^4.3.5"
51
- },
52
- "scripts": {
53
- "build": "yarn build:clean && yarn build:main",
54
- "build:main": "rollup -c rollup.config.ts --configPlugin @rollup/plugin-typescript",
55
- "build:clean": "del-cli build/*",
56
- "test": "ts-mocha -p test/tsconfig.test.json test/stub.test.ts",
57
- "lint": "biome check --staged",
58
- "lint:fix": "biome check --write --staged",
59
- "lint:fix:unsafe": "biome check --write --unsafe --staged",
60
- "lint:all": "biome check",
61
- "lint:all:fix": "biome check --write",
62
- "lint:changed": "biome check --changed",
63
- "lint:changed:fix": "biome check --changed --write",
64
- "lint:changed:fix:unsafe": "biome check --changed --write --unsafe",
65
- "precommit": "lint-staged"
66
- },
67
- "husky": {
68
- "hooks": {
69
- "pre-commit": "lint-staged"
70
- }
71
- },
72
- "lint-staged": {
73
- "*.ts": [
74
- "tslint --format codeFrame"
75
- ]
76
- }
1
+ {
2
+ "name": "clarity-js",
3
+ "version": "0.8.14",
4
+ "description": "An analytics library that uses web page interactions to generate aggregated insights",
5
+ "author": "Microsoft Corp.",
6
+ "license": "MIT",
7
+ "main": "build/clarity.js",
8
+ "module": "build/clarity.module.js",
9
+ "unpkg": "build/clarity.min.js",
10
+ "extended": "build/clarity.extended.js",
11
+ "insight": "build/clarity.insight.js",
12
+ "performance": "build/clarity.performance.js",
13
+ "types": "types/index.d.ts",
14
+ "keywords": [
15
+ "clarity",
16
+ "Microsoft",
17
+ "interactions",
18
+ "cursor",
19
+ "pointer",
20
+ "instrumentation",
21
+ "analytics"
22
+ ],
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/microsoft/clarity.git",
26
+ "directory": "packages/clarity-js"
27
+ },
28
+ "bugs": {
29
+ "url": "https://github.com/microsoft/clarity/issues"
30
+ },
31
+ "devDependencies": {
32
+ "@rollup/plugin-alias": "^4.0.0",
33
+ "@rollup/plugin-commonjs": "^24.0.0",
34
+ "@rollup/plugin-node-resolve": "^15.0.0",
35
+ "@rollup/plugin-terser": "^0.4.0",
36
+ "@rollup/plugin-typescript": "^11.0.0",
37
+ "@types/chai": "^4.2.21",
38
+ "@types/mocha": "^10.0.0",
39
+ "@types/resize-observer-browser": "^0.1.6",
40
+ "chai": "^4.2.0",
41
+ "del-cli": "^5.0.0",
42
+ "husky": "^8.0.0",
43
+ "lint-staged": "^13.1.0",
44
+ "mocha": "^10.2.0",
45
+ "playwright": "^1.6.2",
46
+ "rollup": "^3.0.0",
47
+ "ts-mocha": "^10.0.0",
48
+ "tslib": "^2.3.0",
49
+ "tslint": "^6.1.3",
50
+ "typescript": "^4.3.5"
51
+ },
52
+ "scripts": {
53
+ "build": "yarn build:clean && yarn build:main",
54
+ "build:main": "rollup -c rollup.config.ts --configPlugin @rollup/plugin-typescript",
55
+ "build:clean": "del-cli build/*",
56
+ "test": "ts-mocha -p test/tsconfig.test.json test/stub.test.ts",
57
+ "tslint": "tslint --project ./",
58
+ "tslint:fix": "tslint --fix --project ./ --force"
59
+ },
60
+ "husky": {
61
+ "hooks": {
62
+ "pre-commit": "lint-staged"
63
+ }
64
+ },
65
+ "lint-staged": {
66
+ "*.ts": [
67
+ "tslint --format codeFrame"
68
+ ]
69
+ }
77
70
  }
package/rollup.config.ts CHANGED
@@ -1,94 +1,98 @@
1
1
  import alias from "@rollup/plugin-alias";
2
2
  import commonjs from "@rollup/plugin-commonjs";
3
- import resolve from "@rollup/plugin-node-resolve";
3
+ import resolve from "@rollup/plugin-node-resolve";
4
4
  import terser from "@rollup/plugin-terser";
5
5
  import typescript from "@rollup/plugin-typescript";
6
- import pkg from "./package.json" assert { type: "json" };
6
+ import pkg from "./package.json" assert { type: 'json' };
7
7
  export default [
8
- {
9
- input: "src/index.ts",
10
- output: [
11
- { file: pkg.main, format: "cjs", exports: "named" },
12
- { file: pkg.module, format: "es", exports: "named" },
13
- ],
14
- plugins: [resolve(), typescript(), commonjs({ include: ["node_modules/**"] })],
15
- onwarn(message, warn) {
16
- if (message.code === "CIRCULAR_DEPENDENCY") {
17
- return;
18
- }
19
- warn(message);
20
- },
8
+ {
9
+ input: "src/index.ts",
10
+ output: [
11
+ { file: pkg.main, format: "cjs", exports: "named" },
12
+ { file: pkg.module, format: "es", exports: "named" }
13
+ ],
14
+ plugins: [
15
+ resolve(),
16
+ typescript(),
17
+ commonjs({ include: ["node_modules/**"] })
18
+ ],
19
+ onwarn(message, warn) {
20
+ if (message.code === 'CIRCULAR_DEPENDENCY') { return; }
21
+ warn(message);
22
+ }
23
+ },
24
+ {
25
+ input: "src/global.ts",
26
+ output: [ { file: pkg.unpkg, format: "iife", exports: "named" } ],
27
+ onwarn(message, warn) {
28
+ if (message.code === 'CIRCULAR_DEPENDENCY') { return; }
29
+ warn(message);
21
30
  },
22
- {
23
- input: "src/global.ts",
24
- output: [{ file: pkg.unpkg, format: "iife", exports: "named" }],
25
- onwarn(message, warn) {
26
- if (message.code === "CIRCULAR_DEPENDENCY") {
27
- return;
28
- }
29
- warn(message);
30
- },
31
- plugins: [, resolve(), typescript(), terser({ output: { comments: false } }), commonjs({ include: ["node_modules/**"] })],
31
+ plugins: [,
32
+ resolve(),
33
+ typescript(),
34
+ terser({output: {comments: false}}),
35
+ commonjs({ include: ["node_modules/**"] })
36
+ ]
37
+ },
38
+ {
39
+ input: "src/global.ts",
40
+ output: [ { file: pkg.extended, format: "iife", exports: "named" } ],
41
+ onwarn(message, warn) {
42
+ if (message.code === 'CIRCULAR_DEPENDENCY') { return; }
43
+ warn(message);
32
44
  },
33
- {
34
- input: "src/global.ts",
35
- output: [{ file: pkg.extended, format: "iife", exports: "named" }],
36
- onwarn(message, warn) {
37
- if (message.code === "CIRCULAR_DEPENDENCY") {
38
- return;
39
- }
40
- warn(message);
41
- },
42
- plugins: [resolve(), typescript(), terser({ output: { comments: false } }), commonjs({ include: ["node_modules/**"] })],
45
+ plugins: [
46
+ resolve(),
47
+ typescript(),
48
+ terser({output: {comments: false}}),
49
+ commonjs({ include: ["node_modules/**"] })
50
+ ]
51
+ },
52
+ {
53
+ input: "src/global.ts",
54
+ output: [ { file: pkg.insight, format: "iife", exports: "named" } ],
55
+ onwarn(message, warn) {
56
+ if (message.code === 'CIRCULAR_DEPENDENCY') { return; }
57
+ warn(message);
43
58
  },
44
- {
45
- input: "src/global.ts",
46
- output: [{ file: pkg.insight, format: "iife", exports: "named" }],
47
- onwarn(message, warn) {
48
- if (message.code === "CIRCULAR_DEPENDENCY") {
49
- return;
50
- }
51
- warn(message);
52
- },
53
- plugins: [
54
- alias({
55
- entries: [
56
- { find: "@src/layout/style", replacement: "@src/insight/blank" },
57
- { find: "@src/layout/document", replacement: "@src/layout/document" },
58
- { find: "@src/layout/encode", replacement: "@src/insight/encode" },
59
- { find: /@src\/interaction\/(change|clipboard|input|pointer|selection)/, replacement: "@src/insight/blank" },
60
- { find: /@src\/layout.*/, replacement: "@src/insight/snapshot" },
61
- { find: /@src\/performance.*/, replacement: "@src/insight/blank" },
62
- ],
63
- }),
64
- resolve(),
65
- typescript(),
66
- terser({ output: { comments: false } }),
67
- commonjs({ include: ["node_modules/**"] }),
68
- ],
69
- },
70
- {
71
- input: "src/global.ts",
72
- output: [{ file: pkg.performance, format: "iife", exports: "named" }],
73
- onwarn(message, warn) {
74
- if (message.code === "CIRCULAR_DEPENDENCY") {
75
- return;
76
- }
77
- warn(message);
78
- },
79
- plugins: [
80
- alias({
81
- entries: [
82
- { find: /@src\/interaction.*/, replacement: "@src/performance/blank" },
83
- { find: /@src\/layout.*/, replacement: "@src/performance/blank" },
84
- { find: /@src\/diagnostic.*/, replacement: "@src/performance/blank" },
85
- { find: /@src\/data\/(extract|baseline|summary)/, replacement: "@src/performance/blank" },
86
- ],
87
- }),
88
- resolve(),
89
- typescript(),
90
- terser({ output: { comments: false } }),
91
- commonjs({ include: ["node_modules/**"] }),
92
- ],
59
+ plugins: [
60
+ alias({
61
+ entries: [
62
+ { find: '@src/layout/style', replacement: '@src/insight/blank' },
63
+ { find: '@src/layout/document', replacement: '@src/layout/document' },
64
+ { find: '@src/layout/encode', replacement: '@src/insight/encode' },
65
+ { find: /@src\/interaction\/(change|clipboard|input|pointer|selection)/, replacement: '@src/insight/blank' },
66
+ { find: /@src\/layout.*/, replacement: '@src/insight/snapshot' },
67
+ { find: /@src\/performance.*/, replacement: '@src/insight/blank' }
68
+ ]
69
+ }),
70
+ resolve(),
71
+ typescript(),
72
+ terser({output: {comments: false}}),
73
+ commonjs({ include: ["node_modules/**"] })
74
+ ]
75
+ },
76
+ {
77
+ input: "src/global.ts",
78
+ output: [ { file: pkg.performance, format: "iife", exports: "named" } ],
79
+ onwarn(message, warn) {
80
+ if (message.code === 'CIRCULAR_DEPENDENCY') { return; }
81
+ warn(message);
93
82
  },
83
+ plugins: [
84
+ alias({
85
+ entries: [
86
+ { find: /@src\/interaction.*/, replacement: '@src/performance/blank' },
87
+ { find: /@src\/layout.*/, replacement: '@src/performance/blank' },
88
+ { find: /@src\/diagnostic.*/, replacement: '@src/performance/blank' },
89
+ { find: /@src\/data\/(extract|baseline|summary)/, replacement: '@src/performance/blank' }
90
+ ]
91
+ }),
92
+ resolve(),
93
+ typescript(),
94
+ terser({output: {comments: false}}),
95
+ commonjs({ include: ["node_modules/**"] })
96
+ ]
97
+ }
94
98
  ];
package/src/clarity.ts CHANGED
@@ -1,5 +1,6 @@
1
- import type { Config, Module } from "@clarity-types/core";
1
+ import { Config, Module } from "@clarity-types/core";
2
2
  import { Constant } from "@clarity-types/data";
3
+ import * as queue from "@src/queue";
3
4
  import * as core from "@src/core";
4
5
  import measure from "@src/core/measure";
5
6
  import * as task from "@src/core/task";
@@ -9,29 +10,24 @@ import * as diagnostic from "@src/diagnostic";
9
10
  import * as interaction from "@src/interaction";
10
11
  import * as layout from "@src/layout";
11
12
  import * as performance from "@src/performance";
12
- import * as queue from "@src/queue";
13
13
  export { version };
14
- export { consent, event, identify, set, upgrade, metadata, signal } from "@src/data";
14
+ export { consent, consentv2, event, identify, set, upgrade, metadata, signal } from "@src/data";
15
15
  export { hashText } from "@src/layout";
16
16
 
17
17
  const modules: Module[] = [diagnostic, layout, interaction, performance];
18
18
 
19
19
  export function start(config: Config = null): void {
20
- // Check that browser supports required APIs and we do not attempt to start Clarity multiple times
21
- if (core.check()) {
22
- core.config(config);
23
- core.start();
24
- data.start();
25
- for (const x of modules) {
26
- measure(x.start)();
27
- }
20
+ // Check that browser supports required APIs and we do not attempt to start Clarity multiple times
21
+ if (core.check()) {
22
+ core.config(config);
23
+ core.start();
24
+ data.start();
25
+ modules.forEach(x => measure(x.start)());
28
26
 
29
- // If it's an internal call to start, without explicit configuration,
30
- // re-process any newly accumulated items in the queue
31
- if (config === null) {
32
- queue.process();
33
- }
34
- }
27
+ // If it's an internal call to start, without explicit configuration,
28
+ // re-process any newly accumulated items in the queue
29
+ if (config === null) { queue.process(); }
30
+ }
35
31
  }
36
32
 
37
33
  // By default Clarity is asynchronous and will yield by looking for requestIdleCallback.
@@ -40,28 +36,26 @@ export function start(config: Config = null): void {
40
36
  // we do allow external clients to manually pause Clarity for that short burst of time and minimize
41
37
  // performance impact even further. For reference, we are talking single digit milliseconds optimization here, not seconds.
42
38
  export function pause(): void {
43
- if (core.active()) {
44
- data.event(Constant.Clarity, Constant.Pause);
45
- task.pause();
46
- }
39
+ if (core.active()) {
40
+ data.event(Constant.Clarity, Constant.Pause);
41
+ task.pause();
42
+ }
47
43
  }
48
44
 
49
45
  // This is how external clients can get out of pause state, and resume Clarity to continue monitoring the page
50
46
  export function resume(): void {
51
- if (core.active()) {
52
- task.resume();
53
- data.event(Constant.Clarity, Constant.Resume);
54
- }
47
+ if (core.active()) {
48
+ task.resume();
49
+ data.event(Constant.Clarity, Constant.Resume);
50
+ }
55
51
  }
56
52
 
57
53
  export function stop(): void {
58
- if (core.active()) {
59
- // Stop modules in the reverse order of their initialization and start queuing up items again
60
- for (const x of modules.slice().reverse()) {
61
- measure(x.stop)();
62
- }
63
- data.stop();
64
- core.stop();
65
- queue.setup();
66
- }
67
- }
54
+ if (core.active()) {
55
+ // Stop modules in the reverse order of their initialization and start queuing up items again
56
+ modules.slice().reverse().forEach(x => measure(x.stop)());
57
+ data.stop();
58
+ core.stop();
59
+ queue.setup();
60
+ }
61
+ }
package/src/core/api.ts CHANGED
@@ -1,15 +1,8 @@
1
1
  import { Constant } from "@clarity-types/core";
2
- import { Code, Severity } from "@clarity-types/data";
3
- import * as internal from "@src/diagnostic/internal";
4
2
 
5
3
  export default function api(method: string): string {
6
4
  // Zone.js, a popular package for Angular, overrides native browser APIs which can lead to inconsistent state for single page applications.
7
5
  // Example issue: https://github.com/angular/angular/issues/31712
8
6
  // As a work around, we ensuring Clarity access APIs outside of Zone (and use native implementation instead)
9
- const isZone = window[Constant.Zone] && Constant.Symbol in window[Constant.Zone];
10
- if (isZone) {
11
- internal.log(Code.AngularZone, Severity.Info);
12
- return window[Constant.Zone][Constant.Symbol](method);
13
- }
14
- return method;
7
+ return window[Constant.Zone] && Constant.Symbol in window[Constant.Zone] ? window[Constant.Zone][Constant.Symbol](method) : method;
15
8
  }
@@ -1,6 +1,6 @@
1
- import { type Config, Time } from "@clarity-types/core";
1
+ import { Config, Time } from "@clarity-types/core";
2
2
 
3
- const config: Config = {
3
+ let config: Config = {
4
4
  projectId: null,
5
5
  delay: 1 * Time.Second,
6
6
  lean: false,