(()=>{"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=-1,r=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||n()>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,r,n){var a,i;return function(s){e.value>=0&&(s||n)&&((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,r),t(e))}},s=(new Map,[800,1800]),o=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)},c=function(t,c){c=c||{};var u=a("TTFB"),d=i(t,u,s,c.reportAllChanges);o((function(){var o=r();o&&(u.value=Math.max(o.responseStart-n(),0),u.entries=[o],d(!0),function(t){addEventListener("pageshow",(function(r){r.persisted&&(e=r.timeStamp,t(r))}),!0)}((function(){u=a("TTFB",0),(d=i(t,u,s,c.reportAllChanges))(!0)})))}))};new Date;class u{metrics={};constructor(e){this.analyticsService=e,this.performanceService=new t,c(this.handleMetric.bind(this))}getRating=(t,e)=>t>e[1]?"poor":t>e[0]?"needs-improvement":"good";parseTTFB(t){if(!t)return;const e=t.entries[0],r=e.responseStart,n=e.domainLookupStart,a=e.connectStart,i=e.connectEnd,o=e.requestStart,c=e.workerStart||e.fetchStart,u=t.navigationType,d=this.getRating(r,s),l=0===e.transferSize;return{value:Math.floor(r),rating:d,attribution:{cacheDuration:Math.floor(n-c),connectionDuration:Math.floor(i-a),dnsDuration:Math.floor(a-n),requestDuration:Math.floor(r-o),waitingDuration:Math.floor(c)},navigationType:u,isCache:l}}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 d=(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();d?new class{sentTTFB=!1;constructor(t){this.requestData=t,this.metricsCollector=new u(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("-"),r=e[0],n=e[1],a=e[2],i=e[3],s=Date.now().toString(16).padStart(16,"0");return`${r}-${n.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);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)}}}(d):console.warn("Request data not found")})();