UNPKG

posthog-js

Version:

Posthog-js allows you to automatically capture usage and send events to PostHog.

3 lines (2 loc) • 9.96 kB
!function(){"use strict";"function"!=typeof[].at&&Object.defineProperty(Array.prototype,"at",{value(i){var t=this.length,n=Math.trunc(i)||0;return 0>n&&(n+=t),0>n||n>=t?void 0:this[n]},writable:!0,enumerable:!1,configurable:!0});var i="undefined"!=typeof window?window:void 0,t="undefined"!=typeof globalThis?globalThis:i;null!=t&&t.XMLHttpRequest&&new t.XMLHttpRequest;var n="undefined"!=typeof globalThis?globalThis:i;n&&"undefined"==typeof self&&(n.self=n),n&&"undefined"==typeof File&&(n.File=function(){});var e=null!=i?i:{};function a(){return a=Object.assign?Object.assign.bind():function(i){for(var t=1;arguments.length>t;t++){var n=arguments[t];for(var e in n)({}).hasOwnProperty.call(n,e)&&(i[e]=n[e])}return i},a.apply(null,arguments)}var r=-1,o=()=>r,v=i=>{addEventListener("pageshow",(t=>{t.persisted&&(r=t.timeStamp,i(t))}),!0)},s=(i,t,n,e)=>{var a,r;return o=>{t.value>=0&&(o||e)&&((r=t.value-(null!=a?a:0))||void 0===a)&&(a=t.value,t.delta=r,t.rating=((i,t)=>i>t[1]?"poor":i>t[0]?"needs-improvement":"good")(t.value,n),i(t))}},f=i=>{requestAnimationFrame((()=>requestAnimationFrame((()=>i()))))},d=()=>{var i=performance.getEntriesByType("navigation")[0];if(i&&i.responseStart>0&&i.responseStart<performance.now())return i},l=()=>{var i,t;return null!==(i=null==(t=d())?void 0:t.activationStart)&&void 0!==i?i:0},u=-1,c=new Set,h=()=>"hidden"!==document.visibilityState||document.prerendering?1/0:0,g=i=>{if("hidden"===document.visibilityState){if("visibilitychange"===i.type)for(var t of c)t();isFinite(u)||(u="visibilitychange"===i.type?i.timeStamp:0,removeEventListener("prerenderingchange",g,!0))}},m=function(i){if(void 0===i&&(i=!1),i&&(u=1/0),0>u){var t,n=l(),e=document.prerendering||null==(t=globalThis.performance.getEntriesByType("visibility-state").find((i=>"hidden"===i.name&&i.startTime>=n)))?void 0:t.startTime;u=null!=e?e:h(),addEventListener("visibilitychange",g,!0),addEventListener("prerenderingchange",g,!0),v((()=>{setTimeout((()=>{u=h()}))}))}return{get firstHiddenTime(){return u},onHidden(i){c.add(i)}}},p=function(i,t,n,e,a,r,v){void 0===t&&(t=-1),void 0===e&&(e=0);var s=d(),f=(null==s?void 0:s.navigationId)||0,u="navigate";return n?u=n:0>o()?s&&(document.prerendering||l()>0?u="prerender":document.wasDiscarded?u="restore":s.type&&(u=s.type.replace(/_/g,"-"))):u="back-forward-cache",{name:i,value:t,rating:"good",delta:0,entries:[],id:"v6-"+Date.now()+"-"+(Math.floor(8999999999999*Math.random())+1e12),navigationType:u,navigationId:e||f,navigationInteractionId:a,navigationURL:r||(null==s?void 0:s.name),navigationStartTime:v||0}},b=new WeakMap;function T(i,t){var n=b.get(t);return n||(n=new WeakMap,b.set(t,n)),n.get(i)||n.set(i,new t),n.get(i)}class w{constructor(){this.t=void 0,this.i=0,this.o=[]}h(i){var t;if(!i.hadRecentInput){var n=this.o[0],e=this.o.at(-1);this.i&&n&&e&&1e3>i.startTime-e.startTime&&5e3>i.startTime-n.startTime?(this.i+=i.value,this.o.push(i)):(this.i=i.value,this.o=[i]),null==(t=this.t)||t.call(this,i)}}}var y=function(i,t,n){void 0===n&&(n={});try{var e=i.filter((i=>PerformanceObserver.supportedEntryTypes.includes(i)));if(e.length>0){var r=new PerformanceObserver((i=>{queueMicrotask((()=>{var n=i.getEntries();e.length>1&&n.sort(((i,t)=>i.startTime+i.duration-(t.startTime+t.duration))),t(n)}))}));for(var o of e)r.observe(a({type:o,buffered:!0},n));return r}}catch(i){}},L=i=>{var t,n;return(null==(t=globalThis.PerformanceObserver)||null==(t=t.supportedEntryTypes)?void 0:t.includes("soft-navigation"))&&"function"==typeof(null==(n=globalThis.PerformanceSoftNavigation)||null==(n=n.prototype)?void 0:n.getLargestInteractionContentfulPaint)&&i&&i.reportSoftNavs},M=(i,t)=>{if(i.set(t.navigationId,t),i.size>2){var n=i.keys().next().value;void 0!==n&&i.delete(n)}},P=i=>{var t=!1;return()=>{t||(i(),t=!0)}};class k{constructor(){this.l=void 0}}var C,E=i=>{document.prerendering?addEventListener("prerenderingchange",i,!0):i()},I=[1800,3e3],F=function(i,t){void 0===t&&(t={});var n=L(t);E((()=>{var e,a=T(t,k),r=m(),d=p("FCP"),u=y(["paint"],(i=>{for(var t of i)"first-contentful-paint"===t.name&&(u.disconnect(),r.firstHiddenTime>t.startTime&&(d.value=Math.max(t.startTime-l(),0),d.entries.push(t),d.navigationId=t.navigationId||d.navigationId,e(!0)))}));u&&(e=s(i,d,I,t.reportAllChanges),v((n=>{d=p("FCP",-1,"back-forward-cache",d.navigationId,d.navigationInteractionId,d.navigationURL,o()),e=s(i,d,I,t.reportAllChanges),f((()=>{d.value=performance.now()-n.timeStamp,e(!0)}))}))),n&&y(["soft-navigation"],(n=>{n.forEach((n=>{a.l&&n.navigationId&&M(a.l,n);var r=Math.max((n.presentationTime||n.paintTime||0)-n.startTime,0);d=p("FCP",r,"soft-navigation",n.navigationId,n.interactionId,n.name,n.startTime),(e=s(i,d,I,t.reportAllChanges))(!0)}))}),t)}))},O=[.1,.25],S=0,q=1/0,j=0,A=i=>{for(var t of i)t.interactionId&&(q=Math.min(q,t.interactionId),j=Math.max(j,t.interactionId),S=j?(j-q)/7+1:0)},N=()=>{var i;return C?S:null!==(i=performance.interactionCount)&&void 0!==i?i:0};class H{constructor(){this.u=0,this.v=[],this.m=new Map,this.p=void 0,this.T=void 0}_(){return N()-this.u}M(){this.u=N(),this.v.length=0,this.m.clear()}L(i){var t=this._(),n=Math.min(this.v.length-1,Math.floor(t/50));return!t||-1!==n||"soft-navigation"!==i&&"back-forward-cache"!==i?this.v[n]:{P:8,id:-1,entries:[]}}h(i){var t;if(null!=(t=this.p)&&t.call(this,i),i.interactionId){var n=this.v.at(-1),e=this.m.get(i.interactionId);if(e||10>this.v.length||i.duration>n.P){var a;if(e?i.duration>e.P?(e.entries=[i],e.P=i.duration):i.duration===e.P&&i.startTime===e.entries[0].startTime&&e.entries.push(i):(this.m.set((e={id:i.interactionId,entries:[i],P:i.duration}).id,e),this.v.push(e)),this.v.sort(((i,t)=>t.P-i.P)),this.v.length>10){var r=this.v.splice(10);for(var o of r)this.m.delete(o.id)}null==(a=this.T)||a.call(this,e)}}}}var W=i=>{var t="requestIdleCallback"in globalThis?1e3:0,n=globalThis.requestIdleCallback||setTimeout,e=globalThis.cancelIdleCallback||clearTimeout;if("hidden"===document.visibilityState)i();else{var a=P(i),r=-1,o=()=>{e(r),a()};addEventListener("visibilitychange",o,{once:!0,capture:!0}),r=n((()=>{removeEventListener("visibilitychange",o,{capture:!0}),a()}),{timeout:t})}},_=[200,500];class D{constructor(){this.p=void 0,this.l=void 0}h(i){var t;null==(t=this.p)||t.call(this,i)}}var R=[2500,4e3],U={onLCP(i,t){void 0===t&&(t={});var n=!1,e=L(t);E((()=>{var a,r=m(),d=p("LCP"),u=T(t,D),c=(e,o,v,f,l)=>{d=p("LCP",-1,e,o,v,f,l),a=s(i,d,R,t.reportAllChanges),n=!1,"soft-navigation"===e&&(r=m(!0))},h=i=>{u.l&&i.navigationId&&M(u.l,i),n||a(!0),c("soft-navigation",i.navigationId,i.interactionId,i.name,i.startTime);var t=null==i.getLargestInteractionContentfulPaint?void 0:i.getLargestInteractionContentfulPaint();t&&g([t])},g=i=>{for(var n of(t.reportAllChanges||e||(i=i.slice(-1)),i))if(n)if("soft-navigation"!==n.entryType){var o=0,v=[],s=n.startTime;if("largest-contentful-paint"===n.entryType)o=Math.max(n.startTime-l(),0),u.h(n),v=[n];else if("interaction-contentful-paint"===n.entryType){var f,c=n;if(!d.navigationId)continue;if("interactionId"in c&&c.interactionId!=d.navigationInteractionId)continue;s=(null==(f=c.largestContentfulPaint)?void 0:f.renderTime)||0,o=Math.max(s-n.startTime,0),c.largestContentfulPaint&&(u.h(c.largestContentfulPaint),v=[c.largestContentfulPaint])}r.firstHiddenTime>s&&(d.value=o,d.entries=v,a())}else h(n)},b=["largest-contentful-paint"];e&&b.push("interaction-contentful-paint","soft-navigation");var w=y(b,g);if(w){a=s(i,d,R,t.reportAllChanges);var L=["keydown","click","visibilitychange"],P=i=>{if(i.isTrusted&&!n){var t=d.id;W((()=>{if(!n){if(!e)for(var i of(w.disconnect(),L))removeEventListener(i,P,{capture:!0});t===d.id&&(n=!0,a(!0))}}))}};for(var k of L)addEventListener(k,P,{capture:!0});v((e=>{c("back-forward-cache",d.navigationId,d.navigationInteractionId,d.navigationURL,o()),a=s(i,d,R,t.reportAllChanges),f((()=>{d.value=performance.now()-e.timeStamp,n=!0,a(!0)}))}))}}))},onCLS(i,t){void 0===t&&(t={});var n=m();F(P((()=>{var e,a=p("CLS",0),r=T(t,w),d=(n,o,v,f,d)=>{a=p("CLS",0,n,o,v,f,d),r.i=0,e=s(i,a,O,t.reportAllChanges)},l=function(i){void 0===i&&(i=!1),r.i>a.value&&(a.value=r.i,a.entries=r.o),e(i)},u=i=>{l(!0),d("soft-navigation",i.navigationId,i.interactionId,i.name,i.startTime)},c=i=>{for(var t of i)"soft-navigation"!==t.entryType?r.h(t):u(t);l()},h=["layout-shift"];L(t)&&h.push("soft-navigation");var g=y(h,c);g&&(e=s(i,a,O,t.reportAllChanges),n.onHidden((()=>{c(g.takeRecords()),e(!0)})),v((()=>{d("back-forward-cache",a.navigationId,a.navigationInteractionId,a.navigationURL,o()),f(e)})),setTimeout(e))})))},onFCP:F,onINP(i,t){if(void 0===t&&(t={}),globalThis.PerformanceEventTiming&&"interactionId"in PerformanceEventTiming.prototype){var n=m();E((()=>{var e;"interactionCount"in performance||C||(C=y(["event"],A,{durationThreshold:0}));var r,f=p("INP"),d=T(t,H),l=(n,e,a,o,v)=>{d.M(),f=p("INP",-1,n,e,a,o,v),r=s(i,f,_,t.reportAllChanges)},u=()=>{var i=d.L(f.navigationType);i&&i.P!==f.value&&(f.value=i.P,f.entries=i.entries,r())},c=i=>{u(),r(!0),l("soft-navigation",i.navigationId,i.interactionId,i.name,i.startTime)},h=function(i,t){void 0===t&&(t=!1),W((()=>{for(var n of i)"soft-navigation"!==n.entryType?d.h(n):c(n);u(),t&&r(!0)}))},g=["event","first-input"];L(t)&&g.push("soft-navigation");var m=y(g,h,a({},t,{durationThreshold:null!==(e=t.durationThreshold)&&void 0!==e?e:40}));r=s(i,f,_,t.reportAllChanges),m&&(n.onHidden((()=>{h(m.takeRecords(),!0)})),v((()=>{l("back-forward-cache",f.navigationId,f.navigationInteractionId,f.navigationURL,o())})))}))}}};e.__PosthogExtensions__=e.__PosthogExtensions__||{},e.__PosthogExtensions__.postHogWebVitalsCallbacksByFlavor=e.__PosthogExtensions__.postHogWebVitalsCallbacksByFlavor||{},e.__PosthogExtensions__.postHogWebVitalsCallbacksByFlavor["web-vitals-soft-navs"]=U,e.__PosthogExtensions__.postHogWebVitalsCallbacks=U,e.postHogWebVitalsCallbacks=U,e.__PosthogExtensions__.loadWebVitalsCallbacks=()=>U}(); //# sourceMappingURL=web-vitals-soft-navs.js.map