!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Perfume={})}(this,(function(e){"use strict";var t,n,r={isResourceTiming:!1,isElementTiming:!1,maxTime:3e4,reportOptions:{}},i=window,a=i.console,o=i.navigator,u=i.performance,c=function(){return o.deviceMemory},s=function(){return o.hardwareConcurrency},f="mark.",l=function(){return u&&!!u.getEntriesByType&&!!u.now&&!!u.mark},d="4g",v=!1,m={},p={value:0},h={value:{beacon:0,css:0,fetch:0,img:0,other:0,script:0,total:0,xmlhttprequest:0}},T={value:0},g={value:0},y={},k={isHidden:!1,didChange:!1},S=function(){k.isHidden=!1,document.hidden&&(k.isHidden=document.hidden,k.didChange=!0)},b=function(e,t){try{var n=new PerformanceObserver((function(e){t(e.getEntries())}));return n.observe({type:e,buffered:!0}),n}catch(e){a.warn("Perfume.js:",e)}return null},E=function(){return!!(s()&&s()<=4)||!!(c()&&c()<=4)},M=function(e,t){switch(e){case"slow-2g":case"2g":case"3g":return!0;default:return E()||t}},w=function(e){return parseFloat(e.toFixed(4))},L=function(e){return"number"!=typeof e?null:w(e/Math.pow(1024,2))},C=function(e,t,n,a,u){var f,l=function(){r.analyticsTracker&&(k.isHidden&&!["CLS","INP"].includes(e)||r.analyticsTracker({attribution:a,metricName:e,data:t,navigatorInformation:o?{deviceMemory:c()||0,hardwareConcurrency:s()||0,serviceWorkerStatus:"serviceWorker"in o?o.serviceWorker.controller?"controlled":"supported":"unsupported",isLowEndDevice:E(),isLowEndExperience:M(d,v)}:{},rating:n,navigationType:u}))};["CLS","INP"].includes(e)?l():(f=l,"requestIdleCallback"in i?i.requestIdleCallback(f,{timeout:3e3}):f())},O=function(e){e.forEach((function(e){if(!("self"!==e.name||e.startTime
0&&(T.value+=t,g.value+=t)}}))};e.IThresholdTier=void 0,(t=e.IThresholdTier||(e.IThresholdTier={})).instant="instant",t.quick="quick",t.moderate="moderate",t.slow="slow",t.unavoidable="unavoidable";var x,B,I,P,j,D=((n={})[e.IThresholdTier.instant]={vitalsThresholds:[100,200],maxOutlierThreshold:1e4},n[e.IThresholdTier.quick]={vitalsThresholds:[200,500],maxOutlierThreshold:1e4},n[e.IThresholdTier.moderate]={vitalsThresholds:[500,1e3],maxOutlierThreshold:1e4},n[e.IThresholdTier.slow]={vitalsThresholds:[1e3,2e3],maxOutlierThreshold:1e4},n[e.IThresholdTier.unavoidable]={vitalsThresholds:[2e3,5e3],maxOutlierThreshold:2e4},n),F={RT:[100,200],TBT:[200,600],NTBT:[200,600]},N=function(e,t){return F[e]?t<=F[e][0]?"good":t<=F[e][1]?"needsImprovement":"poor":null},_=function(e,t,n){Object.keys(t).forEach((function(e){"number"==typeof t[e]&&(t[e]=w(t[e]))})),C(e,t,null,n||{})},q=function(e){var t=e.attribution,n=e.name,i=e.rating,a=e.value,o=e.navigationType;"FCP"===n&&(p.value=a),["FCP","LCP"].includes(n)&&!y[0]&&(y[0]=b("longtask",O)),"FID"===n&&setTimeout((function(){k.didChange||(q({attribution:t,name:"TBT",rating:N("TBT",T.value),value:T.value,navigationType:o}),_("dataConsumption",h.value))}),1e4);var u=w(a);u<=r.maxTime&&u>=0&&C(n,u,i,t,o)},R=function(){return window.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0]},A=function(e){if("loading"===document.readyState)return"loading";var t=R();if(t){if(e(t||100)-1)return n||i;if(n=n?i+">"+n:i,r.id)break;e=r.parentNode}}catch(e){}return n},W=-1,J=function(){return W},U=function(e){addEventListener("pageshow",(function(t){t.persisted&&(W=t.timeStamp,e(t))}),!0)},V=function(){var e=R();return e&&e.activationStart||0},G=function(e,t){var n=R(),r="navigate";return J()>=0?r="back-forward-cache":n&&(document.prerendering||V()>0?r="prerender":document.wasDiscarded?r="restore":n.type&&(r=n.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v3-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},K=function(e,t,n){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){t(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},n||{})),r}}catch(e){}},Q=function(e,t,n,r){var i,a;return function(o){t.value>=0&&(o||r)&&((a=t.value-(i||0))||void 0===i)&&(i=t.value,t.delta=a,t.rating=function(e,t){return e>t[1]?"poor":e>t[0]?"needs-improvement":"good"}(t.value,n),e(t))}},X=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},Y=function(e){var t=function(t){"pagehide"!==t.type&&"hidden"!==document.visibilityState||e(t)};addEventListener("visibilitychange",t,!0),addEventListener("pagehide",t,!0)},Z=function(e){var t=!1;return function(n){t||(e(n),t=!0)}},$=-1,ee=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},te=function(e){"hidden"===document.visibilityState&&$>-1&&($="visibilitychange"===e.type?e.timeStamp:0,re())},ne=function(){addEventListener("visibilitychange",te,!0),addEventListener("prerenderingchange",te,!0)},re=function(){removeEventListener("visibilitychange",te,!0),removeEventListener("prerenderingchange",te,!0)},ie=function(){return $<0&&($=ee(),ne(),U((function(){setTimeout((function(){$=ee(),ne()}),0)}))),{get firstHiddenTime(){return $}}},ae=function(e){document.prerendering?addEventListener("prerenderingchange",(function(){return e()}),!0):e()},oe=[1800,3e3],ue=function(e,t){t=t||{},ae((function(){var n,r=ie(),i=G("FCP"),a=K("paint",(function(e){e.forEach((function(e){"first-contentful-paint"===e.name&&(a.disconnect(),e.startTime=0&&B1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var n=function(){le(e,t),i()},r=function(){i()},i=function(){removeEventListener("pointerup",n,se),removeEventListener("pointercancel",r,se)};addEventListener("pointerup",n,se),addEventListener("pointercancel",r,se)}(t,e):le(t,e)}},me=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,ve,se)}))},pe=[100,300],he=function(e,t){t=t||{},ae((function(){var n,r=ie(),i=G("FID"),a=function(e){e.startTimet.latency){if(n)n.entries.push(e),n.latency=Math.max(n.latency,e.duration);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};Ce[r.id]=r,Le.push(r)}Le.sort((function(e,t){return t.latency-e.latency})),Le.splice(10).forEach((function(e){delete Ce[e.id]}))}},xe=function(e,t){!function(e,t){t=t||{},ae((function(){var n;be();var r,i=G("INP"),a=function(e){e.forEach((function(e){e.interactionId&&Oe(e),"first-input"===e.entryType&&!Le.some((function(t){return t.entries.some((function(t){return e.duration===t.duration&&e.startTime===t.startTime}))}))&&Oe(e)}));var t,n=(t=Math.min(Le.length-1,Math.floor(we()/50)),Le[t]);n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())},o=K("event",a,{durationThreshold:null!==(n=t.durationThreshold)&&void 0!==n?n:40});r=Q(e,i,Ee,t.reportAllChanges),o&&("interactionId"in PerformanceEventTiming.prototype&&o.observe({type:"first-input",buffered:!0}),Y((function(){a(o.takeRecords()),i.value<0&&we()>0&&(i.value=0,i.entries=[]),r(!0)})),U((function(){Le=[],Me=Se(),i=G("INP"),r=Q(e,i,Ee,t.reportAllChanges)})))}))}((function(t){!function(e){if(e.entries.length){var t=e.entries.sort((function(e,t){return t.duration-e.duration||t.processingEnd-t.processingStart-(e.processingEnd-e.processingStart)}))[0];e.attribution={eventTarget:z(t.target),eventType:t.name,eventTime:t.startTime,eventEntry:t,loadState:A(t.startTime)}}else e.attribution={}}(t),e(t)}),t)},Be=[2500,4e3],Ie={},Pe=[800,1800],je=function e(t){document.prerendering?ae((function(){return e(t)})):"complete"!==document.readyState?addEventListener("load",(function(){return e(t)}),!0):setTimeout(t,0)},De=function(e,t){t=t||{};var n=G("TTFB"),r=Q(e,n,Pe,t.reportAllChanges);je((function(){var i=R();if(i){var a=i.responseStart;if(a<=0||a>performance.now())return;n.value=Math.max(a-V(),0),n.entries=[i],r(!0),U((function(){n=G("TTFB",0),(r=Q(e,n,Pe,t.reportAllChanges))(!0)}))}}))},Fe=function(e){e.forEach((function(e){e.identifier&&q({attribution:{identifier:e.identifier},name:"ET",rating:null,value:e.startTime})}))},Ne=function(e){e.forEach((function(e){if(r.isResourceTiming&&_("resourceTiming",e),e.decodedBodySize&&e.initiatorType){var t=e.decodedBodySize/1e3;h.value[e.initiatorType]+=t,h.value.total+=t}}))},_e=function(){!function(e,t){De((function(t){!function(e){if(e.entries.length){var t=e.entries[0],n=t.activationStart||0,r=Math.max(t.domainLookupStart-n,0),i=Math.max(t.connectStart-n,0),a=Math.max(t.requestStart-n,0);e.attribution={waitingTime:r,dnsTime:i-r,connectionTime:a-i,requestTime:e.value-a,navigationEntry:t}}else e.attribution={waitingTime:0,dnsTime:0,connectionTime:0,requestTime:0}}(t),e(t)}),t)}((function(e){e.value>0&&q(e)}),r.reportOptions.ttfb),function(e,t){!function(e,t){t=t||{},ue(Z((function(){var n,r=G("CLS",0),i=0,a=[],o=function(e){e.forEach((function(e){if(!e.hadRecentInput){var t=a[0],n=a[a.length-1];i&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(i+=e.value,a.push(e)):(i=e.value,a=[e])}})),i>r.value&&(r.value=i,r.entries=a,n())},u=K("layout-shift",o);u&&(n=Q(e,r,ce,t.reportAllChanges),Y((function(){o(u.takeRecords()),n(!0)})),U((function(){i=0,r=G("CLS",0),n=Q(e,r,ce,t.reportAllChanges),X((function(){return n()}))})),setTimeout(n,0))})))}((function(t){!function(e){if(e.entries.length){var t=e.entries.reduce((function(e,t){return e&&e.value>t.value?e:t}));if(t&&t.sources&&t.sources.length){var n=(r=t.sources).find((function(e){return e.node&&1===e.node.nodeType}))||r[0];if(n)return void(e.attribution={largestShiftTarget:z(n.node),largestShiftTime:t.startTime,largestShiftValue:t.value,largestShiftSource:n,largestShiftEntry:t,loadState:A(t.startTime)})}}var r;e.attribution={}}(t),e(t)}),t)}((function(e){return q(e)}),r.reportOptions.cls),function(e,t){ue((function(t){!function(e){if(e.entries.length){var t=R(),n=e.entries[e.entries.length-1];if(t){var r=t.activationStart||0,i=Math.max(0,t.responseStart-r);return void(e.attribution={timeToFirstByte:i,firstByteToFCP:e.value-i,loadState:A(e.entries[0].startTime),navigationEntry:t,fcpEntry:n})}}e.attribution={timeToFirstByte:0,firstByteToFCP:e.value,loadState:A(J())}}(t),e(t)}),t)}((function(e){return q(e)}),r.reportOptions.fcp),function(e,t){he((function(t){!function(e){var t=e.entries[0];e.attribution={eventTarget:z(t.target),eventType:t.name,eventTime:t.startTime,eventEntry:t,loadState:A(t.startTime)}}(t),e(t)}),t)}((function(e){return q(e)}),r.reportOptions.fid),function(e,t){!function(e,t){t=t||{},ae((function(){var n,r=ie(),i=G("LCP"),a=function(e){var t=e[e.length-1];t&&t.startTime0;if(u.getEntriesByName(f+n).length>0&&a&&r.steps&&r.steps[e]){var o=D[r.steps[e].threshold],c=o.maxOutlierThreshold,s=o.vitalsThresholds,l=u.measure(i,f+t,f+n);if(l){var d=l.duration;if(d<=c){var v=function(e,t){return e<=t[0]?"good":e<=t[1]?"needsImprovement":"poor"}(d,s);d>=0&&(C("userJourneyStep",d,v,{stepName:e},void 0),u.measure("step.".concat(e,"_vitals_").concat(v),{start:l.startTime+l.duration,end:l.startTime+l.duration,detail:{type:"stepVital",duration:d}}))}}}},Ue=function(){var e=ze(),t=Re.startMarkToStepsMap,n=Object.keys(e).length;if(0===n)return{};var r={},i=n-1,a=We(i);if(Object.keys(a).forEach((function(e){var n,i=null!==(n=t[e])&&void 0!==n?n:[];Object.keys(i).forEach((function(e){r[e]=!0}))})),n>1){var o=We(i-1);Object.keys(o).forEach((function(e){var n,i=null!==(n=t[e])&&void 0!==n?n:[];Object.keys(i).forEach((function(e){r[e]=!0}))}))}return r},Ve=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function u(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,u)}c((r=r.apply(e,t||[])).next())}))},Ge=function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(a){return function(u){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1){var o=i-1,u=We(o);u[e]&&(u[e]=!1,t[o]=u)}}))}}}(e);var c=Re.finalMarkToStepsMap[e];Object.keys(c).forEach((function(t){var n=c[t];n.forEach(Ae),Promise.all(n.map((function(n){return Ve(void 0,void 0,void 0,(function(){return Ge(this,(function(r){switch(r.label){case 0:return[4,Je(n,t,e)];case 1:return r.sent(),[2]}}))}))}))).catch((function(){}))}))}else n=e,i=Re.navigationSteps,a=Object.keys(i).length,(u=We(o=(a>0?a:1)-1)||[])[n]=!0,i[o]=u,function(e){var t,n=null!==(t=Re.startMarkToStepsMap[e])&&void 0!==t?t:[];Object.keys(n).forEach((function(e){Re.active[e]||(Re.active[e]=!0)}))}(e);var s=Ue();null===(t=r.onMarkStep)||void 0===t||t.call(r,e,Object.keys(s))},Qe=function(e){l()&&!m[e]&&(m[e]=!0,u.mark("mark_".concat(e,"_start")))},Xe=function(e,t,n){if(void 0===t&&(t={}),void 0===n&&(n=!0),l()&&m[e]){u.mark("mark_".concat(e,"_end")),delete m[e];var r=function(e){u.measure(e,"mark_".concat(e,"_start"),"mark_".concat(e,"_end"));var t=u.getEntriesByName(e).pop();return t&&"measure"===t.entryType?t.duration:-1}(e);n&&_(e,w(r),t)}},Ye=0;e.clear=function(e){delete m[e],u.clearMarks&&(u.clearMarks("mark_".concat(e,"_start")),u.clearMarks("mark_".concat(e,"_end")))},e.end=Xe,e.initPerfume=function(e){if(void 0===e&&(e={}),r.analyticsTracker=e.analyticsTracker,r.isResourceTiming=!!e.resourceTiming,r.isElementTiming=!!e.elementTiming,r.maxTime=e.maxMeasureTime||r.maxTime,r.reportOptions=e.reportOptions||r.reportOptions,r.steps=e.steps,r.onMarkStep=e.onMarkStep,l()){"PerformanceObserver"in i&&_e(),void 0!==document.hidden&&document.addEventListener("visibilitychange",S);var t=function(){if(!l())return{};var e=u.getEntriesByType("navigation")[0];if(!e)return{};var t=e.responseStart,n=e.responseEnd;return{fetchTime:n-e.fetchStart,workerTime:e.workerStart>0?n-e.workerStart:0,totalTime:n-e.requestStart,downloadTime:n-t,timeToFirstByte:t-e.requestStart,headerSize:e.transferSize-e.encodedBodySize||0,dnsLookupTime:e.domainLookupEnd-e.domainLookupStart,redirectTime:e.redirectEnd-e.redirectStart}}();_("navigationTiming",t),t.redirectTime&&q({attribution:{},name:"RT",rating:N("RT",t.redirectTime),value:t.redirectTime}),_("networkInformation",function(){if("connection"in o){var e=o.connection;return"object"!=typeof e?{}:(d=e.effectiveType,v=!!e.saveData,{downlink:e.downlink,effectiveType:e.effectiveType,rtt:e.rtt,saveData:!!e.saveData})}return{}}()),o&&o.storage&&"function"==typeof o.storage.estimate&&o.storage.estimate().then(qe),r.steps&&r.steps&&(He(),Object.entries(r.steps).forEach((function(e){var t,n,r=e[0],i=e[1].marks,a=i[0],o=i[1],u=null!==(n=Re.startMarkToStepsMap[a])&&void 0!==n?n:{};if(u[r]=!0,Re.startMarkToStepsMap[a]=u,Re.finalMarkToStepsMap[o]){var c=Re.finalMarkToStepsMap[o][a]||[];c.push(r),Re.finalMarkToStepsMap[o][a]=c}else Re.finalMarkToStepsMap[o]=((t={})[a]=[r],t)})))}},e.markNTBT=function(){Qe("ntbt"),g.value=0,clearTimeout(Ye),Ye=setTimeout((function(){Xe("ntbt",{},!1),q({attribution:{},name:"NTBT",rating:N("NTBT",g.value),value:g.value}),g.value=0}),2e3)},e.markStep=function(e){l()&&(u.mark(f+e),Ke(e))},e.markStepOnce=function(e){0===u.getEntriesByName(f+e).length&&(u.mark(f+e),Ke(e))},e.start=Qe,e.trackUJNavigation=function(){var e,t=Object.keys(Re.navigationSteps).length;Re.navigationSteps[t]={};var n=Ue();null===(e=r.onMarkStep)||void 0===e||e.call(r,"",Object.keys(n))},Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=perfume.umd.min.js.map