@webority/analytics 0.38.0 → 0.38.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-JWEUCPJH.js +1 -0
- package/dist/{chunk-UMKCGH25.js → chunk-QNDQUYFF.js} +1 -1
- package/dist/errors.js +1 -1
- package/dist/index.js +1 -1
- package/dist/node.js +1 -1
- package/dist/site.js +1 -1
- package/dist/types/analytics.d.ts +2 -2
- package/dist/types/errors.d.ts +3 -2
- package/dist/types/feature-flags.d.ts +2 -2
- package/dist/types/node/errors.d.ts +3 -2
- package/dist/types/posthog-bridge.d.ts +5 -2
- package/dist/types/site-posthog.d.ts +5 -6
- package/dist/types/state.d.ts +3 -3
- package/dist/types/web-vitals.d.ts +77 -12
- package/dist/{web-vitals-DND62YT4.js → web-vitals-JX43KCL5.js} +1 -1
- package/dist/webority-analytics-site.global.js +1 -1
- package/dist/webority-analytics-web-vitals.global.js +1 -1
- package/package.json +4 -3
- package/dist/chunk-LGUY6CCC.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d={sampleRate:1,softNavigations:!0,deployVersion:null,pageTemplate:null};function T(e){if(e==null||e===!1)return null;if(e===!0)return{...d};if(typeof e!="object")throw new Error("@webority/analytics: webVitals takes true or { sampleRate, softNavigations, deployVersion, pageTemplate }.");let n=e,i=n.sampleRate??d.sampleRate;if(typeof i!="number"||!(i>0&&i<=1))throw new Error("@webority/analytics: webVitals.sampleRate must be a number above 0 and at most 1.");let o=n.deployVersion??null;if(o!==null&&typeof o!="string")throw new Error("@webority/analytics: webVitals.deployVersion must be a string.");let t=n.pageTemplate??null;if(t!==null&&(typeof t!="string"||t.length>120))throw new Error("@webority/analytics: webVitals.pageTemplate must be a string of at most 120 characters.");return{sampleRate:i,softNavigations:n.softNavigations!==!1,deployVersion:o,pageTemplate:t}}function b(e,n){return n<e}function y({mobileHint:e,screenWidth:n}){return e===!0?"mobile":typeof n!="number"||n<=0?"unknown":n<768?"mobile":n<1024?"tablet":"desktop"}function _(e,n){if(typeof e!="string"||!e)return null;try{return new URL(e,n).pathname}catch{return null}}function u(e){return typeof e=="string"&&e?e.split(/[?#]/,1)[0]??null:null}var a=e=>typeof e=="number"&&Number.isFinite(e)?Math.round(e):null,p=(e,n)=>typeof e=="string"&&e?e.slice(0,n):null;function f(e){return typeof e?.transferSize!="number"||typeof e?.decodedBodySize!="number"?null:e.transferSize===0&&e.decodedBodySize>0?!0:e.transferSize>0?!1:null}function v(e){return{url:p(u(e.sourceURL),200),function:p(e.sourceFunctionName,80),invoker_type:e.invokerType??null,duration_ms:a(e.duration),forced_style_layout_ms:a(e.forcedStyleAndLayoutDuration)}}function S(e){let n=(e?.longAnimationFrameEntries??[]).flatMap(i=>i.scripts??[]);return n.length===0&&(n=[e?.longestScript?.entry].filter(i=>!!i)),n.length===0?null:(n.sort((i,o)=>(o.duration??0)-(i.duration??0)),n.slice(0,3).map(v))}function h(e,n){let i=e.name,o=i==="CLS"?Math.round(e.value*1e4)/1e4:a(e.value),t={[`$web_vitals_${i}_value`]:o,vital:i,value:o,rating:e.rating,metric_id:e.id,navigation_type:e.navigationType??null,path:_(e.navigationURL??n.pageUrl,n.pageUrl),deploy_version:n.deployVersion??null,device_class:n.deviceClass,page_template:e.navigationType==="soft-navigation"?null:n.pageTemplate??null};if(e.name==="INP"){let r=e.attribution??{};t.inp_target=r.interactionTarget||null,t.inp_longest_script_url=u(r.longestScript?.entry?.sourceURL),t.inp_input_delay_ms=a(r.inputDelay),t.inp_processing_ms=a(r.processingDuration),t.inp_presentation_delay_ms=a(r.presentationDelay),t.inp_interaction_type=r.interactionType??null,t.inp_load_state=r.loadState??null,t.inp_scripts=S(r)}if(e.name==="LCP"){let r=e.attribution??{};t.lcp_ttfb_ms=a(r.timeToFirstByte),t.lcp_resource_load_delay_ms=a(r.resourceLoadDelay),t.lcp_resource_load_duration_ms=a(r.resourceLoadDuration),t.lcp_element_render_delay_ms=a(r.elementRenderDelay),t.lcp_target=r.target??null,t.lcp_url=/^(?:data|blob):/.test(r.url??"")?"data:":u(r.url),t.lcp_element_tag=r.lcpEntry?.element?.tagName?.toLowerCase()??null,t.lcp_nav_cached=f(r.navigationEntry),t.lcp_resource_cached=f(r.lcpResourceEntry)}if(e.name==="CLS"){let r=e.attribution??{};t.cls_target=r.largestShiftTarget??null,t.cls_largest_shift=typeof r.largestShiftValue=="number"&&Number.isFinite(r.largestShiftValue)?Math.round(r.largestShiftValue*1e4)/1e4:null,t.cls_largest_shift_time_ms=a(r.largestShiftTime),t.cls_load_state=r.loadState??null}return t}var s={started:!1,send:null};function R(e,n,{load:i=()=>import("./web-vitals.attribution-NGD57Y3S.js"),roll:o=Math.random()}={}){if(s.send=n,s.started||(s.started=!0,!b(e.sampleRate,o)))return Promise.resolve();let t=globalThis.navigator,r={deployVersion:e.deployVersion,pageTemplate:e.pageTemplate,deviceClass:y({mobileHint:t?.userAgentData?.mobile,screenWidth:globalThis.screen?.width})},c=l=>{try{s.send?.("$web_vitals",h(l,{...r,pageUrl:globalThis.location?.href}))}catch{}},g={reportSoftNavs:e.softNavigations};return Promise.resolve().then(i).then(l=>{for(let m of[l.onLCP,l.onINP,l.onCLS,l.onFCP,l.onTTFB])m(c,g)}).catch(()=>{})}function V(){s.started=!1,s.send=null}export{T as a,b,y as c,f as d,S as e,h as f,R as g,V as h};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as et}from"./chunk-LGUY6CCC.js";var xt=["google","googleads","adwords","youtube"],Ft=["meta","facebook","fb","instagram","ig","messenger"],Ut=["linkedin","lnkd"],Mt=["bing","microsoft","microsoftads","msn"],nt=Object.freeze([["chatgpt",["chatgpt.com","chat.openai.com"]],["perplexity",["perplexity.ai"]],["gemini",["gemini.google.com"]],["copilot",["copilot.microsoft.com"]],["claude",["claude.ai"]],["you",["you.com"]],["phind",["phind.com"]],["deepseek",["deepseek.com"]],["grok",["grok.com"]],["meta_ai",["meta.ai"]],["poe",["poe.com"]]]),Ht=["bing.com","duckduckgo.com","search.yahoo.com","ecosia.org","search.brave.com"],Vt=["google","yandex"],$t=["facebook.com","fb.com","instagram.com","linkedin.com","lnkd.in","twitter.com","t.co","x.com","reddit.com","pinterest.com","youtube.com","youtu.be","tiktok.com","whatsapp.com","threads.net","t.me","telegram.org"],g=Object.freeze({DIRECT:"direct",GOOGLE:"google",META:"meta",LINKEDIN:"linkedin",MICROSOFT:"microsoft",OTHER:"other",AI_ASSISTANT:"ai_assistant",ORGANIC_SEARCH:"organic_search",ORGANIC_SOCIAL:"organic_social",REFERRAL:"referral"});function A(t){if(!t)return g.DIRECT;let e=m(t.utmSource);if(e){let r=O(e);if(xt.includes(r))return g.GOOGLE;if(Ft.includes(r))return g.META;if(Ut.includes(r))return g.LINKEDIN;if(Mt.includes(r))return g.MICROSOFT}if(m(t.fbclid))return g.META;if(m(t.gclid)||m(t.gbraid)||m(t.wbraid))return g.GOOGLE;if(m(t.liFatId))return g.LINKEDIN;if(m(t.msclkid))return g.MICROSOFT;if(ot(e))return g.AI_ASSISTANT;if(e||m(t.utmMedium)||m(t.utmCampaign)||m(t.utmContent)||m(t.utmTerm))return g.OTHER;let o=st(t.referrer);return o?rt(o)?g.AI_ASSISTANT:Gt(o)?g.ORGANIC_SEARCH:$t.some(r=>it(o,r))?g.ORGANIC_SOCIAL:g.REFERRAL:g.DIRECT}function F(t){if(!t)return"";let e=ot(m(t.utmSource));if(e)return e;let n=st(t.referrer);return n?rt(n):""}function ot(t){if(!t)return"";let e=O(t);for(let[n,o]of nt){let r=o;if(O(n)===e||r.some(i=>O(i)===e))return n}return""}function rt(t){for(let[e,n]of nt)if(n.some(r=>it(t,r)))return e;return""}function Gt(t){return Ht.includes(t)?!0:Vt.some(e=>{if(!t.startsWith(`${e}.`))return!1;let n=t.slice(e.length+1).split(".");return n.length===1||n.length===2&&(n[0]==="co"||n[0]==="com")})}function it(t,e){return t===e||t.endsWith(`.${e}`)}function st(t){let e=m(t);if(!e)return"";try{let n=new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`https://${e}`).hostname.toLowerCase();return n.startsWith("www.")?n.slice(4):n}catch{return""}}function O(t){return String(t).toLowerCase().replace(/[^\p{L}\p{N}]/gu,"")}function m(t){return String(t??"").trim()}var U=Object.freeze(["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","GB","CH"]);function Wt(t){return U.some(e=>e===t)}function qt(t){let e=typeof t=="string"?t.trim().toUpperCase():"";return e.length!==2||e==="XX"||e==="T1"?!0:Wt(e)}var v="webority_cookie_consent",ct="webority-consent-change",ut=365,zt=["eea","other"],M=new Set,a={initialized:!1,requiresOptIn:!0,strictOptIn:!1,adStorage:!0,cookieDays:ut,cookieDomain:null,regionCookie:null,region:null,saved:null};function Bt(t){let e=t?.strictOptIn??!1;if(typeof e!="boolean")throw new Error("@webority/analytics: initConsent strictOptIn must be true or false, or left out.");if(e){if(t.requiresOptIn!==void 0&&t.requiresOptIn!==!0)throw new Error("@webority/analytics: initConsent strictOptIn asks every visitor to opt in, so requiresOptIn must be true or left out.")}else if(typeof t?.requiresOptIn!="boolean")throw new Error("@webority/analytics: initConsent needs requiresOptIn (true or false), decided from the visitor's country.");if(t.cookieDomain!==void 0&&(typeof t.cookieDomain!="string"||!t.cookieDomain.trim()))throw new Error('@webority/analytics: initConsent cookieDomain must be a domain such as ".example.com", or left out.');if(t.cookieDays!==void 0&&!(Number.isInteger(t.cookieDays)&&t.cookieDays>0))throw new Error("@webority/analytics: initConsent cookieDays must be a whole number of days above zero, or left out.");if(t.adStorage!==void 0&&typeof t.adStorage!="boolean")throw new Error("@webority/analytics: initConsent adStorage must be true or false, or left out.");if(t.regionCookie!==void 0&&(typeof t.regionCookie!="string"||!/^[\w.-]+$/.test(t.regionCookie)))throw new Error('@webority/analytics: initConsent regionCookie must be a cookie name such as "wui_region", or left out.');a.initialized=!0,a.strictOptIn=e,a.requiresOptIn=e||t.requiresOptIn===!0,a.adStorage=t.adStorage??!e,a.cookieDays=t.cookieDays??ut,a.cookieDomain=t.cookieDomain?.trim()??null,a.regionCookie=t.regionCookie??null,a.region=a.regionCookie?Jt(a.regionCookie):null;let{saved:n,entryCount:o}=Xt();a.saved=n,a.cookieDomain&&o>1&&n&&mt(n),Yt(),Qt(),a.saved?$(a.saved):ft()&>()}function Kt(t){if(V("setConsentRegion"),!pt(t))throw new Error('@webority/analytics: setConsentRegion needs "eea" or "other".');let e=f();if(a.region=t,a.saved)return;let n=f();e.analytics===n.analytics&&e.functional===n.functional&&e.marketing===n.marketing||(gt(),dt(n))}function C(){return a.initialized}function lt(){return a.strictOptIn}function H(){return a.adStorage}function f(){V("getConsent");let t=a.saved;if(t)return{essential:!0,analytics:t.analytics,functional:t.functional,marketing:t.marketing,decided:!0};if(ft())return{essential:!0,analytics:!0,functional:!0,marketing:!1,decided:!1};let e=!a.requiresOptIn;return{essential:!0,analytics:e,functional:e,marketing:e,decided:!1}}function jt(t){V("saveConsent");let e={essential:!0,analytics:t?.analytics===!0,functional:t?.functional===!0,marketing:t?.marketing===!0,timestamp:new Date().toISOString()};mt(e),a.saved=e,$(e),dt(f())}function E(t){return M.add(t),()=>M.delete(t)}function dt(t){for(let e of M)try{e(t)}catch(n){queueMicrotask(()=>{throw n})}typeof window?.dispatchEvent=="function"&&typeof CustomEvent=="function"&&window.dispatchEvent(new CustomEvent(ct,{detail:t}))}function V(t){if(!a.initialized)throw new Error(`@webority/analytics: call initConsent before ${t}.`)}function b(...t){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}function Yt(){if(a.strictOptIn){b("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500});return}b("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500,region:[...U]});let t=a.adStorage?"granted":"denied";b("consent","default",{ad_storage:t,ad_user_data:t,ad_personalization:t,analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted"})}function Qt(){b("set","ads_data_redaction",!0),b("set","url_passthrough",!0)}function ft(){return a.requiresOptIn&&!a.strictOptIn&&a.region==="other"}function gt(){let t=f();$(t,t.analytics&&a.adStorage)}function $(t,e=t.marketing&&a.adStorage){let n=o=>o?"granted":"denied";b("consent","update",{analytics_storage:n(t.analytics),functionality_storage:n(t.functional),personalization_storage:n(t.functional),ad_storage:n(e),ad_user_data:n(e),ad_personalization:n(e)})}function Xt(){let t=`${v}=`,e=(document.cookie||"").split(";").map(o=>o.trim()).filter(o=>o.startsWith(t)),n=e.map(o=>Zt(o.slice(t.length))).filter(o=>o!==null);return{saved:te(n),entryCount:e.length}}function Jt(t){let e=`${t}=`,o=(document.cookie||"").split(";").map(r=>r.trim()).find(r=>r.startsWith(e))?.slice(e.length);return pt(o)?o:null}function pt(t){return zt.some(e=>e===t)}function Zt(t){try{let e=JSON.parse(decodeURIComponent(t));return ee(e)?{essential:!0,analytics:e.analytics===!0,functional:e.functional===!0,marketing:e.marketing===!0,timestamp:e.timestamp??null}:null}catch{return null}}function te(t){let e=t.map(i=>({choice:i,time:typeof i.timestamp=="string"?Date.parse(i.timestamp):Number.NaN}));if(e.some(i=>Number.isNaN(i.time)))return t.at(-1)??null;let[n,...o]=e;if(!n)return null;let r=n;for(let i of o)i.time>=r.time&&(r=i);return r.choice}function mt(t){let e=typeof t.timestamp=="string"?Date.parse(t.timestamp):Number.NaN,n=(Number.isNaN(e)?Date.now():e)+a.cookieDays*24*60*60*1e3,o=window.location?.protocol==="https:"?";Secure":"";a.cookieDomain&&at(`${v}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;max-age=0;path=/;SameSite=Lax${o}`);let r=a.cookieDomain?`;domain=${a.cookieDomain}`:"";at(`${v}=${encodeURIComponent(JSON.stringify(t))};expires=${new Date(n).toUTCString()};path=/${r};SameSite=Lax${o}`)}function at(t){document.cookie=t}function ee(t){return typeof t=="object"&&t!==null}var k="webority_attribution",ne=2160*60*60*1e3,oe=200,G=500,re=Object.freeze({utm_source:"utmSource",utm_medium:"utmMedium",utm_campaign:"utmCampaign",utm_content:"utmContent",utm_term:"utmTerm",gclid:"gclid",gbraid:"gbraid",wbraid:"wbraid",fbclid:"fbclid",msclkid:"msclkid",li_fat_id:"liFatId"}),ie=["utmSource","utmMedium","utmCampaign","utmContent","utmTerm","gclid","gbraid","wbraid","fbclid","msclkid","liFatId","referrer","aiSource","landingPage"],yt=!1;function se(){St("captureAttribution"),le();let t=ce();if(!t)return;let e=K(W());Ct(W(),{firstTouch:e?.firstTouch??t,lastTouch:t}),ae(t)}function ae(t){let e={event:"acquisition_touch",acquisition_channel:A(t)};t.aiSource&&(e.ai_source=t.aiSource),window.dataLayer=window.dataLayer||[],window.dataLayer.push(e)}function B(){return St("getAttribution"),K(W())}function ce(){let t=new URLSearchParams(window.location.search),e={};for(let[r,i]of Object.entries(re)){let c=R(t.get(r),oe);c&&(e[i]=c)}let n=R(t.get("referrer"),G)||ue();if(n&&(e.referrer=n),Object.keys(e).length===0)return null;let o=F(e);return o&&(e.aiSource=o),{...e,landingPage:R(window.location.pathname,G),capturedDateTimeUtc:new Date().toISOString()}}function ue(){let t=document.referrer;if(!t)return"";try{return new URL(t).hostname===window.location.hostname?"":R(t,G)}catch{return""}}function le(){yt||(yt=!0,E(t=>{let e=t.marketing?z():q(),n=t.marketing?q():z(),o=K(e);de(e),o&&Ct(n,o)}))}function W(){return f().marketing?q():z()}function q(){try{return window.localStorage}catch{return null}}function z(){try{return window.sessionStorage}catch{return null}}function K(t){try{let e=t?.getItem(k);if(!e)return null;let n=JSON.parse(e),o=Et(n)?n:{},r=_t(o.firstTouch),i=_t(o.lastTouch),c=r??i,d=i??r;return!c||!d?(t?.removeItem(k),null):{firstTouch:c,lastTouch:d}}catch{return null}}function Ct(t,e){try{t?.setItem(k,JSON.stringify(e))}catch{}}function de(t){try{t?.removeItem(k)}catch{}}function _t(t){if(!fe(t))return null;let e=Date.parse(t.capturedDateTimeUtc);return Number.isFinite(e)&&Date.now()-e<=ne?t:null}function fe(t){return!Et(t)||typeof t.capturedDateTimeUtc!="string"?!1:ie.every(e=>t[e]===void 0||typeof t[e]=="string")}function Et(t){return typeof t=="object"&&t!==null}function R(t,e){let n=String(t??"").trim();return n?n.slice(0,e):""}function St(t){if(!C())throw new Error(`@webority/analytics: call initConsent before ${t}.`)}function ht(t,e){return import("./web-vitals-DND62YT4.js").then(n=>n.startWebVitals(t,e)).catch(()=>{})}var ge=["scroll","mousemove","touchstart","keydown","pointerdown"];function N(t){let e=!1,n=()=>{e||(e=!0,t())};for(let o of ge)window.addEventListener(o,n,{once:!0,passive:!0});document.readyState==="complete"?setTimeout(n,1500):window.addEventListener("load",()=>setTimeout(n,1500),{once:!0})}var s=Object.freeze({SIGNUP_STARTED:"signup_started",SIGNUP_COMPLETED:"signup_completed",LOGIN_SUCCEEDED:"login_succeeded",ONBOARDING_STARTED:"onboarding_started",ONBOARDING_STEP_COMPLETED:"onboarding_step_completed",ONBOARDING_COMPLETED:"onboarding_completed",SUBSCRIPTION_ACTIVATED:"subscription_activated",SUBSCRIPTION_CANCELLED:"subscription_cancelled",PAYMENT_SUCCEEDED:"payment_succeeded",PAYMENT_FAILED:"payment_failed",FEEDBACK_SUBMITTED:"feedback_submitted",LEAD_SUBMITTED:"lead_submitted",LEAD_QUALIFIED:"lead_qualified",LEAD_WON:"lead_won",WHATSAPP_CLICK:"whatsapp_click",CALCULATOR_USE:"calculator_use",PHONE_CLICK:"phone_click",DEMO_BOOKED:"demo_booked",CONTACT_SUBMITTED:"contact_submitted",TRIAL_START_CLICK:"trial_start_click",SAMPLE_REPORT_DOWNLOAD:"sample_report_download",REPORT_VERIFIED:"report_verified",CONTENT_ENGAGED:"content_engaged",EMAIL_CLICK:"email_click",PAGE_NOT_FOUND:"page_not_found",CHAT_OPENED:"chat_opened",CHAT_STARTED:"chat_started",CHAT_INPUT_SUBMITTED:"chat_input_submitted",CHAT_HANDOFF_REQUESTED:"chat_handoff_requested",CHAT_RATED:"chat_rated",CHAT_ACTION_REPEATED:"chat_action_repeated",TOUR_STARTED:"tour_started",TOUR_STEP_VIEWED:"tour_step_viewed",TOUR_COMPLETED:"tour_completed",TOUR_SKIPPED:"tour_skipped"}),Ye=Object.freeze({signupStarted:s.SIGNUP_STARTED,signupCompleted:s.SIGNUP_COMPLETED,loginSucceeded:s.LOGIN_SUCCEEDED,onboardingStarted:s.ONBOARDING_STARTED,onboardingStepCompleted:s.ONBOARDING_STEP_COMPLETED,onboardingCompleted:s.ONBOARDING_COMPLETED,subscriptionActivated:s.SUBSCRIPTION_ACTIVATED,subscriptionCancelled:s.SUBSCRIPTION_CANCELLED,paymentSucceeded:s.PAYMENT_SUCCEEDED,paymentFailed:s.PAYMENT_FAILED,feedbackSubmitted:s.FEEDBACK_SUBMITTED,leadSubmitted:s.LEAD_SUBMITTED,leadQualified:s.LEAD_QUALIFIED,leadWon:s.LEAD_WON,whatsappClick:s.WHATSAPP_CLICK,calculatorUse:s.CALCULATOR_USE,phoneClick:s.PHONE_CLICK,demoBooked:s.DEMO_BOOKED,contactSubmitted:s.CONTACT_SUBMITTED,trialStartClick:s.TRIAL_START_CLICK,sampleReportDownload:s.SAMPLE_REPORT_DOWNLOAD,reportVerified:s.REPORT_VERIFIED,contentEngaged:s.CONTENT_ENGAGED,emailClick:s.EMAIL_CLICK,pageNotFound:s.PAGE_NOT_FOUND,chatOpened:s.CHAT_OPENED,chatStarted:s.CHAT_STARTED,chatInputSubmitted:s.CHAT_INPUT_SUBMITTED,chatHandoffRequested:s.CHAT_HANDOFF_REQUESTED,chatRated:s.CHAT_RATED,chatActionRepeated:s.CHAT_ACTION_REPEATED,tourStarted:s.TOUR_STARTED,tourStepViewed:s.TOUR_STEP_VIEWED,tourCompleted:s.TOUR_COMPLETED,tourSkipped:s.TOUR_SKIPPED}),bt=/^[a-z][a-z0-9]*(_[a-z0-9]+)*$/;function Tt(){let t=new Set(Object.values(s));return{register(e){for(let n of e){if(!bt.test(n))throw new Error(`@webority/analytics: invalid event name "${n}". Expected snake_case.`);t.add(n)}},assertRegistered(e){if(!t.has(e))throw new Error(`@webority/analytics: event "${e}" is not registered. Call registerEvents() first.`)}}}var j=Tt(),u={config:null,posthogInstance:null,posthogInitPromise:null,pendingIdentify:null};function en(t){u.config=t,u.posthogInstance=null,u.posthogInitPromise=null,u.pendingIdentify=null}function pe(){let t=u.config;return t?!!(t.enabled&&t.clientKey&&t.environment!=="Local"):!1}function D(){return C()&&f().analytics}function wt(){return pe()&&D()}var P=new Set,It=new WeakSet,At=null;function rn(t){let e=Y();if(!e)return!1;try{return e.isFeatureEnabled(t)===!0}catch(n){return Rt(`feature flag "${t}" could not be read, so it reads as off`,n),L(n),!1}}function sn(t){let e=Y();if(!e)return null;try{return e.getFeatureFlag(t)??null}catch(n){return Rt(`feature flag "${t}" could not be read, so it reads as null`,n),L(n),null}}function an(t){P.add(t);let e=Y();return(!e||At===e)&&queueMicrotask(()=>{P.has(t)&&vt(t)}),()=>P.delete(t)}function Ot(t){u.config?.featureFlags!==!0||It.has(t)||typeof t.onFeatureFlags!="function"||(It.add(t),t.onFeatureFlags(()=>{At=t;for(let e of[...P])vt(e)}))}function Y(){return u.config?.featureFlags!==!0||!wt()?null:u.posthogInstance??null}function vt(t){try{t()}catch(e){L(e)}}function Rt(t,e){let n=u.config?.logger,o=typeof n?.warn=="function"?n.warn:n?.info;if(typeof o=="function")try{o.call(n,`@webority/analytics: ${t}: ${me(e)}`)}catch(r){L(r)}}function me(t){return typeof t=="object"&&t!==null&&"message"in t&&t.message!==void 0&&t.message!==null?t.message:t}function L(t){queueMicrotask(()=>{throw t})}var ye=new Set(["token","code","email","access_token","id_token","state","session_state","password","search","q","query"]),_e=/(?:access_token|id_token|session_state|token|code|state|email|password)=/i,Ce=["$current_url","$referrer","$pathname","$initial_current_url","$initial_referrer","$initial_pathname","$session_entry_url","$session_entry_referrer","$session_entry_pathname"],Ee=4,Se=5,he=6;function T(t){if(typeof t!="string")return t;let e=t.indexOf("#"),n=e===-1?t:t.slice(0,e),o=e===-1||_e.test(t.slice(e))?"":t.slice(e),r=n.indexOf("?");if(r===-1)return n+o;let i=n.slice(r+1).split("&"),c=i.filter(p=>!ye.has(Ie(p))).map(we);if(c.length===i.length&&c.every((p,w)=>p===i[w]))return n+o;let d=n.slice(0,r),y=c.filter(p=>p!=="").join("&");return(y?`${d}?${y}`:d)+o}function kt(t){if(!S(t))return t;let e=t.properties,n=S(e)?e:void 0;for(let i of[e,t.$set,t.$set_once,n?.$set,n?.$set_once])Te(i);let o=n?.$heatmap_data;if(n&&S(o)){let i={};for(let[c,d]of Object.entries(o)){let y=T(c),p=i[y];i[y]=Array.isArray(p)?p.concat(d):d}n.$heatmap_data=i}if(n){for(let[i,c]of Object.entries(n))if(i.startsWith("$web_vitals_")&&i.endsWith("_event")&&S(c))for(let d of["$current_url","navigationURL"]){let y=c[d];typeof y=="string"&&(c[d]=T(y))}}let r=n?.$snapshot_data;if(t.event==="$snapshot"&&r&&typeof r=="object"){let i=Array.isArray(r)?r:[r];for(let c of i)be(c)}return t}function be(t){if(!S(t))return;let e=t.data;if(S(e)){if(t.type===Ee)x(e,["href"]);else if(t.type===Se)x(e.payload,["href"]);else if(t.type===he){let n=e.payload;if(S(n)&&Array.isArray(n.requests))for(let o of n.requests)x(o,["name","url"])}}}function x(t,e){if(S(t))for(let n of e){let o=t[n];typeof o=="string"&&(t[n]=T(o))}}function Te(t){x(t,Ce)}function we(t){let e=t.indexOf("=");if(e===-1)return t;let n=t.slice(e+1).replace(/\+/g," "),o;try{o=decodeURIComponent(n)}catch{o=Nt(n)}if(!o.startsWith("/")&&!/^https?:\/\//i.test(o))return t;let r=T(o);return r===o?t:`${t.slice(0,e)}=${encodeURIComponent(r)}`}function Ie(t){let e=t.replace(/\+/g," "),n;try{n=decodeURIComponent(e)}catch{n=Nt(e)}return(n.split("=",1)[0]??"").toLowerCase()}function Nt(t){return t.replace(/%([0-9a-f]{2})/gi,(e,n)=>{let o=Number.parseInt(n,16);return o<128?String.fromCharCode(o):e})}function S(t){return typeof t=="object"&&t!==null}async function gn(){if(u.posthogInstance)return u.posthogInstance;if(u.posthogInitPromise)return u.posthogInitPromise;let t=u.config;if(!t)throw new Error("@webority/analytics: initAnalytics has not run.");return u.posthogInitPromise=import("posthog-js").then(e=>{let n=e.default??e,o=Q(X(t),D(),t.featureFlags===!0);return n.init(t.clientKey,o),n.register({product:t.product,surface:t.surface,environment:t.environment}),D()?n.opt_in_capturing({captureEventName:!1}):n.opt_out_capturing(),u.posthogInstance=n,Ot(n),n}).catch(e=>{throw u.posthogInitPromise=null,e}),u.posthogInitPromise}function Q(t,e,n=!1){return e?t:{...t,opt_out_capturing_by_default:!0,...n?{advanced_disable_feature_flags_on_first_load:!0}:{}}}function X(t){let e=t.sessionRecording??{enabled:!1,maskAllInputs:!0,maskTextSelector:null},n={api_host:t.host,autocapture:!1,capture_pageview:"history_change",cookieless_mode:"on_reject",person_profiles:"identified_only",persistence:"localStorage+cookie",cross_subdomain_cookie:!0,disable_session_recording:!e.enabled,enable_heatmaps:t.heatmaps===!0,capture_exceptions:t.captureExceptions===!0,capture_performance:{web_vitals:!1},disable_surveys:!0,disable_product_tours:!0,disable_conversations:!0,advanced_disable_feature_flags:!(e.enabled||t.featureFlags===!0),before_send:kt};if(e.enabled){let o={maskAllInputs:e.maskAllInputs??!0,...e.maskTextSelector?{maskTextSelector:e.maskTextSelector}:{},maskCapturedNetworkRequestFn:r=>({...r,name:T(r.name)}),recordBody:!1,recordHeaders:!1};n.session_recording=o}return n}var Ae=()=>import("posthog-js"),Oe=100,l={config:null,posthog:null,pending:[],failed:!1,loadPosthog:Ae,startVitals:ht,stopFollowingConsent:null};function ve({host:t,clientKey:e,product:n,surface:o,environment:r,enabled:i=!0,sessionRecording:c,heatmaps:d=!1,captureExceptions:y=!1,webVitals:p=!1}={}){if(!C())throw new Error("@webority/analytics: call initConsent before initSiteAnalytics.");let w=et(p);if(!i||!t||!e||r==="Local"||l.config)return;let I={host:t,clientKey:e,product:n,surface:o,environment:r,sessionRecording:c,heatmaps:d,captureExceptions:y,webVitals:w};l.config=I,l.stopFollowingConsent=E(h=>ke(h.analytics)),N(()=>{Promise.resolve().then(l.loadPosthog).then(h=>Re(h.default??h,I)).catch(()=>{l.failed=!0,l.pending=[]})})}function Re(t,e){let n=f().analytics;t.init(e.clientKey,Q(Ne(e),n)),t.register({product:e.product,surface:e.surface,environment:e.environment}),n?t.opt_in_capturing({captureEventName:!1}):t.opt_out_capturing(),l.posthog=t;let o=l.pending;l.pending=[];for(let[r,i]of o)J(t,r,i);e.webVitals&&l.startVitals(e.webVitals,(r,i)=>J(t,r,i))}function ke(t){l.posthog&&(t?l.posthog.opt_in_capturing():l.posthog.opt_out_capturing())}function Ne(t){return{...X({host:t.host,sessionRecording:t.sessionRecording,heatmaps:t.heatmaps,captureExceptions:t.captureExceptions}),capture_pageview:!0}}function Dt(t,e){let n=l.config;if(!n)return;let o={...e,product:n.product,surface:n.surface,environment:n.environment};l.posthog?J(l.posthog,t,o):!l.failed&&l.pending.length<Oe&&l.pending.push([t,o])}function J(t,e,n){try{t.capture(e,n)}catch{}}function De(t,e={}){j.assertRegistered(t);let n=f().analytics,o=B(),r={...e};for(let[i,c]of[["first",o?.firstTouch],["last",o?.lastTouch]])c&&(r[`${i}_touch_channel`]=A(c),c.aiSource&&(r[`${i}_touch_ai_source`]=c.aiSource));return Dt(t,r),n?(window.dataLayer=window.dataLayer||[],window.dataLayer.push({...r,event:t}),!0):!1}function Pe(t){j.register(t)}var Le="https://www.googletagmanager.com/gtm.js",xe=3e3,Fe=100,_={loaded:!1,clarityId:null,clarityLoaded:!1,cancelClaritySchedule:null};function Ue(t={}){if(!C())throw new Error("@webority/analytics: call initConsent before loadTags.");if(_.loaded)return;_.loaded=!0;let{gtmId:e,gtmUrl:n=Le,clarityId:o,ahrefsKey:r}=t;if(typeof n!="string"||n.trim()==="")throw new Error("@webority/analytics: gtmUrl must be a non-empty string.");let i=lt();if(r){let c=()=>tt("https://analytics.ahrefs.com/analytics.js",{"data-key":r});i?Pt(d=>d.analytics,c):c()}if(e){let c=H(),d=h=>h.analytics||h.marketing&&c,y=()=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({"gtm.start":Date.now(),event:"gtm.js"}),tt(`${n}${n.includes("?")?"&":"?"}id=${encodeURIComponent(e)}`)},p=f(),w=p.decided&&d(p)?Me:N,I=()=>w(y);i?Pt(d,I):I()}o&&(_.clarityId=o,f().analytics&&He(),E(c=>{c.analytics&&!_.clarityLoaded?Z():_.clarityLoaded&&Lt(c)}))}function Pt(t,e){if(t(f())){e();return}let n=E(o=>{t(o)&&(n(),e())})}function Me(t){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t,{once:!0}):t()}function He(){let t=()=>{window.scrollY>Fe&&Z()};window.addEventListener("scroll",t,{passive:!0});let e=setTimeout(Z,xe);_.cancelClaritySchedule=()=>{window.removeEventListener("scroll",t),clearTimeout(e)}}function Z(){if(_.cancelClaritySchedule?.(),_.cancelClaritySchedule=null,_.clarityLoaded||!_.clarityId)return;_.clarityLoaded=!0;let t=function(){t.q=t.q||[],t.q.push(arguments)};window.clarity=window.clarity||t,Lt(f()),tt(`https://www.clarity.ms/tag/${encodeURIComponent(_.clarityId)}`,{crossorigin:"anonymous"})}function Lt(t){window.clarity?.("consentv2",{ad_Storage:t.marketing&&H()?"granted":"denied",analytics_Storage:t.analytics?"granted":"denied"})}function tt(t,e={}){let n=document.createElement("script");n.async=!0,n.src=t;for(let[o,r]of Object.entries(e))n.setAttribute(o,r);document.head.appendChild(n)}export{qt as a,v as b,ct as c,Bt as d,Kt as e,C as f,f as g,jt as h,E as i,s as j,Ye as k,j as l,u as m,en as n,pe as o,D as p,rn as q,sn as r,an as s,gn as t,g as u,A as v,F as w,se as x,B as y,ve as z,De as A,Pe as B,Ue as C};
|
|
1
|
+
import{a as et}from"./chunk-JWEUCPJH.js";var xt=["google","googleads","adwords","youtube"],Ft=["meta","facebook","fb","instagram","ig","messenger"],Ut=["linkedin","lnkd"],Mt=["bing","microsoft","microsoftads","msn"],nt=Object.freeze([["chatgpt",["chatgpt.com","chat.openai.com"]],["perplexity",["perplexity.ai"]],["gemini",["gemini.google.com"]],["copilot",["copilot.microsoft.com"]],["claude",["claude.ai"]],["you",["you.com"]],["phind",["phind.com"]],["deepseek",["deepseek.com"]],["grok",["grok.com"]],["meta_ai",["meta.ai"]],["poe",["poe.com"]]]),Ht=["bing.com","duckduckgo.com","search.yahoo.com","ecosia.org","search.brave.com"],Vt=["google","yandex"],$t=["facebook.com","fb.com","instagram.com","linkedin.com","lnkd.in","twitter.com","t.co","x.com","reddit.com","pinterest.com","youtube.com","youtu.be","tiktok.com","whatsapp.com","threads.net","t.me","telegram.org"],g=Object.freeze({DIRECT:"direct",GOOGLE:"google",META:"meta",LINKEDIN:"linkedin",MICROSOFT:"microsoft",OTHER:"other",AI_ASSISTANT:"ai_assistant",ORGANIC_SEARCH:"organic_search",ORGANIC_SOCIAL:"organic_social",REFERRAL:"referral"});function A(t){if(!t)return g.DIRECT;let e=m(t.utmSource);if(e){let r=O(e);if(xt.includes(r))return g.GOOGLE;if(Ft.includes(r))return g.META;if(Ut.includes(r))return g.LINKEDIN;if(Mt.includes(r))return g.MICROSOFT}if(m(t.fbclid))return g.META;if(m(t.gclid)||m(t.gbraid)||m(t.wbraid))return g.GOOGLE;if(m(t.liFatId))return g.LINKEDIN;if(m(t.msclkid))return g.MICROSOFT;if(ot(e))return g.AI_ASSISTANT;if(e||m(t.utmMedium)||m(t.utmCampaign)||m(t.utmContent)||m(t.utmTerm))return g.OTHER;let o=st(t.referrer);return o?rt(o)?g.AI_ASSISTANT:Gt(o)?g.ORGANIC_SEARCH:$t.some(r=>it(o,r))?g.ORGANIC_SOCIAL:g.REFERRAL:g.DIRECT}function F(t){if(!t)return"";let e=ot(m(t.utmSource));if(e)return e;let n=st(t.referrer);return n?rt(n):""}function ot(t){if(!t)return"";let e=O(t);for(let[n,o]of nt){let r=o;if(O(n)===e||r.some(i=>O(i)===e))return n}return""}function rt(t){for(let[e,n]of nt)if(n.some(r=>it(t,r)))return e;return""}function Gt(t){return Ht.includes(t)?!0:Vt.some(e=>{if(!t.startsWith(`${e}.`))return!1;let n=t.slice(e.length+1).split(".");return n.length===1||n.length===2&&(n[0]==="co"||n[0]==="com")})}function it(t,e){return t===e||t.endsWith(`.${e}`)}function st(t){let e=m(t);if(!e)return"";try{let n=new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`https://${e}`).hostname.toLowerCase();return n.startsWith("www.")?n.slice(4):n}catch{return""}}function O(t){return String(t).toLowerCase().replace(/[^\p{L}\p{N}]/gu,"")}function m(t){return String(t??"").trim()}var U=Object.freeze(["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","GB","CH"]);function Wt(t){return U.some(e=>e===t)}function qt(t){let e=typeof t=="string"?t.trim().toUpperCase():"";return e.length!==2||e==="XX"||e==="T1"?!0:Wt(e)}var v="webority_cookie_consent",ct="webority-consent-change",ut=365,Bt=["eea","other"],M=new Set,a={initialized:!1,requiresOptIn:!0,strictOptIn:!1,adStorage:!0,cookieDays:ut,cookieDomain:null,regionCookie:null,region:null,saved:null};function zt(t){let e=t?.strictOptIn??!1;if(typeof e!="boolean")throw new Error("@webority/analytics: initConsent strictOptIn must be true or false, or left out.");if(e){if(t.requiresOptIn!==void 0&&t.requiresOptIn!==!0)throw new Error("@webority/analytics: initConsent strictOptIn asks every visitor to opt in, so requiresOptIn must be true or left out.")}else if(typeof t?.requiresOptIn!="boolean")throw new Error("@webority/analytics: initConsent needs requiresOptIn (true or false), decided from the visitor's country.");if(t.cookieDomain!==void 0&&(typeof t.cookieDomain!="string"||!t.cookieDomain.trim()))throw new Error('@webority/analytics: initConsent cookieDomain must be a domain such as ".example.com", or left out.');if(t.cookieDays!==void 0&&!(Number.isInteger(t.cookieDays)&&t.cookieDays>0))throw new Error("@webority/analytics: initConsent cookieDays must be a whole number of days above zero, or left out.");if(t.adStorage!==void 0&&typeof t.adStorage!="boolean")throw new Error("@webority/analytics: initConsent adStorage must be true or false, or left out.");if(t.regionCookie!==void 0&&(typeof t.regionCookie!="string"||!/^[\w.-]+$/.test(t.regionCookie)))throw new Error('@webority/analytics: initConsent regionCookie must be a cookie name such as "wui_region", or left out.');a.initialized=!0,a.strictOptIn=e,a.requiresOptIn=e||t.requiresOptIn===!0,a.adStorage=t.adStorage??!e,a.cookieDays=t.cookieDays??ut,a.cookieDomain=t.cookieDomain?.trim()??null,a.regionCookie=t.regionCookie??null,a.region=a.regionCookie?Jt(a.regionCookie):null;let{saved:n,entryCount:o}=Xt();a.saved=n,a.cookieDomain&&o>1&&n&&mt(n),Yt(),Qt(),a.saved?$(a.saved):ft()&>()}function Kt(t){if(V("setConsentRegion"),!pt(t))throw new Error('@webority/analytics: setConsentRegion needs "eea" or "other".');let e=f();if(a.region=t,a.saved)return;let n=f();e.analytics===n.analytics&&e.functional===n.functional&&e.marketing===n.marketing||(gt(),dt(n))}function C(){return a.initialized}function lt(){return a.strictOptIn}function H(){return a.adStorage}function f(){V("getConsent");let t=a.saved;if(t)return{essential:!0,analytics:t.analytics,functional:t.functional,marketing:t.marketing,decided:!0};if(ft())return{essential:!0,analytics:!0,functional:!0,marketing:!1,decided:!1};let e=!a.requiresOptIn;return{essential:!0,analytics:e,functional:e,marketing:e,decided:!1}}function jt(t){V("saveConsent");let e={essential:!0,analytics:t?.analytics===!0,functional:t?.functional===!0,marketing:t?.marketing===!0,timestamp:new Date().toISOString()};mt(e),a.saved=e,$(e),dt(f())}function E(t){return M.add(t),()=>M.delete(t)}function dt(t){for(let e of M)try{e(t)}catch(n){queueMicrotask(()=>{throw n})}typeof window?.dispatchEvent=="function"&&typeof CustomEvent=="function"&&window.dispatchEvent(new CustomEvent(ct,{detail:t}))}function V(t){if(!a.initialized)throw new Error(`@webority/analytics: call initConsent before ${t}.`)}function h(...t){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}function Yt(){if(a.strictOptIn){h("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500});return}h("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500,region:[...U]});let t=a.adStorage?"granted":"denied";h("consent","default",{ad_storage:t,ad_user_data:t,ad_personalization:t,analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted"})}function Qt(){h("set","ads_data_redaction",!0),h("set","url_passthrough",!0)}function ft(){return a.requiresOptIn&&!a.strictOptIn&&a.region==="other"}function gt(){let t=f();$(t,t.analytics&&a.adStorage)}function $(t,e=t.marketing&&a.adStorage){let n=o=>o?"granted":"denied";h("consent","update",{analytics_storage:n(t.analytics),functionality_storage:n(t.functional),personalization_storage:n(t.functional),ad_storage:n(e),ad_user_data:n(e),ad_personalization:n(e)})}function Xt(){let t=`${v}=`,e=(document.cookie||"").split(";").map(o=>o.trim()).filter(o=>o.startsWith(t)),n=e.map(o=>Zt(o.slice(t.length))).filter(o=>o!==null);return{saved:te(n),entryCount:e.length}}function Jt(t){let e=`${t}=`,o=(document.cookie||"").split(";").map(r=>r.trim()).find(r=>r.startsWith(e))?.slice(e.length);return pt(o)?o:null}function pt(t){return Bt.some(e=>e===t)}function Zt(t){try{let e=JSON.parse(decodeURIComponent(t));return ee(e)?{essential:!0,analytics:e.analytics===!0,functional:e.functional===!0,marketing:e.marketing===!0,timestamp:e.timestamp??null}:null}catch{return null}}function te(t){let e=t.map(i=>({choice:i,time:typeof i.timestamp=="string"?Date.parse(i.timestamp):Number.NaN}));if(e.some(i=>Number.isNaN(i.time)))return t.at(-1)??null;let[n,...o]=e;if(!n)return null;let r=n;for(let i of o)i.time>=r.time&&(r=i);return r.choice}function mt(t){let e=typeof t.timestamp=="string"?Date.parse(t.timestamp):Number.NaN,n=(Number.isNaN(e)?Date.now():e)+a.cookieDays*24*60*60*1e3,o=window.location?.protocol==="https:"?";Secure":"";a.cookieDomain&&at(`${v}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;max-age=0;path=/;SameSite=Lax${o}`);let r=a.cookieDomain?`;domain=${a.cookieDomain}`:"";at(`${v}=${encodeURIComponent(JSON.stringify(t))};expires=${new Date(n).toUTCString()};path=/${r};SameSite=Lax${o}`)}function at(t){document.cookie=t}function ee(t){return typeof t=="object"&&t!==null}var k="webority_attribution",ne=2160*60*60*1e3,oe=200,G=500,re=Object.freeze({utm_source:"utmSource",utm_medium:"utmMedium",utm_campaign:"utmCampaign",utm_content:"utmContent",utm_term:"utmTerm",gclid:"gclid",gbraid:"gbraid",wbraid:"wbraid",fbclid:"fbclid",msclkid:"msclkid",li_fat_id:"liFatId"}),ie=["utmSource","utmMedium","utmCampaign","utmContent","utmTerm","gclid","gbraid","wbraid","fbclid","msclkid","liFatId","referrer","aiSource","landingPage"],yt=!1;function se(){St("captureAttribution"),le();let t=ce();if(!t)return;let e=K(W());Ct(W(),{firstTouch:e?.firstTouch??t,lastTouch:t}),ae(t)}function ae(t){let e={event:"acquisition_touch",acquisition_channel:A(t)};t.aiSource&&(e.ai_source=t.aiSource),window.dataLayer=window.dataLayer||[],window.dataLayer.push(e)}function z(){return St("getAttribution"),K(W())}function ce(){let t=new URLSearchParams(window.location.search),e={};for(let[r,i]of Object.entries(re)){let c=R(t.get(r),oe);c&&(e[i]=c)}let n=R(t.get("referrer"),G)||ue();if(n&&(e.referrer=n),Object.keys(e).length===0)return null;let o=F(e);return o&&(e.aiSource=o),{...e,landingPage:R(window.location.pathname,G),capturedDateTimeUtc:new Date().toISOString()}}function ue(){let t=document.referrer;if(!t)return"";try{return new URL(t).hostname===window.location.hostname?"":R(t,G)}catch{return""}}function le(){yt||(yt=!0,E(t=>{let e=t.marketing?B():q(),n=t.marketing?q():B(),o=K(e);de(e),o&&Ct(n,o)}))}function W(){return f().marketing?q():B()}function q(){try{return window.localStorage}catch{return null}}function B(){try{return window.sessionStorage}catch{return null}}function K(t){try{let e=t?.getItem(k);if(!e)return null;let n=JSON.parse(e),o=Et(n)?n:{},r=_t(o.firstTouch),i=_t(o.lastTouch),c=r??i,d=i??r;return!c||!d?(t?.removeItem(k),null):{firstTouch:c,lastTouch:d}}catch{return null}}function Ct(t,e){try{t?.setItem(k,JSON.stringify(e))}catch{}}function de(t){try{t?.removeItem(k)}catch{}}function _t(t){if(!fe(t))return null;let e=Date.parse(t.capturedDateTimeUtc);return Number.isFinite(e)&&Date.now()-e<=ne?t:null}function fe(t){return!Et(t)||typeof t.capturedDateTimeUtc!="string"?!1:ie.every(e=>t[e]===void 0||typeof t[e]=="string")}function Et(t){return typeof t=="object"&&t!==null}function R(t,e){let n=String(t??"").trim();return n?n.slice(0,e):""}function St(t){if(!C())throw new Error(`@webority/analytics: call initConsent before ${t}.`)}function bt(t,e){return import("./web-vitals-JX43KCL5.js").then(n=>n.startWebVitals(t,e)).catch(()=>{})}var ge=["scroll","mousemove","touchstart","keydown","pointerdown"];function N(t){let e=!1,n=()=>{e||(e=!0,t())};for(let o of ge)window.addEventListener(o,n,{once:!0,passive:!0});document.readyState==="complete"?setTimeout(n,1500):window.addEventListener("load",()=>setTimeout(n,1500),{once:!0})}var s=Object.freeze({SIGNUP_STARTED:"signup_started",SIGNUP_COMPLETED:"signup_completed",LOGIN_SUCCEEDED:"login_succeeded",ONBOARDING_STARTED:"onboarding_started",ONBOARDING_STEP_COMPLETED:"onboarding_step_completed",ONBOARDING_COMPLETED:"onboarding_completed",SUBSCRIPTION_ACTIVATED:"subscription_activated",SUBSCRIPTION_CANCELLED:"subscription_cancelled",PAYMENT_SUCCEEDED:"payment_succeeded",PAYMENT_FAILED:"payment_failed",FEEDBACK_SUBMITTED:"feedback_submitted",LEAD_SUBMITTED:"lead_submitted",LEAD_QUALIFIED:"lead_qualified",LEAD_WON:"lead_won",WHATSAPP_CLICK:"whatsapp_click",CALCULATOR_USE:"calculator_use",PHONE_CLICK:"phone_click",DEMO_BOOKED:"demo_booked",CONTACT_SUBMITTED:"contact_submitted",TRIAL_START_CLICK:"trial_start_click",SAMPLE_REPORT_DOWNLOAD:"sample_report_download",REPORT_VERIFIED:"report_verified",CONTENT_ENGAGED:"content_engaged",EMAIL_CLICK:"email_click",PAGE_NOT_FOUND:"page_not_found",CHAT_OPENED:"chat_opened",CHAT_STARTED:"chat_started",CHAT_INPUT_SUBMITTED:"chat_input_submitted",CHAT_HANDOFF_REQUESTED:"chat_handoff_requested",CHAT_RATED:"chat_rated",CHAT_ACTION_REPEATED:"chat_action_repeated",TOUR_STARTED:"tour_started",TOUR_STEP_VIEWED:"tour_step_viewed",TOUR_COMPLETED:"tour_completed",TOUR_SKIPPED:"tour_skipped"}),Ye=Object.freeze({signupStarted:s.SIGNUP_STARTED,signupCompleted:s.SIGNUP_COMPLETED,loginSucceeded:s.LOGIN_SUCCEEDED,onboardingStarted:s.ONBOARDING_STARTED,onboardingStepCompleted:s.ONBOARDING_STEP_COMPLETED,onboardingCompleted:s.ONBOARDING_COMPLETED,subscriptionActivated:s.SUBSCRIPTION_ACTIVATED,subscriptionCancelled:s.SUBSCRIPTION_CANCELLED,paymentSucceeded:s.PAYMENT_SUCCEEDED,paymentFailed:s.PAYMENT_FAILED,feedbackSubmitted:s.FEEDBACK_SUBMITTED,leadSubmitted:s.LEAD_SUBMITTED,leadQualified:s.LEAD_QUALIFIED,leadWon:s.LEAD_WON,whatsappClick:s.WHATSAPP_CLICK,calculatorUse:s.CALCULATOR_USE,phoneClick:s.PHONE_CLICK,demoBooked:s.DEMO_BOOKED,contactSubmitted:s.CONTACT_SUBMITTED,trialStartClick:s.TRIAL_START_CLICK,sampleReportDownload:s.SAMPLE_REPORT_DOWNLOAD,reportVerified:s.REPORT_VERIFIED,contentEngaged:s.CONTENT_ENGAGED,emailClick:s.EMAIL_CLICK,pageNotFound:s.PAGE_NOT_FOUND,chatOpened:s.CHAT_OPENED,chatStarted:s.CHAT_STARTED,chatInputSubmitted:s.CHAT_INPUT_SUBMITTED,chatHandoffRequested:s.CHAT_HANDOFF_REQUESTED,chatRated:s.CHAT_RATED,chatActionRepeated:s.CHAT_ACTION_REPEATED,tourStarted:s.TOUR_STARTED,tourStepViewed:s.TOUR_STEP_VIEWED,tourCompleted:s.TOUR_COMPLETED,tourSkipped:s.TOUR_SKIPPED}),ht=/^[a-z][a-z0-9]*(_[a-z0-9]+)*$/;function Tt(){let t=new Set(Object.values(s));return{register(e){for(let n of e){if(!ht.test(n))throw new Error(`@webority/analytics: invalid event name "${n}". Expected snake_case.`);t.add(n)}},assertRegistered(e){if(!t.has(e))throw new Error(`@webority/analytics: event "${e}" is not registered. Call registerEvents() first.`)}}}var j=Tt(),u={config:null,posthogInstance:null,posthogInitPromise:null,pendingIdentify:null};function en(t){u.config=t,u.posthogInstance=null,u.posthogInitPromise=null,u.pendingIdentify=null}function pe(){let t=u.config;return t?!!(t.enabled&&t.clientKey&&t.environment!=="Local"):!1}function D(){return C()&&f().analytics}function wt(){return pe()&&D()}var P=new Set,It=new WeakSet,At=null;function rn(t){let e=Y();if(!e)return!1;try{return e.isFeatureEnabled(t)===!0}catch(n){return Rt(`feature flag "${t}" could not be read, so it reads as off`,n),L(n),!1}}function sn(t){let e=Y();if(!e)return null;try{return e.getFeatureFlag(t)??null}catch(n){return Rt(`feature flag "${t}" could not be read, so it reads as null`,n),L(n),null}}function an(t){P.add(t);let e=Y();return(!e||At===e)&&queueMicrotask(()=>{P.has(t)&&vt(t)}),()=>P.delete(t)}function Ot(t){u.config?.featureFlags!==!0||It.has(t)||typeof t.onFeatureFlags!="function"||(It.add(t),t.onFeatureFlags(()=>{At=t;for(let e of[...P])vt(e)}))}function Y(){return u.config?.featureFlags!==!0||!wt()?null:u.posthogInstance??null}function vt(t){try{t()}catch(e){L(e)}}function Rt(t,e){let n=u.config?.logger,o=typeof n?.warn=="function"?n.warn:n?.info;if(typeof o=="function")try{o.call(n,`@webority/analytics: ${t}: ${me(e)}`)}catch(r){L(r)}}function me(t){return typeof t=="object"&&t!==null&&"message"in t&&t.message!==void 0&&t.message!==null?t.message:t}function L(t){queueMicrotask(()=>{throw t})}var ye=new Set(["token","code","email","access_token","id_token","state","session_state","password","search","q","query"]),_e=/(?:access_token|id_token|session_state|token|code|state|email|password)=/i,Ce=["$current_url","$referrer","$pathname","$initial_current_url","$initial_referrer","$initial_pathname","$session_entry_url","$session_entry_referrer","$session_entry_pathname"],Ee=4,Se=5,be=6;function T(t){if(typeof t!="string")return t;let e=t.indexOf("#"),n=e===-1?t:t.slice(0,e),o=e===-1||_e.test(t.slice(e))?"":t.slice(e),r=n.indexOf("?");if(r===-1)return n+o;let i=n.slice(r+1).split("&"),c=i.filter(p=>!ye.has(Ie(p))).map(we);if(c.length===i.length&&c.every((p,w)=>p===i[w]))return n+o;let d=n.slice(0,r),y=c.filter(p=>p!=="").join("&");return(y?`${d}?${y}`:d)+o}function kt(t){if(!S(t))return t;let e=t.properties,n=S(e)?e:void 0;for(let i of[e,t.$set,t.$set_once,n?.$set,n?.$set_once])Te(i);let o=n?.$heatmap_data;if(n&&S(o)){let i={};for(let[c,d]of Object.entries(o)){let y=T(c),p=i[y];i[y]=Array.isArray(p)?p.concat(d):d}n.$heatmap_data=i}if(n){for(let[i,c]of Object.entries(n))if(i.startsWith("$web_vitals_")&&i.endsWith("_event")&&S(c))for(let d of["$current_url","navigationURL"]){let y=c[d];typeof y=="string"&&(c[d]=T(y))}}let r=n?.$snapshot_data;if(t.event==="$snapshot"&&r&&typeof r=="object"){let i=Array.isArray(r)?r:[r];for(let c of i)he(c)}return t}function he(t){if(!S(t))return;let e=t.data;if(S(e)){if(t.type===Ee)x(e,["href"]);else if(t.type===Se)x(e.payload,["href"]);else if(t.type===be){let n=e.payload;if(S(n)&&Array.isArray(n.requests))for(let o of n.requests)x(o,["name","url"])}}}function x(t,e){if(S(t))for(let n of e){let o=t[n];typeof o=="string"&&(t[n]=T(o))}}function Te(t){x(t,Ce)}function we(t){let e=t.indexOf("=");if(e===-1)return t;let n=t.slice(e+1).replace(/\+/g," "),o;try{o=decodeURIComponent(n)}catch{o=Nt(n)}if(!o.startsWith("/")&&!/^https?:\/\//i.test(o))return t;let r=T(o);return r===o?t:`${t.slice(0,e)}=${encodeURIComponent(r)}`}function Ie(t){let e=t.replace(/\+/g," "),n;try{n=decodeURIComponent(e)}catch{n=Nt(e)}return(n.split("=",1)[0]??"").toLowerCase()}function Nt(t){return t.replace(/%([0-9a-f]{2})/gi,(e,n)=>{let o=Number.parseInt(n,16);return o<128?String.fromCharCode(o):e})}function S(t){return typeof t=="object"&&t!==null}async function gn(){if(u.posthogInstance)return u.posthogInstance;if(u.posthogInitPromise)return u.posthogInitPromise;let t=u.config;if(!t)throw new Error("@webority/analytics: initAnalytics has not run.");return u.posthogInitPromise=import("posthog-js").then(e=>{let n=e.default??e,o=Q(X(t),D(),t.featureFlags===!0);return n.init(t.clientKey,o),n.register({product:t.product,surface:t.surface,environment:t.environment}),D()?n.opt_in_capturing({captureEventName:!1}):n.opt_out_capturing(),u.posthogInstance=n,Ot(n),n}).catch(e=>{throw u.posthogInitPromise=null,e}),u.posthogInitPromise}function Q(t,e,n=!1){return e?t:{...t,opt_out_capturing_by_default:!0,...n?{advanced_disable_feature_flags_on_first_load:!0}:{}}}function X(t){let e=t.sessionRecording??{},n={api_host:t.host,autocapture:!1,capture_pageview:"history_change",cookieless_mode:"on_reject",person_profiles:"identified_only",persistence:"localStorage+cookie",cross_subdomain_cookie:!0,disable_session_recording:!e.enabled,enable_heatmaps:t.heatmaps===!0,capture_exceptions:t.captureExceptions===!0,capture_performance:{web_vitals:!1},disable_surveys:!0,disable_product_tours:!0,disable_conversations:!0,advanced_disable_feature_flags:!(e.enabled||t.featureFlags===!0),before_send:kt};if(e.enabled){let o={maskAllInputs:e.maskAllInputs??!0,...e.maskTextSelector?{maskTextSelector:e.maskTextSelector}:{},maskCapturedNetworkRequestFn:r=>({...r,name:T(r.name)}),recordBody:!1,recordHeaders:!1};n.session_recording=o}return n}var Ae=()=>import("posthog-js"),Oe=100,l={config:null,posthog:null,pending:[],failed:!1,loadPosthog:Ae,startVitals:bt,stopFollowingConsent:null};function ve({host:t,clientKey:e,product:n,surface:o,environment:r,enabled:i=!0,sessionRecording:c,heatmaps:d=!1,captureExceptions:y=!1,webVitals:p=!1}={}){if(!C())throw new Error("@webority/analytics: call initConsent before initSiteAnalytics.");let w=et(p);if(!i||!t||!e||r==="Local"||l.config)return;let I={host:t,clientKey:e,product:n,surface:o,environment:r,sessionRecording:c,heatmaps:d,captureExceptions:y,webVitals:w};l.config=I,l.stopFollowingConsent=E(b=>ke(b.analytics)),N(()=>{Promise.resolve().then(l.loadPosthog).then(b=>Re(b.default??b,I)).catch(()=>{l.failed=!0,l.pending=[]})})}function Re(t,e){let n=f().analytics;t.init(e.clientKey,Q(Ne(e),n)),t.register({product:e.product,surface:e.surface,environment:e.environment}),n?t.opt_in_capturing({captureEventName:!1}):t.opt_out_capturing(),l.posthog=t;let o=l.pending;l.pending=[];for(let[r,i]of o)J(t,r,i);e.webVitals&&l.startVitals(e.webVitals,(r,i)=>J(t,r,i))}function ke(t){l.posthog&&(t?l.posthog.opt_in_capturing():l.posthog.opt_out_capturing())}function Ne(t){return{...X({host:t.host,sessionRecording:t.sessionRecording,heatmaps:t.heatmaps,captureExceptions:t.captureExceptions}),capture_pageview:!0}}function Dt(t,e){let n=l.config;if(!n)return;let o={...e,product:n.product,surface:n.surface,environment:n.environment};l.posthog?J(l.posthog,t,o):!l.failed&&l.pending.length<Oe&&l.pending.push([t,o])}function J(t,e,n){try{t.capture(e,n)}catch{}}function De(t,e={}){j.assertRegistered(t);let n=f().analytics,o=z(),r={...e};for(let[i,c]of[["first",o?.firstTouch],["last",o?.lastTouch]])c&&(r[`${i}_touch_channel`]=A(c),c.aiSource&&(r[`${i}_touch_ai_source`]=c.aiSource));return Dt(t,r),n?(window.dataLayer=window.dataLayer||[],window.dataLayer.push({...r,event:t}),!0):!1}function Pe(t){j.register(t)}var Le="https://www.googletagmanager.com/gtm.js",xe=3e3,Fe=100,_={loaded:!1,clarityId:null,clarityLoaded:!1,cancelClaritySchedule:null};function Ue(t={}){if(!C())throw new Error("@webority/analytics: call initConsent before loadTags.");if(_.loaded)return;_.loaded=!0;let{gtmId:e,gtmUrl:n=Le,clarityId:o,ahrefsKey:r}=t;if(typeof n!="string"||n.trim()==="")throw new Error("@webority/analytics: gtmUrl must be a non-empty string.");let i=lt();if(r){let c=()=>tt("https://analytics.ahrefs.com/analytics.js",{"data-key":r});i?Pt(d=>d.analytics,c):c()}if(e){let c=H(),d=b=>b.analytics||b.marketing&&c,y=()=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({"gtm.start":Date.now(),event:"gtm.js"}),tt(`${n}${n.includes("?")?"&":"?"}id=${encodeURIComponent(e)}`)},p=f(),w=p.decided&&d(p)?Me:N,I=()=>w(y);i?Pt(d,I):I()}o&&(_.clarityId=o,f().analytics&&He(),E(c=>{c.analytics&&!_.clarityLoaded?Z():_.clarityLoaded&&Lt(c)}))}function Pt(t,e){if(t(f())){e();return}let n=E(o=>{t(o)&&(n(),e())})}function Me(t){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t,{once:!0}):t()}function He(){let t=()=>{window.scrollY>Fe&&Z()};window.addEventListener("scroll",t,{passive:!0});let e=setTimeout(Z,xe);_.cancelClaritySchedule=()=>{window.removeEventListener("scroll",t),clearTimeout(e)}}function Z(){if(_.cancelClaritySchedule?.(),_.cancelClaritySchedule=null,_.clarityLoaded||!_.clarityId)return;_.clarityLoaded=!0;let t=function(){t.q=t.q||[],t.q.push(arguments)};window.clarity=window.clarity||t,Lt(f()),tt(`https://www.clarity.ms/tag/${encodeURIComponent(_.clarityId)}`,{crossorigin:"anonymous"})}function Lt(t){window.clarity?.("consentv2",{ad_Storage:t.marketing&&H()?"granted":"denied",analytics_Storage:t.analytics?"granted":"denied"})}function tt(t,e={}){let n=document.createElement("script");n.async=!0,n.src=t;for(let[o,r]of Object.entries(e))n.setAttribute(o,r);document.head.appendChild(n)}export{qt as a,v as b,ct as c,zt as d,Kt as e,C as f,f as g,jt as h,E as i,s as j,Ye as k,j as l,u as m,en as n,pe as o,D as p,rn as q,sn as r,an as s,gn as t,g as u,A as v,F as w,se as x,z as y,ve as z,De as A,Pe as B,Ue as C};
|
package/dist/errors.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk-O2XFH626.js";var e={started:!1,posthog:null,pending:[],loadPosthog:()=>import("posthog-js")};function f({host:t}){return{api_host:t,capture_exceptions:!0,capture_pageview:!1,capture_pageleave:!1,autocapture:!1,persistence:"memory",disable_session_recording:!0,disable_surveys:!0,advanced_disable_feature_flags:!0,person_profiles:"never",save_referrer:!1}}function P({host:t,clientKey:n,product:o,surface:d,environment:s,release:g,enabled:
|
|
1
|
+
import"./chunk-O2XFH626.js";var e={started:!1,posthog:null,pending:[],loadPosthog:()=>import("posthog-js")};function f({host:t}){return{api_host:t,capture_exceptions:!0,capture_pageview:!1,capture_pageleave:!1,autocapture:!1,persistence:"memory",disable_session_recording:!0,disable_surveys:!0,advanced_disable_feature_flags:!0,person_profiles:"never",save_referrer:!1}}function P({host:t,clientKey:n,product:o,surface:d,environment:s,release:g,enabled:p=!0}={}){if(!(!p||s==="Local"||e.started)){if(!t||!n||!o||!s)throw new Error("@webority/analytics: initErrorTracking needs host, clientKey, product and environment.");e.started=!0,Promise.resolve().then(e.loadPosthog).then(i=>{let r=i.default??i;r.init(n,f({host:t})),r.register(h({product:o,surface:d,environment:s,release:g})),e.posthog=r;let u=e.pending;e.pending=[];for(let[c,l]of u)a(r,c,l)}).catch(()=>{e.pending=[]})}}function E(t,n){e.started&&(e.posthog?a(e.posthog,t,n):e.pending.length<20&&e.pending.push([t,n]))}function a(t,n,o){try{t.captureException(n,o)}catch{}}function h(t){return Object.fromEntries(Object.entries(t).filter(([,n])=>n!==void 0))}function _(t=()=>import("posthog-js")){e.started=!1,e.posthog=null,e.pending=[],e.loadPosthog=t}export{f as buildErrorTrackingInitOptions,E as captureBrowserException,P as initErrorTracking,_ as resetErrorTrackingForTests};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as X,B as Z,C as $,a as
|
|
1
|
+
import{A as X,B as Z,C as $,a as V,b as j,c as W,d as U,e as D,f as I,g as K,h as L,i as v,j as u,k as m,l as P,m as r,n as T,o as s,p as i,q as G,r as z,s as q,t as c,u as M,v as Y,w as B,x as J,y as Q}from"./chunk-QNDQUYFF.js";import{a as w,g as C}from"./chunk-JWEUCPJH.js";import"./chunk-O2XFH626.js";var A=null,f=new Map,ee="workspace";function te(e){if(!I())throw new Error("@webority/analytics: call initConsent before initAnalytics.");let t=w(e.webVitals);A?.(),A=v(n=>re(n.analytics)),f.clear(),T({host:e.host,clientKey:e.clientKey,product:e.product,surface:e.surface,environment:e.environment,enabled:e.enabled??!0,logger:e.logger??null,sessionRecording:{enabled:e.sessionRecording?.enabled??!1,maskAllInputs:e.sessionRecording?.maskAllInputs??!0,maskTextSelector:e.sessionRecording?.maskTextSelector??null},heatmaps:e.heatmaps??!1,captureExceptions:e.captureExceptions??!1,webVitals:t,featureFlags:e.featureFlags===!0}),s()&&ne()}function ne(){let e=()=>{s()&&(R(),r.config?.webVitals&&C(r.config.webVitals,x))};typeof requestIdleCallback=="function"?requestIdleCallback(e,{timeout:3e3}):setTimeout(e,0)}function R(){c().catch(()=>{})}function re(e){if(s()){if(e){r.posthogInstance?(r.posthogInstance.opt_in_capturing(),O(r.posthogInstance),_(r.posthogInstance)):c().then(t=>{O(t),t&&_(t)}).catch(()=>{});return}!r.posthogInstance&&!r.posthogInitPromise&&R(),oe()}}function O(e){if(!e||!i())return;let t=r.pendingIdentify;t&&e.identify(t.publicId,t.props);for(let[n,{key:o,props:a}]of f)e.group(n,o,a)}function _(e){r.config?.featureFlags===!0&&i()&&e.reloadFeatureFlags?.()}function oe(){if(r.posthogInstance){r.posthogInstance.opt_out_capturing();return}r.posthogInitPromise&&r.posthogInitPromise.then(e=>{i()||e?.opt_out_capturing()}).catch(()=>{})}function ie(e,t={}){if(!s()){E("identify",{publicId:e,...t});return}r.pendingIdentify={publicId:e,props:t},i()&&c().then(n=>{!n||!i()||n.identify(e,t)}).catch(()=>{})}function se(e,t,n={}){if(typeof e!="string"||!e||typeof t!="string"||!t)throw new Error("@webority/analytics: group needs a type and a PublicId string.");if(!s()){E("group",{type:e,key:t,...n});return}f.set(e,{key:t,props:n}),i()&&c().then(o=>{!o||!i()||o.group(e,t,n)}).catch(()=>{})}function ae(){r.pendingIdentify=null,f.clear(),r.posthogInstance&&r.posthogInstance.reset()}function l(e,t={}){P.assertRegistered(e),x(e,t)}function x(e,t){let n=r.config;if(!n||!s()){E(e,t);return}let o={...t,product:n.product,surface:n.surface,environment:n.environment};c().then(a=>{a?.capture(e,o)}).catch(()=>{})}function E(e,t){r.config?.environment==="Local"&&r.config.logger?.info(e,t)}function ue(){if(typeof document>"u")return()=>{};for(let[e,t]of Object.entries(S))document.addEventListener(e,t);return()=>{for(let[e,t]of Object.entries(S))document.removeEventListener(e,t)}}function ce(e){d(u.TOUR_STARTED,e,{step_count:p(b(e)?.total)})}function le(e){let t=b(e);d(u.TOUR_STEP_VIEWED,e,{step_position:p(t?.position),step_count:p(t?.total)})}function pe(e){let t=b(e),n={step_position:p(t?.position),step_count:p(t?.total)};t?.reason==="finished"?d(u.TOUR_COMPLETED,e,n):t?.reason==="skipped"&&d(u.TOUR_SKIPPED,e,{...n,via:y(t.via)})}var S={"wui-tour:start":ce,"wui-tour:step":le,"wui-tour:close":pe};function d(e,t,n){let o=t.target,a=y(N(o,"tour-id"));if(!a)return;let g={tour_id:a},h=y(N(o,"trigger"));h&&(g.trigger=h);for(let[F,k]of Object.entries(n))k!==void 0&&(g[F]=k);l(e,g)}function fe(e){return typeof e=="object"&&e!==null&&"getAttribute"in e&&typeof e.getAttribute=="function"}function N(e,t){return fe(e)?e.getAttribute(t):void 0}function b(e){let t="detail"in e?e.detail:void 0;return typeof t=="object"&&t!==null?t:void 0}function p(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0?e:void 0}function y(e){return typeof e=="string"&&e!==""?e:void 0}function de(e){return Object.keys(m).every(t=>typeof e[t]=="function")}var H=Object.fromEntries(Object.entries(m).map(([e,t])=>[e,(n={})=>l(t,n)]));if(!de(H))throw new Error("@webority/analytics: a track helper is missing its function.");var ge=Object.freeze(H);export{W as CONSENT_CHANGE_EVENT,j as CONSENT_COOKIE_NAME,ee as WORKSPACE_GROUP_TYPE,J as captureAttribution,M as channels,u as events,Q as getAttribution,K as getConsent,z as getFeatureFlag,se as group,ie as identify,te as initAnalytics,U as initConsent,G as isFeatureEnabled,$ as loadTags,v as onConsentChange,q as onFeatureFlags,Z as registerEvents,V as requiresOptIn,ae as resetIdentity,B as resolveAiSource,Y as resolveChannel,L as saveConsent,D as setConsentRegion,ge as track,l as trackEvent,X as trackSiteEvent,ue as trackTours};
|
package/dist/node.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{PostHog as u}from"posthog-node";var
|
|
1
|
+
import{PostHog as u}from"posthog-node";var r={client:null,base:{},createClient:(e,t)=>new u(e,t)};function f({host:e,clientKey:t,product:o,surface:i,environment:n,release:s,enabled:l=!0,captureUncaught:d=!0}={}){if(!(!l||n==="Local"||r.client!==null)){if(!e||!t||!o||!n)throw new Error("@webority/analytics: initServerErrorTracking needs host, clientKey, product and environment.");r.client=r.createClient(t,{host:e,flushAt:1,flushInterval:0,enableExceptionAutocapture:d}),r.base=a({product:o,surface:i,environment:n,release:s})}}function c(e,{distinctId:t,path:o,method:i,statusCode:n,properties:s}={}){if(r.client)try{r.client.captureException(e,t??"server",a({...r.base,...s,path:o,$current_url:o,method:i,statusCode:n}))}catch{}}function p(){return(e,t,o,i)=>{let n=typeof e=="object"&&e!==null||typeof e=="function"?e:void 0;c(e,{path:t.originalUrl,method:t.method,statusCode:(n&&"status"in n?n.status:void 0)??(n&&"statusCode"in n?n.statusCode:void 0)??500}),i(e)}}async function g(e=2e3){if(!r.client)return;let t;await Promise.race([r.client.flush(),new Promise(o=>{t=setTimeout(()=>o(),e)})]),clearTimeout(t),r.client=null}function E(e=(t,o)=>new u(t,o)){r.client=null,r.base={},r.createClient=e}function a(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}export{c as captureServerException,p as expressErrorHandler,g as flushServerErrorTracking,f as initServerErrorTracking,E as resetServerErrorTrackingForTests};
|
package/dist/site.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as p,B as q,C as r,a,b,c,d,e,g as f,h as g,i as h,j as i,u as j,v as k,w as l,x as m,y as n,z as o}from"./chunk-
|
|
1
|
+
import{A as p,B as q,C as r,a,b,c,d,e,g as f,h as g,i as h,j as i,u as j,v as k,w as l,x as m,y as n,z as o}from"./chunk-QNDQUYFF.js";import"./chunk-JWEUCPJH.js";import"./chunk-O2XFH626.js";export{c as CONSENT_CHANGE_EVENT,b as CONSENT_COOKIE_NAME,m as captureAttribution,j as channels,i as events,n as getAttribution,f as getConsent,d as initConsent,o as initSiteAnalytics,r as loadTags,h as onConsentChange,q as registerEvents,a as requiresOptIn,l as resolveAiSource,k as resolveChannel,g as saveConsent,e as setConsentRegion,p as trackSiteEvent};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { EventName, EventProperties } from "./event-registry.ts";
|
|
2
|
-
import {
|
|
2
|
+
import { type WebVitalsInput } from "./web-vitals.ts";
|
|
3
3
|
/**
|
|
4
4
|
* The logger a product injects. info is required: events tracked while the environment is Local
|
|
5
5
|
* go to it, so a logger with only warn would fail there. warn, when given, takes a failed flag read;
|
|
@@ -24,7 +24,7 @@ type AnalyticsConfig = {
|
|
|
24
24
|
};
|
|
25
25
|
heatmaps?: boolean;
|
|
26
26
|
captureExceptions?: boolean;
|
|
27
|
-
webVitals?:
|
|
27
|
+
webVitals?: WebVitalsInput;
|
|
28
28
|
featureFlags?: boolean;
|
|
29
29
|
};
|
|
30
30
|
export declare const WORKSPACE_GROUP_TYPE = "workspace";
|
package/dist/types/errors.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { PostHog } from "posthog-js";
|
|
2
|
+
import type { PostHogClient } from "./posthog-bridge.ts";
|
|
2
3
|
type ErrorState = {
|
|
3
4
|
started: boolean;
|
|
4
|
-
posthog:
|
|
5
|
+
posthog: PostHogClient | null;
|
|
5
6
|
pending: [unknown, Record<string, unknown> | undefined][];
|
|
6
7
|
loadPosthog: () => Promise<{
|
|
7
|
-
default:
|
|
8
|
+
default: PostHogClient;
|
|
8
9
|
}>;
|
|
9
10
|
};
|
|
10
11
|
/** PostHog options for error tracking only: exceptions are sent, nothing else is. Pure, so the test can lock the mapping. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PostHogClient } from "./posthog-bridge.ts";
|
|
2
2
|
/**
|
|
3
3
|
* Whether a PostHog feature flag is on for this person. False whenever the answer cannot be
|
|
4
4
|
* trusted: flags not turned on in initAnalytics, analytics off or Local, no analytics consent
|
|
@@ -23,4 +23,4 @@ export declare function getFeatureFlag(key: string): string | boolean | null;
|
|
|
23
23
|
* unsubscribe function that works at any time, before initAnalytics included.
|
|
24
24
|
*/
|
|
25
25
|
export declare function onFeatureFlags(listener: () => void): () => boolean;
|
|
26
|
-
export declare function followFeatureFlags(posthog:
|
|
26
|
+
export declare function followFeatureFlags(posthog: PostHogClient): void;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { PostHog } from "posthog-node";
|
|
2
|
+
export type PostHogNodeClient = Pick<PostHog, "captureException" | "flush">;
|
|
2
3
|
type NodeErrorState = {
|
|
3
|
-
client:
|
|
4
|
+
client: PostHogNodeClient | null;
|
|
4
5
|
base: Record<string, unknown>;
|
|
5
|
-
createClient: (key: string, options: NonNullable<ConstructorParameters<typeof PostHog>[1]>) =>
|
|
6
|
+
createClient: (key: string, options: NonNullable<ConstructorParameters<typeof PostHog>[1]>) => PostHogNodeClient;
|
|
6
7
|
};
|
|
7
8
|
/**
|
|
8
9
|
* Starts exception tracking on the server, once per process. Nothing starts when disabled, in Local,
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import type { PostHog, PostHogConfig } from "posthog-js";
|
|
2
2
|
import { type ResolvedAnalyticsConfig } from "./state.ts";
|
|
3
3
|
export type PosthogInitOptions = Partial<PostHogConfig> & Record<string, unknown>;
|
|
4
|
+
export type PostHogClient = Pick<PostHog, "register" | "capture" | "captureException" | "identify" | "group" | "reset" | "opt_in_capturing" | "opt_out_capturing" | "isFeatureEnabled" | "getFeatureFlag" | "onFeatureFlags" | "reloadFeatureFlags"> & {
|
|
5
|
+
init(...args: Parameters<PostHog["init"]>): void;
|
|
6
|
+
};
|
|
4
7
|
/** What buildInitOptions reads from a config: initAnalytics passes its resolved config, initSiteAnalytics only these. */
|
|
5
8
|
export type PosthogInitConfig = Pick<ResolvedAnalyticsConfig, "host" | "heatmaps" | "captureExceptions"> & {
|
|
6
|
-
sessionRecording?: ResolvedAnalyticsConfig["sessionRecording"] | undefined;
|
|
9
|
+
sessionRecording?: Partial<ResolvedAnalyticsConfig["sessionRecording"]> | undefined;
|
|
7
10
|
featureFlags?: boolean | undefined;
|
|
8
11
|
};
|
|
9
|
-
export declare function ensurePosthogInitialized(): Promise<
|
|
12
|
+
export declare function ensurePosthogInitialized(): Promise<PostHogClient>;
|
|
10
13
|
/**
|
|
11
14
|
* Copies init options and, when consent is absent, sets the flag that keeps init itself
|
|
12
15
|
* from capturing. Pure so the smoke test can lock the consent decision without a browser.
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import type { PostHog } from "posthog-js";
|
|
2
1
|
import { startSiteWebVitals } from "#site-web-vitals";
|
|
3
2
|
import type { EventName, EventProperties } from "./event-registry.ts";
|
|
4
|
-
import { buildInitOptions, type PosthogInitOptions } from "./posthog-bridge.ts";
|
|
5
|
-
import { normalizeWebVitalsOption } from "./web-vitals.ts";
|
|
3
|
+
import { buildInitOptions, type PostHogClient, type PosthogInitOptions } from "./posthog-bridge.ts";
|
|
4
|
+
import { normalizeWebVitalsOption, type WebVitalsInput } from "./web-vitals.ts";
|
|
6
5
|
type BridgeConfig = Parameters<typeof buildInitOptions>[0];
|
|
7
|
-
type WebVitalsOption =
|
|
6
|
+
type WebVitalsOption = WebVitalsInput;
|
|
8
7
|
type WebVitalsConfig = ReturnType<typeof normalizeWebVitalsOption>;
|
|
9
8
|
type SiteConfig = {
|
|
10
9
|
host: string;
|
|
@@ -19,11 +18,11 @@ type SiteConfig = {
|
|
|
19
18
|
};
|
|
20
19
|
type SiteState = {
|
|
21
20
|
config: SiteConfig | null;
|
|
22
|
-
posthog:
|
|
21
|
+
posthog: PostHogClient | null;
|
|
23
22
|
pending: [string, Record<string, unknown>][];
|
|
24
23
|
failed: boolean;
|
|
25
24
|
loadPosthog: () => Promise<{
|
|
26
|
-
default:
|
|
25
|
+
default: PostHogClient;
|
|
27
26
|
}>;
|
|
28
27
|
startVitals: typeof startSiteWebVitals;
|
|
29
28
|
stopFollowingConsent: (() => void) | null;
|
package/dist/types/state.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { PostHog } from "posthog-js";
|
|
2
1
|
import type { AnalyticsLogger } from "./analytics.ts";
|
|
3
2
|
import type { EventProperties } from "./event-registry.ts";
|
|
3
|
+
import type { PostHogClient } from "./posthog-bridge.ts";
|
|
4
4
|
import type { normalizeWebVitalsOption } from "./web-vitals.ts";
|
|
5
5
|
/** What initAnalytics settled on after applying its defaults. */
|
|
6
6
|
export type ResolvedAnalyticsConfig = {
|
|
@@ -28,8 +28,8 @@ export type PendingIdentify = {
|
|
|
28
28
|
};
|
|
29
29
|
export type AnalyticsState = {
|
|
30
30
|
config: ResolvedAnalyticsConfig | null;
|
|
31
|
-
posthogInstance:
|
|
32
|
-
posthogInitPromise: Promise<
|
|
31
|
+
posthogInstance: PostHogClient | null;
|
|
32
|
+
posthogInitPromise: Promise<PostHogClient> | null;
|
|
33
33
|
pendingIdentify: PendingIdentify | null;
|
|
34
34
|
};
|
|
35
35
|
export declare const eventRegistry: {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { INPAttribution, MetricWithAttribution } from "web-vitals/attribution";
|
|
2
1
|
import type { EventProperties } from "./event-registry.ts";
|
|
3
|
-
type WebVitalsInput = boolean | {
|
|
2
|
+
export type WebVitalsInput = boolean | {
|
|
4
3
|
sampleRate?: number;
|
|
5
4
|
softNavigations?: boolean;
|
|
6
5
|
deployVersion?: string | null;
|
|
@@ -12,13 +11,78 @@ type WebVitalsSettings = {
|
|
|
12
11
|
deployVersion: string | null;
|
|
13
12
|
pageTemplate: string | null;
|
|
14
13
|
};
|
|
14
|
+
type CachedTiming = object & {
|
|
15
|
+
transferSize?: unknown;
|
|
16
|
+
decodedBodySize?: unknown;
|
|
17
|
+
};
|
|
18
|
+
type ScriptRead = {
|
|
19
|
+
sourceURL?: string | undefined;
|
|
20
|
+
sourceFunctionName?: string | undefined;
|
|
21
|
+
invokerType?: string | undefined;
|
|
22
|
+
duration?: number | undefined;
|
|
23
|
+
forcedStyleAndLayoutDuration?: number | undefined;
|
|
24
|
+
};
|
|
25
|
+
type InpAttributionRead = {
|
|
26
|
+
interactionTarget?: string | undefined;
|
|
27
|
+
interactionType?: string | undefined;
|
|
28
|
+
loadState?: string | undefined;
|
|
29
|
+
inputDelay?: number | undefined;
|
|
30
|
+
processingDuration?: number | undefined;
|
|
31
|
+
presentationDelay?: number | undefined;
|
|
32
|
+
longestScript?: {
|
|
33
|
+
entry?: ScriptRead | undefined;
|
|
34
|
+
} | undefined;
|
|
35
|
+
longAnimationFrameEntries?: readonly {
|
|
36
|
+
scripts?: readonly ScriptRead[] | undefined;
|
|
37
|
+
}[] | undefined;
|
|
38
|
+
};
|
|
39
|
+
type LcpAttributionRead = {
|
|
40
|
+
timeToFirstByte?: number | undefined;
|
|
41
|
+
resourceLoadDelay?: number | undefined;
|
|
42
|
+
resourceLoadDuration?: number | undefined;
|
|
43
|
+
elementRenderDelay?: number | undefined;
|
|
44
|
+
target?: string | undefined;
|
|
45
|
+
url?: string | undefined;
|
|
46
|
+
lcpEntry?: {
|
|
47
|
+
element: Pick<Element, "tagName"> | null;
|
|
48
|
+
} | undefined;
|
|
49
|
+
navigationEntry?: CachedTiming | undefined;
|
|
50
|
+
lcpResourceEntry?: CachedTiming | undefined;
|
|
51
|
+
};
|
|
52
|
+
type ClsAttributionRead = {
|
|
53
|
+
largestShiftTarget?: string | undefined;
|
|
54
|
+
largestShiftValue?: number | undefined;
|
|
55
|
+
largestShiftTime?: number | undefined;
|
|
56
|
+
loadState?: string | undefined;
|
|
57
|
+
};
|
|
58
|
+
export type VitalsMetric = {
|
|
59
|
+
value: number;
|
|
60
|
+
id: string;
|
|
61
|
+
rating: string;
|
|
62
|
+
} & {
|
|
63
|
+
navigationType?: string | undefined;
|
|
64
|
+
navigationURL?: string | undefined;
|
|
65
|
+
} & ({
|
|
66
|
+
name: "LCP";
|
|
67
|
+
attribution?: LcpAttributionRead | undefined;
|
|
68
|
+
} | {
|
|
69
|
+
name: "INP";
|
|
70
|
+
attribution?: InpAttributionRead | undefined;
|
|
71
|
+
} | {
|
|
72
|
+
name: "CLS";
|
|
73
|
+
attribution?: ClsAttributionRead | undefined;
|
|
74
|
+
} | {
|
|
75
|
+
name: "FCP" | "TTFB";
|
|
76
|
+
attribution?: unknown;
|
|
77
|
+
});
|
|
15
78
|
/**
|
|
16
79
|
* The webVitals option as the package uses it, or null when off. `true` takes the defaults; an
|
|
17
80
|
* object may set sampleRate (0 to 1, default 1), softNavigations (default true), deployVersion and
|
|
18
81
|
* pageTemplate (the page's route template, at most 120 characters, default null).
|
|
19
82
|
* A sample rate outside (0, 1] throws: a typo there would silently send nothing or everything.
|
|
83
|
+
* Takes unknown because a JavaScript consumer's config reaches it unchecked; WebVitalsInput is the typed shape.
|
|
20
84
|
*/
|
|
21
|
-
export declare function normalizeWebVitalsOption(option:
|
|
85
|
+
export declare function normalizeWebVitalsOption(option: unknown): WebVitalsSettings | null;
|
|
22
86
|
/** True when this page load is in the sample. `roll` is a number in [0, 1), Math.random() in the browser. */
|
|
23
87
|
export declare function isSampled(sampleRate: number, roll: number): boolean;
|
|
24
88
|
/** mobile, tablet or desktop, from the browser's own mobile hint and the screen width. */
|
|
@@ -31,19 +95,16 @@ export declare function deviceClass({ mobileHint, screenWidth }: {
|
|
|
31
95
|
* null when it does not say. A cross-origin resource without a timing header reports zero sizes,
|
|
32
96
|
* which is unknown, not cached.
|
|
33
97
|
*/
|
|
34
|
-
export declare function wasCached(timing:
|
|
35
|
-
transferSize?: unknown;
|
|
36
|
-
decodedBodySize?: unknown;
|
|
37
|
-
}) | null | undefined): boolean | null;
|
|
98
|
+
export declare function wasCached(timing: CachedTiming | null | undefined): boolean | null;
|
|
38
99
|
/**
|
|
39
100
|
* The three longest scripts behind an INP interaction, or null when the browser sent none. Firefox
|
|
40
101
|
* and Safari send no script detail, so null is missing data, not a fast page. The longest script
|
|
41
102
|
* alone is the fallback when no frame lists its scripts.
|
|
42
103
|
*/
|
|
43
|
-
export declare function topScripts(attribution:
|
|
104
|
+
export declare function topScripts(attribution: InpAttributionRead): {
|
|
44
105
|
url: string | null;
|
|
45
106
|
function: string | null;
|
|
46
|
-
invoker_type:
|
|
107
|
+
invoker_type: string | null;
|
|
47
108
|
duration_ms: number | null;
|
|
48
109
|
forced_style_layout_ms: number | null;
|
|
49
110
|
}[] | null;
|
|
@@ -52,19 +113,23 @@ export declare function topScripts(attribution: Partial<INPAttribution>): {
|
|
|
52
113
|
* shape without a browser. Never a user id or element text: the INP and LCP targets are CSS
|
|
53
114
|
* selectors, and every address has its query stripped.
|
|
54
115
|
*/
|
|
55
|
-
export declare function buildVitalsProperties(metric:
|
|
116
|
+
export declare function buildVitalsProperties(metric: VitalsMetric, context: {
|
|
56
117
|
deployVersion: string | null;
|
|
57
118
|
pageTemplate: string | null;
|
|
58
119
|
deviceClass: string;
|
|
59
120
|
pageUrl?: string | undefined;
|
|
60
121
|
}): EventProperties;
|
|
122
|
+
export type VitalsRegistrar = (report: (metric: VitalsMetric) => void, opts: {
|
|
123
|
+
reportSoftNavs: boolean;
|
|
124
|
+
}) => void;
|
|
125
|
+
export type VitalsModule = Record<"onLCP" | "onINP" | "onCLS" | "onFCP" | "onTTFB", VitalsRegistrar>;
|
|
61
126
|
/**
|
|
62
127
|
* Registers the five metrics once per page and sends each report through `send(name, props)`.
|
|
63
128
|
* A later call only swaps the sink, since web-vitals observers cannot be removed. Loading fails
|
|
64
129
|
* quietly: analytics must stay invisible to the product.
|
|
65
130
|
*/
|
|
66
|
-
export declare function startWebVitals(options: WebVitalsSettings, send: (name: string, props: EventProperties) => void, { load, roll
|
|
67
|
-
load?: () => Promise<
|
|
131
|
+
export declare function startWebVitals(options: WebVitalsSettings, send: (name: string, props: EventProperties) => void, { load, roll }?: {
|
|
132
|
+
load?: () => Promise<VitalsModule>;
|
|
68
133
|
roll?: number;
|
|
69
134
|
}): Promise<void>;
|
|
70
135
|
export declare function resetWebVitalsForTests(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h}from"./chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h}from"./chunk-JWEUCPJH.js";import"./chunk-O2XFH626.js";export{f as buildVitalsProperties,c as deviceClass,b as isSampled,a as normalizeWebVitalsOption,h as resetWebVitalsForTests,g as startWebVitals,e as topScripts,d as wasCached};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var WeborityAnalytics=(()=>{var L=Object.defineProperty;var Wt=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var $t=Object.prototype.hasOwnProperty;var zt=(t,e,n)=>()=>{if(n)throw n[0];try{return t&&(e=t(t=0)),e}catch(o){throw n=[o],o}};var X=(t,e)=>{for(var n in e)L(t,n,{get:e[n],enumerable:!0})},Gt=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ht(e))!$t.call(t,r)&&r!==n&&L(t,r,{get:()=>e[r],enumerable:!(o=Wt(e,r))||o.enumerable});return t};var Bt=t=>Gt(L({},"__esModule",{value:!0}),t);var Nt={};X(Nt,{default:()=>Le});function De(){let t=Object.assign([],{_i:[],__SV:1,people:[],capture:(...e)=>{t.push(["capture",...e])},register:(...e)=>{t.push(["register",...e])},opt_in_capturing:(...e)=>{t.push(["opt_in_capturing",...e])},opt_out_capturing:(...e)=>{t.push(["opt_out_capturing",...e])},init:(e,n)=>{t._i.push([e,n]);let o=document.createElement("script");o.async=!0,o.crossOrigin="anonymous",o.src=`${n.api_host.replace(/\/+$/,"").replace(".i.posthog.com","-assets.i.posthog.com")}/static/array.js`,document.head.appendChild(o)}});return window.posthog=t,t}var Pe,kt,Le,Pt=zt(()=>{"use strict";Pe=["capture","register","opt_in_capturing","opt_out_capturing"];kt={init(t,e){(window.posthog??De()).init(t,e)}};for(let t of Pe)kt[t]=(...e)=>{let n=window.posthog;if(n===void 0)throw new TypeError(`posthog.${t} was called before posthog.init.`);n[t](...e)};Le=kt});var Be={};X(Be,{CONSENT_CHANGE_EVENT:()=>V,CONSENT_COOKIE_NAME:()=>A,captureAttribution:()=>_t,channels:()=>d,events:()=>s,getAttribution:()=>N,getConsent:()=>p,initConsent:()=>st,initSiteAnalytics:()=>Dt,loadTags:()=>Mt,onConsentChange:()=>_,registerEvents:()=>Ut,requiresOptIn:()=>ot,resolveAiSource:()=>O,resolveChannel:()=>C,saveConsent:()=>ct,setConsentRegion:()=>at,trackSiteEvent:()=>xt});var qt=["google","googleads","adwords","youtube"],Kt=["meta","facebook","fb","instagram","ig","messenger"],jt=["linkedin","lnkd"],Qt=["bing","microsoft","microsoftads","msn"],J=Object.freeze([["chatgpt",["chatgpt.com","chat.openai.com"]],["perplexity",["perplexity.ai"]],["gemini",["gemini.google.com"]],["copilot",["copilot.microsoft.com"]],["claude",["claude.ai"]],["you",["you.com"]],["phind",["phind.com"]],["deepseek",["deepseek.com"]],["grok",["grok.com"]],["meta_ai",["meta.ai"]],["poe",["poe.com"]]]),Yt=["bing.com","duckduckgo.com","search.yahoo.com","ecosia.org","search.brave.com"],Xt=["google","yandex"],Jt=["facebook.com","fb.com","instagram.com","linkedin.com","lnkd.in","twitter.com","t.co","x.com","reddit.com","pinterest.com","youtube.com","youtu.be","tiktok.com","whatsapp.com","threads.net","t.me","telegram.org"],d=Object.freeze({DIRECT:"direct",GOOGLE:"google",META:"meta",LINKEDIN:"linkedin",MICROSOFT:"microsoft",OTHER:"other",AI_ASSISTANT:"ai_assistant",ORGANIC_SEARCH:"organic_search",ORGANIC_SOCIAL:"organic_social",REFERRAL:"referral"});function C(t){if(!t)return d.DIRECT;let e=g(t.utmSource);if(e){let r=v(e);if(qt.includes(r))return d.GOOGLE;if(Kt.includes(r))return d.META;if(jt.includes(r))return d.LINKEDIN;if(Qt.includes(r))return d.MICROSOFT}if(g(t.fbclid))return d.META;if(g(t.gclid)||g(t.gbraid)||g(t.wbraid))return d.GOOGLE;if(g(t.liFatId))return d.LINKEDIN;if(g(t.msclkid))return d.MICROSOFT;if(Z(e))return d.AI_ASSISTANT;if(e||g(t.utmMedium)||g(t.utmCampaign)||g(t.utmContent)||g(t.utmTerm))return d.OTHER;let o=nt(t.referrer);return o?tt(o)?d.AI_ASSISTANT:Zt(o)?d.ORGANIC_SEARCH:Jt.some(r=>et(o,r))?d.ORGANIC_SOCIAL:d.REFERRAL:d.DIRECT}function O(t){if(!t)return"";let e=Z(g(t.utmSource));if(e)return e;let n=nt(t.referrer);return n?tt(n):""}function Z(t){if(!t)return"";let e=v(t);for(let[n,o]of J){let r=o;if(v(n)===e||r.some(i=>v(i)===e))return n}return""}function tt(t){for(let[e,n]of J)if(n.some(r=>et(t,r)))return e;return""}function Zt(t){return Yt.includes(t)?!0:Xt.some(e=>{if(!t.startsWith(`${e}.`))return!1;let n=t.slice(e.length+1).split(".");return n.length===1||n.length===2&&(n[0]==="co"||n[0]==="com")})}function et(t,e){return t===e||t.endsWith(`.${e}`)}function nt(t){let e=g(t);if(!e)return"";try{let n=new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`https://${e}`).hostname.toLowerCase();return n.startsWith("www.")?n.slice(4):n}catch{return""}}function v(t){return String(t).toLowerCase().replace(/[^\p{L}\p{N}]/gu,"")}function g(t){return String(t??"").trim()}var x=Object.freeze(["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","GB","CH"]);function te(t){return x.some(e=>e===t)}function ot(t){let e=typeof t=="string"?t.trim().toUpperCase():"";return e.length!==2||e==="XX"||e==="T1"?!0:te(e)}var A="webority_cookie_consent",V="webority-consent-change",it=365,ee=["eea","other"],U=new Set,a={initialized:!1,requiresOptIn:!0,strictOptIn:!1,adStorage:!0,cookieDays:it,cookieDomain:null,regionCookie:null,region:null,saved:null};function st(t){let e=t?.strictOptIn??!1;if(typeof e!="boolean")throw new Error("@webority/analytics: initConsent strictOptIn must be true or false, or left out.");if(e){if(t.requiresOptIn!==void 0&&t.requiresOptIn!==!0)throw new Error("@webority/analytics: initConsent strictOptIn asks every visitor to opt in, so requiresOptIn must be true or left out.")}else if(typeof t?.requiresOptIn!="boolean")throw new Error("@webority/analytics: initConsent needs requiresOptIn (true or false), decided from the visitor's country.");if(t.cookieDomain!==void 0&&(typeof t.cookieDomain!="string"||!t.cookieDomain.trim()))throw new Error('@webority/analytics: initConsent cookieDomain must be a domain such as ".example.com", or left out.');if(t.cookieDays!==void 0&&!(Number.isInteger(t.cookieDays)&&t.cookieDays>0))throw new Error("@webority/analytics: initConsent cookieDays must be a whole number of days above zero, or left out.");if(t.adStorage!==void 0&&typeof t.adStorage!="boolean")throw new Error("@webority/analytics: initConsent adStorage must be true or false, or left out.");if(t.regionCookie!==void 0&&(typeof t.regionCookie!="string"||!/^[\w.-]+$/.test(t.regionCookie)))throw new Error('@webority/analytics: initConsent regionCookie must be a cookie name such as "wui_region", or left out.');a.initialized=!0,a.strictOptIn=e,a.requiresOptIn=e||t.requiresOptIn===!0,a.adStorage=t.adStorage??!e,a.cookieDays=t.cookieDays??it,a.cookieDomain=t.cookieDomain?.trim()??null,a.regionCookie=t.regionCookie??null,a.region=a.regionCookie?ie(a.regionCookie):null;let{saved:n,entryCount:o}=re();a.saved=n,a.cookieDomain&&o>1&&n&>(n),ne(),oe(),a.saved?W(a.saved):dt()&&pt()}function at(t){if(F("setConsentRegion"),!ft(t))throw new Error('@webority/analytics: setConsentRegion needs "eea" or "other".');let e=p();if(a.region=t,a.saved)return;let n=p();e.analytics===n.analytics&&e.functional===n.functional&&e.marketing===n.marketing||(pt(),ut(n))}function E(){return a.initialized}function lt(){return a.strictOptIn}function M(){return a.adStorage}function p(){F("getConsent");let t=a.saved;if(t)return{essential:!0,analytics:t.analytics,functional:t.functional,marketing:t.marketing,decided:!0};if(dt())return{essential:!0,analytics:!0,functional:!0,marketing:!1,decided:!1};let e=!a.requiresOptIn;return{essential:!0,analytics:e,functional:e,marketing:e,decided:!1}}function ct(t){F("saveConsent");let e={essential:!0,analytics:t?.analytics===!0,functional:t?.functional===!0,marketing:t?.marketing===!0,timestamp:new Date().toISOString()};gt(e),a.saved=e,W(e),ut(p())}function _(t){return U.add(t),()=>U.delete(t)}function ut(t){for(let e of U)try{e(t)}catch(n){queueMicrotask(()=>{throw n})}typeof window?.dispatchEvent=="function"&&typeof CustomEvent=="function"&&window.dispatchEvent(new CustomEvent(V,{detail:t}))}function F(t){if(!a.initialized)throw new Error(`@webority/analytics: call initConsent before ${t}.`)}function S(...t){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}function ne(){if(a.strictOptIn){S("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500});return}S("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500,region:[...x]});let t=a.adStorage?"granted":"denied";S("consent","default",{ad_storage:t,ad_user_data:t,ad_personalization:t,analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted"})}function oe(){S("set","ads_data_redaction",!0),S("set","url_passthrough",!0)}function dt(){return a.requiresOptIn&&!a.strictOptIn&&a.region==="other"}function pt(){let t=p();W(t,t.analytics&&a.adStorage)}function W(t,e=t.marketing&&a.adStorage){let n=o=>o?"granted":"denied";S("consent","update",{analytics_storage:n(t.analytics),functionality_storage:n(t.functional),personalization_storage:n(t.functional),ad_storage:n(e),ad_user_data:n(e),ad_personalization:n(e)})}function re(){let t=`${A}=`,e=(document.cookie||"").split(";").map(o=>o.trim()).filter(o=>o.startsWith(t)),n=e.map(o=>se(o.slice(t.length))).filter(o=>o!==null);return{saved:ae(n),entryCount:e.length}}function ie(t){let e=`${t}=`,o=(document.cookie||"").split(";").map(r=>r.trim()).find(r=>r.startsWith(e))?.slice(e.length);return ft(o)?o:null}function ft(t){return ee.some(e=>e===t)}function se(t){try{let e=JSON.parse(decodeURIComponent(t));return le(e)?{essential:!0,analytics:e.analytics===!0,functional:e.functional===!0,marketing:e.marketing===!0,timestamp:e.timestamp??null}:null}catch{return null}}function ae(t){let e=t.map(i=>({choice:i,time:typeof i.timestamp=="string"?Date.parse(i.timestamp):Number.NaN}));if(e.some(i=>Number.isNaN(i.time)))return t.at(-1)??null;let[n,...o]=e;if(!n)return null;let r=n;for(let i of o)i.time>=r.time&&(r=i);return r.choice}function gt(t){let e=typeof t.timestamp=="string"?Date.parse(t.timestamp):Number.NaN,n=(Number.isNaN(e)?Date.now():e)+a.cookieDays*24*60*60*1e3,o=window.location?.protocol==="https:"?";Secure":"";a.cookieDomain&&rt(`${A}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;max-age=0;path=/;SameSite=Lax${o}`);let r=a.cookieDomain?`;domain=${a.cookieDomain}`:"";rt(`${A}=${encodeURIComponent(JSON.stringify(t))};expires=${new Date(n).toUTCString()};path=/${r};SameSite=Lax${o}`)}function rt(t){document.cookie=t}function le(t){return typeof t=="object"&&t!==null}var k="webority_attribution",ce=2160*60*60*1e3,ue=200,H=500,de=Object.freeze({utm_source:"utmSource",utm_medium:"utmMedium",utm_campaign:"utmCampaign",utm_content:"utmContent",utm_term:"utmTerm",gclid:"gclid",gbraid:"gbraid",wbraid:"wbraid",fbclid:"fbclid",msclkid:"msclkid",li_fat_id:"liFatId"}),pe=["utmSource","utmMedium","utmCampaign","utmContent","utmTerm","gclid","gbraid","wbraid","fbclid","msclkid","liFatId","referrer","aiSource","landingPage"],mt=!1;function _t(){Ct("captureAttribution"),ye();let t=ge();if(!t)return;let e=B($());bt($(),{firstTouch:e?.firstTouch??t,lastTouch:t}),fe(t)}function fe(t){let e={event:"acquisition_touch",acquisition_channel:C(t)};t.aiSource&&(e.ai_source=t.aiSource),window.dataLayer=window.dataLayer||[],window.dataLayer.push(e)}function N(){return Ct("getAttribution"),B($())}function ge(){let t=new URLSearchParams(window.location.search),e={};for(let[r,i]of Object.entries(de)){let l=R(t.get(r),ue);l&&(e[i]=l)}let n=R(t.get("referrer"),H)||me();if(n&&(e.referrer=n),Object.keys(e).length===0)return null;let o=O(e);return o&&(e.aiSource=o),{...e,landingPage:R(window.location.pathname,H),capturedDateTimeUtc:new Date().toISOString()}}function me(){let t=document.referrer;if(!t)return"";try{return new URL(t).hostname===window.location.hostname?"":R(t,H)}catch{return""}}function ye(){mt||(mt=!0,_(t=>{let e=t.marketing?G():z(),n=t.marketing?z():G(),o=B(e);_e(e),o&&bt(n,o)}))}function $(){return p().marketing?z():G()}function z(){try{return window.localStorage}catch{return null}}function G(){try{return window.sessionStorage}catch{return null}}function B(t){try{let e=t?.getItem(k);if(!e)return null;let n=JSON.parse(e),o=ht(n)?n:{},r=yt(o.firstTouch),i=yt(o.lastTouch),l=r??i,u=i??r;return!l||!u?(t?.removeItem(k),null):{firstTouch:l,lastTouch:u}}catch{return null}}function bt(t,e){try{t?.setItem(k,JSON.stringify(e))}catch{}}function _e(t){try{t?.removeItem(k)}catch{}}function yt(t){if(!be(t))return null;let e=Date.parse(t.capturedDateTimeUtc);return Number.isFinite(e)&&Date.now()-e<=ce?t:null}function be(t){return!ht(t)||typeof t.capturedDateTimeUtc!="string"?!1:pe.every(e=>t[e]===void 0||typeof t[e]=="string")}function ht(t){return typeof t=="object"&&t!==null}function R(t,e){let n=String(t??"").trim();return n?n.slice(0,e):""}function Ct(t){if(!E())throw new Error(`@webority/analytics: call initConsent before ${t}.`)}var he="webority-analytics-web-vitals.global.js",q=globalThis.document?.currentScript,Ce=(q&&"src"in q?q.src:null)||null;function St(t,e,{base:n=Ce,doc:o=globalThis.document}={}){return!n||!o?.head?Promise.resolve():new Promise(r=>{let i=o.createElement("script");i.async=!0,i.src=new URL(he,n).href,i.onload=()=>r(globalThis.WeborityAnalyticsWebVitals?.startWebVitals(t,e)),i.onerror=()=>r(),o.head.appendChild(i)})}var Se=["scroll","mousemove","touchstart","keydown","pointerdown"];function P(t){let e=!1,n=()=>{e||(e=!0,t())};for(let o of Se)window.addEventListener(o,n,{once:!0,passive:!0});document.readyState==="complete"?setTimeout(n,1500):window.addEventListener("load",()=>setTimeout(n,1500),{once:!0})}var s=Object.freeze({SIGNUP_STARTED:"signup_started",SIGNUP_COMPLETED:"signup_completed",LOGIN_SUCCEEDED:"login_succeeded",ONBOARDING_STARTED:"onboarding_started",ONBOARDING_STEP_COMPLETED:"onboarding_step_completed",ONBOARDING_COMPLETED:"onboarding_completed",SUBSCRIPTION_ACTIVATED:"subscription_activated",SUBSCRIPTION_CANCELLED:"subscription_cancelled",PAYMENT_SUCCEEDED:"payment_succeeded",PAYMENT_FAILED:"payment_failed",FEEDBACK_SUBMITTED:"feedback_submitted",LEAD_SUBMITTED:"lead_submitted",LEAD_QUALIFIED:"lead_qualified",LEAD_WON:"lead_won",WHATSAPP_CLICK:"whatsapp_click",CALCULATOR_USE:"calculator_use",PHONE_CLICK:"phone_click",DEMO_BOOKED:"demo_booked",CONTACT_SUBMITTED:"contact_submitted",TRIAL_START_CLICK:"trial_start_click",SAMPLE_REPORT_DOWNLOAD:"sample_report_download",REPORT_VERIFIED:"report_verified",CONTENT_ENGAGED:"content_engaged",EMAIL_CLICK:"email_click",PAGE_NOT_FOUND:"page_not_found",CHAT_OPENED:"chat_opened",CHAT_STARTED:"chat_started",CHAT_INPUT_SUBMITTED:"chat_input_submitted",CHAT_HANDOFF_REQUESTED:"chat_handoff_requested",CHAT_RATED:"chat_rated",CHAT_ACTION_REPEATED:"chat_action_repeated",TOUR_STARTED:"tour_started",TOUR_STEP_VIEWED:"tour_step_viewed",TOUR_COMPLETED:"tour_completed",TOUR_SKIPPED:"tour_skipped"}),nn=Object.freeze({signupStarted:s.SIGNUP_STARTED,signupCompleted:s.SIGNUP_COMPLETED,loginSucceeded:s.LOGIN_SUCCEEDED,onboardingStarted:s.ONBOARDING_STARTED,onboardingStepCompleted:s.ONBOARDING_STEP_COMPLETED,onboardingCompleted:s.ONBOARDING_COMPLETED,subscriptionActivated:s.SUBSCRIPTION_ACTIVATED,subscriptionCancelled:s.SUBSCRIPTION_CANCELLED,paymentSucceeded:s.PAYMENT_SUCCEEDED,paymentFailed:s.PAYMENT_FAILED,feedbackSubmitted:s.FEEDBACK_SUBMITTED,leadSubmitted:s.LEAD_SUBMITTED,leadQualified:s.LEAD_QUALIFIED,leadWon:s.LEAD_WON,whatsappClick:s.WHATSAPP_CLICK,calculatorUse:s.CALCULATOR_USE,phoneClick:s.PHONE_CLICK,demoBooked:s.DEMO_BOOKED,contactSubmitted:s.CONTACT_SUBMITTED,trialStartClick:s.TRIAL_START_CLICK,sampleReportDownload:s.SAMPLE_REPORT_DOWNLOAD,reportVerified:s.REPORT_VERIFIED,contentEngaged:s.CONTENT_ENGAGED,emailClick:s.EMAIL_CLICK,pageNotFound:s.PAGE_NOT_FOUND,chatOpened:s.CHAT_OPENED,chatStarted:s.CHAT_STARTED,chatInputSubmitted:s.CHAT_INPUT_SUBMITTED,chatHandoffRequested:s.CHAT_HANDOFF_REQUESTED,chatRated:s.CHAT_RATED,chatActionRepeated:s.CHAT_ACTION_REPEATED,tourStarted:s.TOUR_STARTED,tourStepViewed:s.TOUR_STEP_VIEWED,tourCompleted:s.TOUR_COMPLETED,tourSkipped:s.TOUR_SKIPPED}),Et=/^[a-z][a-z0-9]*(_[a-z0-9]+)*$/;function Tt(){let t=new Set(Object.values(s));return{register(e){for(let n of e){if(!Et.test(n))throw new Error(`@webority/analytics: invalid event name "${n}". Expected snake_case.`);t.add(n)}},assertRegistered(e){if(!t.has(e))throw new Error(`@webority/analytics: event "${e}" is not registered. Call registerEvents() first.`)}}}var K=Tt();var Ee=new Set(["token","code","email","access_token","id_token","state","session_state","password","search","q","query"]),Te=/(?:access_token|id_token|session_state|token|code|state|email|password)=/i,we=["$current_url","$referrer","$pathname","$initial_current_url","$initial_referrer","$initial_pathname","$session_entry_url","$session_entry_referrer","$session_entry_pathname"],Ie=4,Ae=5,ve=6;function T(t){if(typeof t!="string")return t;let e=t.indexOf("#"),n=e===-1?t:t.slice(0,e),o=e===-1||Te.test(t.slice(e))?"":t.slice(e),r=n.indexOf("?");if(r===-1)return n+o;let i=n.slice(r+1).split("&"),l=i.filter(f=>!Ee.has(Ne(f))).map(ke);if(l.length===i.length&&l.every((f,w)=>f===i[w]))return n+o;let u=n.slice(0,r),m=l.filter(f=>f!=="").join("&");return(m?`${u}?${m}`:u)+o}function wt(t){if(!b(t))return t;let e=t.properties,n=b(e)?e:void 0;for(let i of[e,t.$set,t.$set_once,n?.$set,n?.$set_once])Re(i);let o=n?.$heatmap_data;if(n&&b(o)){let i={};for(let[l,u]of Object.entries(o)){let m=T(l),f=i[m];i[m]=Array.isArray(f)?f.concat(u):u}n.$heatmap_data=i}if(n){for(let[i,l]of Object.entries(n))if(i.startsWith("$web_vitals_")&&i.endsWith("_event")&&b(l))for(let u of["$current_url","navigationURL"]){let m=l[u];typeof m=="string"&&(l[u]=T(m))}}let r=n?.$snapshot_data;if(t.event==="$snapshot"&&r&&typeof r=="object"){let i=Array.isArray(r)?r:[r];for(let l of i)Oe(l)}return t}function Oe(t){if(!b(t))return;let e=t.data;if(b(e)){if(t.type===Ie)D(e,["href"]);else if(t.type===Ae)D(e.payload,["href"]);else if(t.type===ve){let n=e.payload;if(b(n)&&Array.isArray(n.requests))for(let o of n.requests)D(o,["name","url"])}}}function D(t,e){if(b(t))for(let n of e){let o=t[n];typeof o=="string"&&(t[n]=T(o))}}function Re(t){D(t,we)}function ke(t){let e=t.indexOf("=");if(e===-1)return t;let n=t.slice(e+1).replace(/\+/g," "),o;try{o=decodeURIComponent(n)}catch{o=It(n)}if(!o.startsWith("/")&&!/^https?:\/\//i.test(o))return t;let r=T(o);return r===o?t:`${t.slice(0,e)}=${encodeURIComponent(r)}`}function Ne(t){let e=t.replace(/\+/g," "),n;try{n=decodeURIComponent(e)}catch{n=It(e)}return(n.split("=",1)[0]??"").toLowerCase()}function It(t){return t.replace(/%([0-9a-f]{2})/gi,(e,n)=>{let o=Number.parseInt(n,16);return o<128?String.fromCharCode(o):e})}function b(t){return typeof t=="object"&&t!==null}function At(t,e,n=!1){return e?t:{...t,opt_out_capturing_by_default:!0,...n?{advanced_disable_feature_flags_on_first_load:!0}:{}}}function vt(t){let e=t.sessionRecording??{enabled:!1,maskAllInputs:!0,maskTextSelector:null},n={api_host:t.host,autocapture:!1,capture_pageview:"history_change",cookieless_mode:"on_reject",person_profiles:"identified_only",persistence:"localStorage+cookie",cross_subdomain_cookie:!0,disable_session_recording:!e.enabled,enable_heatmaps:t.heatmaps===!0,capture_exceptions:t.captureExceptions===!0,capture_performance:{web_vitals:!1},disable_surveys:!0,disable_product_tours:!0,disable_conversations:!0,advanced_disable_feature_flags:!(e.enabled||t.featureFlags===!0),before_send:wt};if(e.enabled){let o={maskAllInputs:e.maskAllInputs??!0,...e.maskTextSelector?{maskTextSelector:e.maskTextSelector}:{},maskCapturedNetworkRequestFn:r=>({...r,name:T(r.name)}),recordBody:!1,recordHeaders:!1};n.session_recording=o}return n}var Ot={sampleRate:1,softNavigations:!0,deployVersion:null,pageTemplate:null};function Rt(t){if(t==null||t===!1)return null;if(t===!0)return{...Ot};if(typeof t!="object")throw new Error("@webority/analytics: webVitals takes true or { sampleRate, softNavigations, deployVersion, pageTemplate }.");let e=t.sampleRate??Ot.sampleRate;if(typeof e!="number"||!(e>0&&e<=1))throw new Error("@webority/analytics: webVitals.sampleRate must be a number above 0 and at most 1.");let n=t.deployVersion??null;if(n!==null&&typeof n!="string")throw new Error("@webority/analytics: webVitals.deployVersion must be a string.");let o=t.pageTemplate??null;if(o!==null&&(typeof o!="string"||o.length>120))throw new Error("@webority/analytics: webVitals.pageTemplate must be a string of at most 120 characters.");return{sampleRate:e,softNavigations:t.softNavigations!==!1,deployVersion:n,pageTemplate:o}}var xe=()=>Promise.resolve().then(()=>(Pt(),Nt)),Ue=100,c={config:null,posthog:null,pending:[],failed:!1,loadPosthog:xe,startVitals:St,stopFollowingConsent:null};function Dt({host:t,clientKey:e,product:n,surface:o,environment:r,enabled:i=!0,sessionRecording:l,heatmaps:u=!1,captureExceptions:m=!1,webVitals:f=!1}={}){if(!E())throw new Error("@webority/analytics: call initConsent before initSiteAnalytics.");let w=Rt(f);if(!i||!t||!e||r==="Local"||c.config)return;let I={host:t,clientKey:e,product:n,surface:o,environment:r,sessionRecording:l,heatmaps:u,captureExceptions:m,webVitals:w};c.config=I,c.stopFollowingConsent=_(h=>Me(h.analytics)),P(()=>{Promise.resolve().then(c.loadPosthog).then(h=>Ve(h.default??h,I)).catch(()=>{c.failed=!0,c.pending=[]})})}function Ve(t,e){let n=p().analytics;t.init(e.clientKey,At(Fe(e),n)),t.register({product:e.product,surface:e.surface,environment:e.environment}),n?t.opt_in_capturing({captureEventName:!1}):t.opt_out_capturing(),c.posthog=t;let o=c.pending;c.pending=[];for(let[r,i]of o)j(t,r,i);e.webVitals&&c.startVitals(e.webVitals,(r,i)=>j(t,r,i))}function Me(t){c.posthog&&(t?c.posthog.opt_in_capturing():c.posthog.opt_out_capturing())}function Fe(t){return{...vt({host:t.host,sessionRecording:t.sessionRecording,heatmaps:t.heatmaps,captureExceptions:t.captureExceptions}),capture_pageview:!0}}function Lt(t,e){let n=c.config;if(!n)return;let o={...e,product:n.product,surface:n.surface,environment:n.environment};c.posthog?j(c.posthog,t,o):!c.failed&&c.pending.length<Ue&&c.pending.push([t,o])}function j(t,e,n){try{t.capture(e,n)}catch{}}function xt(t,e={}){K.assertRegistered(t);let n=p().analytics,o=N(),r={...e};for(let[i,l]of[["first",o?.firstTouch],["last",o?.lastTouch]])l&&(r[`${i}_touch_channel`]=C(l),l.aiSource&&(r[`${i}_touch_ai_source`]=l.aiSource));return Lt(t,r),n?(window.dataLayer=window.dataLayer||[],window.dataLayer.push({...r,event:t}),!0):!1}function Ut(t){K.register(t)}var We="https://www.googletagmanager.com/gtm.js",He=3e3,$e=100,y={loaded:!1,clarityId:null,clarityLoaded:!1,cancelClaritySchedule:null};function Mt(t={}){if(!E())throw new Error("@webority/analytics: call initConsent before loadTags.");if(y.loaded)return;y.loaded=!0;let{gtmId:e,gtmUrl:n=We,clarityId:o,ahrefsKey:r}=t;if(typeof n!="string"||n.trim()==="")throw new Error("@webority/analytics: gtmUrl must be a non-empty string.");let i=lt();if(r){let l=()=>Y("https://analytics.ahrefs.com/analytics.js",{"data-key":r});i?Vt(u=>u.analytics,l):l()}if(e){let l=M(),u=h=>h.analytics||h.marketing&&l,m=()=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({"gtm.start":Date.now(),event:"gtm.js"}),Y(`${n}${n.includes("?")?"&":"?"}id=${encodeURIComponent(e)}`)},f=p(),w=f.decided&&u(f)?ze:P,I=()=>w(m);i?Vt(u,I):I()}o&&(y.clarityId=o,p().analytics&&Ge(),_(l=>{l.analytics&&!y.clarityLoaded?Q():y.clarityLoaded&&Ft(l)}))}function Vt(t,e){if(t(p())){e();return}let n=_(o=>{t(o)&&(n(),e())})}function ze(t){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t,{once:!0}):t()}function Ge(){let t=()=>{window.scrollY>$e&&Q()};window.addEventListener("scroll",t,{passive:!0});let e=setTimeout(Q,He);y.cancelClaritySchedule=()=>{window.removeEventListener("scroll",t),clearTimeout(e)}}function Q(){if(y.cancelClaritySchedule?.(),y.cancelClaritySchedule=null,y.clarityLoaded||!y.clarityId)return;y.clarityLoaded=!0;let t=function(){t.q=t.q||[],t.q.push(arguments)};window.clarity=window.clarity||t,Ft(p()),Y(`https://www.clarity.ms/tag/${encodeURIComponent(y.clarityId)}`,{crossorigin:"anonymous"})}function Ft(t){window.clarity?.("consentv2",{ad_Storage:t.marketing&&M()?"granted":"denied",analytics_Storage:t.analytics?"granted":"denied"})}function Y(t,e={}){let n=document.createElement("script");n.async=!0,n.src=t;for(let[o,r]of Object.entries(e))n.setAttribute(o,r);document.head.appendChild(n)}return Bt(Be);})();
|
|
1
|
+
"use strict";var WeborityAnalytics=(()=>{var L=Object.defineProperty;var He=Object.getOwnPropertyDescriptor;var We=Object.getOwnPropertyNames;var $e=Object.prototype.hasOwnProperty;var Be=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(o){throw n=[o],o}};var X=(e,t)=>{for(var n in t)L(e,n,{get:t[n],enumerable:!0})},Ge=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of We(t))!$e.call(e,i)&&i!==n&&L(e,i,{get:()=>t[i],enumerable:!(o=He(t,i))||o.enumerable});return e};var ze=e=>Ge(L({},"__esModule",{value:!0}),e);var Ne={};X(Ne,{default:()=>Lt});function Pt(){let e=Object.assign([],{_i:[],__SV:1,people:[],capture:(...t)=>{e.push(["capture",...t])},register:(...t)=>{e.push(["register",...t])},opt_in_capturing:(...t)=>{e.push(["opt_in_capturing",...t])},opt_out_capturing:(...t)=>{e.push(["opt_out_capturing",...t])},init:(t,n)=>{e._i.push([t,n]);let o=document.createElement("script");o.async=!0,o.crossOrigin="anonymous",o.src=`${n.api_host.replace(/\/+$/,"").replace(".i.posthog.com","-assets.i.posthog.com")}/static/array.js`,document.head.appendChild(o)}});return window.posthog=e,e}var Dt,ke,Lt,De=Be(()=>{"use strict";Dt=["capture","register","opt_in_capturing","opt_out_capturing"];ke={init(e,t){(window.posthog??Pt()).init(e,t)}};for(let e of Dt)ke[e]=(...t)=>{let n=window.posthog;if(n===void 0)throw new TypeError(`posthog.${e} was called before posthog.init.`);n[e](...t)};Lt=ke});var zt={};X(zt,{CONSENT_CHANGE_EVENT:()=>V,CONSENT_COOKIE_NAME:()=>v,captureAttribution:()=>_e,channels:()=>d,events:()=>s,getAttribution:()=>N,getConsent:()=>p,initConsent:()=>se,initSiteAnalytics:()=>Pe,loadTags:()=>Fe,onConsentChange:()=>_,registerEvents:()=>Ue,requiresOptIn:()=>oe,resolveAiSource:()=>R,resolveChannel:()=>S,saveConsent:()=>ue,setConsentRegion:()=>ae,trackSiteEvent:()=>xe});var qe=["google","googleads","adwords","youtube"],Ke=["meta","facebook","fb","instagram","ig","messenger"],je=["linkedin","lnkd"],Qe=["bing","microsoft","microsoftads","msn"],J=Object.freeze([["chatgpt",["chatgpt.com","chat.openai.com"]],["perplexity",["perplexity.ai"]],["gemini",["gemini.google.com"]],["copilot",["copilot.microsoft.com"]],["claude",["claude.ai"]],["you",["you.com"]],["phind",["phind.com"]],["deepseek",["deepseek.com"]],["grok",["grok.com"]],["meta_ai",["meta.ai"]],["poe",["poe.com"]]]),Ye=["bing.com","duckduckgo.com","search.yahoo.com","ecosia.org","search.brave.com"],Xe=["google","yandex"],Je=["facebook.com","fb.com","instagram.com","linkedin.com","lnkd.in","twitter.com","t.co","x.com","reddit.com","pinterest.com","youtube.com","youtu.be","tiktok.com","whatsapp.com","threads.net","t.me","telegram.org"],d=Object.freeze({DIRECT:"direct",GOOGLE:"google",META:"meta",LINKEDIN:"linkedin",MICROSOFT:"microsoft",OTHER:"other",AI_ASSISTANT:"ai_assistant",ORGANIC_SEARCH:"organic_search",ORGANIC_SOCIAL:"organic_social",REFERRAL:"referral"});function S(e){if(!e)return d.DIRECT;let t=g(e.utmSource);if(t){let i=A(t);if(qe.includes(i))return d.GOOGLE;if(Ke.includes(i))return d.META;if(je.includes(i))return d.LINKEDIN;if(Qe.includes(i))return d.MICROSOFT}if(g(e.fbclid))return d.META;if(g(e.gclid)||g(e.gbraid)||g(e.wbraid))return d.GOOGLE;if(g(e.liFatId))return d.LINKEDIN;if(g(e.msclkid))return d.MICROSOFT;if(Z(t))return d.AI_ASSISTANT;if(t||g(e.utmMedium)||g(e.utmCampaign)||g(e.utmContent)||g(e.utmTerm))return d.OTHER;let o=ne(e.referrer);return o?ee(o)?d.AI_ASSISTANT:Ze(o)?d.ORGANIC_SEARCH:Je.some(i=>te(o,i))?d.ORGANIC_SOCIAL:d.REFERRAL:d.DIRECT}function R(e){if(!e)return"";let t=Z(g(e.utmSource));if(t)return t;let n=ne(e.referrer);return n?ee(n):""}function Z(e){if(!e)return"";let t=A(e);for(let[n,o]of J){let i=o;if(A(n)===t||i.some(r=>A(r)===t))return n}return""}function ee(e){for(let[t,n]of J)if(n.some(i=>te(e,i)))return t;return""}function Ze(e){return Ye.includes(e)?!0:Xe.some(t=>{if(!e.startsWith(`${t}.`))return!1;let n=e.slice(t.length+1).split(".");return n.length===1||n.length===2&&(n[0]==="co"||n[0]==="com")})}function te(e,t){return e===t||e.endsWith(`.${t}`)}function ne(e){let t=g(e);if(!t)return"";try{let n=new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(t)?t:`https://${t}`).hostname.toLowerCase();return n.startsWith("www.")?n.slice(4):n}catch{return""}}function A(e){return String(e).toLowerCase().replace(/[^\p{L}\p{N}]/gu,"")}function g(e){return String(e??"").trim()}var x=Object.freeze(["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","GB","CH"]);function et(e){return x.some(t=>t===e)}function oe(e){let t=typeof e=="string"?e.trim().toUpperCase():"";return t.length!==2||t==="XX"||t==="T1"?!0:et(t)}var v="webority_cookie_consent",V="webority-consent-change",re=365,tt=["eea","other"],U=new Set,a={initialized:!1,requiresOptIn:!0,strictOptIn:!1,adStorage:!0,cookieDays:re,cookieDomain:null,regionCookie:null,region:null,saved:null};function se(e){let t=e?.strictOptIn??!1;if(typeof t!="boolean")throw new Error("@webority/analytics: initConsent strictOptIn must be true or false, or left out.");if(t){if(e.requiresOptIn!==void 0&&e.requiresOptIn!==!0)throw new Error("@webority/analytics: initConsent strictOptIn asks every visitor to opt in, so requiresOptIn must be true or left out.")}else if(typeof e?.requiresOptIn!="boolean")throw new Error("@webority/analytics: initConsent needs requiresOptIn (true or false), decided from the visitor's country.");if(e.cookieDomain!==void 0&&(typeof e.cookieDomain!="string"||!e.cookieDomain.trim()))throw new Error('@webority/analytics: initConsent cookieDomain must be a domain such as ".example.com", or left out.');if(e.cookieDays!==void 0&&!(Number.isInteger(e.cookieDays)&&e.cookieDays>0))throw new Error("@webority/analytics: initConsent cookieDays must be a whole number of days above zero, or left out.");if(e.adStorage!==void 0&&typeof e.adStorage!="boolean")throw new Error("@webority/analytics: initConsent adStorage must be true or false, or left out.");if(e.regionCookie!==void 0&&(typeof e.regionCookie!="string"||!/^[\w.-]+$/.test(e.regionCookie)))throw new Error('@webority/analytics: initConsent regionCookie must be a cookie name such as "wui_region", or left out.');a.initialized=!0,a.strictOptIn=t,a.requiresOptIn=t||e.requiresOptIn===!0,a.adStorage=e.adStorage??!t,a.cookieDays=e.cookieDays??re,a.cookieDomain=e.cookieDomain?.trim()??null,a.regionCookie=e.regionCookie??null,a.region=a.regionCookie?rt(a.regionCookie):null;let{saved:n,entryCount:o}=it();a.saved=n,a.cookieDomain&&o>1&&n&&ge(n),nt(),ot(),a.saved?H(a.saved):de()&&pe()}function ae(e){if(M("setConsentRegion"),!fe(e))throw new Error('@webority/analytics: setConsentRegion needs "eea" or "other".');let t=p();if(a.region=e,a.saved)return;let n=p();t.analytics===n.analytics&&t.functional===n.functional&&t.marketing===n.marketing||(pe(),ce(n))}function E(){return a.initialized}function le(){return a.strictOptIn}function F(){return a.adStorage}function p(){M("getConsent");let e=a.saved;if(e)return{essential:!0,analytics:e.analytics,functional:e.functional,marketing:e.marketing,decided:!0};if(de())return{essential:!0,analytics:!0,functional:!0,marketing:!1,decided:!1};let t=!a.requiresOptIn;return{essential:!0,analytics:t,functional:t,marketing:t,decided:!1}}function ue(e){M("saveConsent");let t={essential:!0,analytics:e?.analytics===!0,functional:e?.functional===!0,marketing:e?.marketing===!0,timestamp:new Date().toISOString()};ge(t),a.saved=t,H(t),ce(p())}function _(e){return U.add(e),()=>U.delete(e)}function ce(e){for(let t of U)try{t(e)}catch(n){queueMicrotask(()=>{throw n})}typeof window?.dispatchEvent=="function"&&typeof CustomEvent=="function"&&window.dispatchEvent(new CustomEvent(V,{detail:e}))}function M(e){if(!a.initialized)throw new Error(`@webority/analytics: call initConsent before ${e}.`)}function h(...e){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}function nt(){if(a.strictOptIn){h("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500});return}h("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500,region:[...x]});let e=a.adStorage?"granted":"denied";h("consent","default",{ad_storage:e,ad_user_data:e,ad_personalization:e,analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted"})}function ot(){h("set","ads_data_redaction",!0),h("set","url_passthrough",!0)}function de(){return a.requiresOptIn&&!a.strictOptIn&&a.region==="other"}function pe(){let e=p();H(e,e.analytics&&a.adStorage)}function H(e,t=e.marketing&&a.adStorage){let n=o=>o?"granted":"denied";h("consent","update",{analytics_storage:n(e.analytics),functionality_storage:n(e.functional),personalization_storage:n(e.functional),ad_storage:n(t),ad_user_data:n(t),ad_personalization:n(t)})}function it(){let e=`${v}=`,t=(document.cookie||"").split(";").map(o=>o.trim()).filter(o=>o.startsWith(e)),n=t.map(o=>st(o.slice(e.length))).filter(o=>o!==null);return{saved:at(n),entryCount:t.length}}function rt(e){let t=`${e}=`,o=(document.cookie||"").split(";").map(i=>i.trim()).find(i=>i.startsWith(t))?.slice(t.length);return fe(o)?o:null}function fe(e){return tt.some(t=>t===e)}function st(e){try{let t=JSON.parse(decodeURIComponent(e));return lt(t)?{essential:!0,analytics:t.analytics===!0,functional:t.functional===!0,marketing:t.marketing===!0,timestamp:t.timestamp??null}:null}catch{return null}}function at(e){let t=e.map(r=>({choice:r,time:typeof r.timestamp=="string"?Date.parse(r.timestamp):Number.NaN}));if(t.some(r=>Number.isNaN(r.time)))return e.at(-1)??null;let[n,...o]=t;if(!n)return null;let i=n;for(let r of o)r.time>=i.time&&(i=r);return i.choice}function ge(e){let t=typeof e.timestamp=="string"?Date.parse(e.timestamp):Number.NaN,n=(Number.isNaN(t)?Date.now():t)+a.cookieDays*24*60*60*1e3,o=window.location?.protocol==="https:"?";Secure":"";a.cookieDomain&&ie(`${v}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;max-age=0;path=/;SameSite=Lax${o}`);let i=a.cookieDomain?`;domain=${a.cookieDomain}`:"";ie(`${v}=${encodeURIComponent(JSON.stringify(e))};expires=${new Date(n).toUTCString()};path=/${i};SameSite=Lax${o}`)}function ie(e){document.cookie=e}function lt(e){return typeof e=="object"&&e!==null}var k="webority_attribution",ut=2160*60*60*1e3,ct=200,W=500,dt=Object.freeze({utm_source:"utmSource",utm_medium:"utmMedium",utm_campaign:"utmCampaign",utm_content:"utmContent",utm_term:"utmTerm",gclid:"gclid",gbraid:"gbraid",wbraid:"wbraid",fbclid:"fbclid",msclkid:"msclkid",li_fat_id:"liFatId"}),pt=["utmSource","utmMedium","utmCampaign","utmContent","utmTerm","gclid","gbraid","wbraid","fbclid","msclkid","liFatId","referrer","aiSource","landingPage"],me=!1;function _e(){Se("captureAttribution"),yt();let e=gt();if(!e)return;let t=z($());be($(),{firstTouch:t?.firstTouch??e,lastTouch:e}),ft(e)}function ft(e){let t={event:"acquisition_touch",acquisition_channel:S(e)};e.aiSource&&(t.ai_source=e.aiSource),window.dataLayer=window.dataLayer||[],window.dataLayer.push(t)}function N(){return Se("getAttribution"),z($())}function gt(){let e=new URLSearchParams(window.location.search),t={};for(let[i,r]of Object.entries(dt)){let l=O(e.get(i),ct);l&&(t[r]=l)}let n=O(e.get("referrer"),W)||mt();if(n&&(t.referrer=n),Object.keys(t).length===0)return null;let o=R(t);return o&&(t.aiSource=o),{...t,landingPage:O(window.location.pathname,W),capturedDateTimeUtc:new Date().toISOString()}}function mt(){let e=document.referrer;if(!e)return"";try{return new URL(e).hostname===window.location.hostname?"":O(e,W)}catch{return""}}function yt(){me||(me=!0,_(e=>{let t=e.marketing?G():B(),n=e.marketing?B():G(),o=z(t);_t(t),o&&be(n,o)}))}function $(){return p().marketing?B():G()}function B(){try{return window.localStorage}catch{return null}}function G(){try{return window.sessionStorage}catch{return null}}function z(e){try{let t=e?.getItem(k);if(!t)return null;let n=JSON.parse(t),o=Ce(n)?n:{},i=ye(o.firstTouch),r=ye(o.lastTouch),l=i??r,c=r??i;return!l||!c?(e?.removeItem(k),null):{firstTouch:l,lastTouch:c}}catch{return null}}function be(e,t){try{e?.setItem(k,JSON.stringify(t))}catch{}}function _t(e){try{e?.removeItem(k)}catch{}}function ye(e){if(!bt(e))return null;let t=Date.parse(e.capturedDateTimeUtc);return Number.isFinite(t)&&Date.now()-t<=ut?e:null}function bt(e){return!Ce(e)||typeof e.capturedDateTimeUtc!="string"?!1:pt.every(t=>e[t]===void 0||typeof e[t]=="string")}function Ce(e){return typeof e=="object"&&e!==null}function O(e,t){let n=String(e??"").trim();return n?n.slice(0,t):""}function Se(e){if(!E())throw new Error(`@webority/analytics: call initConsent before ${e}.`)}var Ct="webority-analytics-web-vitals.global.js",q=globalThis.document?.currentScript,St=(q&&"src"in q?q.src:null)||null;function he(e,t,{base:n=St,doc:o=globalThis.document}={}){return!n||!o?.head?Promise.resolve():new Promise(i=>{let r=o.createElement("script");r.async=!0,r.src=new URL(Ct,n).href,r.onload=()=>i(globalThis.WeborityAnalyticsWebVitals?.startWebVitals(e,t)),r.onerror=()=>i(),o.head.appendChild(r)})}var ht=["scroll","mousemove","touchstart","keydown","pointerdown"];function D(e){let t=!1,n=()=>{t||(t=!0,e())};for(let o of ht)window.addEventListener(o,n,{once:!0,passive:!0});document.readyState==="complete"?setTimeout(n,1500):window.addEventListener("load",()=>setTimeout(n,1500),{once:!0})}var s=Object.freeze({SIGNUP_STARTED:"signup_started",SIGNUP_COMPLETED:"signup_completed",LOGIN_SUCCEEDED:"login_succeeded",ONBOARDING_STARTED:"onboarding_started",ONBOARDING_STEP_COMPLETED:"onboarding_step_completed",ONBOARDING_COMPLETED:"onboarding_completed",SUBSCRIPTION_ACTIVATED:"subscription_activated",SUBSCRIPTION_CANCELLED:"subscription_cancelled",PAYMENT_SUCCEEDED:"payment_succeeded",PAYMENT_FAILED:"payment_failed",FEEDBACK_SUBMITTED:"feedback_submitted",LEAD_SUBMITTED:"lead_submitted",LEAD_QUALIFIED:"lead_qualified",LEAD_WON:"lead_won",WHATSAPP_CLICK:"whatsapp_click",CALCULATOR_USE:"calculator_use",PHONE_CLICK:"phone_click",DEMO_BOOKED:"demo_booked",CONTACT_SUBMITTED:"contact_submitted",TRIAL_START_CLICK:"trial_start_click",SAMPLE_REPORT_DOWNLOAD:"sample_report_download",REPORT_VERIFIED:"report_verified",CONTENT_ENGAGED:"content_engaged",EMAIL_CLICK:"email_click",PAGE_NOT_FOUND:"page_not_found",CHAT_OPENED:"chat_opened",CHAT_STARTED:"chat_started",CHAT_INPUT_SUBMITTED:"chat_input_submitted",CHAT_HANDOFF_REQUESTED:"chat_handoff_requested",CHAT_RATED:"chat_rated",CHAT_ACTION_REPEATED:"chat_action_repeated",TOUR_STARTED:"tour_started",TOUR_STEP_VIEWED:"tour_step_viewed",TOUR_COMPLETED:"tour_completed",TOUR_SKIPPED:"tour_skipped"}),nn=Object.freeze({signupStarted:s.SIGNUP_STARTED,signupCompleted:s.SIGNUP_COMPLETED,loginSucceeded:s.LOGIN_SUCCEEDED,onboardingStarted:s.ONBOARDING_STARTED,onboardingStepCompleted:s.ONBOARDING_STEP_COMPLETED,onboardingCompleted:s.ONBOARDING_COMPLETED,subscriptionActivated:s.SUBSCRIPTION_ACTIVATED,subscriptionCancelled:s.SUBSCRIPTION_CANCELLED,paymentSucceeded:s.PAYMENT_SUCCEEDED,paymentFailed:s.PAYMENT_FAILED,feedbackSubmitted:s.FEEDBACK_SUBMITTED,leadSubmitted:s.LEAD_SUBMITTED,leadQualified:s.LEAD_QUALIFIED,leadWon:s.LEAD_WON,whatsappClick:s.WHATSAPP_CLICK,calculatorUse:s.CALCULATOR_USE,phoneClick:s.PHONE_CLICK,demoBooked:s.DEMO_BOOKED,contactSubmitted:s.CONTACT_SUBMITTED,trialStartClick:s.TRIAL_START_CLICK,sampleReportDownload:s.SAMPLE_REPORT_DOWNLOAD,reportVerified:s.REPORT_VERIFIED,contentEngaged:s.CONTENT_ENGAGED,emailClick:s.EMAIL_CLICK,pageNotFound:s.PAGE_NOT_FOUND,chatOpened:s.CHAT_OPENED,chatStarted:s.CHAT_STARTED,chatInputSubmitted:s.CHAT_INPUT_SUBMITTED,chatHandoffRequested:s.CHAT_HANDOFF_REQUESTED,chatRated:s.CHAT_RATED,chatActionRepeated:s.CHAT_ACTION_REPEATED,tourStarted:s.TOUR_STARTED,tourStepViewed:s.TOUR_STEP_VIEWED,tourCompleted:s.TOUR_COMPLETED,tourSkipped:s.TOUR_SKIPPED}),Ee=/^[a-z][a-z0-9]*(_[a-z0-9]+)*$/;function Te(){let e=new Set(Object.values(s));return{register(t){for(let n of t){if(!Ee.test(n))throw new Error(`@webority/analytics: invalid event name "${n}". Expected snake_case.`);e.add(n)}},assertRegistered(t){if(!e.has(t))throw new Error(`@webority/analytics: event "${t}" is not registered. Call registerEvents() first.`)}}}var K=Te();var Et=new Set(["token","code","email","access_token","id_token","state","session_state","password","search","q","query"]),Tt=/(?:access_token|id_token|session_state|token|code|state|email|password)=/i,wt=["$current_url","$referrer","$pathname","$initial_current_url","$initial_referrer","$initial_pathname","$session_entry_url","$session_entry_referrer","$session_entry_pathname"],It=4,vt=5,At=6;function T(e){if(typeof e!="string")return e;let t=e.indexOf("#"),n=t===-1?e:e.slice(0,t),o=t===-1||Tt.test(e.slice(t))?"":e.slice(t),i=n.indexOf("?");if(i===-1)return n+o;let r=n.slice(i+1).split("&"),l=r.filter(f=>!Et.has(Nt(f))).map(kt);if(l.length===r.length&&l.every((f,w)=>f===r[w]))return n+o;let c=n.slice(0,i),m=l.filter(f=>f!=="").join("&");return(m?`${c}?${m}`:c)+o}function we(e){if(!b(e))return e;let t=e.properties,n=b(t)?t:void 0;for(let r of[t,e.$set,e.$set_once,n?.$set,n?.$set_once])Ot(r);let o=n?.$heatmap_data;if(n&&b(o)){let r={};for(let[l,c]of Object.entries(o)){let m=T(l),f=r[m];r[m]=Array.isArray(f)?f.concat(c):c}n.$heatmap_data=r}if(n){for(let[r,l]of Object.entries(n))if(r.startsWith("$web_vitals_")&&r.endsWith("_event")&&b(l))for(let c of["$current_url","navigationURL"]){let m=l[c];typeof m=="string"&&(l[c]=T(m))}}let i=n?.$snapshot_data;if(e.event==="$snapshot"&&i&&typeof i=="object"){let r=Array.isArray(i)?i:[i];for(let l of r)Rt(l)}return e}function Rt(e){if(!b(e))return;let t=e.data;if(b(t)){if(e.type===It)P(t,["href"]);else if(e.type===vt)P(t.payload,["href"]);else if(e.type===At){let n=t.payload;if(b(n)&&Array.isArray(n.requests))for(let o of n.requests)P(o,["name","url"])}}}function P(e,t){if(b(e))for(let n of t){let o=e[n];typeof o=="string"&&(e[n]=T(o))}}function Ot(e){P(e,wt)}function kt(e){let t=e.indexOf("=");if(t===-1)return e;let n=e.slice(t+1).replace(/\+/g," "),o;try{o=decodeURIComponent(n)}catch{o=Ie(n)}if(!o.startsWith("/")&&!/^https?:\/\//i.test(o))return e;let i=T(o);return i===o?e:`${e.slice(0,t)}=${encodeURIComponent(i)}`}function Nt(e){let t=e.replace(/\+/g," "),n;try{n=decodeURIComponent(t)}catch{n=Ie(t)}return(n.split("=",1)[0]??"").toLowerCase()}function Ie(e){return e.replace(/%([0-9a-f]{2})/gi,(t,n)=>{let o=Number.parseInt(n,16);return o<128?String.fromCharCode(o):t})}function b(e){return typeof e=="object"&&e!==null}function ve(e,t,n=!1){return t?e:{...e,opt_out_capturing_by_default:!0,...n?{advanced_disable_feature_flags_on_first_load:!0}:{}}}function Ae(e){let t=e.sessionRecording??{},n={api_host:e.host,autocapture:!1,capture_pageview:"history_change",cookieless_mode:"on_reject",person_profiles:"identified_only",persistence:"localStorage+cookie",cross_subdomain_cookie:!0,disable_session_recording:!t.enabled,enable_heatmaps:e.heatmaps===!0,capture_exceptions:e.captureExceptions===!0,capture_performance:{web_vitals:!1},disable_surveys:!0,disable_product_tours:!0,disable_conversations:!0,advanced_disable_feature_flags:!(t.enabled||e.featureFlags===!0),before_send:we};if(t.enabled){let o={maskAllInputs:t.maskAllInputs??!0,...t.maskTextSelector?{maskTextSelector:t.maskTextSelector}:{},maskCapturedNetworkRequestFn:i=>({...i,name:T(i.name)}),recordBody:!1,recordHeaders:!1};n.session_recording=o}return n}var Re={sampleRate:1,softNavigations:!0,deployVersion:null,pageTemplate:null};function Oe(e){if(e==null||e===!1)return null;if(e===!0)return{...Re};if(typeof e!="object")throw new Error("@webority/analytics: webVitals takes true or { sampleRate, softNavigations, deployVersion, pageTemplate }.");let t=e,n=t.sampleRate??Re.sampleRate;if(typeof n!="number"||!(n>0&&n<=1))throw new Error("@webority/analytics: webVitals.sampleRate must be a number above 0 and at most 1.");let o=t.deployVersion??null;if(o!==null&&typeof o!="string")throw new Error("@webority/analytics: webVitals.deployVersion must be a string.");let i=t.pageTemplate??null;if(i!==null&&(typeof i!="string"||i.length>120))throw new Error("@webority/analytics: webVitals.pageTemplate must be a string of at most 120 characters.");return{sampleRate:n,softNavigations:t.softNavigations!==!1,deployVersion:o,pageTemplate:i}}var xt=()=>Promise.resolve().then(()=>(De(),Ne)),Ut=100,u={config:null,posthog:null,pending:[],failed:!1,loadPosthog:xt,startVitals:he,stopFollowingConsent:null};function Pe({host:e,clientKey:t,product:n,surface:o,environment:i,enabled:r=!0,sessionRecording:l,heatmaps:c=!1,captureExceptions:m=!1,webVitals:f=!1}={}){if(!E())throw new Error("@webority/analytics: call initConsent before initSiteAnalytics.");let w=Oe(f);if(!r||!e||!t||i==="Local"||u.config)return;let I={host:e,clientKey:t,product:n,surface:o,environment:i,sessionRecording:l,heatmaps:c,captureExceptions:m,webVitals:w};u.config=I,u.stopFollowingConsent=_(C=>Ft(C.analytics)),D(()=>{Promise.resolve().then(u.loadPosthog).then(C=>Vt(C.default??C,I)).catch(()=>{u.failed=!0,u.pending=[]})})}function Vt(e,t){let n=p().analytics;e.init(t.clientKey,ve(Mt(t),n)),e.register({product:t.product,surface:t.surface,environment:t.environment}),n?e.opt_in_capturing({captureEventName:!1}):e.opt_out_capturing(),u.posthog=e;let o=u.pending;u.pending=[];for(let[i,r]of o)j(e,i,r);t.webVitals&&u.startVitals(t.webVitals,(i,r)=>j(e,i,r))}function Ft(e){u.posthog&&(e?u.posthog.opt_in_capturing():u.posthog.opt_out_capturing())}function Mt(e){return{...Ae({host:e.host,sessionRecording:e.sessionRecording,heatmaps:e.heatmaps,captureExceptions:e.captureExceptions}),capture_pageview:!0}}function Le(e,t){let n=u.config;if(!n)return;let o={...t,product:n.product,surface:n.surface,environment:n.environment};u.posthog?j(u.posthog,e,o):!u.failed&&u.pending.length<Ut&&u.pending.push([e,o])}function j(e,t,n){try{e.capture(t,n)}catch{}}function xe(e,t={}){K.assertRegistered(e);let n=p().analytics,o=N(),i={...t};for(let[r,l]of[["first",o?.firstTouch],["last",o?.lastTouch]])l&&(i[`${r}_touch_channel`]=S(l),l.aiSource&&(i[`${r}_touch_ai_source`]=l.aiSource));return Le(e,i),n?(window.dataLayer=window.dataLayer||[],window.dataLayer.push({...i,event:e}),!0):!1}function Ue(e){K.register(e)}var Ht="https://www.googletagmanager.com/gtm.js",Wt=3e3,$t=100,y={loaded:!1,clarityId:null,clarityLoaded:!1,cancelClaritySchedule:null};function Fe(e={}){if(!E())throw new Error("@webority/analytics: call initConsent before loadTags.");if(y.loaded)return;y.loaded=!0;let{gtmId:t,gtmUrl:n=Ht,clarityId:o,ahrefsKey:i}=e;if(typeof n!="string"||n.trim()==="")throw new Error("@webority/analytics: gtmUrl must be a non-empty string.");let r=le();if(i){let l=()=>Y("https://analytics.ahrefs.com/analytics.js",{"data-key":i});r?Ve(c=>c.analytics,l):l()}if(t){let l=F(),c=C=>C.analytics||C.marketing&&l,m=()=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({"gtm.start":Date.now(),event:"gtm.js"}),Y(`${n}${n.includes("?")?"&":"?"}id=${encodeURIComponent(t)}`)},f=p(),w=f.decided&&c(f)?Bt:D,I=()=>w(m);r?Ve(c,I):I()}o&&(y.clarityId=o,p().analytics&&Gt(),_(l=>{l.analytics&&!y.clarityLoaded?Q():y.clarityLoaded&&Me(l)}))}function Ve(e,t){if(e(p())){t();return}let n=_(o=>{e(o)&&(n(),t())})}function Bt(e){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e,{once:!0}):e()}function Gt(){let e=()=>{window.scrollY>$t&&Q()};window.addEventListener("scroll",e,{passive:!0});let t=setTimeout(Q,Wt);y.cancelClaritySchedule=()=>{window.removeEventListener("scroll",e),clearTimeout(t)}}function Q(){if(y.cancelClaritySchedule?.(),y.cancelClaritySchedule=null,y.clarityLoaded||!y.clarityId)return;y.clarityLoaded=!0;let e=function(){e.q=e.q||[],e.q.push(arguments)};window.clarity=window.clarity||e,Me(p()),Y(`https://www.clarity.ms/tag/${encodeURIComponent(y.clarityId)}`,{crossorigin:"anonymous"})}function Me(e){window.clarity?.("consentv2",{ad_Storage:e.marketing&&F()?"granted":"denied",analytics_Storage:e.analytics?"granted":"denied"})}function Y(e,t={}){let n=document.createElement("script");n.async=!0,n.src=e;for(let[o,i]of Object.entries(t))n.setAttribute(o,i);document.head.appendChild(n)}return ze(zt);})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var WeborityAnalyticsWebVitals=(()=>{var J=Object.defineProperty;var Ut=Object.getOwnPropertyDescriptor;var Ot=Object.getOwnPropertyNames;var jt=Object.prototype.hasOwnProperty;var zt=(e,t,a)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var Ht=(e,t,a)=>()=>{if(a)throw a[0];try{return e&&(t=e(e=0)),t}catch(r){throw a=[r],r}};var It=(e,t)=>{for(var a in t)J(e,a,{get:t[a],enumerable:!0})},qt=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ot(t))!jt.call(e,i)&&i!==a&&J(e,i,{get:()=>t[i],enumerable:!(r=Ut(t,i))||r.enumerable});return e};var $t=e=>qt(J({},"__esModule",{value:!0}),e);var C=(e,t,a)=>zt(e,typeof t!="symbol"?t+"":t,a);var xt={};It(xt,{CLSThresholds:()=>gt,FCPThresholds:()=>Q,INPThresholds:()=>ft,LCPThresholds:()=>X,TTFBThresholds:()=>Z,onCLS:()=>Jt,onFCP:()=>Kt,onINP:()=>Yt,onLCP:()=>Zt,onTTFB:()=>te});function F(e,t){let a=wt.get(t);return a||(a=new WeakMap,wt.set(t,a)),a.get(e)||a.set(e,new t),a.get(e)}var tt,B,z,Gt,vt,wt,Lt,R,W,I,yt,q,x,Mt,Ct,dt,H,P,D,N,kt,Dt,et,at,Q,At,gt,Pt,Jt,Kt,Ft,ut,K,Qt,pt,_t,Xt,nt,mt,ft,Yt,it,X,Vt,Y,Zt,Z,ht,te,Nt=Ht(()=>{tt=class{constructor(){C(this,"t");C(this,"o",0);C(this,"i",[])}l(t){if(t.hadRecentInput)return;let a=this.i[0],r=this.i.at(-1);this.o&&a&&r&&t.startTime-r.startTime<1e3&&t.startTime-a.startTime<5e3?(this.o+=t.value,this.i.push(t)):(this.o=t.value,this.i=[t]),this.t?.(t)}},B=()=>{let e=performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},z=e=>{if(document.readyState==="loading")return"loading";let t=B();if(t){if(e<t.domInteractive)return"loading";if(t.domContentLoadedEventStart===0||e<t.domContentLoadedEventStart)return"dom-interactive";if(t.domComplete===0||e<t.domComplete)return"dom-content-loaded"}return"complete"},Gt=e=>{let t=e.nodeName;return e.nodeType===1?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},vt=e=>{let t="";try{for(;e?.nodeType!==9;){let a=e,r=a.id?"#"+a.id:[Gt(a),...Array.from(a.classList??[]).sort()].join(".");if(t.length+r.length>99)return t||r;if(t=t?r+">"+t:r,a.id)break;e=a.parentNode}}catch{}return t},wt=new WeakMap;Lt=-1,R=()=>Lt,W=e=>{addEventListener("pageshow",t=>{t.persisted&&(Lt=t.timeStamp,e(t))},!0)},I=(e,t,a,r)=>{let i,n;return o=>{t.value>=0&&(o||r)&&(n=t.value-(i??0),(n||i===void 0)&&(i=t.value,t.delta=n,t.rating=((l,s)=>l>s[1]?"poor":l>s[0]?"needs-improvement":"good")(t.value,a),e(t)))}},yt=e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()))},q=()=>B()?.activationStart??0,x=-1,Mt=new Set,Ct=()=>document.visibilityState!=="hidden"||document.prerendering?1/0:0,dt=e=>{if(document.visibilityState==="hidden"){if(e.type==="visibilitychange")for(let t of Mt)t();isFinite(x)||(x=e.type==="visibilitychange"?e.timeStamp:0,removeEventListener("prerenderingchange",dt,!0))}},H=(e=!1)=>{if(e&&(x=1/0),x<0){let t=q();x=(document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").find(r=>r.name==="hidden"&&r.startTime>=t)?.startTime)??Ct(),addEventListener("visibilitychange",dt,!0),addEventListener("prerenderingchange",dt,!0),W(()=>{setTimeout(()=>{x=Ct()})})}return{get firstHiddenTime(){return x},onHidden(t){Mt.add(t)}}},P=(e,t=-1,a,r=0,i,n,o)=>{let l=B(),s=l?.navigationId||0,c="navigate";return a?c=a:R()>=0?c="back-forward-cache":l&&(document.prerendering||q()>0?c="prerender":document.wasDiscarded?c="restore":l.type&&(c=l.type.replace(/_/g,"-"))),{name:e,value:t,rating:"good",delta:0,entries:[],id:`v6-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:c,navigationId:r||s,navigationInteractionId:i,navigationURL:n||l?.name,navigationStartTime:o||0}},D=(e,t,a={})=>{try{let r=e.filter(i=>PerformanceObserver.supportedEntryTypes.includes(i));if(r.length>0){let i=new PerformanceObserver(n=>{queueMicrotask(()=>{let o=n.getEntries();r.length>1&&o.sort((l,s)=>l.startTime+l.duration-(s.startTime+s.duration)),t(o)})});for(let n of r)i.observe({type:n,buffered:!0,...a});return i}}catch{}},N=e=>globalThis.PerformanceObserver?.supportedEntryTypes?.includes("soft-navigation")&&typeof globalThis.PerformanceSoftNavigation?.prototype?.getLargestInteractionContentfulPaint=="function"&&e&&e.reportSoftNavs,kt=(e,t)=>{if(e.set(t.navigationId,t),e.size>2){let a=e.keys().next().value;a!==void 0&&e.delete(a)}},Dt=e=>{let t=!1;return()=>{t||(e(),t=!0)}},et=class{constructor(){C(this,"u")}},at=e=>{document.prerendering?addEventListener("prerenderingchange",e,!0):e()},Q=[1800,3e3],At=(e,t={})=>{let a=N(t);at(()=>{let r=F(t,et),i=H(),n,o=P("FCP"),l=D(["paint"],s=>{for(let c of s)c.name==="first-contentful-paint"&&(l.disconnect(),c.startTime<i.firstHiddenTime&&(o.value=Math.max(c.startTime-q(),0),o.entries.push(c),o.navigationId=c.navigationId||o.navigationId,n(!0)))});l&&(n=I(e,o,Q,t.reportAllChanges),W(s=>{o=P("FCP",-1,"back-forward-cache",o.navigationId,o.navigationInteractionId,o.navigationURL,R()),n=I(e,o,Q,t.reportAllChanges),yt(()=>{o.value=performance.now()-s.timeStamp,n(!0)})})),a&&D(["soft-navigation"],s=>{s.forEach(c=>{r.u&&c.navigationId&&kt(r.u,c);let g=Math.max((c.presentationTime||c.paintTime||0)-c.startTime,0);o=P("FCP",g,"soft-navigation",c.navigationId,c.interactionId,c.name,c.startTime),n=I(e,o,Q,t.reportAllChanges),n(!0)})},t)})},gt=[.1,.25],Pt=e=>e.find(t=>t.node?.nodeType===1)||e[0],Jt=(e,t={})=>{let a=F(t=Object.assign({},t),tt),r=new WeakMap;a.t=i=>{if(i?.sources?.length){let n=Pt(i.sources),o=n?.node;if(o){let l=t.generateTarget?.(o)??vt(o);r.set(n,l)}}},((i,n={})=>{let o=H();At(Dt(()=>{let l,s=P("CLS",0),c=F(n,tt),g=(f,u,h,v,S)=>{s=P("CLS",0,f,u,h,v,S),c.o=0,l=I(i,s,gt,n.reportAllChanges)},b=(f=!1)=>{c.o>s.value&&(s.value=c.o,s.entries=c.i),l(f)},M=f=>{b(!0),g("soft-navigation",f.navigationId,f.interactionId,f.name,f.startTime)},d=f=>{for(let u of f)u.entryType!=="soft-navigation"?c.l(u):M(u);b()},m=["layout-shift"];N(n)&&m.push("soft-navigation");let p=D(m,d);p&&(l=I(i,s,gt,n.reportAllChanges),o.onHidden(()=>{d(p.takeRecords()),l(!0)}),W(()=>{g("back-forward-cache",s.navigationId,s.navigationInteractionId,s.navigationURL,R()),yt(l)}),setTimeout(l))}))})(i=>{e((n=>{let o={};if(n.entries.length){let l=n.entries.reduce((s,c)=>s.value>c.value?s:c);if(l?.sources?.length){let s=Pt(l.sources);s&&(o={largestShiftTarget:r.get(s),largestShiftTime:l.startTime,largestShiftValue:l.value,largestShiftSource:s,largestShiftEntry:l,loadState:z(l.startTime)})}}return Object.assign(n,{attribution:o})})(i))},t)},Kt=(e,t={})=>{let a=F(t=Object.assign({},t),et);N(t)&&(a.u=new Map),At(r=>{e((i=>{let n={timeToFirstByte:0,firstByteToFCP:i.value,loadState:z(R())};if(i.navigationType!=="soft-navigation"){if(i.entries.length){let o=B(),l=i.entries.at(-1);if(o){let s=o.responseStart,c=o.activationStart||0,g=Math.max(0,s-c);n={timeToFirstByte:g,firstByteToFCP:i.value-g,loadState:z(i.entries[0].startTime),navigationEntry:o,fcpEntry:l}}}}else{let o=a.u?.get(i.navigationId);o&&(n={timeToFirstByte:0,firstByteToFCP:i.value,loadState:"complete",navigationEntry:o})}return Object.assign(i,{attribution:n})})(r))},t)},Ft=0,ut=1/0,K=0,Qt=e=>{for(let t of e)t.interactionId&&(ut=Math.min(ut,t.interactionId),K=Math.max(K,t.interactionId),Ft=K?(K-ut)/7+1:0)},_t=()=>pt?Ft:performance.interactionCount??0,Xt=()=>{"interactionCount"in performance||pt||(pt=D(["event"],Qt,{durationThreshold:0}))},nt=class{constructor(){C(this,"h",0);C(this,"v",[]);C(this,"p",new Map);C(this,"m");C(this,"M")}T(){return _t()-this.h}D(){this.h=_t(),this.v.length=0,this.p.clear()}S(t){let a=this.T(),r=Math.min(this.v.length-1,Math.floor(a/50));return!a||r!==-1||t!=="soft-navigation"&&t!=="back-forward-cache"?this.v[r]:{k:8,id:-1,entries:[]}}l(t){if(this.m?.(t),!t.interactionId)return;let a=this.v.at(-1),r=this.p.get(t.interactionId);if(r||this.v.length<10||t.duration>a.k){if(r?t.duration>r.k?(r.entries=[t],r.k=t.duration):t.duration===r.k&&t.startTime===r.entries[0].startTime&&r.entries.push(t):(r={id:t.interactionId,entries:[t],k:t.duration},this.p.set(r.id,r),this.v.push(r)),this.v.sort((i,n)=>n.k-i.k),this.v.length>10){let i=this.v.splice(10);for(let n of i)this.p.delete(n.id)}this.M?.(r)}}},mt=e=>{let t="requestIdleCallback"in globalThis?1e3:0,a=globalThis.requestIdleCallback||setTimeout,r=globalThis.cancelIdleCallback||clearTimeout;if(document.visibilityState==="hidden")e();else{let i=Dt(e),n=-1,o=()=>{r(n),i()};addEventListener("visibilitychange",o,{once:!0,capture:!0}),n=a(()=>{removeEventListener("visibilitychange",o,{capture:!0}),i()},{timeout:t})}},ft=[200,500],Yt=(e,t={})=>{let a=F(t=Object.assign({},t),nt),r=[],i=[],n=0,o=new WeakMap,l=new WeakMap,s=!1,c=()=>{s||(s=!0,mt(g))},g=()=>{let d=new Set(a.v.map(u=>o.get(u.entries[0]))),m=i.length-10;i=i.filter((u,h)=>h>=m||d.has(u));let p=new Set;for(let u of i){let h=b(u.startTime,u.processingEnd);for(let v of h)p.add(v)}let f=r.length-10;r=r.filter((u,h)=>p.has(u)||h>=f&&u.startTime>n),s=!1};a.m=d=>{let m=d.startTime+d.duration,p;n=Math.max(n,d.processingEnd);for(let f=i.length-1;f>=0;f--){let u=i[f];if(Math.abs(m-u.renderTime)<=8){p=u,p.startTime=Math.min(d.startTime,p.startTime),p.processingStart=Math.min(d.processingStart,p.processingStart),p.processingEnd=Math.max(d.processingEnd,p.processingEnd),t.includeProcessedEventEntries&&p.entries.push(d);break}}p||(p={startTime:d.startTime,processingStart:d.processingStart,processingEnd:d.processingEnd,renderTime:m,entries:t.includeProcessedEventEntries?[d]:[]},i.push(p)),d.interactionId&&o.set(d,p),c()},a.M=d=>{if(!l.get(d)){let m=d.entries.find(p=>p.target)?.target;if(m){let p=t.generateTarget?.(m)??vt(m);l.set(d,p)}else{let p=d.entries.find(f=>f.targetSelector)?.targetSelector;p&&l.set(d,p)}}};let b=(d,m)=>{let p=[];for(let f of r)if(!(f.startTime+f.duration<d)){if(f.startTime>m)break;p.push(f)}return p},M=d=>{if(d.entries.length===0){let y=d.navigationStartTime||0,E={processedEventEntries:[],longAnimationFrameEntries:[],inputDelay:0,processingDuration:0,presentationDelay:d.value,loadState:z(y)};return Object.assign(d,{attribution:E})}let m=d.entries[0],p=o.get(m),f=Math.max(p.processingStart,m.startTime),u=Math.max(m.startTime+m.duration,f),h=Math.min(p.processingEnd,u),v=p.entries.sort((y,E)=>y.processingStart-E.processingStart),S=b(m.startTime,h),_=a.p.get(m.interactionId),w={interactionTarget:l.get(_),interactionType:m.name.startsWith("key")?"keyboard":"pointer",interactionTime:m.startTime,nextPaintTime:u,processedEventEntries:v,longAnimationFrameEntries:S,inputDelay:f-m.startTime,processingDuration:h-f,presentationDelay:u-h,loadState:z(m.startTime),longestScript:void 0,totalScriptDuration:void 0,totalStyleAndLayoutDuration:void 0,totalPaintDuration:void 0,totalUnattributedDuration:void 0};return(y=>{let E=y.interactionTime,T=y.nextPaintTime;if(!y.longAnimationFrameEntries?.length||!E||!T)return;let V=y.inputDelay,A=y.processingDuration,U,O,ot=0,j=0,st=0,lt=0;for(let $ of y.longAnimationFrameEntries){j=j+$.startTime+$.duration-$.styleAndLayoutStart;for(let k of $.scripts){let St=k.startTime+k.duration;if(St<E)continue;let G=St-Math.max(E,k.startTime),Et=k.duration?G/k.duration*k.forcedStyleAndLayoutDuration:0;ot+=G-Et,j+=Et,G>lt&&(O=k.startTime<E+V?"input-delay":k.startTime>=E+V+A?"presentation-delay":"processing-duration",U=k,lt=G)}}let ct=y.longAnimationFrameEntries.at(-1),bt=ct?ct.startTime+ct.duration:0;bt>=E+V+A&&(st=T-bt),U&&O&&(y.longestScript={entry:U,subpart:O,intersectingDuration:lt}),y.totalScriptDuration=ot,y.totalStyleAndLayoutDuration=j,y.totalPaintDuration=st,y.totalUnattributedDuration=T-E-ot-j-st})(w),Object.assign(d,{attribution:w})};D(["long-animation-frame"],d=>{r=r.concat(d),c()},t),((d,m={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;let p=H();at(()=>{Xt();let f,u=P("INP"),h=F(m,nt),v=(T,V,A,U,O)=>{h.D(),u=P("INP",-1,T,V,A,U,O),f=I(d,u,ft,m.reportAllChanges)},S=()=>{let T=h.S(u.navigationType);T&&T.k!==u.value&&(u.value=T.k,u.entries=T.entries,f())},_=T=>{S(),f(!0),v("soft-navigation",T.navigationId,T.interactionId,T.name,T.startTime)},w=(T,V=!1)=>{mt(()=>{for(let A of T)A.entryType!=="soft-navigation"?h.l(A):_(A);S(),V&&f(!0)})},y=["event","first-input"];N(m)&&y.push("soft-navigation");let E=D(y,w,{...m,durationThreshold:m.durationThreshold??40});f=I(d,u,ft,m.reportAllChanges),E&&(p.onHidden(()=>{w(E.takeRecords(),!0)}),W(()=>{v("back-forward-cache",u.navigationId,u.navigationInteractionId,u.navigationURL,R())}))})})(d=>{e(M(d))},t)},it=class{constructor(){C(this,"m");C(this,"u")}l(t){this.m?.(t)}},X=[2500,4e3],Vt=50,Y=[];D(["resource"],e=>{for(let t of e)Y.push(t),Y.length>Vt&&Y.shift()});Zt=(e,t={})=>{(t=Object.assign({},t)).resourceBufferSize!=null&&(Vt=t.resourceBufferSize);let a=F(t,it),r=new WeakMap;N(t)&&(a.u=new Map),a.m=i=>{let n=i.element;if(n){let o=t.generateTarget?.(n)??vt(n);r.set(i,o)}else i.id&&r.set(i,`#${i.id}`)},((i,n={})=>{let o=!1,l=N(n);at(()=>{let s,c=H(),g=P("LCP"),b=F(n,it),M=(u,h,v,S,_)=>{g=P("LCP",-1,u,h,v,S,_),s=I(i,g,X,n.reportAllChanges),o=!1,u==="soft-navigation"&&(c=H(!0))},d=u=>{b.u&&u.navigationId&&kt(b.u,u),o||s(!0),M("soft-navigation",u.navigationId,u.interactionId,u.name,u.startTime);let h=u.getLargestInteractionContentfulPaint?.();h&&m([h])},m=u=>{n.reportAllChanges||l||(u=u.slice(-1));for(let h of u){if(!h)continue;if(h.entryType==="soft-navigation"){d(h);continue}let v=0,S=[],_=h.startTime;if(h.entryType==="largest-contentful-paint")v=Math.max(h.startTime-q(),0),b.l(h),S=[h];else if(h.entryType==="interaction-contentful-paint"){let w=h;if(!g.navigationId||"interactionId"in w&&w.interactionId!=g.navigationInteractionId)continue;_=w.largestContentfulPaint?.renderTime||0,v=Math.max(_-h.startTime,0),w.largestContentfulPaint&&(b.l(w.largestContentfulPaint),S=[w.largestContentfulPaint])}_<c.firstHiddenTime&&(g.value=v,g.entries=S,s())}},p=["largest-contentful-paint"];l&&p.push("interaction-contentful-paint","soft-navigation");let f=D(p,m);if(f){s=I(i,g,X,n.reportAllChanges);let u=["keydown","click","visibilitychange"],h=v=>{if(v.isTrusted&&!o){let S=g.id;mt(()=>{if(!o){if(!l){f.disconnect();for(let _ of u)removeEventListener(_,h,{capture:!0})}S===g.id&&(o=!0,s(!0))}})}};for(let v of u)addEventListener(v,h,{capture:!0});W(v=>{M("back-forward-cache",g.navigationId,g.navigationInteractionId,g.navigationURL,R()),s=I(i,g,X,n.reportAllChanges),yt(()=>{g.value=performance.now()-v.timeStamp,o=!0,s(!0)})})}})})(i=>{e((n=>{let o={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:n.value};if(n.entries.length){let l=n.entries.at(-1),s=d=>d.name===l.url&&(d.requestStart||d.startTime)<=l.startTime,c=l.url&&(Y.findLast(s)||performance.getEntriesByType("resource").findLast(s)),g;o.target=r.get(l),o.lcpEntry=l,l.url&&(o.url=l.url),c&&(o.lcpResourceEntry=c);let b=0,M=0;if(n.navigationType!=="soft-navigation"?(g=B(),b=g?.activationStart??0,M=g?.responseStart??0):(b=n.navigationStartTime||0,g=a.u?.get(n.navigationId)),g){let d=Math.max(0,M-b),m=Math.max(d,c?(c.requestStart||c.startTime)-b:0),p=Math.min(n.value,Math.max(m,c?c.responseEnd-b:0));o={...o,timeToFirstByte:d,resourceLoadDelay:m-d,resourceLoadDuration:p-m,elementRenderDelay:n.value-p,navigationEntry:g}}}return Object.assign(n,{attribution:o})})(i))},t)},Z=[800,1800],ht=e=>{document.prerendering?at(()=>ht(e)):document.readyState!=="complete"?addEventListener("load",()=>ht(e),!0):setTimeout(e)},te=(e,t={})=>{((a,r={})=>{let i=N(r),n=P("TTFB"),o=I(a,n,Z,r.reportAllChanges);ht(()=>{let l=B();if(l){let s=l.responseStart;n.value=Math.max(s-q(),0),n.entries=[l],o(!0),W(()=>{n=P("TTFB",0,"back-forward-cache",n.navigationId,n.navigationInteractionId,n.navigationURL,R()),o=I(a,n,Z,r.reportAllChanges),o(!0)}),i&&D(["soft-navigation"],c=>{c.forEach(g=>{g.navigationId&&(n=P("TTFB",0,"soft-navigation",g.navigationId,g.interactionId,g.name,g.startTime),n.entries=[g],o=I(a,n,Z,r.reportAllChanges),o(!0))})},r)}})})(a=>{e((r=>{let i=r.entries[0],n={waitingDuration:0,cacheDuration:0,dnsDuration:0,connectionDuration:0,requestDuration:0,navigationEntry:i};if(r.entries.length&&i instanceof PerformanceNavigationTiming){let o=i.activationStart||0,l=Math.max((i.workerStart||i.fetchStart||0)-o,0),s=Math.max(i.domainLookupStart-o,0),c=Math.max(i.connectStart-o,0),g=Math.max(i.connectEnd-o,0);n={waitingDuration:l,cacheDuration:s-l,dnsDuration:c-s,connectionDuration:g-c,requestDuration:r.value-g,navigationEntry:i}}return Object.assign(r,{attribution:n})})(a))},t)}});var se={};It(se,{startWebVitals:()=>Wt});function ee(e,t){return t<e}function ne({mobileHint:e,screenWidth:t}){return e===!0?"mobile":typeof t!="number"||t<=0?"unknown":t<768?"mobile":t<1024?"tablet":"desktop"}function ie(e,t){if(typeof e!="string"||!e)return null;try{return new URL(e,t).pathname}catch{return null}}function Tt(e){return typeof e=="string"&&e?e.split(/[?#]/,1)[0]??null:null}var L=e=>typeof e=="number"&&Number.isFinite(e)?Math.round(e):null,Rt=(e,t)=>typeof e=="string"&&e?e.slice(0,t):null;function Bt(e){return typeof e?.transferSize!="number"||typeof e?.decodedBodySize!="number"?null:e.transferSize===0&&e.decodedBodySize>0?!0:e.transferSize>0?!1:null}function ae(e){return{url:Rt(Tt(e.sourceURL),200),function:Rt(e.sourceFunctionName,80),invoker_type:e.invokerType??null,duration_ms:L(e.duration),forced_style_layout_ms:L(e.forcedStyleAndLayoutDuration)}}function re(e){let t=(e?.longAnimationFrameEntries??[]).flatMap(a=>a.scripts??[]);return t.length===0&&(t=[e?.longestScript?.entry].filter(a=>!!a)),t.length===0?null:(t.sort((a,r)=>(r.duration??0)-(a.duration??0)),t.slice(0,3).map(ae))}function oe(e,t){let a=e.name,r=a==="CLS"?Math.round(e.value*1e4)/1e4:L(e.value),i={[`$web_vitals_${a}_value`]:r,vital:a,value:r,rating:e.rating,metric_id:e.id,navigation_type:e.navigationType??null,path:ie(e.navigationURL??t.pageUrl,t.pageUrl),deploy_version:t.deployVersion??null,device_class:t.deviceClass,page_template:e.navigationType==="soft-navigation"?null:t.pageTemplate??null};if(e.name==="INP"){let n=e.attribution??{};i.inp_target=n.interactionTarget||null,i.inp_longest_script_url=Tt(n.longestScript?.entry?.sourceURL),i.inp_input_delay_ms=L(n.inputDelay),i.inp_processing_ms=L(n.processingDuration),i.inp_presentation_delay_ms=L(n.presentationDelay),i.inp_interaction_type=n.interactionType??null,i.inp_load_state=n.loadState??null,i.inp_scripts=re(n)}if(e.name==="LCP"){let n=e.attribution??{};i.lcp_ttfb_ms=L(n.timeToFirstByte),i.lcp_resource_load_delay_ms=L(n.resourceLoadDelay),i.lcp_resource_load_duration_ms=L(n.resourceLoadDuration),i.lcp_element_render_delay_ms=L(n.elementRenderDelay),i.lcp_target=n.target??null,i.lcp_url=/^(?:data|blob):/.test(n.url??"")?"data:":Tt(n.url),i.lcp_element_tag=n.lcpEntry?.element?.tagName?.toLowerCase()??null,i.lcp_nav_cached=Bt(n.navigationEntry),i.lcp_resource_cached=Bt(n.lcpResourceEntry)}if(e.name==="CLS"){let n=e.attribution??{};i.cls_target=n.largestShiftTarget??null,i.cls_largest_shift=typeof n.largestShiftValue=="number"&&Number.isFinite(n.largestShiftValue)?Math.round(n.largestShiftValue*1e4)/1e4:null,i.cls_largest_shift_time_ms=L(n.largestShiftTime),i.cls_load_state=n.loadState??null}return i}var rt={started:!1,send:null};function Wt(e,t,{load:a=()=>Promise.resolve().then(()=>(Nt(),xt)),roll:r=Math.random()}={}){if(rt.send=t,rt.started||(rt.started=!0,!ee(e.sampleRate,r)))return Promise.resolve();let i=globalThis.navigator,n={deployVersion:e.deployVersion,pageTemplate:e.pageTemplate,deviceClass:ne({mobileHint:i?.userAgentData?.mobile,screenWidth:globalThis.screen?.width})},o=s=>{try{rt.send?.("$web_vitals",oe(s,{...n,pageUrl:globalThis.location?.href}))}catch{}},l={reportSoftNavs:e.softNavigations};return Promise.resolve().then(a).then(s=>{for(let c of[s.onLCP,s.onINP,s.onCLS,s.onFCP,s.onTTFB])c(o,l)}).catch(()=>{})}return $t(se);})();
|
|
1
|
+
"use strict";var WeborityAnalyticsWebVitals=(()=>{var J=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var We=Object.getOwnPropertyNames;var je=Object.prototype.hasOwnProperty;var ze=(t,e,a)=>e in t?J(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var He=(t,e,a)=>()=>{if(a)throw a[0];try{return t&&(e=t(t=0)),e}catch(r){throw a=[r],r}};var Ce=(t,e)=>{for(var a in e)J(t,a,{get:e[a],enumerable:!0})},qe=(t,e,a,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of We(e))!je.call(t,i)&&i!==a&&J(t,i,{get:()=>e[i],enumerable:!(r=Oe(e,i))||r.enumerable});return t};var $e=t=>qe(J({},"__esModule",{value:!0}),t);var w=(t,e,a)=>ze(t,typeof e!="symbol"?e+"":e,a);var Ve={};Ce(Ve,{CLSThresholds:()=>ge,FCPThresholds:()=>Q,INPThresholds:()=>me,LCPThresholds:()=>X,TTFBThresholds:()=>Z,onCLS:()=>Je,onFCP:()=>Ke,onINP:()=>Ye,onLCP:()=>Ze,onTTFB:()=>et});function A(t,e){let a=Ie.get(e);return a||(a=new WeakMap,Ie.set(e,a)),a.get(t)||a.set(t,new e),a.get(t)}var ee,B,z,Ge,he,Ie,ke,N,U,C,ye,q,V,Pe,we,ce,H,L,D,x,Me,De,te,ae,Q,Re,ge,Le,Je,Ke,Ae,de,K,Qe,pe,_e,Xe,ne,fe,me,Ye,ie,X,Fe,Y,Ze,Z,ve,et,xe=He(()=>{ee=class{constructor(){w(this,"t");w(this,"o",0);w(this,"i",[])}l(e){if(e.hadRecentInput)return;let a=this.i[0],r=this.i.at(-1);this.o&&a&&r&&e.startTime-r.startTime<1e3&&e.startTime-a.startTime<5e3?(this.o+=e.value,this.i.push(e)):(this.o=e.value,this.i=[e]),this.t?.(e)}},B=()=>{let t=performance.getEntriesByType("navigation")[0];if(t&&t.responseStart>0&&t.responseStart<performance.now())return t},z=t=>{if(document.readyState==="loading")return"loading";let e=B();if(e){if(t<e.domInteractive)return"loading";if(e.domContentLoadedEventStart===0||t<e.domContentLoadedEventStart)return"dom-interactive";if(e.domComplete===0||t<e.domComplete)return"dom-content-loaded"}return"complete"},Ge=t=>{let e=t.nodeName;return t.nodeType===1?e.toLowerCase():e.toUpperCase().replace(/^#/,"")},he=t=>{let e="";try{for(;t?.nodeType!==9;){let a=t,r=a.id?"#"+a.id:[Ge(a),...Array.from(a.classList??[]).sort()].join(".");if(e.length+r.length>99)return e||r;if(e=e?r+">"+e:r,a.id)break;t=a.parentNode}}catch{}return e},Ie=new WeakMap;ke=-1,N=()=>ke,U=t=>{addEventListener("pageshow",e=>{e.persisted&&(ke=e.timeStamp,t(e))},!0)},C=(t,e,a,r)=>{let i,n;return o=>{e.value>=0&&(o||r)&&(n=e.value-(i??0),(n||i===void 0)&&(i=e.value,e.delta=n,e.rating=((l,s)=>l>s[1]?"poor":l>s[0]?"needs-improvement":"good")(e.value,a),t(e)))}},ye=t=>{requestAnimationFrame(()=>requestAnimationFrame(()=>t()))},q=()=>B()?.activationStart??0,V=-1,Pe=new Set,we=()=>document.visibilityState!=="hidden"||document.prerendering?1/0:0,ce=t=>{if(document.visibilityState==="hidden"){if(t.type==="visibilitychange")for(let e of Pe)e();isFinite(V)||(V=t.type==="visibilitychange"?t.timeStamp:0,removeEventListener("prerenderingchange",ce,!0))}},H=(t=!1)=>{if(t&&(V=1/0),V<0){let e=q();V=(document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").find(r=>r.name==="hidden"&&r.startTime>=e)?.startTime)??we(),addEventListener("visibilitychange",ce,!0),addEventListener("prerenderingchange",ce,!0),U(()=>{setTimeout(()=>{V=we()})})}return{get firstHiddenTime(){return V},onHidden(e){Pe.add(e)}}},L=(t,e=-1,a,r=0,i,n,o)=>{let l=B(),s=l?.navigationId||0,u="navigate";return a?u=a:N()>=0?u="back-forward-cache":l&&(document.prerendering||q()>0?u="prerender":document.wasDiscarded?u="restore":l.type&&(u=l.type.replace(/_/g,"-"))),{name:t,value:e,rating:"good",delta:0,entries:[],id:`v6-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:u,navigationId:r||s,navigationInteractionId:i,navigationURL:n||l?.name,navigationStartTime:o||0}},D=(t,e,a={})=>{try{let r=t.filter(i=>PerformanceObserver.supportedEntryTypes.includes(i));if(r.length>0){let i=new PerformanceObserver(n=>{queueMicrotask(()=>{let o=n.getEntries();r.length>1&&o.sort((l,s)=>l.startTime+l.duration-(s.startTime+s.duration)),e(o)})});for(let n of r)i.observe({type:n,buffered:!0,...a});return i}}catch{}},x=t=>globalThis.PerformanceObserver?.supportedEntryTypes?.includes("soft-navigation")&&typeof globalThis.PerformanceSoftNavigation?.prototype?.getLargestInteractionContentfulPaint=="function"&&t&&t.reportSoftNavs,Me=(t,e)=>{if(t.set(e.navigationId,e),t.size>2){let a=t.keys().next().value;a!==void 0&&t.delete(a)}},De=t=>{let e=!1;return()=>{e||(t(),e=!0)}},te=class{constructor(){w(this,"u")}},ae=t=>{document.prerendering?addEventListener("prerenderingchange",t,!0):t()},Q=[1800,3e3],Re=(t,e={})=>{let a=x(e);ae(()=>{let r=A(e,te),i=H(),n,o=L("FCP"),l=D(["paint"],s=>{for(let u of s)u.name==="first-contentful-paint"&&(l.disconnect(),u.startTime<i.firstHiddenTime&&(o.value=Math.max(u.startTime-q(),0),o.entries.push(u),o.navigationId=u.navigationId||o.navigationId,n(!0)))});l&&(n=C(t,o,Q,e.reportAllChanges),U(s=>{o=L("FCP",-1,"back-forward-cache",o.navigationId,o.navigationInteractionId,o.navigationURL,N()),n=C(t,o,Q,e.reportAllChanges),ye(()=>{o.value=performance.now()-s.timeStamp,n(!0)})})),a&&D(["soft-navigation"],s=>{s.forEach(u=>{r.u&&u.navigationId&&Me(r.u,u);let g=Math.max((u.presentationTime||u.paintTime||0)-u.startTime,0);o=L("FCP",g,"soft-navigation",u.navigationId,u.interactionId,u.name,u.startTime),n=C(t,o,Q,e.reportAllChanges),n(!0)})},e)})},ge=[.1,.25],Le=t=>t.find(e=>e.node?.nodeType===1)||t[0],Je=(t,e={})=>{let a=A(e=Object.assign({},e),ee),r=new WeakMap;a.t=i=>{if(i?.sources?.length){let n=Le(i.sources),o=n?.node;if(o){let l=e.generateTarget?.(o)??he(o);r.set(n,l)}}},((i,n={})=>{let o=H();Re(De(()=>{let l,s=L("CLS",0),u=A(n,ee),g=(m,d,v,h,S)=>{s=L("CLS",0,m,d,v,h,S),u.o=0,l=C(i,s,ge,n.reportAllChanges)},b=(m=!1)=>{u.o>s.value&&(s.value=u.o,s.entries=u.i),l(m)},P=m=>{b(!0),g("soft-navigation",m.navigationId,m.interactionId,m.name,m.startTime)},c=m=>{for(let d of m)d.entryType!=="soft-navigation"?u.l(d):P(d);b()},f=["layout-shift"];x(n)&&f.push("soft-navigation");let p=D(f,c);p&&(l=C(i,s,ge,n.reportAllChanges),o.onHidden(()=>{c(p.takeRecords()),l(!0)}),U(()=>{g("back-forward-cache",s.navigationId,s.navigationInteractionId,s.navigationURL,N()),ye(l)}),setTimeout(l))}))})(i=>{t((n=>{let o={};if(n.entries.length){let l=n.entries.reduce((s,u)=>s.value>u.value?s:u);if(l?.sources?.length){let s=Le(l.sources);s&&(o={largestShiftTarget:r.get(s),largestShiftTime:l.startTime,largestShiftValue:l.value,largestShiftSource:s,largestShiftEntry:l,loadState:z(l.startTime)})}}return Object.assign(n,{attribution:o})})(i))},e)},Ke=(t,e={})=>{let a=A(e=Object.assign({},e),te);x(e)&&(a.u=new Map),Re(r=>{t((i=>{let n={timeToFirstByte:0,firstByteToFCP:i.value,loadState:z(N())};if(i.navigationType!=="soft-navigation"){if(i.entries.length){let o=B(),l=i.entries.at(-1);if(o){let s=o.responseStart,u=o.activationStart||0,g=Math.max(0,s-u);n={timeToFirstByte:g,firstByteToFCP:i.value-g,loadState:z(i.entries[0].startTime),navigationEntry:o,fcpEntry:l}}}}else{let o=a.u?.get(i.navigationId);o&&(n={timeToFirstByte:0,firstByteToFCP:i.value,loadState:"complete",navigationEntry:o})}return Object.assign(i,{attribution:n})})(r))},e)},Ae=0,de=1/0,K=0,Qe=t=>{for(let e of t)e.interactionId&&(de=Math.min(de,e.interactionId),K=Math.max(K,e.interactionId),Ae=K?(K-de)/7+1:0)},_e=()=>pe?Ae:performance.interactionCount??0,Xe=()=>{"interactionCount"in performance||pe||(pe=D(["event"],Qe,{durationThreshold:0}))},ne=class{constructor(){w(this,"h",0);w(this,"v",[]);w(this,"p",new Map);w(this,"m");w(this,"M")}T(){return _e()-this.h}D(){this.h=_e(),this.v.length=0,this.p.clear()}S(e){let a=this.T(),r=Math.min(this.v.length-1,Math.floor(a/50));return!a||r!==-1||e!=="soft-navigation"&&e!=="back-forward-cache"?this.v[r]:{k:8,id:-1,entries:[]}}l(e){if(this.m?.(e),!e.interactionId)return;let a=this.v.at(-1),r=this.p.get(e.interactionId);if(r||this.v.length<10||e.duration>a.k){if(r?e.duration>r.k?(r.entries=[e],r.k=e.duration):e.duration===r.k&&e.startTime===r.entries[0].startTime&&r.entries.push(e):(r={id:e.interactionId,entries:[e],k:e.duration},this.p.set(r.id,r),this.v.push(r)),this.v.sort((i,n)=>n.k-i.k),this.v.length>10){let i=this.v.splice(10);for(let n of i)this.p.delete(n.id)}this.M?.(r)}}},fe=t=>{let e="requestIdleCallback"in globalThis?1e3:0,a=globalThis.requestIdleCallback||setTimeout,r=globalThis.cancelIdleCallback||clearTimeout;if(document.visibilityState==="hidden")t();else{let i=De(t),n=-1,o=()=>{r(n),i()};addEventListener("visibilitychange",o,{once:!0,capture:!0}),n=a(()=>{removeEventListener("visibilitychange",o,{capture:!0}),i()},{timeout:e})}},me=[200,500],Ye=(t,e={})=>{let a=A(e=Object.assign({},e),ne),r=[],i=[],n=0,o=new WeakMap,l=new WeakMap,s=!1,u=()=>{s||(s=!0,fe(g))},g=()=>{let c=new Set(a.v.map(d=>o.get(d.entries[0]))),f=i.length-10;i=i.filter((d,v)=>v>=f||c.has(d));let p=new Set;for(let d of i){let v=b(d.startTime,d.processingEnd);for(let h of v)p.add(h)}let m=r.length-10;r=r.filter((d,v)=>p.has(d)||v>=m&&d.startTime>n),s=!1};a.m=c=>{let f=c.startTime+c.duration,p;n=Math.max(n,c.processingEnd);for(let m=i.length-1;m>=0;m--){let d=i[m];if(Math.abs(f-d.renderTime)<=8){p=d,p.startTime=Math.min(c.startTime,p.startTime),p.processingStart=Math.min(c.processingStart,p.processingStart),p.processingEnd=Math.max(c.processingEnd,p.processingEnd),e.includeProcessedEventEntries&&p.entries.push(c);break}}p||(p={startTime:c.startTime,processingStart:c.processingStart,processingEnd:c.processingEnd,renderTime:f,entries:e.includeProcessedEventEntries?[c]:[]},i.push(p)),c.interactionId&&o.set(c,p),u()},a.M=c=>{if(!l.get(c)){let f=c.entries.find(p=>p.target)?.target;if(f){let p=e.generateTarget?.(f)??he(f);l.set(c,p)}else{let p=c.entries.find(m=>m.targetSelector)?.targetSelector;p&&l.set(c,p)}}};let b=(c,f)=>{let p=[];for(let m of r)if(!(m.startTime+m.duration<c)){if(m.startTime>f)break;p.push(m)}return p},P=c=>{if(c.entries.length===0){let y=c.navigationStartTime||0,E={processedEventEntries:[],longAnimationFrameEntries:[],inputDelay:0,processingDuration:0,presentationDelay:c.value,loadState:z(y)};return Object.assign(c,{attribution:E})}let f=c.entries[0],p=o.get(f),m=Math.max(p.processingStart,f.startTime),d=Math.max(f.startTime+f.duration,m),v=Math.min(p.processingEnd,d),h=p.entries.sort((y,E)=>y.processingStart-E.processingStart),S=b(f.startTime,v),_=a.p.get(f.interactionId),I={interactionTarget:l.get(_),interactionType:f.name.startsWith("key")?"keyboard":"pointer",interactionTime:f.startTime,nextPaintTime:d,processedEventEntries:h,longAnimationFrameEntries:S,inputDelay:m-f.startTime,processingDuration:v-m,presentationDelay:d-v,loadState:z(f.startTime),longestScript:void 0,totalScriptDuration:void 0,totalStyleAndLayoutDuration:void 0,totalPaintDuration:void 0,totalUnattributedDuration:void 0};return(y=>{let E=y.interactionTime,T=y.nextPaintTime;if(!y.longAnimationFrameEntries?.length||!E||!T)return;let F=y.inputDelay,R=y.processingDuration,O,W,oe=0,j=0,se=0,le=0;for(let $ of y.longAnimationFrameEntries){j=j+$.startTime+$.duration-$.styleAndLayoutStart;for(let M of $.scripts){let Se=M.startTime+M.duration;if(Se<E)continue;let G=Se-Math.max(E,M.startTime),Ee=M.duration?G/M.duration*M.forcedStyleAndLayoutDuration:0;oe+=G-Ee,j+=Ee,G>le&&(W=M.startTime<E+F?"input-delay":M.startTime>=E+F+R?"presentation-delay":"processing-duration",O=M,le=G)}}let ue=y.longAnimationFrameEntries.at(-1),be=ue?ue.startTime+ue.duration:0;be>=E+F+R&&(se=T-be),O&&W&&(y.longestScript={entry:O,subpart:W,intersectingDuration:le}),y.totalScriptDuration=oe,y.totalStyleAndLayoutDuration=j,y.totalPaintDuration=se,y.totalUnattributedDuration=T-E-oe-j-se})(I),Object.assign(c,{attribution:I})};D(["long-animation-frame"],c=>{r=r.concat(c),u()},e),((c,f={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;let p=H();ae(()=>{Xe();let m,d=L("INP"),v=A(f,ne),h=(T,F,R,O,W)=>{v.D(),d=L("INP",-1,T,F,R,O,W),m=C(c,d,me,f.reportAllChanges)},S=()=>{let T=v.S(d.navigationType);T&&T.k!==d.value&&(d.value=T.k,d.entries=T.entries,m())},_=T=>{S(),m(!0),h("soft-navigation",T.navigationId,T.interactionId,T.name,T.startTime)},I=(T,F=!1)=>{fe(()=>{for(let R of T)R.entryType!=="soft-navigation"?v.l(R):_(R);S(),F&&m(!0)})},y=["event","first-input"];x(f)&&y.push("soft-navigation");let E=D(y,I,{...f,durationThreshold:f.durationThreshold??40});m=C(c,d,me,f.reportAllChanges),E&&(p.onHidden(()=>{I(E.takeRecords(),!0)}),U(()=>{h("back-forward-cache",d.navigationId,d.navigationInteractionId,d.navigationURL,N())}))})})(c=>{t(P(c))},e)},ie=class{constructor(){w(this,"m");w(this,"u")}l(e){this.m?.(e)}},X=[2500,4e3],Fe=50,Y=[];D(["resource"],t=>{for(let e of t)Y.push(e),Y.length>Fe&&Y.shift()});Ze=(t,e={})=>{(e=Object.assign({},e)).resourceBufferSize!=null&&(Fe=e.resourceBufferSize);let a=A(e,ie),r=new WeakMap;x(e)&&(a.u=new Map),a.m=i=>{let n=i.element;if(n){let o=e.generateTarget?.(n)??he(n);r.set(i,o)}else i.id&&r.set(i,`#${i.id}`)},((i,n={})=>{let o=!1,l=x(n);ae(()=>{let s,u=H(),g=L("LCP"),b=A(n,ie),P=(d,v,h,S,_)=>{g=L("LCP",-1,d,v,h,S,_),s=C(i,g,X,n.reportAllChanges),o=!1,d==="soft-navigation"&&(u=H(!0))},c=d=>{b.u&&d.navigationId&&Me(b.u,d),o||s(!0),P("soft-navigation",d.navigationId,d.interactionId,d.name,d.startTime);let v=d.getLargestInteractionContentfulPaint?.();v&&f([v])},f=d=>{n.reportAllChanges||l||(d=d.slice(-1));for(let v of d){if(!v)continue;if(v.entryType==="soft-navigation"){c(v);continue}let h=0,S=[],_=v.startTime;if(v.entryType==="largest-contentful-paint")h=Math.max(v.startTime-q(),0),b.l(v),S=[v];else if(v.entryType==="interaction-contentful-paint"){let I=v;if(!g.navigationId||"interactionId"in I&&I.interactionId!=g.navigationInteractionId)continue;_=I.largestContentfulPaint?.renderTime||0,h=Math.max(_-v.startTime,0),I.largestContentfulPaint&&(b.l(I.largestContentfulPaint),S=[I.largestContentfulPaint])}_<u.firstHiddenTime&&(g.value=h,g.entries=S,s())}},p=["largest-contentful-paint"];l&&p.push("interaction-contentful-paint","soft-navigation");let m=D(p,f);if(m){s=C(i,g,X,n.reportAllChanges);let d=["keydown","click","visibilitychange"],v=h=>{if(h.isTrusted&&!o){let S=g.id;fe(()=>{if(!o){if(!l){m.disconnect();for(let _ of d)removeEventListener(_,v,{capture:!0})}S===g.id&&(o=!0,s(!0))}})}};for(let h of d)addEventListener(h,v,{capture:!0});U(h=>{P("back-forward-cache",g.navigationId,g.navigationInteractionId,g.navigationURL,N()),s=C(i,g,X,n.reportAllChanges),ye(()=>{g.value=performance.now()-h.timeStamp,o=!0,s(!0)})})}})})(i=>{t((n=>{let o={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:n.value};if(n.entries.length){let l=n.entries.at(-1),s=c=>c.name===l.url&&(c.requestStart||c.startTime)<=l.startTime,u=l.url&&(Y.findLast(s)||performance.getEntriesByType("resource").findLast(s)),g;o.target=r.get(l),o.lcpEntry=l,l.url&&(o.url=l.url),u&&(o.lcpResourceEntry=u);let b=0,P=0;if(n.navigationType!=="soft-navigation"?(g=B(),b=g?.activationStart??0,P=g?.responseStart??0):(b=n.navigationStartTime||0,g=a.u?.get(n.navigationId)),g){let c=Math.max(0,P-b),f=Math.max(c,u?(u.requestStart||u.startTime)-b:0),p=Math.min(n.value,Math.max(f,u?u.responseEnd-b:0));o={...o,timeToFirstByte:c,resourceLoadDelay:f-c,resourceLoadDuration:p-f,elementRenderDelay:n.value-p,navigationEntry:g}}}return Object.assign(n,{attribution:o})})(i))},e)},Z=[800,1800],ve=t=>{document.prerendering?ae(()=>ve(t)):document.readyState!=="complete"?addEventListener("load",()=>ve(t),!0):setTimeout(t)},et=(t,e={})=>{((a,r={})=>{let i=x(r),n=L("TTFB"),o=C(a,n,Z,r.reportAllChanges);ve(()=>{let l=B();if(l){let s=l.responseStart;n.value=Math.max(s-q(),0),n.entries=[l],o(!0),U(()=>{n=L("TTFB",0,"back-forward-cache",n.navigationId,n.navigationInteractionId,n.navigationURL,N()),o=C(a,n,Z,r.reportAllChanges),o(!0)}),i&&D(["soft-navigation"],u=>{u.forEach(g=>{g.navigationId&&(n=L("TTFB",0,"soft-navigation",g.navigationId,g.interactionId,g.name,g.startTime),n.entries=[g],o=C(a,n,Z,r.reportAllChanges),o(!0))})},r)}})})(a=>{t((r=>{let i=r.entries[0],n={waitingDuration:0,cacheDuration:0,dnsDuration:0,connectionDuration:0,requestDuration:0,navigationEntry:i};if(r.entries.length&&i instanceof PerformanceNavigationTiming){let o=i.activationStart||0,l=Math.max((i.workerStart||i.fetchStart||0)-o,0),s=Math.max(i.domainLookupStart-o,0),u=Math.max(i.connectStart-o,0),g=Math.max(i.connectEnd-o,0);n={waitingDuration:l,cacheDuration:s-l,dnsDuration:u-s,connectionDuration:g-u,requestDuration:r.value-g,navigationEntry:i}}return Object.assign(r,{attribution:n})})(a))},e)}});var st={};Ce(st,{startWebVitals:()=>Ue});function tt(t,e){return e<t}function nt({mobileHint:t,screenWidth:e}){return t===!0?"mobile":typeof e!="number"||e<=0?"unknown":e<768?"mobile":e<1024?"tablet":"desktop"}function it(t,e){if(typeof t!="string"||!t)return null;try{return new URL(t,e).pathname}catch{return null}}function Te(t){return typeof t=="string"&&t?t.split(/[?#]/,1)[0]??null:null}var k=t=>typeof t=="number"&&Number.isFinite(t)?Math.round(t):null,Ne=(t,e)=>typeof t=="string"&&t?t.slice(0,e):null;function Be(t){return typeof t?.transferSize!="number"||typeof t?.decodedBodySize!="number"?null:t.transferSize===0&&t.decodedBodySize>0?!0:t.transferSize>0?!1:null}function at(t){return{url:Ne(Te(t.sourceURL),200),function:Ne(t.sourceFunctionName,80),invoker_type:t.invokerType??null,duration_ms:k(t.duration),forced_style_layout_ms:k(t.forcedStyleAndLayoutDuration)}}function rt(t){let e=(t?.longAnimationFrameEntries??[]).flatMap(a=>a.scripts??[]);return e.length===0&&(e=[t?.longestScript?.entry].filter(a=>!!a)),e.length===0?null:(e.sort((a,r)=>(r.duration??0)-(a.duration??0)),e.slice(0,3).map(at))}function ot(t,e){let a=t.name,r=a==="CLS"?Math.round(t.value*1e4)/1e4:k(t.value),i={[`$web_vitals_${a}_value`]:r,vital:a,value:r,rating:t.rating,metric_id:t.id,navigation_type:t.navigationType??null,path:it(t.navigationURL??e.pageUrl,e.pageUrl),deploy_version:e.deployVersion??null,device_class:e.deviceClass,page_template:t.navigationType==="soft-navigation"?null:e.pageTemplate??null};if(t.name==="INP"){let n=t.attribution??{};i.inp_target=n.interactionTarget||null,i.inp_longest_script_url=Te(n.longestScript?.entry?.sourceURL),i.inp_input_delay_ms=k(n.inputDelay),i.inp_processing_ms=k(n.processingDuration),i.inp_presentation_delay_ms=k(n.presentationDelay),i.inp_interaction_type=n.interactionType??null,i.inp_load_state=n.loadState??null,i.inp_scripts=rt(n)}if(t.name==="LCP"){let n=t.attribution??{};i.lcp_ttfb_ms=k(n.timeToFirstByte),i.lcp_resource_load_delay_ms=k(n.resourceLoadDelay),i.lcp_resource_load_duration_ms=k(n.resourceLoadDuration),i.lcp_element_render_delay_ms=k(n.elementRenderDelay),i.lcp_target=n.target??null,i.lcp_url=/^(?:data|blob):/.test(n.url??"")?"data:":Te(n.url),i.lcp_element_tag=n.lcpEntry?.element?.tagName?.toLowerCase()??null,i.lcp_nav_cached=Be(n.navigationEntry),i.lcp_resource_cached=Be(n.lcpResourceEntry)}if(t.name==="CLS"){let n=t.attribution??{};i.cls_target=n.largestShiftTarget??null,i.cls_largest_shift=typeof n.largestShiftValue=="number"&&Number.isFinite(n.largestShiftValue)?Math.round(n.largestShiftValue*1e4)/1e4:null,i.cls_largest_shift_time_ms=k(n.largestShiftTime),i.cls_load_state=n.loadState??null}return i}var re={started:!1,send:null};function Ue(t,e,{load:a=()=>Promise.resolve().then(()=>(xe(),Ve)),roll:r=Math.random()}={}){if(re.send=e,re.started||(re.started=!0,!tt(t.sampleRate,r)))return Promise.resolve();let i=globalThis.navigator,n={deployVersion:t.deployVersion,pageTemplate:t.pageTemplate,deviceClass:nt({mobileHint:i?.userAgentData?.mobile,screenWidth:globalThis.screen?.width})},o=s=>{try{re.send?.("$web_vitals",ot(s,{...n,pageUrl:globalThis.location?.href}))}catch{}},l={reportSoftNavs:t.softNavigations};return Promise.resolve().then(a).then(s=>{for(let u of[s.onLCP,s.onINP,s.onCLS,s.onFCP,s.onTTFB])u(o,l)}).catch(()=>{})}return $e(st);})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webority/analytics",
|
|
3
|
-
"version": "0.38.
|
|
3
|
+
"version": "0.38.2",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"imports": {
|
|
33
33
|
"#site-web-vitals": {
|
|
34
|
+
"types": "./dist/types/site-web-vitals.d.ts",
|
|
34
35
|
"webority-site-global": "./src/site-web-vitals-script.ts",
|
|
35
36
|
"default": "./src/site-web-vitals.ts"
|
|
36
37
|
}
|
|
@@ -83,8 +84,8 @@
|
|
|
83
84
|
"lint": "biome lint ./src ./test",
|
|
84
85
|
"format": "biome format --write ./src ./test",
|
|
85
86
|
"check": "biome check ./src ./test",
|
|
86
|
-
"test": "node test/smoke.
|
|
87
|
+
"test": "tsc -p tsconfig.test.json && node test/smoke.ts && node test/site.ts && node test/errors.ts && node test/react-native.ts && node test/url-scrub.ts && node test/web-vitals.ts && node test/tours.ts && node test/catalogue.ts &&node src/catalogue/generate-events.ts --plan src/catalogue/fleet-tracking-plan.json --cs ../Webority.Analytics/FleetEventCatalogue.g.cs --cs-namespace Webority.Analytics --cs-class FleetEventCatalogue --cs-internal --check && pnpm run --silent build && node test/bundle.ts && node test/types.ts",
|
|
87
88
|
"catalogue:generate": "node src/catalogue/generate-events.ts --plan src/catalogue/fleet-tracking-plan.json --cs ../Webority.Analytics/FleetEventCatalogue.g.cs --cs-namespace Webority.Analytics --cs-class FleetEventCatalogue --cs-internal",
|
|
88
|
-
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
89
|
+
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json"
|
|
89
90
|
}
|
|
90
91
|
}
|
package/dist/chunk-LGUY6CCC.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var p={sampleRate:1,softNavigations:!0,deployVersion:null,pageTemplate:null};function w(e){if(e==null||e===!1)return null;if(e===!0)return{...p};if(typeof e!="object")throw new Error("@webority/analytics: webVitals takes true or { sampleRate, softNavigations, deployVersion, pageTemplate }.");let t=e.sampleRate??p.sampleRate;if(typeof t!="number"||!(t>0&&t<=1))throw new Error("@webority/analytics: webVitals.sampleRate must be a number above 0 and at most 1.");let a=e.deployVersion??null;if(a!==null&&typeof a!="string")throw new Error("@webority/analytics: webVitals.deployVersion must be a string.");let i=e.pageTemplate??null;if(i!==null&&(typeof i!="string"||i.length>120))throw new Error("@webority/analytics: webVitals.pageTemplate must be a string of at most 120 characters.");return{sampleRate:t,softNavigations:e.softNavigations!==!1,deployVersion:a,pageTemplate:i}}function b(e,t){return t<e}function y({mobileHint:e,screenWidth:t}){return e===!0?"mobile":typeof t!="number"||t<=0?"unknown":t<768?"mobile":t<1024?"tablet":"desktop"}function _(e,t){if(typeof e!="string"||!e)return null;try{return new URL(e,t).pathname}catch{return null}}function u(e){return typeof e=="string"&&e?e.split(/[?#]/,1)[0]??null:null}var l=e=>typeof e=="number"&&Number.isFinite(e)?Math.round(e):null,d=(e,t)=>typeof e=="string"&&e?e.slice(0,t):null;function f(e){return typeof e?.transferSize!="number"||typeof e?.decodedBodySize!="number"?null:e.transferSize===0&&e.decodedBodySize>0?!0:e.transferSize>0?!1:null}function v(e){return{url:d(u(e.sourceURL),200),function:d(e.sourceFunctionName,80),invoker_type:e.invokerType??null,duration_ms:l(e.duration),forced_style_layout_ms:l(e.forcedStyleAndLayoutDuration)}}function h(e){let t=(e?.longAnimationFrameEntries??[]).flatMap(a=>a.scripts??[]);return t.length===0&&(t=[e?.longestScript?.entry].filter(a=>!!a)),t.length===0?null:(t.sort((a,i)=>(i.duration??0)-(a.duration??0)),t.slice(0,3).map(v))}function S(e,t){let a=e.name,i=a==="CLS"?Math.round(e.value*1e4)/1e4:l(e.value),r={[`$web_vitals_${a}_value`]:i,vital:a,value:i,rating:e.rating,metric_id:e.id,navigation_type:e.navigationType??null,path:_(e.navigationURL??t.pageUrl,t.pageUrl),deploy_version:t.deployVersion??null,device_class:t.deviceClass,page_template:e.navigationType==="soft-navigation"?null:t.pageTemplate??null};if(e.name==="INP"){let n=e.attribution??{};r.inp_target=n.interactionTarget||null,r.inp_longest_script_url=u(n.longestScript?.entry?.sourceURL),r.inp_input_delay_ms=l(n.inputDelay),r.inp_processing_ms=l(n.processingDuration),r.inp_presentation_delay_ms=l(n.presentationDelay),r.inp_interaction_type=n.interactionType??null,r.inp_load_state=n.loadState??null,r.inp_scripts=h(n)}if(e.name==="LCP"){let n=e.attribution??{};r.lcp_ttfb_ms=l(n.timeToFirstByte),r.lcp_resource_load_delay_ms=l(n.resourceLoadDelay),r.lcp_resource_load_duration_ms=l(n.resourceLoadDuration),r.lcp_element_render_delay_ms=l(n.elementRenderDelay),r.lcp_target=n.target??null,r.lcp_url=/^(?:data|blob):/.test(n.url??"")?"data:":u(n.url),r.lcp_element_tag=n.lcpEntry?.element?.tagName?.toLowerCase()??null,r.lcp_nav_cached=f(n.navigationEntry),r.lcp_resource_cached=f(n.lcpResourceEntry)}if(e.name==="CLS"){let n=e.attribution??{};r.cls_target=n.largestShiftTarget??null,r.cls_largest_shift=typeof n.largestShiftValue=="number"&&Number.isFinite(n.largestShiftValue)?Math.round(n.largestShiftValue*1e4)/1e4:null,r.cls_largest_shift_time_ms=l(n.largestShiftTime),r.cls_load_state=n.loadState??null}return r}var s={started:!1,send:null};function P(e,t,{load:a=()=>import("./web-vitals.attribution-NGD57Y3S.js"),roll:i=Math.random()}={}){if(s.send=t,s.started||(s.started=!0,!b(e.sampleRate,i)))return Promise.resolve();let r=globalThis.navigator,n={deployVersion:e.deployVersion,pageTemplate:e.pageTemplate,deviceClass:y({mobileHint:r?.userAgentData?.mobile,screenWidth:globalThis.screen?.width})},c=o=>{try{s.send?.("$web_vitals",S(o,{...n,pageUrl:globalThis.location?.href}))}catch{}},g={reportSoftNavs:e.softNavigations};return Promise.resolve().then(a).then(o=>{for(let m of[o.onLCP,o.onINP,o.onCLS,o.onFCP,o.onTTFB])m(c,g)}).catch(()=>{})}function T(){s.started=!1,s.send=null}export{w as a,b,y as c,f as d,h as e,S as f,P as g,T as h};
|