clarity-js 0.8.9-beta → 0.8.9
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 +1709 -1346
- package/build/clarity.min.js +1 -1
- package/build/clarity.module.js +1709 -1346
- 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 +1 -1
- package/tsconfig.json +1 -1
- 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 bt},get start(){return yt},get stop(){return wt},get track(){return dt}}),n=Object.freeze({__proto__:null,get check(){return Ot},get compute(){return xt},get data(){return pt},get start(){return Mt},get stop(){return jt},get trigger(){return Tt}}),e=Object.freeze({__proto__:null,get compute(){return Dt},get data(){return zt},get log(){return Nt},get reset(){return Rt},get start(){return Pt},get stop(){return qt},get updates(){return At}}),r=Object.freeze({__proto__:null,get callback(){return Ft},get callbacks(){return Xt},get clear(){return Gt},get consent(){return Zt},get data(){return Ut},get electron(){return Lt},get id(){return Jt},get metadata(){return Wt},get save(){return Kt},get shortid(){return tn},get start(){return Bt},get stop(){return Yt}}),o=Object.freeze({__proto__:null,get data(){return cn},get envelope(){return dn},get start(){return sn},get stop(){return ln}}),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}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.9";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 o=a.drop;if(o&&o.length>0&&t&&t.indexOf("?")>0){var i=t.split("?"),u=i[0],c=i[1];r=u+"?"+c.split("&").map((function(t){return o.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 b=[];function w(){}function k(){}var S=Object.freeze({__proto__:null,checkDocumentStyles:function(t){},compute:function(){},data:m,hashText:w,keys:b,log:y,observe:function(){},reset:function(){},sheetAdoptionState:[],sheetUpdateState:[],start:function(){},state:g,stop:function(){},trigger:k}),_=null;function E(t,n){Nn()&&t&&"string"==typeof t&&t.length<255&&(_=n&&"string"==typeof n&&n.length<255?{key:t,value:n}:{value:t},It(24))}var I,M=null,O=null;function T(t){t in M||(M[t]=0),t in O||(O[t]=0),M[t]++,O[t]++}function x(t,n){null!==n&&(t in M||(M[t]=0),t in O||(O[t]=0),M[t]+=n,O[t]+=n)}function j(t,n){null!==n&&!1===isNaN(n)&&(t in M||(M[t]=0),(n>M[t]||0===M[t])&&(O[t]=n,M[t]=n))}function z(t,n,e){return window.setTimeout(hn(t),n,e)}function A(t){return window.clearTimeout(t)}var C=0,P=0,q=null;function N(){q&&A(q),q=z(D,P),C=c()}function D(){var t=c();I={gap:t-C},It(25),I.gap<3e5?q=z(D,P):Cn&&(E("clarity","suspend"),ae(),["mousemove","touchstart"].forEach((function(t){return gn(document,t,Dn)})),["resize","scroll","pageshow"].forEach((function(t){return gn(window,t,Dn)})))}var R=Object.freeze({__proto__:null,get data(){return I},reset:N,start:function(){P=6e4,C=0},stop:function(){A(q),C=0,P=0}}),H=null;function U(t){Nn()&&a.lean&&(a.lean=!1,H={key:t},Ft(),Kt(),a.upgrade&&a.upgrade(t),It(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});function L(t,n,e,r){return new(e||(e=Promise))((function(o,a){function i(t){try{c(r.next(t))}catch(t){a(t)}}function u(t){try{c(r.throw(t))}catch(t){a(t)}}function c(t){var n;t.done?o(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 V(t,n){var e,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(u){return function(c){return function(u){if(e)throw new TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(e=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=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(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=n.call(t,i)}catch(t){u=[6,t],r=0}finally{e=o=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),L(this,void 0,void 0,(function(){var o,a;return V(this,(function(i){switch(i.label){case 0:return a={},[4,F(t)];case 1:return a.userId=i.sent(),a.userHint=r||((u=t)&&u.length>=5?"".concat(u.substring(0,2)).concat(v(u.substring(2),"*","*")):v(u,"*","*")),J("userId",[(o=a).userId]),J("userHint",[o.userHint]),J("userType",[K(t)]),n&&(J("sessionId",[n]),o.sessionId=n),e&&(J("pageId",[e]),o.pageId=e),[2,o]}var u}))}))}function J(t,n){if(Nn()&&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(){It(34)}function G(){B={}}function F(t){return L(this,void 0,void 0,(function(){var n;return V(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 K(t){return t&&t.indexOf("@")>0?"email":"string"}var Q="CompressionStream"in window;function $(t){return L(this,void 0,void 0,(function(){var n,e;return V(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),Q?(n=new ReadableStream({start:function(n){return L(this,void 0,void 0,(function(){return V(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 L(this,void 0,void 0,(function(){var n,e,r,o,a;return V(this,(function(i){switch(i.label){case 0:n=t.getReader(),e=[],r=!1,o=[],i.label=1;case 1:return r?[3,3]:[4,n.read()];case 2:return a=i.sent(),r=a.done,o=a.value,r?[2,e]:(e.push.apply(e,o),[3,1]);case 3:return[2,e]}}))}))}var nt=null;function et(t){try{if(!nt)return;var n=function(t){try{return JSON.parse(t)}catch(t){return[]}}(t);n.forEach((function(t){nt(t)}))}catch(t){}}var rt=[S,e,Object.freeze({__proto__:null,compute:Z,get data(){return B},identify:W,reset:G,set:Y,start:function(){G()},stop:function(){G()}}),n,S,r,o,t,R,X,S];function ot(){M={},O={},T(5),rt.forEach((function(t){return hn(t.start)()}))}function at(){rt.slice().reverse().forEach((function(t){return hn(t.stop)()})),M={},O={}}function it(){Z(),Dt(),It(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=c(),r=t.length>1?t[1]:null,o=JSON.stringify(t);switch(a.lean?!mt&&ht+o.length>10485760&&(mt=!0):mt=!1,r){case 5:if(mt)break;ft+=o.length;case 37:case 6:case 43:case 45:case 46:if(mt)break;ht+=o.length,ut.push(o);break;default:ct.push(o)}T(25);var i=function(){var t=!1===a.lean&&ft>0?100:cn.sequence*a.delay;return"string"==typeof a.upload?Math.max(Math.min(t,3e4),100):a.delay}();e-gt>2*i&&(A(vt),vt=null),n&&null===vt&&(25!==r&&N(),vt=z(kt,i),gt=e,Ot(ht))}}function wt(){A(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),L(this,void 0,void 0,(function(){var n,e,r,o,i,u,c,s;return V(this,(function(l){switch(l.label){case 0:return vt=null,(n=!1===a.lean&&ht>0&&(ht<1048576||cn.sequence>0))&&j(1,1),it(),e=!0===t,r=JSON.stringify(dn(e)),o="[".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:o,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 a.upload){var o=a.upload,i=!1;if(r&&"sendBeacon"in navigator)try{(i=navigator.sendBeacon.bind(navigator)(o,t))&&Et(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",o,!0),u.timeout=15e3,u.ontimeout=function(){fn(new Error("".concat("Timeout"," : ").concat(o)))},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(a.upload){(0,a.upload)(t),Et(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?Tt(6):(0===t.status&&(a.upload=a.fallback?a.fallback:a.upload),St(e.data,null,n)):(dt={sequence:n,attempts:e.attempts,status:t.status},e.attempts>1&&It(2),200===t.status&&t.responseText&&function(t){for(var n=t&&t.length>0?t.split("\n"):[],e=0,r=n;e<r.length;e++){var o=r[e],i=o&&o.length>0?o.split(/ (.*)/):[""];switch(i[0]){case"END":Tt(6);break;case"UPGRADE":U("Auto");break;case"ACTION":a.action&&i.length>1&&a.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),Tt(3)),t.status>=200&&t.status<=208&&Et(n),delete st[n]))}function Et(t){1===t&&(Kt(),Ft())}function It(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),bt(n,!1));break;case 25:n.push(I.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 o=0,a=r;o<a.length;o++){var i=a[o];n.push(i),n.push(B[i])}G(),bt(n,!1)}break;case 0:var u=Object.keys(O);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(O[d]))}O={},bt(n,!1)}break;case 1:var f=Object.keys(At);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(At[y])}Rt(),bt(n,!1)}break;case 36:var w=Object.keys(m);if(w.length>0){for(var k=0,S=w;k<S.length;k++){var E=S[k];p=parseInt(E,10);n.push(p),n.push([].concat.apply([],m[E]))}bt(n,!1)}break;case 40:b.forEach((function(t){n.push(t);var e=[];for(var r in m[t]){var o=parseInt(r,10);e.push(o),e.push(m[t][r])}n.push(e)})),bt(n,!1)}}function Mt(){pt={check:0}}function Ot(t){if(0===pt.check){var n=pt.check;n=cn.sequence>=128?1:n,n=cn.pageNum>=128?7:n,n=c()>72e5?2:n,(n=t>10485760?2:n)!==pt.check&&Tt(n)}}function Tt(t){pt.check=t,5!==t&&(Gt(),ae())}function xt(){0!==pt.check&&It(35)}function jt(){pt=null}var zt=null,At=null,Ct=!1;function Pt(){zt={},At={},Ct=!1}function qt(){zt={},At={},Ct=!1}function Nt(t,n){if(n&&(n="".concat(n),t in zt||(zt[t]=[]),zt[t].indexOf(n)<0)){if(zt[t].length>128)return void(Ct||(Ct=!0,Tt(5)));zt[t].push(n),t in At||(At[t]=[]),At[t].push(n)}}function Dt(){It(1)}function Rt(){At={},Ct=!1}function Ht(t){Nt(36,t.toString())}var Ut=null,Xt=[],Lt=0,Vt=null;function Bt(){var t,n,e;Vt=null;var r=navigator&&"userAgent"in navigator?navigator.userAgent:"",o=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:"";Lt=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",!a.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=a.projectId||function(t,n){void 0===n&&(n=null);for(var e,r=5381,o=r,a=0;a<t.length;a+=2)r=(r<<5)+r^t.charCodeAt(a),a+1<t.length&&(o=(o<<5)+o^t.charCodeAt(a+1));return e=Math.abs(r+11579*o),(n?e%Math.pow(2,n):e).toString(36)}(location.host);Ut={projectId:p,userId:d.id,sessionId:l.session,pageNum:l.count},a.lean=a.track&&null!==l.upgrade?0===l.upgrade:a.lean,a.upload=a.track&&"string"==typeof a.upload&&l.upload&&l.upload.length>"https://".length?l.upload:a.upload,Nt(0,r),Nt(3,c),Nt(1,h(location.href,!!Lt)),Nt(2,document.referrer),Nt(15,function(){var t=tn();if(a.track&&Qt(window,"sessionStorage")){var n=sessionStorage.getItem("_cltk");t=n||t,sessionStorage.setItem("_cltk",t)}return t}()),Nt(16,document.documentElement.lang),Nt(17,document.dir),Nt(26,"".concat(window.devicePixelRatio)),Nt(28,d.dob.toString()),Nt(29,d.version.toString()),Nt(33,u),Nt(34,o),Nt(35,i),j(0,l.ts),j(1,0),j(35,Lt),navigator&&(Nt(9,navigator.language),j(33,navigator.hardwareConcurrency),j(32,navigator.maxTouchPoints),j(34,Math.round(navigator.deviceMemory)),(s=navigator.userAgentData)&&s.getHighEntropyValues?s.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){var n;Nt(22,t.platform),Nt(23,t.platformVersion),null===(n=t.brands)||void 0===n||n.forEach((function(t){Nt(24,t.name+"~"+t.version)})),Nt(25,t.model),j(27,t.mobile?1:0)})):Nt(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,v=a.cookies;f<v.length;f++){var g=v[f],m=rn(g);m&&Y(g,m)}!function(t){Ht(t?1:0)}(a.track),$t(d)}function Yt(){Vt=null,Ut=null,Xt.forEach((function(t){t.called=!1}))}function Wt(t,n,e){void 0===n&&(n=!0),void 0===e&&(e=!1);var r=a.lean?0:1,o=!1;Ut&&(r||!1===n)&&(t(Ut,!a.lean),o=!0),!e&&o||Xt.push({callback:t,wait:n,recall:e,called:o})}function Jt(){return Ut?[Ut.userId,Ut.sessionId,Ut.pageNum].join("."):""}function Zt(t){if(void 0===t&&(t=!0),!t)return a.track=!1,an("_clsk","",-Number.MAX_VALUE),an("_clck","",-Number.MAX_VALUE),ae(),void window.setTimeout(oe,250);Nn()&&(a.track=!0,$t(en(),1),Kt(),Ht(2))}function Gt(){an("_clsk","",0)}function Ft(){!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,!a.lean),e.called=!0,e.recall||(Xt.splice(n,1),n--))}}(a.lean?0:1)}function Kt(){if(Ut&&a.track){var t=Math.round(Date.now()),n=a.upload&&"string"==typeof a.upload?a.upload.replace("https://",""):"",e=a.lean?0:1;an("_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),n=null===n?t.consent:n;var e=Math.ceil((Date.now()+31536e6)/864e5),r=0===t.dob?null===a.dob?0:a.dob:t.dob;(null===t.expiry||Math.abs(e-t.expiry)>=1||t.consent!==n||t.dob!==r)&&an("_clck",[Ut.userId,2,e.toString(36),n,r].join("|"),365)}function tn(){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 nn(t,n){return void 0===n&&(n=10),parseInt(t,n)}function en(){var t={id:tn(),version:0,expiry:null,consent:0,dob:0},n=rn("_clck",!a.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])),a.track=a.track||1===t.consent,t.id=a.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 o=0;o<r.length;o++){var a=r[o].split("=");if(a.length>1&&a[0]&&a[0].trim()===t){for(var i=on(a[1]),u=i[0],c=i[1];u;)u=(e=on(c))[0],c=e[1];return n?c.endsWith("".concat("~","1"))?c.substring(0,c.length-2):null:c}}}return null}function on(t){try{var n=decodeURIComponent(t);return[n!=t,n]}catch(t){}return[!1,t]}function an(t,n,e){if((a.track||""==n)&&(navigator&&navigator.cookieEnabled||Qt(document,"cookie"))){var r=function(t){return encodeURIComponent(t)}(n),o=new Date;o.setDate(o.getDate()+e);var i=o?"expires="+o.toUTCString():"",u="".concat(t,"=").concat(r).concat(";").concat(i).concat(";path=/");try{if(null===Vt){for(var c=location.hostname?location.hostname.split("."):[],s=c.length-1;s>=0;s--)if(Vt=".".concat(c[s]).concat(Vt||""),s<c.length-1&&(document.cookie="".concat(u).concat(";").concat("domain=").concat(Vt),rn(t)===n))return;Vt=""}}catch(t){Vt=""}document.cookie=Vt?"".concat(u).concat(";").concat("domain=").concat(Vt):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=c()-cn.start,cn.sequence++,cn.upload=t&&"sendBeacon"in navigator?1:0,cn.end=t?1:0,cn.applicationPlatform=0,cn.url=h(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=a.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(){var n=performance.now();try{t.apply(this,arguments)}catch(t){throw fn(t)}var e=performance.now()-n;x(4,e),e>30&&(T(7),j(6,e),"".concat(t.dn||t.name,"-").concat(e))}}var vn=new Map;function gn(t,n,e,r,o){void 0===r&&(r=!1),void 0===o&&(o=!0),e=hn(e);try{t[i("addEventListener")](n,e,{capture:r,passive:o}),function(t){return vn.has(t)}(t)||vn.set(t,[]),vn.get(t).push({event:n,listener:e,options:{capture:r,passive:o}})}catch(t){}}function mn(){vn.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){}})),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!==In()&&(ae(),window.setTimeout(En,250))}function En(){oe(),j(29,1)}function In(){return location.href?location.href.replace(location.hash,""):location.href}var Mn=[],On=null,Tn=null,xn=null;function jn(){Tn&&(xn(),Tn=null,null===On&&An())}function zn(){Mn=[],On=null,Tn=null}function An(){var t=Mn.shift();t&&(On=t,t.task().then((function(){t.id===Jt()&&(t.resolve(),On=null,An())})).catch((function(n){t.id===Jt()&&(n&&(n.name,n.message,n.stack),On=null,An())})))}var Cn=!1;function Pn(){Cn=!0,u=performance.now()+performance.timeOrigin,zn(),mn(),pn(),wn=In(),kn=0,gn(window,"popstate",_n),null===yn&&(yn=history.pushState,history.pushState=function(){yn.apply(this,arguments),Nn()&&Sn()&&_n()}),null===bn&&(bn=history.replaceState,history.replaceState=function(){bn.apply(this,arguments),Nn()&&Sn()&&_n()})}function qn(){wn=null,kn=0,pn(),mn(),zn(),u=0,Cn=!1}function Nn(){return Cn}function Dn(){Dn.dn=2,oe(),E("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){L(this,void 0,void 0,(function(){var n,e;return V(this,(function(r){return n=c(),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,Ln=0,Vn=1/0,Bn=0,Yn=0,Wn=[],Jn=new Map,Zn=function(){return Ln||0},Gn=function(){if(!Wn.length)return-1;var t=Math.min(Wn.length-1,Math.floor((Zn()-Yn)/50));return Wn[t].latency},Fn=function(){Yn=Zn(),Wn.length=0,Jn.clear()},Kn=function(t){if(t.interactionId&&!(t.duration<40)){!function(t){"interactionCount"in performance?Ln=performance.interactionCount:t.interactionId&&(Vn=Math.min(Vn,t.interactionId),Bn=Math.max(Bn,t.interactionId),Ln=Bn?(Bn-Vn)/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)}Wn.sort((function(t,n){return n.latency-t.latency})),Wn.length>10&&Wn.splice(10).forEach((function(t){return Jn.delete(t.id)}))}}},Qn=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint","event"];function $n(){$n.dn=26;try{Xn&&Xn.disconnect(),Xn=new PerformanceObserver(hn(te));for(var t=0,n=Qn;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 te(t){te.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 o=r.name;Nt(4,ne(o)),o!==a.upload&&o!==a.fallback||j(28,r.duration);break;case"longtask":T(7);break;case"first-input":n&&j(10,r.processingStart-r.startTime);break;case"event":n&&"PerformanceEventTiming"in window&&"interactionId"in PerformanceEventTiming.prototype&&(Kn(r),Nt(37,Gn().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 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&&Nt(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?gn(window,"load",z.bind(this,$n,0)):$n())}()},stop:function(){Xn&&Xn.disconnect(),Xn=null,Fn(),Hn()}}),re=[S,S,S,ee];function oe(t){void 0===t&&(t=null),function(){try{var t=navigator&&"globalPrivacyControl"in navigator&&1==navigator.globalPrivacyControl;return!1===Cn&&"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||Cn)return!1;for(var n in t)n in a&&(a[n]=t[n])}(t),Pn(),ot(),re.forEach((function(t){return hn(t.start)()})),null===t&&se())}function ae(){Nn()&&(re.slice().reverse().forEach((function(t){return hn(t.stop)()})),at(),qn(),void 0!==ue&&(ue[ce]=function(){(ue[ce].q=ue[ce].q||[]).push(arguments),"start"===arguments[0]&&ue[ce].q.unshift(ue[ce].q.pop())&&se()}))}var ie=Object.freeze({__proto__:null,consent:Zt,event:E,hashText:w,identify:W,metadata:Wt,pause:function(){Nn()&&(E("clarity","pause"),null===Tn&&(Tn=new Promise((function(t){xn=t}))))},resume:function(){Nn()&&(jn(),E("clarity","resume"))},set:Y,signal:function(t){nt=t},start:oe,stop:ae,upgrade:U,version:s}),ue=window,ce="clarity";function se(){if(void 0!==ue){if(ue[ce]&&ue[ce].v)return console.warn("Error CL001: Multiple Clarity tags detected.");var t=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;t.length>0;)ue[ce].apply(ue,t.shift())}}se()}();
|
package/package.json
CHANGED
package/src/core/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
let version = "0.8.9
|
|
1
|
+
let version = "0.8.9";
|
|
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
|
@@ -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
|
|
package/tsconfig.json
CHANGED