clarity-js 0.7.12 → 0.7.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- !function(){"use strict";var t=Object.freeze({__proto__:null,get queue(){return ht},get start(){return ft},get stop(){return vt},get track(){return ct}}),n=Object.freeze({__proto__:null,get check(){return _t},get compute(){return Et},get data(){return it},get start(){return kt},get stop(){return It},get trigger(){return St}}),e=Object.freeze({__proto__:null,get compute(){return zt},get data(){return Mt},get log(){return jt},get reset(){return qt},get start(){return Ot},get stop(){return Tt},get updates(){return xt}}),r=Object.freeze({__proto__:null,get callbacks(){return At},get clear(){return Bt},get consent(){return Ut},get data(){return Ct},get id(){return Ht},get metadata(){return Dt},get save(){return Vt},get shortid(){return Wt},get start(){return Rt},get stop(){return Pt}}),o=Object.freeze({__proto__:null,get data(){return Kt},get envelope(){return tn},get start(){return Qt},get stop(){return $t}}),a={projectId:null,delay:1e3,lean:!1,track:!0,content:!0,drop:[],mask:[],unmask:[],regions:[],cookies:[],fraud:!0,checksum:[],report:null,upload:null,fallback:null,upgrade:null,action:null,dob:null};function u(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}var c=0;function i(t){void 0===t&&(t=null);var n=t&&t.timeStamp>0?t.timeStamp:performance.now();return Math.max(Math.round(n-c),0)}var s="0.7.12";var l=!0,p=null,d=null;function f(t,n,e){return function(){if(l&&null===p)try{p=new RegExp("\\p{N}","gu"),d=new RegExp("\\p{L}","gu"),new RegExp("\\p{Sc}","gu")}catch(t){l=!1}}(),t?t.replace(d,n).replace(p,e):t}var h=[],v=null;function g(){}var m=[];function y(){}function b(){}var w=Object.freeze({__proto__:null,compute:function(){},data:v,hashText:y,keys:m,log:g,observe:function(){},reset:function(){},start:function(){},state:h,stop:function(){},trigger:b}),k=null;function _(t,n){Mn()&&t&&n&&"string"==typeof t&&"string"==typeof n&&t.length<255&&n.length<255&&(k={key:t,value:n},wt(24))}var S,E=null,I=null;function M(t){t in E||(E[t]=0),t in I||(I[t]=0),E[t]++,I[t]++}function x(t,n){null!==n&&(t in E||(E[t]=0),t in I||(I[t]=0),E[t]+=n,I[t]+=n)}function O(t,n){null!==n&&!1===isNaN(n)&&(t in E||(E[t]=0),(n>E[t]||0===E[t])&&(I[t]=n,E[t]=n))}function T(t,n,e){return window.setTimeout(rn(t),n,e)}function j(t){return window.clearTimeout(t)}var z=0,q=0,C=null;function A(){C&&j(C),C=T(N,q),z=i()}function N(){var t=i();S={gap:t-z},wt(25),S.gap<3e5?C=T(N,q):Sn&&(_("clarity","suspend"),Hn(),["mousemove","touchstart"].forEach((function(t){return an(document,t,On)})),["resize","scroll","pageshow"].forEach((function(t){return an(window,t,On)})))}var R=Object.freeze({__proto__:null,get data(){return S},reset:A,start:function(){q=6e4,z=0},stop:function(){j(C),z=0,q=0}}),P=null;function D(t){Mn()&&a.lean&&(a.lean=!1,P={key:t},Vt(),a.upgrade&&a.upgrade(t),wt(3))}var H=Object.freeze({__proto__:null,get data(){return P},start:function(){!a.lean&&a.upgrade&&a.upgrade("Config"),P=null},stop:function(){P=null},upgrade:D});function U(t,n,e,r){return new(e||(e=Promise))((function(o,a){function u(t){try{i(r.next(t))}catch(t){a(t)}}function c(t){try{i(r.throw(t))}catch(t){a(t)}}function i(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(u,c)}i((r=r.apply(t,n||[])).next())}))}function B(t,n){var e,r,o,a,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(i){return function(c){if(e)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(u=0)),u;)try{if(e=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return u.label++,{value:c[1],done:!1};case 5:u.label++,r=c[1],c=[0];continue;case 7:c=u.ops.pop(),u.trys.pop();continue;default:if(!(o=u.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){u=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){u.label=c[1];break}if(6===c[0]&&u.label<o[1]){u.label=o[1],o=c;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(c);break}o[2]&&u.ops.pop(),u.trys.pop();continue}c=n.call(t,u)}catch(t){c=[6,t],r=0}finally{e=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,i])}}}var V=null;function L(t,n){W(t,"string"==typeof n?[n]:n)}function X(t,n,e,r){return void 0===n&&(n=null),void 0===e&&(e=null),void 0===r&&(r=null),U(this,void 0,void 0,(function(){var o,a;return B(this,(function(u){switch(u.label){case 0:return a={},[4,G(t)];case 1:return a.userId=u.sent(),a.userHint=r||((c=t)&&c.length>=5?"".concat(c.substring(0,2)).concat(f(c.substring(2),"*","*")):f(c,"*","*")),W("userId",[(o=a).userId]),W("userHint",[o.userHint]),W("userType",[Y(t)]),n&&(W("sessionId",[n]),o.sessionId=n),e&&(W("pageId",[e]),o.pageId=e),[2,o]}var c}))}))}function W(t,n){if(Mn()&&t&&n&&"string"==typeof t&&t.length<255){for(var e=(t in V?V[t]:[]),r=0;r<n.length;r++)"string"==typeof n[r]&&n[r].length<255&&e.push(n[r]);V[t]=e}}function J(){wt(34)}function Z(){V={}}function G(t){return U(this,void 0,void 0,(function(){var n;return B(this,(function(e){switch(e.label){case 0:return e.trys.push([0,4,,5]),crypto&&t?[4,crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t))]:[3,2];case 1:return n=e.sent(),[2,Array.prototype.map.call(new Uint8Array(n),(function(t){return("00"+t.toString(16)).slice(-2)})).join("")];case 2:return[2,""];case 3:return[3,5];case 4:return e.sent(),[2,""];case 5:return[2]}}))}))}function Y(t){return t&&t.indexOf("@")>0?"email":"string"}var F="CompressionStream"in window;function K(t){return U(this,void 0,void 0,(function(){var n,e;return B(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),F?(n=new ReadableStream({start:function(n){return U(this,void 0,void 0,(function(){return B(this,(function(e){return n.enqueue(t),n.close(),[2]}))}))}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip")),e=Uint8Array.bind,[4,Q(n)]):[3,2];case 1:return[2,new(e.apply(Uint8Array,[void 0,r.sent()]))];case 2:return[3,4];case 3:return r.sent(),[3,4];case 4:return[2,null]}}))}))}function Q(t){return U(this,void 0,void 0,(function(){var n,e,r,o,a;return B(this,(function(u){switch(u.label){case 0:n=t.getReader(),e=[],r=!1,o=[],u.label=1;case 1:return r?[3,3]:[4,n.read()];case 2:return a=u.sent(),r=a.done,o=a.value,r?[2,e]:(e.push.apply(e,o),[3,1]);case 3:return[2,e]}}))}))}var $=[w,e,Object.freeze({__proto__:null,compute:J,get data(){return V},identify:X,reset:Z,set:L,start:function(){Z()},stop:function(){Z()}}),n,w,r,o,t,R,H,w];function tt(){E={},I={},M(5),$.forEach((function(t){return rn(t.start)()}))}function nt(){$.slice().reverse().forEach((function(t){return rn(t.stop)()})),E={},I={}}function et(){J(),zt(),wt(0),Et()}var rt,ot,at,ut,ct,it,st=0,lt=0,pt=null,dt=0;function ft(){ut=!0,st=0,lt=0,dt=0,rt=[],ot=[],at={},ct=null}function ht(t,n){if(void 0===n&&(n=!0),ut){var e=i(),r=t.length>1?t[1]:null,o=JSON.stringify(t);switch(r){case 5:st+=o.length;case 37:case 6:case 43:lt+=o.length,rt.push(o);break;default:ot.push(o)}M(25);var u=function(){var t=!1===a.lean&&st>0?100:Kt.sequence*a.delay;return"string"==typeof a.upload?Math.max(Math.min(t,3e4),100):a.delay}();e-dt>2*u&&(j(pt),pt=null),n&&null===pt&&(25!==r&&A(),pt=T(gt,u),dt=e,_t(lt))}}function vt(){j(pt),gt(!0),st=0,lt=0,dt=0,rt=[],ot=[],at={},ct=null,ut=!1}function gt(t){return void 0===t&&(t=!1),U(this,void 0,void 0,(function(){var n,e,r,o,u,c,i,s;return B(this,(function(l){switch(l.label){case 0:return pt=null,(n=!1===a.lean&&lt>0&&(lt<1048576||Kt.sequence>0))&&O(1,1),et(),e=!0===t,r=JSON.stringify(tn(e)),o="[".concat(ot.join(),"]"),u=n?"[".concat(rt.join(),"]"):"",c=function(t){return t.p.length>0?'{"e":'.concat(t.e,',"a":').concat(t.a,',"p":').concat(t.p,"}"):'{"e":'.concat(t.e,',"a":').concat(t.a,"}")}({e:r,a:o,p:u}),e?(s=null,[3,3]):[3,1];case 1:return[4,K(c)];case 2:s=l.sent(),l.label=3;case 3:return x(2,(i=s)?i.length:c.length),mt(c,i,Kt.sequence,e),ot=[],n&&(rt=[],lt=0,st=0),[2]}}))}))}function mt(t,n,e,r){if(void 0===r&&(r=!1),"string"==typeof a.upload){var o=a.upload,u=!1;if(r&&"sendBeacon"in navigator)try{(u=navigator.sendBeacon.bind(navigator)(o,t))&&bt(e)}catch(t){}if(!1===u){e in at?at[e].attempts++:at[e]={data:t,attempts:1};var c=new XMLHttpRequest;c.open("POST",o,!0),c.timeout=15e3,c.ontimeout=function(){en(new Error("".concat("Timeout"," : ").concat(o)))},null!==e&&(c.onreadystatechange=function(){rn(yt)(c,e)}),c.withCredentials=!0,n?(c.setRequestHeader("Accept","application/x-clarity-gzip"),c.send(n)):c.send(t)}}else if(a.upload){(0,a.upload)(t),bt(e)}}function yt(t,n){var e=at[n];t&&4===t.readyState&&e&&((t.status<200||t.status>208)&&e.attempts<=1?t.status>=400&&t.status<500?St(6):(0===t.status&&(a.upload=a.fallback?a.fallback:a.upload),mt(e.data,null,n)):(ct={sequence:n,attempts:e.attempts,status:t.status},e.attempts>1&&wt(2),200===t.status&&t.responseText&&function(t){for(var n=t&&t.length>0?t.split("\n"):[],e=0,r=n;e<r.length;e++){var o=r[e],u=o&&o.length>0?o.split(/ (.*)/):[""];switch(u[0]){case"END":St(6);break;case"UPGRADE":D("Auto");break;case"ACTION":a.action&&u.length>1&&a.action(u[1]);break;case"EXTRACT":u.length>1&&u[1]}}}(t.responseText),0===t.status&&(mt(e.data,null,n,!0),St(3)),t.status>=200&&t.status<=208&&bt(n),delete at[n]))}function bt(t){1===t&&Vt()}function wt(t){var n=[i(),t];switch(t){case 4:var e=h;e&&((n=[e.time,e.event]).push(e.data.visible),n.push(e.data.docWidth),n.push(e.data.docHeight),n.push(e.data.screenWidth),n.push(e.data.screenHeight),n.push(e.data.scrollX),n.push(e.data.scrollY),n.push(e.data.pointerX),n.push(e.data.pointerY),n.push(e.data.activityTime),ht(n,!1));break;case 25:n.push(S.gap),ht(n);break;case 35:n.push(it.check),ht(n,!1);break;case 3:n.push(P.key),ht(n);break;case 2:n.push(ct.sequence),n.push(ct.attempts),n.push(ct.status),ht(n,!1);break;case 24:n.push(k.key),n.push(k.value),ht(n);break;case 34:var r=Object.keys(V);if(r.length>0){for(var o=0,a=r;o<a.length;o++){var u=a[o];n.push(u),n.push(V[u])}Z(),ht(n,!1)}break;case 0:var c=Object.keys(I);if(c.length>0){for(var s=0,l=c;s<l.length;s++){var p=l[s],d=parseInt(p,10);n.push(d),n.push(Math.round(I[p]))}I={},ht(n,!1)}break;case 1:var f=Object.keys(xt);if(f.length>0){for(var g=0,y=f;g<y.length;g++){var b=y[g];d=parseInt(b,10);n.push(d),n.push(xt[b])}qt(),ht(n,!1)}break;case 36:var w=Object.keys(v);if(w.length>0){for(var _=0,E=w;_<E.length;_++){var M=E[_];d=parseInt(M,10);n.push(d),n.push([].concat.apply([],v[M]))}ht(n,!1)}break;case 40:m.forEach((function(t){n.push(t);var e=[];for(var r in v[t]){var o=parseInt(r,10);e.push(o),e.push(v[t][r])}n.push(e)})),ht(n,!1)}}function kt(){it={check:0}}function _t(t){if(0===it.check){var n=it.check;n=Kt.sequence>=128?1:n,n=Kt.pageNum>=128?7:n,n=i()>72e5?2:n,(n=t>10485760?2:n)!==it.check&&St(n)}}function St(t){it.check=t,Bt(),Hn()}function Et(){0!==it.check&&wt(35)}function It(){it=null}var Mt=null,xt=null;function Ot(){Mt={},xt={}}function Tt(){Mt={},xt={}}function jt(t,n){n&&(n="".concat(n),t in Mt||(Mt[t]=[]),Mt[t].indexOf(n)<0&&(Mt[t].push(n),t in xt||(xt[t]=[]),xt[t].push(n),Mt[t].length>128&&St(5)))}function zt(){wt(1)}function qt(){xt={}}var Ct=null,At=[],Nt=null;function Rt(){Nt=null;var t,n=navigator&&"userAgent"in navigator?navigator.userAgent:"",e=document&&document.title?document.title:"",r=n.indexOf("Electron")>0?1:0,o=function(){var t={session:Wt(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},n=Gt("_clsk");if(n){var e=n.split("|");e.length>=5&&t.ts-Jt(e[1])<18e5&&(t.session=e[0],t.count=Jt(e[2])+1,t.upgrade=Jt(e[3]),t.upload=e.length>=6?"".concat("https://").concat(e[5],"/").concat(e[4]):"".concat("https://").concat(e[4]))}return t}(),u=Zt(),c=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);Ct={projectId:c,userId:u.id,sessionId:o.session,pageNum:o.count},a.lean=a.track&&null!==o.upgrade?0===o.upgrade:a.lean,a.upload=a.track&&"string"==typeof a.upload&&o.upload&&o.upload.length>"https://".length?o.upload:a.upload,jt(0,n),jt(3,e),jt(1,function(t,n){if(void 0===n&&(n=!1),n)return"".concat("https://").concat("Electron");var e=a.drop;if(e&&e.length>0&&t&&t.indexOf("?")>0){var r=t.split("?");return r[0]+"?"+r[1].split("&").map((function(t){return e.some((function(n){return 0===t.indexOf("".concat(n,"="))}))?"".concat(t.split("=")[0],"=").concat("*na*"):t})).join("&")}return t}(location.href,!!r)),jt(2,document.referrer),jt(15,function(){var t=Wt();if(a.track&&Lt(window,"sessionStorage")){var n=sessionStorage.getItem("_cltk");t=n||t,sessionStorage.setItem("_cltk",t)}return t}()),jt(16,document.documentElement.lang),jt(17,document.dir),jt(26,"".concat(window.devicePixelRatio)),jt(28,u.dob.toString()),jt(29,u.version.toString()),O(0,o.ts),O(1,0),O(35,r),navigator&&(jt(9,navigator.language),O(33,navigator.hardwareConcurrency),O(32,navigator.maxTouchPoints),O(34,Math.round(navigator.deviceMemory)),(t=navigator.userAgentData)&&t.getHighEntropyValues?t.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){var n;jt(22,t.platform),jt(23,t.platformVersion),null===(n=t.brands)||void 0===n||n.forEach((function(t){jt(24,t.name+"~"+t.version)})),jt(25,t.model),O(27,t.mobile?1:0)})):jt(22,navigator.platform)),screen&&(O(14,Math.round(screen.width)),O(15,Math.round(screen.height)),O(16,Math.round(screen.colorDepth)));for(var i=0,s=a.cookies;i<s.length;i++){var l=s[i],p=Gt(l);p&&L(l,p)}Xt(u)}function Pt(){Nt=null,Ct=null}function Dt(t,n){void 0===n&&(n=!0);var e=a.lean?0:1;Ct&&(e||!1===n)?t(Ct,!a.lean):At.push({callback:t,wait:n})}function Ht(){return Ct?[Ct.userId,Ct.sessionId,Ct.pageNum].join("."):""}function Ut(){Mn()&&(a.track=!0,Xt(Zt(),1))}function Bt(){Yt("_clsk","",0)}function Vt(){var t=Math.round(Date.now()),n=a.upload&&"string"==typeof a.upload?a.upload.replace("https://",""):"",e=a.lean?0:1;!function(t){At.length>0&&At.forEach((function(n){!n.callback||n.wait&&!t||n.callback(Ct,!a.lean)}))}(e),Yt("_clsk",[Ct.sessionId,t,Ct.pageNum,e,n].join("|"),1)}function Lt(t,n){try{return!!t[n]}catch(t){return!1}}function Xt(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)&&Yt("_clck",[Ct.userId,2,e.toString(36),n,r].join("|"),365)}function Wt(){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 Jt(t,n){return void 0===n&&(n=10),parseInt(t,n)}function Zt(){var t={id:Wt(),version:0,expiry:null,consent:0,dob:0},n=Gt("_clck");if(n&&n.length>0){for(var e=n.split("|"),r=0,o=0,u=document.cookie.split(";");o<u.length;o++){r+="_clck"===u[o].split("=")[0].trim()?1:0}if(1===e.length||r>1){var c="".concat(";").concat("expires=").concat(new Date(0).toUTCString()).concat(";path=/");document.cookie="".concat("_clck","=").concat(c),document.cookie="".concat("_clsk","=").concat(c)}e.length>1&&(t.version=Jt(e[1])),e.length>2&&(t.expiry=Jt(e[2],36)),e.length>3&&1===Jt(e[3])&&(t.consent=1),e.length>4&&Jt(e[1])>1&&(t.dob=Jt(e[4])),a.track=a.track||1===t.consent,t.id=a.track?e[0]:t.id}return t}function Gt(t){if(Lt(document,"cookie")){var n=document.cookie.split(";");if(n)for(var e=0;e<n.length;e++){var r=n[e].split("=");if(r.length>1&&r[0]&&r[0].trim()===t)return r[1]}}return null}function Yt(t,n,e){if(a.track&&(navigator&&navigator.cookieEnabled||Lt(document,"cookie"))){var r=new Date;r.setDate(r.getDate()+e);var o=r?"expires="+r.toUTCString():"",u="".concat(t,"=").concat(n).concat(";").concat(o).concat(";path=/");try{if(null===Nt){for(var c=location.hostname?location.hostname.split("."):[],i=c.length-1;i>=0;i--)if(Nt=".".concat(c[i]).concat(Nt||""),i<c.length-1&&(document.cookie="".concat(u).concat(";").concat("domain=").concat(Nt),Gt(t)===n))return;Nt=""}}catch(t){Nt=""}document.cookie=Nt?"".concat(u).concat(";").concat("domain=").concat(Nt):u}}var Ft,Kt=null;function Qt(){var t=Ct;Kt={version:s,sequence:0,start:0,duration:0,projectId:t.projectId,userId:t.userId,sessionId:t.sessionId,pageNum:t.pageNum,upload:0,end:0}}function $t(){Kt=null}function tn(t){return Kt.start=Kt.start+Kt.duration,Kt.duration=i()-Kt.start,Kt.sequence++,Kt.upload=t&&"sendBeacon"in navigator?1:0,Kt.end=t?1:0,[Kt.version,Kt.sequence,Kt.start,Kt.duration,Kt.projectId,Kt.userId,Kt.sessionId,Kt.pageNum,Kt.upload,Kt.end]}function nn(){Ft=[]}function en(t){if(Ft&&-1===Ft.indexOf(t.message)){var n=a.report;if(n&&n.length>0){var e={v:Kt.version,p:Kt.projectId,u:Kt.userId,s:Kt.sessionId,n:Kt.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)),Ft.push(t.message)}}return t}function rn(t){return function(){var n=performance.now();try{t.apply(this,arguments)}catch(t){throw en(t)}var e=performance.now()-n;x(4,e),e>30&&(M(7),O(6,e))}}var on=[];function an(t,n,e,r){void 0===r&&(r=!1),e=rn(e);try{t[u("addEventListener")](n,e,r),on.push({event:n,target:t,listener:e,capture:r})}catch(t){}}function un(){for(var t=0,n=on;t<n.length;t++){var e=n[t];try{e.target[u("removeEventListener")](e.event,e.listener,e.capture)}catch(t){}}on=[]}var cn=null,sn=null,ln=null,pn=0;function dn(){return!(pn++>20)}function fn(){pn=0,ln!==vn()&&(Hn(),window.setTimeout(hn,250))}function hn(){Dn(),O(29,1)}function vn(){return location.href?location.href.replace(location.hash,""):location.href}var gn=[],mn=null,yn=null,bn=null;function wn(){yn&&(bn(),yn=null,null===mn&&_n())}function kn(){gn=[],mn=null,yn=null}function _n(){var t=gn.shift();t&&(mn=t,t.task().then((function(){t.id===Ht()&&(t.resolve(),mn=null,_n())})).catch((function(n){t.id===Ht()&&(n&&(n.name,n.message,n.stack),mn=null,_n())})))}var Sn=!1;function En(){Sn=!0,c=performance.now(),kn(),un(),nn(),ln=vn(),pn=0,an(window,"popstate",fn),null===cn&&(cn=history.pushState,history.pushState=function(){cn.apply(this,arguments),Mn()&&dn()&&fn()}),null===sn&&(sn=history.replaceState,history.replaceState=function(){sn.apply(this,arguments),Mn()&&dn()&&fn()})}function In(){ln=null,pn=0,nn(),un(),kn(),c=0,Sn=!1}function Mn(){return Sn}function xn(t){if(null===t||Sn)return!1;for(var n in t)n in a&&(a[n]=t[n]);return!0}function On(){Dn(),_("clarity","restart")}var Tn,jn=null;function zn(){jn=null}function qn(t){jn={fetchStart:Math.round(t.fetchStart),connectStart:Math.round(t.connectStart),connectEnd:Math.round(t.connectEnd),requestStart:Math.round(t.requestStart),responseStart:Math.round(t.responseStart),responseEnd:Math.round(t.responseEnd),domInteractive:Math.round(t.domInteractive),domComplete:Math.round(t.domComplete),loadEventStart:Math.round(t.loadEventStart),loadEventEnd:Math.round(t.loadEventEnd),redirectCount:Math.round(t.redirectCount),size:t.transferSize?t.transferSize:0,type:t.type,protocol:t.nextHopProtocol,encodedSize:t.encodedBodySize?t.encodedBodySize:0,decodedSize:t.decodedBodySize?t.decodedBodySize:0},function(t){U(this,void 0,void 0,(function(){var n,e;return B(this,(function(r){return n=i(),e=[n,t],29===t&&(e.push(jn.fetchStart),e.push(jn.connectStart),e.push(jn.connectEnd),e.push(jn.requestStart),e.push(jn.responseStart),e.push(jn.responseEnd),e.push(jn.domInteractive),e.push(jn.domComplete),e.push(jn.loadEventStart),e.push(jn.loadEventEnd),e.push(jn.redirectCount),e.push(jn.size),e.push(jn.type),e.push(jn.protocol),e.push(jn.encodedSize),e.push(jn.decodedSize),zn(),ht(e)),[2]}))}))}(29)}var Cn=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint"];function An(){try{Tn&&Tn.disconnect(),Tn=new PerformanceObserver(rn(Nn));for(var t=0,n=Cn;t<n.length;t++){var e=n[t];PerformanceObserver.supportedEntryTypes.indexOf(e)>=0&&("layout-shift"===e&&x(9,0),Tn.observe({type:e,buffered:!0}))}}catch(t){}}function Nn(t){!function(t){for(var n=(!("visibilityState"in document)||"visible"===document.visibilityState),e=0;e<t.length;e++){var r=t[e];switch(r.entryType){case"navigation":qn(r);break;case"resource":var o=r.name;jt(4,Rn(o)),o!==a.upload&&o!==a.fallback||O(28,r.duration);break;case"longtask":M(7);break;case"first-input":n&&O(10,r.processingStart-r.startTime);break;case"layout-shift":n&&!r.hadRecentInput&&x(9,1e3*r.value);break;case"largest-contentful-paint":n&&O(8,r.startTime)}}}(t.getEntries())}function Rn(t){var n=document.createElement("a");return n.href=t,n.host}var Pn=[w,w,w,Object.freeze({__proto__:null,start:function(){zn(),function(){navigator&&"connection"in navigator&&jt(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?an(window,"load",T.bind(this,An,0)):An())}()},stop:function(){Tn&&Tn.disconnect(),Tn=null,zn()}})];function Dn(t){void 0===t&&(t=null),function(){try{return!1===Sn&&"undefined"!=typeof Promise&&window.MutationObserver&&document.createTreeWalker&&"now"in Date&&"now"in performance&&"undefined"!=typeof WeakMap}catch(t){return!1}}()&&(xn(t),En(),tt(),Pn.forEach((function(t){return rn(t.start)()})),null===t&&Ln())}function Hn(){Mn()&&(Pn.slice().reverse().forEach((function(t){return rn(t.stop)()})),nt(),In(),void 0!==Bn&&(Bn[Vn]=function(){(Bn[Vn].q=Bn[Vn].q||[]).push(arguments),"start"===arguments[0]&&Bn[Vn].q.unshift(Bn[Vn].q.pop())&&Ln()}))}var Un=Object.freeze({__proto__:null,consent:Ut,event:_,hashText:y,identify:X,metadata:Dt,pause:function(){Mn()&&(_("clarity","pause"),null===yn&&(yn=new Promise((function(t){bn=t}))))},resume:function(){Mn()&&(wn(),_("clarity","resume"))},set:L,start:Dn,stop:Hn,upgrade:D,version:s}),Bn=window,Vn="clarity";function Ln(){if(void 0!==Bn){if(Bn[Vn]&&Bn[Vn].v)return console.warn("Error CL001: Multiple Clarity tags detected.");var t=Bn[Vn]&&Bn[Vn].q||[];for(Bn[Vn]=function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return Un[t].apply(Un,n)},Bn[Vn].v=s;t.length>0;)Bn[Vn].apply(Bn,t.shift())}}Ln()}();
1
+ !function(){"use strict";var t=Object.freeze({__proto__:null,get queue(){return ht},get start(){return ft},get stop(){return vt},get track(){return ct}}),n=Object.freeze({__proto__:null,get check(){return _t},get compute(){return Et},get data(){return it},get start(){return kt},get stop(){return It},get trigger(){return St}}),e=Object.freeze({__proto__:null,get compute(){return zt},get data(){return Mt},get log(){return jt},get reset(){return qt},get start(){return Ot},get stop(){return Tt},get updates(){return xt}}),r=Object.freeze({__proto__:null,get callbacks(){return At},get clear(){return Bt},get consent(){return Ut},get data(){return Ct},get id(){return Ht},get metadata(){return Dt},get save(){return Vt},get shortid(){return Wt},get start(){return Rt},get stop(){return Pt}}),o=Object.freeze({__proto__:null,get data(){return Kt},get envelope(){return tn},get start(){return Qt},get stop(){return $t}}),a={projectId:null,delay:1e3,lean:!1,track:!0,content:!0,drop:[],mask:[],unmask:[],regions:[],cookies:[],fraud:!0,checksum:[],report:null,upload:null,fallback:null,upgrade:null,action:null,dob:null};function u(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}var c=0;function i(t){void 0===t&&(t=null);var n=t&&t.timeStamp>0?t.timeStamp:performance.now();return Math.max(Math.round(n-c),0)}var s="0.7.14";var l=!0,p=null,d=null;function f(t,n,e){return function(){if(l&&null===p)try{p=new RegExp("\\p{N}","gu"),d=new RegExp("\\p{L}","gu"),new RegExp("\\p{Sc}","gu")}catch(t){l=!1}}(),t?t.replace(d,n).replace(p,e):t}var h=[],v=null;function g(){}var m=[];function y(){}function b(){}var w=Object.freeze({__proto__:null,compute:function(){},data:v,hashText:y,keys:m,log:g,observe:function(){},reset:function(){},start:function(){},state:h,stop:function(){},trigger:b}),k=null;function _(t,n){Mn()&&t&&"string"==typeof t&&t.length<255&&(k=n&&"string"==typeof n&&n.length<255?{key:t,value:n}:{value:t},wt(24))}var S,E=null,I=null;function M(t){t in E||(E[t]=0),t in I||(I[t]=0),E[t]++,I[t]++}function x(t,n){null!==n&&(t in E||(E[t]=0),t in I||(I[t]=0),E[t]+=n,I[t]+=n)}function O(t,n){null!==n&&!1===isNaN(n)&&(t in E||(E[t]=0),(n>E[t]||0===E[t])&&(I[t]=n,E[t]=n))}function T(t,n,e){return window.setTimeout(rn(t),n,e)}function j(t){return window.clearTimeout(t)}var z=0,q=0,C=null;function A(){C&&j(C),C=T(N,q),z=i()}function N(){var t=i();S={gap:t-z},wt(25),S.gap<3e5?C=T(N,q):Sn&&(_("clarity","suspend"),Hn(),["mousemove","touchstart"].forEach((function(t){return an(document,t,On)})),["resize","scroll","pageshow"].forEach((function(t){return an(window,t,On)})))}var R=Object.freeze({__proto__:null,get data(){return S},reset:A,start:function(){q=6e4,z=0},stop:function(){j(C),z=0,q=0}}),P=null;function D(t){Mn()&&a.lean&&(a.lean=!1,P={key:t},Vt(),a.upgrade&&a.upgrade(t),wt(3))}var H=Object.freeze({__proto__:null,get data(){return P},start:function(){!a.lean&&a.upgrade&&a.upgrade("Config"),P=null},stop:function(){P=null},upgrade:D});function U(t,n,e,r){return new(e||(e=Promise))((function(o,a){function u(t){try{i(r.next(t))}catch(t){a(t)}}function c(t){try{i(r.throw(t))}catch(t){a(t)}}function i(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(u,c)}i((r=r.apply(t,n||[])).next())}))}function B(t,n){var e,r,o,a,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(i){return function(c){if(e)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(u=0)),u;)try{if(e=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return u.label++,{value:c[1],done:!1};case 5:u.label++,r=c[1],c=[0];continue;case 7:c=u.ops.pop(),u.trys.pop();continue;default:if(!(o=u.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){u=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){u.label=c[1];break}if(6===c[0]&&u.label<o[1]){u.label=o[1],o=c;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(c);break}o[2]&&u.ops.pop(),u.trys.pop();continue}c=n.call(t,u)}catch(t){c=[6,t],r=0}finally{e=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,i])}}}var V=null;function L(t,n){W(t,"string"==typeof n?[n]:n)}function X(t,n,e,r){return void 0===n&&(n=null),void 0===e&&(e=null),void 0===r&&(r=null),U(this,void 0,void 0,(function(){var o,a;return B(this,(function(u){switch(u.label){case 0:return a={},[4,G(t)];case 1:return a.userId=u.sent(),a.userHint=r||((c=t)&&c.length>=5?"".concat(c.substring(0,2)).concat(f(c.substring(2),"*","*")):f(c,"*","*")),W("userId",[(o=a).userId]),W("userHint",[o.userHint]),W("userType",[Y(t)]),n&&(W("sessionId",[n]),o.sessionId=n),e&&(W("pageId",[e]),o.pageId=e),[2,o]}var c}))}))}function W(t,n){if(Mn()&&t&&n&&"string"==typeof t&&t.length<255){for(var e=(t in V?V[t]:[]),r=0;r<n.length;r++)"string"==typeof n[r]&&n[r].length<255&&e.push(n[r]);V[t]=e}}function J(){wt(34)}function Z(){V={}}function G(t){return U(this,void 0,void 0,(function(){var n;return B(this,(function(e){switch(e.label){case 0:return e.trys.push([0,4,,5]),crypto&&t?[4,crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t))]:[3,2];case 1:return n=e.sent(),[2,Array.prototype.map.call(new Uint8Array(n),(function(t){return("00"+t.toString(16)).slice(-2)})).join("")];case 2:return[2,""];case 3:return[3,5];case 4:return e.sent(),[2,""];case 5:return[2]}}))}))}function Y(t){return t&&t.indexOf("@")>0?"email":"string"}var F="CompressionStream"in window;function K(t){return U(this,void 0,void 0,(function(){var n,e;return B(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),F?(n=new ReadableStream({start:function(n){return U(this,void 0,void 0,(function(){return B(this,(function(e){return n.enqueue(t),n.close(),[2]}))}))}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip")),e=Uint8Array.bind,[4,Q(n)]):[3,2];case 1:return[2,new(e.apply(Uint8Array,[void 0,r.sent()]))];case 2:return[3,4];case 3:return r.sent(),[3,4];case 4:return[2,null]}}))}))}function Q(t){return U(this,void 0,void 0,(function(){var n,e,r,o,a;return B(this,(function(u){switch(u.label){case 0:n=t.getReader(),e=[],r=!1,o=[],u.label=1;case 1:return r?[3,3]:[4,n.read()];case 2:return a=u.sent(),r=a.done,o=a.value,r?[2,e]:(e.push.apply(e,o),[3,1]);case 3:return[2,e]}}))}))}var $=[w,e,Object.freeze({__proto__:null,compute:J,get data(){return V},identify:X,reset:Z,set:L,start:function(){Z()},stop:function(){Z()}}),n,w,r,o,t,R,H,w];function tt(){E={},I={},M(5),$.forEach((function(t){return rn(t.start)()}))}function nt(){$.slice().reverse().forEach((function(t){return rn(t.stop)()})),E={},I={}}function et(){J(),zt(),wt(0),Et()}var rt,ot,at,ut,ct,it,st=0,lt=0,pt=null,dt=0;function ft(){ut=!0,st=0,lt=0,dt=0,rt=[],ot=[],at={},ct=null}function ht(t,n){if(void 0===n&&(n=!0),ut){var e=i(),r=t.length>1?t[1]:null,o=JSON.stringify(t);switch(r){case 5:st+=o.length;case 37:case 6:case 43:lt+=o.length,rt.push(o);break;default:ot.push(o)}M(25);var u=function(){var t=!1===a.lean&&st>0?100:Kt.sequence*a.delay;return"string"==typeof a.upload?Math.max(Math.min(t,3e4),100):a.delay}();e-dt>2*u&&(j(pt),pt=null),n&&null===pt&&(25!==r&&A(),pt=T(gt,u),dt=e,_t(lt))}}function vt(){j(pt),gt(!0),st=0,lt=0,dt=0,rt=[],ot=[],at={},ct=null,ut=!1}function gt(t){return void 0===t&&(t=!1),U(this,void 0,void 0,(function(){var n,e,r,o,u,c,i,s;return B(this,(function(l){switch(l.label){case 0:return pt=null,(n=!1===a.lean&&lt>0&&(lt<1048576||Kt.sequence>0))&&O(1,1),et(),e=!0===t,r=JSON.stringify(tn(e)),o="[".concat(ot.join(),"]"),u=n?"[".concat(rt.join(),"]"):"",c=function(t){return t.p.length>0?'{"e":'.concat(t.e,',"a":').concat(t.a,',"p":').concat(t.p,"}"):'{"e":'.concat(t.e,',"a":').concat(t.a,"}")}({e:r,a:o,p:u}),e?(s=null,[3,3]):[3,1];case 1:return[4,K(c)];case 2:s=l.sent(),l.label=3;case 3:return x(2,(i=s)?i.length:c.length),mt(c,i,Kt.sequence,e),ot=[],n&&(rt=[],lt=0,st=0),[2]}}))}))}function mt(t,n,e,r){if(void 0===r&&(r=!1),"string"==typeof a.upload){var o=a.upload,u=!1;if(r&&"sendBeacon"in navigator)try{(u=navigator.sendBeacon.bind(navigator)(o,t))&&bt(e)}catch(t){}if(!1===u){e in at?at[e].attempts++:at[e]={data:t,attempts:1};var c=new XMLHttpRequest;c.open("POST",o,!0),c.timeout=15e3,c.ontimeout=function(){en(new Error("".concat("Timeout"," : ").concat(o)))},null!==e&&(c.onreadystatechange=function(){rn(yt)(c,e)}),c.withCredentials=!0,n?(c.setRequestHeader("Accept","application/x-clarity-gzip"),c.send(n)):c.send(t)}}else if(a.upload){(0,a.upload)(t),bt(e)}}function yt(t,n){var e=at[n];t&&4===t.readyState&&e&&((t.status<200||t.status>208)&&e.attempts<=1?t.status>=400&&t.status<500?St(6):(0===t.status&&(a.upload=a.fallback?a.fallback:a.upload),mt(e.data,null,n)):(ct={sequence:n,attempts:e.attempts,status:t.status},e.attempts>1&&wt(2),200===t.status&&t.responseText&&function(t){for(var n=t&&t.length>0?t.split("\n"):[],e=0,r=n;e<r.length;e++){var o=r[e],u=o&&o.length>0?o.split(/ (.*)/):[""];switch(u[0]){case"END":St(6);break;case"UPGRADE":D("Auto");break;case"ACTION":a.action&&u.length>1&&a.action(u[1]);break;case"EXTRACT":u.length>1&&u[1]}}}(t.responseText),0===t.status&&(mt(e.data,null,n,!0),St(3)),t.status>=200&&t.status<=208&&bt(n),delete at[n]))}function bt(t){1===t&&Vt()}function wt(t){var n=[i(),t];switch(t){case 4:var e=h;e&&((n=[e.time,e.event]).push(e.data.visible),n.push(e.data.docWidth),n.push(e.data.docHeight),n.push(e.data.screenWidth),n.push(e.data.screenHeight),n.push(e.data.scrollX),n.push(e.data.scrollY),n.push(e.data.pointerX),n.push(e.data.pointerY),n.push(e.data.activityTime),ht(n,!1));break;case 25:n.push(S.gap),ht(n);break;case 35:n.push(it.check),ht(n,!1);break;case 3:n.push(P.key),ht(n);break;case 2:n.push(ct.sequence),n.push(ct.attempts),n.push(ct.status),ht(n,!1);break;case 24:k.key&&n.push(k.key),n.push(k.value),ht(n);break;case 34:var r=Object.keys(V);if(r.length>0){for(var o=0,a=r;o<a.length;o++){var u=a[o];n.push(u),n.push(V[u])}Z(),ht(n,!1)}break;case 0:var c=Object.keys(I);if(c.length>0){for(var s=0,l=c;s<l.length;s++){var p=l[s],d=parseInt(p,10);n.push(d),n.push(Math.round(I[p]))}I={},ht(n,!1)}break;case 1:var f=Object.keys(xt);if(f.length>0){for(var g=0,y=f;g<y.length;g++){var b=y[g];d=parseInt(b,10);n.push(d),n.push(xt[b])}qt(),ht(n,!1)}break;case 36:var w=Object.keys(v);if(w.length>0){for(var _=0,E=w;_<E.length;_++){var M=E[_];d=parseInt(M,10);n.push(d),n.push([].concat.apply([],v[M]))}ht(n,!1)}break;case 40:m.forEach((function(t){n.push(t);var e=[];for(var r in v[t]){var o=parseInt(r,10);e.push(o),e.push(v[t][r])}n.push(e)})),ht(n,!1)}}function kt(){it={check:0}}function _t(t){if(0===it.check){var n=it.check;n=Kt.sequence>=128?1:n,n=Kt.pageNum>=128?7:n,n=i()>72e5?2:n,(n=t>10485760?2:n)!==it.check&&St(n)}}function St(t){it.check=t,Bt(),Hn()}function Et(){0!==it.check&&wt(35)}function It(){it=null}var Mt=null,xt=null;function Ot(){Mt={},xt={}}function Tt(){Mt={},xt={}}function jt(t,n){n&&(n="".concat(n),t in Mt||(Mt[t]=[]),Mt[t].indexOf(n)<0&&(Mt[t].push(n),t in xt||(xt[t]=[]),xt[t].push(n),Mt[t].length>128&&St(5)))}function zt(){wt(1)}function qt(){xt={}}var Ct=null,At=[],Nt=null;function Rt(){Nt=null;var t,n=navigator&&"userAgent"in navigator?navigator.userAgent:"",e=document&&document.title?document.title:"",r=n.indexOf("Electron")>0?1:0,o=function(){var t={session:Wt(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},n=Gt("_clsk");if(n){var e=n.split("|");e.length>=5&&t.ts-Jt(e[1])<18e5&&(t.session=e[0],t.count=Jt(e[2])+1,t.upgrade=Jt(e[3]),t.upload=e.length>=6?"".concat("https://").concat(e[5],"/").concat(e[4]):"".concat("https://").concat(e[4]))}return t}(),u=Zt(),c=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);Ct={projectId:c,userId:u.id,sessionId:o.session,pageNum:o.count},a.lean=a.track&&null!==o.upgrade?0===o.upgrade:a.lean,a.upload=a.track&&"string"==typeof a.upload&&o.upload&&o.upload.length>"https://".length?o.upload:a.upload,jt(0,n),jt(3,e),jt(1,function(t,n){if(void 0===n&&(n=!1),n)return"".concat("https://").concat("Electron");var e=a.drop;if(e&&e.length>0&&t&&t.indexOf("?")>0){var r=t.split("?");return r[0]+"?"+r[1].split("&").map((function(t){return e.some((function(n){return 0===t.indexOf("".concat(n,"="))}))?"".concat(t.split("=")[0],"=").concat("*na*"):t})).join("&")}return t}(location.href,!!r)),jt(2,document.referrer),jt(15,function(){var t=Wt();if(a.track&&Lt(window,"sessionStorage")){var n=sessionStorage.getItem("_cltk");t=n||t,sessionStorage.setItem("_cltk",t)}return t}()),jt(16,document.documentElement.lang),jt(17,document.dir),jt(26,"".concat(window.devicePixelRatio)),jt(28,u.dob.toString()),jt(29,u.version.toString()),O(0,o.ts),O(1,0),O(35,r),navigator&&(jt(9,navigator.language),O(33,navigator.hardwareConcurrency),O(32,navigator.maxTouchPoints),O(34,Math.round(navigator.deviceMemory)),(t=navigator.userAgentData)&&t.getHighEntropyValues?t.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){var n;jt(22,t.platform),jt(23,t.platformVersion),null===(n=t.brands)||void 0===n||n.forEach((function(t){jt(24,t.name+"~"+t.version)})),jt(25,t.model),O(27,t.mobile?1:0)})):jt(22,navigator.platform)),screen&&(O(14,Math.round(screen.width)),O(15,Math.round(screen.height)),O(16,Math.round(screen.colorDepth)));for(var i=0,s=a.cookies;i<s.length;i++){var l=s[i],p=Gt(l);p&&L(l,p)}Xt(u)}function Pt(){Nt=null,Ct=null}function Dt(t,n){void 0===n&&(n=!0);var e=a.lean?0:1;Ct&&(e||!1===n)?t(Ct,!a.lean):At.push({callback:t,wait:n})}function Ht(){return Ct?[Ct.userId,Ct.sessionId,Ct.pageNum].join("."):""}function Ut(){Mn()&&(a.track=!0,Xt(Zt(),1))}function Bt(){Yt("_clsk","",0)}function Vt(){var t=Math.round(Date.now()),n=a.upload&&"string"==typeof a.upload?a.upload.replace("https://",""):"",e=a.lean?0:1;!function(t){At.length>0&&At.forEach((function(n){!n.callback||n.wait&&!t||n.callback(Ct,!a.lean)}))}(e),Yt("_clsk",[Ct.sessionId,t,Ct.pageNum,e,n].join("|"),1)}function Lt(t,n){try{return!!t[n]}catch(t){return!1}}function Xt(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)&&Yt("_clck",[Ct.userId,2,e.toString(36),n,r].join("|"),365)}function Wt(){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 Jt(t,n){return void 0===n&&(n=10),parseInt(t,n)}function Zt(){var t={id:Wt(),version:0,expiry:null,consent:0,dob:0},n=Gt("_clck");if(n&&n.length>0){for(var e=n.split("|"),r=0,o=0,u=document.cookie.split(";");o<u.length;o++){r+="_clck"===u[o].split("=")[0].trim()?1:0}if(1===e.length||r>1){var c="".concat(";").concat("expires=").concat(new Date(0).toUTCString()).concat(";path=/");document.cookie="".concat("_clck","=").concat(c),document.cookie="".concat("_clsk","=").concat(c)}e.length>1&&(t.version=Jt(e[1])),e.length>2&&(t.expiry=Jt(e[2],36)),e.length>3&&1===Jt(e[3])&&(t.consent=1),e.length>4&&Jt(e[1])>1&&(t.dob=Jt(e[4])),a.track=a.track||1===t.consent,t.id=a.track?e[0]:t.id}return t}function Gt(t){if(Lt(document,"cookie")){var n=document.cookie.split(";");if(n)for(var e=0;e<n.length;e++){var r=n[e].split("=");if(r.length>1&&r[0]&&r[0].trim()===t)return r[1]}}return null}function Yt(t,n,e){if(a.track&&(navigator&&navigator.cookieEnabled||Lt(document,"cookie"))){var r=new Date;r.setDate(r.getDate()+e);var o=r?"expires="+r.toUTCString():"",u="".concat(t,"=").concat(n).concat(";").concat(o).concat(";path=/");try{if(null===Nt){for(var c=location.hostname?location.hostname.split("."):[],i=c.length-1;i>=0;i--)if(Nt=".".concat(c[i]).concat(Nt||""),i<c.length-1&&(document.cookie="".concat(u).concat(";").concat("domain=").concat(Nt),Gt(t)===n))return;Nt=""}}catch(t){Nt=""}document.cookie=Nt?"".concat(u).concat(";").concat("domain=").concat(Nt):u}}var Ft,Kt=null;function Qt(){var t=Ct;Kt={version:s,sequence:0,start:0,duration:0,projectId:t.projectId,userId:t.userId,sessionId:t.sessionId,pageNum:t.pageNum,upload:0,end:0}}function $t(){Kt=null}function tn(t){return Kt.start=Kt.start+Kt.duration,Kt.duration=i()-Kt.start,Kt.sequence++,Kt.upload=t&&"sendBeacon"in navigator?1:0,Kt.end=t?1:0,[Kt.version,Kt.sequence,Kt.start,Kt.duration,Kt.projectId,Kt.userId,Kt.sessionId,Kt.pageNum,Kt.upload,Kt.end]}function nn(){Ft=[]}function en(t){if(Ft&&-1===Ft.indexOf(t.message)){var n=a.report;if(n&&n.length>0){var e={v:Kt.version,p:Kt.projectId,u:Kt.userId,s:Kt.sessionId,n:Kt.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)),Ft.push(t.message)}}return t}function rn(t){return function(){var n=performance.now();try{t.apply(this,arguments)}catch(t){throw en(t)}var e=performance.now()-n;x(4,e),e>30&&(M(7),O(6,e))}}var on=[];function an(t,n,e,r){void 0===r&&(r=!1),e=rn(e);try{t[u("addEventListener")](n,e,r),on.push({event:n,target:t,listener:e,capture:r})}catch(t){}}function un(){for(var t=0,n=on;t<n.length;t++){var e=n[t];try{e.target[u("removeEventListener")](e.event,e.listener,e.capture)}catch(t){}}on=[]}var cn=null,sn=null,ln=null,pn=0;function dn(){return!(pn++>20)}function fn(){pn=0,ln!==vn()&&(Hn(),window.setTimeout(hn,250))}function hn(){Dn(),O(29,1)}function vn(){return location.href?location.href.replace(location.hash,""):location.href}var gn=[],mn=null,yn=null,bn=null;function wn(){yn&&(bn(),yn=null,null===mn&&_n())}function kn(){gn=[],mn=null,yn=null}function _n(){var t=gn.shift();t&&(mn=t,t.task().then((function(){t.id===Ht()&&(t.resolve(),mn=null,_n())})).catch((function(n){t.id===Ht()&&(n&&(n.name,n.message,n.stack),mn=null,_n())})))}var Sn=!1;function En(){Sn=!0,c=performance.now(),kn(),un(),nn(),ln=vn(),pn=0,an(window,"popstate",fn),null===cn&&(cn=history.pushState,history.pushState=function(){cn.apply(this,arguments),Mn()&&dn()&&fn()}),null===sn&&(sn=history.replaceState,history.replaceState=function(){sn.apply(this,arguments),Mn()&&dn()&&fn()})}function In(){ln=null,pn=0,nn(),un(),kn(),c=0,Sn=!1}function Mn(){return Sn}function xn(t){if(null===t||Sn)return!1;for(var n in t)n in a&&(a[n]=t[n]);return!0}function On(){Dn(),_("clarity","restart")}var Tn,jn=null;function zn(){jn=null}function qn(t){jn={fetchStart:Math.round(t.fetchStart),connectStart:Math.round(t.connectStart),connectEnd:Math.round(t.connectEnd),requestStart:Math.round(t.requestStart),responseStart:Math.round(t.responseStart),responseEnd:Math.round(t.responseEnd),domInteractive:Math.round(t.domInteractive),domComplete:Math.round(t.domComplete),loadEventStart:Math.round(t.loadEventStart),loadEventEnd:Math.round(t.loadEventEnd),redirectCount:Math.round(t.redirectCount),size:t.transferSize?t.transferSize:0,type:t.type,protocol:t.nextHopProtocol,encodedSize:t.encodedBodySize?t.encodedBodySize:0,decodedSize:t.decodedBodySize?t.decodedBodySize:0},function(t){U(this,void 0,void 0,(function(){var n,e;return B(this,(function(r){return n=i(),e=[n,t],29===t&&(e.push(jn.fetchStart),e.push(jn.connectStart),e.push(jn.connectEnd),e.push(jn.requestStart),e.push(jn.responseStart),e.push(jn.responseEnd),e.push(jn.domInteractive),e.push(jn.domComplete),e.push(jn.loadEventStart),e.push(jn.loadEventEnd),e.push(jn.redirectCount),e.push(jn.size),e.push(jn.type),e.push(jn.protocol),e.push(jn.encodedSize),e.push(jn.decodedSize),zn(),ht(e)),[2]}))}))}(29)}var Cn=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint"];function An(){try{Tn&&Tn.disconnect(),Tn=new PerformanceObserver(rn(Nn));for(var t=0,n=Cn;t<n.length;t++){var e=n[t];PerformanceObserver.supportedEntryTypes.indexOf(e)>=0&&("layout-shift"===e&&x(9,0),Tn.observe({type:e,buffered:!0}))}}catch(t){}}function Nn(t){!function(t){for(var n=(!("visibilityState"in document)||"visible"===document.visibilityState),e=0;e<t.length;e++){var r=t[e];switch(r.entryType){case"navigation":qn(r);break;case"resource":var o=r.name;jt(4,Rn(o)),o!==a.upload&&o!==a.fallback||O(28,r.duration);break;case"longtask":M(7);break;case"first-input":n&&O(10,r.processingStart-r.startTime);break;case"layout-shift":n&&!r.hadRecentInput&&x(9,1e3*r.value);break;case"largest-contentful-paint":n&&O(8,r.startTime)}}}(t.getEntries())}function Rn(t){var n=document.createElement("a");return n.href=t,n.host}var Pn=[w,w,w,Object.freeze({__proto__:null,start:function(){zn(),function(){navigator&&"connection"in navigator&&jt(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?an(window,"load",T.bind(this,An,0)):An())}()},stop:function(){Tn&&Tn.disconnect(),Tn=null,zn()}})];function Dn(t){void 0===t&&(t=null),function(){try{return!1===Sn&&"undefined"!=typeof Promise&&window.MutationObserver&&document.createTreeWalker&&"now"in Date&&"now"in performance&&"undefined"!=typeof WeakMap}catch(t){return!1}}()&&(xn(t),En(),tt(),Pn.forEach((function(t){return rn(t.start)()})),null===t&&Ln())}function Hn(){Mn()&&(Pn.slice().reverse().forEach((function(t){return rn(t.stop)()})),nt(),In(),void 0!==Bn&&(Bn[Vn]=function(){(Bn[Vn].q=Bn[Vn].q||[]).push(arguments),"start"===arguments[0]&&Bn[Vn].q.unshift(Bn[Vn].q.pop())&&Ln()}))}var Un=Object.freeze({__proto__:null,consent:Ut,event:_,hashText:y,identify:X,metadata:Dt,pause:function(){Mn()&&(_("clarity","pause"),null===yn&&(yn=new Promise((function(t){bn=t}))))},resume:function(){Mn()&&(wn(),_("clarity","resume"))},set:L,start:Dn,stop:Hn,upgrade:D,version:s}),Bn=window,Vn="clarity";function Ln(){if(void 0!==Bn){if(Bn[Vn]&&Bn[Vn].v)return console.warn("Error CL001: Multiple Clarity tags detected.");var t=Bn[Vn]&&Bn[Vn].q||[];for(Bn[Vn]=function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return Un[t].apply(Un,n)},Bn[Vn].v=s;t.length>0;)Bn[Vn].apply(Bn,t.shift())}}Ln()}();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clarity-js",
3
- "version": "0.7.12",
3
+ "version": "0.7.14",
4
4
  "description": "An analytics library that uses web page interactions to generate aggregated insights",
5
5
  "author": "Microsoft Corp.",
6
6
  "license": "MIT",
@@ -1,2 +1,2 @@
1
- let version = "0.7.12";
1
+ let version = "0.7.14";
2
2
  export default version;
@@ -4,15 +4,20 @@ import encode from "./encode";
4
4
 
5
5
  export let data: CustomData = null;
6
6
 
7
- export function event(key: string, value: string): void {
7
+ // custom events allow 2 parameters or 1 parameter to be passed. If 2 are passed we
8
+ // consider it a key value pair. If only 1 is passed we only consider the event to have a value.
9
+ export function event(a: string, b: string): void {
8
10
  if (core.active() &&
9
- key &&
10
- value &&
11
- typeof key === Constant.String &&
12
- typeof value === Constant.String &&
13
- key.length < 255 &&
14
- value.length < 255) {
15
- data = { key, value};
16
- encode(Event.Custom);
11
+ a &&
12
+ typeof a === Constant.String &&
13
+ a.length < 255
14
+ ) {
15
+ if (b && typeof b === Constant.String && b.length < 255) {
16
+ data = { key: a, value: b};
17
+ } else {
18
+ data = { value: a }
19
+ }
20
+ encode(Event.Custom);
21
+
17
22
  }
18
23
  }
@@ -53,7 +53,8 @@ export default function(event: Event): void {
53
53
  queue(tokens, false);
54
54
  break;
55
55
  case Event.Custom:
56
- tokens.push(custom.data.key);
56
+ // not all custom events have a key - if it wasn't passed server handles just value
57
+ custom.data.key && tokens.push(custom.data.key);
57
58
  tokens.push(custom.data.value);
58
59
  queue(tokens);
59
60
  break;
@@ -16,11 +16,18 @@ const operationCount = 'clarityOperationCount';
16
16
  const maxOperations = 20;
17
17
 
18
18
  export function start(): void {
19
- reset();
20
- overrideAnimationHelper(animationPlay, "play");
21
- overrideAnimationHelper(animationPause, "pause");
22
- overrideAnimationHelper(animationCancel, "cancel");
23
- overrideAnimationHelper(animationFinish, "finish");
19
+ if (
20
+ window["Animation"] &&
21
+ window["KeyframeEffect"] &&
22
+ window["KeyframeEffect"].prototype.getKeyframes &&
23
+ window["KeyframeEffect"].prototype.getTiming
24
+ ) {
25
+ reset();
26
+ overrideAnimationHelper(animationPlay, "play");
27
+ overrideAnimationHelper(animationPause, "pause");
28
+ overrideAnimationHelper(animationCancel, "cancel");
29
+ overrideAnimationHelper(animationFinish, "finish");
30
+ }
24
31
  }
25
32
 
26
33
  export function reset(): void {
@@ -53,34 +60,38 @@ function overrideAnimationHelper(functionToOverride: () => void, name: string) {
53
60
  functionToOverride = Animation.prototype[name];
54
61
  Animation.prototype[name] = function(): void {
55
62
  if (core.active()) {
56
- if (!this[animationId]) {
57
- this[animationId] = shortid();
58
- this[operationCount] = 0;
59
- let keyframes = (<KeyframeEffect>this.effect).getKeyframes();
60
- let timing = (<KeyframeEffect>this.effect).getTiming();
61
- track(time(), this[animationId], AnimationOperation.Create, JSON.stringify(keyframes), JSON.stringify(timing), getId(this.effect.target));
62
- }
63
-
64
- if (this[operationCount]++ < maxOperations) {
65
- let operation: AnimationOperation = null;
66
- switch (name) {
67
- case "play":
68
- operation = AnimationOperation.Play;
69
- break;
70
- case "pause":
71
- operation = AnimationOperation.Pause;
72
- break;
73
- case "cancel":
74
- operation = AnimationOperation.Cancel;
75
- break;
76
- case "finish":
77
- operation = AnimationOperation.Finish;
78
- break;
63
+ let effect = <KeyframeEffect>this.effect;
64
+ if (effect.getKeyframes && effect.getTiming) {
65
+ if (!this[animationId]) {
66
+ this[animationId] = shortid();
67
+ this[operationCount] = 0;
68
+
69
+ let keyframes = effect.getKeyframes();
70
+ let timing = effect.getTiming();
71
+ track(time(), this[animationId], AnimationOperation.Create, JSON.stringify(keyframes), JSON.stringify(timing), getId(this.effect.target));
79
72
  }
80
- if (operation) {
81
- track(time(), this[animationId], operation);
73
+
74
+ if (this[operationCount]++ < maxOperations) {
75
+ let operation: AnimationOperation = null;
76
+ switch (name) {
77
+ case "play":
78
+ operation = AnimationOperation.Play;
79
+ break;
80
+ case "pause":
81
+ operation = AnimationOperation.Pause;
82
+ break;
83
+ case "cancel":
84
+ operation = AnimationOperation.Cancel;
85
+ break;
86
+ case "finish":
87
+ operation = AnimationOperation.Finish;
88
+ break;
89
+ }
90
+ if (operation) {
91
+ track(time(), this[animationId], operation);
92
+ }
82
93
  }
83
- }
94
+ }
84
95
  }
85
96
 
86
97
  return functionToOverride.apply(this, arguments);
package/src/layout/dom.ts CHANGED
@@ -7,7 +7,7 @@ import * as internal from "@src/diagnostic/internal";
7
7
  import * as region from "@src/layout/region";
8
8
  import * as selector from "@src/layout/selector";
9
9
  let index: number = 1;
10
- let nodes: Node[] = [];
10
+ let nodesMap: Map<Number, Node> = null; // Maps id => node to retrieve further node details using id.
11
11
  let values: NodeValue[] = [];
12
12
  let updateMap: number[] = [];
13
13
  let hashMap: { [hash: string]: number } = {};
@@ -35,7 +35,6 @@ export function stop(): void {
35
35
 
36
36
  function reset(): void {
37
37
  index = 1;
38
- nodes = [];
39
38
  values = [];
40
39
  updateMap = [];
41
40
  hashMap = {};
@@ -45,6 +44,7 @@ function reset(): void {
45
44
  maskExclude = Mask.Exclude.split(Constant.Comma);
46
45
  maskDisable = Mask.Disable.split(Constant.Comma);
47
46
  maskTags = Mask.Tags.split(Constant.Comma);
47
+ nodesMap = new Map();
48
48
  idMap = new WeakMap();
49
49
  iframeMap = new WeakMap();
50
50
  privacyMap = new WeakMap();
@@ -59,7 +59,7 @@ export function parse(root: ParentNode, init: boolean = false): void {
59
59
  // It's possible for script to receive invalid selectors, e.g. "'#id'" with extra quotes, and cause the code below to fail
60
60
  try {
61
61
  // Parse unmask configuration into separate query selectors and override tokens as part of initialization
62
- if (init) { config.unmask.forEach(x => x.indexOf(Constant.Bang) < 0 ? unmask.push(x) : override.push(x.substr(1))); }
62
+ if (init) { config.unmask.forEach(x => x.indexOf(Constant.Bang) < 0 ? unmask.push(x) : override.push(x.substr(1))); }
63
63
 
64
64
  // Since mutations may happen on leaf nodes too, e.g. text nodes, which may not support all selector APIs.
65
65
  // We ensure that the root note supports querySelectorAll API before executing the code below to identify new regions.
@@ -105,7 +105,7 @@ export function add(node: Node, parent: Node, data: NodeInfo, source: Source): v
105
105
  regionId = id;
106
106
  }
107
107
 
108
- nodes[id] = node;
108
+ nodesMap.set(id, node);
109
109
  values[id] = {
110
110
  id,
111
111
  parent: parentId,
@@ -240,7 +240,7 @@ function privacy(node: Node, value: NodeValue, parent: NodeValue): void {
240
240
  // If it's a text node belonging to a STYLE or TITLE tag or one of scrub exceptions, then capture content
241
241
  let pTag = parent && parent.data ? parent.data.tag : Constant.Empty;
242
242
  let pSelector = parent && parent.selector ? parent.selector[Selector.Default] : Constant.Empty;
243
- let tags : string[] = [Constant.StyleTag, Constant.TitleTag, Constant.SvgStyle];
243
+ let tags: string[] = [Constant.StyleTag, Constant.TitleTag, Constant.SvgStyle];
244
244
  metadata.privacy = tags.includes(pTag) || override.some(x => pSelector.indexOf(x) >= 0) ? Privacy.None : current;
245
245
  break;
246
246
  case current === Privacy.Sensitive:
@@ -297,10 +297,7 @@ export function hashText(hash: string): string {
297
297
  }
298
298
 
299
299
  export function getNode(id: number): Node {
300
- if (id in nodes) {
301
- return nodes[id];
302
- }
303
- return null;
300
+ return nodesMap.has(id) ? nodesMap.get(id) : null;
304
301
  }
305
302
 
306
303
  export function getValue(id: number): NodeValue {
@@ -320,7 +317,7 @@ export function lookup(hash: string): number {
320
317
  }
321
318
 
322
319
  export function has(node: Node): boolean {
323
- return getId(node) in nodes;
320
+ return nodesMap.has(getId(node));
324
321
  }
325
322
 
326
323
  export function updates(): NodeValue[] {
@@ -329,7 +326,7 @@ export function updates(): NodeValue[] {
329
326
  if (id in values) { output.push(values[id]); }
330
327
  }
331
328
  updateMap = [];
332
-
329
+
333
330
  return output;
334
331
  }
335
332
 
@@ -339,6 +336,20 @@ function remove(id: number, source: Source): void {
339
336
  value.metadata.active = false;
340
337
  value.parent = null;
341
338
  track(id, source);
339
+
340
+ // Clean up node references for removed nodes
341
+ removeNodeFromNodesMap(id);
342
+ }
343
+ }
344
+
345
+ function removeNodeFromNodesMap(id: number) {
346
+ nodesMap.delete(id);
347
+
348
+ let value = id in values ? values[id] : null;
349
+ if (value && value.children) {
350
+ for (let childId of value.children) {
351
+ removeNodeFromNodesMap(childId);
352
+ }
342
353
  }
343
354
  }
344
355
 
package/types/data.d.ts CHANGED
@@ -407,7 +407,7 @@ export interface VariableData {
407
407
  // The way it's different from variable is that Custom Event has a notion of time
408
408
  // Whereas variables have no timing element and eventually will turn into custom dimensions
409
409
  export interface CustomData {
410
- key: string;
410
+ key?: string;
411
411
  value: string;
412
412
  }
413
413