clarity-js 0.8.13-beta → 0.8.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -57,6 +57,7 @@ var metadata$1 = /*#__PURE__*/Object.freeze({
57
57
  get callbacks () { return callbacks; },
58
58
  get clear () { return clear; },
59
59
  get consent () { return consent; },
60
+ get consentv2 () { return consentv2; },
60
61
  get data () { return data$2; },
61
62
  get electron () { return electron; },
62
63
  get id () { return id; },
@@ -76,6 +77,7 @@ var envelope$1 = /*#__PURE__*/Object.freeze({
76
77
  var clarity = /*#__PURE__*/Object.freeze({
77
78
  __proto__: null,
78
79
  get consent () { return consent; },
80
+ get consentv2 () { return consentv2; },
79
81
  get event () { return event; },
80
82
  get hashText () { return hashText; },
81
83
  get identify () { return identify; },
@@ -179,7 +181,7 @@ function stop$F() {
179
181
  startTime = 0;
180
182
  }
181
183
 
182
- var version$1 = "0.8.13-beta";
184
+ var version$1 = "0.8.14";
183
185
 
184
186
  // tslint:disable: no-bitwise
185
187
  function hash (input, precision) {
@@ -239,7 +241,13 @@ function text$1(value, hint, privacy, mangle, type) {
239
241
  case "srcset":
240
242
  case "title":
241
243
  case "alt":
242
- return privacy === 3 /* Privacy.TextImage */ ? "" /* Data.Constant.Empty */ : value;
244
+ if (privacy === 3 /* Privacy.TextImage */) {
245
+ if (hint === 'src' && (value === null || value === void 0 ? void 0 : value.startsWith('blob:'))) {
246
+ return 'blob:';
247
+ }
248
+ return "" /* Data.Constant.Empty */;
249
+ }
250
+ return value;
243
251
  case "value":
244
252
  case "click":
245
253
  case "input":
@@ -526,7 +534,7 @@ function visibility(t, visible) {
526
534
  }
527
535
  update$2 = true;
528
536
  }
529
- function compute$e() {
537
+ function compute$f() {
530
538
  if (update$2) {
531
539
  encode$1(4 /* Event.Baseline */);
532
540
  }
@@ -538,7 +546,7 @@ function stop$E() {
538
546
  var baseline = /*#__PURE__*/Object.freeze({
539
547
  __proto__: null,
540
548
  activity: activity,
541
- compute: compute$e,
549
+ compute: compute$f,
542
550
  reset: reset$s,
543
551
  start: start$H,
544
552
  get state () { return state$b; },
@@ -547,6 +555,31 @@ var baseline = /*#__PURE__*/Object.freeze({
547
555
  visibility: visibility
548
556
  });
549
557
 
558
+ var data$k = null;
559
+ var updateConsent = true;
560
+ function config$1(consent) {
561
+ trackConsent(consent.analytics_Storage ? 1 /* ConsentType.Implicit */ : 0 /* ConsentType.None */);
562
+ data$k = consent;
563
+ }
564
+ // When we get consent signal as false, we restart the service and track config as false.
565
+ function consent$1() {
566
+ trackConsent(2 /* ConsentType.General */);
567
+ }
568
+ function trackConsent(consent) {
569
+ log(36 /* Dimension.Consent */, consent.toString());
570
+ }
571
+ function consentv2$1(consent) {
572
+ data$k = consent;
573
+ encode$1(47 /* Event.Consent */);
574
+ }
575
+ // Compute function is called every upload, but we only want to send consent data once.
576
+ function compute$e() {
577
+ if (updateConsent) {
578
+ encode$1(47 /* Event.Consent */);
579
+ updateConsent = false;
580
+ }
581
+ }
582
+
550
583
  var data$j = null;
551
584
  // custom events allow 2 parameters or 1 parameter to be passed. If 2 are passed we
552
585
  // consider it a key value pair. If only 1 is passed we only consider the event to have a value.
@@ -1170,12 +1203,13 @@ function stop$y() {
1170
1203
  }
1171
1204
  function compute$9() {
1172
1205
  compute$b();
1173
- compute$e();
1206
+ compute$f();
1174
1207
  compute$2();
1175
1208
  compute$d();
1176
1209
  compute$c();
1177
1210
  compute$3();
1178
1211
  compute$a();
1212
+ compute$e();
1179
1213
  }
1180
1214
 
1181
1215
  var history$5 = [];
@@ -1651,7 +1685,7 @@ function start$t() {
1651
1685
  }
1652
1686
  function observe$7(root) {
1653
1687
  var frame = iframe(root);
1654
- var node = frame ? frame.contentWindow : root === document ? window : root;
1688
+ var node = frame ? frame.contentWindow : (root === document ? window : root);
1655
1689
  bind(node, "scroll", throttledRecompute, true);
1656
1690
  }
1657
1691
  function recompute$4(event) {
@@ -1724,7 +1758,7 @@ function process$4(event) {
1724
1758
  function similar(last, current) {
1725
1759
  var dx = last.data.x - current.data.x;
1726
1760
  var dy = last.data.y - current.data.y;
1727
- return dx * dx + dy * dy < 20 /* Setting.Distance */ * 20 /* Setting.Distance */ && current.time - last.time < 50 /* Setting.ScrollInterval */;
1761
+ return (dx * dx + dy * dy < 20 /* Setting.Distance */ * 20 /* Setting.Distance */) && (current.time - last.time < 50 /* Setting.ScrollInterval */);
1728
1762
  }
1729
1763
  function compute$8() {
1730
1764
  var _a, _b;
@@ -3789,9 +3823,7 @@ function handler$1(entries) {
3789
3823
  // Also, if these regions ever become non-zero width or height (through AJAX, user action or orientation change) - we will automatically start monitoring them from that point onwards
3790
3824
  if (regionMap.has(target) && rect.width + rect.height > 0 && viewport && viewport.width > 0 && viewport.height > 0) {
3791
3825
  var id = target ? getId(target) : null;
3792
- var data = id in regions
3793
- ? regions[id]
3794
- : { id: id, name: regionMap.get(target), interaction: 16 /* InteractionState.None */, visibility: 0 /* RegionVisibility.Rendered */ };
3826
+ var data = id in regions ? regions[id] : { id: id, name: regionMap.get(target), interaction: 16 /* InteractionState.None */, visibility: 0 /* RegionVisibility.Rendered */ };
3795
3827
  // For regions that have relatively smaller area, we look at intersection ratio and see the overlap relative to element's area
3796
3828
  // However, for larger regions, area of regions could be bigger than viewport and therefore comparison is relative to visible area
3797
3829
  var viewportRatio = overlap ? (overlap.width * overlap.height * 1.0) / (viewport.width * viewport.height) : 0;
@@ -4906,6 +4938,12 @@ function encode$1 (event) {
4906
4938
  }));
4907
4939
  reset$n();
4908
4940
  queue(tokens, false);
4941
+ case 47 /* Event.Consent */:
4942
+ tokens.push(data$k.source);
4943
+ tokens.push(data$k.ad_Storage);
4944
+ tokens.push(data$k.analytics_Storage);
4945
+ queue(tokens);
4946
+ break;
4909
4947
  }
4910
4948
  }
4911
4949
 
@@ -4990,21 +5028,12 @@ function reset$3() {
4990
5028
  limited = false;
4991
5029
  }
4992
5030
 
4993
- function config$1(track) {
4994
- trackConsent(track ? 1 /* ConsentType.Implicit */ : 0 /* ConsentType.None */);
4995
- }
4996
- // When we get consent signal as false, we restart the service and track config as false.
4997
- function consent$1() {
4998
- trackConsent(2 /* ConsentType.General */);
4999
- }
5000
- function trackConsent(consent) {
5001
- log(36 /* Dimension.Consent */, consent.toString());
5002
- }
5003
-
5004
5031
  var data$2 = null;
5005
5032
  var callbacks = [];
5006
5033
  var electron = 0 /* BooleanFlag.False */;
5007
5034
  var rootDomain = null;
5035
+ var consentStatus = null;
5036
+ var defaultStatus = { ad_Storage: "denied" /* Constant.Denied */, analytics_Storage: "denied" /* Constant.Denied */ };
5008
5037
  function start$8() {
5009
5038
  var _a, _b, _c;
5010
5039
  rootDomain = null;
@@ -5040,6 +5069,11 @@ function start$8() {
5040
5069
  max(0 /* Metric.ClientTimestamp */, s.ts);
5041
5070
  max(1 /* Metric.Playback */, 0 /* BooleanFlag.False */);
5042
5071
  max(35 /* Metric.Electron */, electron);
5072
+ var zone = window === null || window === void 0 ? void 0 : window["Zone" /* CoreConstant.Zone */];
5073
+ var isZone = zone && "__symbol__" /* CoreConstant.Symbol */ in zone;
5074
+ if (isZone) {
5075
+ max(39 /* Metric.AngularZone */, 1 /* BooleanFlag.True */);
5076
+ }
5043
5077
  // Capture navigator specific dimensions
5044
5078
  if (navigator) {
5045
5079
  log(9 /* Dimension.Language */, navigator.language);
@@ -5062,7 +5096,12 @@ function start$8() {
5062
5096
  }
5063
5097
  }
5064
5098
  // Track consent config
5065
- config$1(config$2.track);
5099
+ consentStatus = {
5100
+ ad_Storage: config$2.track ? "granted" /* Constant.Granted */ : "denied" /* Constant.Denied */,
5101
+ analytics_Storage: config$2.track ? "granted" /* Constant.Granted */ : "denied" /* Constant.Denied */,
5102
+ };
5103
+ var consent = getConsentData(consentStatus, 0 /* ConsentSource.Implicit */);
5104
+ config$1(consent);
5066
5105
  // Track ids using a cookie if configuration allows it
5067
5106
  track(u);
5068
5107
  }
@@ -5085,11 +5124,13 @@ function userAgentData() {
5085
5124
  function stop$8() {
5086
5125
  rootDomain = null;
5087
5126
  data$2 = null;
5127
+ consentStatus = null;
5088
5128
  callbacks.forEach(function (cb) { cb.called = false; });
5089
5129
  }
5090
- function metadata(cb, wait, recall) {
5130
+ function metadata(cb, wait, recall, consentInfo) {
5091
5131
  if (wait === void 0) { wait = true; }
5092
5132
  if (recall === void 0) { recall = false; }
5133
+ if (consentInfo === void 0) { consentInfo = false; }
5093
5134
  var upgraded = config$2.lean ? 0 /* BooleanFlag.False */ : 1 /* BooleanFlag.True */;
5094
5135
  var called = false;
5095
5136
  // if caller hasn't specified that they want to skip waiting for upgrade but we've already upgraded, we need to
@@ -5097,19 +5138,36 @@ function metadata(cb, wait, recall) {
5097
5138
  // we go through the upgrading flow.
5098
5139
  if (data$2 && (upgraded || wait === false)) {
5099
5140
  // Immediately invoke the callback if the caller explicitly doesn't want to wait for the upgrade confirmation
5100
- cb(data$2, !config$2.lean);
5141
+ cb(data$2, !config$2.lean, consentInfo ? consentStatus : undefined);
5101
5142
  called = true;
5102
5143
  }
5103
5144
  if (recall || !called) {
5104
- callbacks.push({ callback: cb, wait: wait, recall: recall, called: called });
5145
+ callbacks.push({ callback: cb, wait: wait, recall: recall, called: called, consentInfo: consentInfo });
5105
5146
  }
5106
5147
  }
5107
5148
  function id() {
5108
5149
  return data$2 ? [data$2.userId, data$2.sessionId, data$2.pageNum].join("." /* Constant.Dot */) : "" /* Constant.Empty */;
5109
5150
  }
5151
+ //TODO: Remove this function once consentv2 is fully released
5110
5152
  function consent(status) {
5111
5153
  if (status === void 0) { status = true; }
5112
5154
  if (!status) {
5155
+ consentv2();
5156
+ return;
5157
+ }
5158
+ consentv2({ ad_Storage: "granted" /* Constant.Granted */, analytics_Storage: "granted" /* Constant.Granted */ });
5159
+ consent$1();
5160
+ }
5161
+ function consentv2(consentState, source) {
5162
+ if (consentState === void 0) { consentState = defaultStatus; }
5163
+ if (source === void 0) { source = 1 /* ConsentSource.API */; }
5164
+ consentStatus = {
5165
+ ad_Storage: normalizeConsent(consentState.ad_Storage),
5166
+ analytics_Storage: normalizeConsent(consentState.analytics_Storage)
5167
+ };
5168
+ callback(true);
5169
+ var consentData = getConsentData(consentStatus, source);
5170
+ if (!consentData.analytics_Storage) {
5113
5171
  config$2.track = false;
5114
5172
  setCookie("_clsk" /* Constant.SessionKey */, "" /* Constant.Empty */, -Number.MAX_VALUE);
5115
5173
  setCookie("_clck" /* Constant.CookieKey */, "" /* Constant.Empty */, -Number.MAX_VALUE);
@@ -5121,9 +5179,21 @@ function consent(status) {
5121
5179
  config$2.track = true;
5122
5180
  track(user(), 1 /* BooleanFlag.True */);
5123
5181
  save();
5182
+ consentv2$1(consentData);
5124
5183
  consent$1();
5125
5184
  }
5126
5185
  }
5186
+ function getConsentData(consentState, source) {
5187
+ var consent = {
5188
+ source: source,
5189
+ ad_Storage: consentState.ad_Storage === "granted" /* Constant.Granted */ ? 1 /* BooleanFlag.True */ : 0 /* BooleanFlag.False */,
5190
+ analytics_Storage: consentState.analytics_Storage === "granted" /* Constant.Granted */ ? 1 /* BooleanFlag.True */ : 0 /* BooleanFlag.False */,
5191
+ };
5192
+ return consent;
5193
+ }
5194
+ function normalizeConsent(value) {
5195
+ return typeof value === 'string' ? value.toLowerCase() : "denied" /* Constant.Denied */;
5196
+ }
5127
5197
  function clear() {
5128
5198
  // Clear any stored information in the cookie that tracks session information so we can restart fresh the next time
5129
5199
  setCookie("_clsk" /* Constant.SessionKey */, "" /* Constant.Empty */, 0);
@@ -5137,9 +5207,10 @@ function tab() {
5137
5207
  }
5138
5208
  return id;
5139
5209
  }
5140
- function callback() {
5210
+ function callback(consentUpdate) {
5211
+ if (consentUpdate === void 0) { consentUpdate = false; }
5141
5212
  var upgrade = config$2.lean ? 0 /* BooleanFlag.False */ : 1 /* BooleanFlag.True */;
5142
- processCallback(upgrade);
5213
+ processCallback(upgrade, consentUpdate);
5143
5214
  }
5144
5215
  function save() {
5145
5216
  if (!data$2 || !config$2.track)
@@ -5149,12 +5220,15 @@ function save() {
5149
5220
  var upgrade = config$2.lean ? 0 /* BooleanFlag.False */ : 1 /* BooleanFlag.True */;
5150
5221
  setCookie("_clsk" /* Constant.SessionKey */, [data$2.sessionId, ts, data$2.pageNum, upgrade, upload].join("|" /* Constant.Pipe */), 1 /* Setting.SessionExpire */);
5151
5222
  }
5152
- function processCallback(upgrade) {
5223
+ function processCallback(upgrade, consentUpdate) {
5224
+ if (consentUpdate === void 0) { consentUpdate = false; }
5153
5225
  if (callbacks.length > 0) {
5154
5226
  for (var i = 0; i < callbacks.length; i++) {
5155
5227
  var cb = callbacks[i];
5156
- if (cb.callback && !cb.called && (!cb.wait || upgrade)) {
5157
- cb.callback(data$2, !config$2.lean);
5228
+ if (cb.callback &&
5229
+ ((!cb.called && !consentUpdate) || (cb.consentInfo && consentUpdate)) && //If consentUpdate is true, we only call the callback if it has consentInfo
5230
+ (!cb.wait || upgrade)) {
5231
+ cb.callback(data$2, !config$2.lean, cb.consentInfo ? consentStatus : undefined);
5158
5232
  cb.called = true;
5159
5233
  if (!cb.recall) {
5160
5234
  callbacks.splice(i, 1);
@@ -1 +1 @@
1
- !function(){"use strict";var t=Object.freeze({__proto__:null,get queue(){return bt},get start(){return yt},get stop(){return wt},get track(){return dt}}),n=Object.freeze({__proto__:null,get check(){return 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.13-beta";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>8?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&&cn){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(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)}))}}},Kn=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint","event"];function Qn(){Qn.dn=26;try{Xn&&Xn.disconnect(),Xn=new PerformanceObserver(hn($n));for(var t=0,n=Kn;t<n.length;t++){var e=n[t];PerformanceObserver.supportedEntryTypes.indexOf(e)>=0&&("layout-shift"===e&&x(9,0),Xn.observe({type:e,buffered:!0}))}}catch(t){}}function $n(t){$n.dn=27,function(t){for(var n=(!("visibilityState"in document)||"visible"===document.visibilityState),e=0;e<t.length;e++){var r=t[e];switch(r.entryType){case"navigation":Un(r);break;case"resource":var 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&&(Fn(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 te(){Xn&&Xn.disconnect(),Xn=null,Yn=Zn(),Wn.length=0,Jn.clear()}function ne(t){var n=document.createElement("a");return n.href=t,n.host}var ee=Object.freeze({__proto__:null,start:function t(){t.dn=25,Hn(),function(){navigator&&"connection"in navigator&&Nt(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?gn(window,"load",z.bind(this,Qn,0)):Qn())}()},stop:function(){te(),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()}();
1
+ !function(){"use strict";var t=Object.freeze({__proto__:null,get queue(){return _t},get start(){return St},get stop(){return It},get track(){return vt}}),n=Object.freeze({__proto__:null,get check(){return zt},get compute(){return At},get data(){return gt},get start(){return jt},get stop(){return Pt},get trigger(){return Ct}}),e=Object.freeze({__proto__:null,get compute(){return Xt},get data(){return qt},get log(){return Ut},get reset(){return Lt},get start(){return Rt},get stop(){return Ht},get updates(){return Nt}}),r=Object.freeze({__proto__:null,get callback(){return an},get callbacks(){return Bt},get clear(){return rn},get consent(){return $t},get consentv2(){return tn},get data(){return Vt},get electron(){return Yt},get id(){return Qt},get metadata(){return Kt},get save(){return on},get shortid(){return sn},get start(){return Gt},get stop(){return Ft}}),a=Object.freeze({__proto__:null,get data(){return gn},get envelope(){return wn},get start(){return mn},get stop(){return yn}}),o={projectId:null,delay:1e3,lean:!1,lite:!1,track:!0,content:!0,drop:[],mask:[],unmask:[],regions:[],cookies:[],fraud:!0,checksum:[],report:null,upload:null,fallback:null,upgrade:null,action:null,dob:null,delayDom:!1,throttleDom:!0,conversions:!1,includeSubdomains:!0};function i(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}var u=0;function c(t){void 0===t&&(t=null);var n=t&&t.timeStamp>0?t.timeStamp:performance.now(),e=t&&t.view?t.view.performance.timeOrigin:performance.timeOrigin;return Math.max(Math.round(n+e-u),0)}var s="0.8.14";var l=255,d=!0,p=null,f=null;function h(t,n,e){void 0===n&&(n=!1),void 0===e&&(e=!1);var r=t;if(n)r="".concat("https://").concat("Electron");else{var a=o.drop;if(a&&a.length>0&&t&&t.indexOf("?")>0){var i=t.split("?"),u=i[0],c=i[1];r=u+"?"+c.split("&").map((function(t){return a.some((function(n){return 0===t.indexOf("".concat(n,"="))}))?"".concat(t.split("=")[0],"=").concat("*na*"):t})).join("&")}}return e&&(r=r.substring(0,l)),r}function v(t,n,e){return function(){if(d&&null===p)try{p=new RegExp("\\p{N}","gu"),f=new RegExp("\\p{L}","gu"),new RegExp("\\p{Sc}","gu")}catch(t){d=!1}}(),t?t.replace(f,n).replace(p,e):t}var g=[],m=null;function y(){}var w=[];function b(){}function k(){}var S=Object.freeze({__proto__:null,checkDocumentStyles:function(t){},compute:function(){},data:m,hashText:b,keys:w,log:y,observe:function(){},reset:function(){},sheetAdoptionState:[],sheetUpdateState:[],start:function(){},state:g,stop:function(){},trigger:k}),_=null,I=!0;function E(){M(2)}function M(t){Ut(36,t.toString())}var O=null;function T(t,n){Bn()&&t&&"string"==typeof t&&t.length<255&&(O=n&&"string"==typeof n&&n.length<255?{key:t,value:n}:{value:t},xt(24))}var x,j=null,z=null;function C(t){t in j||(j[t]=0),t in z||(z[t]=0),j[t]++,z[t]++}function A(t,n){null!==n&&(t in j||(j[t]=0),t in z||(z[t]=0),j[t]+=n,z[t]+=n)}function P(t,n){null!==n&&!1===isNaN(n)&&(t in j||(j[t]=0),(n>j[t]||0===j[t])&&(z[t]=n,j[t]=n))}function q(t,n,e){return window.setTimeout(Sn(t),n,e)}function N(t){return window.clearTimeout(t)}var D=0,R=0,H=null;function U(){H&&N(H),H=q(X,R),D=c()}function X(){var t=c();x={gap:t-D},xt(25),x.gap<3e5?H=q(X,R):Xn&&(T("clarity","suspend"),fe(),["mousemove","touchstart"].forEach((function(t){return In(document,t,Yn)})),["resize","scroll","pageshow"].forEach((function(t){return In(window,t,Yn)})))}var L=Object.freeze({__proto__:null,get data(){return x},reset:U,start:function(){R=6e4,D=0},stop:function(){N(H),D=0,R=0}}),V=null;function B(t){Bn()&&o.lean&&(o.lean=!1,V={key:t},an(),on(),o.upgrade&&o.upgrade(t),xt(3),o.lite)}var Y=Object.freeze({__proto__:null,get data(){return V},start:function(){!o.lean&&o.upgrade&&o.upgrade("Config"),V=null},stop:function(){V=null},upgrade:B});function W(t,n,e,r){return new(e||(e=Promise))((function(a,o){function i(t){try{c(r.next(t))}catch(t){o(t)}}function u(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var n;t.done?a(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(i,u)}c((r=r.apply(t,n||[])).next())}))}function Z(t,n){var e,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(u){return function(c){return function(u){if(e)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(i=0)),i;)try{if(e=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){i.label=u[1];break}if(6===u[0]&&i.label<a[1]){i.label=a[1],a=u;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(u);break}a[2]&&i.ops.pop(),i.trys.pop();continue}u=n.call(t,i)}catch(t){u=[6,t],r=0}finally{e=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}var J=null;function G(t,n){K(t,"string"==typeof n?[n]:n)}function F(t,n,e,r){return void 0===n&&(n=null),void 0===e&&(e=null),void 0===r&&(r=null),W(this,void 0,void 0,(function(){var a,o;return Z(this,(function(i){switch(i.label){case 0:return o={},[4,tt(t)];case 1:return o.userId=i.sent(),o.userHint=r||((u=t)&&u.length>=5?"".concat(u.substring(0,2)).concat(v(u.substring(2),"*","*")):v(u,"*","*")),K("userId",[(a=o).userId]),K("userHint",[a.userHint]),K("userType",[nt(t)]),n&&(K("sessionId",[n]),a.sessionId=n),e&&(K("pageId",[e]),a.pageId=e),[2,a]}var u}))}))}function K(t,n){if(Bn()&&t&&n&&"string"==typeof t&&t.length<255){for(var e=(t in J?J[t]:[]),r=0;r<n.length;r++)"string"==typeof n[r]&&n[r].length<255&&e.push(n[r]);J[t]=e}}function Q(){xt(34)}function $(){J={}}function tt(t){return W(this,void 0,void 0,(function(){var n;return Z(this,(function(e){switch(e.label){case 0:return e.trys.push([0,4,,5]),crypto&&t?[4,crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t))]:[3,2];case 1:return n=e.sent(),[2,Array.prototype.map.call(new Uint8Array(n),(function(t){return("00"+t.toString(16)).slice(-2)})).join("")];case 2:return[2,""];case 3:return[3,5];case 4:return e.sent(),[2,""];case 5:return[2]}}))}))}function nt(t){return t&&t.indexOf("@")>0?"email":"string"}var et="CompressionStream"in window;function rt(t){return W(this,void 0,void 0,(function(){var n,e;return Z(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),et?(n=new ReadableStream({start:function(n){return W(this,void 0,void 0,(function(){return Z(this,(function(e){return n.enqueue(t),n.close(),[2]}))}))}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip")),e=Uint8Array.bind,[4,at(n)]):[3,2];case 1:return[2,new(e.apply(Uint8Array,[void 0,r.sent()]))];case 2:return[3,4];case 3:return r.sent(),[3,4];case 4:return[2,null]}}))}))}function at(t){return W(this,void 0,void 0,(function(){var n,e,r,a,o;return Z(this,(function(i){switch(i.label){case 0:n=t.getReader(),e=[],r=!1,a=[],i.label=1;case 1:return r?[3,3]:[4,n.read()];case 2:return o=i.sent(),r=o.done,a=o.value,r?[2,e]:(e.push.apply(e,a),[3,1]);case 3:return[2,e]}}))}))}var ot=null;function it(t){try{if(!ot)return;var n=function(t){try{return JSON.parse(t)}catch(t){return[]}}(t);n.forEach((function(t){ot(t)}))}catch(t){}}var ut=[S,e,Object.freeze({__proto__:null,compute:Q,get data(){return J},identify:F,reset:$,set:G,start:function(){$()},stop:function(){$()}}),n,S,r,a,t,L,Y,S];function ct(){j={},z={},C(5),ut.forEach((function(t){return Sn(t.start)()}))}function st(){ut.slice().reverse().forEach((function(t){return Sn(t.stop)()})),j={},z={}}function lt(){Q(),Xt(),xt(0),At(),I&&(xt(47),I=!1)}var dt,pt,ft,ht,vt,gt,mt=0,yt=0,wt=null,bt=0,kt=!1;function St(){ht=!0,mt=0,yt=0,kt=!1,bt=0,dt=[],pt=[],ft={},vt=null}function _t(t,n){if(void 0===n&&(n=!0),ht){var e=c(),r=t.length>1?t[1]:null,a=JSON.stringify(t);switch(o.lean?!kt&&yt+a.length>10485760&&(kt=!0):kt=!1,r){case 5:if(kt)break;mt+=a.length;case 37:case 6:case 43:case 45:case 46:if(kt)break;yt+=a.length,dt.push(a);break;default:pt.push(a)}C(25);var i=function(){var t=!1===o.lean&&mt>0?100:gn.sequence*o.delay;return"string"==typeof o.upload?Math.max(Math.min(t,3e4),100):o.delay}();e-bt>2*i&&(N(wt),wt=null),n&&null===wt&&(25!==r&&U(),wt=q(Et,i),bt=e,zt(yt))}}function It(){N(wt),Et(!0),mt=0,yt=0,kt=!1,bt=0,dt=[],pt=[],ft={},vt=null,ht=!1}function Et(t){return void 0===t&&(t=!1),W(this,void 0,void 0,(function(){var n,e,r,a,i,u,c,s;return Z(this,(function(l){switch(l.label){case 0:return wt=null,(n=!1===o.lean&&yt>0&&(yt<1048576||gn.sequence>0))&&P(1,1),lt(),e=!0===t,r=JSON.stringify(wn(e)),a="[".concat(pt.join(),"]"),i=n?"[".concat(dt.join(),"]"):"",u=function(t){return t.p.length>0?'{"e":'.concat(t.e,',"a":').concat(t.a,',"p":').concat(t.p,"}"):'{"e":'.concat(t.e,',"a":').concat(t.a,"}")}({e:r,a:a,p:i}),e?(s=null,[3,3]):[3,1];case 1:return[4,rt(u)];case 2:s=l.sent(),l.label=3;case 3:return A(2,(c=s)?c.length:u.length),Mt(u,c,gn.sequence,e),pt=[],n&&(dt=[],yt=0,mt=0,kt=!1),[2]}}))}))}function Mt(t,n,e,r){if(void 0===r&&(r=!1),"string"==typeof o.upload){var a=o.upload,i=!1;if(r&&"sendBeacon"in navigator)try{(i=navigator.sendBeacon.bind(navigator)(a,t))&&Tt(e)}catch(t){}if(!1===i){e in ft?ft[e].attempts++:ft[e]={data:t,attempts:1};var u=new XMLHttpRequest;u.open("POST",a,!0),u.timeout=15e3,u.ontimeout=function(){kn(new Error("".concat("Timeout"," : ").concat(a)))},null!==e&&(u.onreadystatechange=function(){Sn(Ot)(u,e)}),u.withCredentials=!0,n?(u.setRequestHeader("Accept","application/x-clarity-gzip"),u.send(n)):u.send(t)}}else if(o.upload){(0,o.upload)(t),Tt(e)}}function Ot(t,n){var e=ft[n];t&&4===t.readyState&&e&&((t.status<200||t.status>208)&&e.attempts<=1?t.status>=400&&t.status<500?Ct(6):(0===t.status&&(o.upload=o.fallback?o.fallback:o.upload),Mt(e.data,null,n)):(vt={sequence:n,attempts:e.attempts,status:t.status},e.attempts>1&&xt(2),200===t.status&&t.responseText&&function(t){for(var n=t&&t.length>0?t.split("\n"):[],e=0,r=n;e<r.length;e++){var a=r[e],i=a&&a.length>0?a.split(/ (.*)/):[""];switch(i[0]){case"END":Ct(6);break;case"UPGRADE":B("Auto");break;case"ACTION":o.action&&i.length>1&&o.action(i[1]);break;case"EXTRACT":i.length>1&&i[1];break;case"SIGNAL":i.length>1&&it(i[1])}}}(t.responseText),0===t.status&&(Mt(e.data,null,n,!0),Ct(3)),t.status>=200&&t.status<=208&&Tt(n),delete ft[n]))}function Tt(t){1===t&&(on(),an())}function xt(t){var n=[c(),t];switch(t){case 4:var e=g;e&&((n=[e.time,e.event]).push(e.data.visible),n.push(e.data.docWidth),n.push(e.data.docHeight),n.push(e.data.screenWidth),n.push(e.data.screenHeight),n.push(e.data.scrollX),n.push(e.data.scrollY),n.push(e.data.pointerX),n.push(e.data.pointerY),n.push(e.data.activityTime),n.push(e.data.scrollTime),n.push(e.data.pointerTime),n.push(e.data.moveX),n.push(e.data.moveY),n.push(e.data.moveTime),n.push(e.data.downX),n.push(e.data.downY),n.push(e.data.downTime),n.push(e.data.upX),n.push(e.data.upY),n.push(e.data.upTime),n.push(e.data.pointerPrevX),n.push(e.data.pointerPrevY),n.push(e.data.pointerPrevTime),_t(n,!1));break;case 25:n.push(x.gap),_t(n);break;case 35:n.push(gt.check),_t(n,!1);break;case 3:n.push(V.key),_t(n);break;case 2:n.push(vt.sequence),n.push(vt.attempts),n.push(vt.status),_t(n,!1);break;case 24:O.key&&n.push(O.key),n.push(O.value),_t(n);break;case 34:var r=Object.keys(J);if(r.length>0){for(var a=0,o=r;a<o.length;a++){var i=o[a];n.push(i),n.push(J[i])}$(),_t(n,!1)}break;case 0:var u=Object.keys(z);if(u.length>0){for(var s=0,l=u;s<l.length;s++){var d=l[s],p=parseInt(d,10);n.push(p),n.push(Math.round(z[d]))}z={},_t(n,!1)}break;case 1:var f=Object.keys(Nt);if(f.length>0){for(var h=0,v=f;h<v.length;h++){var y=v[h];p=parseInt(y,10);n.push(p),n.push(Nt[y])}Lt(),_t(n,!1)}break;case 36:var b=Object.keys(m);if(b.length>0){for(var k=0,S=b;k<S.length;k++){var I=S[k];p=parseInt(I,10);n.push(p),n.push([].concat.apply([],m[I]))}_t(n,!1)}break;case 40:w.forEach((function(t){n.push(t);var e=[];for(var r in m[t]){var a=parseInt(r,10);e.push(a),e.push(m[t][r])}n.push(e)})),_t(n,!1);case 47:n.push(_.source),n.push(_.ad_Storage),n.push(_.analytics_Storage),_t(n)}}function jt(){gt={check:0}}function zt(t){if(0===gt.check){var n=gt.check;n=gn.sequence>=128?1:n,n=gn.pageNum>=128?7:n,n=c()>72e5?2:n,(n=t>10485760?2:n)!==gt.check&&Ct(n)}}function Ct(t){gt.check=t,5!==t&&(rn(),fe())}function At(){0!==gt.check&&xt(35)}function Pt(){gt=null}var qt=null,Nt=null,Dt=!1;function Rt(){qt={},Nt={},Dt=!1}function Ht(){qt={},Nt={},Dt=!1}function Ut(t,n){if(n&&(n="".concat(n),t in qt||(qt[t]=[]),qt[t].indexOf(n)<0)){if(qt[t].length>128)return void(Dt||(Dt=!0,Ct(5)));qt[t].push(n),t in Nt||(Nt[t]=[]),Nt[t].push(n)}}function Xt(){xt(1)}function Lt(){Nt={},Dt=!1}var Vt=null,Bt=[],Yt=0,Wt=null,Zt=null,Jt={ad_Storage:"denied",analytics_Storage:"denied"};function Gt(){var t,n,e;Wt=null;var r=navigator&&"userAgent"in navigator?navigator.userAgent:"",a=null!==(e=null===(n=null===(t=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===t?void 0:t.resolvedOptions())||void 0===n?void 0:n.timeZone)&&void 0!==e?e:"",i=(new Date).getTimezoneOffset().toString(),u=window.location.ancestorOrigins?Array.from(window.location.ancestorOrigins).toString():"",c=document&&document.title?document.title:"";Yt=r.indexOf("Electron")>0?1:0;var s=function(){var t={session:sn(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},n=pn("_clsk",!o.includeSubdomains);if(n){var e=n.includes("^")?n.split("^"):n.split("|");e.length>=5&&t.ts-ln(e[1])<18e5&&(t.session=e[0],t.count=ln(e[2])+1,t.upgrade=ln(e[3]),t.upload=e.length>=6?"".concat("https://").concat(e[5],"/").concat(e[4]):"".concat("https://").concat(e[4]))}return t}(),l=dn(),d=o.projectId||function(t,n){void 0===n&&(n=null);for(var e,r=5381,a=r,o=0;o<t.length;o+=2)r=(r<<5)+r^t.charCodeAt(o),o+1<t.length&&(a=(a<<5)+a^t.charCodeAt(o+1));return e=Math.abs(r+11579*a),(n?e%Math.pow(2,n):e).toString(36)}(location.host);Vt={projectId:d,userId:l.id,sessionId:s.session,pageNum:s.count},o.lean=o.track&&null!==s.upgrade?0===s.upgrade:o.lean,o.upload=o.track&&"string"==typeof o.upload&&s.upload&&s.upload.length>8?s.upload:o.upload,Ut(0,r),Ut(3,c),Ut(1,h(location.href,!!Yt)),Ut(2,document.referrer),Ut(15,function(){var t=sn();if(o.track&&un(window,"sessionStorage")){var n=sessionStorage.getItem("_cltk");t=n||t,sessionStorage.setItem("_cltk",t)}return t}()),Ut(16,document.documentElement.lang),Ut(17,document.dir),Ut(26,"".concat(window.devicePixelRatio)),Ut(28,l.dob.toString()),Ut(29,l.version.toString()),Ut(33,u),Ut(34,a),Ut(35,i),P(0,s.ts),P(1,0),P(35,Yt);var p,f=null===window||void 0===window?void 0:window.Zone;f&&"__symbol__"in f&&P(39,1),navigator&&(Ut(9,navigator.language),P(33,navigator.hardwareConcurrency),P(32,navigator.maxTouchPoints),P(34,Math.round(navigator.deviceMemory)),(p=navigator.userAgentData)&&p.getHighEntropyValues?p.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){var n;Ut(22,t.platform),Ut(23,t.platformVersion),null===(n=t.brands)||void 0===n||n.forEach((function(t){Ut(24,t.name+"~"+t.version)})),Ut(25,t.model),P(27,t.mobile?1:0)})):Ut(22,navigator.platform)),screen&&(P(14,Math.round(screen.width)),P(15,Math.round(screen.height)),P(16,Math.round(screen.colorDepth)));for(var v=0,g=o.cookies;v<g.length;v++){var m=g[v],y=pn(m);y&&G(m,y)}!function(t){M(t.analytics_Storage?1:0),_=t}(nn(Zt={ad_Storage:o.track?"granted":"denied",analytics_Storage:o.track?"granted":"denied"},0)),cn(l)}function Ft(){Wt=null,Vt=null,Zt=null,Bt.forEach((function(t){t.called=!1}))}function Kt(t,n,e,r){void 0===n&&(n=!0),void 0===e&&(e=!1),void 0===r&&(r=!1);var a=o.lean?0:1,i=!1;Vt&&(a||!1===n)&&(t(Vt,!o.lean,r?Zt:void 0),i=!0),!e&&i||Bt.push({callback:t,wait:n,recall:e,called:i,consentInfo:r})}function Qt(){return Vt?[Vt.userId,Vt.sessionId,Vt.pageNum].join("."):""}function $t(t){void 0===t&&(t=!0),t?(tn({ad_Storage:"granted",analytics_Storage:"granted"}),E()):tn()}function tn(t,n){void 0===t&&(t=Jt),void 0===n&&(n=1),Zt={ad_Storage:en(t.ad_Storage),analytics_Storage:en(t.analytics_Storage)},an(!0);var e=nn(Zt,n);if(!e.analytics_Storage)return o.track=!1,hn("_clsk","",-Number.MAX_VALUE),hn("_clck","",-Number.MAX_VALUE),fe(),void window.setTimeout(pe,250);Bn()&&(o.track=!0,cn(dn(),1),on(),function(t){_=t,xt(47)}(e),E())}function nn(t,n){return{source:n,ad_Storage:"granted"===t.ad_Storage?1:0,analytics_Storage:"granted"===t.analytics_Storage?1:0}}function en(t){return"string"==typeof t?t.toLowerCase():"denied"}function rn(){hn("_clsk","",0)}function an(t){void 0===t&&(t=!1),function(t,n){void 0===n&&(n=!1);if(Bt.length>0)for(var e=0;e<Bt.length;e++){var r=Bt[e];r.callback&&(!r.called&&!n||r.consentInfo&&n)&&(!r.wait||t)&&(r.callback(Vt,!o.lean,r.consentInfo?Zt:void 0),r.called=!0,r.recall||(Bt.splice(e,1),e--))}}(o.lean?0:1,t)}function on(){if(Vt&&o.track){var t=Math.round(Date.now()),n=o.upload&&"string"==typeof o.upload?o.upload.replace("https://",""):"",e=o.lean?0:1;hn("_clsk",[Vt.sessionId,t,Vt.pageNum,e,n].join("|"),1)}}function un(t,n){try{return!!t[n]}catch(t){return!1}}function cn(t,n){void 0===n&&(n=null),n=null===n?t.consent:n;var e=Math.ceil((Date.now()+31536e6)/864e5),r=0===t.dob?null===o.dob?0:o.dob:t.dob;(null===t.expiry||Math.abs(e-t.expiry)>=1||t.consent!==n||t.dob!==r)&&hn("_clck",[Vt.userId,2,e.toString(36),n,r].join("|"),365)}function sn(){var t=Math.floor(Math.random()*Math.pow(2,32));return window&&window.crypto&&window.crypto.getRandomValues&&Uint32Array&&(t=window.crypto.getRandomValues(new Uint32Array(1))[0]),t.toString(36)}function ln(t,n){return void 0===n&&(n=10),parseInt(t,n)}function dn(){var t={id:sn(),version:0,expiry:null,consent:0,dob:0},n=pn("_clck",!o.includeSubdomains);if(n&&n.length>0){var e=n.includes("^")?n.split("^"):n.split("|");e.length>1&&(t.version=ln(e[1])),e.length>2&&(t.expiry=ln(e[2],36)),e.length>3&&1===ln(e[3])&&(t.consent=1),e.length>4&&ln(e[1])>1&&(t.dob=ln(e[4])),o.track=o.track||1===t.consent,t.id=o.track?e[0]:t.id}return t}function pn(t,n){var e;if(void 0===n&&(n=!1),un(document,"cookie")){var r=document.cookie.split(";");if(r)for(var a=0;a<r.length;a++){var o=r[a].split("=");if(o.length>1&&o[0]&&o[0].trim()===t){for(var i=fn(o[1]),u=i[0],c=i[1];u;)u=(e=fn(c))[0],c=e[1];return n?c.endsWith("".concat("~","1"))?c.substring(0,c.length-2):null:c}}}return null}function fn(t){try{var n=decodeURIComponent(t);return[n!=t,n]}catch(t){}return[!1,t]}function hn(t,n,e){if((o.track||""==n)&&(navigator&&navigator.cookieEnabled||un(document,"cookie"))){var r=function(t){return encodeURIComponent(t)}(n),a=new Date;a.setDate(a.getDate()+e);var i=a?"expires="+a.toUTCString():"",u="".concat(t,"=").concat(r).concat(";").concat(i).concat(";path=/");try{if(null===Wt){for(var c=location.hostname?location.hostname.split("."):[],s=c.length-1;s>=0;s--)if(Wt=".".concat(c[s]).concat(Wt||""),s<c.length-1&&(document.cookie="".concat(u).concat(";").concat("domain=").concat(Wt),pn(t)===n))return;Wt=""}}catch(t){Wt=""}document.cookie=Wt?"".concat(u).concat(";").concat("domain=").concat(Wt):u}}var vn,gn=null;function mn(){var t=Vt;gn={version:s,sequence:0,start:0,duration:0,projectId:t.projectId,userId:t.userId,sessionId:t.sessionId,pageNum:t.pageNum,upload:0,end:0,applicationPlatform:0,url:""}}function yn(){gn=null}function wn(t){return gn.start=gn.start+gn.duration,gn.duration=c()-gn.start,gn.sequence++,gn.upload=t&&"sendBeacon"in navigator?1:0,gn.end=t?1:0,gn.applicationPlatform=0,gn.url=h(location.href,!1,!0),[gn.version,gn.sequence,gn.start,gn.duration,gn.projectId,gn.userId,gn.sessionId,gn.pageNum,gn.upload,gn.end,gn.applicationPlatform,gn.url]}function bn(){vn=[]}function kn(t){if(vn&&-1===vn.indexOf(t.message)){var n=o.report;if(n&&n.length>0&&gn){var e={v:gn.version,p:gn.projectId,u:gn.userId,s:gn.sessionId,n:gn.pageNum};t.message&&(e.m=t.message),t.stack&&(e.e=t.stack);var r=new XMLHttpRequest;r.open("POST",n,!0),r.send(JSON.stringify(e)),vn.push(t.message)}}return t}function Sn(t){return function(){var n=performance.now();try{t.apply(this,arguments)}catch(t){throw kn(t)}var e=performance.now()-n;A(4,e),e>30&&(C(7),P(6,e),"".concat(t.dn||t.name,"-").concat(e))}}var _n=new Map;function In(t,n,e,r,a){void 0===r&&(r=!1),void 0===a&&(a=!0),e=Sn(e);try{t[i("addEventListener")](n,e,{capture:r,passive:a}),function(t){return _n.has(t)}(t)||_n.set(t,[]),_n.get(t).push({event:n,listener:e,options:{capture:r,passive:a}})}catch(t){}}function En(){_n.forEach((function(t,n){!function(t,n){t.forEach((function(t){try{n[i("removeEventListener")](t.event,t.listener,{capture:t.options.capture,passive:t.options.passive})}catch(t){}})),_n.delete(n)}(t,n)})),_n=new Map}var Mn=null,On=null,Tn=null,xn=0;function jn(){return!(xn++>20)}function zn(){zn.dn=1,xn=0,Tn!==An()&&(fe(),window.setTimeout(Cn,250))}function Cn(){pe(),P(29,1)}function An(){return location.href?location.href.replace(location.hash,""):location.href}var Pn=[],qn=null,Nn=null,Dn=null;function Rn(){Nn&&(Dn(),Nn=null,null===qn&&Un())}function Hn(){Pn=[],qn=null,Nn=null}function Un(){var t=Pn.shift();t&&(qn=t,t.task().then((function(){t.id===Qt()&&(t.resolve(),qn=null,Un())})).catch((function(n){t.id===Qt()&&(n&&(n.name,n.message,n.stack),qn=null,Un())})))}var Xn=!1;function Ln(){Xn=!0,u=performance.now()+performance.timeOrigin,Hn(),En(),bn(),Tn=An(),xn=0,In(window,"popstate",zn),null===Mn&&(Mn=history.pushState,history.pushState=function(){Mn.apply(this,arguments),Bn()&&jn()&&zn()}),null===On&&(On=history.replaceState,history.replaceState=function(){On.apply(this,arguments),Bn()&&jn()&&zn()})}function Vn(){Tn=null,xn=0,bn(),En(),Hn(),u=0,Xn=!1}function Bn(){return Xn}function Yn(){Yn.dn=2,pe(),T("clarity","restart")}var Wn=null;function Zn(){Wn=null}function Jn(t){Wn={fetchStart:Math.round(t.fetchStart),connectStart:Math.round(t.connectStart),connectEnd:Math.round(t.connectEnd),requestStart:Math.round(t.requestStart),responseStart:Math.round(t.responseStart),responseEnd:Math.round(t.responseEnd),domInteractive:Math.round(t.domInteractive),domComplete:Math.round(t.domComplete),loadEventStart:Math.round(t.loadEventStart),loadEventEnd:Math.round(t.loadEventEnd),redirectCount:Math.round(t.redirectCount),size:t.transferSize?t.transferSize:0,type:t.type,protocol:t.nextHopProtocol,encodedSize:t.encodedBodySize?t.encodedBodySize:0,decodedSize:t.decodedBodySize?t.decodedBodySize:0},function(t){W(this,void 0,void 0,(function(){var n,e;return Z(this,(function(r){return n=c(),e=[n,t],29===t&&(e.push(Wn.fetchStart),e.push(Wn.connectStart),e.push(Wn.connectEnd),e.push(Wn.requestStart),e.push(Wn.responseStart),e.push(Wn.responseEnd),e.push(Wn.domInteractive),e.push(Wn.domComplete),e.push(Wn.loadEventStart),e.push(Wn.loadEventEnd),e.push(Wn.redirectCount),e.push(Wn.size),e.push(Wn.type),e.push(Wn.protocol),e.push(Wn.encodedSize),e.push(Wn.decodedSize),Zn(),_t(e)),[2]}))}))}(29)}var Gn,Fn=0,Kn=1/0,Qn=0,$n=0,te=[],ne=new Map,ee=function(){return Fn||0},re=function(){if(!te.length)return-1;var t=Math.min(te.length-1,Math.floor((ee()-$n)/50));return te[t].latency},ae=function(t){if(t.interactionId&&!(t.duration<40)){!function(t){"interactionCount"in performance?Fn=performance.interactionCount:t.interactionId&&(Kn=Math.min(Kn,t.interactionId),Qn=Math.max(Qn,t.interactionId),Fn=Qn?(Qn-Kn)/7+1:0)}(t);var n=te[te.length-1],e=ne.get(t.interactionId);if(e||te.length<10||t.duration>(null==n?void 0:n.latency)){if(e)t.duration>e.latency&&(e.latency=t.duration);else{var r={id:t.interactionId,latency:t.duration};ne.set(r.id,r),te.push(r)}te.sort((function(t,n){return n.latency-t.latency})),te.length>10&&te.splice(10).forEach((function(t){return ne.delete(t.id)}))}}},oe=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint","event"];function ie(){ie.dn=26;try{Gn&&Gn.disconnect(),Gn=new PerformanceObserver(Sn(ue));for(var t=0,n=oe;t<n.length;t++){var e=n[t];PerformanceObserver.supportedEntryTypes.indexOf(e)>=0&&("layout-shift"===e&&A(9,0),Gn.observe({type:e,buffered:!0}))}}catch(t){}}function ue(t){ue.dn=27,function(t){for(var n=(!("visibilityState"in document)||"visible"===document.visibilityState),e=0;e<t.length;e++){var r=t[e];switch(r.entryType){case"navigation":Jn(r);break;case"resource":var a=r.name;Ut(4,se(a)),a!==o.upload&&a!==o.fallback||P(28,r.duration);break;case"longtask":C(7);break;case"first-input":n&&P(10,r.processingStart-r.startTime);break;case"event":n&&"PerformanceEventTiming"in window&&"interactionId"in PerformanceEventTiming.prototype&&(ae(r),Ut(37,re().toString()));break;case"layout-shift":n&&!r.hadRecentInput&&A(9,1e3*r.value);break;case"largest-contentful-paint":n&&P(8,r.startTime)}}}(t.getEntries())}function ce(){Gn&&Gn.disconnect(),Gn=null,$n=ee(),te.length=0,ne.clear()}function se(t){var n=document.createElement("a");return n.href=t,n.host}var le=Object.freeze({__proto__:null,start:function t(){t.dn=25,Zn(),function(){navigator&&"connection"in navigator&&Ut(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?In(window,"load",q.bind(this,ie,0)):ie())}()},stop:function(){ce(),Zn()}}),de=[S,S,S,le];function pe(t){void 0===t&&(t=null),function(){try{var t=navigator&&"globalPrivacyControl"in navigator&&1==navigator.globalPrivacyControl;return!1===Xn&&"undefined"!=typeof Promise&&window.MutationObserver&&document.createTreeWalker&&"now"in Date&&"now"in performance&&"undefined"!=typeof WeakMap&&!t}catch(t){return!1}}()&&(!function(t){if(null===t||Xn)return!1;for(var n in t)n in o&&(o[n]=t[n])}(t),Ln(),ct(),de.forEach((function(t){return Sn(t.start)()})),null===t&&me())}function fe(){Bn()&&(de.slice().reverse().forEach((function(t){return Sn(t.stop)()})),st(),Vn(),void 0!==ve&&(ve[ge]=function(){(ve[ge].q=ve[ge].q||[]).push(arguments),"start"===arguments[0]&&ve[ge].q.unshift(ve[ge].q.pop())&&me()}))}var he=Object.freeze({__proto__:null,consent:$t,consentv2:tn,event:T,hashText:b,identify:F,metadata:Kt,pause:function(){Bn()&&(T("clarity","pause"),null===Nn&&(Nn=new Promise((function(t){Dn=t}))))},resume:function(){Bn()&&(Rn(),T("clarity","resume"))},set:G,signal:function(t){ot=t},start:pe,stop:fe,upgrade:B,version:s}),ve=window,ge="clarity";function me(){if(void 0!==ve){if(ve[ge]&&ve[ge].v)return console.warn("Error CL001: Multiple Clarity tags detected.");var t=ve[ge]&&ve[ge].q||[];for(ve[ge]=function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return he[t].apply(he,n)},ve[ge].v=s;t.length>0;)ve[ge].apply(ve,t.shift())}}me()}();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clarity-js",
3
- "version": "0.8.13-beta",
3
+ "version": "0.8.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",
package/src/clarity.ts CHANGED
@@ -11,7 +11,7 @@ import * as interaction from "@src/interaction";
11
11
  import * as layout from "@src/layout";
12
12
  import * as performance from "@src/performance";
13
13
  export { version };
14
- export { consent, event, identify, set, upgrade, metadata, signal } from "@src/data";
14
+ export { consent, consentv2, event, identify, set, upgrade, metadata, signal } from "@src/data";
15
15
  export { hashText } from "@src/layout";
16
16
 
17
17
  const modules: Module[] = [diagnostic, layout, interaction, performance];
@@ -13,13 +13,9 @@ export function report(e: Error): Error {
13
13
  if (history && history.indexOf(e.message) === -1) {
14
14
  const url = config.report;
15
15
  if (url && url.length > 0 && data) {
16
- const payload: Report = { v: data.version, p: data.projectId, u: data.userId, s: data.sessionId, n: data.pageNum };
17
- if (e.message) {
18
- payload.m = e.message;
19
- }
20
- if (e.stack) {
21
- payload.e = e.stack;
22
- }
16
+ let payload: Report = {v: data.version, p: data.projectId, u: data.userId, s: data.sessionId, n: data.pageNum};
17
+ if (e.message) { payload.m = e.message; }
18
+ if (e.stack) { payload.e = e.stack; }
23
19
  // Using POST request instead of a GET request (img-src) to not violate existing CSP rules
24
20
  // Since, Clarity already uses XHR to upload data, we stick with similar POST mechanism for reporting too
25
21
  let xhr = new XMLHttpRequest();
package/src/core/scrub.ts CHANGED
@@ -41,7 +41,13 @@ export function text(value: string, hint: string, privacy: Privacy, mangle: bool
41
41
  case "srcset":
42
42
  case "title":
43
43
  case "alt":
44
- return privacy === Privacy.TextImage ? Data.Constant.Empty : value;
44
+ if (privacy === Privacy.TextImage) {
45
+ if (hint === 'src' && value?.startsWith('blob:')) {
46
+ return 'blob:';
47
+ }
48
+ return Data.Constant.Empty;
49
+ }
50
+ return value;
45
51
  case "value":
46
52
  case "click":
47
53
  case "input":
@@ -1,2 +1,2 @@
1
- let version = "0.8.13-beta";
1
+ let version = "0.8.14";
2
2
  export default version;
@@ -1,5 +1,9 @@
1
- import { Dimension } from "@clarity-types/data";
1
+ import { ConsentData, Dimension, Event } from "@clarity-types/data";
2
2
  import * as dimension from "@src/data/dimension";
3
+ import encode from "./encode";
4
+
5
+ export let data: ConsentData = null;
6
+ let updateConsent: boolean = true;
3
7
 
4
8
  const enum ConsentType {
5
9
  None = 0,
@@ -7,8 +11,9 @@ const enum ConsentType {
7
11
  General = 2
8
12
  }
9
13
 
10
- export function config(track: boolean): void {
11
- trackConsent(track ? ConsentType.Implicit : ConsentType.None);
14
+ export function config(consent: ConsentData): void {
15
+ trackConsent(consent.analytics_Storage ? ConsentType.Implicit : ConsentType.None);
16
+ data = consent;
12
17
  }
13
18
 
14
19
  // When we get consent signal as false, we restart the service and track config as false.
@@ -18,4 +23,17 @@ export function consent(): void {
18
23
 
19
24
  function trackConsent(consent: ConsentType): void {
20
25
  dimension.log(Dimension.Consent, consent.toString());
26
+ }
27
+
28
+ export function consentv2(consent: ConsentData): void {
29
+ data = consent;
30
+ encode(Event.Consent);
31
+ }
32
+
33
+ // Compute function is called every upload, but we only want to send consent data once.
34
+ export function compute(): void {
35
+ if (updateConsent) {
36
+ encode(Event.Consent);
37
+ updateConsent = false;
38
+ }
21
39
  }
@@ -1,6 +1,7 @@
1
1
  import { Event, Token } from "@clarity-types/data";
2
2
  import { time } from "@src/core/time";
3
3
  import * as baseline from "@src/data/baseline";
4
+ import * as consent from "@src/data/consent";
4
5
  import * as custom from "@src/data/custom";
5
6
  import * as dimension from "@src/data/dimension";
6
7
  import * as limit from "@src/data/limit";
@@ -136,5 +137,12 @@ export default function(event: Event): void {
136
137
 
137
138
  extract.reset();
138
139
  queue(tokens, false);
140
+
141
+ case Event.Consent:
142
+ tokens.push(consent.data.source);
143
+ tokens.push(consent.data.ad_Storage);
144
+ tokens.push(consent.data.analytics_Storage);
145
+ queue(tokens);
146
+ break;
139
147
  }
140
148
  }
package/src/data/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import measure from "@src/core/measure";
2
2
  import * as baseline from "@src/data/baseline";
3
+ import * as consent from "@src/data/consent";
3
4
  import * as envelope from "@src/data/envelope";
4
5
  import * as dimension from "@src/data/dimension";
5
6
  import * as metadata from "@src/data/metadata";
@@ -13,7 +14,7 @@ import * as upload from "@src/data/upload";
13
14
  import * as variable from "@src/data/variable";
14
15
  import * as extract from "@src/data/extract";
15
16
  export { event } from "@src/data/custom";
16
- export { consent, metadata } from "@src/data/metadata";
17
+ export { consent, consentv2, metadata } from "@src/data/metadata";
17
18
  export { upgrade } from "@src/data/upgrade";
18
19
  export { set, identify } from "@src/data/variable";
19
20
  export { signal } from "@src/data/signal";
@@ -43,4 +44,5 @@ export function compute(): void {
43
44
  summary.compute();
44
45
  limit.compute();
45
46
  extract.compute();
47
+ consent.compute();
46
48
  }