clarity-visualize 0.7.2 → 0.7.4

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,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  /******************************************************************************
6
4
  Copyright (c) Microsoft Corporation.
7
5
 
@@ -33,7 +31,7 @@ function __generator(thisArg, body) {
33
31
  function verb(n) { return function (v) { return step([n, v]); }; }
34
32
  function step(op) {
35
33
  if (f) throw new TypeError("Generator is already executing.");
36
- while (_) try {
34
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
37
35
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
38
36
  if (y = 0, t) op = [op[0] & 2, t.value];
39
37
  switch (op[0]) {
@@ -100,7 +98,7 @@ var DataHelper = /** @class */ (function () {
100
98
  // Append region information to metadata
101
99
  for (var name_1 in _this.regions) {
102
100
  var r = _this.regions[name_1];
103
- var className = (r.visibility === 10 /* Layout.RegionVisibility.Visible */ ? "visible" : (r.interaction === 20 /* Layout.Interaction.Clicked */ ? "clicked" : "" /* Data.Constant.Empty */));
101
+ var className = (r.visibility === 10 /* Layout.RegionVisibility.Visible */ ? "visible" : (r.interaction === 20 /* Layout.InteractionState.Clicked */ ? "clicked" : "" /* Data.Constant.Empty */));
104
102
  regionMarkup.push("<span class=\"".concat(className, "\">").concat(name_1, "</span>"));
105
103
  }
106
104
  _this.state.options.metadata.innerHTML = "<ul>".concat(metricMarkup.join("" /* Data.Constant.Empty */), "</ul><div>").concat(regionMarkup.join("" /* Data.Constant.Empty */), "</div>");
@@ -261,8 +259,8 @@ function filter(value) {
261
259
 
262
260
  var selector = /*#__PURE__*/Object.freeze({
263
261
  __proto__: null,
264
- reset: reset$l,
265
- get: get$1
262
+ get: get$1,
263
+ reset: reset$l
266
264
  });
267
265
 
268
266
  var index = 1;
@@ -1335,7 +1333,8 @@ var LayoutHelper = /** @class */ (function () {
1335
1333
  if (_this.events[data.id] && _this.events[data.id].parent === data.parent && _this.events[data.id].previous === data.previous) {
1336
1334
  return;
1337
1335
  }
1338
- var next = previous && previous.parentElement === parent ? previous.nextSibling : null;
1336
+ // In case parent is a Shadow DOM, previous.parentElement will return null but previous.parentNode will return a valid node
1337
+ var next = previous && (previous.parentElement === parent || previous.parentNode === parent) ? previous.nextSibling : null;
1339
1338
  next = previous === null && parent ? _this.firstChild(parent) : next;
1340
1339
  _this.insertBefore(data, parent, node, next);
1341
1340
  };
@@ -1349,7 +1348,8 @@ var LayoutHelper = /** @class */ (function () {
1349
1348
  };
1350
1349
  this.insertBefore = function (data, parent, node, next) {
1351
1350
  if (parent !== null) {
1352
- next = next && next.parentElement !== parent ? null : next;
1351
+ // Compare against both parentNode and parentElement to ensure visualization works correctly for shadow DOMs
1352
+ next = next && (next.parentElement !== parent && next.parentNode !== parent) ? null : next;
1353
1353
  try {
1354
1354
  parent.insertBefore(node, next);
1355
1355
  }
@@ -1361,6 +1361,9 @@ var LayoutHelper = /** @class */ (function () {
1361
1361
  else if (parent === null && node.parentElement !== null) {
1362
1362
  node.parentElement.removeChild(node);
1363
1363
  }
1364
+ else if (parent === null && node.parentNode !== null) {
1365
+ node.parentNode.removeChild(node);
1366
+ }
1364
1367
  _this.nodes[data.id] = node;
1365
1368
  _this.addToHashMap(data, node);
1366
1369
  };
@@ -1701,17 +1704,17 @@ var state = (_a = new Visualizer(), _a.state), dom = _a.dom, get = _a.get, html
1701
1704
 
1702
1705
  var clarity = /*#__PURE__*/Object.freeze({
1703
1706
  __proto__: null,
1704
- state: state,
1707
+ clearmap: clearmap,
1708
+ clickmap: clickmap,
1705
1709
  dom: dom,
1706
1710
  get: get,
1707
1711
  html: html,
1708
- time: time,
1709
- clickmap: clickmap,
1710
- clearmap: clearmap,
1711
- scrollmap: scrollmap,
1712
1712
  merge: merge,
1713
+ render: render,
1714
+ scrollmap: scrollmap,
1713
1715
  setup: setup,
1714
- render: render
1716
+ state: state,
1717
+ time: time
1715
1718
  });
1716
1719
 
1717
1720
  exports.Visualizer = Visualizer;
@@ -1 +1 @@
1
- !function(){"use strict";function t(t,e,n,a){return new(n||(n=Promise))((function(i,r){function o(t){try{c(a.next(t))}catch(t){r(t)}}function s(t){try{c(a.throw(t))}catch(t){r(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(o,s)}c((a=a.apply(t,e||[])).next())}))}function e(t,e){var n,a,i,r,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return r={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function s(r){return function(s){return function(r){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,a&&(i=2&r[0]?a.return:r[0]?a.throw||((i=a.return)&&i.call(a),0):a.next)&&!(i=i.call(a,r[1])).done)return i;switch(a=0,i&&(r=[2&r[0],i.value]),r[0]){case 0:case 1:i=r;break;case 4:return o.label++,{value:r[1],done:!1};case 5:o.label++,a=r[1],r=[0];continue;case 7:r=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==r[0]&&2!==r[0])){o=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3])){o.label=r[1];break}if(6===r[0]&&o.label<i[1]){o.label=i[1],i=r;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(r);break}i[2]&&o.ops.pop(),o.trys.pop();continue}r=e.call(t,o)}catch(t){r=[6,t],a=0}finally{n=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,s])}}}var n,a=function(){function t(e){var n=this;this.regionMap={},this.regions={},this.metrics={},this.lean=!1,this.reset=function(){n.metrics={},n.lean=!1,n.regions={},n.regionMap={}},this.metric=function(e){if(n.state.options.metadata){var a=[],i=[];for(var r in e.data)if("number"==typeof e.data[r]){r in n.metrics||(n.metrics[r]=0);var o=parseInt(r,10);!(r in t.METRIC_MAP)||"html-price"!==t.METRIC_MAP[r].unit&&"ld-price"!==t.METRIC_MAP[r].unit?n.metrics[r]+=e.data[r]:n.metrics[r]=e.data[r],n.lean=1===o&&0===e.data[r]||n.lean}for(var s in n.metrics)if(s in t.METRIC_MAP){r=n.metrics[s];var c=t.METRIC_MAP[s],l="unit"in c?c.unit:"";a.push("<li><h2>".concat(n.value(r,l),"<span>").concat(n.key(l),"</span></h2>").concat(c.name,"</li>"))}for(var A in n.regions){var u=n.regions[A],d=10===u.visibility?"visible":20===u.interaction?"clicked":"";i.push('<span class="'.concat(d,'">').concat(A,"</span>"))}n.state.options.metadata.innerHTML="<ul>".concat(a.join(""),"</ul><div>").concat(i.join(""),"</div>")}},this.key=function(t){switch(t){case"html-price":case"ld-price":case"cls":return"";default:return t}},this.value=function(t,e){switch(e){case"KB":return Math.round(t/1024);case"s":return Math.round(t/10)/100;case"cls":return t/1e3;case"html-price":return t/100;default:return t}},this.state=e}return t.prototype.region=function(t){for(var e=0,n=t.data;e<n.length;e++){var a=n[e];a.name in this.regions||(this.regions[a.name]={interaction:a.interaction,visibility:a.visibility}),this.regionMap[a.id]=a.name}},t.METRIC_MAP=((n={})[2]={name:"Total Bytes",unit:"KB"},n[4]={name:"Total Cost",unit:"ms"},n[3]={name:"Layout Cost",unit:"ms"},n[8]={name:"LCP",unit:"s"},n[9]={name:"CLS",unit:"cls"},n[7]={name:"Long Tasks"},n[24]={name:"Cart Total",unit:"html-price"},n[13]={name:"Product Price",unit:"ld-price"},n[6]={name:"Thread Blocked",unit:"ms"},n),t}();var i="load,active,fixed,visible,focus,show,collaps,animat".split(","),r={};function o(t){if(!t)return!1;if(i.some((function(e){return t.toLowerCase().indexOf(e)>=0})))return!1;for(var e=0;e<t.length;e++){var n=t.charCodeAt(e);if(n>=48&&n<=57)return!1}return!0}var s=1,c=[],l=[],A={};var u,d={hash:function(t,e){void 0===e&&(e=null);for(var n,a=5381,i=a,r=0;r<t.length;r+=2){if(a=(a<<5)+a^t.charCodeAt(r),r+1<t.length)i=(i<<5)+i^t.charCodeAt(r+1)}return n=Math.abs(a+11579*i),(e?n%Math.pow(2,e):n).toString(36)},selector:Object.freeze({__proto__:null,reset:function(){r={}},get:function(t,e){var n=t.attributes,a=t.prefix?t.prefix[e]:null,i=0===e?"".concat("~").concat(t.position-1):":nth-of-type(".concat(t.position,")");switch(t.tag){case"STYLE":case"TITLE":case"LINK":case"META":case"*T":case"*D":return"";case"HTML":return"HTML";default:if(null===a)return"";a="".concat(a).concat(">"),t.tag=0===t.tag.indexOf("svg:")?t.tag.substr("svg:".length):t.tag;var s="".concat(a).concat(t.tag).concat(i),c="id"in n&&n.id.length>0?n.id:null,l="BODY"!==t.tag&&"class"in n&&n.class.length>0?n.class.trim().split(/\s+/).filter((function(t){return o(t)})).join("."):null;if(l&&l.length>0)if(0===e){var A="".concat(function(t){for(var e=t.split(">"),n=0;n<e.length;n++){var a=e[n].indexOf("~"),i=e[n].indexOf(".");e[n]=e[n].substring(0,i>0?i:a>0?a:e[n].length)}return e.join(">")}(a)).concat(t.tag).concat(".").concat(l);A in r||(r[A]=[]),r[A].indexOf(t.id)<0&&r[A].push(t.id),s="".concat(A).concat("~").concat(r[A].indexOf(t.id))}else s="".concat(a).concat(t.tag,".").concat(l).concat(i);return s=c&&o(c)?"".concat(function(t){var e=t.lastIndexOf("*S"),n=t.lastIndexOf("".concat("iframe:").concat("HTML")),a=Math.max(e,n);if(a<0)return"";return t.substring(0,t.indexOf(">",a)+1)}(a)).concat("#").concat(c):s,s}}}),get:function(t){var e=function(t,e){if(void 0===e&&(e=!1),null===t)return null;var n=null.get(t);return!n&&e&&(n=s++,null.set(t,n)),n||null}(t);return e in l?l[e]:null},getNode:function(t){return t in c?c[t]:null},lookup:function(t){return t in A?A[t]:null}},h=function(){var t=this;this.reset=function(){t.children={},t.nodes={},d.selector.reset()},this.selectors=function(e){return e.data.forEach((function(e){var n=t.nodes[e.parent],a=t.children[e.parent]||[],i=t.nodes[e.id]||{tag:e.tag,parent:e.parent,previous:e.previous},r=e.attributes||{};if(i.parent!==e.parent){var o=null===e.previous?0:a.indexOf(e.previous)+1;if(a.splice(o,0,e.id),i.parent!==e.parent){var s=t.children[i.parent],c=s?s.indexOf(e.id):-1;c>=0&&t.children[i.parent].splice(c,1)}i.parent=e.parent}else a.indexOf(e.id)<0&&a.push(e.id);i.position=t.position(e.id,e.tag,i,a,a.map((function(e){return t.nodes[e]})));var l={id:e.id,tag:e.tag,prefix:n?[n.alpha,n.beta]:null,position:i.position,attributes:r},A=d.selector.get(l,0);e.selectorAlpha=A.length>0?A:null,e.hashAlpha=A.length>0?d.hash(e.selectorAlpha):null;var u=d.selector.get(l,1);e.selectorBeta=u.length>0?u:null,e.hashBeta=u.length>0?d.hash(e.selectorBeta):null,i.alpha=A,i.beta=u,t.nodes[e.id]=i,e.parent&&(t.children[e.parent]=a)})),e},this.position=function(t,e,n,a,i){n.position=1;for(var r=a?a.indexOf(t):-1;r-- >0;)if(e===i[r].tag){n.position=i[r].position+1;break}return n.position},this.reset()},f=function(){function t(e,n){var a=this;this.data=null,this.scrollData=null,this.max=null,this.offscreenRing=null,this.gradientPixels=null,this.timeout=null,this.observer=null,this.state=null,this.layout=null,this.scrollAvgFold=null,this.addScrollMakers=!1,this.reset=function(){if(a.data=null,a.scrollData=null,a.max=null,a.offscreenRing=null,a.gradientPixels=null,a.timeout=null,a.observer&&(a.observer.disconnect(),a.observer=null),a.state&&a.state.window){var t=a.state.window;t.removeEventListener("scroll",a.redraw,!0),t.removeEventListener("resize",a.redraw,!0)}},this.clear=function(){var t=a.state.window.document,e=a.state.window,n=t.getElementById("clarity-heatmap-canvas"),i=t.documentElement;n&&(n.width=i.clientWidth,n.height=i.clientHeight,n.style.left=e.pageXOffset+"px",n.style.top=e.pageYOffset+"px",n.getContext("2d").clearRect(0,0,n.width,n.height)),a.reset()},this.scroll=function(t,e,n){a.scrollData=a.scrollData||t,a.scrollAvgFold=null!=e?e:a.scrollAvgFold,a.addScrollMakers=null!=n?n:a.addScrollMakers;var i=a.overlay(),r=i.getContext("2d"),o=a.state.window.document,s=o.body,c=o.documentElement,l=Math.max(s.scrollHeight,s.offsetHeight,c.clientHeight,c.scrollHeight,c.offsetHeight);if(i.height=Math.min(l,4e4),i.style.top="0px",i.width>0&&i.height>0&&a.scrollData){for(var A=r.createLinearGradient(0,0,0,i.height),u=0,d=a.scrollData;u<d.length;u++){var h=d[u],f=1-h.cumulativeSum/a.scrollData[0].cumulativeSum,m=h.scrollReachY/100*(l/i.height),p=240*f;m<=1&&A.addColorStop(m,"hsla(".concat(p,", 100%, 50%, 0.6)"))}r.fillStyle=A,r.fillRect(0,0,i.width,i.height),a.addScrollMakers&&a.addInfoMarkers(r,a.scrollData,i.width,i.height,a.scrollAvgFold)}},this.addInfoMarkers=function(t,e,n,i,r){a.addMarker(t,n,"Average Fold",r,84);for(var o=function(r){var o=e.reduce((function(t,e){return Math.abs(e.percUsers-r)<Math.abs(t.percUsers-r)?e:t}));if(o.percUsers>=r-2&&o.percUsers<=r+2){var s=o.scrollReachY/100*i;a.addMarker(t,n,"".concat(r,"%"),s,35)}},s=0,c=[75,50,25];s<c.length;s++){o(c[s])}},this.addMarker=function(t,e,n,a,i){t.beginPath(),t.moveTo(0,a),t.lineTo(e,a),t.setLineDash([2,2]),t.lineWidth=1,t.strokeStyle="white",t.stroke(),t.fillStyle="#323130",t.fillRect(0,a-16,i,32),t.fillStyle="white",t.font="500 12px Segoe UI",t.fillText(n,5,a+5)},this.click=function(t){a.data=a.data||t;var e=a.transform(),n=a.overlay(),i=n.getContext("2d");if(n.width>0&&n.height>0){for(var r=a.getRing(),o=a.getGradient(),s=0,c=e;s<c.length;s++){var l=c[s];i.globalAlpha=l.a,i.drawImage(r,l.x-20,l.y-20)}for(var A=i.getImageData(0,0,n.width,n.height),u=0;u<A.data.length;u+=4){var d=A.data[u+3];if(d>0){var h=4*(d-1);A.data[u]=o.data[h],A.data[u+1]=o.data[h+1],A.data[u+2]=o.data[h+2]}}i.putImageData(A,0,0)}},this.overlay=function(){var t=a.state.window.document,e=a.state.window,n=t.documentElement,i=t.getElementById("clarity-heatmap-canvas");return null===i&&((i=t.createElement("CANVAS")).id="clarity-heatmap-canvas",i.width=0,i.height=0,i.style.position="absolute",i.style.zIndex="".concat(2147483647),n.appendChild(i),e.addEventListener("scroll",a.redraw,!0),e.addEventListener("resize",a.redraw,!0),a.observer=a.state.window.ResizeObserver?new ResizeObserver(a.redraw):null,a.observer&&a.observer.observe(t.body)),i.width=n.clientWidth,i.height=n.clientHeight,i.style.left=e.pageXOffset+"px",i.style.top=e.pageYOffset+"px",i.getContext("2d").clearRect(0,0,i.width,i.height),i},this.getRing=function(){if(null===a.offscreenRing){var t=a.state.window.document;a.offscreenRing=t.createElement("CANVAS"),a.offscreenRing.width=40,a.offscreenRing.height=40;var e=a.offscreenRing.getContext("2d");e.shadowOffsetX=40,e.shadowBlur=10,e.shadowColor="black",e.beginPath(),e.arc(-20,20,10,0,2*Math.PI,!0),e.closePath(),e.fill()}return a.offscreenRing},this.getGradient=function(){if(null===a.gradientPixels){var e=a.state.window.document.createElement("CANVAS");e.width=1,e.height=256;for(var n=e.getContext("2d"),i=n.createLinearGradient(0,0,0,256),r=1/t.COLORS.length,o=0;o<t.COLORS.length;o++)i.addColorStop(r*(o+1),t.COLORS[o]);n.fillStyle=i,n.fillRect(0,0,1,256),a.gradientPixels=n.getImageData(0,0,1,256)}return a.gradientPixels},this.redraw=function(t){a.data?(a.timeout&&clearTimeout(a.timeout),a.timeout=setTimeout(a.click,30)):a.scrollData&&"scroll"!=t.type&&(a.timeout&&clearTimeout(a.timeout),a.timeout=setTimeout(a.scroll,30))},this.transform=function(){for(var t=[],e={},n=0,i=a.state.window&&a.state.window.document?a.state.window.document.documentElement.clientHeight:0,r=0,o=a.data;r<o.length;r++){var s=o[r],c=a.layout.get(s.hash);if(c&&"function"==typeof c.getBoundingClientRect){var l=c.getBoundingClientRect(),A=a.visible(c,l,i);if(null===a.max||A)for(var u=0;u<s.points;u++){var d=Math.round(l.left+s.x[u]/32767*l.width),h=Math.round(l.top+s.y[u]/32767*l.height),f="".concat(d).concat("X").concat(h).concat("X").concat(A?1:0);e[f]=f in e?e[f]+s.clicks[u]:s.clicks[u],n=Math.max(e[f],n)}}}a.max=a.max?a.max:n;for(var m=0,p=Object.keys(e);m<p.length;m++){var g=p[m],v=g.split("X"),w=Math.min(e[g]/a.max+.15,1);"1"===v[2]&&t.push({x:parseInt(v[0],10),y:parseInt(v[1],10),a:w})}return t},this.visible=function(t,e,n){var i=a.state.window.document,r=e.height>n;if(!1===r&&e.width>0&&e.height>0)for(;!r&&i;){for(var o=null,s=0,c=i.elementsFromPoint(e.left+e.width/2,e.top+e.height/2);s<c.length;s++){var l=c[s];if(!("CANVAS"===l.tagName||l.id&&0===l.id.indexOf("clarity-"))){r=l===t,o=l.shadowRoot&&l.shadowRoot!=i?l.shadowRoot:null;break}}i=o}return r&&e.bottom>=0&&e.top<=n},this.state=e,this.layout=n}return t.COLORS=["blue","cyan","lime","yellow","red"],t}(),m=function(){function t(e,n){var a=this;this.hoverId=null,this.targetId=null,this.points=[],this.scrollPointIndex=0,this.clickAudio=null,this.reset=function(){a.points=[],a.scrollPointIndex=0,a.clickAudio=null,a.hoverId=null,a.targetId=null,a.layout.reset()},this.scroll=function(t){var e=t.data,n=a.state.window.document,i=n.documentElement,r=a.layout.element(e.target)||n.body,o=r.scrollHeight>r.clientHeight||r.scrollWidth>r.clientWidth;if(r&&o&&(r.scrollTo(e.x,e.y),r===i&&r.offsetTop!==e.y&&(r=n.body).scrollTo(e.x,e.y)),r===i||r===n.body){o||a.state.window.scrollTo(e.x,e.y);var s=a.overlay();s&&(s.style.left=e.x+"px",s.style.top=e.y+"px",s.width=i.clientWidth,s.height=i.clientHeight),a.scrollPointIndex=a.points.length}},this.resize=function(t){var e=t.data,n=e.width,i=e.height;a.state.options.onresize&&a.state.options.onresize(n,i)},this.visibility=function(t){var e=a.state.window.document;e&&e.documentElement&&"visible"!==t.data.visible?(e.documentElement.style.backgroundColor="black",e.documentElement.style.opacity="0.4"):(e.documentElement.style.backgroundColor="transparent",e.documentElement.style.opacity="1")},this.input=function(t){var e=t.data,n=a.layout.element(e.target);if(n)switch(n.type){case"checkbox":case"radio":n.checked="true"===e.value;break;default:n.value=e.value}},this.selection=function(t){var e=t.data,n=a.state.window.document.getSelection();try{n.setBaseAndExtent(a.layout.element(e.start),e.startOffset,a.layout.element(e.end),e.endOffset)}catch(t){console.warn("Exception encountered while trying to set selection: "+t)}},this.pointer=function(t){var e=t.data,n=t.event,i=a.state.window.document,r=i.documentElement,o=i.getElementById("clarity-pointer");if(null===o){(o=i.createElement("DIV")).id="clarity-pointer",r.appendChild(o);var s=i.createElement("STYLE");s.textContent="@keyframes pulsate-one { 0% { transform: scale(1, 1); opacity: 1; } 100% { transform: scale(3, 3); opacity: 0; } }@keyframes pulsate-two { 0% { transform: scale(1, 1); opacity: 1; } 100% { transform: scale(5, 5); opacity: 0; } }@keyframes pulsate-touch { 0% { transform: scale(1, 1); opacity: 1; } 100% { transform: scale(2, 2); opacity: 0; } }@keyframes disappear { 90% { transform: scale(1, 1); opacity: 1; } 100% { transform: scale(1.3, 1.3); opacity: 0; } }"+"#".concat("clarity-interaction-canvas"," { position: absolute; left: 0; top: 0; z-index: ").concat(2147483647,"; background: none; }")+"#".concat("clarity-pointer"," { position: absolute; z-index: ").concat(2147483647,"; url(").concat("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAmCAYAAAA4LpBhAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAASDSURBVHgB7VdPTCNlFH8z0/+FFmRatnFNiDGR4O4mBk08smZvXjjIxRueNME9eHGNxoLxSNwr4WyigYToQRJLjXDzQtDNmnhR4kWWAJm20ymddtrx94bvI9NBWAptsod9ycvM92fe73vv/b73fUP0DIlCfRQ1AMTtjwcHB1+gPgOT67oK6+TkZBjNbxRF+X1gYCCDPpX6IKdGAaTu7++HuG9tbe1ONBr9GR7r+Xy+98DsIRuemJiIjI6OJgH+3e7urruzs+OOjIw8SiaTNwRwz8OtQWPpdHoYoKt///ar2/jxaw84k8k8gt5YWVnRqEfi90BrtVph0Uetx0V67d9fqFAo3G6324XZ2VldLK4noK4AVqvVaoh8YZTAxWLxdiwW20CoM70IdceWicfjSpCxfuBEIrGxsLCQZR7QNcQDwFaRRhRmcXCSL9S3kN8CtlP2Oqz2QoWt4Q4NDanHx8cy3HQBMIe6sLS0pF811B7I5uYmhUKh1nmAQWAOteM4xcXFxczMzEzXHp+u9PDwUBHvymWBmVzr6+t6t9tJhtPzEEYuFaoguebm5nTqJOXFoMxEVCO50tMFXBaYcwwbGwAfRagv5bEKthK2igdUr9epG/EDYw//xKGmzoLz/6BQd3t7m5i9dAUJsJoLSPZp5PIGp6amXHjsVSaEirqVALk8jy/axx2hwAcMTlcRH/Ad5LfA24kEZ4JzudbySSJzyqDnomq37pH14utH/iUrCA5HCeRwHYXc8dzNNs5jfXp6uoD+e/Pz8zzfDYIqq6urihg4NyTaK2/Rw8fNo0/euWvBWI3TwGAiHW2RnjY7LRVjX+7t7d3nSWL8FFSKIj46I0r2ZXr4R/PoQT5f1TTtU3Q5OAbbbAxtV4BwXx07wUI5raJdTaVS5vLysmYYhlyMDJBHJBoeHpbFwQ0CfmuP04P8V1VVVb9AVwXGy/xE6SyHw2FuW9Aa2jYAHVx1HAZh78bGxs44wYkm0zS9PPrC1QE4+8HcPwD8HONPYNzEkAU1UX+raFcYmPswzhu9ISLmShIdHBx0lFfVH2s+SyWR/IBofgYvnmCIPTQjkYiBk8mARwYWU4aW8F5uNpslXHkstBncxjcOeyqJ6vfUO9oQd2avlyeKJj3A9z/8yAOE7uHKUgGoiRQYMFZCdEq2bZfgpYFnmd9xzprlcrnCOdV13cbWaWKezGVnAUBOmVBpkOAlPH/AxuYJu/DoPQDcxfubeB/ncZCDL+IpaDKgiVwul8AzDo1BI3RC1HPLIg+mYPQmvPke+hdY+S68ehuevIHQvYpV5/i2KIxKg5pUUew1AaL6wM4cl4oPFJjxFMJ0H6BbIIgBwAbeLSzABLBVKpVszGvSCf27r5dCNE7h1tYWX1U0ECHUaDT+REhryKENrTFbwdLj+skRxIAeM+ka4rGV2QWv2vCIjVoAryC0Jk6MCk6fGvoY0OkFoF80UDsG8AG8j/BtD78YWRSMNNoJQbSe/1Zw0tmwBB6kE0ZG+wXI4v1ECYAIdbKzf/+povypEui6t/jnwvIf5FVJ1Cj/1+UAAAAASUVORK5CYII=",") no-repeat left center; width: ").concat(29,"px; height: ").concat(38,"px; }")+".".concat("clarity-click",", .").concat("clarity-click-ring",", .").concat("clarity-touch",", .").concat("clarity-touch-ring"," { position: absolute; z-index: ").concat(2147483647,"; border-radius: 50%; background: radial-gradient(rgba(0,90,158,0.8), transparent); width: ").concat(22,"px; height: ").concat(22,"px;}")+".".concat("clarity-click-ring"," { background: transparent; border: 1px solid rgba(0,90,158,0.8); }")+".".concat("clarity-touch"," { background: radial-gradient(rgba(242,97,12,1), transparent); }")+".".concat("clarity-touch-ring"," { background: transparent; border: 1px solid rgba(242,97,12,0.8); }")+".".concat("clarity-pointer-click"," { background-image: url(").concat("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAmCAYAAAA4LpBhAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAVoSURBVHgB7VdNTCRFGP2qe6aBGRhA5mfJ7kZcV0XQTQx68MYabl44yMWbetAY3IMX12gWMCZeSLwSEi/GiAHF1SjqMAhoshuTJbg/GkM0xMQIBMj8D/Nfvq+6enZmEtFdhsSDRT66q6qnXr33varqJvoPFUHHWIw6IK6/2tbWdg8dMzBJKQXHwMCAG9UPhBDXW1tbA2gz6BhKZVAAGTs7Oy5um5+fP9fU1LQExv6xsbHGAzNDHrivr88KhUJegH+0ubkp19fXZVdX1w2v13tCAzdcbhPR3N7e3gnQuY0ry3L7nRcUcCAQuIE4MTs7a1IDi9CgXuQxCNBPNq6uyF+HWuTO5IvVjEP6uSMXlk1qYCOVSnFOgYvRLUtmVmbp9HfvUSQSebS5uXkRwIFGSF2zZFpaWoTtWEHCcgvDclPm+4/p3qvvK2CPx7M4MTERZB/QEYoCxVJxBhHsYvwn0+2WKiyLslc+pfuufSjD4fAjyG+Y03AUVyupsDRkR0eHcXBwYMuNKQi3BaYIt5uYce6Hz8XZ63MMzFKHp6am/HcrtQJZWVkhl8tVIju/KqkmgBxAdQXr3LUv6exPl5XUxWIxMjk5GRgZGbljxpWZ7u3tCX3PPCuALDEYk2Ytij9+RQ9ufFEx18LCgv9Ol5PjXsUQg9hSsXubLA3IwC7JoVgjSjfD9PDm1xVzjY6O+qnWlIeDshOxGzkzVRNgeW2mdl6FfXVkxiQsKv/8LfX9sUScY4yxCPAQpP5XjA0GwFJRTLPZrG5mUFcln6Ytc+Uq0CdcLgAvyf4/lxUw1vA3LDVVpexQedfW1ojdW2m1N4cKM8PllqLKUMI0SRhCsuVKtyLUv7XsuJo3kOA/mUt1Dg4OsqRqZ4JUPJZtIttAaqMAMzQarH8NCzwqSzcjghlrcynGh63jGinwA5VP9efIaBr2vqgBnGeltH+nJonCjPts4HPIb5iXE2nP1IPyXssniZNTBhVq0RhC3p6QTd/oHxLpk4/t356yelQawijrecnek6fKOI/9w8PDYQw1ND4+zs/LelAxNzcndIdRLRwzs5kIYT7wJL17q7D/2tPn0+jIcDunRDMt6/SUmbQT6Htra2vrAj+k+yugFRT9I6qVEGxCZwCY3784dillmubr6CqWSqUyD4a61CDclsVKSGM7TaGe8vl8yenpaTMajTqTqeSUjUSdnZ3O5iCrYUXwDM1ke+ni2NspwzAuoTGBweN8xdYZd7vdXE8jMqjnAFjEq06RQZhdT08P1RdONCWTSaEFdeSyqQfvFzO5XnrupdHfAfgm+rcxeBJdaUQS+28K9QQDcxv6eaHntWLSMdHu7q6zxWorVGnNZ6nQVmVJmSEDovoGWGyjixkmLcuK4mSKglEUk4kjYriPFwqFGF550qgzeA6/KTJTx6jVTNXRBt3ZvSpP1OSlmYNeev7lVxQgYqtcLicAmkQKohgsBnViuVwuBpZRXON8j3M2GY/HE5xTv9+fw9Ip4DknlzXAnFM2VDtMcBrXz7Cw+YFNMHoWAOdx/wTue7kf5uAXcR/CWxee7u5uD64tiGaERbZR/3Zb5E4fBj0FNpcRv8GVz4DVU2DyOKR7CLPu5rdFPagzoOmE3uxNDWJUgYl6UFEFCswWH2S6ANBVGCQKwDzu05hAEsDpWCyWw3MFsu0v6S6LySlcXV3lVxUTRnDl8/lfIGkGOcwhMuxWuPQgax9BDKicSUcoyq3sLrAqgxEPmgZ4AtImcWIkcPpk0MaAxUYAVhcT1m4GeCvuu/htD58YQWwY7ah7tNEa/lnBSeeBHeA2sh3ZdFyAXNRHlAawqNadx/edqrc/wwE66lv8/4XLX3gjac6XP/Y1AAAAAElFTkSuQmCC","); }")+".".concat("clarity-pointer-none"," { background: none; }")+".".concat("clarity-pointer-move"," { background-image: url(").concat("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAmCAYAAAA4LpBhAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAASDSURBVHgB7VdPTCNlFH8z0/+FFmRatnFNiDGR4O4mBk08smZvXjjIxRueNME9eHGNxoLxSNwr4WyigYToQRJLjXDzQtDNmnhR4kWWAJm20ymddtrx94bvI9NBWAptsod9ycvM92fe73vv/b73fUP0DIlCfRQ1AMTtjwcHB1+gPgOT67oK6+TkZBjNbxRF+X1gYCCDPpX6IKdGAaTu7++HuG9tbe1ONBr9GR7r+Xy+98DsIRuemJiIjI6OJgH+3e7urruzs+OOjIw8SiaTNwRwz8OtQWPpdHoYoKt///ar2/jxaw84k8k8gt5YWVnRqEfi90BrtVph0Uetx0V67d9fqFAo3G6324XZ2VldLK4noK4AVqvVaoh8YZTAxWLxdiwW20CoM70IdceWicfjSpCxfuBEIrGxsLCQZR7QNcQDwFaRRhRmcXCSL9S3kN8CtlP2Oqz2QoWt4Q4NDanHx8cy3HQBMIe6sLS0pF811B7I5uYmhUKh1nmAQWAOteM4xcXFxczMzEzXHp+u9PDwUBHvymWBmVzr6+t6t9tJhtPzEEYuFaoguebm5nTqJOXFoMxEVCO50tMFXBaYcwwbGwAfRagv5bEKthK2igdUr9epG/EDYw//xKGmzoLz/6BQd3t7m5i9dAUJsJoLSPZp5PIGp6amXHjsVSaEirqVALk8jy/axx2hwAcMTlcRH/Ad5LfA24kEZ4JzudbySSJzyqDnomq37pH14utH/iUrCA5HCeRwHYXc8dzNNs5jfXp6uoD+e/Pz8zzfDYIqq6urihg4NyTaK2/Rw8fNo0/euWvBWI3TwGAiHW2RnjY7LRVjX+7t7d3nSWL8FFSKIj46I0r2ZXr4R/PoQT5f1TTtU3Q5OAbbbAxtV4BwXx07wUI5raJdTaVS5vLysmYYhlyMDJBHJBoeHpbFwQ0CfmuP04P8V1VVVb9AVwXGy/xE6SyHw2FuW9Aa2jYAHVx1HAZh78bGxs44wYkm0zS9PPrC1QE4+8HcPwD8HONPYNzEkAU1UX+raFcYmPswzhu9ISLmShIdHBx0lFfVH2s+SyWR/IBofgYvnmCIPTQjkYiBk8mARwYWU4aW8F5uNpslXHkstBncxjcOeyqJ6vfUO9oQd2avlyeKJj3A9z/8yAOE7uHKUgGoiRQYMFZCdEq2bZfgpYFnmd9xzprlcrnCOdV13cbWaWKezGVnAUBOmVBpkOAlPH/AxuYJu/DoPQDcxfubeB/ncZCDL+IpaDKgiVwul8AzDo1BI3RC1HPLIg+mYPQmvPke+hdY+S68ehuevIHQvYpV5/i2KIxKg5pUUew1AaL6wM4cl4oPFJjxFMJ0H6BbIIgBwAbeLSzABLBVKpVszGvSCf27r5dCNE7h1tYWX1U0ECHUaDT+REhryKENrTFbwdLj+skRxIAeM+ka4rGV2QWv2vCIjVoAryC0Jk6MCk6fGvoY0OkFoF80UDsG8AG8j/BtD78YWRSMNNoJQbSe/1Zw0tmwBB6kE0ZG+wXI4v1ECYAIdbKzf/+povypEui6t/jnwvIf5FVJ1Cj/1+UAAAAASUVORK5CYII=","); }"),o.appendChild(s)}o.style.left=e.x-4+"px",o.style.top=e.y-4+"px";var c="Pointer";switch(n){case 9:case 16:c="Click",a.drawClick(i,e.x,e.y,c),o.className="clarity-pointer-none";break;case 17:case 18:case 20:c="Touch",a.drawTouch(i,e.x,e.y,c),o.className="clarity-pointer-none";break;case 19:c="Touch Move",o.className="clarity-pointer-none";break;case 12:c="Mouse Move",o.className="clarity-pointer-move",a.addPoint({time:t.time,x:e.x,y:e.y}),a.targetId=e.target;break;default:o.className="clarity-pointer-move"}o.setAttribute("title","".concat(c," (").concat(e.x).concat("px",", ").concat(e.y).concat("px",")"))},this.hover=function(){if(a.targetId&&a.targetId!==a.hoverId){for(var t=0,e=a.hoverId?a.layout.element(a.hoverId):null;e&&t<7;)"removeAttribute"in e&&e.removeAttribute("clarity-hover"),e=e.parentElement,t++;t=0;for(var n=a.targetId?a.layout.element(a.targetId):null;n&&t<7;)"setAttribute"in n&&n.setAttribute("clarity-hover",""),n=n.parentElement,t++;a.hoverId=a.targetId}},this.addPoint=function(t){var e=a.points.length>0?a.points[a.points.length-1]:null;e&&t.x===e.x&&t.y===e.y?e.time=t.time:a.points.push(t)},this.drawTouch=function(t,e,n,a){var i=t.documentElement,r=t.createElement("DIV");r.className="clarity-touch",r.setAttribute("title","".concat(a," (").concat(e).concat("px",", ").concat(n).concat("px",")")),r.style.left=e-11+"px",r.style.top=n-11+"px",r.style.animation="disappear 1 1s",r.style.animationFillMode="forwards",i.appendChild(r);var o=r.cloneNode();o.className="clarity-touch-ring",o.style.left="-0.5px",o.style.top="-0.5px",o.style.animation="pulsate-touch 1 1s",o.style.animationFillMode="forwards",r.appendChild(o)},this.drawClick=function(t,e,n,i){var r=t.documentElement,o=t.createElement("DIV");o.className="clarity-click",o.setAttribute("title","".concat(i," (").concat(e).concat("px",", ").concat(n).concat("px",")")),o.style.left=e-11+"px",o.style.top=n-11+"px",r.appendChild(o);var s=o.cloneNode();s.className="clarity-click-ring",s.style.left="-0.5px",s.style.top="-0.5px",s.style.animation="pulsate-one 1 1s",s.style.animationFillMode="forwards",o.appendChild(s);var c=s.cloneNode();c.style.animation="pulsate-two 1 1s",o.appendChild(c),"undefined"!=typeof Audio&&(null===a.clickAudio&&(a.clickAudio=new Audio("data:video/webm;base64,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"),o.appendChild(a.clickAudio)),a.clickAudio.play())},this.overlay=function(){var t=a.state.window.document,e=t.documentElement,n=t.getElementById("clarity-interaction-canvas");return null===n&&((n=t.createElement("canvas")).id="clarity-interaction-canvas",n.width=0,n.height=0,e.appendChild(n)),n.width===e.clientWidth&&n.height===e.clientHeight||(n.width=e.clientWidth,n.height=e.clientHeight),n},this.match=function(t){for(var e=[],n=a.points.length-1;n>0&&(n>=a.scrollPointIndex&&t-a.points[n].time<3e3);n--)e.push(a.points[n]);return e.slice(0,75)},this.trail=function(t){var e=a.overlay();if(a.state.options.canvas&&e){var n=e.getContext("2d"),i=a.state.options.keyframes?a.curve(a.points.reverse()):a.curve(a.match(t));if(a.hover(),i.length>1){var r=i[0];n.clearRect(0,0,n.canvas.width,n.canvas.height);for(var o=i.length,s=e.offsetLeft,c=e.offsetTop,l=1;l<o;l++){var A=i[l],u=1-(l-1)/o,d=1-l/o,h=n.createLinearGradient(r.x,r.y,A.x,A.y);h.addColorStop(1,a.color(d)),h.addColorStop(0,a.color(u)),n.lineWidth=6*d,n.lineCap="round",n.lineJoin="round",n.strokeStyle=h,n.beginPath(),n.moveTo(r.x-s,r.y-c),n.lineTo(A.x-s,A.y-c),n.stroke(),n.closePath(),r=A}}a.state.options.keyframes&&(a.points=[])}},this.color=function(e){for(var n=t.TRAIL_START_COLOR,a=t.TRAIL_END_COLOR,i=[],r=0;r<3;r++)i[r]=Math.round(a[r]+e*(n[r]-a[r]));return"rgba(".concat(i[0],", ").concat(i[1],", ").concat(i[2],", ").concat(e,")")},this.curve=function(t){var e=.5,n=[],i=[];(n=t.slice(0)).unshift(t[0]),n.push(t[t.length-1]);for(var r=1;r<n.length-2;r++)for(var o=n[r].time,s=Math.max(Math.min(Math.round(a.distance(n[r],n[r-1])),10),1),c=0;c<=s;c++){var l={time:o,x:(n[r+1].x-n[r-1].x)*e,y:(n[r+1].y-n[r-1].y)*e},A={time:o,x:(n[r+2].x-n[r].x)*e,y:(n[r+2].y-n[r].y)*e},u=c/s,d=2*Math.pow(u,3)-3*Math.pow(u,2)+1,h=-2*Math.pow(u,3)+3*Math.pow(u,2),f=Math.pow(u,3)-2*Math.pow(u,2)+u,m=Math.pow(u,3)-Math.pow(u,2),p=d*n[r].x+h*n[r+1].x+f*l.x+m*A.x,g=d*n[r].y+h*n[r+1].y+f*l.y+m*A.y;i.push({time:o,x:p,y:g})}return i},this.distance=function(t,e){var n=t.x-e.x,a=t.y-e.y;return Math.sqrt(n*n+a*a)},this.state=e,this.layout=n}return t.TRAIL_START_COLOR=[242,97,12],t.TRAIL_END_COLOR=[249,220,209],t}(),p=function(){function n(a){var i=this;this.stylesheets=[],this.fonts=[],this.nodes={},this.events={},this.hashMapAlpha={},this.hashMapBeta={},this.state=null,this.reset=function(){i.nodes={},i.stylesheets=[],i.fonts=[],i.events={},i.hashMapAlpha={},i.hashMapBeta={}},this.get=function(t){return t in i.hashMapBeta&&i.hashMapBeta[t].isConnected?i.hashMapBeta[t]:t in i.hashMapAlpha&&i.hashMapAlpha[t].isConnected?i.hashMapAlpha[t]:null},this.addToHashMap=function(t,e){i.hashMapAlpha[t.hashAlpha]=i.get(t.hashAlpha)||e,i.hashMapBeta[t.hashBeta]=i.get(t.hashBeta)||e},this.resize=function(t,e,n){t&&1===t.nodeType&&e&&n&&(t.style.width=e+"px",t.style.height=n+"px",t.style.boxSizing="border-box")},this.element=function(t){return null!==t&&t>0&&t in i.nodes?i.nodes[t]:null},this.dom=function(n,a){return t(i,void 0,void 0,(function(){var t;return e(this,(function(e){switch(e.label){case 0:return n&&((t=this.state.window.document)&&t.documentElement)?(t.documentElement.style.visibility="hidden",[4,this.markup(n,a)]):[3,2];case 1:e.sent(),t.documentElement.style.visibility="visible",e.label=2;case 2:return[2]}}))}))},this.exists=function(t){if(t){var e=i.get(t);if(e){var n=e.getBoundingClientRect();return n&&n.width>0&&n.height>0}}return!1},this.markup=function(a,r){return t(i,void 0,void 0,(function(){var t,i,o,s,c,l,A,u,d,h,f,m=this;return e(this,(function(e){switch(e.label){case 0:for(t=a.data,i=a.event,o=this.state.window.document,s=function(t){var e=c.element(t.parent),a=c.element(t.previous),s=c.insertAfter,l=t.tag;switch(l&&0===l.indexOf("iframe:")&&(l=t.tag.substr("iframe:".length)),l){case"*D":var A=l!==t.tag?e?e.contentDocument:null:o;A&&A===o&&5===i&&c.reset(),"undefined"!=typeof XMLSerializer&&A&&(A.open(),A.write((new XMLSerializer).serializeToString(A.implementation.createDocumentType(t.attributes.name,t.attributes.publicId,t.attributes.systemId))),A.close());break;case"*P":c.nodes[t.id]=e,c.addToHashMap(t,e);break;case"*S":if(e){var u=c.element(t.id);if(u=u||e.attachShadow({mode:"open"}),"style"in t.attributes){var p=o.createElement("style");u.firstChild&&"clarity-adopted-style"===u.firstChild.id&&(p=u.firstChild),p.id="clarity-adopted-style",p.textContent=t.attributes.style,u.appendChild(p)}c.nodes[t.id]=u,c.addToHashMap(t,u)}break;case"*T":var g=c.element(t.id);(g=g||o.createTextNode(null)).nodeValue=t.value,s(t,e,g,a);break;case"*M":var v=c.element(t.id);v&&v.nodeType===Node.ELEMENT_NODE&&v.setAttribute("data-clarity-suspend","");break;case"HTML":var w=l!==t.tag?e?e.contentDocument:null:o;if(null!==w){var y=c.element(t.id);if(null===y){y=w.implementation.createHTMLDocument("").documentElement;var x=w.importNode(y,!0);w.replaceChild(x,w.documentElement),w.head&&w.head.parentNode.removeChild(w.head),w.body&&w.body.parentNode.removeChild(w.body)}c.setAttributes(w.documentElement,t),5!==i||e||(w.documentElement.style.visibility="hidden"),c.nodes[t.id]=w.documentElement,c.addToHashMap(t,w.documentElement)}break;case"HEAD":var b=c.element(t.id);if(null===b){if(b=o.createElement(t.tag),t.attributes&&"*B"in t.attributes){var E=o.createElement("base");E.href=t.attributes["*B"],b.appendChild(E)}var C=o.createElement("style");C.innerText=c.getCustomStyle(),b.appendChild(C)}c.setAttributes(b,t),s(t,e,b,a);break;case"LINK":var I=c.element(t.id);I=I||c.createElement(o,t.tag),t.attributes||(t.attributes={}),c.setAttributes(I,t),"rel"in t.attributes&&("stylesheet"===t.attributes.rel?c.stylesheets.push(new Promise((function(t){var e=null!=r?r:m.state.options.useproxy;I.href=e?e(I.href):I.href,I.onload=I.onerror=m.style.bind(m,I,t),setTimeout(t,n.TIMEOUT)}))):!t.attributes.rel.includes("preload")&&!t.attributes.rel.includes("preconnect")||"style"!==(null===(d=t.attributes)||void 0===d?void 0:d.as)&&"font"!==(null===(h=t.attributes)||void 0===h?void 0:h.as)||c.fonts.push(new Promise((function(t){var e=null!=r?r:m.state.options.useproxy;I.href=e?e(I.href):I.href,I.onload=I.onerror=m.style.bind(m,I,t),setTimeout(t,n.TIMEOUT)})))),s(t,e,I,a);break;case"STYLE":var B=null!==(f=c.element(t.id))&&void 0!==f?f:o.createElement(t.tag);c.setAttributes(B,t),B.textContent=t.value,s(t,e,B,a),c.style(B);break;case"IFRAME":var k=c.element(t.id);k=k||c.createElement(o,t.tag),t.attributes||(t.attributes={}),c.setAttributes(k,t),s(t,e,k,a);break;default:var R=c.element(t.id);R=R||c.createElement(o,t.tag),c.setAttributes(R,t),c.resize(R,t.width,t.height),s(t,e,R,a)}t.id&&(c.events[t.id]=t)},c=this,l=0,A=t;l<A.length;l++)u=A[l],s(u);return[4,Promise.all([this.stylesheets,this.fonts])];case 1:return e.sent(),this.stylesheets=[],this.fonts=[],[2]}}))}))},this.style=function(t,e){void 0===e&&(e=null);try{for(var n=t.sheet,a=n?n.cssRules:[],r=0;r<a.length;r++)if(a[r].cssText.indexOf(":hover")>=0){var o=a[r].cssText.replace(/:hover/g,"[".concat("clarity-hover","]"));n.removeRule(r),n.insertRule(o,r)}}catch(t){i.state.options.logerror&&i.state.options.logerror(t)}e&&e()},this.createElement=function(t,e){if(e&&0===e.indexOf("svg:"))return t.createElementNS("http://www.w3.org/2000/svg",e.substr("svg:".length));try{return t.createElement(e)}catch(n){return console.warn("Exception encountered while creating element ".concat(e,": ").concat(n)),t.createElement("clarity-unknown")}},this.insertAfter=function(t,e,n,a){if(!i.events[t.id]||i.events[t.id].parent!==t.parent||i.events[t.id].previous!==t.previous){var r=a&&a.parentElement===e?a.nextSibling:null;r=null===a&&e?i.firstChild(e):r,i.insertBefore(t,e,n,r)}},this.firstChild=function(t){var e=t.firstChild;return e&&1===e.nodeType&&"BASE"===e.tagName?e.nextSibling:e},this.insertBefore=function(t,e,n,a){if(null!==e){a=a&&a.parentElement!==e?null:a;try{e.insertBefore(n,a)}catch(a){console.warn("Node: "+n+" | Parent: "+e+" | Data: "+JSON.stringify(t)),console.warn("Exception encountered while inserting node: "+a)}}else null===e&&null!==n.parentElement&&n.parentElement.removeChild(n);i.nodes[t.id]=n,i.addToHashMap(t,n)},this.setAttributes=function(t,e){var n=e.attributes||{},a=!1;n["data-clarity-id"]="".concat(e.id),n["data-clarity-hashalpha"]="".concat(e.hashAlpha),n["data-clarity-hashbeta"]="".concat(e.hashBeta);var i=1===t.nodeType?t.tagName.toLowerCase():null;if(t.attributes)for(var r=t.attributes.length;t.attributes&&r>0;)"clarity-hover"!==t.attributes[0].name&&t.removeAttribute(t.attributes[0].name),r--;for(var o in n)if(void 0!==n[o])try{var s=n[o];if(0===o.indexOf("xlink:"))t.setAttributeNS("http://www.w3.org/1999/xlink",o,s);else if(0===o.indexOf("*O"))a=!0;else if(0===o.indexOf("*"));else if("iframe"===i&&(0===o.indexOf("src")||0===o.indexOf("allow"))||"sandbox"===o)t.setAttribute("data-clarity-".concat(o),s);else if("img"!==i||0!==o.indexOf("src")||null!==s&&0!==s.length)t.setAttribute(o,s);else{t.setAttribute(o,"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=");var c="l";e.width&&(c=e.width<=200?"m":e.width<=75?"s":c),t.setAttribute("data-clarity-hide",c)}}catch(e){console.warn("Node: "+t+" | "+JSON.stringify(n)),console.warn("Exception encountered while adding attributes: "+e)}!1===a&&"iframe"===i&&"function"==typeof t.setAttribute&&t.setAttribute("data-clarity-unavailable",""),"img"!==i||t.hasAttribute("alt")||t.setAttribute("alt",""),"form"!==i&&"input"!==i||(t.hasAttribute("autocomplete")&&t.removeAttribute("autocomplete"),t.setAttribute("autocomplete","new-password"))},this.getCustomStyle=function(){return"".concat("img","[").concat("data-clarity-hide","] { background-color: #CCC; background-image: url(").concat("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANvSURBVHgB7Ve9VhpREJ5dU6BNVqt0wS6dpEuX9QmiTyA+gfgE4BOgZSrJE4hlKvEJxDKVa2caoaSSfB87F4Z7dtmFhFTMOfcMe52Z+935u6PIhjb0dxTIihRFUQ2M6z0/dXuI9ay8PwTJklQaEADw0JMgCI4USFSkMx6Pe2BdrFtgS6QEFQICjirYGYDUc0AMcXCCvw8XAVVwHQD7IasAokfCMGzB0NmCA1o44N7T+wpwlwouT+80z2NbOWAaMHqDn7FuJcorapRATkej0bOvyz2s7zs7O2L0GbYXrCrscjUqlUoAuZ6vH3hAIr3diW4xHC3wW+w/KZhLgDmXEgRzbR6udvbBD/DdITB3UewfWm+FRpnIHwyYLo1A+Aq/vzkDWFdSni4krTjm1RnDOxgM9nFOS//OM++0YmeAFMydQw4gDSgeu7LVyprE3489je3u7t5waQFMifrQ6ehn7PZfX18v6BkFOwcq9MDQQKxeseRu0PXARJprBHxED2t7sPSol6p5YHs467OkXo8cqBA/rmXmmVO/atzZzk4G0Kond+DJJJLmStc3Sm+rpxLVbYcEoRu8xbWNp9U1B1rqyzzIRNQj5tAe84ZVKVmGZ6BoK5Vh2JADT1hjLny3rBL27nS/7RtUXZdDmb1H5Ug1rDgjrFMKrGGb2CzPt7e3C95gb2+vqeU/1Mor/UZpg21og50CsfYzATllsLY+E6TE60OTPoUqOV8EQNKKmuTTgifHAmO4GOokyDFah2BTTAOTNFcmIQFI3qyVoxurp+dIL3ZF72bYdzL1zKcDLb2P1n4rqUfcg/nB3Cre3t6uQeY3ZBOri72q87B7ULHY035CdmTs85H9BVlR23yWumVf+6YJo0/MK7qcI8al9RCqq9R4w4ICq9JDYZEwk44ly2TWFtGT+VKnF2PwB6cis8sUzkw+vSsrqNXQ0eUmxo+S5gEPfvQBSTpNLjU1rjzCLiKEYAAWMQRFA5m2GzdJxIUhW5H6yutFguhRToapcb8WQGwL5MwtDnt5cvQOZJuq0yHfkjUQWwHbAn5+AqgvKHGW/IsPRquR+ZdgcQIdrStkYh5tN1ocZYCpSto2Dqezl6yRMga/yQSpXToyYFzOrReQAcUhzp8E+E4eWzD/lTgxuPFGR5Wlm+Y/J3qL/7fJhja0RvoDR4Tn4Lo/zi8AAAAASUVORK5CYII=","); background-repeat:no-repeat; background-position: center; }")+"".concat("img","[").concat("data-clarity-hide","=").concat("s","] { background-size: 18px 18px; }")+"".concat("img","[").concat("data-clarity-hide","=").concat("m","] { background-size: 24px 24px; }")+"".concat("img","[").concat("data-clarity-hide","=").concat("l","] { background-size: 36px 36px; }")+"".concat("iframe","[").concat("data-clarity-unavailable","] { background: url(").concat("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAiCAYAAAAge+tMAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAU6SURBVHgBzVg7TyNJEG6bh5AIjpOQeCXj7LL18pDIdpztRYuzy7CjCzG/ADu8CO8vwEQXrgkvws6QeNiEFzEk4GznIFnxvO/zVntrhx6/kLxb0mh6uqurvq6urqqehHklra+ve3d3dx8SiUT6+fk5ja4ZtGf4tjzoD9AXoBmiXUsmk+cnJyc18wpKmCFodXXVx8t/enraBCDPDEchniqeg9PT06oZkAYCTsCw2A6afjc+8IQCjGR3oBtxR/bHx8crR0dHgemD+gIugPfQ9OJ4BGwF72qj0ajrsTQI7rEFcDnTndoLeHh4KDebzdAMC5z+e39/T8B+Nz6AbcJtslAWdOMDfg8LONTuJf7vRVgDPEW40H6crLG4AVi58Pj4+Deav0WUFIjBfDt8NYD+HaBbpge1Wq1wbm5uH+DXjewe5IXQ85buxAMurJS9sbi46IG/jnlforKS0Q7f92dWVlYOAXLXgqMb4CmcnZ2l8E5YpVwIlGZ7basm8nIO50qXNzY29g6y8+hP0RCKPYexBne+K3Ay3N7eNoxyDViziicFwR+la8uOwULFQUBr8LB6XgOU/gDukcGittUY3bUBY25oGR0fX1tbSwPgoVFWxquoAFufv5DxgDvgAsZdu7m52WR7cnLyIC5SAMxnqw+6PRzqSzvmOg9coPX7ZAzoAN9vNWgSQKfVpzP2yq5dQGGZD61F+S5e6KnYNkD6eozWBwZav6m6K1hs2yBJB2hGiIwrQmDsjfp8MS6L2zMqa7INebvGTedKthcdtODN90Yi+I2kCO0owsq3e4U1EqOBq98FwNWnxgKCgd66a5znAe6RjYDfGsdJzmtfgqBPWFE+Jg2HSmFcNuS8QqSv5mLkwQewiumDBKcn87JJ5UuB8BDQJ8TxYnQyFnep2ukYMCXzvXUY57ddvIOGUeIUNw47UQWneEYsrwFVJiYmSjYqkAdx9bOMMR6n4pSTF7J+0ZHCRVKwfaA7SXUZ0g3xNJn+j4+Pm655L1L+8vLyrmRHS4FR6ZfJyUichyKGy5IZgvot2EA1GC8fDanOWgXgCwBPodqPqxCwjQKIljmUPiaSTJxVuoAuCui+CXhKqOGLne84xpgEQKqoSwMpwIIy/ZajUdBytspSVV6KblaT79AsaP0afM+yFtbP4bXT48LAWqYEtymbHrIgZy/SnYurAsV4O7ocRjvD21Nf9bgIYMbK9VgAq8f2rYYHbHp6OqjVau3DK+UCXcw1P9ethI2cO9YzqYFuQLIA3/TegTYxpbPqE+UdazM7o82suWn6AC8Rr2F10upjZgBiPX19fd3E83F+fr5mviakKQiad/FDWfHq6upftlFbM0N7AvwP1kHoY5Fmzwrr7wCyzx16vywsLBDwe9s31GU5ShKz30gOmLGWQZwv2fIBYfRZ2JnCf7Vz0V8xyvIsaV1nReeQ9oXGjIDoYlB6IZ811tx6PAo+Gvoswd0urFGS5icgLCSHV8e/GS5dJYemUQHXxZnnYugFXtzRzg1HApz1jC3iqFzqkxfUDTxcTc9pDhRVXkOICrSYb78RPQ5cfOivRqKNv7S0lMAi/lTRqziSw0mSqMADauufbLdfb45ir032rjsyi0ssnlJWfw/Ltlxxm4T+fyR2+7qfi+GckQEXMHWA9c3XRDRl5KcPXOE/JKrA8vEvwezsLH8a5YwqEWDtMqz9F9sjcxVL4jJM/RuRoVB+iZjob2qSgO7cpEYO3BJrfry2etU8XAx4XtyBfxhwki3aAGyT9b39HS3/KJsoGSr4rLuuh/8DlPszm7LNbUUAAAAASUVORK5CYII=",") no-repeat center center, url('").concat('data:image/svg+xml,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%"><rect width="100%" height="100%" style="fill:rgb(204,204,204)"/><line stroke-dasharray="5, 5" x1="0" y1="100%" x2="100%" y2="0" style="stroke:rgb(119,119,119);stroke-width:1"/><line stroke-dasharray="5, 5" x1="0" y1="0" x2="100%" y2="100%" style="stroke:rgb(119,119,119);stroke-width:1"/><circle cx="50%" cy="50%" r="40" fill="rgb(204,204,204)"/></svg>',"'); }")+"*[".concat("data-clarity-suspend","] { filter: grayscale(100%); }")},this.state=a}return n.TIMEOUT=3e3,n}(),g=function(){function n(){var n=this;this._state=null,this.renderTime=0,this.dom=function(a){return t(n,void 0,void 0,(function(){return e(this,(function(t){switch(t.label){case 0:return[4,this.layout.dom(a)];case 1:return t.sent(),[2]}}))}))},this.get=function(t){var e;return null===(e=n.layout)||void 0===e?void 0:e.get(t)},this.html=function(a,i,r,o,s,c){return void 0===r&&(r=null),t(n,void 0,void 0,(function(){var t,n,l,A;return e(this,(function(e){switch(e.label){case 0:if(!(a&&a.length>0&&i))return[3,8];e.label=1;case 1:e.trys.push([1,7,,8]),t=this.merge(a),this.setup(i,{version:a[0].envelope.version,dom:t.dom,useproxy:s}),e.label=2;case 2:return t.events.length>0&&!1===this.layout.exists(r)?(n=t.events.shift(),6===n.event?[3,3]:[3,5]):[3,6];case 3:return l=n,this.renderTime=l.time,o&&this.renderTime>o?[3,5]:[4,this.layout.markup(l,s)];case 4:return e.sent(),[3,5];case 5:return[3,2];case 6:return[3,8];case 7:return A=e.sent(),c&&c(A),[3,8];case 8:return[2,this]}}))}))},this.time=function(){return n.renderTime},this.clickmap=function(t){if(null===n.state)throw new Error('Initialize heatmap by calling "html" or "setup" prior to making this call.');n.heatmap.click(t)},this.clearmap=function(){if(null===n.state)throw new Error('Initialize heatmap by calling "html" or "setup" prior to making this call.');n.heatmap.clear()},this.scrollmap=function(t,e,a){if(null===n.state)throw new Error('Initialize heatmap by calling "html" or "setup" prior to making this call.');n.heatmap.scroll(t,e,a)},this.merge=function(t){var e={timestamp:null,envelope:null,dom:null,events:[]};t=t.sort(n.sortPayloads),n.enrich=n.enrich||new h,n.enrich.reset();for(var a=0,i=t;a<i.length;a++){var r=i[a];e.timestamp=e.timestamp?e.timestamp:r.timestamp,e.envelope=r.envelope;for(var o=0,s=Object.keys(r);o<s.length;o++){var c=s[o],l=r[c];if(Array.isArray(l))for(var A=0,u=l;A<u.length;A++){var d=u[A];if("dom"===c){var f=n.enrich.selectors(d);5===d.event?e.dom=f:e.events.push(d)}else e.events.push(d)}}}return e.events=e.events.sort(n.sortEvents),e},this.setup=function(t,e){return n.reset(),e.canvas=!("canvas"in e)||e.canvas,e.keyframes="keyframes"in e&&e.keyframes,n._state={window:t,options:e},n.enrich=new h,n.data=new a(n.state),n.layout=new p(n.state),n.heatmap=new f(n.state,n.layout),n.interaction=new m(n.state,n.layout),e.dom&&n.layout.dom(e.dom,e.useproxy),n},this.render=function(a){return t(n,void 0,void 0,(function(){var t,n,i,r;return e(this,(function(e){switch(e.label){case 0:if(null===this.state)throw new Error('Initialize visualization by calling "setup" prior to making this call.');t=0,n=0,i=a,e.label=1;case 1:if(!(n<i.length))return[3,13];switch(r=i[n],t=r.time,r.event){case 0:return[3,2];case 7:return[3,3];case 6:return[3,4];case 13:case 14:case 12:case 15:case 9:case 16:case 17:case 20:case 18:case 19:return[3,6];case 28:return[3,7];case 27:return[3,8];case 21:return[3,9];case 11:return[3,10];case 10:return[3,11]}return[3,12];case 2:return this.data.metric(r),[3,12];case 3:return this.data.region(r),[3,12];case 4:return[4,this.layout.markup(r)];case 5:return e.sent(),[3,12];case 6:return this.interaction.pointer(r),[3,12];case 7:return this.interaction.visibility(r),[3,12];case 8:return this.interaction.input(r),[3,12];case 9:return this.interaction.selection(r),[3,12];case 10:return this.interaction.resize(r),[3,12];case 11:return this.interaction.scroll(r),[3,12];case 12:return n++,[3,1];case 13:return a.length>0&&this.interaction.trail(t),[2]}}))}))},this.reset=function(){var t,e,a,i,r;null===(t=n.data)||void 0===t||t.reset(),null===(e=n.interaction)||void 0===e||e.reset(),null===(a=n.layout)||void 0===a||a.reset(),null===(i=n.heatmap)||void 0===i||i.reset(),null===(r=n.enrich)||void 0===r||r.reset(),n._state=null,n.renderTime=0},this.sortEvents=function(t,e){return t.time-e.time},this.sortPayloads=function(t,e){return t.envelope.sequence-e.envelope.sequence}}return Object.defineProperty(n.prototype,"state",{get:function(){return this._state},enumerable:!1,configurable:!0}),n}(),v=(u=new g).state,w=u.dom,y=u.get,x=u.html,b=u.time,E=u.clickmap,C=u.clearmap,I=u.scrollmap,B=u.merge,k=u.setup,R=u.render,M=Object.freeze({__proto__:null,state:v,dom:w,get:y,html:x,time:b,clickmap:E,clearmap:C,scrollmap:I,merge:B,setup:k,render:R});"undefined"!=typeof window&&(void 0!==window.clarity&&null!==window.clarity||(window.clarity={}),window.clarity.visualize=M)}();
1
+ !function(){"use strict";function t(t,e,n,a){return new(n||(n=Promise))((function(i,r){function o(t){try{l(a.next(t))}catch(t){r(t)}}function s(t){try{l(a.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(o,s)}l((a=a.apply(t,e||[])).next())}))}function e(t,e){var n,a,i,r,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return r={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;r&&(r=0,s[0]&&(o=0)),o;)try{if(n=1,a&&(i=2&s[0]?a.return:s[0]?a.throw||((i=a.return)&&i.call(a),0):a.next)&&!(i=i.call(a,s[1])).done)return i;switch(a=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,a=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){o.label=s[1];break}if(6===s[0]&&o.label<i[1]){o.label=i[1],i=s;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(s);break}i[2]&&o.ops.pop(),o.trys.pop();continue}s=e.call(t,o)}catch(t){s=[6,t],a=0}finally{n=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}var n,a=function(){function t(e){var n=this;this.regionMap={},this.regions={},this.metrics={},this.lean=!1,this.reset=function(){n.metrics={},n.lean=!1,n.regions={},n.regionMap={}},this.metric=function(e){if(n.state.options.metadata){var a=[],i=[];for(var r in e.data)if("number"==typeof e.data[r]){r in n.metrics||(n.metrics[r]=0);var o=parseInt(r,10);!(r in t.METRIC_MAP)||"html-price"!==t.METRIC_MAP[r].unit&&"ld-price"!==t.METRIC_MAP[r].unit?n.metrics[r]+=e.data[r]:n.metrics[r]=e.data[r],n.lean=1===o&&0===e.data[r]||n.lean}for(var s in n.metrics)if(s in t.METRIC_MAP){r=n.metrics[s];var l=t.METRIC_MAP[s],c="unit"in l?l.unit:"";a.push("<li><h2>".concat(n.value(r,c),"<span>").concat(n.key(c),"</span></h2>").concat(l.name,"</li>"))}for(var A in n.regions){var u=n.regions[A],d=10===u.visibility?"visible":20===u.interaction?"clicked":"";i.push('<span class="'.concat(d,'">').concat(A,"</span>"))}n.state.options.metadata.innerHTML="<ul>".concat(a.join(""),"</ul><div>").concat(i.join(""),"</div>")}},this.key=function(t){switch(t){case"html-price":case"ld-price":case"cls":return"";default:return t}},this.value=function(t,e){switch(e){case"KB":return Math.round(t/1024);case"s":return Math.round(t/10)/100;case"cls":return t/1e3;case"html-price":return t/100;default:return t}},this.state=e}return t.prototype.region=function(t){for(var e=0,n=t.data;e<n.length;e++){var a=n[e];a.name in this.regions||(this.regions[a.name]={interaction:a.interaction,visibility:a.visibility}),this.regionMap[a.id]=a.name}},t.METRIC_MAP=((n={})[2]={name:"Total Bytes",unit:"KB"},n[4]={name:"Total Cost",unit:"ms"},n[3]={name:"Layout Cost",unit:"ms"},n[8]={name:"LCP",unit:"s"},n[9]={name:"CLS",unit:"cls"},n[7]={name:"Long Tasks"},n[24]={name:"Cart Total",unit:"html-price"},n[13]={name:"Product Price",unit:"ld-price"},n[6]={name:"Thread Blocked",unit:"ms"},n),t}();var i="load,active,fixed,visible,focus,show,collaps,animat".split(","),r={};function o(t){if(!t)return!1;if(i.some((function(e){return t.toLowerCase().indexOf(e)>=0})))return!1;for(var e=0;e<t.length;e++){var n=t.charCodeAt(e);if(n>=48&&n<=57)return!1}return!0}var s=1,l=[],c=[],A={},u=null;var d,h={hash:function(t,e){void 0===e&&(e=null);for(var n,a=5381,i=a,r=0;r<t.length;r+=2){if(a=(a<<5)+a^t.charCodeAt(r),r+1<t.length)i=(i<<5)+i^t.charCodeAt(r+1)}return n=Math.abs(a+11579*i),(e?n%Math.pow(2,e):n).toString(36)},selector:Object.freeze({__proto__:null,get:function(t,e){var n=t.attributes,a=t.prefix?t.prefix[e]:null,i=0===e?"".concat("~").concat(t.position-1):":nth-of-type(".concat(t.position,")");switch(t.tag){case"STYLE":case"TITLE":case"LINK":case"META":case"*T":case"*D":return"";case"HTML":return"HTML";default:if(null===a)return"";a="".concat(a).concat(">"),t.tag=0===t.tag.indexOf("svg:")?t.tag.substr("svg:".length):t.tag;var s="".concat(a).concat(t.tag).concat(i),l="id"in n&&n.id.length>0?n.id:null,c="BODY"!==t.tag&&"class"in n&&n.class.length>0?n.class.trim().split(/\s+/).filter((function(t){return o(t)})).join("."):null;if(c&&c.length>0)if(0===e){var A="".concat(function(t){for(var e=t.split(">"),n=0;n<e.length;n++){var a=e[n].indexOf("~"),i=e[n].indexOf(".");e[n]=e[n].substring(0,i>0?i:a>0?a:e[n].length)}return e.join(">")}(a)).concat(t.tag).concat(".").concat(c);A in r||(r[A]=[]),r[A].indexOf(t.id)<0&&r[A].push(t.id),s="".concat(A).concat("~").concat(r[A].indexOf(t.id))}else s="".concat(a).concat(t.tag,".").concat(c).concat(i);return s=l&&o(l)?"".concat(function(t){var e=t.lastIndexOf("*S"),n=t.lastIndexOf("".concat("iframe:").concat("HTML")),a=Math.max(e,n);if(a<0)return"";return t.substring(0,t.indexOf(">",a)+1)}(a)).concat("#").concat(l):s,s}},reset:function(){r={}}}),get:function(t){var e=function(t,e){if(void 0===e&&(e=!1),null===t)return null;var n=u.get(t);return!n&&e&&(n=s++,u.set(t,n)),n||null}(t);return e in c?c[e]:null},getNode:function(t){return t in l?l[t]:null},lookup:function(t){return t in A?A[t]:null}},f=function(){var t=this;this.reset=function(){t.children={},t.nodes={},h.selector.reset()},this.selectors=function(e){return e.data.forEach((function(e){var n=t.nodes[e.parent],a=t.children[e.parent]||[],i=t.nodes[e.id]||{tag:e.tag,parent:e.parent,previous:e.previous},r=e.attributes||{};if(i.parent!==e.parent){var o=null===e.previous?0:a.indexOf(e.previous)+1;if(a.splice(o,0,e.id),i.parent!==e.parent){var s=t.children[i.parent],l=s?s.indexOf(e.id):-1;l>=0&&t.children[i.parent].splice(l,1)}i.parent=e.parent}else a.indexOf(e.id)<0&&a.push(e.id);i.position=t.position(e.id,e.tag,i,a,a.map((function(e){return t.nodes[e]})));var c={id:e.id,tag:e.tag,prefix:n?[n.alpha,n.beta]:null,position:i.position,attributes:r},A=h.selector.get(c,0);e.selectorAlpha=A.length>0?A:null,e.hashAlpha=A.length>0?h.hash(e.selectorAlpha):null;var u=h.selector.get(c,1);e.selectorBeta=u.length>0?u:null,e.hashBeta=u.length>0?h.hash(e.selectorBeta):null,i.alpha=A,i.beta=u,t.nodes[e.id]=i,e.parent&&(t.children[e.parent]=a)})),e},this.position=function(t,e,n,a,i){n.position=1;for(var r=a?a.indexOf(t):-1;r-- >0;)if(e===i[r].tag){n.position=i[r].position+1;break}return n.position},this.reset()},p=function(){function t(e,n){var a=this;this.data=null,this.scrollData=null,this.max=null,this.offscreenRing=null,this.gradientPixels=null,this.timeout=null,this.observer=null,this.state=null,this.layout=null,this.scrollAvgFold=null,this.addScrollMakers=!1,this.reset=function(){if(a.data=null,a.scrollData=null,a.max=null,a.offscreenRing=null,a.gradientPixels=null,a.timeout=null,a.observer&&(a.observer.disconnect(),a.observer=null),a.state&&a.state.window){var t=a.state.window;t.removeEventListener("scroll",a.redraw,!0),t.removeEventListener("resize",a.redraw,!0)}},this.clear=function(){var t=a.state.window.document,e=a.state.window,n=t.getElementById("clarity-heatmap-canvas"),i=t.documentElement;n&&(n.width=i.clientWidth,n.height=i.clientHeight,n.style.left=e.pageXOffset+"px",n.style.top=e.pageYOffset+"px",n.getContext("2d").clearRect(0,0,n.width,n.height)),a.reset()},this.scroll=function(t,e,n){a.scrollData=a.scrollData||t,a.scrollAvgFold=null!=e?e:a.scrollAvgFold,a.addScrollMakers=null!=n?n:a.addScrollMakers;var i=a.overlay(),r=i.getContext("2d"),o=a.state.window.document,s=o.body,l=o.documentElement,c=Math.max(s.scrollHeight,s.offsetHeight,l.clientHeight,l.scrollHeight,l.offsetHeight);if(i.height=Math.min(c,4e4),i.style.top="0px",i.width>0&&i.height>0&&a.scrollData){for(var A=r.createLinearGradient(0,0,0,i.height),u=0,d=a.scrollData;u<d.length;u++){var h=d[u],f=1-h.cumulativeSum/a.scrollData[0].cumulativeSum,p=h.scrollReachY/100*(c/i.height),m=240*f;p<=1&&A.addColorStop(p,"hsla(".concat(m,", 100%, 50%, 0.6)"))}r.fillStyle=A,r.fillRect(0,0,i.width,i.height),a.addScrollMakers&&a.addInfoMarkers(r,a.scrollData,i.width,i.height,a.scrollAvgFold)}},this.addInfoMarkers=function(t,e,n,i,r){a.addMarker(t,n,"Average Fold",r,84);for(var o=function(r){var o=e.reduce((function(t,e){return Math.abs(e.percUsers-r)<Math.abs(t.percUsers-r)?e:t}));if(o.percUsers>=r-2&&o.percUsers<=r+2){var s=o.scrollReachY/100*i;a.addMarker(t,n,"".concat(r,"%"),s,35)}},s=0,l=[75,50,25];s<l.length;s++){o(l[s])}},this.addMarker=function(t,e,n,a,i){t.beginPath(),t.moveTo(0,a),t.lineTo(e,a),t.setLineDash([2,2]),t.lineWidth=1,t.strokeStyle="white",t.stroke(),t.fillStyle="#323130",t.fillRect(0,a-16,i,32),t.fillStyle="white",t.font="500 12px Segoe UI",t.fillText(n,5,a+5)},this.click=function(t){a.data=a.data||t;var e=a.transform(),n=a.overlay(),i=n.getContext("2d");if(n.width>0&&n.height>0){for(var r=a.getRing(),o=a.getGradient(),s=0,l=e;s<l.length;s++){var c=l[s];i.globalAlpha=c.a,i.drawImage(r,c.x-20,c.y-20)}for(var A=i.getImageData(0,0,n.width,n.height),u=0;u<A.data.length;u+=4){var d=A.data[u+3];if(d>0){var h=4*(d-1);A.data[u]=o.data[h],A.data[u+1]=o.data[h+1],A.data[u+2]=o.data[h+2]}}i.putImageData(A,0,0)}},this.overlay=function(){var t=a.state.window.document,e=a.state.window,n=t.documentElement,i=t.getElementById("clarity-heatmap-canvas");return null===i&&((i=t.createElement("CANVAS")).id="clarity-heatmap-canvas",i.width=0,i.height=0,i.style.position="absolute",i.style.zIndex="".concat(2147483647),n.appendChild(i),e.addEventListener("scroll",a.redraw,!0),e.addEventListener("resize",a.redraw,!0),a.observer=a.state.window.ResizeObserver?new ResizeObserver(a.redraw):null,a.observer&&a.observer.observe(t.body)),i.width=n.clientWidth,i.height=n.clientHeight,i.style.left=e.pageXOffset+"px",i.style.top=e.pageYOffset+"px",i.getContext("2d").clearRect(0,0,i.width,i.height),i},this.getRing=function(){if(null===a.offscreenRing){var t=a.state.window.document;a.offscreenRing=t.createElement("CANVAS"),a.offscreenRing.width=40,a.offscreenRing.height=40;var e=a.offscreenRing.getContext("2d");e.shadowOffsetX=40,e.shadowBlur=10,e.shadowColor="black",e.beginPath(),e.arc(-20,20,10,0,2*Math.PI,!0),e.closePath(),e.fill()}return a.offscreenRing},this.getGradient=function(){if(null===a.gradientPixels){var e=a.state.window.document.createElement("CANVAS");e.width=1,e.height=256;for(var n=e.getContext("2d"),i=n.createLinearGradient(0,0,0,256),r=1/t.COLORS.length,o=0;o<t.COLORS.length;o++)i.addColorStop(r*(o+1),t.COLORS[o]);n.fillStyle=i,n.fillRect(0,0,1,256),a.gradientPixels=n.getImageData(0,0,1,256)}return a.gradientPixels},this.redraw=function(t){a.data?(a.timeout&&clearTimeout(a.timeout),a.timeout=setTimeout(a.click,30)):a.scrollData&&"scroll"!=t.type&&(a.timeout&&clearTimeout(a.timeout),a.timeout=setTimeout(a.scroll,30))},this.transform=function(){for(var t=[],e={},n=0,i=a.state.window&&a.state.window.document?a.state.window.document.documentElement.clientHeight:0,r=0,o=a.data;r<o.length;r++){var s=o[r],l=a.layout.get(s.hash);if(l&&"function"==typeof l.getBoundingClientRect){var c=l.getBoundingClientRect(),A=a.visible(l,c,i);if(null===a.max||A)for(var u=0;u<s.points;u++){var d=Math.round(c.left+s.x[u]/32767*c.width),h=Math.round(c.top+s.y[u]/32767*c.height),f="".concat(d).concat("X").concat(h).concat("X").concat(A?1:0);e[f]=f in e?e[f]+s.clicks[u]:s.clicks[u],n=Math.max(e[f],n)}}}a.max=a.max?a.max:n;for(var p=0,m=Object.keys(e);p<m.length;p++){var g=m[p],v=g.split("X"),w=Math.min(e[g]/a.max+.15,1);"1"===v[2]&&t.push({x:parseInt(v[0],10),y:parseInt(v[1],10),a:w})}return t},this.visible=function(t,e,n){var i=a.state.window.document,r=e.height>n;if(!1===r&&e.width>0&&e.height>0)for(;!r&&i;){for(var o=null,s=0,l=i.elementsFromPoint(e.left+e.width/2,e.top+e.height/2);s<l.length;s++){var c=l[s];if(!("CANVAS"===c.tagName||c.id&&0===c.id.indexOf("clarity-"))){r=c===t,o=c.shadowRoot&&c.shadowRoot!=i?c.shadowRoot:null;break}}i=o}return r&&e.bottom>=0&&e.top<=n},this.state=e,this.layout=n}return t.COLORS=["blue","cyan","lime","yellow","red"],t}(),m=function(){function t(e,n){var a=this;this.hoverId=null,this.targetId=null,this.points=[],this.scrollPointIndex=0,this.clickAudio=null,this.reset=function(){a.points=[],a.scrollPointIndex=0,a.clickAudio=null,a.hoverId=null,a.targetId=null,a.layout.reset()},this.scroll=function(t){var e=t.data,n=a.state.window.document,i=n.documentElement,r=a.layout.element(e.target)||n.body,o=r.scrollHeight>r.clientHeight||r.scrollWidth>r.clientWidth;if(r&&o&&(r.scrollTo(e.x,e.y),r===i&&r.offsetTop!==e.y&&(r=n.body).scrollTo(e.x,e.y)),r===i||r===n.body){o||a.state.window.scrollTo(e.x,e.y);var s=a.overlay();s&&(s.style.left=e.x+"px",s.style.top=e.y+"px",s.width=i.clientWidth,s.height=i.clientHeight),a.scrollPointIndex=a.points.length}},this.resize=function(t){var e=t.data,n=e.width,i=e.height;a.state.options.onresize&&a.state.options.onresize(n,i)},this.visibility=function(t){var e=a.state.window.document;e&&e.documentElement&&"visible"!==t.data.visible?(e.documentElement.style.backgroundColor="black",e.documentElement.style.opacity="0.4"):(e.documentElement.style.backgroundColor="transparent",e.documentElement.style.opacity="1")},this.input=function(t){var e=t.data,n=a.layout.element(e.target);if(n)switch(n.type){case"checkbox":case"radio":n.checked="true"===e.value;break;default:n.value=e.value}},this.selection=function(t){var e=t.data,n=a.state.window.document.getSelection();try{n.setBaseAndExtent(a.layout.element(e.start),e.startOffset,a.layout.element(e.end),e.endOffset)}catch(t){console.warn("Exception encountered while trying to set selection: "+t)}},this.pointer=function(t){var e=t.data,n=t.event,i=a.state.window.document,r=i.documentElement,o=i.getElementById("clarity-pointer");if(null===o){(o=i.createElement("DIV")).id="clarity-pointer",r.appendChild(o);var s=i.createElement("STYLE");s.textContent="@keyframes pulsate-one { 0% { transform: scale(1, 1); opacity: 1; } 100% { transform: scale(3, 3); opacity: 0; } }@keyframes pulsate-two { 0% { transform: scale(1, 1); opacity: 1; } 100% { transform: scale(5, 5); opacity: 0; } }@keyframes pulsate-touch { 0% { transform: scale(1, 1); opacity: 1; } 100% { transform: scale(2, 2); opacity: 0; } }@keyframes disappear { 90% { transform: scale(1, 1); opacity: 1; } 100% { transform: scale(1.3, 1.3); opacity: 0; } }"+"#".concat("clarity-interaction-canvas"," { position: absolute; left: 0; top: 0; z-index: ").concat(2147483647,"; background: none; }")+"#".concat("clarity-pointer"," { position: absolute; z-index: ").concat(2147483647,"; url(").concat("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAmCAYAAAA4LpBhAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAASDSURBVHgB7VdPTCNlFH8z0/+FFmRatnFNiDGR4O4mBk08smZvXjjIxRueNME9eHGNxoLxSNwr4WyigYToQRJLjXDzQtDNmnhR4kWWAJm20ymddtrx94bvI9NBWAptsod9ycvM92fe73vv/b73fUP0DIlCfRQ1AMTtjwcHB1+gPgOT67oK6+TkZBjNbxRF+X1gYCCDPpX6IKdGAaTu7++HuG9tbe1ONBr9GR7r+Xy+98DsIRuemJiIjI6OJgH+3e7urruzs+OOjIw8SiaTNwRwz8OtQWPpdHoYoKt///ar2/jxaw84k8k8gt5YWVnRqEfi90BrtVph0Uetx0V67d9fqFAo3G6324XZ2VldLK4noK4AVqvVaoh8YZTAxWLxdiwW20CoM70IdceWicfjSpCxfuBEIrGxsLCQZR7QNcQDwFaRRhRmcXCSL9S3kN8CtlP2Oqz2QoWt4Q4NDanHx8cy3HQBMIe6sLS0pF811B7I5uYmhUKh1nmAQWAOteM4xcXFxczMzEzXHp+u9PDwUBHvymWBmVzr6+t6t9tJhtPzEEYuFaoguebm5nTqJOXFoMxEVCO50tMFXBaYcwwbGwAfRagv5bEKthK2igdUr9epG/EDYw//xKGmzoLz/6BQd3t7m5i9dAUJsJoLSPZp5PIGp6amXHjsVSaEirqVALk8jy/axx2hwAcMTlcRH/Ad5LfA24kEZ4JzudbySSJzyqDnomq37pH14utH/iUrCA5HCeRwHYXc8dzNNs5jfXp6uoD+e/Pz8zzfDYIqq6urihg4NyTaK2/Rw8fNo0/euWvBWI3TwGAiHW2RnjY7LRVjX+7t7d3nSWL8FFSKIj46I0r2ZXr4R/PoQT5f1TTtU3Q5OAbbbAxtV4BwXx07wUI5raJdTaVS5vLysmYYhlyMDJBHJBoeHpbFwQ0CfmuP04P8V1VVVb9AVwXGy/xE6SyHw2FuW9Aa2jYAHVx1HAZh78bGxs44wYkm0zS9PPrC1QE4+8HcPwD8HONPYNzEkAU1UX+raFcYmPswzhu9ISLmShIdHBx0lFfVH2s+SyWR/IBofgYvnmCIPTQjkYiBk8mARwYWU4aW8F5uNpslXHkstBncxjcOeyqJ6vfUO9oQd2avlyeKJj3A9z/8yAOE7uHKUgGoiRQYMFZCdEq2bZfgpYFnmd9xzprlcrnCOdV13cbWaWKezGVnAUBOmVBpkOAlPH/AxuYJu/DoPQDcxfubeB/ncZCDL+IpaDKgiVwul8AzDo1BI3RC1HPLIg+mYPQmvPke+hdY+S68ehuevIHQvYpV5/i2KIxKg5pUUew1AaL6wM4cl4oPFJjxFMJ0H6BbIIgBwAbeLSzABLBVKpVszGvSCf27r5dCNE7h1tYWX1U0ECHUaDT+REhryKENrTFbwdLj+skRxIAeM+ka4rGV2QWv2vCIjVoAryC0Jk6MCk6fGvoY0OkFoF80UDsG8AG8j/BtD78YWRSMNNoJQbSe/1Zw0tmwBB6kE0ZG+wXI4v1ECYAIdbKzf/+povypEui6t/jnwvIf5FVJ1Cj/1+UAAAAASUVORK5CYII=",") no-repeat left center; width: ").concat(29,"px; height: ").concat(38,"px; }")+".".concat("clarity-click",", .").concat("clarity-click-ring",", .").concat("clarity-touch",", .").concat("clarity-touch-ring"," { position: absolute; z-index: ").concat(2147483647,"; border-radius: 50%; background: radial-gradient(rgba(0,90,158,0.8), transparent); width: ").concat(22,"px; height: ").concat(22,"px;}")+".".concat("clarity-click-ring"," { background: transparent; border: 1px solid rgba(0,90,158,0.8); }")+".".concat("clarity-touch"," { background: radial-gradient(rgba(242,97,12,1), transparent); }")+".".concat("clarity-touch-ring"," { background: transparent; border: 1px solid rgba(242,97,12,0.8); }")+".".concat("clarity-pointer-click"," { background-image: url(").concat("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAmCAYAAAA4LpBhAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAVoSURBVHgB7VdNTCRFGP2qe6aBGRhA5mfJ7kZcV0XQTQx68MYabl44yMWbetAY3IMX12gWMCZeSLwSEi/GiAHF1SjqMAhoshuTJbg/GkM0xMQIBMj8D/Nfvq+6enZmEtFdhsSDRT66q6qnXr33varqJvoPFUHHWIw6IK6/2tbWdg8dMzBJKQXHwMCAG9UPhBDXW1tbA2gz6BhKZVAAGTs7Oy5um5+fP9fU1LQExv6xsbHGAzNDHrivr88KhUJegH+0ubkp19fXZVdX1w2v13tCAzdcbhPR3N7e3gnQuY0ry3L7nRcUcCAQuIE4MTs7a1IDi9CgXuQxCNBPNq6uyF+HWuTO5IvVjEP6uSMXlk1qYCOVSnFOgYvRLUtmVmbp9HfvUSQSebS5uXkRwIFGSF2zZFpaWoTtWEHCcgvDclPm+4/p3qvvK2CPx7M4MTERZB/QEYoCxVJxBhHsYvwn0+2WKiyLslc+pfuufSjD4fAjyG+Y03AUVyupsDRkR0eHcXBwYMuNKQi3BaYIt5uYce6Hz8XZ63MMzFKHp6am/HcrtQJZWVkhl8tVIju/KqkmgBxAdQXr3LUv6exPl5XUxWIxMjk5GRgZGbljxpWZ7u3tCX3PPCuALDEYk2Ytij9+RQ9ufFEx18LCgv9Ol5PjXsUQg9hSsXubLA3IwC7JoVgjSjfD9PDm1xVzjY6O+qnWlIeDshOxGzkzVRNgeW2mdl6FfXVkxiQsKv/8LfX9sUScY4yxCPAQpP5XjA0GwFJRTLPZrG5mUFcln6Ytc+Uq0CdcLgAvyf4/lxUw1vA3LDVVpexQedfW1ojdW2m1N4cKM8PllqLKUMI0SRhCsuVKtyLUv7XsuJo3kOA/mUt1Dg4OsqRqZ4JUPJZtIttAaqMAMzQarH8NCzwqSzcjghlrcynGh63jGinwA5VP9efIaBr2vqgBnGeltH+nJonCjPts4HPIb5iXE2nP1IPyXssniZNTBhVq0RhC3p6QTd/oHxLpk4/t356yelQawijrecnek6fKOI/9w8PDYQw1ND4+zs/LelAxNzcndIdRLRwzs5kIYT7wJL17q7D/2tPn0+jIcDunRDMt6/SUmbQT6Htra2vrAj+k+yugFRT9I6qVEGxCZwCY3784dillmubr6CqWSqUyD4a61CDclsVKSGM7TaGe8vl8yenpaTMajTqTqeSUjUSdnZ3O5iCrYUXwDM1ke+ni2NspwzAuoTGBweN8xdYZd7vdXE8jMqjnAFjEq06RQZhdT08P1RdONCWTSaEFdeSyqQfvFzO5XnrupdHfAfgm+rcxeBJdaUQS+28K9QQDcxv6eaHntWLSMdHu7q6zxWorVGnNZ6nQVmVJmSEDovoGWGyjixkmLcuK4mSKglEUk4kjYriPFwqFGF550qgzeA6/KTJTx6jVTNXRBt3ZvSpP1OSlmYNeev7lVxQgYqtcLicAmkQKohgsBnViuVwuBpZRXON8j3M2GY/HE5xTv9+fw9Ip4DknlzXAnFM2VDtMcBrXz7Cw+YFNMHoWAOdx/wTue7kf5uAXcR/CWxee7u5uD64tiGaERbZR/3Zb5E4fBj0FNpcRv8GVz4DVU2DyOKR7CLPu5rdFPagzoOmE3uxNDWJUgYl6UFEFCswWH2S6ANBVGCQKwDzu05hAEsDpWCyWw3MFsu0v6S6LySlcXV3lVxUTRnDl8/lfIGkGOcwhMuxWuPQgax9BDKicSUcoyq3sLrAqgxEPmgZ4AtImcWIkcPpk0MaAxUYAVhcT1m4GeCvuu/htD58YQWwY7ah7tNEa/lnBSeeBHeA2sh3ZdFyAXNRHlAawqNadx/edqrc/wwE66lv8/4XLX3gjac6XP/Y1AAAAAElFTkSuQmCC","); }")+".".concat("clarity-pointer-none"," { background: none; }")+".".concat("clarity-pointer-move"," { background-image: url(").concat("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAmCAYAAAA4LpBhAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAASDSURBVHgB7VdPTCNlFH8z0/+FFmRatnFNiDGR4O4mBk08smZvXjjIxRueNME9eHGNxoLxSNwr4WyigYToQRJLjXDzQtDNmnhR4kWWAJm20ymddtrx94bvI9NBWAptsod9ycvM92fe73vv/b73fUP0DIlCfRQ1AMTtjwcHB1+gPgOT67oK6+TkZBjNbxRF+X1gYCCDPpX6IKdGAaTu7++HuG9tbe1ONBr9GR7r+Xy+98DsIRuemJiIjI6OJgH+3e7urruzs+OOjIw8SiaTNwRwz8OtQWPpdHoYoKt///ar2/jxaw84k8k8gt5YWVnRqEfi90BrtVph0Uetx0V67d9fqFAo3G6324XZ2VldLK4noK4AVqvVaoh8YZTAxWLxdiwW20CoM70IdceWicfjSpCxfuBEIrGxsLCQZR7QNcQDwFaRRhRmcXCSL9S3kN8CtlP2Oqz2QoWt4Q4NDanHx8cy3HQBMIe6sLS0pF811B7I5uYmhUKh1nmAQWAOteM4xcXFxczMzEzXHp+u9PDwUBHvymWBmVzr6+t6t9tJhtPzEEYuFaoguebm5nTqJOXFoMxEVCO50tMFXBaYcwwbGwAfRagv5bEKthK2igdUr9epG/EDYw//xKGmzoLz/6BQd3t7m5i9dAUJsJoLSPZp5PIGp6amXHjsVSaEirqVALk8jy/axx2hwAcMTlcRH/Ad5LfA24kEZ4JzudbySSJzyqDnomq37pH14utH/iUrCA5HCeRwHYXc8dzNNs5jfXp6uoD+e/Pz8zzfDYIqq6urihg4NyTaK2/Rw8fNo0/euWvBWI3TwGAiHW2RnjY7LRVjX+7t7d3nSWL8FFSKIj46I0r2ZXr4R/PoQT5f1TTtU3Q5OAbbbAxtV4BwXx07wUI5raJdTaVS5vLysmYYhlyMDJBHJBoeHpbFwQ0CfmuP04P8V1VVVb9AVwXGy/xE6SyHw2FuW9Aa2jYAHVx1HAZh78bGxs44wYkm0zS9PPrC1QE4+8HcPwD8HONPYNzEkAU1UX+raFcYmPswzhu9ISLmShIdHBx0lFfVH2s+SyWR/IBofgYvnmCIPTQjkYiBk8mARwYWU4aW8F5uNpslXHkstBncxjcOeyqJ6vfUO9oQd2avlyeKJj3A9z/8yAOE7uHKUgGoiRQYMFZCdEq2bZfgpYFnmd9xzprlcrnCOdV13cbWaWKezGVnAUBOmVBpkOAlPH/AxuYJu/DoPQDcxfubeB/ncZCDL+IpaDKgiVwul8AzDo1BI3RC1HPLIg+mYPQmvPke+hdY+S68ehuevIHQvYpV5/i2KIxKg5pUUew1AaL6wM4cl4oPFJjxFMJ0H6BbIIgBwAbeLSzABLBVKpVszGvSCf27r5dCNE7h1tYWX1U0ECHUaDT+REhryKENrTFbwdLj+skRxIAeM+ka4rGV2QWv2vCIjVoAryC0Jk6MCk6fGvoY0OkFoF80UDsG8AG8j/BtD78YWRSMNNoJQbSe/1Zw0tmwBB6kE0ZG+wXI4v1ECYAIdbKzf/+povypEui6t/jnwvIf5FVJ1Cj/1+UAAAAASUVORK5CYII=","); }"),o.appendChild(s)}o.style.left=e.x-4+"px",o.style.top=e.y-4+"px";var l="Pointer";switch(n){case 9:case 16:l="Click",a.drawClick(i,e.x,e.y,l),o.className="clarity-pointer-none";break;case 17:case 18:case 20:l="Touch",a.drawTouch(i,e.x,e.y,l),o.className="clarity-pointer-none";break;case 19:l="Touch Move",o.className="clarity-pointer-none";break;case 12:l="Mouse Move",o.className="clarity-pointer-move",a.addPoint({time:t.time,x:e.x,y:e.y}),a.targetId=e.target;break;default:o.className="clarity-pointer-move"}o.setAttribute("title","".concat(l," (").concat(e.x).concat("px",", ").concat(e.y).concat("px",")"))},this.hover=function(){if(a.targetId&&a.targetId!==a.hoverId){for(var t=0,e=a.hoverId?a.layout.element(a.hoverId):null;e&&t<7;)"removeAttribute"in e&&e.removeAttribute("clarity-hover"),e=e.parentElement,t++;t=0;for(var n=a.targetId?a.layout.element(a.targetId):null;n&&t<7;)"setAttribute"in n&&n.setAttribute("clarity-hover",""),n=n.parentElement,t++;a.hoverId=a.targetId}},this.addPoint=function(t){var e=a.points.length>0?a.points[a.points.length-1]:null;e&&t.x===e.x&&t.y===e.y?e.time=t.time:a.points.push(t)},this.drawTouch=function(t,e,n,a){var i=t.documentElement,r=t.createElement("DIV");r.className="clarity-touch",r.setAttribute("title","".concat(a," (").concat(e).concat("px",", ").concat(n).concat("px",")")),r.style.left=e-11+"px",r.style.top=n-11+"px",r.style.animation="disappear 1 1s",r.style.animationFillMode="forwards",i.appendChild(r);var o=r.cloneNode();o.className="clarity-touch-ring",o.style.left="-0.5px",o.style.top="-0.5px",o.style.animation="pulsate-touch 1 1s",o.style.animationFillMode="forwards",r.appendChild(o)},this.drawClick=function(t,e,n,i){var r=t.documentElement,o=t.createElement("DIV");o.className="clarity-click",o.setAttribute("title","".concat(i," (").concat(e).concat("px",", ").concat(n).concat("px",")")),o.style.left=e-11+"px",o.style.top=n-11+"px",r.appendChild(o);var s=o.cloneNode();s.className="clarity-click-ring",s.style.left="-0.5px",s.style.top="-0.5px",s.style.animation="pulsate-one 1 1s",s.style.animationFillMode="forwards",o.appendChild(s);var l=s.cloneNode();l.style.animation="pulsate-two 1 1s",o.appendChild(l),"undefined"!=typeof Audio&&(null===a.clickAudio&&(a.clickAudio=new Audio("data:video/webm;base64,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"),o.appendChild(a.clickAudio)),a.clickAudio.play())},this.overlay=function(){var t=a.state.window.document,e=t.documentElement,n=t.getElementById("clarity-interaction-canvas");return null===n&&((n=t.createElement("canvas")).id="clarity-interaction-canvas",n.width=0,n.height=0,e.appendChild(n)),n.width===e.clientWidth&&n.height===e.clientHeight||(n.width=e.clientWidth,n.height=e.clientHeight),n},this.match=function(t){for(var e=[],n=a.points.length-1;n>0&&(n>=a.scrollPointIndex&&t-a.points[n].time<3e3);n--)e.push(a.points[n]);return e.slice(0,75)},this.trail=function(t){var e=a.overlay();if(a.state.options.canvas&&e){var n=e.getContext("2d"),i=a.state.options.keyframes?a.curve(a.points.reverse()):a.curve(a.match(t));if(a.hover(),i.length>1){var r=i[0];n.clearRect(0,0,n.canvas.width,n.canvas.height);for(var o=i.length,s=e.offsetLeft,l=e.offsetTop,c=1;c<o;c++){var A=i[c],u=1-(c-1)/o,d=1-c/o,h=n.createLinearGradient(r.x,r.y,A.x,A.y);h.addColorStop(1,a.color(d)),h.addColorStop(0,a.color(u)),n.lineWidth=6*d,n.lineCap="round",n.lineJoin="round",n.strokeStyle=h,n.beginPath(),n.moveTo(r.x-s,r.y-l),n.lineTo(A.x-s,A.y-l),n.stroke(),n.closePath(),r=A}}a.state.options.keyframes&&(a.points=[])}},this.color=function(e){for(var n=t.TRAIL_START_COLOR,a=t.TRAIL_END_COLOR,i=[],r=0;r<3;r++)i[r]=Math.round(a[r]+e*(n[r]-a[r]));return"rgba(".concat(i[0],", ").concat(i[1],", ").concat(i[2],", ").concat(e,")")},this.curve=function(t){var e=.5,n=[],i=[];(n=t.slice(0)).unshift(t[0]),n.push(t[t.length-1]);for(var r=1;r<n.length-2;r++)for(var o=n[r].time,s=Math.max(Math.min(Math.round(a.distance(n[r],n[r-1])),10),1),l=0;l<=s;l++){var c={time:o,x:(n[r+1].x-n[r-1].x)*e,y:(n[r+1].y-n[r-1].y)*e},A={time:o,x:(n[r+2].x-n[r].x)*e,y:(n[r+2].y-n[r].y)*e},u=l/s,d=2*Math.pow(u,3)-3*Math.pow(u,2)+1,h=-2*Math.pow(u,3)+3*Math.pow(u,2),f=Math.pow(u,3)-2*Math.pow(u,2)+u,p=Math.pow(u,3)-Math.pow(u,2),m=d*n[r].x+h*n[r+1].x+f*c.x+p*A.x,g=d*n[r].y+h*n[r+1].y+f*c.y+p*A.y;i.push({time:o,x:m,y:g})}return i},this.distance=function(t,e){var n=t.x-e.x,a=t.y-e.y;return Math.sqrt(n*n+a*a)},this.state=e,this.layout=n}return t.TRAIL_START_COLOR=[242,97,12],t.TRAIL_END_COLOR=[249,220,209],t}(),g=function(){function n(a){var i=this;this.stylesheets=[],this.fonts=[],this.nodes={},this.events={},this.hashMapAlpha={},this.hashMapBeta={},this.state=null,this.reset=function(){i.nodes={},i.stylesheets=[],i.fonts=[],i.events={},i.hashMapAlpha={},i.hashMapBeta={}},this.get=function(t){return t in i.hashMapBeta&&i.hashMapBeta[t].isConnected?i.hashMapBeta[t]:t in i.hashMapAlpha&&i.hashMapAlpha[t].isConnected?i.hashMapAlpha[t]:null},this.addToHashMap=function(t,e){i.hashMapAlpha[t.hashAlpha]=i.get(t.hashAlpha)||e,i.hashMapBeta[t.hashBeta]=i.get(t.hashBeta)||e},this.resize=function(t,e,n){t&&1===t.nodeType&&e&&n&&(t.style.width=e+"px",t.style.height=n+"px",t.style.boxSizing="border-box")},this.element=function(t){return null!==t&&t>0&&t in i.nodes?i.nodes[t]:null},this.dom=function(n,a){return t(i,void 0,void 0,(function(){var t;return e(this,(function(e){switch(e.label){case 0:return n&&((t=this.state.window.document)&&t.documentElement)?(t.documentElement.style.visibility="hidden",[4,this.markup(n,a)]):[3,2];case 1:e.sent(),t.documentElement.style.visibility="visible",e.label=2;case 2:return[2]}}))}))},this.exists=function(t){if(t){var e=i.get(t);if(e){var n=e.getBoundingClientRect();return n&&n.width>0&&n.height>0}}return!1},this.markup=function(a,r){return t(i,void 0,void 0,(function(){var t,i,o,s,l,c,A,u,d,h,f,p=this;return e(this,(function(e){switch(e.label){case 0:for(t=a.data,i=a.event,o=this.state.window.document,s=function(t){var e=l.element(t.parent),a=l.element(t.previous),s=l.insertAfter,c=t.tag;switch(c&&0===c.indexOf("iframe:")&&(c=t.tag.substr("iframe:".length)),c){case"*D":var A=c!==t.tag?e?e.contentDocument:null:o;A&&A===o&&5===i&&l.reset(),"undefined"!=typeof XMLSerializer&&A&&(A.open(),A.write((new XMLSerializer).serializeToString(A.implementation.createDocumentType(t.attributes.name,t.attributes.publicId,t.attributes.systemId))),A.close());break;case"*P":l.nodes[t.id]=e,l.addToHashMap(t,e);break;case"*S":if(e){var u=l.element(t.id);if(u=u||e.attachShadow({mode:"open"}),"style"in t.attributes){var m=o.createElement("style");u.firstChild&&"clarity-adopted-style"===u.firstChild.id&&(m=u.firstChild),m.id="clarity-adopted-style",m.textContent=t.attributes.style,u.appendChild(m)}l.nodes[t.id]=u,l.addToHashMap(t,u)}break;case"*T":var g=l.element(t.id);(g=g||o.createTextNode(null)).nodeValue=t.value,s(t,e,g,a);break;case"*M":var v=l.element(t.id);v&&v.nodeType===Node.ELEMENT_NODE&&v.setAttribute("data-clarity-suspend","");break;case"HTML":var w=c!==t.tag?e?e.contentDocument:null:o;if(null!==w){var y=l.element(t.id);if(null===y){y=w.implementation.createHTMLDocument("").documentElement;var x=w.importNode(y,!0);w.replaceChild(x,w.documentElement),w.head&&w.head.parentNode.removeChild(w.head),w.body&&w.body.parentNode.removeChild(w.body)}l.setAttributes(w.documentElement,t),5!==i||e||(w.documentElement.style.visibility="hidden"),l.nodes[t.id]=w.documentElement,l.addToHashMap(t,w.documentElement)}break;case"HEAD":var b=l.element(t.id);if(null===b){if(b=o.createElement(t.tag),t.attributes&&"*B"in t.attributes){var E=o.createElement("base");E.href=t.attributes["*B"],b.appendChild(E)}var C=o.createElement("style");C.innerText=l.getCustomStyle(),b.appendChild(C)}l.setAttributes(b,t),s(t,e,b,a);break;case"LINK":var I=l.element(t.id);I=I||l.createElement(o,t.tag),t.attributes||(t.attributes={}),l.setAttributes(I,t),"rel"in t.attributes&&("stylesheet"===t.attributes.rel?l.stylesheets.push(new Promise((function(t){var e=null!=r?r:p.state.options.useproxy;I.href=e?e(I.href):I.href,I.onload=I.onerror=p.style.bind(p,I,t),setTimeout(t,n.TIMEOUT)}))):!t.attributes.rel.includes("preload")&&!t.attributes.rel.includes("preconnect")||"style"!==(null===(d=t.attributes)||void 0===d?void 0:d.as)&&"font"!==(null===(h=t.attributes)||void 0===h?void 0:h.as)||l.fonts.push(new Promise((function(t){var e=null!=r?r:p.state.options.useproxy;I.href=e?e(I.href):I.href,I.onload=I.onerror=p.style.bind(p,I,t),setTimeout(t,n.TIMEOUT)})))),s(t,e,I,a);break;case"STYLE":var B=null!==(f=l.element(t.id))&&void 0!==f?f:o.createElement(t.tag);l.setAttributes(B,t),B.textContent=t.value,s(t,e,B,a),l.style(B);break;case"IFRAME":var k=l.element(t.id);k=k||l.createElement(o,t.tag),t.attributes||(t.attributes={}),l.setAttributes(k,t),s(t,e,k,a);break;default:var R=l.element(t.id);R=R||l.createElement(o,t.tag),l.setAttributes(R,t),l.resize(R,t.width,t.height),s(t,e,R,a)}t.id&&(l.events[t.id]=t)},l=this,c=0,A=t;c<A.length;c++)u=A[c],s(u);return[4,Promise.all([this.stylesheets,this.fonts])];case 1:return e.sent(),this.stylesheets=[],this.fonts=[],[2]}}))}))},this.style=function(t,e){void 0===e&&(e=null);try{for(var n=t.sheet,a=n?n.cssRules:[],r=0;r<a.length;r++)if(a[r].cssText.indexOf(":hover")>=0){var o=a[r].cssText.replace(/:hover/g,"[".concat("clarity-hover","]"));n.removeRule(r),n.insertRule(o,r)}}catch(t){i.state.options.logerror&&i.state.options.logerror(t)}e&&e()},this.createElement=function(t,e){if(e&&0===e.indexOf("svg:"))return t.createElementNS("http://www.w3.org/2000/svg",e.substr("svg:".length));try{return t.createElement(e)}catch(n){return console.warn("Exception encountered while creating element ".concat(e,": ").concat(n)),t.createElement("clarity-unknown")}},this.insertAfter=function(t,e,n,a){if(!i.events[t.id]||i.events[t.id].parent!==t.parent||i.events[t.id].previous!==t.previous){var r=!a||a.parentElement!==e&&a.parentNode!==e?null:a.nextSibling;r=null===a&&e?i.firstChild(e):r,i.insertBefore(t,e,n,r)}},this.firstChild=function(t){var e=t.firstChild;return e&&1===e.nodeType&&"BASE"===e.tagName?e.nextSibling:e},this.insertBefore=function(t,e,n,a){if(null!==e){a=a&&a.parentElement!==e&&a.parentNode!==e?null:a;try{e.insertBefore(n,a)}catch(a){console.warn("Node: "+n+" | Parent: "+e+" | Data: "+JSON.stringify(t)),console.warn("Exception encountered while inserting node: "+a)}}else null===e&&null!==n.parentElement?n.parentElement.removeChild(n):null===e&&null!==n.parentNode&&n.parentNode.removeChild(n);i.nodes[t.id]=n,i.addToHashMap(t,n)},this.setAttributes=function(t,e){var n=e.attributes||{},a=!1;n["data-clarity-id"]="".concat(e.id),n["data-clarity-hashalpha"]="".concat(e.hashAlpha),n["data-clarity-hashbeta"]="".concat(e.hashBeta);var i=1===t.nodeType?t.tagName.toLowerCase():null;if(t.attributes)for(var r=t.attributes.length;t.attributes&&r>0;)"clarity-hover"!==t.attributes[0].name&&t.removeAttribute(t.attributes[0].name),r--;for(var o in n)if(void 0!==n[o])try{var s=n[o];if(0===o.indexOf("xlink:"))t.setAttributeNS("http://www.w3.org/1999/xlink",o,s);else if(0===o.indexOf("*O"))a=!0;else if(0===o.indexOf("*"));else if("iframe"===i&&(0===o.indexOf("src")||0===o.indexOf("allow"))||"sandbox"===o)t.setAttribute("data-clarity-".concat(o),s);else if("img"!==i||0!==o.indexOf("src")||null!==s&&0!==s.length)t.setAttribute(o,s);else{t.setAttribute(o,"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=");var l="l";e.width&&(l=e.width<=200?"m":e.width<=75?"s":l),t.setAttribute("data-clarity-hide",l)}}catch(e){console.warn("Node: "+t+" | "+JSON.stringify(n)),console.warn("Exception encountered while adding attributes: "+e)}!1===a&&"iframe"===i&&"function"==typeof t.setAttribute&&t.setAttribute("data-clarity-unavailable",""),"img"!==i||t.hasAttribute("alt")||t.setAttribute("alt",""),"form"!==i&&"input"!==i||(t.hasAttribute("autocomplete")&&t.removeAttribute("autocomplete"),t.setAttribute("autocomplete","new-password"))},this.getCustomStyle=function(){return"".concat("img","[").concat("data-clarity-hide","] { background-color: #CCC; background-image: url(").concat("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANvSURBVHgB7Ve9VhpREJ5dU6BNVqt0wS6dpEuX9QmiTyA+gfgE4BOgZSrJE4hlKvEJxDKVa2caoaSSfB87F4Z7dtmFhFTMOfcMe52Z+935u6PIhjb0dxTIihRFUQ2M6z0/dXuI9ay8PwTJklQaEADw0JMgCI4USFSkMx6Pe2BdrFtgS6QEFQICjirYGYDUc0AMcXCCvw8XAVVwHQD7IasAokfCMGzB0NmCA1o44N7T+wpwlwouT+80z2NbOWAaMHqDn7FuJcorapRATkej0bOvyz2s7zs7O2L0GbYXrCrscjUqlUoAuZ6vH3hAIr3diW4xHC3wW+w/KZhLgDmXEgRzbR6udvbBD/DdITB3UewfWm+FRpnIHwyYLo1A+Aq/vzkDWFdSni4krTjm1RnDOxgM9nFOS//OM++0YmeAFMydQw4gDSgeu7LVyprE3489je3u7t5waQFMifrQ6ehn7PZfX18v6BkFOwcq9MDQQKxeseRu0PXARJprBHxED2t7sPSol6p5YHs467OkXo8cqBA/rmXmmVO/atzZzk4G0Kond+DJJJLmStc3Sm+rpxLVbYcEoRu8xbWNp9U1B1rqyzzIRNQj5tAe84ZVKVmGZ6BoK5Vh2JADT1hjLny3rBL27nS/7RtUXZdDmb1H5Ug1rDgjrFMKrGGb2CzPt7e3C95gb2+vqeU/1Mor/UZpg21og50CsfYzATllsLY+E6TE60OTPoUqOV8EQNKKmuTTgifHAmO4GOokyDFah2BTTAOTNFcmIQFI3qyVoxurp+dIL3ZF72bYdzL1zKcDLb2P1n4rqUfcg/nB3Cre3t6uQeY3ZBOri72q87B7ULHY035CdmTs85H9BVlR23yWumVf+6YJo0/MK7qcI8al9RCqq9R4w4ICq9JDYZEwk44ly2TWFtGT+VKnF2PwB6cis8sUzkw+vSsrqNXQ0eUmxo+S5gEPfvQBSTpNLjU1rjzCLiKEYAAWMQRFA5m2GzdJxIUhW5H6yutFguhRToapcb8WQGwL5MwtDnt5cvQOZJuq0yHfkjUQWwHbAn5+AqgvKHGW/IsPRquR+ZdgcQIdrStkYh5tN1ocZYCpSto2Dqezl6yRMga/yQSpXToyYFzOrReQAcUhzp8E+E4eWzD/lTgxuPFGR5Wlm+Y/J3qL/7fJhja0RvoDR4Tn4Lo/zi8AAAAASUVORK5CYII=","); background-repeat:no-repeat; background-position: center; }")+"".concat("img","[").concat("data-clarity-hide","=").concat("s","] { background-size: 18px 18px; }")+"".concat("img","[").concat("data-clarity-hide","=").concat("m","] { background-size: 24px 24px; }")+"".concat("img","[").concat("data-clarity-hide","=").concat("l","] { background-size: 36px 36px; }")+"".concat("iframe","[").concat("data-clarity-unavailable","] { background: url(").concat("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAiCAYAAAAge+tMAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAU6SURBVHgBzVg7TyNJEG6bh5AIjpOQeCXj7LL18pDIdpztRYuzy7CjCzG/ADu8CO8vwEQXrgkvws6QeNiEFzEk4GznIFnxvO/zVntrhx6/kLxb0mh6uqurvq6urqqehHklra+ve3d3dx8SiUT6+fk5ja4ZtGf4tjzoD9AXoBmiXUsmk+cnJyc18wpKmCFodXXVx8t/enraBCDPDEchniqeg9PT06oZkAYCTsCw2A6afjc+8IQCjGR3oBtxR/bHx8crR0dHgemD+gIugPfQ9OJ4BGwF72qj0ajrsTQI7rEFcDnTndoLeHh4KDebzdAMC5z+e39/T8B+Nz6AbcJtslAWdOMDfg8LONTuJf7vRVgDPEW40H6crLG4AVi58Pj4+Deav0WUFIjBfDt8NYD+HaBbpge1Wq1wbm5uH+DXjewe5IXQ85buxAMurJS9sbi46IG/jnlforKS0Q7f92dWVlYOAXLXgqMb4CmcnZ2l8E5YpVwIlGZ7basm8nIO50qXNzY29g6y8+hP0RCKPYexBne+K3Ay3N7eNoxyDViziicFwR+la8uOwULFQUBr8LB6XgOU/gDukcGittUY3bUBY25oGR0fX1tbSwPgoVFWxquoAFufv5DxgDvgAsZdu7m52WR7cnLyIC5SAMxnqw+6PRzqSzvmOg9coPX7ZAzoAN9vNWgSQKfVpzP2yq5dQGGZD61F+S5e6KnYNkD6eozWBwZav6m6K1hs2yBJB2hGiIwrQmDsjfp8MS6L2zMqa7INebvGTedKthcdtODN90Yi+I2kCO0owsq3e4U1EqOBq98FwNWnxgKCgd66a5znAe6RjYDfGsdJzmtfgqBPWFE+Jg2HSmFcNuS8QqSv5mLkwQewiumDBKcn87JJ5UuB8BDQJ8TxYnQyFnep2ukYMCXzvXUY57ddvIOGUeIUNw47UQWneEYsrwFVJiYmSjYqkAdx9bOMMR6n4pSTF7J+0ZHCRVKwfaA7SXUZ0g3xNJn+j4+Pm655L1L+8vLyrmRHS4FR6ZfJyUichyKGy5IZgvot2EA1GC8fDanOWgXgCwBPodqPqxCwjQKIljmUPiaSTJxVuoAuCui+CXhKqOGLne84xpgEQKqoSwMpwIIy/ZajUdBytspSVV6KblaT79AsaP0afM+yFtbP4bXT48LAWqYEtymbHrIgZy/SnYurAsV4O7ocRjvD21Nf9bgIYMbK9VgAq8f2rYYHbHp6OqjVau3DK+UCXcw1P9ethI2cO9YzqYFuQLIA3/TegTYxpbPqE+UdazM7o82suWn6AC8Rr2F10upjZgBiPX19fd3E83F+fr5mviakKQiad/FDWfHq6upftlFbM0N7AvwP1kHoY5Fmzwrr7wCyzx16vywsLBDwe9s31GU5ShKz30gOmLGWQZwv2fIBYfRZ2JnCf7Vz0V8xyvIsaV1nReeQ9oXGjIDoYlB6IZ811tx6PAo+Gvoswd0urFGS5icgLCSHV8e/GS5dJYemUQHXxZnnYugFXtzRzg1HApz1jC3iqFzqkxfUDTxcTc9pDhRVXkOICrSYb78RPQ5cfOivRqKNv7S0lMAi/lTRqziSw0mSqMADauufbLdfb45ir032rjsyi0ssnlJWfw/Ltlxxm4T+fyR2+7qfi+GckQEXMHWA9c3XRDRl5KcPXOE/JKrA8vEvwezsLH8a5YwqEWDtMqz9F9sjcxVL4jJM/RuRoVB+iZjob2qSgO7cpEYO3BJrfry2etU8XAx4XtyBfxhwki3aAGyT9b39HS3/KJsoGSr4rLuuh/8DlPszm7LNbUUAAAAASUVORK5CYII=",") no-repeat center center, url('").concat('data:image/svg+xml,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%"><rect width="100%" height="100%" style="fill:rgb(204,204,204)"/><line stroke-dasharray="5, 5" x1="0" y1="100%" x2="100%" y2="0" style="stroke:rgb(119,119,119);stroke-width:1"/><line stroke-dasharray="5, 5" x1="0" y1="0" x2="100%" y2="100%" style="stroke:rgb(119,119,119);stroke-width:1"/><circle cx="50%" cy="50%" r="40" fill="rgb(204,204,204)"/></svg>',"'); }")+"*[".concat("data-clarity-suspend","] { filter: grayscale(100%); }")},this.state=a}return n.TIMEOUT=3e3,n}(),v=function(){function n(){var n=this;this._state=null,this.renderTime=0,this.dom=function(a){return t(n,void 0,void 0,(function(){return e(this,(function(t){switch(t.label){case 0:return[4,this.layout.dom(a)];case 1:return t.sent(),[2]}}))}))},this.get=function(t){var e;return null===(e=n.layout)||void 0===e?void 0:e.get(t)},this.html=function(a,i,r,o,s,l){return void 0===r&&(r=null),t(n,void 0,void 0,(function(){var t,n,c,A;return e(this,(function(e){switch(e.label){case 0:if(!(a&&a.length>0&&i))return[3,8];e.label=1;case 1:e.trys.push([1,7,,8]),t=this.merge(a),this.setup(i,{version:a[0].envelope.version,dom:t.dom,useproxy:s}),e.label=2;case 2:return t.events.length>0&&!1===this.layout.exists(r)?(n=t.events.shift(),6===n.event?[3,3]:[3,5]):[3,6];case 3:return c=n,this.renderTime=c.time,o&&this.renderTime>o?[3,5]:[4,this.layout.markup(c,s)];case 4:return e.sent(),[3,5];case 5:return[3,2];case 6:return[3,8];case 7:return A=e.sent(),l&&l(A),[3,8];case 8:return[2,this]}}))}))},this.time=function(){return n.renderTime},this.clickmap=function(t){if(null===n.state)throw new Error('Initialize heatmap by calling "html" or "setup" prior to making this call.');n.heatmap.click(t)},this.clearmap=function(){if(null===n.state)throw new Error('Initialize heatmap by calling "html" or "setup" prior to making this call.');n.heatmap.clear()},this.scrollmap=function(t,e,a){if(null===n.state)throw new Error('Initialize heatmap by calling "html" or "setup" prior to making this call.');n.heatmap.scroll(t,e,a)},this.merge=function(t){var e={timestamp:null,envelope:null,dom:null,events:[]};t=t.sort(n.sortPayloads),n.enrich=n.enrich||new f,n.enrich.reset();for(var a=0,i=t;a<i.length;a++){var r=i[a];e.timestamp=e.timestamp?e.timestamp:r.timestamp,e.envelope=r.envelope;for(var o=0,s=Object.keys(r);o<s.length;o++){var l=s[o],c=r[l];if(Array.isArray(c))for(var A=0,u=c;A<u.length;A++){var d=u[A];if("dom"===l){var h=n.enrich.selectors(d);5===d.event?e.dom=h:e.events.push(d)}else e.events.push(d)}}}return e.events=e.events.sort(n.sortEvents),e},this.setup=function(t,e){return n.reset(),e.canvas=!("canvas"in e)||e.canvas,e.keyframes="keyframes"in e&&e.keyframes,n._state={window:t,options:e},n.enrich=new f,n.data=new a(n.state),n.layout=new g(n.state),n.heatmap=new p(n.state,n.layout),n.interaction=new m(n.state,n.layout),e.dom&&n.layout.dom(e.dom,e.useproxy),n},this.render=function(a){return t(n,void 0,void 0,(function(){var t,n,i,r;return e(this,(function(e){switch(e.label){case 0:if(null===this.state)throw new Error('Initialize visualization by calling "setup" prior to making this call.');t=0,n=0,i=a,e.label=1;case 1:if(!(n<i.length))return[3,13];switch(r=i[n],t=r.time,r.event){case 0:return[3,2];case 7:return[3,3];case 6:return[3,4];case 13:case 14:case 12:case 15:case 9:case 16:case 17:case 20:case 18:case 19:return[3,6];case 28:return[3,7];case 27:return[3,8];case 21:return[3,9];case 11:return[3,10];case 10:return[3,11]}return[3,12];case 2:return this.data.metric(r),[3,12];case 3:return this.data.region(r),[3,12];case 4:return[4,this.layout.markup(r)];case 5:return e.sent(),[3,12];case 6:return this.interaction.pointer(r),[3,12];case 7:return this.interaction.visibility(r),[3,12];case 8:return this.interaction.input(r),[3,12];case 9:return this.interaction.selection(r),[3,12];case 10:return this.interaction.resize(r),[3,12];case 11:return this.interaction.scroll(r),[3,12];case 12:return n++,[3,1];case 13:return a.length>0&&this.interaction.trail(t),[2]}}))}))},this.reset=function(){var t,e,a,i,r;null===(t=n.data)||void 0===t||t.reset(),null===(e=n.interaction)||void 0===e||e.reset(),null===(a=n.layout)||void 0===a||a.reset(),null===(i=n.heatmap)||void 0===i||i.reset(),null===(r=n.enrich)||void 0===r||r.reset(),n._state=null,n.renderTime=0},this.sortEvents=function(t,e){return t.time-e.time},this.sortPayloads=function(t,e){return t.envelope.sequence-e.envelope.sequence}}return Object.defineProperty(n.prototype,"state",{get:function(){return this._state},enumerable:!1,configurable:!0}),n}(),w=(d=new v).state,y=d.dom,x=d.get,b=d.html,E=d.time,C=d.clickmap,I=d.clearmap,B=d.scrollmap,k=d.merge,R=d.setup,M=d.render,T=Object.freeze({__proto__:null,clearmap:I,clickmap:C,dom:y,get:x,html:b,merge:k,render:M,scrollmap:B,setup:R,state:w,time:E});"undefined"!=typeof window&&(void 0!==window.clarity&&null!==window.clarity||(window.clarity={}),window.clarity.visualize=T)}();
@@ -29,7 +29,7 @@ function __generator(thisArg, body) {
29
29
  function verb(n) { return function (v) { return step([n, v]); }; }
30
30
  function step(op) {
31
31
  if (f) throw new TypeError("Generator is already executing.");
32
- while (_) try {
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
33
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
34
  if (y = 0, t) op = [op[0] & 2, t.value];
35
35
  switch (op[0]) {
@@ -96,7 +96,7 @@ var DataHelper = /** @class */ (function () {
96
96
  // Append region information to metadata
97
97
  for (var name_1 in _this.regions) {
98
98
  var r = _this.regions[name_1];
99
- var className = (r.visibility === 10 /* Layout.RegionVisibility.Visible */ ? "visible" : (r.interaction === 20 /* Layout.Interaction.Clicked */ ? "clicked" : "" /* Data.Constant.Empty */));
99
+ var className = (r.visibility === 10 /* Layout.RegionVisibility.Visible */ ? "visible" : (r.interaction === 20 /* Layout.InteractionState.Clicked */ ? "clicked" : "" /* Data.Constant.Empty */));
100
100
  regionMarkup.push("<span class=\"".concat(className, "\">").concat(name_1, "</span>"));
101
101
  }
102
102
  _this.state.options.metadata.innerHTML = "<ul>".concat(metricMarkup.join("" /* Data.Constant.Empty */), "</ul><div>").concat(regionMarkup.join("" /* Data.Constant.Empty */), "</div>");
@@ -257,8 +257,8 @@ function filter(value) {
257
257
 
258
258
  var selector = /*#__PURE__*/Object.freeze({
259
259
  __proto__: null,
260
- reset: reset$l,
261
- get: get$1
260
+ get: get$1,
261
+ reset: reset$l
262
262
  });
263
263
 
264
264
  var index = 1;
@@ -1331,7 +1331,8 @@ var LayoutHelper = /** @class */ (function () {
1331
1331
  if (_this.events[data.id] && _this.events[data.id].parent === data.parent && _this.events[data.id].previous === data.previous) {
1332
1332
  return;
1333
1333
  }
1334
- var next = previous && previous.parentElement === parent ? previous.nextSibling : null;
1334
+ // In case parent is a Shadow DOM, previous.parentElement will return null but previous.parentNode will return a valid node
1335
+ var next = previous && (previous.parentElement === parent || previous.parentNode === parent) ? previous.nextSibling : null;
1335
1336
  next = previous === null && parent ? _this.firstChild(parent) : next;
1336
1337
  _this.insertBefore(data, parent, node, next);
1337
1338
  };
@@ -1345,7 +1346,8 @@ var LayoutHelper = /** @class */ (function () {
1345
1346
  };
1346
1347
  this.insertBefore = function (data, parent, node, next) {
1347
1348
  if (parent !== null) {
1348
- next = next && next.parentElement !== parent ? null : next;
1349
+ // Compare against both parentNode and parentElement to ensure visualization works correctly for shadow DOMs
1350
+ next = next && (next.parentElement !== parent && next.parentNode !== parent) ? null : next;
1349
1351
  try {
1350
1352
  parent.insertBefore(node, next);
1351
1353
  }
@@ -1357,6 +1359,9 @@ var LayoutHelper = /** @class */ (function () {
1357
1359
  else if (parent === null && node.parentElement !== null) {
1358
1360
  node.parentElement.removeChild(node);
1359
1361
  }
1362
+ else if (parent === null && node.parentNode !== null) {
1363
+ node.parentNode.removeChild(node);
1364
+ }
1360
1365
  _this.nodes[data.id] = node;
1361
1366
  _this.addToHashMap(data, node);
1362
1367
  };
@@ -1697,17 +1702,17 @@ var state = (_a = new Visualizer(), _a.state), dom = _a.dom, get = _a.get, html
1697
1702
 
1698
1703
  var clarity = /*#__PURE__*/Object.freeze({
1699
1704
  __proto__: null,
1700
- state: state,
1705
+ clearmap: clearmap,
1706
+ clickmap: clickmap,
1701
1707
  dom: dom,
1702
1708
  get: get,
1703
1709
  html: html,
1704
- time: time,
1705
- clickmap: clickmap,
1706
- clearmap: clearmap,
1707
- scrollmap: scrollmap,
1708
1710
  merge: merge,
1711
+ render: render,
1712
+ scrollmap: scrollmap,
1709
1713
  setup: setup,
1710
- render: render
1714
+ state: state,
1715
+ time: time
1711
1716
  });
1712
1717
 
1713
1718
  export { Visualizer, clarity as visualize };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clarity-visualize",
3
- "version": "0.7.2",
3
+ "version": "0.7.4",
4
4
  "description": "An analytics library that uses web page interactions to generate aggregated insights",
5
5
  "author": "Microsoft Corp.",
6
6
  "license": "MIT",
@@ -27,24 +27,24 @@
27
27
  "url": "https://github.com/Microsoft/clarity/issues"
28
28
  },
29
29
  "dependencies": {
30
- "clarity-decode": "^0.7.2"
30
+ "clarity-decode": "^0.7.4"
31
31
  },
32
32
  "devDependencies": {
33
- "@rollup/plugin-commonjs": "^19.0.1",
34
- "@rollup/plugin-node-resolve": "^13.0.2",
35
- "del-cli": "^4.0.1",
36
- "husky": "^7.0.1",
37
- "lint-staged": "^11.0.1",
38
- "rollup": "^2.53.2",
39
- "rollup-plugin-terser": "^7.0.2",
40
- "rollup-plugin-typescript2": "^0.30.0",
33
+ "@rollup/plugin-commonjs": "^24.0.0",
34
+ "@rollup/plugin-node-resolve": "^15.0.0",
35
+ "@rollup/plugin-terser": "^0.4.0",
36
+ "@rollup/plugin-typescript": "^11.0.0",
37
+ "del-cli": "^5.0.0",
38
+ "husky": "^8.0.0",
39
+ "lint-staged": "^13.1.0",
40
+ "rollup": "^3.0.0",
41
41
  "ts-node": "^10.1.0",
42
42
  "tslint": "^6.1.3",
43
43
  "typescript": "^4.3.5"
44
44
  },
45
45
  "scripts": {
46
46
  "build": "yarn build:clean && yarn build:main",
47
- "build:main": "rollup -c rollup.config.ts",
47
+ "build:main": "rollup -c rollup.config.ts --configPlugin @rollup/plugin-typescript",
48
48
  "build:clean": "del-cli build/*",
49
49
  "tslint": "tslint --project ./",
50
50
  "tslint:fix": "tslint --fix --project ./ --force"
package/rollup.config.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import commonjs from "@rollup/plugin-commonjs";
2
2
  import resolve from "@rollup/plugin-node-resolve";
3
- import typescript from "rollup-plugin-typescript2";
4
- import { terser } from "rollup-plugin-terser";
5
- import pkg from "./package.json";
3
+ import terser from "@rollup/plugin-terser";
4
+ import typescript from "@rollup/plugin-typescript";
5
+ import pkg from "./package.json" assert { type: 'json' };
6
6
 
7
7
  export default [
8
8
  {
@@ -13,7 +13,7 @@ export default [
13
13
  ],
14
14
  plugins: [
15
15
  resolve(),
16
- typescript({ rollupCommonJSResolveHack: true, clean: true }),
16
+ typescript(),
17
17
  commonjs({ include: ["node_modules/**"] })
18
18
  ],
19
19
  onwarn(message, warn) {
@@ -28,7 +28,7 @@ export default [
28
28
  output: [ { file: pkg.unpkg, format: "iife", exports: "named" } ],
29
29
  plugins: [
30
30
  resolve(),
31
- typescript({ rollupCommonJSResolveHack: true, clean: true }),
31
+ typescript(),
32
32
  terser({output: {comments: false}}),
33
33
  commonjs({ include: ["node_modules/**"] })
34
34
  ],
package/src/data.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { Data, Layout } from "clarity-decode";
1
+ import { Data, Layout } from "clarity-js";
2
+ import type { Data as DecodedData, Layout as DecodedLayout } from "clarity-decode";
2
3
  import { PlaybackState, RegionState } from "@clarity-types/visualize";
3
4
 
4
5
  export class DataHelper {
@@ -31,7 +32,7 @@ export class DataHelper {
31
32
  this.regionMap = {};
32
33
  }
33
34
 
34
- public metric = (event: Data.MetricEvent): void => {
35
+ public metric = (event: DecodedData.MetricEvent): void => {
35
36
  if (this.state.options.metadata) {
36
37
  let metricMarkup = [];
37
38
  let regionMarkup = [];
@@ -59,7 +60,7 @@ export class DataHelper {
59
60
  // Append region information to metadata
60
61
  for (let name in this.regions) {
61
62
  let r = this.regions[name];
62
- let className = (r.visibility === Layout.RegionVisibility.Visible ? "visible" : (r.interaction === Layout.Interaction.Clicked ? "clicked" : Data.Constant.Empty));
63
+ let className = (r.visibility === Layout.RegionVisibility.Visible ? "visible" : (r.interaction === Layout.InteractionState.Clicked ? "clicked" : Data.Constant.Empty));
63
64
  regionMarkup.push(`<span class="${className}">${name}</span>`);
64
65
  }
65
66
 
@@ -67,7 +68,7 @@ export class DataHelper {
67
68
  }
68
69
  }
69
70
 
70
- public region(event: Layout.RegionEvent): void {
71
+ public region(event: DecodedLayout.RegionEvent): void {
71
72
  let data = event.data;
72
73
  for (let r of data) {
73
74
  if (!(r.name in this.regions)) {
package/src/enrich.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { helper } from "clarity-js";
2
- import { Layout } from "clarity-decode";
1
+ import { helper, Layout } from "clarity-js";
2
+ import { Layout as DecodedLayout } from "clarity-decode";
3
3
  import { NodeData } from "@clarity-types/visualize";
4
4
 
5
5
  export class EnrichHelper {
@@ -17,7 +17,7 @@ export class EnrichHelper {
17
17
  helper.selector.reset();
18
18
  }
19
19
 
20
- public selectors = (event: Layout.DomEvent): Layout.DomEvent => {
20
+ public selectors = (event: DecodedLayout.DomEvent): DecodedLayout.DomEvent => {
21
21
  event.data.forEach(d => {
22
22
  let parent = this.nodes[d.parent];
23
23
  let children = this.children[d.parent] || [];
package/src/heatmap.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Activity, Constant, Heatmap, Setting, ScrollMapInfo, PlaybackState } from "@clarity-types/visualize";
2
- import { Data } from "clarity-decode";
2
+ import { Data } from "clarity-js";
3
3
  import { LayoutHelper } from "./layout";
4
4
 
5
5
  export class HeatmapHelper {
@@ -1,5 +1,6 @@
1
1
  import { Asset, Constant, PlaybackState, Point, Setting } from "@clarity-types/visualize";
2
- import { Data, Interaction, Layout } from "clarity-decode";
2
+ import { Data, Layout } from "clarity-js";
3
+ import type { Interaction } from "clarity-decode"
3
4
  import { LayoutHelper } from "./layout";
4
5
 
5
6
  export class InteractionHelper {
package/src/layout.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { Data, Layout } from "clarity-decode";
1
+ import { Data, Layout } from "clarity-js";
2
+ import type { Layout as DecodedLayout } from "clarity-decode";
2
3
  import { Asset, Constant, LinkHandler, NodeType, PlaybackState, Setting } from "@clarity-types/visualize";
3
4
 
4
5
  export class LayoutHelper {
@@ -34,7 +35,7 @@ export class LayoutHelper {
34
35
  return null;
35
36
  }
36
37
 
37
- private addToHashMap = (data: Layout.DomData, parent: Node) => {
38
+ private addToHashMap = (data: DecodedLayout.DomData, parent: Node) => {
38
39
  // In case of selector collision, prefer the first inserted node
39
40
  this.hashMapAlpha[data.hashAlpha] = this.get(data.hashAlpha) || parent;
40
41
  this.hashMapBeta[data.hashBeta] = this.get(data.hashBeta) || parent;
@@ -52,7 +53,7 @@ export class LayoutHelper {
52
53
  return nodeId !== null && nodeId > 0 && nodeId in this.nodes ? this.nodes[nodeId] : null;
53
54
  }
54
55
 
55
- public dom = async (event: Layout.DomEvent, useproxy?: LinkHandler): Promise<void> => {
56
+ public dom = async (event: DecodedLayout.DomEvent, useproxy?: LinkHandler): Promise<void> => {
56
57
  if (event) {
57
58
  // When setting up rendering for the first time, start off with hidden target window
58
59
  // This ensures we do not show flickers to the end user
@@ -78,7 +79,7 @@ export class LayoutHelper {
78
79
  return false;
79
80
  }
80
81
 
81
- public markup = async (event: Layout.DomEvent, useproxy?: LinkHandler): Promise<void> => {
82
+ public markup = async (event: DecodedLayout.DomEvent, useproxy?: LinkHandler): Promise<void> => {
82
83
  let data = event.data;
83
84
  let type = event.event;
84
85
  let doc = this.state.window.document;
@@ -268,11 +269,12 @@ export class LayoutHelper {
268
269
  };
269
270
  }
270
271
 
271
- private insertAfter = (data: Layout.DomData, parent: Node, node: Node, previous: Node): void => {
272
+ private insertAfter = (data: DecodedLayout.DomData, parent: Node, node: Node, previous: Node): void => {
272
273
  // Skip over no-op changes where parent and previous element is still the same
273
274
  // In case of IFRAME, re-adding DOM at the exact same place will lead to loss of state and the markup inside will be destroyed
274
275
  if (this.events[data.id] && this.events[data.id].parent === data.parent && this.events[data.id].previous === data.previous) { return; }
275
- let next = previous && previous.parentElement === parent ? previous.nextSibling : null;
276
+ // In case parent is a Shadow DOM, previous.parentElement will return null but previous.parentNode will return a valid node
277
+ let next = previous && (previous.parentElement === parent || previous.parentNode === parent) ? previous.nextSibling : null;
276
278
  next = previous === null && parent ? this.firstChild(parent) : next;
277
279
  this.insertBefore(data, parent, node, next);
278
280
  }
@@ -286,9 +288,10 @@ export class LayoutHelper {
286
288
  return child;
287
289
  }
288
290
 
289
- private insertBefore = (data: Layout.DomData, parent: Node, node: Node, next: Node): void => {
291
+ private insertBefore = (data: DecodedLayout.DomData, parent: Node, node: Node, next: Node): void => {
290
292
  if (parent !== null) {
291
- next = next && next.parentElement !== parent ? null : next;
293
+ // Compare against both parentNode and parentElement to ensure visualization works correctly for shadow DOMs
294
+ next = next && (next.parentElement !== parent && next.parentNode !== parent) ? null : next;
292
295
  try {
293
296
  parent.insertBefore(node, next);
294
297
  } catch (ex) {
@@ -297,12 +300,14 @@ export class LayoutHelper {
297
300
  }
298
301
  } else if (parent === null && node.parentElement !== null) {
299
302
  node.parentElement.removeChild(node);
303
+ } else if (parent === null && node.parentNode !== null) {
304
+ node.parentNode.removeChild(node);
300
305
  }
301
306
  this.nodes[data.id] = node;
302
307
  this.addToHashMap(data, node);
303
308
  }
304
309
 
305
- private setAttributes = (node: HTMLElement, data: Layout.DomData): void => {
310
+ private setAttributes = (node: HTMLElement, data: DecodedLayout.DomData): void => {
306
311
  let attributes = data.attributes || {};
307
312
  let sameorigin = false;
308
313
 
package/src/visualizer.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Activity, Constant, ErrorLogger, LinkHandler, MergedPayload, Options, PlaybackState, ScrollMapInfo, Visualizer as VisualizerType } from "@clarity-types/visualize";
2
- import { Data, Interaction, Layout } from "clarity-decode";
2
+ import { Data } from "clarity-js";
3
+ import type { Data as DecodedData, Interaction, Layout } from "clarity-decode";
3
4
  import { DataHelper } from "./data";
4
5
  import { EnrichHelper } from "./enrich";
5
6
  import { HeatmapHelper } from "./heatmap";
@@ -28,7 +29,7 @@ export class Visualizer implements VisualizerType {
28
29
  return this.layout?.get(hash);
29
30
  }
30
31
 
31
- public html = async (decoded: Data.DecodedPayload[], target: Window, hash: string = null, time : number, useproxy?: LinkHandler, logerror?: ErrorLogger): Promise<Visualizer> => {
32
+ public html = async (decoded: DecodedData.DecodedPayload[], target: Window, hash: string = null, time : number, useproxy?: LinkHandler, logerror?: ErrorLogger): Promise<Visualizer> => {
32
33
  if (decoded && decoded.length > 0 && target) {
33
34
  try {
34
35
  // Flatten the payload and parse all events out of them, sorted by time
@@ -79,7 +80,7 @@ export class Visualizer implements VisualizerType {
79
80
  this.heatmap.scroll(scrollData, avgFold, addMarkers);
80
81
  }
81
82
 
82
- public merge = (decoded: Data.DecodedPayload[]): MergedPayload => {
83
+ public merge = (decoded: DecodedData.DecodedPayload[]): MergedPayload => {
83
84
  let merged: MergedPayload = { timestamp: null, envelope: null, dom: null, events: [] };
84
85
 
85
86
  // Re-arrange decoded payloads in the order of their start time
@@ -138,14 +139,14 @@ export class Visualizer implements VisualizerType {
138
139
  return this;
139
140
  }
140
141
 
141
- public render = async (events: Data.DecodedEvent[]): Promise<void> => {
142
+ public render = async (events: DecodedData.DecodedEvent[]): Promise<void> => {
142
143
  if (this.state === null) { throw new Error(`Initialize visualization by calling "setup" prior to making this call.`); }
143
144
  let time = 0;
144
145
  for (let entry of events) {
145
146
  time = entry.time;
146
147
  switch (entry.event) {
147
148
  case Data.Event.Metric:
148
- this.data.metric(entry as Data.MetricEvent);
149
+ this.data.metric(entry as DecodedData.MetricEvent);
149
150
  break;
150
151
  case Data.Event.Region:
151
152
  this.data.region(entry as Layout.RegionEvent);
@@ -200,11 +201,11 @@ export class Visualizer implements VisualizerType {
200
201
  this.renderTime = 0;
201
202
  }
202
203
 
203
- private sortEvents = (a: Data.DecodedEvent, b: Data.DecodedEvent): number => {
204
+ private sortEvents = (a: DecodedData.DecodedEvent, b: DecodedData.DecodedEvent): number => {
204
205
  return a.time - b.time;
205
206
  }
206
207
 
207
- private sortPayloads = (a: Data.DecodedPayload, b: Data.DecodedPayload): number => {
208
+ private sortPayloads = (a: DecodedData.DecodedPayload, b: DecodedData.DecodedPayload): number => {
208
209
  return a.envelope.sequence - b.envelope.sequence;
209
210
  }
210
211
  }
package/tsconfig.json CHANGED
@@ -8,6 +8,7 @@
8
8
  "noImplicitReturns": true,
9
9
  "noUnusedLocals": true,
10
10
  "noUnusedParameters": true,
11
+ "resolveJsonModule": true,
11
12
  "esModuleInterop": true,
12
13
  "baseUrl": ".",
13
14
  "paths": {
@@ -15,6 +16,6 @@
15
16
  "@clarity-types/*": ["types/*"]
16
17
  }
17
18
  },
18
- "include":["src/**/*.ts","types/**/*.d.ts"],
19
+ "include":["src/**/*.ts", "types/**/*.d.ts", "rollup.config.ts"],
19
20
  "exclude": ["node_modules", "build"]
20
21
  }