flowsery 1.1.0 → 1.1.1

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/README.md CHANGED
@@ -110,6 +110,48 @@ Add the `data-recording` attribute and Flowsery injects the recording bundle:
110
110
  ></script>
111
111
  ```
112
112
 
113
+ ### Sampling
114
+
115
+ On high-traffic sites you rarely need to record every visit. Two independent
116
+ rates control this, both set here on the client (`0`–`100`, default `100` —
117
+ record and analyze everything):
118
+
119
+ - **`recordingSampleRate`** (`data-recording-sample`) — the share of sessions
120
+ that get recorded. The browser decides, so unsampled sessions never download
121
+ the recording bundle. The decision is deterministic per session, so a visitor
122
+ is recorded (or not) consistently across reloads and page navigations.
123
+ - **`aiSampleRate`** (`data-ai-sample`) — the share of _recorded_ sessions sent
124
+ to AI session analysis. Sent to Flowsery in the recording handshake and applied
125
+ server-side, since AI analysis runs after the page has closed.
126
+
127
+ The two multiply: a recording rate of `30` and an AI rate of `50` records ~30% of
128
+ sessions and AI-analyzes ~15% (30% × 50%) of them — the rest stay fully
129
+ replayable, just not AI-analyzed.
130
+
131
+ Via npm:
132
+
133
+ ```ts
134
+ const flowsery = await initFlowsery({
135
+ websiteId: 'flid_******',
136
+ recording: true,
137
+ recordingSampleRate: 30,
138
+ aiSampleRate: 50,
139
+ });
140
+ ```
141
+
142
+ Via script tag:
143
+
144
+ ```html
145
+ <script
146
+ defer
147
+ data-fl-website-id="flid_******"
148
+ data-recording
149
+ data-recording-sample="30"
150
+ data-ai-sample="50"
151
+ src="https://cdn.flowsery.com/main.js"
152
+ ></script>
153
+ ```
154
+
113
155
  ## Script Tag
114
156
 
115
157
  If you prefer not to use npm, you can install Flowsery with a script tag.
@@ -190,6 +232,8 @@ type FlowseryConfig = {
190
232
  allowedHostnames?: string[];
191
233
  hashMode?: boolean;
192
234
  recording?: boolean;
235
+ recordingSampleRate?: number;
236
+ aiSampleRate?: number;
193
237
  };
194
238
  ```
195
239
 
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- var P=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(z)=>{let $=Math.random()*16|0;return(z==="x"?$:$&3|8).toString(16)})},l=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var X=()=>{return window.__flowsery_config||null},F=()=>{return document.querySelector("script[data-fl-website-id]")},Y=()=>{let z=X();if(z)return z.websiteId;return F()?.getAttribute("data-fl-website-id")||""},o=()=>{return X()?.apiUrl??null},s=()=>{let z=X();if(z?.apiBase)return z.apiBase;let $=F(),j=$?.getAttribute("data-api");if(j)return j;let J=$?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},N=()=>{return"https://analytics.flowsery.com/analytics"},C=()=>{let z=X();if(z?.domain)return z.domain;return F()?.getAttribute("data-domain")||location.hostname},w=()=>{let z=X();if(z)return!!z.cookieless;return F()?.hasAttribute("data-cookieless")??!1},Iz=new Set(["localhost","127.0.0.1","[::1]"]),r=()=>{return Iz.has(location.hostname)||location.hostname.endsWith(".local")},i=()=>{let z=X();if(z)return!!z.local;return F()?.hasAttribute("data-local")??!1},t=()=>{return location.protocol==="file:"},a=()=>{let z=X();if(z)return!!z.allowFileProtocol;return F()?.hasAttribute("data-allow-file-protocol")??!1},e=()=>{try{return window.self!==window.top}catch{return!0}},zz=()=>{let z=X();if(z)return!!z.allowIframe;return F()?.hasAttribute("data-allow-iframe")??!1};var u=()=>{let z=X();if(z)return!!z.hashMode;return F()?.src?.includes(".hash.js")??!1},$z=()=>{let z=X();if(z)return!!z.recording;return F()?.hasAttribute("data-recording")??!1},jz=()=>{let z=`recording${u()?".hash":""}.js`,$=F()?.src;if($)return $.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,z);return`https://cdn.flowsery.com/${z}`},Jz=()=>{let z=X();if(z?.allowedHostnames)return z.allowedHostnames;let j=F()?.getAttribute("data-allowed-hostnames");return j?j.split(",").map((J)=>J.trim()).filter(Boolean):[]},Qz=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},Zz=()=>{let z=new URLSearchParams(window.location.search),$={};for(let j of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=z.get(j);if(J)$[j]=J}return $};var qz=o(),Oz=61440,xz=(z,$)=>{try{let j=new XMLHttpRequest;j.open("POST",z,!0),j.setRequestHeader("Content-Type","application/json"),j.send($)}catch(j){}},W=(z,$)=>{let j=s(),J=!!j,Q=qz??(J?`${j}/api/track`:`${N()}/events`),Z=Y(),B=JSON.stringify({...$,websiteId:Z,type:z});if(qz||!J){xz(Q,B);return}if(B.length>Oz){xz(Q,B);return}if(typeof navigator.sendBeacon==="function"){let V=new Blob([B],{type:"application/json"});if(navigator.sendBeacon(Q,V))return}fetch(Q,{method:"POST",headers:{"Content-Type":"application/json"},body:B,keepalive:!0}).catch(()=>{})};var D="_fs_vid",v="_fs_sid",U="_fs_sts",Pz=1800000,T="_fs_vid",E="_fs_sid",Cz=(z)=>{let $=document.cookie.match(new RegExp(`(?:^|; )${z}=([^;]*)`));return $?decodeURIComponent($[1]):null},Wz=(z,$,j)=>{let J=new Date(Date.now()+j*86400000).toUTCString(),Q=C(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${z}=${encodeURIComponent($)};expires=${J};path=/${Z};SameSite=Lax;Secure`},Tz=(z)=>{let $=C(),j=$?`;domain=.${$}`:"";document.cookie=`${z}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${j};SameSite=Lax;Secure`},Ez=()=>{let z=new URLSearchParams(window.location.search),$=z.get(T)||void 0,j=z.get(E)||void 0;if($||j){z.delete(T),z.delete(E);let J=z.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:$,sid:j}},L=null,Bz=()=>{if(L===null)L=Ez();return L},q=()=>{if(w())return;let z=Bz();if(z.vid){Wz(D,z.vid,730);let j=z.vid;return z.vid=void 0,j}let $=Cz(D);if(!$)$=P(),Wz(D,$,730);return $},x=()=>{if(w())return;let z=Bz();if(z.sid){let Q=z.sid;return sessionStorage.setItem(v,Q),sessionStorage.setItem(U,Date.now().toString()),z.sid=void 0,Q}let $=Date.now(),j=parseInt(sessionStorage.getItem(U)||"0",10),J=sessionStorage.getItem(v);if(!J||$-j>Pz)J=P(),sessionStorage.setItem(v,J);return sessionStorage.setItem(U,$.toString()),J},Xz=()=>{if(w())return;sessionStorage.setItem(U,Date.now().toString())},b=()=>{let z=q(),$=x();return{...z&&{_fs_vid:z},...$&&{_fs_sid:$}}},H=(z)=>{let $=b(),j=new URL(z);if($._fs_vid)j.searchParams.set(T,$._fs_vid);if($._fs_sid)j.searchParams.set(E,$._fs_sid);return j.toString()},h=()=>{Tz(D),sessionStorage.removeItem(v),sessionStorage.removeItem(U),L=null};var hz=5000,_=0,k=0,f=null,Az=()=>{let z=document.documentElement,$=window.scrollY||z.scrollTop,j=z.scrollHeight-z.clientHeight;if(j<=0)return 100;return Math.min(100,Math.round($/j*100))},A=()=>{_++},Fz=()=>{let z=Az();k=Math.max(k,z);let $=q(),j=x();W("heartbeat",{...$&&{visitorUid:$},...j&&{sessionUid:j},path:location.pathname,scrollDepth:k,isVisible:document.visibilityState==="visible",interactionCount:_}),Xz()},Gz=()=>{_=0,k=0},Vz=()=>{document.addEventListener("click",A,{passive:!0}),document.addEventListener("scroll",A,{passive:!0}),document.addEventListener("keydown",A,{passive:!0}),f=setInterval(Fz,hz),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")Fz()})},p=()=>{if(f)clearInterval(f),f=null};var Kz="",Mz=!1,M=()=>{let z=u(),$=z?location.href:location.pathname+location.search;if($===Kz)return;Kz=$,Gz();let j=Zz(),J=q(),Q=x(),Z=z?location.pathname+location.hash:location.pathname;if(W("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:j.utm_source,utmMedium:j.utm_medium,utmCampaign:j.utm_campaign,utmTerm:j.utm_term,utmContent:j.utm_content,ref:j.ref,source:j.source,via:j.via}),!Mz){Mz=!0;let B=N();if(B){let V=JSON.stringify({type:"geo",websiteId:Y(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${B}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:V,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},Yz=()=>{M();let{pushState:z,replaceState:$}=history;if(history.pushState=function(...j){z.apply(this,j),M()},history.replaceState=function(...j){$.apply(this,j),M()},window.addEventListener("popstate",()=>M()),u())window.addEventListener("hashchange",()=>M())};var Uz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j)return;try{let J=new URL(j);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=q(),Z=x();if(!Q||!Z)return;W("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:j})}catch{}})};var _z=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,Hz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j||!_z.test(j))return;let J=q(),Q=x();W("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:j}})})};var K=(z,$)=>{let j=q(),J=x();W("goal",{...j&&{visitorUid:j},...J&&{sessionUid:J},name:z,metadata:$})};var m="data-fs-goal",yz="data-fs-goal-",pz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(yz)&&J.name!==m){let Q=J.name.slice(yz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},Nz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest(`[${m}]`);if(!$)return;let j=$.getAttribute(m);if(!j)return;let J=pz($);K(j,J)})};var R="data-fs-scroll",Dz="data-fs-scroll-threshold",S="data-fs-scroll-delay",wz="data-fs-scroll-",mz=new Set([R,Dz,S]),uz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(wz)&&!mz.has(J.name)){let Q=J.name.slice(wz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},vz=()=>{let z=document.querySelectorAll(`[${R}]`);if(!z.length)return;let $=new Set,j=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||$.has(Z))continue;let B=Z.getAttribute(R);if(!B)continue;let V=parseInt(Z.getAttribute(S)||"0",10)||0,G=()=>{if($.has(Z))return;$.add(Z),j.unobserve(Z);let y=uz(Z);K(B,y)};if(V>0)setTimeout(G,V);else G()}},{threshold:0});for(let J of Array.from(z)){let Q=parseFloat(J.getAttribute(Dz)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((B)=>{for(let V of B){let G=V.target;if(!V.isIntersecting||$.has(G))continue;let y=G.getAttribute(R);if(!y)continue;let n=parseInt(G.getAttribute(S)||"0",10)||0,g=()=>{if($.has(G))return;$.add(G),Z.unobserve(G);let Rz=uz(G);K(y,Rz)};if(n>0)setTimeout(g,n);else g()}},{threshold:Q});Z.observe(J)}else j.observe(J)}};var c=null,Lz=()=>{if(!c)c=new Set(Jz());return c},Sz=(z)=>{let $=Lz();if(!$.size)return!1;for(let j of $)if(z===j||z.endsWith(`.${j}`))return!0;return!1},bz=()=>{if(!Lz().size)return;document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let J=j.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!Sz(Q.hostname))return;j.href=H(J)}catch{}})};var cz="buy.stripe.com",dz=(z,$)=>{try{let j=new URL(z);if(j.hostname!==cz)return z;if(j.searchParams.has("client_reference_id"))return z;return j.searchParams.set("client_reference_id",$),j.toString()}catch{return z}},kz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$||!$.href)return;let j=q();if(!j)return;$.href=dz($.href,j)})};var I=(z)=>{let $=q(),j=x();W("payment",{...$&&{visitorUid:$},...j&&{sessionUid:j},...z.amount!=null&&{amount:z.amount},...z.currency&&{currency:z.currency},...z.transactionId&&{transactionId:z.transactionId},...z.email&&{email:z.email},...z.name&&{name:z.name},...z.customerId&&{customerId:z.customerId},...z.isRenewal!=null&&{isRenewal:z.isRenewal},...z.isRefund!=null&&{isRefund:z.isRefund}})};var O=(z)=>{let $=q();W("identify",{...$&&{visitorUid:$},userId:z.userId,name:z.name,email:z.email,image:z.image,profileData:z.profileData})};var nz=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let z=document.createElement("script");z.src=jz(),z.defer=!0,z.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild(z)},fz=(z)=>{let[$,...j]=z;switch($){case"identify":O(j[0]);break;case"payment":I(j[0]);break;default:K($,j[0]);break}},d=()=>{if(l())return;if(!Y())return;if(Qz())return;if(r()&&!i())return;if(t()&&!a())return;if(e()&&!zz())return;if(Yz(),Vz(),Uz(),Hz(),Nz(),vz(),bz(),kz(),$z())nz();let z=window,$=z.flowsery?.q||[];for(let j of $)fz(j);z.flowsery=function(...j){fz(j)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",d);else d();var S3=async(z)=>{let $=window;return $.__flowsery_config=z,d(),{trackEvent:K,trackPayment:I,trackPageview:M,identify:O,stop:p,reset:h,getTrackingParams:b,buildCrossDomainUrl:H,getVisitorId:q,getSessionId:x}};export{I as trackPayment,M as trackPageview,K as trackEvent,p as stopHeartbeat,h as reset,S3 as initFlowsery,O as identify,q as getVisitorId,b as getTrackingParams,x as getSessionId,H as buildCrossDomainUrl};
1
+ var f=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(z)=>{let $=Math.random()*16|0;return(z==="x"?$:$&3|8).toString(16)})},o=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var x=()=>{return window.__flowsery_config||null},X=()=>{return document.querySelector("script[data-fl-website-id]")},M=()=>{let z=x();if(z)return z.websiteId;return X()?.getAttribute("data-fl-website-id")||""},s=()=>{return x()?.apiUrl??null},i=()=>{let z=x();if(z?.apiBase)return z.apiBase;let $=X(),j=$?.getAttribute("data-api");if(j)return j;let J=$?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},w=()=>{return"https://analytics.flowsery.com/analytics"},T=()=>{let z=x();if(z?.domain)return z.domain;return X()?.getAttribute("data-domain")||location.hostname},D=()=>{let z=x();if(z)return!!z.cookieless;return X()?.hasAttribute("data-cookieless")??!1},Ez=new Set(["localhost","127.0.0.1","[::1]"]),r=()=>{return Ez.has(location.hostname)||location.hostname.endsWith(".local")},t=()=>{let z=x();if(z)return!!z.local;return X()?.hasAttribute("data-local")??!1},a=()=>{return location.protocol==="file:"},e=()=>{let z=x();if(z)return!!z.allowFileProtocol;return X()?.hasAttribute("data-allow-file-protocol")??!1},zz=()=>{try{return window.self!==window.top}catch{return!0}},$z=()=>{let z=x();if(z)return!!z.allowIframe;return X()?.hasAttribute("data-allow-iframe")??!1};var v=()=>{let z=x();if(z)return!!z.hashMode;return X()?.src?.includes(".hash.js")??!1},jz=()=>{let z=x();if(z)return!!z.recording;return X()?.hasAttribute("data-recording")??!1},hz=(z)=>{let $=2166136261;for(let j=0;j<z.length;j++)$^=z.charCodeAt(j),$=Math.imul($,16777619);return($>>>0)%100},Jz=(z,$)=>{if(!Number.isFinite($)||$>=100)return!0;if($<=0)return!1;return hz(z)<$},l=(z)=>z==null||!Number.isFinite(z)?100:Math.max(0,Math.min(100,Math.floor(z))),Az=(z,$)=>{if(typeof z==="number")return l(z);let j=X()?.getAttribute($);return l(j!=null&&j!==""?Number(j):null)},Qz=()=>Az(x()?.recordingSampleRate,"data-recording-sample");var Zz=()=>{let z=`recording${v()?".hash":""}.js`,$=X()?.src;if($)return $.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,z);return`https://cdn.flowsery.com/${z}`},qz=()=>{let z=x();if(z?.allowedHostnames)return z.allowedHostnames;let j=X()?.getAttribute("data-allowed-hostnames");return j?j.split(",").map((J)=>J.trim()).filter(Boolean):[]},Wz=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},Fz=()=>{let z=new URLSearchParams(window.location.search),$={};for(let j of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=z.get(j);if(J)$[j]=J}return $};var Bz=s(),_z=61440,xz=3,mz=1000,Xz=(z,$,j)=>{try{let J=new XMLHttpRequest;if(J.open("POST",z,!0),J.setRequestHeader("Content-Type","application/json"),j>0){let Q=()=>{let Z=xz-j;setTimeout(()=>Xz(z,$,j-1),mz*Math.pow(2,Z))};J.onreadystatechange=()=>{if(J.readyState!==4)return;if(J.status===0||J.status>=500)Q()},J.onerror=Q}J.send($)}catch(J){}},Gz=(z,$,j=!1)=>{Xz(z,$,j?xz:0)},pz=(z,$)=>Bz??(z?`${$}/api/track`:`${w()}/events`),F=(z,$,j)=>{let J=i(),Q=!!J,Z=pz(Q,J),K=M(),G=JSON.stringify({...$,websiteId:K,type:z}),B=j?.retry??!1;if(Bz||!Q){Gz(Z,G,B);return}if(G.length>_z){Gz(Z,G,B);return}if(typeof navigator.sendBeacon==="function"){let U=new Blob([G],{type:"application/json"});if(navigator.sendBeacon(Z,U))return}fetch(Z,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0}).catch(()=>{})};var y="_fs_vid",L="_fs_sid",H="_fs_sts",Sz=1800000,R="_fs_vid",E="_fs_sid",cz=(z)=>{let $=document.cookie.match(new RegExp(`(?:^|; )${z}=([^;]*)`));return $?decodeURIComponent($[1]):null},Kz=(z,$,j)=>{let J=new Date(Date.now()+j*86400000).toUTCString(),Q=T(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${z}=${encodeURIComponent($)};expires=${J};path=/${Z};SameSite=Lax;Secure`},nz=(z)=>{let $=T(),j=$?`;domain=.${$}`:"";document.cookie=`${z}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${j};SameSite=Lax;Secure`},gz=()=>{let z=new URLSearchParams(window.location.search),$=z.get(R)||void 0,j=z.get(E)||void 0;if($||j){z.delete(R),z.delete(E);let J=z.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:$,sid:j}},b=null,Vz=()=>{if(b===null)b=gz();return b},q=()=>{if(D())return;let z=Vz();if(z.vid){Kz(y,z.vid,730);let j=z.vid;return z.vid=void 0,j}let $=cz(y);if(!$)$=f(),Kz(y,$,730);return $},W=()=>{if(D())return;let z=Vz();if(z.sid){let Q=z.sid;return sessionStorage.setItem(L,Q),sessionStorage.setItem(H,Date.now().toString()),z.sid=void 0,Q}let $=Date.now(),j=parseInt(sessionStorage.getItem(H)||"0",10),J=sessionStorage.getItem(L);if(!J||$-j>Sz)J=f(),sessionStorage.setItem(L,J);return sessionStorage.setItem(H,$.toString()),J},Yz=()=>{if(D())return;sessionStorage.setItem(H,Date.now().toString())},k=()=>{let z=q(),$=W();return{...z&&{_fs_vid:z},...$&&{_fs_sid:$}}},N=(z)=>{let $=k(),j=new URL(z);if($._fs_vid)j.searchParams.set(R,$._fs_vid);if($._fs_sid)j.searchParams.set(E,$._fs_sid);return j.toString()},h=()=>{nz(y),sessionStorage.removeItem(L),sessionStorage.removeItem(H),b=null};var dz=5000,_=0,u=0,O=null,lz=()=>{let z=document.documentElement,$=window.scrollY||z.scrollTop,j=z.scrollHeight-z.clientHeight;if(j<=0)return 100;return Math.min(100,Math.round($/j*100))},A=()=>{_++},Uz=()=>{let z=lz();u=Math.max(u,z);let $=q(),j=W();F("heartbeat",{...$&&{visitorUid:$},...j&&{sessionUid:j},path:location.pathname,scrollDepth:u,isVisible:document.visibilityState==="visible",interactionCount:_}),Yz()},Mz=()=>{_=0,u=0},Hz=()=>{document.addEventListener("click",A,{passive:!0}),document.addEventListener("scroll",A,{passive:!0}),document.addEventListener("keydown",A,{passive:!0}),O=setInterval(Uz,dz),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")Uz()})},m=()=>{if(O)clearInterval(O),O=null};var Nz="",wz=!1,Y=()=>{let z=v(),$=z?location.href:location.pathname+location.search;if($===Nz)return;Nz=$,Mz();let j=Fz(),J=q(),Q=W(),Z=z?location.pathname+location.hash:location.pathname;if(F("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:j.utm_source,utmMedium:j.utm_medium,utmCampaign:j.utm_campaign,utmTerm:j.utm_term,utmContent:j.utm_content,ref:j.ref,source:j.source,via:j.via}),!wz){wz=!0;let K=w();if(K){let G=JSON.stringify({type:"geo",websiteId:M(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${K}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},Dz=()=>{Y();let{pushState:z,replaceState:$}=history;if(history.pushState=function(...j){z.apply(this,j),Y()},history.replaceState=function(...j){$.apply(this,j),Y()},window.addEventListener("popstate",()=>Y()),v())window.addEventListener("hashchange",()=>Y())};var vz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j)return;try{let J=new URL(j);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=q(),Z=W();if(!Q||!Z)return;F("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:j})}catch{}})};var oz=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,yz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j||!oz.test(j))return;let J=q(),Q=W();F("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:j}})})};var V=(z,$)=>{let j=q(),J=W();F("goal",{...j&&{visitorUid:j},...J&&{sessionUid:J},name:z,metadata:$})};var p="data-fs-goal",Lz="data-fs-goal-",sz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(Lz)&&J.name!==p){let Q=J.name.slice(Lz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},bz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest(`[${p}]`);if(!$)return;let j=$.getAttribute(p);if(!j)return;let J=sz($);V(j,J)})};var C="data-fs-scroll",Oz="data-fs-scroll-threshold",S="data-fs-scroll-delay",kz="data-fs-scroll-",iz=new Set([C,Oz,S]),uz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(kz)&&!iz.has(J.name)){let Q=J.name.slice(kz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},Cz=()=>{let z=document.querySelectorAll(`[${C}]`);if(!z.length)return;let $=new Set,j=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||$.has(Z))continue;let K=Z.getAttribute(C);if(!K)continue;let G=parseInt(Z.getAttribute(S)||"0",10)||0,B=()=>{if($.has(Z))return;$.add(Z),j.unobserve(Z);let U=uz(Z);V(K,U)};if(G>0)setTimeout(B,G);else B()}},{threshold:0});for(let J of Array.from(z)){let Q=parseFloat(J.getAttribute(Oz)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((K)=>{for(let G of K){let B=G.target;if(!G.isIntersecting||$.has(B))continue;let U=B.getAttribute(C);if(!U)continue;let g=parseInt(B.getAttribute(S)||"0",10)||0,d=()=>{if($.has(B))return;$.add(B),Z.unobserve(B);let Rz=uz(B);V(U,Rz)};if(g>0)setTimeout(d,g);else d()}},{threshold:Q});Z.observe(J)}else j.observe(J)}};var c=null,Pz=()=>{if(!c)c=new Set(qz());return c},rz=(z)=>{let $=Pz();if(!$.size)return!1;for(let j of $)if(z===j||z.endsWith(`.${j}`))return!0;return!1},Iz=()=>{if(!Pz().size)return;document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let J=j.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!rz(Q.hostname))return;j.href=N(J)}catch{}})};var tz="buy.stripe.com",az=(z,$)=>{try{let j=new URL(z);if(j.hostname!==tz)return z;if(j.searchParams.has("client_reference_id"))return z;return j.searchParams.set("client_reference_id",$),j.toString()}catch{return z}},fz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$||!$.href)return;let j=q();if(!j)return;$.href=az($.href,j)})};var P=(z)=>{let $=q(),j=W();F("payment",{...$&&{visitorUid:$},...j&&{sessionUid:j},...z.amount!=null&&{amount:z.amount},...z.currency&&{currency:z.currency},...z.transactionId&&{transactionId:z.transactionId},...z.email&&{email:z.email},...z.name&&{name:z.name},...z.customerId&&{customerId:z.customerId},...z.isRenewal!=null&&{isRenewal:z.isRenewal},...z.isRefund!=null&&{isRefund:z.isRefund}})};var I=(z)=>{let $=q();F("identify",{...$&&{visitorUid:$},userId:z.userId,name:z.name,email:z.email,image:z.image,profileData:z.profileData})};var ez=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let z=document.createElement("script");z.src=Zz(),z.defer=!0,z.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild(z)},Tz=(z)=>{let[$,...j]=z;switch($){case"identify":I(j[0]);break;case"payment":P(j[0]);break;default:V($,j[0]);break}},n=()=>{if(o())return;if(!M())return;if(Wz())return;if(r()&&!t())return;if(a()&&!e())return;if(zz()&&!$z())return;if(Dz(),Hz(),vz(),yz(),bz(),Cz(),Iz(),fz(),jz()){let j=W();if(!j||Jz(j,Qz()))ez()}let z=window,$=z.flowsery?.q||[];for(let j of $)Tz(j);z.flowsery=function(...j){Tz(j)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",n);else n();var r3=async(z)=>{let $=window;return $.__flowsery_config=z,n(),{trackEvent:V,trackPayment:P,trackPageview:Y,identify:I,stop:m,reset:h,getTrackingParams:k,buildCrossDomainUrl:N,getVisitorId:q,getSessionId:W}};export{P as trackPayment,Y as trackPageview,V as trackEvent,m as stopHeartbeat,h as reset,r3 as initFlowsery,I as identify,q as getVisitorId,k as getTrackingParams,W as getSessionId,N as buildCrossDomainUrl};
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var P=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(z)=>{let $=Math.random()*16|0;return(z==="x"?$:$&3|8).toString(16)})},l=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var X=()=>{return window.__flowsery_config||null},F=()=>{return document.querySelector("script[data-fl-website-id]")},Y=()=>{let z=X();if(z)return z.websiteId;return F()?.getAttribute("data-fl-website-id")||""},o=()=>{return X()?.apiUrl??null},s=()=>{let z=X();if(z?.apiBase)return z.apiBase;let $=F(),j=$?.getAttribute("data-api");if(j)return j;let J=$?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},N=()=>{return"https://analytics.flowsery.com/analytics"},C=()=>{let z=X();if(z?.domain)return z.domain;return F()?.getAttribute("data-domain")||location.hostname},w=()=>{let z=X();if(z)return!!z.cookieless;return F()?.hasAttribute("data-cookieless")??!1},Iz=new Set(["localhost","127.0.0.1","[::1]"]),r=()=>{return Iz.has(location.hostname)||location.hostname.endsWith(".local")},i=()=>{let z=X();if(z)return!!z.local;return F()?.hasAttribute("data-local")??!1},t=()=>{return location.protocol==="file:"},a=()=>{let z=X();if(z)return!!z.allowFileProtocol;return F()?.hasAttribute("data-allow-file-protocol")??!1},e=()=>{try{return window.self!==window.top}catch{return!0}},zz=()=>{let z=X();if(z)return!!z.allowIframe;return F()?.hasAttribute("data-allow-iframe")??!1};var u=()=>{let z=X();if(z)return!!z.hashMode;return F()?.src?.includes(".hash.js")??!1},$z=()=>{let z=X();if(z)return!!z.recording;return F()?.hasAttribute("data-recording")??!1},jz=()=>{let z=`recording${u()?".hash":""}.js`,$=F()?.src;if($)return $.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,z);return`https://cdn.flowsery.com/${z}`},Jz=()=>{let z=X();if(z?.allowedHostnames)return z.allowedHostnames;let j=F()?.getAttribute("data-allowed-hostnames");return j?j.split(",").map((J)=>J.trim()).filter(Boolean):[]},Qz=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},Zz=()=>{let z=new URLSearchParams(window.location.search),$={};for(let j of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=z.get(j);if(J)$[j]=J}return $};var qz=o(),Oz=61440,xz=(z,$)=>{try{let j=new XMLHttpRequest;j.open("POST",z,!0),j.setRequestHeader("Content-Type","application/json"),j.send($)}catch(j){}},W=(z,$)=>{let j=s(),J=!!j,Q=qz??(J?`${j}/api/track`:`${N()}/events`),Z=Y(),B=JSON.stringify({...$,websiteId:Z,type:z});if(qz||!J){xz(Q,B);return}if(B.length>Oz){xz(Q,B);return}if(typeof navigator.sendBeacon==="function"){let V=new Blob([B],{type:"application/json"});if(navigator.sendBeacon(Q,V))return}fetch(Q,{method:"POST",headers:{"Content-Type":"application/json"},body:B,keepalive:!0}).catch(()=>{})};var D="_fs_vid",v="_fs_sid",U="_fs_sts",Pz=1800000,T="_fs_vid",E="_fs_sid",Cz=(z)=>{let $=document.cookie.match(new RegExp(`(?:^|; )${z}=([^;]*)`));return $?decodeURIComponent($[1]):null},Wz=(z,$,j)=>{let J=new Date(Date.now()+j*86400000).toUTCString(),Q=C(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${z}=${encodeURIComponent($)};expires=${J};path=/${Z};SameSite=Lax;Secure`},Tz=(z)=>{let $=C(),j=$?`;domain=.${$}`:"";document.cookie=`${z}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${j};SameSite=Lax;Secure`},Ez=()=>{let z=new URLSearchParams(window.location.search),$=z.get(T)||void 0,j=z.get(E)||void 0;if($||j){z.delete(T),z.delete(E);let J=z.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:$,sid:j}},L=null,Bz=()=>{if(L===null)L=Ez();return L},q=()=>{if(w())return;let z=Bz();if(z.vid){Wz(D,z.vid,730);let j=z.vid;return z.vid=void 0,j}let $=Cz(D);if(!$)$=P(),Wz(D,$,730);return $},x=()=>{if(w())return;let z=Bz();if(z.sid){let Q=z.sid;return sessionStorage.setItem(v,Q),sessionStorage.setItem(U,Date.now().toString()),z.sid=void 0,Q}let $=Date.now(),j=parseInt(sessionStorage.getItem(U)||"0",10),J=sessionStorage.getItem(v);if(!J||$-j>Pz)J=P(),sessionStorage.setItem(v,J);return sessionStorage.setItem(U,$.toString()),J},Xz=()=>{if(w())return;sessionStorage.setItem(U,Date.now().toString())},b=()=>{let z=q(),$=x();return{...z&&{_fs_vid:z},...$&&{_fs_sid:$}}},H=(z)=>{let $=b(),j=new URL(z);if($._fs_vid)j.searchParams.set(T,$._fs_vid);if($._fs_sid)j.searchParams.set(E,$._fs_sid);return j.toString()},h=()=>{Tz(D),sessionStorage.removeItem(v),sessionStorage.removeItem(U),L=null};var hz=5000,_=0,k=0,f=null,Az=()=>{let z=document.documentElement,$=window.scrollY||z.scrollTop,j=z.scrollHeight-z.clientHeight;if(j<=0)return 100;return Math.min(100,Math.round($/j*100))},A=()=>{_++},Fz=()=>{let z=Az();k=Math.max(k,z);let $=q(),j=x();W("heartbeat",{...$&&{visitorUid:$},...j&&{sessionUid:j},path:location.pathname,scrollDepth:k,isVisible:document.visibilityState==="visible",interactionCount:_}),Xz()},Gz=()=>{_=0,k=0},Vz=()=>{document.addEventListener("click",A,{passive:!0}),document.addEventListener("scroll",A,{passive:!0}),document.addEventListener("keydown",A,{passive:!0}),f=setInterval(Fz,hz),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")Fz()})},p=()=>{if(f)clearInterval(f),f=null};var Kz="",Mz=!1,M=()=>{let z=u(),$=z?location.href:location.pathname+location.search;if($===Kz)return;Kz=$,Gz();let j=Zz(),J=q(),Q=x(),Z=z?location.pathname+location.hash:location.pathname;if(W("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:j.utm_source,utmMedium:j.utm_medium,utmCampaign:j.utm_campaign,utmTerm:j.utm_term,utmContent:j.utm_content,ref:j.ref,source:j.source,via:j.via}),!Mz){Mz=!0;let B=N();if(B){let V=JSON.stringify({type:"geo",websiteId:Y(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${B}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:V,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},Yz=()=>{M();let{pushState:z,replaceState:$}=history;if(history.pushState=function(...j){z.apply(this,j),M()},history.replaceState=function(...j){$.apply(this,j),M()},window.addEventListener("popstate",()=>M()),u())window.addEventListener("hashchange",()=>M())};var Uz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j)return;try{let J=new URL(j);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=q(),Z=x();if(!Q||!Z)return;W("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:j})}catch{}})};var _z=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,Hz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j||!_z.test(j))return;let J=q(),Q=x();W("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:j}})})};var K=(z,$)=>{let j=q(),J=x();W("goal",{...j&&{visitorUid:j},...J&&{sessionUid:J},name:z,metadata:$})};var m="data-fs-goal",yz="data-fs-goal-",pz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(yz)&&J.name!==m){let Q=J.name.slice(yz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},Nz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest(`[${m}]`);if(!$)return;let j=$.getAttribute(m);if(!j)return;let J=pz($);K(j,J)})};var R="data-fs-scroll",Dz="data-fs-scroll-threshold",S="data-fs-scroll-delay",wz="data-fs-scroll-",mz=new Set([R,Dz,S]),uz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(wz)&&!mz.has(J.name)){let Q=J.name.slice(wz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},vz=()=>{let z=document.querySelectorAll(`[${R}]`);if(!z.length)return;let $=new Set,j=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||$.has(Z))continue;let B=Z.getAttribute(R);if(!B)continue;let V=parseInt(Z.getAttribute(S)||"0",10)||0,G=()=>{if($.has(Z))return;$.add(Z),j.unobserve(Z);let y=uz(Z);K(B,y)};if(V>0)setTimeout(G,V);else G()}},{threshold:0});for(let J of Array.from(z)){let Q=parseFloat(J.getAttribute(Dz)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((B)=>{for(let V of B){let G=V.target;if(!V.isIntersecting||$.has(G))continue;let y=G.getAttribute(R);if(!y)continue;let n=parseInt(G.getAttribute(S)||"0",10)||0,g=()=>{if($.has(G))return;$.add(G),Z.unobserve(G);let Rz=uz(G);K(y,Rz)};if(n>0)setTimeout(g,n);else g()}},{threshold:Q});Z.observe(J)}else j.observe(J)}};var c=null,Lz=()=>{if(!c)c=new Set(Jz());return c},Sz=(z)=>{let $=Lz();if(!$.size)return!1;for(let j of $)if(z===j||z.endsWith(`.${j}`))return!0;return!1},bz=()=>{if(!Lz().size)return;document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let J=j.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!Sz(Q.hostname))return;j.href=H(J)}catch{}})};var cz="buy.stripe.com",dz=(z,$)=>{try{let j=new URL(z);if(j.hostname!==cz)return z;if(j.searchParams.has("client_reference_id"))return z;return j.searchParams.set("client_reference_id",$),j.toString()}catch{return z}},kz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$||!$.href)return;let j=q();if(!j)return;$.href=dz($.href,j)})};var I=(z)=>{let $=q(),j=x();W("payment",{...$&&{visitorUid:$},...j&&{sessionUid:j},...z.amount!=null&&{amount:z.amount},...z.currency&&{currency:z.currency},...z.transactionId&&{transactionId:z.transactionId},...z.email&&{email:z.email},...z.name&&{name:z.name},...z.customerId&&{customerId:z.customerId},...z.isRenewal!=null&&{isRenewal:z.isRenewal},...z.isRefund!=null&&{isRefund:z.isRefund}})};var O=(z)=>{let $=q();W("identify",{...$&&{visitorUid:$},userId:z.userId,name:z.name,email:z.email,image:z.image,profileData:z.profileData})};var nz=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let z=document.createElement("script");z.src=jz(),z.defer=!0,z.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild(z)},fz=(z)=>{let[$,...j]=z;switch($){case"identify":O(j[0]);break;case"payment":I(j[0]);break;default:K($,j[0]);break}},d=()=>{if(l())return;if(!Y())return;if(Qz())return;if(r()&&!i())return;if(t()&&!a())return;if(e()&&!zz())return;if(Yz(),Vz(),Uz(),Hz(),Nz(),vz(),bz(),kz(),$z())nz();let z=window,$=z.flowsery?.q||[];for(let j of $)fz(j);z.flowsery=function(...j){fz(j)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",d);else d();var S3=async(z)=>{let $=window;return $.__flowsery_config=z,d(),{trackEvent:K,trackPayment:I,trackPageview:M,identify:O,stop:p,reset:h,getTrackingParams:b,buildCrossDomainUrl:H,getVisitorId:q,getSessionId:x}};export{I as trackPayment,M as trackPageview,K as trackEvent,p as stopHeartbeat,h as reset,S3 as initFlowsery,O as identify,q as getVisitorId,b as getTrackingParams,x as getSessionId,H as buildCrossDomainUrl};
1
+ var f=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(z)=>{let $=Math.random()*16|0;return(z==="x"?$:$&3|8).toString(16)})},o=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var x=()=>{return window.__flowsery_config||null},X=()=>{return document.querySelector("script[data-fl-website-id]")},M=()=>{let z=x();if(z)return z.websiteId;return X()?.getAttribute("data-fl-website-id")||""},s=()=>{return x()?.apiUrl??null},i=()=>{let z=x();if(z?.apiBase)return z.apiBase;let $=X(),j=$?.getAttribute("data-api");if(j)return j;let J=$?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},w=()=>{return"https://analytics.flowsery.com/analytics"},T=()=>{let z=x();if(z?.domain)return z.domain;return X()?.getAttribute("data-domain")||location.hostname},D=()=>{let z=x();if(z)return!!z.cookieless;return X()?.hasAttribute("data-cookieless")??!1},Ez=new Set(["localhost","127.0.0.1","[::1]"]),r=()=>{return Ez.has(location.hostname)||location.hostname.endsWith(".local")},t=()=>{let z=x();if(z)return!!z.local;return X()?.hasAttribute("data-local")??!1},a=()=>{return location.protocol==="file:"},e=()=>{let z=x();if(z)return!!z.allowFileProtocol;return X()?.hasAttribute("data-allow-file-protocol")??!1},zz=()=>{try{return window.self!==window.top}catch{return!0}},$z=()=>{let z=x();if(z)return!!z.allowIframe;return X()?.hasAttribute("data-allow-iframe")??!1};var v=()=>{let z=x();if(z)return!!z.hashMode;return X()?.src?.includes(".hash.js")??!1},jz=()=>{let z=x();if(z)return!!z.recording;return X()?.hasAttribute("data-recording")??!1},hz=(z)=>{let $=2166136261;for(let j=0;j<z.length;j++)$^=z.charCodeAt(j),$=Math.imul($,16777619);return($>>>0)%100},Jz=(z,$)=>{if(!Number.isFinite($)||$>=100)return!0;if($<=0)return!1;return hz(z)<$},l=(z)=>z==null||!Number.isFinite(z)?100:Math.max(0,Math.min(100,Math.floor(z))),Az=(z,$)=>{if(typeof z==="number")return l(z);let j=X()?.getAttribute($);return l(j!=null&&j!==""?Number(j):null)},Qz=()=>Az(x()?.recordingSampleRate,"data-recording-sample");var Zz=()=>{let z=`recording${v()?".hash":""}.js`,$=X()?.src;if($)return $.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,z);return`https://cdn.flowsery.com/${z}`},qz=()=>{let z=x();if(z?.allowedHostnames)return z.allowedHostnames;let j=X()?.getAttribute("data-allowed-hostnames");return j?j.split(",").map((J)=>J.trim()).filter(Boolean):[]},Wz=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},Fz=()=>{let z=new URLSearchParams(window.location.search),$={};for(let j of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=z.get(j);if(J)$[j]=J}return $};var Bz=s(),_z=61440,xz=3,mz=1000,Xz=(z,$,j)=>{try{let J=new XMLHttpRequest;if(J.open("POST",z,!0),J.setRequestHeader("Content-Type","application/json"),j>0){let Q=()=>{let Z=xz-j;setTimeout(()=>Xz(z,$,j-1),mz*Math.pow(2,Z))};J.onreadystatechange=()=>{if(J.readyState!==4)return;if(J.status===0||J.status>=500)Q()},J.onerror=Q}J.send($)}catch(J){}},Gz=(z,$,j=!1)=>{Xz(z,$,j?xz:0)},pz=(z,$)=>Bz??(z?`${$}/api/track`:`${w()}/events`),F=(z,$,j)=>{let J=i(),Q=!!J,Z=pz(Q,J),K=M(),G=JSON.stringify({...$,websiteId:K,type:z}),B=j?.retry??!1;if(Bz||!Q){Gz(Z,G,B);return}if(G.length>_z){Gz(Z,G,B);return}if(typeof navigator.sendBeacon==="function"){let U=new Blob([G],{type:"application/json"});if(navigator.sendBeacon(Z,U))return}fetch(Z,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0}).catch(()=>{})};var y="_fs_vid",L="_fs_sid",H="_fs_sts",Sz=1800000,R="_fs_vid",E="_fs_sid",cz=(z)=>{let $=document.cookie.match(new RegExp(`(?:^|; )${z}=([^;]*)`));return $?decodeURIComponent($[1]):null},Kz=(z,$,j)=>{let J=new Date(Date.now()+j*86400000).toUTCString(),Q=T(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${z}=${encodeURIComponent($)};expires=${J};path=/${Z};SameSite=Lax;Secure`},nz=(z)=>{let $=T(),j=$?`;domain=.${$}`:"";document.cookie=`${z}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${j};SameSite=Lax;Secure`},gz=()=>{let z=new URLSearchParams(window.location.search),$=z.get(R)||void 0,j=z.get(E)||void 0;if($||j){z.delete(R),z.delete(E);let J=z.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:$,sid:j}},b=null,Vz=()=>{if(b===null)b=gz();return b},q=()=>{if(D())return;let z=Vz();if(z.vid){Kz(y,z.vid,730);let j=z.vid;return z.vid=void 0,j}let $=cz(y);if(!$)$=f(),Kz(y,$,730);return $},W=()=>{if(D())return;let z=Vz();if(z.sid){let Q=z.sid;return sessionStorage.setItem(L,Q),sessionStorage.setItem(H,Date.now().toString()),z.sid=void 0,Q}let $=Date.now(),j=parseInt(sessionStorage.getItem(H)||"0",10),J=sessionStorage.getItem(L);if(!J||$-j>Sz)J=f(),sessionStorage.setItem(L,J);return sessionStorage.setItem(H,$.toString()),J},Yz=()=>{if(D())return;sessionStorage.setItem(H,Date.now().toString())},k=()=>{let z=q(),$=W();return{...z&&{_fs_vid:z},...$&&{_fs_sid:$}}},N=(z)=>{let $=k(),j=new URL(z);if($._fs_vid)j.searchParams.set(R,$._fs_vid);if($._fs_sid)j.searchParams.set(E,$._fs_sid);return j.toString()},h=()=>{nz(y),sessionStorage.removeItem(L),sessionStorage.removeItem(H),b=null};var dz=5000,_=0,u=0,O=null,lz=()=>{let z=document.documentElement,$=window.scrollY||z.scrollTop,j=z.scrollHeight-z.clientHeight;if(j<=0)return 100;return Math.min(100,Math.round($/j*100))},A=()=>{_++},Uz=()=>{let z=lz();u=Math.max(u,z);let $=q(),j=W();F("heartbeat",{...$&&{visitorUid:$},...j&&{sessionUid:j},path:location.pathname,scrollDepth:u,isVisible:document.visibilityState==="visible",interactionCount:_}),Yz()},Mz=()=>{_=0,u=0},Hz=()=>{document.addEventListener("click",A,{passive:!0}),document.addEventListener("scroll",A,{passive:!0}),document.addEventListener("keydown",A,{passive:!0}),O=setInterval(Uz,dz),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")Uz()})},m=()=>{if(O)clearInterval(O),O=null};var Nz="",wz=!1,Y=()=>{let z=v(),$=z?location.href:location.pathname+location.search;if($===Nz)return;Nz=$,Mz();let j=Fz(),J=q(),Q=W(),Z=z?location.pathname+location.hash:location.pathname;if(F("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:j.utm_source,utmMedium:j.utm_medium,utmCampaign:j.utm_campaign,utmTerm:j.utm_term,utmContent:j.utm_content,ref:j.ref,source:j.source,via:j.via}),!wz){wz=!0;let K=w();if(K){let G=JSON.stringify({type:"geo",websiteId:M(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${K}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},Dz=()=>{Y();let{pushState:z,replaceState:$}=history;if(history.pushState=function(...j){z.apply(this,j),Y()},history.replaceState=function(...j){$.apply(this,j),Y()},window.addEventListener("popstate",()=>Y()),v())window.addEventListener("hashchange",()=>Y())};var vz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j)return;try{let J=new URL(j);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=q(),Z=W();if(!Q||!Z)return;F("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:j})}catch{}})};var oz=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,yz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j||!oz.test(j))return;let J=q(),Q=W();F("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:j}})})};var V=(z,$)=>{let j=q(),J=W();F("goal",{...j&&{visitorUid:j},...J&&{sessionUid:J},name:z,metadata:$})};var p="data-fs-goal",Lz="data-fs-goal-",sz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(Lz)&&J.name!==p){let Q=J.name.slice(Lz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},bz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest(`[${p}]`);if(!$)return;let j=$.getAttribute(p);if(!j)return;let J=sz($);V(j,J)})};var C="data-fs-scroll",Oz="data-fs-scroll-threshold",S="data-fs-scroll-delay",kz="data-fs-scroll-",iz=new Set([C,Oz,S]),uz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(kz)&&!iz.has(J.name)){let Q=J.name.slice(kz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},Cz=()=>{let z=document.querySelectorAll(`[${C}]`);if(!z.length)return;let $=new Set,j=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||$.has(Z))continue;let K=Z.getAttribute(C);if(!K)continue;let G=parseInt(Z.getAttribute(S)||"0",10)||0,B=()=>{if($.has(Z))return;$.add(Z),j.unobserve(Z);let U=uz(Z);V(K,U)};if(G>0)setTimeout(B,G);else B()}},{threshold:0});for(let J of Array.from(z)){let Q=parseFloat(J.getAttribute(Oz)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((K)=>{for(let G of K){let B=G.target;if(!G.isIntersecting||$.has(B))continue;let U=B.getAttribute(C);if(!U)continue;let g=parseInt(B.getAttribute(S)||"0",10)||0,d=()=>{if($.has(B))return;$.add(B),Z.unobserve(B);let Rz=uz(B);V(U,Rz)};if(g>0)setTimeout(d,g);else d()}},{threshold:Q});Z.observe(J)}else j.observe(J)}};var c=null,Pz=()=>{if(!c)c=new Set(qz());return c},rz=(z)=>{let $=Pz();if(!$.size)return!1;for(let j of $)if(z===j||z.endsWith(`.${j}`))return!0;return!1},Iz=()=>{if(!Pz().size)return;document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let J=j.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!rz(Q.hostname))return;j.href=N(J)}catch{}})};var tz="buy.stripe.com",az=(z,$)=>{try{let j=new URL(z);if(j.hostname!==tz)return z;if(j.searchParams.has("client_reference_id"))return z;return j.searchParams.set("client_reference_id",$),j.toString()}catch{return z}},fz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$||!$.href)return;let j=q();if(!j)return;$.href=az($.href,j)})};var P=(z)=>{let $=q(),j=W();F("payment",{...$&&{visitorUid:$},...j&&{sessionUid:j},...z.amount!=null&&{amount:z.amount},...z.currency&&{currency:z.currency},...z.transactionId&&{transactionId:z.transactionId},...z.email&&{email:z.email},...z.name&&{name:z.name},...z.customerId&&{customerId:z.customerId},...z.isRenewal!=null&&{isRenewal:z.isRenewal},...z.isRefund!=null&&{isRefund:z.isRefund}})};var I=(z)=>{let $=q();F("identify",{...$&&{visitorUid:$},userId:z.userId,name:z.name,email:z.email,image:z.image,profileData:z.profileData})};var ez=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let z=document.createElement("script");z.src=Zz(),z.defer=!0,z.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild(z)},Tz=(z)=>{let[$,...j]=z;switch($){case"identify":I(j[0]);break;case"payment":P(j[0]);break;default:V($,j[0]);break}},n=()=>{if(o())return;if(!M())return;if(Wz())return;if(r()&&!t())return;if(a()&&!e())return;if(zz()&&!$z())return;if(Dz(),Hz(),vz(),yz(),bz(),Cz(),Iz(),fz(),jz()){let j=W();if(!j||Jz(j,Qz()))ez()}let z=window,$=z.flowsery?.q||[];for(let j of $)Tz(j);z.flowsery=function(...j){Tz(j)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",n);else n();var r3=async(z)=>{let $=window;return $.__flowsery_config=z,n(),{trackEvent:V,trackPayment:P,trackPageview:Y,identify:I,stop:m,reset:h,getTrackingParams:k,buildCrossDomainUrl:N,getVisitorId:q,getSessionId:W}};export{P as trackPayment,Y as trackPageview,V as trackEvent,m as stopHeartbeat,h as reset,r3 as initFlowsery,I as identify,q as getVisitorId,k as getTrackingParams,W as getSessionId,N as buildCrossDomainUrl};
package/dist/main.hash.js CHANGED
@@ -1 +1 @@
1
- (()=>{var{defineProperty:T,getOwnPropertyNames:Pz,getOwnPropertyDescriptor:Cz}=Object,Tz=Object.prototype.hasOwnProperty;function Ez(z){return this[z]}var hz=(z)=>{var $=(o??=new WeakMap).get(z),j;if($)return $;if($=T({},"__esModule",{value:!0}),z&&typeof z==="object"||typeof z==="function"){for(var J of Pz(z))if(!Tz.call($,J))T($,J,{get:Ez.bind(z,J),enumerable:!(j=Cz(z,J))||j.enumerable})}return o.set(z,$),$},o;var Az=(z)=>z;function _z(z,$){this[z]=Az.bind(null,$)}var pz=(z,$)=>{for(var j in $)T(z,j,{get:$[j],enumerable:!0,configurable:!0,set:_z.bind($,j)})};var j3={};pz(j3,{trackPayment:()=>N,trackPageview:()=>M,trackEvent:()=>V,stopHeartbeat:()=>P,reset:()=>R,initFlowsery:()=>$3,identify:()=>w,getVisitorId:()=>q,getTrackingParams:()=>y,getSessionId:()=>x,buildCrossDomainUrl:()=>U});var E=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(z)=>{let $=Math.random()*16|0;return(z==="x"?$:$&3|8).toString(16)})},s=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var X=()=>{return window.__flowsery_config||null},F=()=>{return document.querySelector("script[data-fl-website-id]")},Y=()=>{let z=X();if(z)return z.websiteId;return F()?.getAttribute("data-fl-website-id")||""},r=()=>{return X()?.apiUrl??null},i=()=>{let z=X();if(z?.apiBase)return z.apiBase;let $=F(),j=$?.getAttribute("data-api");if(j)return j;let J=$?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},D=()=>{return"https://analytics.flowsery.com/analytics"},h=()=>{let z=X();if(z?.domain)return z.domain;return F()?.getAttribute("data-domain")||location.hostname},v=()=>{let z=X();if(z)return!!z.cookieless;return F()?.hasAttribute("data-cookieless")??!1},mz=new Set(["localhost","127.0.0.1","[::1]"]),t=()=>{return mz.has(location.hostname)||location.hostname.endsWith(".local")},a=()=>{let z=X();if(z)return!!z.local;return F()?.hasAttribute("data-local")??!1},e=()=>{return location.protocol==="file:"},zz=()=>{let z=X();if(z)return!!z.allowFileProtocol;return F()?.hasAttribute("data-allow-file-protocol")??!1},$z=()=>{try{return window.self!==window.top}catch{return!0}},jz=()=>{let z=X();if(z)return!!z.allowIframe;return F()?.hasAttribute("data-allow-iframe")??!1};var L=()=>{let z=X();if(z)return!!z.hashMode;return F()?.src?.includes(".hash.js")??!1},Jz=()=>{let z=X();if(z)return!!z.recording;return F()?.hasAttribute("data-recording")??!1},Qz=()=>{let z=`recording${L()?".hash":""}.js`,$=F()?.src;if($)return $.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,z);return`https://cdn.flowsery.com/${z}`},Zz=()=>{let z=X();if(z?.allowedHostnames)return z.allowedHostnames;let j=F()?.getAttribute("data-allowed-hostnames");return j?j.split(",").map((J)=>J.trim()).filter(Boolean):[]},qz=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},xz=()=>{let z=new URLSearchParams(window.location.search),$={};for(let j of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=z.get(j);if(J)$[j]=J}return $};var Wz=r(),Sz=61440,Bz=(z,$)=>{try{let j=new XMLHttpRequest;j.open("POST",z,!0),j.setRequestHeader("Content-Type","application/json"),j.send($)}catch(j){}},W=(z,$)=>{let j=i(),J=!!j,Q=Wz??(J?`${j}/api/track`:`${D()}/events`),Z=Y(),B=JSON.stringify({...$,websiteId:Z,type:z});if(Wz||!J){Bz(Q,B);return}if(B.length>Sz){Bz(Q,B);return}if(typeof navigator.sendBeacon==="function"){let K=new Blob([B],{type:"application/json"});if(navigator.sendBeacon(Q,K))return}fetch(Q,{method:"POST",headers:{"Content-Type":"application/json"},body:B,keepalive:!0}).catch(()=>{})};var b="_fs_vid",k="_fs_sid",H="_fs_sts",cz=1800000,A="_fs_vid",_="_fs_sid",dz=(z)=>{let $=document.cookie.match(new RegExp(`(?:^|; )${z}=([^;]*)`));return $?decodeURIComponent($[1]):null},Xz=(z,$,j)=>{let J=new Date(Date.now()+j*86400000).toUTCString(),Q=h(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${z}=${encodeURIComponent($)};expires=${J};path=/${Z};SameSite=Lax;Secure`},nz=(z)=>{let $=h(),j=$?`;domain=.${$}`:"";document.cookie=`${z}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${j};SameSite=Lax;Secure`},gz=()=>{let z=new URLSearchParams(window.location.search),$=z.get(A)||void 0,j=z.get(_)||void 0;if($||j){z.delete(A),z.delete(_);let J=z.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:$,sid:j}},f=null,Fz=()=>{if(f===null)f=gz();return f},q=()=>{if(v())return;let z=Fz();if(z.vid){Xz(b,z.vid,730);let j=z.vid;return z.vid=void 0,j}let $=dz(b);if(!$)$=E(),Xz(b,$,730);return $},x=()=>{if(v())return;let z=Fz();if(z.sid){let Q=z.sid;return sessionStorage.setItem(k,Q),sessionStorage.setItem(H,Date.now().toString()),z.sid=void 0,Q}let $=Date.now(),j=parseInt(sessionStorage.getItem(H)||"0",10),J=sessionStorage.getItem(k);if(!J||$-j>cz)J=E(),sessionStorage.setItem(k,J);return sessionStorage.setItem(H,$.toString()),J},Gz=()=>{if(v())return;sessionStorage.setItem(H,Date.now().toString())},y=()=>{let z=q(),$=x();return{...z&&{_fs_vid:z},...$&&{_fs_sid:$}}},U=(z)=>{let $=y(),j=new URL(z);if($._fs_vid)j.searchParams.set(A,$._fs_vid);if($._fs_sid)j.searchParams.set(_,$._fs_sid);return j.toString()},R=()=>{nz(b),sessionStorage.removeItem(k),sessionStorage.removeItem(H),f=null};var lz=5000,m=0,I=0,O=null,oz=()=>{let z=document.documentElement,$=window.scrollY||z.scrollTop,j=z.scrollHeight-z.clientHeight;if(j<=0)return 100;return Math.min(100,Math.round($/j*100))},p=()=>{m++},Vz=()=>{let z=oz();I=Math.max(I,z);let $=q(),j=x();W("heartbeat",{...$&&{visitorUid:$},...j&&{sessionUid:j},path:location.pathname,scrollDepth:I,isVisible:document.visibilityState==="visible",interactionCount:m}),Gz()},Kz=()=>{m=0,I=0},Mz=()=>{document.addEventListener("click",p,{passive:!0}),document.addEventListener("scroll",p,{passive:!0}),document.addEventListener("keydown",p,{passive:!0}),O=setInterval(Vz,lz),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")Vz()})},P=()=>{if(O)clearInterval(O),O=null};var Yz="",Uz=!1,M=()=>{let z=L(),$=z?location.href:location.pathname+location.search;if($===Yz)return;Yz=$,Kz();let j=xz(),J=q(),Q=x(),Z=z?location.pathname+location.hash:location.pathname;if(W("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:j.utm_source,utmMedium:j.utm_medium,utmCampaign:j.utm_campaign,utmTerm:j.utm_term,utmContent:j.utm_content,ref:j.ref,source:j.source,via:j.via}),!Uz){Uz=!0;let B=D();if(B){let K=JSON.stringify({type:"geo",websiteId:Y(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${B}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:K,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},Hz=()=>{M();let{pushState:z,replaceState:$}=history;if(history.pushState=function(...j){z.apply(this,j),M()},history.replaceState=function(...j){$.apply(this,j),M()},window.addEventListener("popstate",()=>M()),L())window.addEventListener("hashchange",()=>M())};var yz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j)return;try{let J=new URL(j);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=q(),Z=x();if(!Q||!Z)return;W("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:j})}catch{}})};var sz=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,Nz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j||!sz.test(j))return;let J=q(),Q=x();W("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:j}})})};var V=(z,$)=>{let j=q(),J=x();W("goal",{...j&&{visitorUid:j},...J&&{sessionUid:J},name:z,metadata:$})};var S="data-fs-goal",wz="data-fs-goal-",rz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(wz)&&J.name!==S){let Q=J.name.slice(wz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},uz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest(`[${S}]`);if(!$)return;let j=$.getAttribute(S);if(!j)return;let J=rz($);V(j,J)})};var C="data-fs-scroll",Lz="data-fs-scroll-threshold",c="data-fs-scroll-delay",Dz="data-fs-scroll-",iz=new Set([C,Lz,c]),vz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(Dz)&&!iz.has(J.name)){let Q=J.name.slice(Dz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},bz=()=>{let z=document.querySelectorAll(`[${C}]`);if(!z.length)return;let $=new Set,j=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||$.has(Z))continue;let B=Z.getAttribute(C);if(!B)continue;let K=parseInt(Z.getAttribute(c)||"0",10)||0,G=()=>{if($.has(Z))return;$.add(Z),j.unobserve(Z);let u=vz(Z);V(B,u)};if(K>0)setTimeout(G,K);else G()}},{threshold:0});for(let J of Array.from(z)){let Q=parseFloat(J.getAttribute(Lz)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((B)=>{for(let K of B){let G=K.target;if(!K.isIntersecting||$.has(G))continue;let u=G.getAttribute(C);if(!u)continue;let g=parseInt(G.getAttribute(c)||"0",10)||0,l=()=>{if($.has(G))return;$.add(G),Z.unobserve(G);let Oz=vz(G);V(u,Oz)};if(g>0)setTimeout(l,g);else l()}},{threshold:Q});Z.observe(J)}else j.observe(J)}};var d=null,kz=()=>{if(!d)d=new Set(Zz());return d},tz=(z)=>{let $=kz();if(!$.size)return!1;for(let j of $)if(z===j||z.endsWith(`.${j}`))return!0;return!1},fz=()=>{if(!kz().size)return;document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let J=j.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!tz(Q.hostname))return;j.href=U(J)}catch{}})};var az="buy.stripe.com",ez=(z,$)=>{try{let j=new URL(z);if(j.hostname!==az)return z;if(j.searchParams.has("client_reference_id"))return z;return j.searchParams.set("client_reference_id",$),j.toString()}catch{return z}},Rz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$||!$.href)return;let j=q();if(!j)return;$.href=ez($.href,j)})};var N=(z)=>{let $=q(),j=x();W("payment",{...$&&{visitorUid:$},...j&&{sessionUid:j},...z.amount!=null&&{amount:z.amount},...z.currency&&{currency:z.currency},...z.transactionId&&{transactionId:z.transactionId},...z.email&&{email:z.email},...z.name&&{name:z.name},...z.customerId&&{customerId:z.customerId},...z.isRenewal!=null&&{isRenewal:z.isRenewal},...z.isRefund!=null&&{isRefund:z.isRefund}})};var w=(z)=>{let $=q();W("identify",{...$&&{visitorUid:$},userId:z.userId,name:z.name,email:z.email,image:z.image,profileData:z.profileData})};var z3=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let z=document.createElement("script");z.src=Qz(),z.defer=!0,z.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild(z)},Iz=(z)=>{let[$,...j]=z;switch($){case"identify":w(j[0]);break;case"payment":N(j[0]);break;default:V($,j[0]);break}},n=()=>{if(s())return;if(!Y())return;if(qz())return;if(t()&&!a())return;if(e()&&!zz())return;if($z()&&!jz())return;if(Hz(),Mz(),yz(),Nz(),uz(),bz(),fz(),Rz(),Jz())z3();let z=window,$=z.flowsery?.q||[];for(let j of $)Iz(j);z.flowsery=function(...j){Iz(j)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",n);else n();var $3=async(z)=>{let $=window;return $.__flowsery_config=z,n(),{trackEvent:V,trackPayment:N,trackPageview:M,identify:w,stop:P,reset:R,getTrackingParams:y,buildCrossDomainUrl:U,getVisitorId:q,getSessionId:x}};})();
1
+ (()=>{var{defineProperty:R,getOwnPropertyNames:Az,getOwnPropertyDescriptor:_z}=Object,mz=Object.prototype.hasOwnProperty;function pz(z){return this[z]}var Sz=(z)=>{var $=(o??=new WeakMap).get(z),j;if($)return $;if($=R({},"__esModule",{value:!0}),z&&typeof z==="object"||typeof z==="function"){for(var J of Az(z))if(!mz.call($,J))R($,J,{get:pz.bind(z,J),enumerable:!(j=_z(z,J))||j.enumerable})}return o.set(z,$),$},o;var cz=(z)=>z;function nz(z,$){this[z]=cz.bind(null,$)}var gz=(z,$)=>{for(var j in $)R(z,j,{get:$[j],enumerable:!0,configurable:!0,set:nz.bind($,j)})};var x3={};gz(x3,{trackPayment:()=>D,trackPageview:()=>Y,trackEvent:()=>K,stopHeartbeat:()=>f,reset:()=>C,initFlowsery:()=>B3,identify:()=>v,getVisitorId:()=>q,getTrackingParams:()=>w,getSessionId:()=>W,buildCrossDomainUrl:()=>H});var E=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(z)=>{let $=Math.random()*16|0;return(z==="x"?$:$&3|8).toString(16)})},i=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var x=()=>{return window.__flowsery_config||null},X=()=>{return document.querySelector("script[data-fl-website-id]")},M=()=>{let z=x();if(z)return z.websiteId;return X()?.getAttribute("data-fl-website-id")||""},r=()=>{return x()?.apiUrl??null},t=()=>{let z=x();if(z?.apiBase)return z.apiBase;let $=X(),j=$?.getAttribute("data-api");if(j)return j;let J=$?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},y=()=>{return"https://analytics.flowsery.com/analytics"},h=()=>{let z=x();if(z?.domain)return z.domain;return X()?.getAttribute("data-domain")||location.hostname},L=()=>{let z=x();if(z)return!!z.cookieless;return X()?.hasAttribute("data-cookieless")??!1},dz=new Set(["localhost","127.0.0.1","[::1]"]),a=()=>{return dz.has(location.hostname)||location.hostname.endsWith(".local")},e=()=>{let z=x();if(z)return!!z.local;return X()?.hasAttribute("data-local")??!1},zz=()=>{return location.protocol==="file:"},$z=()=>{let z=x();if(z)return!!z.allowFileProtocol;return X()?.hasAttribute("data-allow-file-protocol")??!1},jz=()=>{try{return window.self!==window.top}catch{return!0}},Jz=()=>{let z=x();if(z)return!!z.allowIframe;return X()?.hasAttribute("data-allow-iframe")??!1};var b=()=>{let z=x();if(z)return!!z.hashMode;return X()?.src?.includes(".hash.js")??!1},Qz=()=>{let z=x();if(z)return!!z.recording;return X()?.hasAttribute("data-recording")??!1},lz=(z)=>{let $=2166136261;for(let j=0;j<z.length;j++)$^=z.charCodeAt(j),$=Math.imul($,16777619);return($>>>0)%100},Zz=(z,$)=>{if(!Number.isFinite($)||$>=100)return!0;if($<=0)return!1;return lz(z)<$},s=(z)=>z==null||!Number.isFinite(z)?100:Math.max(0,Math.min(100,Math.floor(z))),oz=(z,$)=>{if(typeof z==="number")return s(z);let j=X()?.getAttribute($);return s(j!=null&&j!==""?Number(j):null)},qz=()=>oz(x()?.recordingSampleRate,"data-recording-sample");var Wz=()=>{let z=`recording${b()?".hash":""}.js`,$=X()?.src;if($)return $.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,z);return`https://cdn.flowsery.com/${z}`},Fz=()=>{let z=x();if(z?.allowedHostnames)return z.allowedHostnames;let j=X()?.getAttribute("data-allowed-hostnames");return j?j.split(",").map((J)=>J.trim()).filter(Boolean):[]},Gz=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},Bz=()=>{let z=new URLSearchParams(window.location.search),$={};for(let j of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=z.get(j);if(J)$[j]=J}return $};var Xz=r(),sz=61440,Kz=3,iz=1000,Vz=(z,$,j)=>{try{let J=new XMLHttpRequest;if(J.open("POST",z,!0),J.setRequestHeader("Content-Type","application/json"),j>0){let Q=()=>{let Z=Kz-j;setTimeout(()=>Vz(z,$,j-1),iz*Math.pow(2,Z))};J.onreadystatechange=()=>{if(J.readyState!==4)return;if(J.status===0||J.status>=500)Q()},J.onerror=Q}J.send($)}catch(J){}},xz=(z,$,j=!1)=>{Vz(z,$,j?Kz:0)},rz=(z,$)=>Xz??(z?`${$}/api/track`:`${y()}/events`),F=(z,$,j)=>{let J=t(),Q=!!J,Z=rz(Q,J),V=M(),G=JSON.stringify({...$,websiteId:V,type:z}),B=j?.retry??!1;if(Xz||!Q){xz(Z,G,B);return}if(G.length>sz){xz(Z,G,B);return}if(typeof navigator.sendBeacon==="function"){let U=new Blob([G],{type:"application/json"});if(navigator.sendBeacon(Z,U))return}fetch(Z,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0}).catch(()=>{})};var k="_fs_vid",u="_fs_sid",N="_fs_sts",tz=1800000,A="_fs_vid",_="_fs_sid",az=(z)=>{let $=document.cookie.match(new RegExp(`(?:^|; )${z}=([^;]*)`));return $?decodeURIComponent($[1]):null},Yz=(z,$,j)=>{let J=new Date(Date.now()+j*86400000).toUTCString(),Q=h(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${z}=${encodeURIComponent($)};expires=${J};path=/${Z};SameSite=Lax;Secure`},ez=(z)=>{let $=h(),j=$?`;domain=.${$}`:"";document.cookie=`${z}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${j};SameSite=Lax;Secure`},z3=()=>{let z=new URLSearchParams(window.location.search),$=z.get(A)||void 0,j=z.get(_)||void 0;if($||j){z.delete(A),z.delete(_);let J=z.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:$,sid:j}},O=null,Uz=()=>{if(O===null)O=z3();return O},q=()=>{if(L())return;let z=Uz();if(z.vid){Yz(k,z.vid,730);let j=z.vid;return z.vid=void 0,j}let $=az(k);if(!$)$=E(),Yz(k,$,730);return $},W=()=>{if(L())return;let z=Uz();if(z.sid){let Q=z.sid;return sessionStorage.setItem(u,Q),sessionStorage.setItem(N,Date.now().toString()),z.sid=void 0,Q}let $=Date.now(),j=parseInt(sessionStorage.getItem(N)||"0",10),J=sessionStorage.getItem(u);if(!J||$-j>tz)J=E(),sessionStorage.setItem(u,J);return sessionStorage.setItem(N,$.toString()),J},Mz=()=>{if(L())return;sessionStorage.setItem(N,Date.now().toString())},w=()=>{let z=q(),$=W();return{...z&&{_fs_vid:z},...$&&{_fs_sid:$}}},H=(z)=>{let $=w(),j=new URL(z);if($._fs_vid)j.searchParams.set(A,$._fs_vid);if($._fs_sid)j.searchParams.set(_,$._fs_sid);return j.toString()},C=()=>{ez(k),sessionStorage.removeItem(u),sessionStorage.removeItem(N),O=null};var $3=5000,p=0,P=0,I=null,j3=()=>{let z=document.documentElement,$=window.scrollY||z.scrollTop,j=z.scrollHeight-z.clientHeight;if(j<=0)return 100;return Math.min(100,Math.round($/j*100))},m=()=>{p++},Hz=()=>{let z=j3();P=Math.max(P,z);let $=q(),j=W();F("heartbeat",{...$&&{visitorUid:$},...j&&{sessionUid:j},path:location.pathname,scrollDepth:P,isVisible:document.visibilityState==="visible",interactionCount:p}),Mz()},Nz=()=>{p=0,P=0},wz=()=>{document.addEventListener("click",m,{passive:!0}),document.addEventListener("scroll",m,{passive:!0}),document.addEventListener("keydown",m,{passive:!0}),I=setInterval(Hz,$3),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")Hz()})},f=()=>{if(I)clearInterval(I),I=null};var Dz="",vz=!1,Y=()=>{let z=b(),$=z?location.href:location.pathname+location.search;if($===Dz)return;Dz=$,Nz();let j=Bz(),J=q(),Q=W(),Z=z?location.pathname+location.hash:location.pathname;if(F("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:j.utm_source,utmMedium:j.utm_medium,utmCampaign:j.utm_campaign,utmTerm:j.utm_term,utmContent:j.utm_content,ref:j.ref,source:j.source,via:j.via}),!vz){vz=!0;let V=y();if(V){let G=JSON.stringify({type:"geo",websiteId:M(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${V}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},yz=()=>{Y();let{pushState:z,replaceState:$}=history;if(history.pushState=function(...j){z.apply(this,j),Y()},history.replaceState=function(...j){$.apply(this,j),Y()},window.addEventListener("popstate",()=>Y()),b())window.addEventListener("hashchange",()=>Y())};var Lz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j)return;try{let J=new URL(j);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=q(),Z=W();if(!Q||!Z)return;F("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:j})}catch{}})};var J3=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,bz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j||!J3.test(j))return;let J=q(),Q=W();F("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:j}})})};var K=(z,$)=>{let j=q(),J=W();F("goal",{...j&&{visitorUid:j},...J&&{sessionUid:J},name:z,metadata:$})};var S="data-fs-goal",kz="data-fs-goal-",Q3=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(kz)&&J.name!==S){let Q=J.name.slice(kz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},uz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest(`[${S}]`);if(!$)return;let j=$.getAttribute(S);if(!j)return;let J=Q3($);K(j,J)})};var T="data-fs-scroll",Pz="data-fs-scroll-threshold",c="data-fs-scroll-delay",Oz="data-fs-scroll-",Z3=new Set([T,Pz,c]),Cz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(Oz)&&!Z3.has(J.name)){let Q=J.name.slice(Oz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},Iz=()=>{let z=document.querySelectorAll(`[${T}]`);if(!z.length)return;let $=new Set,j=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||$.has(Z))continue;let V=Z.getAttribute(T);if(!V)continue;let G=parseInt(Z.getAttribute(c)||"0",10)||0,B=()=>{if($.has(Z))return;$.add(Z),j.unobserve(Z);let U=Cz(Z);K(V,U)};if(G>0)setTimeout(B,G);else B()}},{threshold:0});for(let J of Array.from(z)){let Q=parseFloat(J.getAttribute(Pz)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((V)=>{for(let G of V){let B=G.target;if(!G.isIntersecting||$.has(B))continue;let U=B.getAttribute(T);if(!U)continue;let d=parseInt(B.getAttribute(c)||"0",10)||0,l=()=>{if($.has(B))return;$.add(B),Z.unobserve(B);let hz=Cz(B);K(U,hz)};if(d>0)setTimeout(l,d);else l()}},{threshold:Q});Z.observe(J)}else j.observe(J)}};var n=null,fz=()=>{if(!n)n=new Set(Fz());return n},q3=(z)=>{let $=fz();if(!$.size)return!1;for(let j of $)if(z===j||z.endsWith(`.${j}`))return!0;return!1},Tz=()=>{if(!fz().size)return;document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let J=j.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!q3(Q.hostname))return;j.href=H(J)}catch{}})};var W3="buy.stripe.com",F3=(z,$)=>{try{let j=new URL(z);if(j.hostname!==W3)return z;if(j.searchParams.has("client_reference_id"))return z;return j.searchParams.set("client_reference_id",$),j.toString()}catch{return z}},Rz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$||!$.href)return;let j=q();if(!j)return;$.href=F3($.href,j)})};var D=(z)=>{let $=q(),j=W();F("payment",{...$&&{visitorUid:$},...j&&{sessionUid:j},...z.amount!=null&&{amount:z.amount},...z.currency&&{currency:z.currency},...z.transactionId&&{transactionId:z.transactionId},...z.email&&{email:z.email},...z.name&&{name:z.name},...z.customerId&&{customerId:z.customerId},...z.isRenewal!=null&&{isRenewal:z.isRenewal},...z.isRefund!=null&&{isRefund:z.isRefund}})};var v=(z)=>{let $=q();F("identify",{...$&&{visitorUid:$},userId:z.userId,name:z.name,email:z.email,image:z.image,profileData:z.profileData})};var G3=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let z=document.createElement("script");z.src=Wz(),z.defer=!0,z.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild(z)},Ez=(z)=>{let[$,...j]=z;switch($){case"identify":v(j[0]);break;case"payment":D(j[0]);break;default:K($,j[0]);break}},g=()=>{if(i())return;if(!M())return;if(Gz())return;if(a()&&!e())return;if(zz()&&!$z())return;if(jz()&&!Jz())return;if(yz(),wz(),Lz(),bz(),uz(),Iz(),Tz(),Rz(),Qz()){let j=W();if(!j||Zz(j,qz()))G3()}let z=window,$=z.flowsery?.q||[];for(let j of $)Ez(j);z.flowsery=function(...j){Ez(j)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",g);else g();var B3=async(z)=>{let $=window;return $.__flowsery_config=z,g(),{trackEvent:K,trackPayment:D,trackPageview:Y,identify:v,stop:f,reset:C,getTrackingParams:w,buildCrossDomainUrl:H,getVisitorId:q,getSessionId:W}};})();
package/dist/main.js CHANGED
@@ -1 +1 @@
1
- (()=>{var{defineProperty:T,getOwnPropertyNames:Pz,getOwnPropertyDescriptor:Cz}=Object,Tz=Object.prototype.hasOwnProperty;function Ez(z){return this[z]}var hz=(z)=>{var $=(o??=new WeakMap).get(z),j;if($)return $;if($=T({},"__esModule",{value:!0}),z&&typeof z==="object"||typeof z==="function"){for(var J of Pz(z))if(!Tz.call($,J))T($,J,{get:Ez.bind(z,J),enumerable:!(j=Cz(z,J))||j.enumerable})}return o.set(z,$),$},o;var Az=(z)=>z;function _z(z,$){this[z]=Az.bind(null,$)}var pz=(z,$)=>{for(var j in $)T(z,j,{get:$[j],enumerable:!0,configurable:!0,set:_z.bind($,j)})};var j3={};pz(j3,{trackPayment:()=>N,trackPageview:()=>M,trackEvent:()=>V,stopHeartbeat:()=>P,reset:()=>R,initFlowsery:()=>$3,identify:()=>w,getVisitorId:()=>q,getTrackingParams:()=>y,getSessionId:()=>x,buildCrossDomainUrl:()=>U});var E=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(z)=>{let $=Math.random()*16|0;return(z==="x"?$:$&3|8).toString(16)})},s=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var X=()=>{return window.__flowsery_config||null},F=()=>{return document.querySelector("script[data-fl-website-id]")},Y=()=>{let z=X();if(z)return z.websiteId;return F()?.getAttribute("data-fl-website-id")||""},r=()=>{return X()?.apiUrl??null},i=()=>{let z=X();if(z?.apiBase)return z.apiBase;let $=F(),j=$?.getAttribute("data-api");if(j)return j;let J=$?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},D=()=>{return"https://analytics.flowsery.com/analytics"},h=()=>{let z=X();if(z?.domain)return z.domain;return F()?.getAttribute("data-domain")||location.hostname},v=()=>{let z=X();if(z)return!!z.cookieless;return F()?.hasAttribute("data-cookieless")??!1},mz=new Set(["localhost","127.0.0.1","[::1]"]),t=()=>{return mz.has(location.hostname)||location.hostname.endsWith(".local")},a=()=>{let z=X();if(z)return!!z.local;return F()?.hasAttribute("data-local")??!1},e=()=>{return location.protocol==="file:"},zz=()=>{let z=X();if(z)return!!z.allowFileProtocol;return F()?.hasAttribute("data-allow-file-protocol")??!1},$z=()=>{try{return window.self!==window.top}catch{return!0}},jz=()=>{let z=X();if(z)return!!z.allowIframe;return F()?.hasAttribute("data-allow-iframe")??!1};var L=()=>{let z=X();if(z)return!!z.hashMode;return F()?.src?.includes(".hash.js")??!1},Jz=()=>{let z=X();if(z)return!!z.recording;return F()?.hasAttribute("data-recording")??!1},Qz=()=>{let z=`recording${L()?".hash":""}.js`,$=F()?.src;if($)return $.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,z);return`https://cdn.flowsery.com/${z}`},Zz=()=>{let z=X();if(z?.allowedHostnames)return z.allowedHostnames;let j=F()?.getAttribute("data-allowed-hostnames");return j?j.split(",").map((J)=>J.trim()).filter(Boolean):[]},qz=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},xz=()=>{let z=new URLSearchParams(window.location.search),$={};for(let j of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=z.get(j);if(J)$[j]=J}return $};var Wz=r(),Sz=61440,Bz=(z,$)=>{try{let j=new XMLHttpRequest;j.open("POST",z,!0),j.setRequestHeader("Content-Type","application/json"),j.send($)}catch(j){}},W=(z,$)=>{let j=i(),J=!!j,Q=Wz??(J?`${j}/api/track`:`${D()}/events`),Z=Y(),B=JSON.stringify({...$,websiteId:Z,type:z});if(Wz||!J){Bz(Q,B);return}if(B.length>Sz){Bz(Q,B);return}if(typeof navigator.sendBeacon==="function"){let K=new Blob([B],{type:"application/json"});if(navigator.sendBeacon(Q,K))return}fetch(Q,{method:"POST",headers:{"Content-Type":"application/json"},body:B,keepalive:!0}).catch(()=>{})};var b="_fs_vid",k="_fs_sid",H="_fs_sts",cz=1800000,A="_fs_vid",_="_fs_sid",dz=(z)=>{let $=document.cookie.match(new RegExp(`(?:^|; )${z}=([^;]*)`));return $?decodeURIComponent($[1]):null},Xz=(z,$,j)=>{let J=new Date(Date.now()+j*86400000).toUTCString(),Q=h(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${z}=${encodeURIComponent($)};expires=${J};path=/${Z};SameSite=Lax;Secure`},nz=(z)=>{let $=h(),j=$?`;domain=.${$}`:"";document.cookie=`${z}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${j};SameSite=Lax;Secure`},gz=()=>{let z=new URLSearchParams(window.location.search),$=z.get(A)||void 0,j=z.get(_)||void 0;if($||j){z.delete(A),z.delete(_);let J=z.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:$,sid:j}},f=null,Fz=()=>{if(f===null)f=gz();return f},q=()=>{if(v())return;let z=Fz();if(z.vid){Xz(b,z.vid,730);let j=z.vid;return z.vid=void 0,j}let $=dz(b);if(!$)$=E(),Xz(b,$,730);return $},x=()=>{if(v())return;let z=Fz();if(z.sid){let Q=z.sid;return sessionStorage.setItem(k,Q),sessionStorage.setItem(H,Date.now().toString()),z.sid=void 0,Q}let $=Date.now(),j=parseInt(sessionStorage.getItem(H)||"0",10),J=sessionStorage.getItem(k);if(!J||$-j>cz)J=E(),sessionStorage.setItem(k,J);return sessionStorage.setItem(H,$.toString()),J},Gz=()=>{if(v())return;sessionStorage.setItem(H,Date.now().toString())},y=()=>{let z=q(),$=x();return{...z&&{_fs_vid:z},...$&&{_fs_sid:$}}},U=(z)=>{let $=y(),j=new URL(z);if($._fs_vid)j.searchParams.set(A,$._fs_vid);if($._fs_sid)j.searchParams.set(_,$._fs_sid);return j.toString()},R=()=>{nz(b),sessionStorage.removeItem(k),sessionStorage.removeItem(H),f=null};var lz=5000,m=0,I=0,O=null,oz=()=>{let z=document.documentElement,$=window.scrollY||z.scrollTop,j=z.scrollHeight-z.clientHeight;if(j<=0)return 100;return Math.min(100,Math.round($/j*100))},p=()=>{m++},Vz=()=>{let z=oz();I=Math.max(I,z);let $=q(),j=x();W("heartbeat",{...$&&{visitorUid:$},...j&&{sessionUid:j},path:location.pathname,scrollDepth:I,isVisible:document.visibilityState==="visible",interactionCount:m}),Gz()},Kz=()=>{m=0,I=0},Mz=()=>{document.addEventListener("click",p,{passive:!0}),document.addEventListener("scroll",p,{passive:!0}),document.addEventListener("keydown",p,{passive:!0}),O=setInterval(Vz,lz),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")Vz()})},P=()=>{if(O)clearInterval(O),O=null};var Yz="",Uz=!1,M=()=>{let z=L(),$=z?location.href:location.pathname+location.search;if($===Yz)return;Yz=$,Kz();let j=xz(),J=q(),Q=x(),Z=z?location.pathname+location.hash:location.pathname;if(W("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:j.utm_source,utmMedium:j.utm_medium,utmCampaign:j.utm_campaign,utmTerm:j.utm_term,utmContent:j.utm_content,ref:j.ref,source:j.source,via:j.via}),!Uz){Uz=!0;let B=D();if(B){let K=JSON.stringify({type:"geo",websiteId:Y(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${B}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:K,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},Hz=()=>{M();let{pushState:z,replaceState:$}=history;if(history.pushState=function(...j){z.apply(this,j),M()},history.replaceState=function(...j){$.apply(this,j),M()},window.addEventListener("popstate",()=>M()),L())window.addEventListener("hashchange",()=>M())};var yz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j)return;try{let J=new URL(j);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=q(),Z=x();if(!Q||!Z)return;W("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:j})}catch{}})};var sz=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,Nz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j||!sz.test(j))return;let J=q(),Q=x();W("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:j}})})};var V=(z,$)=>{let j=q(),J=x();W("goal",{...j&&{visitorUid:j},...J&&{sessionUid:J},name:z,metadata:$})};var S="data-fs-goal",wz="data-fs-goal-",rz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(wz)&&J.name!==S){let Q=J.name.slice(wz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},uz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest(`[${S}]`);if(!$)return;let j=$.getAttribute(S);if(!j)return;let J=rz($);V(j,J)})};var C="data-fs-scroll",Lz="data-fs-scroll-threshold",c="data-fs-scroll-delay",Dz="data-fs-scroll-",iz=new Set([C,Lz,c]),vz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(Dz)&&!iz.has(J.name)){let Q=J.name.slice(Dz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},bz=()=>{let z=document.querySelectorAll(`[${C}]`);if(!z.length)return;let $=new Set,j=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||$.has(Z))continue;let B=Z.getAttribute(C);if(!B)continue;let K=parseInt(Z.getAttribute(c)||"0",10)||0,G=()=>{if($.has(Z))return;$.add(Z),j.unobserve(Z);let u=vz(Z);V(B,u)};if(K>0)setTimeout(G,K);else G()}},{threshold:0});for(let J of Array.from(z)){let Q=parseFloat(J.getAttribute(Lz)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((B)=>{for(let K of B){let G=K.target;if(!K.isIntersecting||$.has(G))continue;let u=G.getAttribute(C);if(!u)continue;let g=parseInt(G.getAttribute(c)||"0",10)||0,l=()=>{if($.has(G))return;$.add(G),Z.unobserve(G);let Oz=vz(G);V(u,Oz)};if(g>0)setTimeout(l,g);else l()}},{threshold:Q});Z.observe(J)}else j.observe(J)}};var d=null,kz=()=>{if(!d)d=new Set(Zz());return d},tz=(z)=>{let $=kz();if(!$.size)return!1;for(let j of $)if(z===j||z.endsWith(`.${j}`))return!0;return!1},fz=()=>{if(!kz().size)return;document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let J=j.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!tz(Q.hostname))return;j.href=U(J)}catch{}})};var az="buy.stripe.com",ez=(z,$)=>{try{let j=new URL(z);if(j.hostname!==az)return z;if(j.searchParams.has("client_reference_id"))return z;return j.searchParams.set("client_reference_id",$),j.toString()}catch{return z}},Rz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$||!$.href)return;let j=q();if(!j)return;$.href=ez($.href,j)})};var N=(z)=>{let $=q(),j=x();W("payment",{...$&&{visitorUid:$},...j&&{sessionUid:j},...z.amount!=null&&{amount:z.amount},...z.currency&&{currency:z.currency},...z.transactionId&&{transactionId:z.transactionId},...z.email&&{email:z.email},...z.name&&{name:z.name},...z.customerId&&{customerId:z.customerId},...z.isRenewal!=null&&{isRenewal:z.isRenewal},...z.isRefund!=null&&{isRefund:z.isRefund}})};var w=(z)=>{let $=q();W("identify",{...$&&{visitorUid:$},userId:z.userId,name:z.name,email:z.email,image:z.image,profileData:z.profileData})};var z3=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let z=document.createElement("script");z.src=Qz(),z.defer=!0,z.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild(z)},Iz=(z)=>{let[$,...j]=z;switch($){case"identify":w(j[0]);break;case"payment":N(j[0]);break;default:V($,j[0]);break}},n=()=>{if(s())return;if(!Y())return;if(qz())return;if(t()&&!a())return;if(e()&&!zz())return;if($z()&&!jz())return;if(Hz(),Mz(),yz(),Nz(),uz(),bz(),fz(),Rz(),Jz())z3();let z=window,$=z.flowsery?.q||[];for(let j of $)Iz(j);z.flowsery=function(...j){Iz(j)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",n);else n();var $3=async(z)=>{let $=window;return $.__flowsery_config=z,n(),{trackEvent:V,trackPayment:N,trackPageview:M,identify:w,stop:P,reset:R,getTrackingParams:y,buildCrossDomainUrl:U,getVisitorId:q,getSessionId:x}};})();
1
+ (()=>{var{defineProperty:R,getOwnPropertyNames:Az,getOwnPropertyDescriptor:_z}=Object,mz=Object.prototype.hasOwnProperty;function pz(z){return this[z]}var Sz=(z)=>{var $=(o??=new WeakMap).get(z),j;if($)return $;if($=R({},"__esModule",{value:!0}),z&&typeof z==="object"||typeof z==="function"){for(var J of Az(z))if(!mz.call($,J))R($,J,{get:pz.bind(z,J),enumerable:!(j=_z(z,J))||j.enumerable})}return o.set(z,$),$},o;var cz=(z)=>z;function nz(z,$){this[z]=cz.bind(null,$)}var gz=(z,$)=>{for(var j in $)R(z,j,{get:$[j],enumerable:!0,configurable:!0,set:nz.bind($,j)})};var x3={};gz(x3,{trackPayment:()=>D,trackPageview:()=>Y,trackEvent:()=>K,stopHeartbeat:()=>f,reset:()=>C,initFlowsery:()=>B3,identify:()=>v,getVisitorId:()=>q,getTrackingParams:()=>w,getSessionId:()=>W,buildCrossDomainUrl:()=>H});var E=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(z)=>{let $=Math.random()*16|0;return(z==="x"?$:$&3|8).toString(16)})},i=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var x=()=>{return window.__flowsery_config||null},X=()=>{return document.querySelector("script[data-fl-website-id]")},M=()=>{let z=x();if(z)return z.websiteId;return X()?.getAttribute("data-fl-website-id")||""},r=()=>{return x()?.apiUrl??null},t=()=>{let z=x();if(z?.apiBase)return z.apiBase;let $=X(),j=$?.getAttribute("data-api");if(j)return j;let J=$?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},y=()=>{return"https://analytics.flowsery.com/analytics"},h=()=>{let z=x();if(z?.domain)return z.domain;return X()?.getAttribute("data-domain")||location.hostname},L=()=>{let z=x();if(z)return!!z.cookieless;return X()?.hasAttribute("data-cookieless")??!1},dz=new Set(["localhost","127.0.0.1","[::1]"]),a=()=>{return dz.has(location.hostname)||location.hostname.endsWith(".local")},e=()=>{let z=x();if(z)return!!z.local;return X()?.hasAttribute("data-local")??!1},zz=()=>{return location.protocol==="file:"},$z=()=>{let z=x();if(z)return!!z.allowFileProtocol;return X()?.hasAttribute("data-allow-file-protocol")??!1},jz=()=>{try{return window.self!==window.top}catch{return!0}},Jz=()=>{let z=x();if(z)return!!z.allowIframe;return X()?.hasAttribute("data-allow-iframe")??!1};var b=()=>{let z=x();if(z)return!!z.hashMode;return X()?.src?.includes(".hash.js")??!1},Qz=()=>{let z=x();if(z)return!!z.recording;return X()?.hasAttribute("data-recording")??!1},lz=(z)=>{let $=2166136261;for(let j=0;j<z.length;j++)$^=z.charCodeAt(j),$=Math.imul($,16777619);return($>>>0)%100},Zz=(z,$)=>{if(!Number.isFinite($)||$>=100)return!0;if($<=0)return!1;return lz(z)<$},s=(z)=>z==null||!Number.isFinite(z)?100:Math.max(0,Math.min(100,Math.floor(z))),oz=(z,$)=>{if(typeof z==="number")return s(z);let j=X()?.getAttribute($);return s(j!=null&&j!==""?Number(j):null)},qz=()=>oz(x()?.recordingSampleRate,"data-recording-sample");var Wz=()=>{let z=`recording${b()?".hash":""}.js`,$=X()?.src;if($)return $.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,z);return`https://cdn.flowsery.com/${z}`},Fz=()=>{let z=x();if(z?.allowedHostnames)return z.allowedHostnames;let j=X()?.getAttribute("data-allowed-hostnames");return j?j.split(",").map((J)=>J.trim()).filter(Boolean):[]},Gz=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},Bz=()=>{let z=new URLSearchParams(window.location.search),$={};for(let j of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=z.get(j);if(J)$[j]=J}return $};var Xz=r(),sz=61440,Kz=3,iz=1000,Vz=(z,$,j)=>{try{let J=new XMLHttpRequest;if(J.open("POST",z,!0),J.setRequestHeader("Content-Type","application/json"),j>0){let Q=()=>{let Z=Kz-j;setTimeout(()=>Vz(z,$,j-1),iz*Math.pow(2,Z))};J.onreadystatechange=()=>{if(J.readyState!==4)return;if(J.status===0||J.status>=500)Q()},J.onerror=Q}J.send($)}catch(J){}},xz=(z,$,j=!1)=>{Vz(z,$,j?Kz:0)},rz=(z,$)=>Xz??(z?`${$}/api/track`:`${y()}/events`),F=(z,$,j)=>{let J=t(),Q=!!J,Z=rz(Q,J),V=M(),G=JSON.stringify({...$,websiteId:V,type:z}),B=j?.retry??!1;if(Xz||!Q){xz(Z,G,B);return}if(G.length>sz){xz(Z,G,B);return}if(typeof navigator.sendBeacon==="function"){let U=new Blob([G],{type:"application/json"});if(navigator.sendBeacon(Z,U))return}fetch(Z,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0}).catch(()=>{})};var k="_fs_vid",u="_fs_sid",N="_fs_sts",tz=1800000,A="_fs_vid",_="_fs_sid",az=(z)=>{let $=document.cookie.match(new RegExp(`(?:^|; )${z}=([^;]*)`));return $?decodeURIComponent($[1]):null},Yz=(z,$,j)=>{let J=new Date(Date.now()+j*86400000).toUTCString(),Q=h(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${z}=${encodeURIComponent($)};expires=${J};path=/${Z};SameSite=Lax;Secure`},ez=(z)=>{let $=h(),j=$?`;domain=.${$}`:"";document.cookie=`${z}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${j};SameSite=Lax;Secure`},z3=()=>{let z=new URLSearchParams(window.location.search),$=z.get(A)||void 0,j=z.get(_)||void 0;if($||j){z.delete(A),z.delete(_);let J=z.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:$,sid:j}},O=null,Uz=()=>{if(O===null)O=z3();return O},q=()=>{if(L())return;let z=Uz();if(z.vid){Yz(k,z.vid,730);let j=z.vid;return z.vid=void 0,j}let $=az(k);if(!$)$=E(),Yz(k,$,730);return $},W=()=>{if(L())return;let z=Uz();if(z.sid){let Q=z.sid;return sessionStorage.setItem(u,Q),sessionStorage.setItem(N,Date.now().toString()),z.sid=void 0,Q}let $=Date.now(),j=parseInt(sessionStorage.getItem(N)||"0",10),J=sessionStorage.getItem(u);if(!J||$-j>tz)J=E(),sessionStorage.setItem(u,J);return sessionStorage.setItem(N,$.toString()),J},Mz=()=>{if(L())return;sessionStorage.setItem(N,Date.now().toString())},w=()=>{let z=q(),$=W();return{...z&&{_fs_vid:z},...$&&{_fs_sid:$}}},H=(z)=>{let $=w(),j=new URL(z);if($._fs_vid)j.searchParams.set(A,$._fs_vid);if($._fs_sid)j.searchParams.set(_,$._fs_sid);return j.toString()},C=()=>{ez(k),sessionStorage.removeItem(u),sessionStorage.removeItem(N),O=null};var $3=5000,p=0,P=0,I=null,j3=()=>{let z=document.documentElement,$=window.scrollY||z.scrollTop,j=z.scrollHeight-z.clientHeight;if(j<=0)return 100;return Math.min(100,Math.round($/j*100))},m=()=>{p++},Hz=()=>{let z=j3();P=Math.max(P,z);let $=q(),j=W();F("heartbeat",{...$&&{visitorUid:$},...j&&{sessionUid:j},path:location.pathname,scrollDepth:P,isVisible:document.visibilityState==="visible",interactionCount:p}),Mz()},Nz=()=>{p=0,P=0},wz=()=>{document.addEventListener("click",m,{passive:!0}),document.addEventListener("scroll",m,{passive:!0}),document.addEventListener("keydown",m,{passive:!0}),I=setInterval(Hz,$3),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")Hz()})},f=()=>{if(I)clearInterval(I),I=null};var Dz="",vz=!1,Y=()=>{let z=b(),$=z?location.href:location.pathname+location.search;if($===Dz)return;Dz=$,Nz();let j=Bz(),J=q(),Q=W(),Z=z?location.pathname+location.hash:location.pathname;if(F("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:j.utm_source,utmMedium:j.utm_medium,utmCampaign:j.utm_campaign,utmTerm:j.utm_term,utmContent:j.utm_content,ref:j.ref,source:j.source,via:j.via}),!vz){vz=!0;let V=y();if(V){let G=JSON.stringify({type:"geo",websiteId:M(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${V}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},yz=()=>{Y();let{pushState:z,replaceState:$}=history;if(history.pushState=function(...j){z.apply(this,j),Y()},history.replaceState=function(...j){$.apply(this,j),Y()},window.addEventListener("popstate",()=>Y()),b())window.addEventListener("hashchange",()=>Y())};var Lz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j)return;try{let J=new URL(j);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=q(),Z=W();if(!Q||!Z)return;F("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:j})}catch{}})};var J3=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,bz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j||!J3.test(j))return;let J=q(),Q=W();F("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:j}})})};var K=(z,$)=>{let j=q(),J=W();F("goal",{...j&&{visitorUid:j},...J&&{sessionUid:J},name:z,metadata:$})};var S="data-fs-goal",kz="data-fs-goal-",Q3=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(kz)&&J.name!==S){let Q=J.name.slice(kz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},uz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest(`[${S}]`);if(!$)return;let j=$.getAttribute(S);if(!j)return;let J=Q3($);K(j,J)})};var T="data-fs-scroll",Pz="data-fs-scroll-threshold",c="data-fs-scroll-delay",Oz="data-fs-scroll-",Z3=new Set([T,Pz,c]),Cz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(Oz)&&!Z3.has(J.name)){let Q=J.name.slice(Oz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},Iz=()=>{let z=document.querySelectorAll(`[${T}]`);if(!z.length)return;let $=new Set,j=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||$.has(Z))continue;let V=Z.getAttribute(T);if(!V)continue;let G=parseInt(Z.getAttribute(c)||"0",10)||0,B=()=>{if($.has(Z))return;$.add(Z),j.unobserve(Z);let U=Cz(Z);K(V,U)};if(G>0)setTimeout(B,G);else B()}},{threshold:0});for(let J of Array.from(z)){let Q=parseFloat(J.getAttribute(Pz)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((V)=>{for(let G of V){let B=G.target;if(!G.isIntersecting||$.has(B))continue;let U=B.getAttribute(T);if(!U)continue;let d=parseInt(B.getAttribute(c)||"0",10)||0,l=()=>{if($.has(B))return;$.add(B),Z.unobserve(B);let hz=Cz(B);K(U,hz)};if(d>0)setTimeout(l,d);else l()}},{threshold:Q});Z.observe(J)}else j.observe(J)}};var n=null,fz=()=>{if(!n)n=new Set(Fz());return n},q3=(z)=>{let $=fz();if(!$.size)return!1;for(let j of $)if(z===j||z.endsWith(`.${j}`))return!0;return!1},Tz=()=>{if(!fz().size)return;document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let J=j.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!q3(Q.hostname))return;j.href=H(J)}catch{}})};var W3="buy.stripe.com",F3=(z,$)=>{try{let j=new URL(z);if(j.hostname!==W3)return z;if(j.searchParams.has("client_reference_id"))return z;return j.searchParams.set("client_reference_id",$),j.toString()}catch{return z}},Rz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$||!$.href)return;let j=q();if(!j)return;$.href=F3($.href,j)})};var D=(z)=>{let $=q(),j=W();F("payment",{...$&&{visitorUid:$},...j&&{sessionUid:j},...z.amount!=null&&{amount:z.amount},...z.currency&&{currency:z.currency},...z.transactionId&&{transactionId:z.transactionId},...z.email&&{email:z.email},...z.name&&{name:z.name},...z.customerId&&{customerId:z.customerId},...z.isRenewal!=null&&{isRenewal:z.isRenewal},...z.isRefund!=null&&{isRefund:z.isRefund}})};var v=(z)=>{let $=q();F("identify",{...$&&{visitorUid:$},userId:z.userId,name:z.name,email:z.email,image:z.image,profileData:z.profileData})};var G3=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let z=document.createElement("script");z.src=Wz(),z.defer=!0,z.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild(z)},Ez=(z)=>{let[$,...j]=z;switch($){case"identify":v(j[0]);break;case"payment":D(j[0]);break;default:K($,j[0]);break}},g=()=>{if(i())return;if(!M())return;if(Gz())return;if(a()&&!e())return;if(zz()&&!$z())return;if(jz()&&!Jz())return;if(yz(),wz(),Lz(),bz(),uz(),Iz(),Tz(),Rz(),Qz()){let j=W();if(!j||Zz(j,qz()))G3()}let z=window,$=z.flowsery?.q||[];for(let j of $)Ez(j);z.flowsery=function(...j){Ez(j)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",g);else g();var B3=async(z)=>{let $=window;return $.__flowsery_config=z,g(),{trackEvent:K,trackPayment:D,trackPageview:Y,identify:v,stop:f,reset:C,getTrackingParams:w,buildCrossDomainUrl:H,getVisitorId:q,getSessionId:W}};})();