(()=>{"use strict";class t{getPerformanceMetrics(){const t={};try{window.performance&&(t.timeOrigin=performance.timeOrigin)}catch(t){console.warn("Failed to collect performance metrics:",t)}return t}}var e=function(){var t=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(t&&t.responseStart>0&&t.responseStart=0?s="back-forward-cache":i&&(document.prerendering||r()>0?s="prerender":document.wasDiscarded?s="restore":i.type&&(s=i.type.replace(/_/g,"-"))),{name:t,value:void 0===a?-1:a,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:s}},i=function(t,e,n,r){var a,i;return function(s){e.value>=0&&(s||r)&&((i=e.value-(a||0))||void 0===a)&&(a=e.value,e.delta=i,e.rating=function(t,e){return t>e[1]?"poor":t>e[0]?"needs-improvement":"good"}(e.value,n),t(e))}},s=[],o=new Map,c=function(t){var e=self.requestIdleCallback||self.setTimeout,n=-1;return t=function(t){var e=!1;return function(){e||(t(),e=!0)}}(t),"hidden"===document.visibilityState?t():(n=e(t),function(t){document.addEventListener("visibilitychange",(function(){"hidden"===document.visibilityState&&t()}))}(t)),n},u=[],d=[],l=0,f=new WeakMap,h=new Map,p=-1,m=function(){h.size>10&&h.forEach((function(t,e){o.has(e)||h.delete(e)}));var t=s.map((function(t){return f.get(t.entries[0])})),e=d.length-50;d=d.filter((function(n,r){return r>=e||t.includes(n)}));for(var n=new Set,r=0;rl&&e>i||n.has(t)})),p=-1};[].push((function(t){t.interactionId&&t.target&&!h.has(t.interactionId)&&h.set(t.interactionId,t.target)}),(function(t){var e,n=t.startTime+t.duration;l=Math.max(l,t.processingEnd);for(var r=d.length-1;r>=0;r--){var a=d[r];if(Math.abs(n-a.renderTime)<=8){(e=a).startTime=Math.min(t.startTime,e.startTime),e.processingStart=Math.min(t.processingStart,e.processingStart),e.processingEnd=Math.max(t.processingEnd,e.processingEnd),e.entries.push(t);break}}e||(e={startTime:t.startTime,processingStart:t.processingStart,processingEnd:t.processingEnd,renderTime:n,entries:[t]},d.push(e)),(t.interactionId||"first-input"===t.entryType)&&f.set(t,e),p<0&&(p=c(m))}));var v=function(t,e){for(var n,r=[],a=0;n=u[a];a++)if(!(n.startTime+n.duratione)break;r.push(n)}return r},g=[800,1800],T=function t(e){document.prerendering?function(t){document.prerendering?addEventListener("prerenderingchange",(function(){return t()}),!0):t()}((function(){return t(e)})):"complete"!==document.readyState?addEventListener("load",(function(){return t(e)}),!0):setTimeout(e,0)},S=function(t,s){s=s||{};var o=a("TTFB"),c=i(t,o,g,s.reportAllChanges);T((function(){var u=e();u&&(o.value=Math.max(u.responseStart-r(),0),o.entries=[u],c(!0),function(t){addEventListener("pageshow",(function(e){e.persisted&&(n=e.timeStamp,t(e))}),!0)}((function(){o=a("TTFB",0),(c=i(t,o,g,s.reportAllChanges))(!0)})))}))};new Date;class w{metrics={};constructor(e){var n;this.analyticsService=e,this.performanceService=new t,n=this.handleMetric.bind(this),S((function(t){var e=function(t){var e={waitingDuration:0,cacheDuration:0,dnsDuration:0,connectionDuration:0,requestDuration:0};if(t.entries.length){var n=t.entries[0],r=n.activationStart||0,a=Math.max((n.workerStart||n.fetchStart)-r,0),i=Math.max(n.domainLookupStart-r,0),s=Math.max(n.connectStart-r,0),o=Math.max(n.connectEnd-r,0);e={waitingDuration:a,cacheDuration:i-a,dnsDuration:s-i,connectionDuration:o-s,requestDuration:t.value-o,navigationEntry:n}}return Object.assign(t,{attribution:e})}(t);n(e)}),void 0)}parseTTFB(t){if(!t)return;const{transferSize:e}=t.entries[0],n=0===e;return{value:Math.floor(t.value),rating:t.rating,attribution:t.attribution,navigationType:t.navigationType,isCache:n}}handleMetric(t){if(t)if("TTFB"===t.name){const e=this.parseTTFB(t);if(!e)return;this.metrics.ttfb=e,this.analyticsService.handledMetric(t.name)}else console.warn(`Unknown metric: ${t.name}`)}getMetrics(){return this.metrics.performance=this.performanceService.getPerformanceMetrics(),this.metrics}}const y=(new class{scriptSelector="script.elementor-browser-metrics[data-request-info]";requestInfoAttribute="data-request-info";getRequestData(){try{const t=document.querySelector(this.scriptSelector);if(!t)return null;const e=t.getAttribute(this.requestInfoAttribute);return e?JSON.parse(e):null}catch(t){return console.warn("Failed to parse request data:",t),null}}}).getRequestData();y?new class{sentTTFB=!1;constructor(t){this.requestData=t,this.metricsCollector=new w(this)}handledMetric(t){"TTFB"===t&&this.sendTTFB()}validateTTFB(t){return!!t?.metrics?.ttfb&&!!isFinite(t?.metrics?.ttfb?.value??NaN)&&!!isFinite(t?.metrics?.performance?.timeOrigin??NaN)}sendTTFB(){if(this.sentTTFB)return;const t=this.getAnalyticsData();this.validateTTFB(t)&&(this.sentTTFB=!0,this.sendMetrics(t))}updateTraceparent(t){const e=t.split("-"),n=e[0],r=e[1],a=e[2],i=e[3],s=Date.now().toString(16).padStart(16,"0");return`${n}-${r.substring(0,16)+s}-${a}-${i}`}getAnalyticsData(){const t=this.metricsCollector.getMetrics(),e=t.ttfb?.isCache?this.updateTraceparent(this.requestData.traceparent):this.requestData.traceparent;return{metrics:t,timestamp:Date.now(),url:window.location.href,traceparent:e,version:this.requestData.version,status:this.requestData.status,ecSource:this.requestData.ecSource,instanceId:this.requestData.instanceId}}sendMetrics(t){if(t)try{const e=JSON.stringify(t);if(navigator.sendBeacon){const t=new Blob([e],{type:"application/json"});navigator.sendBeacon(this.requestData.endpoint,t)||console.warn("Failed to send metrics via beacon")}else fetch(this.requestData.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:e,keepalive:!0}).catch((()=>{console.warn("Failed to send metrics via fetch")}))}catch(t){console.warn("Failed to send metrics:",t)}}}(y):console.warn("Request data not found")})();