@picked/analytics 0.0.1-dev.1763526535807 → 0.0.1-dev.1763596411740

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.
@@ -0,0 +1 @@
1
+ "use strict";const h=require("@snowplow/browser-tracker"),tt=require("@snowplow/browser-plugin-button-click-tracking"),St=require("@snowplow/browser-plugin-performance-navigation-timing"),et=require("@snowplow/browser-plugin-error-tracking"),Vt=require("@snowplow/browser-plugin-web-vitals"),P=require("@picked/client");function nt(t,e){return`iglu:dev.pckd/${t}/jsonschema/${e}`}function g(t,...e){}function $(t,...e){}function l(t,e,o={}){return{event:{schema:nt("event","1-0-0"),data:{type:t,meta:o}},context:e.filter(i=>i!==void 0)}}function n(t,e,o){return{schema:nt(t,e),data:o}}function u(t,e){return(o,i)=>{const a=e(o,i);h.trackSelfDescribingEvent(a)}}function D(t,e,o={passive:!0}){const i=new WeakMap;return(a,s)=>{let r=i.get(a);if(r||(r=new Set,i.set(a,r)),r.has(t))return;function c(E){const C=s();e({event:E,analyticsContext:C})}a.addEventListener(t,c,o),r.add(t)}}function Yt(t,e){const o=new Set;return i=>{if(o.has(t)||!P.supportsDocument())return;function a(s){const r=i();e({event:s,analyticsContext:r})}document.addEventListener(t,a,{passive:!0}),o.add(t)}}function y(t,e){const o=new Set;return i=>{if(o.has(t)||!P.supportsWindow())return;function a(s){const r=i();e({event:s,analyticsContext:r})}window.addEventListener(t,a,{passive:!0}),o.add(t)}}function f(t){var o;return{items:((o=t.features)==null?void 0:o.map(({feature:i,name:a,key:s,bucket:r})=>({ab_feature:i,ab_name:a,ab_key:s,ab_bucket:r})))||[]}}const b="unknown";function d(t){var i;const e=qt(),o={id:t.sessionId||null};return e&&(o.gaid=e),(i=t.shopifySession)!=null&&i.clientId&&(o.shopify_client_id=t.shopifySession.clientId),o}function S(t){if(t.fields)return{items:t.fields.map(({id:e,type:o,label:i,options:a})=>({id:e,type:o,label:i,options:a}))}}function G(t){if(t.responses)return{items:t.responses.map(({fieldId:e,value:o})=>({field_id:e,values:Array.isArray(o)?o.map(i=>({value:i})):[{value:o}]}))}}function x(t,e=!1){const{step:o}=t;if(o)return{id:o.id,title:o.label};if(e)return $('"step" is required for this event',t),{id:b,title:b}}function Bt(t,e=!1){const{productList:o}=t;if(o){const i={};"title"in o&&o.title&&Object.assign(i,{title:o.title});const a="items"in o?o.items:o;return Object.assign(i,{items:a.map(s=>({item_id:s.itemId,item_name:s.itemName,affiliation:s.affiliation,coupon:s.coupon,currency:s.currency,creative_name:s.creativeName,creative_slot:s.creativeSlot,discount:w(s.discount),index:w(s.index),item_brand:s.itemBrand,item_category:s.itemCategory,item_category2:s.itemCategory2,item_category3:s.itemCategory3,item_category4:s.itemCategory4,item_category5:s.itemCategory5,item_list_id:s.itemListId,item_list_name:s.itemListName,item_variant:s.itemVariant,location_id:s.locationId,price:w(s.price),promotion_id:s.promotionId,promotion_name:s.promotionName,quantity:w(s.quantity),in_stock:s.inStock}))}),i}if(e)return $('"productList" is required for this event',t),{}}function p(t,e=!1){const{experience:o}=t;if(o)return{id:o.id,title:o.title};if(e)return $('"experience" is required for this event',t),{id:b,title:b}}function U(t,e=!1){const{exception:o}=t;if(o)return typeof o=="string"?{reason:o}:{reason:o.systemMessage};if(e)return $('"exception" is required for this event',t),{reason:b}}function V(t){const{form:e}=t;return e?{id:e.id,title:e.title}:($('"form" is required for this event',t),{id:b,title:b})}function Ft(t){const{modal:e}=t;return e?{id:e.id,title:e.title}:($('"modal" is required for this event',t),{id:b,title:b})}function Y(t,e=300){let o;return function(...i){clearTimeout(o),o=setTimeout(()=>t.apply(this,i),e)}}function w(t){if(typeof t=="number")return t;if(typeof t!="string")return;const e=parseFloat(t);if(!isNaN(e))return e}function qt(){if(!P.supportsDocument()||!P.supportsCookies())return null;const t="_ga=",e=document.cookie?document.cookie.split(";"):[];for(const o of e){const i=o.trim();if(i.startsWith(t)){const s=i.substring(t.length).split(".");if(s.length>2)return s.slice(2).join(".")}}}function Ht(t){const e=[];return t.trackErrors&&(g(),e.push(et.ErrorTrackingPlugin())),t.trackVitals&&(g(),e.push(Vt.WebVitalsPlugin())),t.trackPerformance&&(g(),e.push(St.PerformanceNavigationTimingPlugin())),(t.trackButtonClickAllowList||t.trackButtonClickFilter)&&e.push(tt.ButtonClickTrackingPlugin()),e}function At(t){t.trackActivity&&!t.trackActivityCallback&&(g(),h.enableActivityTracking({minimumVisitLength:30,heartbeatDelay:10})),t.trackActivity&&t.trackActivityCallback&&(g(),h.enableActivityTrackingCallback({minimumVisitLength:30,heartbeatDelay:10,callback:t.trackActivityCallback})),(t.trackButtonClickAllowList||t.trackButtonClickFilter)&&(g(),tt.enableButtonClickTracking({filter:t.trackButtonClickAllowList?{allowlist:t.trackButtonClickAllowList}:t.trackButtonClickFilter})),t.trackErrors&&(g(),et.enableErrorTracking())}function Rt({organizationId:t,projectId:e,cvlyX:o,collectorUrl:i="evnts.pckd.dev",appId:a="picked-analytics",trackVitals:s=!0,trackPerformance:r=!0,trackWebPage:c=!0,trackSessions:E=!0,trackBrowser:C=!0,trackActivity:$t=!0,trackErrors:yt=!0,trackActivityCallback:ht,trackButtonClickAllowList:wt}){g();const I={trackVitals:s,trackErrors:yt,trackActivity:$t,trackPerformance:r,trackActivityCallback:ht,trackButtonClickAllowList:wt},Nt={appId:a,platform:"web",contexts:{webPage:c,session:E,browser:C||!1},plugins:Ht(I)},Pt=h.newTracker(a,i,Nt);return Ot({organizationId:t,projectId:e,cvlyX:o}),At(I),Pt}function Ot({organizationId:t,projectId:e,cvlyX:o}){if(!t||!e)throw new Error("bindGlobalContext: Both organizationId and projectId are required");const i=[];i.push(n("app","1-0-0",{organization_id:t,project_id:e})),o&&i.push(n("cvly_x","1-0-1",{vercel_deployment_id:o.vercelDeploymentId,vercel_env:o.vercelEnv,vercel_url:o.vercelUrl})),h.addGlobalContexts(i)}const ot="app_close";function Wt(t,e){const o=f(t),i=d(t),a=p(t),s=x(t);return l(ot,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const jt=u(ot,Wt),st="app_load";function Mt(t,e){const o=f(t),i=d(t),a=p(t),s=x(t);return l(st,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Gt=u(st,Mt),at="app_open";function Ut(t,e){const o=f(t),i=d(t),a=p(t),s=x(t);return l(at,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const It=u(at,Ut),it="experience_load";function zt(t,e){const o=f(t),i=d(t),a=p(t,!0),s=x(t);return l(it,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("experience","1-0-1",a),s?n("step","1-0-0",s):void 0],e)}const Kt=u(it,zt),rt="field_validation_error";function Xt(t,e){const o=f(t),i=d(t),a=V(t),s=U(t,!0),r=p(t),c=x(t);return l(rt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("exception","1-0-0",s),n("form","1-0-0",a),r&&n("experience","1-0-1",r),c&&n("step","1-0-0",c)],e)}const Jt=u(rt,Xt),ct="form_submit";function Qt(t,e){const o=f(t),i=d(t),a=V(t),s=p(t),r=x(t);return l(ct,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("form","1-0-0",a),s&&n("experience","1-0-1",s),r&&n("step","1-0-0",r)],e)}const Zt=u(ct,Qt),lt="form_submit_error";function te(t,e){const o=f(t),i=d(t),a=V(t),s=U(t,!0),r=p(t),c=x(t);return l(lt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("form","1-0-0",a),n("exception","1-0-0",s),r&&n("experience","1-0-1",r),c&&n("step","1-0-0",c)],e)}const ee=u(lt,te),ut="form_submit_success";function ne(t,e){const o=f(t),i=d(t),a=V(t),s=p(t),r=x(t);return l(ut,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("form","1-0-0",a),s&&n("experience","1-0-1",s),r&&n("step","1-0-0",r)],e)}const oe=u(ut,ne),ft="step_enter";function se(t,e){const o=f(t),i=d(t),a=p(t),s=x(t,!0),r=S(t);return l(ft,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("step","1-0-0",s),r&&n("field_list","1-0-0",r),a&&n("experience","1-0-1",a)],e)}const ae=u(ft,se),dt="step_submit";function ie(t,e){const o=f(t),i=d(t),a=p(t),s=x(t,!0),r=G(t),c=S(t);return l(dt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("step","1-0-0",s),c&&n("field_list","1-0-0",c),r&&n("response_list","1-0-0",r),a&&n("experience","1-0-1",a)],e)}const re=u(dt,ie),xt="step_submit_success";function ce(t,e){const o=f(t),i=d(t),a=p(t),s=x(t,!0),r=S(t),c=G(t);return l(xt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("step","1-0-0",s),r&&n("field_list","1-0-0",r),c&&n("response_list","1-0-0",c),a&&n("experience","1-0-1",a)],e)}const le=u(xt,ce),pt="feature_decide";function ue(t,e){const o=f(t),i=d(t),a=p(t),s=x(t);return l(pt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const fe=u(pt,ue);function _(t){return t instanceof Element}function k(t){const e=["a","button","input","select","textarea","details","summary","label","form","fieldset","legend","optgroup","option","output","datalist","dialog","menu","menuitem","iframe","audio","video","embed","object","canvas"].join(", ");return _(t)?t.matches(e)?t:t.closest(e):null}function v(t){if(t instanceof HTMLSelectElement){const e=t.selectedIndex||0,o=t.options[e];return(o==null?void 0:o.text)??""}return"innerText"in t&&typeof t.innerText=="string"?t.innerText:t.textContent}function T(t){const e=t.getAttribute("aria-label");if(e)return e;const o=t.getAttribute("aria-labelledby");if(o){const a=document.getElementById(o);if(a){const s=v(a);if(s)return s}}if("id"in t&&t.id){const a=document.querySelector(`label[for="${t.id}"]`);if(a){const s=v(a);if(s)return s}}let i=t.parentElement;for(;i;){if(i.tagName.toLowerCase()==="label"){const a=v(i);if(a)return a}i=i.parentElement}if(t instanceof HTMLInputElement&&"labels"in t&&t.labels){const a=Array.from(t.labels).map(s=>v(s)).filter(Boolean).join(" ");if(a)return a}return"placeholder"in t&&typeof t.placeholder=="string"?t.placeholder:null}const de=255;function m(t){return t?t.slice(0,de):null}const F="rapid_scroll";function xe(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r)){const C={node_type:"unknown"};return l(F,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",C)],e)}const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(F,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",E)],e)}const pe=u(F,xe),Ee=100,me=100,Ce=300;let z=0,K=0;const ve=Y((t,e)=>{pe(t,e)},Ce);function De(t,e){const o=t.event.target||document.documentElement;if(!(o instanceof HTMLElement))return;const i=o.scrollTop,a=Date.now()-K;Math.abs(i-z)>Ee&&a<me&&ve(t.event,e),z=i,K=Date.now()}const _e=D("scroll",De,!0),q="rapid_click";function be(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r)){const C={node_type:"unknown"};return l(q,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",C),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(q,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",E),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const ke=u(q,be);let N=0,X=0;const Te=3,ge=500;function Le(t,e){const o=new Date().getTime();o-X<ge?N++:N=1,X=o,N>=Te&&(ke(t,e),N=0)}const $e=D("click",Le),H="right_click";function ye(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r)){const C={node_type:"unknown"};return l(H,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",C),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0])}const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(H,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",E),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const he=u(H,ye);function we(t,e){he(t,e)}const Ne=D("contextmenu",we),Et="mouse_shake";function Pe(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(Et,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Se=u(Et,Pe),Ve=5,Ye=500,Be=500;let J={x:0},L=[],Q=0;const Fe=Y((t,e)=>{Se(t,e)},Ye);function qe(t,e){const o=Date.now(),i=t.event.clientX-J.x,a=Math.sign(i);o-Q>Be&&(L=[]),a!==0&&(L.length===0||L[L.length-1]!==a)&&L.push(a),J={x:t.event.clientX,y:t.event.clientY},L.length>=Ve&&(Fe(t,e),L=[]),Q=o}const He=D("mousemove",qe),mt="page_visible";function Ae(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(mt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Re=u(mt,Ae),Ct="page_hidden";function Oe(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(Ct,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const We=u(Ct,Oe);function je(t,e){if(document.visibilityState==="visible"){Re(t,e);return}We(t,e)}const Me=Yt("visibilitychange",je),A="backspace";function Ge(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r)){const C={node_type:"unknown"};return l(A,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",C),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(A,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",E),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Ue=u(A,Ge);function Ie(t,e){t.event.key==="Backspace"&&Ue(t,e)}const ze=D("keydown",Ie),vt="page_hide";function Ke(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(vt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Xe=u(vt,Ke);function Je(t,e){Xe(t,e)}const Qe=y("pagehide",Je),Dt="page_show";function Ze(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(Dt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const tn=u(Dt,Ze);function en(t,e){tn(t,e)}const nn=y("pageshow",en),_t="offline";function on(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(_t,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const sn=u(_t,on);function an(t,e){sn(t,e)}const rn=y("offline",an),R="scroll";function cn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r))return l(R,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e);const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(R,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",E)],e)}const ln=u(R,cn),un=Y((t,e)=>{ln(t,e)},500),fn=D("scroll",un,!0),bt="online";function dn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(bt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const xn=u(bt,dn);function pn(t,e){xn(t,e)}const En=y("online",pn),kt="resize";function mn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(kt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Z=u(kt,mn);let B=0;const Cn=Y((t,e)=>{const o=window.innerWidth;o!==B?(Z(t,e),B=o):"ontouchstart"in window||Z(t,e),B=o},300),vn=y("resize",Cn),Tt="unload";function Dn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(Tt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const _n=u(Tt,Dn);function bn(t,e){_n(t,e)}const kn=y("unload",bn),O="click";function Tn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r)){const C={node_type:"unknown"};return l(O,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",C),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(O,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",E),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const gn=u(O,Tn);function Ln(t,e){gn(t,e)}const $n=D("click",Ln),W="paste";function yn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r))return l(W,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e);const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(W,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",E)],e)}const hn=u(W,yn);function wn(t,e){hn(t,e)}const Nn=D("paste",wn),j="copy";function Pn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r))return l(j,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e);const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(j,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",E)],e)}const Sn=u(j,Pn);function Vn(t,e){Sn(t,e)}const Yn=D("copy",Vn),M="drag";function Bn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r))return l(M,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e);const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(M,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",E)],e)}const Fn=u(M,Bn);function gt(t,e){const o=t.event.currentTarget;if(!o||!(o instanceof HTMLElement))return;function i(a){gt({event:a,analyticsContext:t.analyticsContext})}o.removeEventListener("drag",i),o.addEventListener("dragend",()=>Lt(o,()=>t.analyticsContext)),Fn(t,e)}const Lt=D("drag",gt);function qn(t,e){e&&($n(e,t),$e(e,t),Ne(e,t),Yn(e,t),Nn(e,t),Lt(e,t),ze(e,t),fn(e,t),_e(e,t),He(e,t))}function Hn(t){Me(t),Qe(t),nn(t),rn(t),En(t),vn(t),kn(t)}exports.bindGlobalEventListeners=Hn;exports.bindUserInteractionListeners=qn;exports.createContext=n;exports.createEvent=l;exports.createTrackEvent=u;exports.createTracker=Rt;exports.formatExceptionContextData=U;exports.formatExperienceContextData=p;exports.formatFeatureListContextData=f;exports.formatFieldListContextData=S;exports.formatModalContextData=Ft;exports.formatProductListContextData=Bt;exports.formatResponseListContextData=G;exports.formatSessionContextData=d;exports.formatStepContextData=x;exports.trackAppCloseEvent=jt;exports.trackAppLoadEvent=Gt;exports.trackAppOpenEvent=It;exports.trackExperienceLoadEvent=Kt;exports.trackFeatureDecideEvent=fe;exports.trackFieldValidationErrorEvent=Jt;exports.trackFormSubmitErrorEvent=ee;exports.trackFormSubmitEvent=Zt;exports.trackFormSubmitSuccessEvent=oe;exports.trackStepEnterEvent=ae;exports.trackStepSubmitEvent=re;exports.trackStepSubmitSuccessEvent=le;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@picked/analytics",
3
3
  "description": "Picked Analytics",
4
- "version": "0.0.1-dev.1763526535807",
4
+ "version": "0.0.1-dev.1763596411740",
5
5
  "dependencies": {
6
6
  "@snowplow/browser-plugin-button-click-tracking": "^4.6.5",
7
7
  "@snowplow/browser-plugin-error-tracking": "^4.6.5",
@@ -17,7 +17,7 @@
17
17
  "@rollup/plugin-replace": "^6.0.2",
18
18
  "@types/jsdom": "^21.1.7",
19
19
  "@types/node": "^22",
20
- "@vitest/coverage-v8": "^3.2.3",
20
+ "@vitest/coverage-v8": "^3.2.4",
21
21
  "effector": "^23.3.0",
22
22
  "jsdom": "^26.1.0",
23
23
  "json-schema-to-ts": "^3.1.1",
@@ -39,12 +39,6 @@
39
39
  "import": "./dist/esm/plugins/analytics/index.js",
40
40
  "require": "./dist/cjs/plugins/analytics/index.js",
41
41
  "default": "./dist/esm/plugins/analytics/index.js"
42
- },
43
- "./plugins/google-analytics": {
44
- "types": "./dist/types/plugins/google-analytics/index.d.ts",
45
- "import": "./dist/esm/plugins/google-analytics/index.js",
46
- "require": "./dist/cjs/plugins/google-analytics/index.js",
47
- "default": "./dist/esm/plugins/google-analytics/index.js"
48
42
  }
49
43
  },
50
44
  "files": [
@@ -53,7 +47,7 @@
53
47
  "main": "./dist/cjs/index.js",
54
48
  "module": "./dist/esm/index.js",
55
49
  "peerDependencies": {
56
- "@picked/client": "0.0.1-dev.1763526535807",
50
+ "@picked/client": "0.0.1-dev.1763596411740",
57
51
  "effector": "^23.3.0"
58
52
  },
59
53
  "private": false,
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("@picked/client"),i=require("effector"),k=require("../../../utils-CEuhEfLT.cjs"),g="development";function x(t){if(!S.supportsWindow())return;const e=[];globalThis.dataLayer=globalThis.dataLayer??e,globalThis.dataLayer.push(t)}const m=()=>sessionStorage.getItem("cvly_env"),b=(t,e)=>t.filter(r=>!!(e==null?void 0:e.fieldIds.includes(r.fieldId))),P=t=>({id:t.experienceId,title:t.configStore.getState().name}),E=t=>{if("experience"in t&&t.experience){const{experience:e}=t;return{id:e.id,title:e.configStore.getState().name}}if("experienceInstance"in t&&t.experienceInstance){const{experienceInstance:e}=t;return P(e)}},h=i.createEvent(),D=({controlFeatureName:t="convincely-enabled"}={})=>({name:"google-analytics-plugin",setup:e=>{if(!S.supportsWindow())return;const{organizationId:r,projectId:p}=e,L=i.attach({source:{responses:e.responses.listStore,features:e.features.listStore},effect:async({responses:c,features:u},n)=>{var o;const{type:s}=n,d=E(n),a=m(),v="step"in n?b(c,n.step):void 0,_={event:"picked_event",picked_action:s,picked_app:{organizationId:r,projectId:p},picked_feature_list:k.getFeatureList(u),picked_environment:g,picked_step:"step"in n?n.step:void 0,picked_form:"form"in n?n.form:void 0,picked_exception:"exception"in n?(o=n.exception.reason)==null?void 0:o[0]:void 0,picked_experience:d,picked_responses:v,picked_cvly_env:a,picked_value:"value"in n?n.value:void 0,picked_item:void 0};return x(_)}}),I=new Set(["experience_open","experience_close","experience_initialized","initialized","step_enter","step_submit","experience_interaction"]),l=i.createStore(!1),f=i.createEvent(),y=i.attach({source:{features:e.features.listStore,decision:l},effect:async({features:c,decision:u},n)=>{if(u)return null;const s=c.find(o=>o.id===t);if(!s||!k.isFeatureResolved(s))return null;f();const{bucket:d}=s.getBucket(),a=E(n),v=m();return x({event:"picked_event",picked_action:"picked_decision",picked_app:{organizationId:r,projectId:p},picked_feature_list:void 0,picked_environment:g,picked_value:d,picked_step:void 0,picked_form:void 0,picked_experience:a,picked_responses:void 0,picked_cvly_env:v})}});i.sample({clock:h,target:e.eventBus}),i.split({source:e.eventBus,match:{isPickedDecisionEvent:c=>c.type==="feature_decide",isInEventList:c=>I.has(c.type)},cases:{isPickedDecisionEvent:y,isInEventList:L}}),i.sample({clock:f,fn:()=>!0,target:l})}});exports.googleAnalyticsPlugin=D;exports.pushToDataLayerEvent=h;
@@ -1,117 +0,0 @@
1
- import { supportsWindow as S } from "@picked/client";
2
- import { createEvent as h, attach as k, createStore as D, sample as l, split as F } from "effector";
3
- import { s as P, t as y } from "../../../utils-Dn5X4DCB.js";
4
- const g = "development";
5
- function m(t) {
6
- if (!S()) return;
7
- const e = [];
8
- globalThis.dataLayer = globalThis.dataLayer ?? e, globalThis.dataLayer.push(t);
9
- }
10
- const x = () => sessionStorage.getItem("cvly_env"), T = (t, e) => t.filter((s) => !!(e == null ? void 0 : e.fieldIds.includes(s.fieldId))), z = (t) => ({
11
- id: t.experienceId,
12
- title: t.configStore.getState().name
13
- }), E = (t) => {
14
- if ("experience" in t && t.experience) {
15
- const { experience: e } = t;
16
- return {
17
- id: e.id,
18
- title: e.configStore.getState().name
19
- };
20
- }
21
- if ("experienceInstance" in t && t.experienceInstance) {
22
- const { experienceInstance: e } = t;
23
- return z(e);
24
- }
25
- }, B = h(), A = ({
26
- controlFeatureName: t = "convincely-enabled"
27
- } = {}) => ({
28
- name: "google-analytics-plugin",
29
- setup: (e) => {
30
- if (!S())
31
- return;
32
- const { organizationId: s, projectId: o } = e, I = k({
33
- source: {
34
- responses: e.responses.listStore,
35
- features: e.features.listStore
36
- },
37
- effect: async ({ responses: i, features: p }, n) => {
38
- var r;
39
- const { type: c } = n, d = E(n), u = x(), v = "step" in n ? T(i, n.step) : void 0, _ = {
40
- event: "picked_event",
41
- picked_action: c,
42
- picked_app: { organizationId: s, projectId: o },
43
- picked_feature_list: P(p),
44
- picked_environment: g,
45
- picked_step: "step" in n ? n.step : void 0,
46
- picked_form: "form" in n ? n.form : void 0,
47
- picked_exception: "exception" in n ? (r = n.exception.reason) == null ? void 0 : r[0] : void 0,
48
- // todo: support multiple exceptions
49
- picked_experience: d,
50
- picked_responses: v,
51
- picked_cvly_env: u,
52
- picked_value: "value" in n ? n.value : void 0,
53
- picked_item: void 0
54
- // Future support for e-commerce items
55
- };
56
- return m(_);
57
- }
58
- }), L = /* @__PURE__ */ new Set([
59
- "experience_open",
60
- "experience_close",
61
- "experience_initialized",
62
- "initialized",
63
- "step_enter",
64
- "step_submit",
65
- "experience_interaction"
66
- ]), a = D(!1), f = h(), b = k({
67
- source: {
68
- features: e.features.listStore,
69
- decision: a
70
- },
71
- effect: async ({ features: i, decision: p }, n) => {
72
- if (p)
73
- return null;
74
- const c = i.find((r) => r.id === t);
75
- if (!c || !y(c))
76
- return null;
77
- f();
78
- const { bucket: d } = c.getBucket(), u = E(n), v = x();
79
- return m({
80
- event: "picked_event",
81
- picked_action: "picked_decision",
82
- picked_app: { organizationId: s, projectId: o },
83
- picked_feature_list: void 0,
84
- picked_environment: g,
85
- picked_value: d,
86
- picked_step: void 0,
87
- picked_form: void 0,
88
- picked_experience: u,
89
- picked_responses: void 0,
90
- picked_cvly_env: v
91
- });
92
- }
93
- });
94
- l({
95
- clock: B,
96
- target: e.eventBus
97
- }), F({
98
- source: e.eventBus,
99
- match: {
100
- isPickedDecisionEvent: (i) => i.type === "feature_decide",
101
- isInEventList: (i) => L.has(i.type)
102
- },
103
- cases: {
104
- isPickedDecisionEvent: b,
105
- isInEventList: I
106
- }
107
- }), l({
108
- clock: f,
109
- fn: () => !0,
110
- target: a
111
- });
112
- }
113
- });
114
- export {
115
- A as googleAnalyticsPlugin,
116
- B as pushToDataLayerEvent
117
- };
@@ -1,2 +0,0 @@
1
- export { googleAnalyticsPlugin, pushToDataLayerEvent } from './plugin';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/google-analytics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA"}
@@ -1,60 +0,0 @@
1
- import { EventBusPayload, ExperienceStep, FormPayload, Picked } from '@picked/client';
2
- export type TrackedActions = 'experience_interaction' | 'experience_complete' | 'experience_open' | 'recommendation_present' | 'feature_decide';
3
- interface GenericDataLayerEvent {
4
- [key: string]: unknown;
5
- event?: string;
6
- }
7
- type DataLayer = Array<DataLayerEvent | GenericDataLayerEvent>;
8
- declare global {
9
- var dataLayer: DataLayer | undefined;
10
- }
11
- interface PickedItem {
12
- item_name?: string;
13
- item_id?: string;
14
- affiliation?: string;
15
- currency?: string;
16
- item_brand?: string;
17
- item_list_id?: string;
18
- item_list_name?: string;
19
- item_variant?: string;
20
- price?: number;
21
- quantity?: number;
22
- item_category1?: string;
23
- item_category2?: string;
24
- item_category3?: string;
25
- item_category4?: string;
26
- }
27
- interface DataLayerEvent {
28
- picked_app: {
29
- organizationId: string;
30
- projectId: string;
31
- };
32
- event: 'picked_event';
33
- picked_environment: string;
34
- picked_form?: FormPayload;
35
- picked_cvly_env?: string;
36
- picked_feature_list: Array<{
37
- name: string;
38
- key: string;
39
- feature: string;
40
- bucket: string | boolean;
41
- }>;
42
- picked_action: TrackedActions;
43
- picked_value?: string;
44
- picked_experience?: {
45
- id: string;
46
- title: string;
47
- };
48
- picked_step?: ExperienceStep;
49
- picked_item?: PickedItem;
50
- }
51
- export declare function dataLayerPush(event: DataLayerEvent | GenericDataLayerEvent): void;
52
- export declare const pushToDataLayerEvent: import('effector').EventCallable<EventBusPayload>;
53
- export declare const googleAnalyticsPlugin: ({ controlFeatureName, }?: {
54
- controlFeatureName?: string;
55
- }) => {
56
- name: string;
57
- setup: (client: Picked) => void;
58
- };
59
- export {};
60
- //# sourceMappingURL=plugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/google-analytics/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAEf,cAAc,EAEd,WAAW,EACX,MAAM,EACP,MAAM,gBAAgB,CAAA;AAKvB,MAAM,MAAM,cAAc,GACtB,wBAAwB,GACxB,qBAAqB,GACrB,iBAAiB,GACjB,wBAAwB,GACxB,gBAAgB,CAAA;AAGpB,UAAU,qBAAqB;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAGD,KAAK,SAAS,GAAG,KAAK,CAAC,cAAc,GAAG,qBAAqB,CAAC,CAAA;AAE9D,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,SAAS,EAAE,SAAS,GAAG,SAAS,CAAA;CACrC;AAGD,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,UAAU,cAAc;IACtB,UAAU,EAAE;QACV,cAAc,EAAE,MAAM,CAAA;QACtB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,KAAK,EAAE,cAAc,CAAA;IACrB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mBAAmB,EAAE,KAAK,CAAC;QACzB,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KACzB,CAAC,CAAA;IACF,aAAa,EAAE,cAAc,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE;QAClB,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B,WAAW,CAAC,EAAE,UAAU,CAAA;CACzB;AAKD,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,qBAAqB,GAAG,IAAI,CAMjF;AA2CD,eAAO,MAAM,oBAAoB,mDAAiC,CAAA;AAElE,eAAO,MAAM,qBAAqB,GAAI,0BAEnC;IACD,kBAAkB,CAAC,EAAE,MAAM,CAAA;CACvB,KAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CAqIvD,CAAA"}
@@ -1 +0,0 @@
1
- "use strict";const d=require("@snowplow/browser-tracker"),Y=require("@snowplow/browser-plugin-button-click-tracking"),ut=require("@snowplow/browser-plugin-performance-navigation-timing"),I=require("@snowplow/browser-plugin-error-tracking"),Et=require("@snowplow/browser-plugin-web-vitals"),t=require("./utils-CEuhEfLT.cjs");function mt(e){const n=[];return e.trackErrors&&(t.log(),n.push(I.ErrorTrackingPlugin())),e.trackVitals&&(t.log(),n.push(Et.WebVitalsPlugin())),e.trackPerformance&&(t.log(),n.push(ut.PerformanceNavigationTimingPlugin())),(e.trackButtonClickAllowList||e.trackButtonClickFilter)&&n.push(Y.ButtonClickTrackingPlugin()),n}function pt(e){e.trackActivity&&!e.trackActivityCallback&&(t.log(),d.enableActivityTracking({minimumVisitLength:30,heartbeatDelay:10})),e.trackActivity&&e.trackActivityCallback&&(t.log(),d.enableActivityTrackingCallback({minimumVisitLength:30,heartbeatDelay:10,callback:e.trackActivityCallback})),(e.trackButtonClickAllowList||e.trackButtonClickFilter)&&(t.log(),Y.enableButtonClickTracking({filter:e.trackButtonClickAllowList?{allowlist:e.trackButtonClickAllowList}:e.trackButtonClickFilter})),e.trackErrors&&(t.log(),I.enableErrorTracking())}function Dt({organizationId:e,projectId:n,cvlyX:r,collectorUrl:s="evnts.pckd.dev",appId:a="picked-analytics",trackVitals:o=!0,trackPerformance:c=!0,trackWebPage:i=!0,trackSessions:x=!0,trackBrowser:f=!0,trackActivity:ct=!0,trackErrors:it=!0,trackActivityCallback:xt,trackButtonClickAllowList:Ct}){t.log();const h={trackVitals:o,trackErrors:it,trackActivity:ct,trackPerformance:c,trackActivityCallback:xt,trackButtonClickAllowList:Ct},lt={appId:a,platform:"web",contexts:{webPage:i,session:x,browser:f||!1},plugins:mt(h)},ft=d.newTracker(a,s,lt);return dt({organizationId:e,projectId:n,cvlyX:r}),pt(h),ft}function dt({organizationId:e,projectId:n,cvlyX:r}){if(!e||!n)throw new Error("bindGlobalContext: Both organizationId and projectId are required");const s=[];s.push(t.createContext("app","1-0-0",{organization_id:e,project_id:n})),r&&s.push(t.createContext("cvly_x","1-0-1",{vercel_deployment_id:r.vercelDeploymentId,vercel_env:r.vercelEnv,vercel_url:r.vercelUrl})),d.addGlobalContexts(s)}const H="app_close";function vt(e,n){const r=t.formatFeatureListContextData(e),s=t.formatSessionContextData(e),a=t.formatExperienceContextData(e),o=t.formatStepContextData(e);return t.createEvent(H,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const Lt=t.createTrackEvent(H,vt),R="app_load";function Tt(e,n){const r=t.formatFeatureListContextData(e),s=t.formatSessionContextData(e),a=t.formatExperienceContextData(e),o=t.formatStepContextData(e);return t.createEvent(R,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const kt=t.createTrackEvent(R,Tt),W="app_open";function _t(e,n){const r=t.formatFeatureListContextData(e),s=t.formatSessionContextData(e),a=t.formatExperienceContextData(e),o=t.formatStepContextData(e);return t.createEvent(W,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const bt=t.createTrackEvent(W,_t),A="experience_load";function $t(e,n){const r=t.formatFeatureListContextData(e),s=t.formatSessionContextData(e),a=t.formatExperienceContextData(e,!0),o=t.formatStepContextData(e);return t.createEvent(A,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("experience","1-0-1",a),o?t.createContext("step","1-0-0",o):void 0],n)}const St=t.createTrackEvent(A,$t),q="field_validation_error";function gt(e,n){const r=t.formatFeatureListContextData(e),s=t.formatSessionContextData(e),a=t.formatFormContextData(e),o=t.formatExceptionContextData(e,!0),c=t.formatExperienceContextData(e),i=t.formatStepContextData(e);return t.createEvent(q,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("exception","1-0-0",o),t.createContext("form","1-0-0",a),c&&t.createContext("experience","1-0-1",c),i&&t.createContext("step","1-0-0",i)],n)}const yt=t.createTrackEvent(q,gt),O="form_submit";function ht(e,n){const r=t.formatFeatureListContextData(e),s=t.formatSessionContextData(e),a=t.formatFormContextData(e),o=t.formatExperienceContextData(e),c=t.formatStepContextData(e);return t.createEvent(O,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("form","1-0-0",a),o&&t.createContext("experience","1-0-1",o),c&&t.createContext("step","1-0-0",c)],n)}const wt=t.createTrackEvent(O,ht),G="form_submit_error";function Ft(e,n){const r=t.formatFeatureListContextData(e),s=t.formatSessionContextData(e),a=t.formatFormContextData(e),o=t.formatExceptionContextData(e,!0),c=t.formatExperienceContextData(e),i=t.formatStepContextData(e);return t.createEvent(G,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("form","1-0-0",a),t.createContext("exception","1-0-0",o),c&&t.createContext("experience","1-0-1",c),i&&t.createContext("step","1-0-0",i)],n)}const Nt=t.createTrackEvent(G,Ft),j="form_submit_success";function Pt(e,n){const r=t.formatFeatureListContextData(e),s=t.formatSessionContextData(e),a=t.formatFormContextData(e),o=t.formatExperienceContextData(e),c=t.formatStepContextData(e);return t.createEvent(j,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("form","1-0-0",a),o&&t.createContext("experience","1-0-1",o),c&&t.createContext("step","1-0-0",c)],n)}const Vt=t.createTrackEvent(j,Pt),U="step_enter";function Bt(e,n){const r=t.formatFeatureListContextData(e),s=t.formatSessionContextData(e),a=t.formatExperienceContextData(e),o=t.formatStepContextData(e,!0),c=t.formatFieldListContextData(e);return t.createEvent(U,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("step","1-0-0",o),c&&t.createContext("field_list","1-0-0",c),a&&t.createContext("experience","1-0-1",a)],n)}const Yt=t.createTrackEvent(U,Bt),z="step_submit";function It(e,n){const r=t.formatFeatureListContextData(e),s=t.formatSessionContextData(e),a=t.formatExperienceContextData(e),o=t.formatStepContextData(e,!0),c=t.formatResponseListContextData(e),i=t.formatFieldListContextData(e);return t.createEvent(z,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("step","1-0-0",o),i&&t.createContext("field_list","1-0-0",i),c&&t.createContext("response_list","1-0-0",c),a&&t.createContext("experience","1-0-1",a)],n)}const Ht=t.createTrackEvent(z,It),M="step_submit_success";function Rt(e,n){const r=t.formatFeatureListContextData(e),s=t.formatSessionContextData(e),a=t.formatExperienceContextData(e),o=t.formatStepContextData(e,!0),c=t.formatFieldListContextData(e),i=t.formatResponseListContextData(e);return t.createEvent(M,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("step","1-0-0",o),c&&t.createContext("field_list","1-0-0",c),i&&t.createContext("response_list","1-0-0",i),a&&t.createContext("experience","1-0-1",a)],n)}const Wt=t.createTrackEvent(M,Rt),K="feature_decide";function At(e,n){const r=t.formatFeatureListContextData(e),s=t.formatSessionContextData(e),a=t.formatExperienceContextData(e),o=t.formatStepContextData(e);return t.createEvent(K,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const qt=t.createTrackEvent(K,At);function u(e){return e instanceof Element}function E(e){const n=["a","button","input","select","textarea","details","summary","label","form","fieldset","legend","optgroup","option","output","datalist","dialog","menu","menuitem","iframe","audio","video","embed","object","canvas"].join(", ");return u(e)?e.matches(n)?e:e.closest(n):null}function l(e){if(e instanceof HTMLSelectElement){const n=e.selectedIndex||0,r=e.options[n];return(r==null?void 0:r.text)??""}return"innerText"in e&&typeof e.innerText=="string"?e.innerText:e.textContent}function m(e){const n=e.getAttribute("aria-label");if(n)return n;const r=e.getAttribute("aria-labelledby");if(r){const a=document.getElementById(r);if(a){const o=l(a);if(o)return o}}if("id"in e&&e.id){const a=document.querySelector(`label[for="${e.id}"]`);if(a){const o=l(a);if(o)return o}}let s=e.parentElement;for(;s;){if(s.tagName.toLowerCase()==="label"){const a=l(s);if(a)return a}s=s.parentElement}if(e instanceof HTMLInputElement&&"labels"in e&&e.labels){const a=Array.from(e.labels).map(o=>l(o)).filter(Boolean).join(" ");if(a)return a}return"placeholder"in e&&typeof e.placeholder=="string"?e.placeholder:null}const Ot=255;function C(e){return e?e.slice(0,Ot):null}const L="rapid_scroll";function Gt(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext),c=e.event.target||document.activeElement||e.event.currentTarget;if(!u(c)){const f={node_type:"unknown"};return t.createEvent(L,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0,t.createContext("element","1-0-0",f)],n)}const i=E(c)||c,x={id:i.id||null,node_type:i.nodeName.toLowerCase(),label:C(m(i)),text:C(l(i))};return t.createEvent(L,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0,t.createContext("element","1-0-0",x)],n)}const jt=t.createTrackEvent(L,Gt),Ut=100,zt=100,Mt=300;let w=0,F=0;const Kt=t.debounce((e,n)=>{jt(e,n)},Mt);function Xt(e,n){const r=e.event.target||document.documentElement;if(!(r instanceof HTMLElement))return;const s=r.scrollTop,a=Date.now()-F;Math.abs(s-w)>Ut&&a<zt&&Kt(e.event,n),w=s,F=Date.now()}const Jt=t.createBindListener("scroll",Xt,!0),T="rapid_click";function Qt(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext),c=e.event.target||document.activeElement||e.event.currentTarget;if(!u(c)){const f={node_type:"unknown"};return t.createEvent(T,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("element","1-0-0",f),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const i=E(c)||c,x={id:i.id||null,node_type:i.nodeName.toLowerCase(),label:C(m(i)),text:C(l(i))};return t.createEvent(T,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("element","1-0-0",x),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const Zt=t.createTrackEvent(T,Qt);let D=0,N=0;const te=3,ee=500;function ne(e,n){const r=new Date().getTime();r-N<ee?D++:D=1,N=r,D>=te&&(Zt(e,n),D=0)}const ae=t.createBindListener("click",ne),k="right_click";function oe(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext),c=e.event.target||document.activeElement||e.event.currentTarget;if(!u(c)){const f={node_type:"unknown"};return t.createEvent(k,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("element","1-0-0",f),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0])}const i=E(c)||c,x={id:i.id||null,node_type:i.nodeName.toLowerCase(),label:C(m(i)),text:C(l(i))};return t.createEvent(k,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("element","1-0-0",x),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const re=t.createTrackEvent(k,oe);function se(e,n){re(e,n)}const ce=t.createBindListener("contextmenu",se),X="mouse_shake";function ie(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext);return t.createEvent(X,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const xe=t.createTrackEvent(X,ie),Ce=5,le=500,fe=500;let P={x:0},p=[],V=0;const ue=t.debounce((e,n)=>{xe(e,n)},le);function Ee(e,n){const r=Date.now(),s=e.event.clientX-P.x,a=Math.sign(s);r-V>fe&&(p=[]),a!==0&&(p.length===0||p[p.length-1]!==a)&&p.push(a),P={x:e.event.clientX,y:e.event.clientY},p.length>=Ce&&(ue(e,n),p=[]),V=r}const me=t.createBindListener("mousemove",Ee),J="page_visible";function pe(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext);return t.createEvent(J,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const De=t.createTrackEvent(J,pe),Q="page_hidden";function de(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext);return t.createEvent(Q,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const ve=t.createTrackEvent(Q,de);function Le(e,n){if(document.visibilityState==="visible"){De(e,n);return}ve(e,n)}const Te=t.createDocumentBindListener("visibilitychange",Le),_="backspace";function ke(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext),c=e.event.target||document.activeElement||e.event.currentTarget;if(!u(c)){const f={node_type:"unknown"};return t.createEvent(_,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("element","1-0-0",f),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const i=E(c)||c,x={id:i.id||null,node_type:i.nodeName.toLowerCase(),label:C(m(i)),text:C(l(i))};return t.createEvent(_,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("element","1-0-0",x),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const _e=t.createTrackEvent(_,ke);function be(e,n){e.event.key==="Backspace"&&_e(e,n)}const $e=t.createBindListener("keydown",be),Z="page_hide";function Se(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext);return t.createEvent(Z,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const ge=t.createTrackEvent(Z,Se);function ye(e,n){ge(e,n)}const he=t.createWindowBindListener("pagehide",ye),tt="page_show";function we(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext);return t.createEvent(tt,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const Fe=t.createTrackEvent(tt,we);function Ne(e,n){Fe(e,n)}const Pe=t.createWindowBindListener("pageshow",Ne),et="offline";function Ve(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext);return t.createEvent(et,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const Be=t.createTrackEvent(et,Ve);function Ye(e,n){Be(e,n)}const Ie=t.createWindowBindListener("offline",Ye),b="scroll";function He(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext),c=e.event.target||document.activeElement||e.event.currentTarget;if(!u(c))return t.createEvent(b,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n);const i=E(c)||c,x={id:i.id||null,node_type:i.nodeName.toLowerCase(),label:C(m(i)),text:C(l(i))};return t.createEvent(b,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0,t.createContext("element","1-0-0",x)],n)}const Re=t.createTrackEvent(b,He),We=t.debounce((e,n)=>{Re(e,n)},500),Ae=t.createBindListener("scroll",We,!0),nt="online";function qe(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext);return t.createEvent(nt,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const Oe=t.createTrackEvent(nt,qe);function Ge(e,n){Oe(e,n)}const je=t.createWindowBindListener("online",Ge),at="resize";function Ue(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext);return t.createEvent(at,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const B=t.createTrackEvent(at,Ue);let v=0;const ze=t.debounce((e,n)=>{const r=window.innerWidth;r!==v?(B(e,n),v=r):"ontouchstart"in window||B(e,n),v=r},300),Me=t.createWindowBindListener("resize",ze),ot="unload";function Ke(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext);return t.createEvent(ot,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const Xe=t.createTrackEvent(ot,Ke);function Je(e,n){Xe(e,n)}const Qe=t.createWindowBindListener("unload",Je),$="click";function Ze(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext),c=e.event.target||document.activeElement||e.event.currentTarget;if(!u(c)){const f={node_type:"unknown"};return t.createEvent($,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("element","1-0-0",f),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const i=E(c)||c,x={id:i.id||null,node_type:i.nodeName.toLowerCase(),label:C(m(i)),text:C(l(i))};return t.createEvent($,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),t.createContext("element","1-0-0",x),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n)}const tn=t.createTrackEvent($,Ze);function en(e,n){tn(e,n)}const nn=t.createBindListener("click",en),S="paste";function an(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext),c=e.event.target||document.activeElement||e.event.currentTarget;if(!u(c))return t.createEvent(S,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n);const i=E(c)||c,x={id:i.id||null,node_type:i.nodeName.toLowerCase(),label:C(m(i)),text:C(l(i))};return t.createEvent(S,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0,t.createContext("element","1-0-0",x)],n)}const on=t.createTrackEvent(S,an);function rn(e,n){on(e,n)}const sn=t.createBindListener("paste",rn),g="copy";function cn(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext),c=e.event.target||document.activeElement||e.event.currentTarget;if(!u(c))return t.createEvent(g,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n);const i=E(c)||c,x={id:i.id||null,node_type:i.nodeName.toLowerCase(),label:C(m(i)),text:C(l(i))};return t.createEvent(g,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0,t.createContext("element","1-0-0",x)],n)}const xn=t.createTrackEvent(g,cn);function Cn(e,n){xn(e,n)}const ln=t.createBindListener("copy",Cn),y="drag";function fn(e,n){const r=t.formatFeatureListContextData(e.analyticsContext),s=t.formatSessionContextData(e.analyticsContext),a=t.formatExperienceContextData(e.analyticsContext),o=t.formatStepContextData(e.analyticsContext),c=e.event.target||document.activeElement||e.event.currentTarget;if(!u(c))return t.createEvent(y,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0],n);const i=E(c)||c,x={id:i.id||null,node_type:i.nodeName.toLowerCase(),label:C(m(i)),text:C(l(i))};return t.createEvent(y,[t.createContext("feature_list","2-0-0",r),t.createContext("session","1-0-2",s),o?t.createContext("step","1-0-0",o):void 0,a?t.createContext("experience","1-0-1",a):void 0,t.createContext("element","1-0-0",x)],n)}const un=t.createTrackEvent(y,fn);function rt(e,n){const r=e.event.currentTarget;if(!r||!(r instanceof HTMLElement))return;function s(a){rt({event:a,analyticsContext:e.analyticsContext})}r.removeEventListener("drag",s),r.addEventListener("dragend",()=>st(r,()=>e.analyticsContext)),un(e,n)}const st=t.createBindListener("drag",rt);function En(e,n){n&&(nn(n,e),ae(n,e),ce(n,e),ln(n,e),sn(n,e),st(n,e),$e(n,e),Ae(n,e),Jt(n,e),me(n,e))}function mn(e){Te(e),he(e),Pe(e),Ie(e),je(e),Me(e),Qe(e)}exports.bindGlobalEventListeners=mn;exports.bindUserInteractionListeners=En;exports.createTracker=Dt;exports.trackAppCloseEvent=Lt;exports.trackAppLoadEvent=kt;exports.trackAppOpenEvent=bt;exports.trackExperienceLoadEvent=St;exports.trackFeatureDecideEvent=qt;exports.trackFieldValidationErrorEvent=yt;exports.trackFormSubmitErrorEvent=Nt;exports.trackFormSubmitEvent=wt;exports.trackFormSubmitSuccessEvent=Vt;exports.trackStepEnterEvent=Yt;exports.trackStepSubmitEvent=Ht;exports.trackStepSubmitSuccessEvent=Wt;