UNPKG

3.95 kBJavaScriptView Raw
1!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).webVitals=e.webVitals||{})}(this,(function(e){"use strict";var t=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:"v2-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},n=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},i=function(e,t){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},a=function(e){addEventListener("pageshow",(function(t){t.persisted&&e(t)}),!0)},r="function"==typeof WeakSet?new WeakSet:new Set,o=function(e,t,n){var i;return function(){t.value>=0&&(n||r.has(t)||"hidden"===document.visibilityState)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},u=-1,s=function(){i((function(e){var t=e.timeStamp;u=t}),!0)},f=function(){return u<0&&((u=self.webVitals.firstHiddenTime)===1/0&&s(),a((function(){setTimeout((function(){u="hidden"===document.visibilityState?0:1/0,s()}),0)}))),{get firstHiddenTime(){return u}}},c=function(e,i){var u,s=f(),c=t("FCP"),d=function(e){"first-contentful-paint"===e.name&&(m&&m.disconnect(),e.startTime<s.firstHiddenTime&&(c.value=e.startTime,c.entries.push(e),r.add(c),u()))},l=performance.getEntriesByName&&performance.getEntriesByName("first-contentful-paint")[0],m=l?null:n("paint",d);(l||m)&&(u=o(e,c,i),l&&d(l),a((function(n){c=t("FCP"),u=o(e,c,i),requestAnimationFrame((function(){requestAnimationFrame((function(){c.value=performance.now()-n.timeStamp,r.add(c),u()}))}))})))},d=!1,l=-1;e.getCLS=function(e,r){d||(c((function(e){l=e.value})),d=!0);var u,s=function(t){l>-1&&e(t)},f=t("CLS",0),m=0,v=[],p=function(e){if(!e.hadRecentInput){var t=v[0],n=v[v.length-1];m&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(m+=e.value,v.push(e)):(m=e.value,v=[e]),m>f.value&&(f.value=m,f.entries=v,u())}},y=n("layout-shift",p);y&&(u=o(s,f,r),i((function(){y.takeRecords().map(p),u()})),a((function(){m=0,l=-1,f=t("CLS",0),u=o(s,f,r)})))},e.getFCP=c,e.getFID=function(e,u){var s,c=f(),d=t("FID"),l=function(e){e.startTime<c.firstHiddenTime&&(d.value=e.processingStart-e.startTime,d.entries.push(e),r.add(d),s())},m=n("first-input",l);s=o(e,d,u),m&&i((function(){m.takeRecords().map(l),m.disconnect()}),!0),m||window.webVitals.firstInputPolyfill(l),a((function(){d=t("FID"),s=o(e,d,u),window.webVitals.resetFirstInputPolyfill(),window.webVitals.firstInputPolyfill(l)}))},e.getLCP=function(e,u){var s,c=f(),d=t("LCP"),l=function(e){var t=e.startTime;t<c.firstHiddenTime&&(d.value=t,d.entries.push(e)),s()},m=n("largest-contentful-paint",l);if(m){s=o(e,d,u);var v=function(){r.has(d)||(m.takeRecords().map(l),m.disconnect(),r.add(d),s())};["keydown","click"].forEach((function(e){addEventListener(e,v,{once:!0,capture:!0})})),i(v,!0),a((function(n){d=t("LCP"),s=o(e,d,u),requestAnimationFrame((function(){requestAnimationFrame((function(){d.value=performance.now()-n.timeStamp,r.add(d),s()}))}))}))}},e.getTTFB=function(e){var n,i=t("TTFB");n=function(){try{var t=performance.getEntriesByType("navigation")[0]||function(){var e=performance.timing,t={entryType:"navigation",startTime:0};for(var n in e)"navigationStart"!==n&&"toJSON"!==n&&(t[n]=Math.max(e[n]-e.navigationStart,0));return t}();if(i.value=i.delta=t.responseStart,i.value<0)return;i.entries=[t],e(i)}catch(e){}},"complete"===document.readyState?setTimeout(n,0):addEventListener("pageshow",n)},Object.defineProperty(e,"__esModule",{value:!0})}));