clarity-js 0.8.9-beta → 0.8.10-beta
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 +24 -4
- package/build/clarity.min.js +1 -1
- package/build/clarity.module.js +24 -4
- package/build/clarity.performance.js +1 -1
- package/package.json +1 -1
- package/src/core/version.ts +1 -1
- package/src/data/upload.ts +15 -1
- package/src/interaction/encode.ts +5 -3
- package/src/interaction/pointer.ts +2 -1
- package/src/layout/style.ts +2 -2
- package/types/data.d.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var t=Object.freeze({__proto__:null,get queue(){return gt},get start(){return ht},get stop(){return mt},get track(){return lt}}),e=Object.freeze({__proto__:null,get check(){return _t},get compute(){return It},get data(){return st},get start(){return St},get stop(){return Mt},get trigger(){return Et}}),n=Object.freeze({__proto__:null,get compute(){return Ct},get data(){return Ot},get log(){return $t},get reset(){return At},get start(){return xt},get stop(){return zt},get updates(){return Tt}}),o=Object.freeze({__proto__:null,get callback(){return Yt},get callbacks(){return Nt},get clear(){return Bt},get consent(){return Vt},get data(){return Pt},get electron(){return Dt},get id(){return Lt},get metadata(){return Xt},get save(){return Wt},get shortid(){return Ft},get start(){return Ht},get stop(){return Ut}}),r=Object.freeze({__proto__:null,get data(){return oe},get envelope(){return ie},get start(){return re},get stop(){return ae}});let a={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}let u=0;function l(t=null){let e=t&&t.timeStamp>0?t.timeStamp:performance.now(),n=t&&t.view?t.view.performance.timeOrigin:performance.timeOrigin;return Math.max(Math.round(e+n-u),0)}let s="0.8.9-beta";const c=255;let d=!0,p=null,f=null,h=null;function g(t,e=!1,n=!1){let o=t;if(e)o="https://Electron";else{let e=a.drop;if(e&&e.length>0&&t&&t.indexOf("?")>0){let[n,r]=t.split("?"),a="*na*";o=n+"?"+r.split("&").map((t=>e.some((e=>0===t.indexOf(`${e}=`)))?`${t.split("=")[0]}=${a}`:t)).join("&")}}return n&&(o=o.substring(0,c)),o}function m(t,e,n){return function(){if(d&&null===p)try{p=new RegExp("\\p{N}","gu"),f=new RegExp("\\p{L}","gu"),h=new RegExp("\\p{Sc}","gu")}catch(t){d=!1}}(),t?t.replace(f,e).replace(p,n):t}let y=[],v=null;function w(){}let k=[];function b(){}function S(){}var _=Object.freeze({__proto__:null,checkDocumentStyles:function(t){},compute:function(){},data:v,hashText:b,keys:k,log:w,observe:function(){},reset:function(){},sheetAdoptionState:[],sheetUpdateState:[],start:function(){},state:y,stop:function(){},trigger:S});let E=null;function I(t,e){ze()&&t&&"string"==typeof t&&t.length<255&&(E=e&&"string"==typeof e&&e.length<255?{key:t,value:e}:{value:t},bt(24))}let M,O=null,T=null;function j(t){t in O||(O[t]=0),t in T||(T[t]=0),O[t]++,T[t]++}function x(t,e){null!==e&&(t in O||(O[t]=0),t in T||(T[t]=0),O[t]+=e,T[t]+=e)}function z(t,e){null!==e&&!1===isNaN(e)&&(t in O||(O[t]=0),(e>O[t]||0===O[t])&&(T[t]=e,O[t]=e))}function $(t,e,n){return window.setTimeout(se(t),e,n)}function C(t){return window.clearTimeout(t)}let A=0,q=0,P=null;function N(){P&&C(P),P=$(D,q),A=l()}function D(){let t=l();M={gap:t-A},bt(25),M.gap<3e5?P=$(D,q):Te&&(I("clarity","suspend"),tn(),["mousemove","touchstart"].forEach((t=>de(document,t,$e))),["resize","scroll","pageshow"].forEach((t=>de(window,t,$e))))}var R=Object.freeze({__proto__:null,get data(){return M},reset:N,start:function(){q=6e4,A=0},stop:function(){C(P),A=0,q=0}});let H=null;function U(t){ze()&&a.lean&&(a.lean=!1,H={key:t},Yt(),Wt(),a.upgrade&&a.upgrade(t),bt(3),a.lite)}var X=Object.freeze({__proto__:null,get data(){return H},start:function(){!a.lean&&a.upgrade&&a.upgrade("Config"),H=null},stop:function(){H=null},upgrade:U});let L=null;function V(t,e){Y(t,"string"==typeof e?[e]:e)}async function B(t,e=null,n=null,o=null){let r={userId:await Z(t),userHint:o||(a=t,a&&a.length>=5?`${a.substring(0,2)}${m(a.substring(2),"*","*")}`:m(a,"*","*"))};var a;return Y("userId",[r.userId]),Y("userHint",[r.userHint]),Y("userType",[F(t)]),e&&(Y("sessionId",[e]),r.sessionId=e),n&&(Y("pageId",[n]),r.pageId=n),r}function Y(t,e){if(ze()&&t&&e&&"string"==typeof t&&t.length<255){let n=t in L?L[t]:[];for(let t=0;t<e.length;t++)"string"==typeof e[t]&&e[t].length<255&&n.push(e[t]);L[t]=n}}function W(){bt(34)}function J(){L={}}async function Z(t){try{if(crypto&&t){const e=await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t));return Array.prototype.map.call(new Uint8Array(e),(t=>("00"+t.toString(16)).slice(-2))).join("")}return""}catch(t){return""}}function F(t){return t&&t.indexOf("@")>0?"email":"string"}const G="CompressionStream"in window;let K=null;function Q(t){try{if(!K)return;const e=function(t){try{return JSON.parse(t)}catch(t){return[]}}(t);e.forEach((t=>{K(t)}))}catch(t){}}const tt=[_,n,Object.freeze({__proto__:null,compute:W,get data(){return L},identify:B,reset:J,set:V,start:function(){J()},stop:function(){J()}}),e,_,o,r,t,R,X,_];function et(){O={},T={},j(5),tt.forEach((t=>se(t.start)()))}function nt(){tt.slice().reverse().forEach((t=>se(t.stop)())),O={},T={}}function ot(){W(),Ct(),bt(0),It()}let rt,at,it,ut,lt,st,ct=0,dt=0,pt=null,ft=0;function ht(){ut=!0,ct=0,dt=0,ft=0,rt=[],at=[],it={},lt=null}function gt(t,e=!0){if(ut){let n=l(),o=t.length>1?t[1]:null,r=JSON.stringify(t);switch(o){case 5:ct+=r.length;case 37:case 6:case 43:case 45:case 46:dt+=r.length,rt.push(r);break;default:at.push(r)}j(25);let i=function(){let t=!1===a.lean&&ct>0?100:oe.sequence*a.delay;return"string"==typeof a.upload?Math.max(Math.min(t,3e4),100):a.delay}();n-ft>2*i&&(C(pt),pt=null),e&&null===pt&&(25!==o&&N(),pt=$(yt,i),ft=n,_t(dt))}}function mt(){C(pt),yt(!0),ct=0,dt=0,ft=0,rt=[],at=[],it={},lt=null,ut=!1}async function yt(t=!1){pt=null;let e=!1===a.lean&&dt>0&&(dt<1048576||oe.sequence>0);e&&z(1,1),ot();let n=!0===t,o=function(t){return t.p.length>0?`{"e":${t.e},"a":${t.a},"p":${t.p}}`:`{"e":${t.e},"a":${t.a}}`}({e:JSON.stringify(ie(n)),a:`[${at.join()}]`,p:e?`[${rt.join()}]`:""}),r=n?null:await async function(t){try{if(G){const e=new ReadableStream({async start(e){e.enqueue(t),e.close()}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip"));return new Uint8Array(await async function(t){const e=t.getReader(),n=[];let o=!1,r=[];for(;!o;){if(({done:o,value:r}=await e.read()),o)return n;n.push(...r)}return n}(e))}}catch(t){}return null}(o);x(2,r?r.length:o.length),vt(o,r,oe.sequence,n),at=[],e&&(rt=[],dt=0,ct=0)}function vt(t,e,n,o=!1){if("string"==typeof a.upload){const r=a.upload;let i=!1;if(o&&"sendBeacon"in navigator)try{i=navigator.sendBeacon.bind(navigator)(r,t),i&&kt(n)}catch(t){}if(!1===i){n in it?it[n].attempts++:it[n]={data:t,attempts:1};let o=new XMLHttpRequest;o.open("POST",r,!0),o.timeout=15e3,o.ontimeout=()=>{le(new Error(`Timeout : ${r}`))},null!==n&&(o.onreadystatechange=()=>{se(wt)(o,n)}),o.withCredentials=!0,e?(o.setRequestHeader("Accept","application/x-clarity-gzip"),o.send(e)):o.send(t)}}else if(a.upload){(0,a.upload)(t),kt(n)}}function wt(t,e){var n=it[e];t&&4===t.readyState&&n&&((t.status<200||t.status>208)&&n.attempts<=1?t.status>=400&&t.status<500?Et(6):(0===t.status&&(a.upload=a.fallback?a.fallback:a.upload),vt(n.data,null,e)):(lt={sequence:e,attempts:n.attempts,status:t.status},n.attempts>1&&bt(2),200===t.status&&t.responseText&&function(t){let e=t&&t.length>0?t.split("\n"):[];for(var n of e){let t=n&&n.length>0?n.split(/ (.*)/):[""];switch(t[0]){case"END":Et(6);break;case"UPGRADE":U("Auto");break;case"ACTION":a.action&&t.length>1&&a.action(t[1]);break;case"EXTRACT":t.length>1&&t[1];break;case"SIGNAL":t.length>1&&Q(t[1])}}}(t.responseText),0===t.status&&(vt(n.data,null,e,!0),Et(3)),t.status>=200&&t.status<=208&&kt(e),delete it[e]))}function kt(t){1===t&&(Wt(),Yt())}function bt(t){let e=[l(),t];switch(t){case 4:let t=y;t&&(e=[t.time,t.event],e.push(t.data.visible),e.push(t.data.docWidth),e.push(t.data.docHeight),e.push(t.data.screenWidth),e.push(t.data.screenHeight),e.push(t.data.scrollX),e.push(t.data.scrollY),e.push(t.data.pointerX),e.push(t.data.pointerY),e.push(t.data.activityTime),e.push(t.data.scrollTime),e.push(t.data.pointerTime),e.push(t.data.moveX),e.push(t.data.moveY),e.push(t.data.moveTime),e.push(t.data.downX),e.push(t.data.downY),e.push(t.data.downTime),e.push(t.data.upX),e.push(t.data.upY),e.push(t.data.upTime),e.push(t.data.pointerPrevX),e.push(t.data.pointerPrevY),e.push(t.data.pointerPrevTime),gt(e,!1));break;case 25:e.push(M.gap),gt(e);break;case 35:e.push(st.check),gt(e,!1);break;case 3:e.push(H.key),gt(e);break;case 2:e.push(lt.sequence),e.push(lt.attempts),e.push(lt.status),gt(e,!1);break;case 24:E.key&&e.push(E.key),e.push(E.value),gt(e);break;case 34:let n=Object.keys(L);if(n.length>0){for(let t of n)e.push(t),e.push(L[t]);J(),gt(e,!1)}break;case 0:let o=Object.keys(T);if(o.length>0){for(let t of o){let n=parseInt(t,10);e.push(n),e.push(Math.round(T[t]))}T={},gt(e,!1)}break;case 1:let r=Object.keys(Tt);if(r.length>0){for(let t of r){let n=parseInt(t,10);e.push(n),e.push(Tt[t])}At(),gt(e,!1)}break;case 36:let a=Object.keys(v);if(a.length>0){for(let t of a){let n=parseInt(t,10);e.push(n),e.push([].concat(...v[t]))}gt(e,!1)}break;case 40:k.forEach((t=>{e.push(t);let n=[];for(let e in v[t]){let o=parseInt(e,10);n.push(o),n.push(v[t][e])}e.push(n)})),gt(e,!1)}}function St(){st={check:0}}function _t(t){if(0===st.check){let e=st.check;e=oe.sequence>=128?1:e,e=oe.pageNum>=128?7:e,e=l()>72e5?2:e,e=t>10485760?2:e,e!==st.check&&Et(e)}}function Et(t){st.check=t,5!==t&&(Bt(),tn())}function It(){0!==st.check&&bt(35)}function Mt(){st=null}let Ot=null,Tt=null,jt=!1;function xt(){Ot={},Tt={},jt=!1}function zt(){Ot={},Tt={},jt=!1}function $t(t,e){if(e&&(e=`${e}`,t in Ot||(Ot[t]=[]),Ot[t].indexOf(e)<0)){if(Ot[t].length>128)return void(jt||(jt=!0,Et(5)));Ot[t].push(e),t in Tt||(Tt[t]=[]),Tt[t].push(e)}}function Ct(){bt(1)}function At(){Tt={},jt=!1}function qt(t){$t(36,t.toString())}let Pt=null,Nt=[],Dt=0,Rt=null;function Ht(){var t,e,n;Rt=null;const o=navigator&&"userAgent"in navigator?navigator.userAgent:"",r=null!==(n=null===(e=null===(t=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===t?void 0:t.resolvedOptions())||void 0===e?void 0:e.timeZone)&&void 0!==n?n:"",i=(new Date).getTimezoneOffset().toString(),u=window.location.ancestorOrigins?Array.from(window.location.ancestorOrigins).toString():"",l=document&&document.title?document.title:"";Dt=o.indexOf("Electron")>0?1:0;let s=function(){let t={session:Ft(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},e=Qt("_clsk",!a.includeSubdomains);if(e){let n=e.includes("^")?e.split("^"):e.split("|");n.length>=5&&t.ts-Gt(n[1])<18e5&&(t.session=n[0],t.count=Gt(n[2])+1,t.upgrade=Gt(n[3]),t.upload=n.length>=6?`https://${n[5]}/${n[4]}`:`https://${n[4]}`)}return t}(),c=Kt(),d=a.projectId||function(t,e=null){let n=0,o=5381,r=o;for(let e=0;e<t.length;e+=2)o=(o<<5)+o^t.charCodeAt(e),e+1<t.length&&(r=(r<<5)+r^t.charCodeAt(e+1));return n=Math.abs(o+11579*r),(e?n%Math.pow(2,e):n).toString(36)}(location.host);Pt={projectId:d,userId:c.id,sessionId:s.session,pageNum:s.count},a.lean=a.track&&null!==s.upgrade?0===s.upgrade:a.lean,a.upload=a.track&&"string"==typeof a.upload&&s.upload&&s.upload.length>"https://".length?s.upload:a.upload,$t(0,o),$t(3,l),$t(1,g(location.href,!!Dt)),$t(2,document.referrer),$t(15,function(){let t=Ft();if(a.track&&Jt(window,"sessionStorage")){let e=sessionStorage.getItem("_cltk");t=e||t,sessionStorage.setItem("_cltk",t)}return t}()),$t(16,document.documentElement.lang),$t(17,document.dir),$t(26,`${window.devicePixelRatio}`),$t(28,c.dob.toString()),$t(29,c.version.toString()),$t(33,u),$t(34,r),$t(35,i),z(0,s.ts),z(1,0),z(35,Dt),navigator&&($t(9,navigator.language),z(33,navigator.hardwareConcurrency),z(32,navigator.maxTouchPoints),z(34,Math.round(navigator.deviceMemory)),function(){let t=navigator.userAgentData;t&&t.getHighEntropyValues?t.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((t=>{var e;$t(22,t.platform),$t(23,t.platformVersion),null===(e=t.brands)||void 0===e||e.forEach((t=>{$t(24,t.name+"~"+t.version)})),$t(25,t.model),z(27,t.mobile?1:0)})):$t(22,navigator.platform)}()),screen&&(z(14,Math.round(screen.width)),z(15,Math.round(screen.height)),z(16,Math.round(screen.colorDepth)));for(let t of a.cookies){let e=Qt(t);e&&V(t,e)}!function(t){qt(t?1:0)}(a.track),Zt(c)}function Ut(){Rt=null,Pt=null,Nt.forEach((t=>{t.called=!1}))}function Xt(t,e=!0,n=!1){let o=a.lean?0:1,r=!1;Pt&&(o||!1===e)&&(t(Pt,!a.lean),r=!0),!n&&r||Nt.push({callback:t,wait:e,recall:n,called:r})}function Lt(){return Pt?[Pt.userId,Pt.sessionId,Pt.pageNum].join("."):""}function Vt(t=!0){if(!t)return a.track=!1,ee("_clsk","",-Number.MAX_VALUE),ee("_clck","",-Number.MAX_VALUE),tn(),void window.setTimeout(Qe,250);ze()&&(a.track=!0,Zt(Kt(),1),Wt(),qt(2))}function Bt(){ee("_clsk","",0)}function Yt(){!function(t){if(Nt.length>0)for(let e=0;e<Nt.length;e++){const n=Nt[e];!n.callback||n.called||n.wait&&!t||(n.callback(Pt,!a.lean),n.called=!0,n.recall||(Nt.splice(e,1),e--))}}(a.lean?0:1)}function Wt(){if(!Pt||!a.track)return;let t=Math.round(Date.now()),e=a.upload&&"string"==typeof a.upload?a.upload.replace("https://",""):"",n=a.lean?0:1;ee("_clsk",[Pt.sessionId,t,Pt.pageNum,n,e].join("|"),1)}function Jt(t,e){try{return!!t[e]}catch(t){return!1}}function Zt(t,e=null){e=null===e?t.consent:e;let n=Math.ceil((Date.now()+31536e6)/864e5),o=0===t.dob?null===a.dob?0:a.dob:t.dob;if(null===t.expiry||Math.abs(n-t.expiry)>=1||t.consent!==e||t.dob!==o){ee("_clck",[Pt.userId,2,n.toString(36),e,o].join("|"),365)}}function Ft(){let 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 Gt(t,e=10){return parseInt(t,e)}function Kt(){let t={id:Ft(),version:0,expiry:null,consent:0,dob:0},e=Qt("_clck",!a.includeSubdomains);if(e&&e.length>0){let n=e.includes("^")?e.split("^"):e.split("|");n.length>1&&(t.version=Gt(n[1])),n.length>2&&(t.expiry=Gt(n[2],36)),n.length>3&&1===Gt(n[3])&&(t.consent=1),n.length>4&&Gt(n[1])>1&&(t.dob=Gt(n[4])),a.track=a.track||1===t.consent,t.id=a.track?n[0]:t.id}return t}function Qt(t,e=!1){if(Jt(document,"cookie")){let n=document.cookie.split(";");if(n)for(let o=0;o<n.length;o++){let r=n[o].split("=");if(r.length>1&&r[0]&&r[0].trim()===t){let[t,n]=te(r[1]);for(;t;)[t,n]=te(n);return e?n.endsWith("~1")?n.substring(0,n.length-2):null:n}}}return null}function te(t){try{let e=decodeURIComponent(t);return[e!=t,e]}catch(t){}return[!1,t]}function ee(t,e,n){if((a.track||""==e)&&(navigator&&navigator.cookieEnabled||Jt(document,"cookie"))){let o=function(t){return encodeURIComponent(t)}(e),r=new Date;r.setDate(r.getDate()+n);let a=`${t}=${o};${r?"expires="+r.toUTCString():""};path=/`;try{if(null===Rt){let n=location.hostname?location.hostname.split("."):[];for(let o=n.length-1;o>=0;o--)if(Rt=`.${n[o]}${Rt||""}`,o<n.length-1&&(document.cookie=`${a};domain=${Rt}`,Qt(t)===e))return;Rt=""}}catch(t){Rt=""}document.cookie=Rt?`${a};domain=${Rt}`:a}}let ne,oe=null;function re(){const t=Pt;oe={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 ae(){oe=null}function ie(t){return oe.start=oe.start+oe.duration,oe.duration=l()-oe.start,oe.sequence++,oe.upload=t&&"sendBeacon"in navigator?1:0,oe.end=t?1:0,oe.applicationPlatform=0,oe.url=g(location.href,!1,!0),[oe.version,oe.sequence,oe.start,oe.duration,oe.projectId,oe.userId,oe.sessionId,oe.pageNum,oe.upload,oe.end,oe.applicationPlatform,oe.url]}function ue(){ne=[]}function le(t){if(ne&&-1===ne.indexOf(t.message)){const e=a.report;if(e&&e.length>0){let n={v:oe.version,p:oe.projectId,u:oe.userId,s:oe.sessionId,n:oe.pageNum};t.message&&(n.m=t.message),t.stack&&(n.e=t.stack);let o=new XMLHttpRequest;o.open("POST",e,!0),o.send(JSON.stringify(n)),ne.push(t.message)}}return t}function se(t){return function(){let e=performance.now();try{t.apply(this,arguments)}catch(t){throw le(t)}let n=performance.now()-e;x(4,n),n>30&&(j(7),z(6,n),t.dn||t.name)}}let ce=new Map;function de(t,e,n,o=!1,r=!0){n=se(n);try{t[i("addEventListener")](e,n,{capture:o,passive:r}),function(t){return ce.has(t)}(t)||ce.set(t,[]),ce.get(t).push({event:e,listener:n,options:{capture:o,passive:r}})}catch(t){}}function pe(){ce.forEach(((t,e)=>{!function(t,e){t.forEach((t=>{try{e[i("removeEventListener")](t.event,t.listener,{capture:t.options.capture,passive:t.options.passive})}catch(t){}})),ce.delete(e)}(t,e)})),ce=new Map}let fe=null,he=null,ge=null,me=0;function ye(){return!(me++>20)}function ve(){ve.dn=1,me=0,ge!==ke()&&(tn(),window.setTimeout(we,250))}function we(){Qe(),z(29,1)}function ke(){return location.href?location.href.replace(location.hash,""):location.href}let be=[],Se=null,_e=null,Ee=null;function Ie(){_e&&(Ee(),_e=null,null===Se&&Oe())}function Me(){be=[],Se=null,_e=null}function Oe(){let t=be.shift();t&&(Se=t,t.task().then((()=>{t.id===Lt()&&(t.resolve(),Se=null,Oe())})).catch((e=>{t.id===Lt()&&(e&&(e.name,e.message,e.stack),Se=null,Oe())})))}let Te=!1;function je(){Te=!0,u=performance.now()+performance.timeOrigin,Me(),pe(),ue(),ge=ke(),me=0,de(window,"popstate",ve),null===fe&&(fe=history.pushState,history.pushState=function(){fe.apply(this,arguments),ze()&&ye()&&ve()}),null===he&&(he=history.replaceState,history.replaceState=function(){he.apply(this,arguments),ze()&&ye()&&ve()})}function xe(){ge=null,me=0,ue(),pe(),Me(),u=0,Te=!1}function ze(){return Te}function $e(){$e.dn=2,Qe(),I("clarity","restart")}let Ce=null;function Ae(){Ce=null}function qe(t){Ce={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},async function(t){let e=[l(),t];29===t&&(e.push(Ce.fetchStart),e.push(Ce.connectStart),e.push(Ce.connectEnd),e.push(Ce.requestStart),e.push(Ce.responseStart),e.push(Ce.responseEnd),e.push(Ce.domInteractive),e.push(Ce.domComplete),e.push(Ce.loadEventStart),e.push(Ce.loadEventEnd),e.push(Ce.redirectCount),e.push(Ce.size),e.push(Ce.type),e.push(Ce.protocol),e.push(Ce.encodedSize),e.push(Ce.decodedSize),Ae(),gt(e))}(29)}let Pe=0,Ne=1/0,De=0,Re=0;const He=[],Ue=new Map,Xe=()=>Pe||0,Le=()=>{if(!He.length)return-1;const t=Math.min(He.length-1,Math.floor((Xe()-Re)/50));return He[t].latency},Ve=()=>{Re=Xe(),He.length=0,Ue.clear()},Be=t=>{if(!t.interactionId||t.duration<40)return;(t=>{"interactionCount"in performance?Pe=performance.interactionCount:t.interactionId&&(Ne=Math.min(Ne,t.interactionId),De=Math.max(De,t.interactionId),Pe=De?(De-Ne)/7+1:0)})(t);const e=He[He.length-1],n=Ue.get(t.interactionId);if(n||He.length<10||t.duration>(null==e?void 0:e.latency)){if(n)t.duration>n.latency&&(n.latency=t.duration);else{const e={id:t.interactionId,latency:t.duration};Ue.set(e.id,e),He.push(e)}He.sort(((t,e)=>e.latency-t.latency)),He.length>10&&He.splice(10).forEach((t=>Ue.delete(t.id)))}};let Ye;const We=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint","event"];function Je(){Je.dn=26;try{Ye&&Ye.disconnect(),Ye=new PerformanceObserver(se(Ze));for(let t of We)PerformanceObserver.supportedEntryTypes.indexOf(t)>=0&&("layout-shift"===t&&x(9,0),Ye.observe({type:t,buffered:!0}))}catch(t){}}function Ze(t){Ze.dn=27,function(t){let e=!("visibilityState"in document)||"visible"===document.visibilityState;for(let n=0;n<t.length;n++){let o=t[n];switch(o.entryType){case"navigation":qe(o);break;case"resource":let t=o.name;$t(4,Fe(t)),t!==a.upload&&t!==a.fallback||z(28,o.duration);break;case"longtask":j(7);break;case"first-input":e&&z(10,o.processingStart-o.startTime);break;case"event":e&&"PerformanceEventTiming"in window&&"interactionId"in PerformanceEventTiming.prototype&&(Be(o),$t(37,Le().toString()));break;case"layout-shift":e&&!o.hadRecentInput&&x(9,1e3*o.value);break;case"largest-contentful-paint":e&&z(8,o.startTime)}}}(t.getEntries())}function Fe(t){let e=document.createElement("a");return e.href=t,e.host}var Ge=Object.freeze({__proto__:null,start:function t(){t.dn=25,Ae(),function(){navigator&&"connection"in navigator&&$t(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?de(window,"load",$.bind(this,Je,0)):Je())}()},stop:function(){Ye&&Ye.disconnect(),Ye=null,Ve(),Ae()}});const Ke=[_,_,_,Ge];function Qe(t=null){(function(){try{let t=navigator&&"globalPrivacyControl"in navigator&&1==navigator.globalPrivacyControl;return!1===Te&&"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||Te)return!1;for(let e in t)e in a&&(a[e]=t[e])}(t),je(),et(),Ke.forEach((t=>se(t.start)())),null===t&&rn())}function tn(){ze()&&(Ke.slice().reverse().forEach((t=>se(t.stop)())),nt(),xe(),void 0!==nn&&(nn[on]=function(){(nn[on].q=nn[on].q||[]).push(arguments),"start"===arguments[0]&&nn[on].q.unshift(nn[on].q.pop())&&rn()}))}var en=Object.freeze({__proto__:null,consent:Vt,event:I,hashText:b,identify:B,metadata:Xt,pause:function(){ze()&&(I("clarity","pause"),null===_e&&(_e=new Promise((t=>{Ee=t}))))},resume:function(){ze()&&(Ie(),I("clarity","resume"))},set:V,signal:function(t){K=t},start:Qe,stop:tn,upgrade:U,version:s});const nn=window,on="clarity";function rn(){if(void 0!==nn){if(nn[on]&&nn[on].v)return console.warn("Error CL001: Multiple Clarity tags detected.");let t=nn[on]&&nn[on].q||[];for(nn[on]=function(t,...e){return en[t](...e)},nn[on].v=s;t.length>0;)nn[on](...t.shift())}}rn()}();
|
|
1
|
+
!function(){"use strict";var t=Object.freeze({__proto__:null,get queue(){return mt},get start(){return gt},get stop(){return yt},get track(){return lt}}),e=Object.freeze({__proto__:null,get check(){return Et},get compute(){return Mt},get data(){return st},get start(){return _t},get stop(){return Ot},get trigger(){return It}}),n=Object.freeze({__proto__:null,get compute(){return At},get data(){return Tt},get log(){return Ct},get reset(){return qt},get start(){return zt},get stop(){return $t},get updates(){return jt}}),o=Object.freeze({__proto__:null,get callback(){return Wt},get callbacks(){return Dt},get clear(){return Yt},get consent(){return Bt},get data(){return Nt},get electron(){return Rt},get id(){return Vt},get metadata(){return Lt},get save(){return Jt},get shortid(){return Gt},get start(){return Ut},get stop(){return Xt}}),r=Object.freeze({__proto__:null,get data(){return re},get envelope(){return ue},get start(){return ae},get stop(){return ie}});let a={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}let u=0;function l(t=null){let e=t&&t.timeStamp>0?t.timeStamp:performance.now(),n=t&&t.view?t.view.performance.timeOrigin:performance.timeOrigin;return Math.max(Math.round(e+n-u),0)}let s="0.8.10-beta";const c=255;let d=!0,p=null,f=null,h=null;function g(t,e=!1,n=!1){let o=t;if(e)o="https://Electron";else{let e=a.drop;if(e&&e.length>0&&t&&t.indexOf("?")>0){let[n,r]=t.split("?"),a="*na*";o=n+"?"+r.split("&").map((t=>e.some((e=>0===t.indexOf(`${e}=`)))?`${t.split("=")[0]}=${a}`:t)).join("&")}}return n&&(o=o.substring(0,c)),o}function m(t,e,n){return function(){if(d&&null===p)try{p=new RegExp("\\p{N}","gu"),f=new RegExp("\\p{L}","gu"),h=new RegExp("\\p{Sc}","gu")}catch(t){d=!1}}(),t?t.replace(f,e).replace(p,n):t}let y=[],v=null;function w(){}let k=[];function b(){}function S(){}var _=Object.freeze({__proto__:null,checkDocumentStyles:function(t){},compute:function(){},data:v,hashText:b,keys:k,log:w,observe:function(){},reset:function(){},sheetAdoptionState:[],sheetUpdateState:[],start:function(){},state:y,stop:function(){},trigger:S});let E=null;function I(t,e){$e()&&t&&"string"==typeof t&&t.length<255&&(E=e&&"string"==typeof e&&e.length<255?{key:t,value:e}:{value:t},St(24))}let M,O=null,T=null;function j(t){t in O||(O[t]=0),t in T||(T[t]=0),O[t]++,T[t]++}function x(t,e){null!==e&&(t in O||(O[t]=0),t in T||(T[t]=0),O[t]+=e,T[t]+=e)}function z(t,e){null!==e&&!1===isNaN(e)&&(t in O||(O[t]=0),(e>O[t]||0===O[t])&&(T[t]=e,O[t]=e))}function $(t,e,n){return window.setTimeout(ce(t),e,n)}function C(t){return window.clearTimeout(t)}let A=0,q=0,P=null;function N(){P&&C(P),P=$(D,q),A=l()}function D(){let t=l();M={gap:t-A},St(25),M.gap<3e5?P=$(D,q):je&&(I("clarity","suspend"),en(),["mousemove","touchstart"].forEach((t=>pe(document,t,Ce))),["resize","scroll","pageshow"].forEach((t=>pe(window,t,Ce))))}var R=Object.freeze({__proto__:null,get data(){return M},reset:N,start:function(){q=6e4,A=0},stop:function(){C(P),A=0,q=0}});let H=null;function U(t){$e()&&a.lean&&(a.lean=!1,H={key:t},Wt(),Jt(),a.upgrade&&a.upgrade(t),St(3),a.lite)}var X=Object.freeze({__proto__:null,get data(){return H},start:function(){!a.lean&&a.upgrade&&a.upgrade("Config"),H=null},stop:function(){H=null},upgrade:U});let L=null;function V(t,e){Y(t,"string"==typeof e?[e]:e)}async function B(t,e=null,n=null,o=null){let r={userId:await Z(t),userHint:o||(a=t,a&&a.length>=5?`${a.substring(0,2)}${m(a.substring(2),"*","*")}`:m(a,"*","*"))};var a;return Y("userId",[r.userId]),Y("userHint",[r.userHint]),Y("userType",[F(t)]),e&&(Y("sessionId",[e]),r.sessionId=e),n&&(Y("pageId",[n]),r.pageId=n),r}function Y(t,e){if($e()&&t&&e&&"string"==typeof t&&t.length<255){let n=t in L?L[t]:[];for(let t=0;t<e.length;t++)"string"==typeof e[t]&&e[t].length<255&&n.push(e[t]);L[t]=n}}function W(){St(34)}function J(){L={}}async function Z(t){try{if(crypto&&t){const e=await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t));return Array.prototype.map.call(new Uint8Array(e),(t=>("00"+t.toString(16)).slice(-2))).join("")}return""}catch(t){return""}}function F(t){return t&&t.indexOf("@")>0?"email":"string"}const G="CompressionStream"in window;let K=null;function Q(t){try{if(!K)return;const e=function(t){try{return JSON.parse(t)}catch(t){return[]}}(t);e.forEach((t=>{K(t)}))}catch(t){}}const tt=[_,n,Object.freeze({__proto__:null,compute:W,get data(){return L},identify:B,reset:J,set:V,start:function(){J()},stop:function(){J()}}),e,_,o,r,t,R,X,_];function et(){O={},T={},j(5),tt.forEach((t=>ce(t.start)()))}function nt(){tt.slice().reverse().forEach((t=>ce(t.stop)())),O={},T={}}function ot(){W(),At(),St(0),Mt()}let rt,at,it,ut,lt,st,ct=0,dt=0,pt=null,ft=0,ht=!1;function gt(){ut=!0,ct=0,dt=0,ht=!1,ft=0,rt=[],at=[],it={},lt=null}function mt(t,e=!0){if(ut){let n=l(),o=t.length>1?t[1]:null,r=JSON.stringify(t);switch(a.lean?!ht&&dt+r.length>10485760&&(ht=!0):ht=!1,o){case 5:if(ht)break;ct+=r.length;case 37:case 6:case 43:case 45:case 46:if(ht)break;dt+=r.length,rt.push(r);break;default:at.push(r)}j(25);let i=function(){let t=!1===a.lean&&ct>0?100:re.sequence*a.delay;return"string"==typeof a.upload?Math.max(Math.min(t,3e4),100):a.delay}();n-ft>2*i&&(C(pt),pt=null),e&&null===pt&&(25!==o&&N(),pt=$(vt,i),ft=n,Et(dt))}}function yt(){C(pt),vt(!0),ct=0,dt=0,ht=!1,ft=0,rt=[],at=[],it={},lt=null,ut=!1}async function vt(t=!1){pt=null;let e=!1===a.lean&&dt>0&&(dt<1048576||re.sequence>0);e&&z(1,1),ot();let n=!0===t,o=function(t){return t.p.length>0?`{"e":${t.e},"a":${t.a},"p":${t.p}}`:`{"e":${t.e},"a":${t.a}}`}({e:JSON.stringify(ue(n)),a:`[${at.join()}]`,p:e?`[${rt.join()}]`:""}),r=n?null:await async function(t){try{if(G){const e=new ReadableStream({async start(e){e.enqueue(t),e.close()}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip"));return new Uint8Array(await async function(t){const e=t.getReader(),n=[];let o=!1,r=[];for(;!o;){if(({done:o,value:r}=await e.read()),o)return n;n.push(...r)}return n}(e))}}catch(t){}return null}(o);x(2,r?r.length:o.length),wt(o,r,re.sequence,n),at=[],e&&(rt=[],dt=0,ct=0,ht=!1)}function wt(t,e,n,o=!1){if("string"==typeof a.upload){const r=a.upload;let i=!1;if(o&&"sendBeacon"in navigator)try{i=navigator.sendBeacon.bind(navigator)(r,t),i&&bt(n)}catch(t){}if(!1===i){n in it?it[n].attempts++:it[n]={data:t,attempts:1};let o=new XMLHttpRequest;o.open("POST",r,!0),o.timeout=15e3,o.ontimeout=()=>{se(new Error(`Timeout : ${r}`))},null!==n&&(o.onreadystatechange=()=>{ce(kt)(o,n)}),o.withCredentials=!0,e?(o.setRequestHeader("Accept","application/x-clarity-gzip"),o.send(e)):o.send(t)}}else if(a.upload){(0,a.upload)(t),bt(n)}}function kt(t,e){var n=it[e];t&&4===t.readyState&&n&&((t.status<200||t.status>208)&&n.attempts<=1?t.status>=400&&t.status<500?It(6):(0===t.status&&(a.upload=a.fallback?a.fallback:a.upload),wt(n.data,null,e)):(lt={sequence:e,attempts:n.attempts,status:t.status},n.attempts>1&&St(2),200===t.status&&t.responseText&&function(t){let e=t&&t.length>0?t.split("\n"):[];for(var n of e){let t=n&&n.length>0?n.split(/ (.*)/):[""];switch(t[0]){case"END":It(6);break;case"UPGRADE":U("Auto");break;case"ACTION":a.action&&t.length>1&&a.action(t[1]);break;case"EXTRACT":t.length>1&&t[1];break;case"SIGNAL":t.length>1&&Q(t[1])}}}(t.responseText),0===t.status&&(wt(n.data,null,e,!0),It(3)),t.status>=200&&t.status<=208&&bt(e),delete it[e]))}function bt(t){1===t&&(Jt(),Wt())}function St(t){let e=[l(),t];switch(t){case 4:let t=y;t&&(e=[t.time,t.event],e.push(t.data.visible),e.push(t.data.docWidth),e.push(t.data.docHeight),e.push(t.data.screenWidth),e.push(t.data.screenHeight),e.push(t.data.scrollX),e.push(t.data.scrollY),e.push(t.data.pointerX),e.push(t.data.pointerY),e.push(t.data.activityTime),e.push(t.data.scrollTime),e.push(t.data.pointerTime),e.push(t.data.moveX),e.push(t.data.moveY),e.push(t.data.moveTime),e.push(t.data.downX),e.push(t.data.downY),e.push(t.data.downTime),e.push(t.data.upX),e.push(t.data.upY),e.push(t.data.upTime),e.push(t.data.pointerPrevX),e.push(t.data.pointerPrevY),e.push(t.data.pointerPrevTime),mt(e,!1));break;case 25:e.push(M.gap),mt(e);break;case 35:e.push(st.check),mt(e,!1);break;case 3:e.push(H.key),mt(e);break;case 2:e.push(lt.sequence),e.push(lt.attempts),e.push(lt.status),mt(e,!1);break;case 24:E.key&&e.push(E.key),e.push(E.value),mt(e);break;case 34:let n=Object.keys(L);if(n.length>0){for(let t of n)e.push(t),e.push(L[t]);J(),mt(e,!1)}break;case 0:let o=Object.keys(T);if(o.length>0){for(let t of o){let n=parseInt(t,10);e.push(n),e.push(Math.round(T[t]))}T={},mt(e,!1)}break;case 1:let r=Object.keys(jt);if(r.length>0){for(let t of r){let n=parseInt(t,10);e.push(n),e.push(jt[t])}qt(),mt(e,!1)}break;case 36:let a=Object.keys(v);if(a.length>0){for(let t of a){let n=parseInt(t,10);e.push(n),e.push([].concat(...v[t]))}mt(e,!1)}break;case 40:k.forEach((t=>{e.push(t);let n=[];for(let e in v[t]){let o=parseInt(e,10);n.push(o),n.push(v[t][e])}e.push(n)})),mt(e,!1)}}function _t(){st={check:0}}function Et(t){if(0===st.check){let e=st.check;e=re.sequence>=128?1:e,e=re.pageNum>=128?7:e,e=l()>72e5?2:e,e=t>10485760?2:e,e!==st.check&&It(e)}}function It(t){st.check=t,5!==t&&(Yt(),en())}function Mt(){0!==st.check&&St(35)}function Ot(){st=null}let Tt=null,jt=null,xt=!1;function zt(){Tt={},jt={},xt=!1}function $t(){Tt={},jt={},xt=!1}function Ct(t,e){if(e&&(e=`${e}`,t in Tt||(Tt[t]=[]),Tt[t].indexOf(e)<0)){if(Tt[t].length>128)return void(xt||(xt=!0,It(5)));Tt[t].push(e),t in jt||(jt[t]=[]),jt[t].push(e)}}function At(){St(1)}function qt(){jt={},xt=!1}function Pt(t){Ct(36,t.toString())}let Nt=null,Dt=[],Rt=0,Ht=null;function Ut(){var t,e,n;Ht=null;const o=navigator&&"userAgent"in navigator?navigator.userAgent:"",r=null!==(n=null===(e=null===(t=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===t?void 0:t.resolvedOptions())||void 0===e?void 0:e.timeZone)&&void 0!==n?n:"",i=(new Date).getTimezoneOffset().toString(),u=window.location.ancestorOrigins?Array.from(window.location.ancestorOrigins).toString():"",l=document&&document.title?document.title:"";Rt=o.indexOf("Electron")>0?1:0;let s=function(){let t={session:Gt(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},e=te("_clsk",!a.includeSubdomains);if(e){let n=e.includes("^")?e.split("^"):e.split("|");n.length>=5&&t.ts-Kt(n[1])<18e5&&(t.session=n[0],t.count=Kt(n[2])+1,t.upgrade=Kt(n[3]),t.upload=n.length>=6?`https://${n[5]}/${n[4]}`:`https://${n[4]}`)}return t}(),c=Qt(),d=a.projectId||function(t,e=null){let n=0,o=5381,r=o;for(let e=0;e<t.length;e+=2)o=(o<<5)+o^t.charCodeAt(e),e+1<t.length&&(r=(r<<5)+r^t.charCodeAt(e+1));return n=Math.abs(o+11579*r),(e?n%Math.pow(2,e):n).toString(36)}(location.host);Nt={projectId:d,userId:c.id,sessionId:s.session,pageNum:s.count},a.lean=a.track&&null!==s.upgrade?0===s.upgrade:a.lean,a.upload=a.track&&"string"==typeof a.upload&&s.upload&&s.upload.length>"https://".length?s.upload:a.upload,Ct(0,o),Ct(3,l),Ct(1,g(location.href,!!Rt)),Ct(2,document.referrer),Ct(15,function(){let t=Gt();if(a.track&&Zt(window,"sessionStorage")){let e=sessionStorage.getItem("_cltk");t=e||t,sessionStorage.setItem("_cltk",t)}return t}()),Ct(16,document.documentElement.lang),Ct(17,document.dir),Ct(26,`${window.devicePixelRatio}`),Ct(28,c.dob.toString()),Ct(29,c.version.toString()),Ct(33,u),Ct(34,r),Ct(35,i),z(0,s.ts),z(1,0),z(35,Rt),navigator&&(Ct(9,navigator.language),z(33,navigator.hardwareConcurrency),z(32,navigator.maxTouchPoints),z(34,Math.round(navigator.deviceMemory)),function(){let t=navigator.userAgentData;t&&t.getHighEntropyValues?t.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((t=>{var e;Ct(22,t.platform),Ct(23,t.platformVersion),null===(e=t.brands)||void 0===e||e.forEach((t=>{Ct(24,t.name+"~"+t.version)})),Ct(25,t.model),z(27,t.mobile?1:0)})):Ct(22,navigator.platform)}()),screen&&(z(14,Math.round(screen.width)),z(15,Math.round(screen.height)),z(16,Math.round(screen.colorDepth)));for(let t of a.cookies){let e=te(t);e&&V(t,e)}!function(t){Pt(t?1:0)}(a.track),Ft(c)}function Xt(){Ht=null,Nt=null,Dt.forEach((t=>{t.called=!1}))}function Lt(t,e=!0,n=!1){let o=a.lean?0:1,r=!1;Nt&&(o||!1===e)&&(t(Nt,!a.lean),r=!0),!n&&r||Dt.push({callback:t,wait:e,recall:n,called:r})}function Vt(){return Nt?[Nt.userId,Nt.sessionId,Nt.pageNum].join("."):""}function Bt(t=!0){if(!t)return a.track=!1,ne("_clsk","",-Number.MAX_VALUE),ne("_clck","",-Number.MAX_VALUE),en(),void window.setTimeout(tn,250);$e()&&(a.track=!0,Ft(Qt(),1),Jt(),Pt(2))}function Yt(){ne("_clsk","",0)}function Wt(){!function(t){if(Dt.length>0)for(let e=0;e<Dt.length;e++){const n=Dt[e];!n.callback||n.called||n.wait&&!t||(n.callback(Nt,!a.lean),n.called=!0,n.recall||(Dt.splice(e,1),e--))}}(a.lean?0:1)}function Jt(){if(!Nt||!a.track)return;let t=Math.round(Date.now()),e=a.upload&&"string"==typeof a.upload?a.upload.replace("https://",""):"",n=a.lean?0:1;ne("_clsk",[Nt.sessionId,t,Nt.pageNum,n,e].join("|"),1)}function Zt(t,e){try{return!!t[e]}catch(t){return!1}}function Ft(t,e=null){e=null===e?t.consent:e;let n=Math.ceil((Date.now()+31536e6)/864e5),o=0===t.dob?null===a.dob?0:a.dob:t.dob;if(null===t.expiry||Math.abs(n-t.expiry)>=1||t.consent!==e||t.dob!==o){ne("_clck",[Nt.userId,2,n.toString(36),e,o].join("|"),365)}}function Gt(){let 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 Kt(t,e=10){return parseInt(t,e)}function Qt(){let t={id:Gt(),version:0,expiry:null,consent:0,dob:0},e=te("_clck",!a.includeSubdomains);if(e&&e.length>0){let n=e.includes("^")?e.split("^"):e.split("|");n.length>1&&(t.version=Kt(n[1])),n.length>2&&(t.expiry=Kt(n[2],36)),n.length>3&&1===Kt(n[3])&&(t.consent=1),n.length>4&&Kt(n[1])>1&&(t.dob=Kt(n[4])),a.track=a.track||1===t.consent,t.id=a.track?n[0]:t.id}return t}function te(t,e=!1){if(Zt(document,"cookie")){let n=document.cookie.split(";");if(n)for(let o=0;o<n.length;o++){let r=n[o].split("=");if(r.length>1&&r[0]&&r[0].trim()===t){let[t,n]=ee(r[1]);for(;t;)[t,n]=ee(n);return e?n.endsWith("~1")?n.substring(0,n.length-2):null:n}}}return null}function ee(t){try{let e=decodeURIComponent(t);return[e!=t,e]}catch(t){}return[!1,t]}function ne(t,e,n){if((a.track||""==e)&&(navigator&&navigator.cookieEnabled||Zt(document,"cookie"))){let o=function(t){return encodeURIComponent(t)}(e),r=new Date;r.setDate(r.getDate()+n);let a=`${t}=${o};${r?"expires="+r.toUTCString():""};path=/`;try{if(null===Ht){let n=location.hostname?location.hostname.split("."):[];for(let o=n.length-1;o>=0;o--)if(Ht=`.${n[o]}${Ht||""}`,o<n.length-1&&(document.cookie=`${a};domain=${Ht}`,te(t)===e))return;Ht=""}}catch(t){Ht=""}document.cookie=Ht?`${a};domain=${Ht}`:a}}let oe,re=null;function ae(){const t=Nt;re={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 ie(){re=null}function ue(t){return re.start=re.start+re.duration,re.duration=l()-re.start,re.sequence++,re.upload=t&&"sendBeacon"in navigator?1:0,re.end=t?1:0,re.applicationPlatform=0,re.url=g(location.href,!1,!0),[re.version,re.sequence,re.start,re.duration,re.projectId,re.userId,re.sessionId,re.pageNum,re.upload,re.end,re.applicationPlatform,re.url]}function le(){oe=[]}function se(t){if(oe&&-1===oe.indexOf(t.message)){const e=a.report;if(e&&e.length>0){let n={v:re.version,p:re.projectId,u:re.userId,s:re.sessionId,n:re.pageNum};t.message&&(n.m=t.message),t.stack&&(n.e=t.stack);let o=new XMLHttpRequest;o.open("POST",e,!0),o.send(JSON.stringify(n)),oe.push(t.message)}}return t}function ce(t){return function(){let e=performance.now();try{t.apply(this,arguments)}catch(t){throw se(t)}let n=performance.now()-e;x(4,n),n>30&&(j(7),z(6,n),t.dn||t.name)}}let de=new Map;function pe(t,e,n,o=!1,r=!0){n=ce(n);try{t[i("addEventListener")](e,n,{capture:o,passive:r}),function(t){return de.has(t)}(t)||de.set(t,[]),de.get(t).push({event:e,listener:n,options:{capture:o,passive:r}})}catch(t){}}function fe(){de.forEach(((t,e)=>{!function(t,e){t.forEach((t=>{try{e[i("removeEventListener")](t.event,t.listener,{capture:t.options.capture,passive:t.options.passive})}catch(t){}})),de.delete(e)}(t,e)})),de=new Map}let he=null,ge=null,me=null,ye=0;function ve(){return!(ye++>20)}function we(){we.dn=1,ye=0,me!==be()&&(en(),window.setTimeout(ke,250))}function ke(){tn(),z(29,1)}function be(){return location.href?location.href.replace(location.hash,""):location.href}let Se=[],_e=null,Ee=null,Ie=null;function Me(){Ee&&(Ie(),Ee=null,null===_e&&Te())}function Oe(){Se=[],_e=null,Ee=null}function Te(){let t=Se.shift();t&&(_e=t,t.task().then((()=>{t.id===Vt()&&(t.resolve(),_e=null,Te())})).catch((e=>{t.id===Vt()&&(e&&(e.name,e.message,e.stack),_e=null,Te())})))}let je=!1;function xe(){je=!0,u=performance.now()+performance.timeOrigin,Oe(),fe(),le(),me=be(),ye=0,pe(window,"popstate",we),null===he&&(he=history.pushState,history.pushState=function(){he.apply(this,arguments),$e()&&ve()&&we()}),null===ge&&(ge=history.replaceState,history.replaceState=function(){ge.apply(this,arguments),$e()&&ve()&&we()})}function ze(){me=null,ye=0,le(),fe(),Oe(),u=0,je=!1}function $e(){return je}function Ce(){Ce.dn=2,tn(),I("clarity","restart")}let Ae=null;function qe(){Ae=null}function Pe(t){Ae={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},async function(t){let e=[l(),t];29===t&&(e.push(Ae.fetchStart),e.push(Ae.connectStart),e.push(Ae.connectEnd),e.push(Ae.requestStart),e.push(Ae.responseStart),e.push(Ae.responseEnd),e.push(Ae.domInteractive),e.push(Ae.domComplete),e.push(Ae.loadEventStart),e.push(Ae.loadEventEnd),e.push(Ae.redirectCount),e.push(Ae.size),e.push(Ae.type),e.push(Ae.protocol),e.push(Ae.encodedSize),e.push(Ae.decodedSize),qe(),mt(e))}(29)}let Ne=0,De=1/0,Re=0,He=0;const Ue=[],Xe=new Map,Le=()=>Ne||0,Ve=()=>{if(!Ue.length)return-1;const t=Math.min(Ue.length-1,Math.floor((Le()-He)/50));return Ue[t].latency},Be=()=>{He=Le(),Ue.length=0,Xe.clear()},Ye=t=>{if(!t.interactionId||t.duration<40)return;(t=>{"interactionCount"in performance?Ne=performance.interactionCount:t.interactionId&&(De=Math.min(De,t.interactionId),Re=Math.max(Re,t.interactionId),Ne=Re?(Re-De)/7+1:0)})(t);const e=Ue[Ue.length-1],n=Xe.get(t.interactionId);if(n||Ue.length<10||t.duration>(null==e?void 0:e.latency)){if(n)t.duration>n.latency&&(n.latency=t.duration);else{const e={id:t.interactionId,latency:t.duration};Xe.set(e.id,e),Ue.push(e)}Ue.sort(((t,e)=>e.latency-t.latency)),Ue.length>10&&Ue.splice(10).forEach((t=>Xe.delete(t.id)))}};let We;const Je=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint","event"];function Ze(){Ze.dn=26;try{We&&We.disconnect(),We=new PerformanceObserver(ce(Fe));for(let t of Je)PerformanceObserver.supportedEntryTypes.indexOf(t)>=0&&("layout-shift"===t&&x(9,0),We.observe({type:t,buffered:!0}))}catch(t){}}function Fe(t){Fe.dn=27,function(t){let e=!("visibilityState"in document)||"visible"===document.visibilityState;for(let n=0;n<t.length;n++){let o=t[n];switch(o.entryType){case"navigation":Pe(o);break;case"resource":let t=o.name;Ct(4,Ge(t)),t!==a.upload&&t!==a.fallback||z(28,o.duration);break;case"longtask":j(7);break;case"first-input":e&&z(10,o.processingStart-o.startTime);break;case"event":e&&"PerformanceEventTiming"in window&&"interactionId"in PerformanceEventTiming.prototype&&(Ye(o),Ct(37,Ve().toString()));break;case"layout-shift":e&&!o.hadRecentInput&&x(9,1e3*o.value);break;case"largest-contentful-paint":e&&z(8,o.startTime)}}}(t.getEntries())}function Ge(t){let e=document.createElement("a");return e.href=t,e.host}var Ke=Object.freeze({__proto__:null,start:function t(){t.dn=25,qe(),function(){navigator&&"connection"in navigator&&Ct(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?pe(window,"load",$.bind(this,Ze,0)):Ze())}()},stop:function(){We&&We.disconnect(),We=null,Be(),qe()}});const Qe=[_,_,_,Ke];function tn(t=null){(function(){try{let t=navigator&&"globalPrivacyControl"in navigator&&1==navigator.globalPrivacyControl;return!1===je&&"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||je)return!1;for(let e in t)e in a&&(a[e]=t[e])}(t),xe(),et(),Qe.forEach((t=>ce(t.start)())),null===t&&an())}function en(){$e()&&(Qe.slice().reverse().forEach((t=>ce(t.stop)())),nt(),ze(),void 0!==on&&(on[rn]=function(){(on[rn].q=on[rn].q||[]).push(arguments),"start"===arguments[0]&&on[rn].q.unshift(on[rn].q.pop())&&an()}))}var nn=Object.freeze({__proto__:null,consent:Bt,event:I,hashText:b,identify:B,metadata:Lt,pause:function(){$e()&&(I("clarity","pause"),null===Ee&&(Ee=new Promise((t=>{Ie=t}))))},resume:function(){$e()&&(Me(),I("clarity","resume"))},set:V,signal:function(t){K=t},start:tn,stop:en,upgrade:U,version:s});const on=window,rn="clarity";function an(){if(void 0!==on){if(on[rn]&&on[rn].v)return console.warn("Error CL001: Multiple Clarity tags detected.");let t=on[rn]&&on[rn].q||[];for(on[rn]=function(t,...e){return nn[t](...e)},on[rn].v=s;t.length>0;)on[rn](...t.shift())}}an()}();
|
package/package.json
CHANGED
package/src/core/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
let version = "0.8.
|
|
1
|
+
let version = "0.8.10-beta";
|
|
2
2
|
export default version;
|
package/src/data/upload.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UploadCallback } from "@clarity-types/core";
|
|
2
|
-
import { BooleanFlag, Check, Constant, EncodedPayload, Event, Metric, Setting, Token, Transit, UploadData, XMLReadyState } from "@clarity-types/data";
|
|
2
|
+
import { BooleanFlag, Check, Code, Constant, EncodedPayload, Event, Metric, Setting, Severity, Token, Transit, UploadData, XMLReadyState } from "@clarity-types/data";
|
|
3
3
|
import * as clarity from "@src/clarity";
|
|
4
4
|
import config from "@src/core/config";
|
|
5
5
|
import measure from "@src/core/measure";
|
|
@@ -13,6 +13,7 @@ import * as limit from "@src/data/limit";
|
|
|
13
13
|
import * as metadata from "@src/data/metadata";
|
|
14
14
|
import * as metric from "@src/data/metric";
|
|
15
15
|
import * as ping from "@src/data/ping";
|
|
16
|
+
import * as internal from "@src/diagnostic/internal";
|
|
16
17
|
import * as timeline from "@src/interaction/timeline";
|
|
17
18
|
import * as region from "@src/layout/region";
|
|
18
19
|
import * as extract from "@src/data/extract";
|
|
@@ -28,12 +29,14 @@ let timeout: number = null;
|
|
|
28
29
|
let transit: Transit;
|
|
29
30
|
let active: boolean;
|
|
30
31
|
let queuedTime: number = 0;
|
|
32
|
+
let leanLimit = false;
|
|
31
33
|
export let track: UploadData;
|
|
32
34
|
|
|
33
35
|
export function start(): void {
|
|
34
36
|
active = true;
|
|
35
37
|
discoverBytes = 0;
|
|
36
38
|
playbackBytes = 0;
|
|
39
|
+
leanLimit = false;
|
|
37
40
|
queuedTime = 0;
|
|
38
41
|
playback = [];
|
|
39
42
|
analysis = [];
|
|
@@ -47,14 +50,23 @@ export function queue(tokens: Token[], transmit: boolean = true): void {
|
|
|
47
50
|
let type = tokens.length > 1 ? tokens[1] : null;
|
|
48
51
|
let event = JSON.stringify(tokens);
|
|
49
52
|
|
|
53
|
+
if (!config.lean) {
|
|
54
|
+
leanLimit = false;
|
|
55
|
+
} else if (!leanLimit && playbackBytes + event.length > Setting.PlaybackBytesLimit) {
|
|
56
|
+
internal.log(Code.LeanLimit, Severity.Info);
|
|
57
|
+
leanLimit = true;
|
|
58
|
+
}
|
|
59
|
+
|
|
50
60
|
switch (type) {
|
|
51
61
|
case Event.Discover:
|
|
62
|
+
if (leanLimit) { break; }
|
|
52
63
|
discoverBytes += event.length;
|
|
53
64
|
case Event.Box:
|
|
54
65
|
case Event.Mutation:
|
|
55
66
|
case Event.Snapshot:
|
|
56
67
|
case Event.StyleSheetAdoption:
|
|
57
68
|
case Event.StyleSheetUpdate:
|
|
69
|
+
if (leanLimit) { break; }
|
|
58
70
|
playbackBytes += event.length;
|
|
59
71
|
playback.push(event);
|
|
60
72
|
break;
|
|
@@ -92,6 +104,7 @@ export function stop(): void {
|
|
|
92
104
|
upload(true);
|
|
93
105
|
discoverBytes = 0;
|
|
94
106
|
playbackBytes = 0;
|
|
107
|
+
leanLimit = false;
|
|
95
108
|
queuedTime = 0;
|
|
96
109
|
playback = [];
|
|
97
110
|
analysis = [];
|
|
@@ -141,6 +154,7 @@ async function upload(final: boolean = false): Promise<void> {
|
|
|
141
154
|
playback = [];
|
|
142
155
|
playbackBytes = 0;
|
|
143
156
|
discoverBytes = 0;
|
|
157
|
+
leanLimit = false;
|
|
144
158
|
}
|
|
145
159
|
}
|
|
146
160
|
|
|
@@ -40,12 +40,14 @@ export default async function (type: Event, ts: number = null): Promise<void> {
|
|
|
40
40
|
if (entry.data.id !== undefined) {
|
|
41
41
|
tokens.push(entry.data.id);
|
|
42
42
|
|
|
43
|
-
if (entry.data.isPrimary !== undefined) {
|
|
44
|
-
tokens.push(entry.data.isPrimary.toString());
|
|
43
|
+
if (entry.data.isPrimary !== undefined) {
|
|
44
|
+
tokens.push(entry.data.isPrimary.toString());
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
queue(tokens);
|
|
48
|
-
|
|
48
|
+
if (entry.data.isPrimary === undefined || entry.data.isPrimary) {
|
|
49
|
+
baseline.track(entry.event, entry.data.x, entry.data.y, entry.time);
|
|
50
|
+
}
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
pointer.reset();
|
|
@@ -129,7 +129,8 @@ function similar(last: PointerState, current: PointerState): boolean {
|
|
|
129
129
|
let distance = Math.sqrt(dx * dx + dy * dy);
|
|
130
130
|
let gap = current.time - last.time;
|
|
131
131
|
let match = current.data.target === last.data.target;
|
|
132
|
-
|
|
132
|
+
let sameId = current.data.id !== undefined ? current.data.id === last.data.id : true;
|
|
133
|
+
return current.event === last.event && match && distance < Setting.Distance && gap < Setting.Interval && sameId;
|
|
133
134
|
}
|
|
134
135
|
|
|
135
136
|
export function stop(): void {
|
package/src/layout/style.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Event
|
|
1
|
+
import { Event } from "@clarity-types/data";
|
|
2
2
|
import { StyleSheetOperation, StyleSheetState } from "@clarity-types/layout";
|
|
3
3
|
import { time } from "@src/core/time";
|
|
4
4
|
import { shortid } from "@src/data/metadata";
|
|
@@ -106,7 +106,7 @@ export function compute(): void {
|
|
|
106
106
|
for (var documentNode of documentNodes) {
|
|
107
107
|
var docId = documentNode == document ? -1 : getId(documentNode);
|
|
108
108
|
let ts = docId in styleTimeMap ? styleTimeMap[docId] : null;
|
|
109
|
-
checkDocumentStyles(
|
|
109
|
+
checkDocumentStyles(documentNode, ts);
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
|