@objectiv/tracker-browser
Version:
Objectiv Web application analytics tracker for the open analytics taxonomy
2 lines • 26.2 kB
JavaScript
;var G=Object.defineProperty;var kt=Object.getOwnPropertyDescriptor;var dt=Object.getOwnPropertyNames;var Tt=Object.prototype.hasOwnProperty;var xt=(r,t)=>{for(var e in t)G(r,e,{get:t[e],enumerable:!0})},q=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of dt(t))!Tt.call(r,a)&&a!==e&&G(r,a,{get:()=>t[a],enumerable:!(n=kt(t,a))||n.enumerable});return r},i=(r,t,e)=>(q(r,t,"default"),e&&q(e,t,"default"));var Et=r=>q(G({},"__esModule",{value:!0}),r);var o={};xt(o,{AutoTrackingState:()=>E,BrowserTracker:()=>J,TaggingAttribute:()=>l,findParentTaggedElements:()=>I,getElementLocationStack:()=>xr,getLocationHref:()=>Er,getOrMakeTracker:()=>Ft,getTracker:()=>v,getTrackerRepository:()=>V,isFlushQueueOptions:()=>z,isLocationContext:()=>h,isLocationTaggerParameters:()=>p,isParentTaggedElement:()=>Y,isPressableContext:()=>rr,isShowableContext:()=>er,isTagChildrenElement:()=>or,isTagLocationAttributes:()=>ir,isTagLocationOptions:()=>nr,isTagLocationParameters:()=>cr,isTaggableElement:()=>C,isTaggedElement:()=>k,isTrackBlursAttribute:()=>S,isTrackClicksAttribute:()=>Q,isTrackVisibilityAttribute:()=>w,isValidChildrenTaggingQuery:()=>P,isValidateAttribute:()=>L,isWaitUntilTrackedOptions:()=>ar,makeBlurEventHandler:()=>wr,makeBrowserTrackerDefaultPluginsList:()=>W,makeBrowserTrackerDefaultQueue:()=>K,makeBrowserTrackerDefaultTransport:()=>X,makeClickEventHandler:()=>R,makeMutationCallback:()=>Ir,makeTracker:()=>Or,parseJson:()=>d,parseLocationContext:()=>b,parseTagChildren:()=>sr,parseTrackBlurs:()=>mr,parseTrackClicks:()=>lr,parseTrackVisibility:()=>A,parseValidate:()=>fr,processTagChildrenElement:()=>Lr,runIfValueIsNotUndefined:()=>B,setDefaultTracker:()=>Mt,startAutoTracking:()=>Br,stopAutoTracking:()=>$t,stringifyJson:()=>x,stringifyLocationContext:()=>pr,stringifyTagChildren:()=>ur,stringifyTrackBlurs:()=>gr,stringifyTrackClicks:()=>kr,stringifyTrackVisibility:()=>dr,stringifyValidate:()=>Tr,tagChild:()=>Bt,tagChildren:()=>Cr,tagContent:()=>Ot,tagExpandable:()=>St,tagInput:()=>Qt,tagLink:()=>Ht,tagLocation:()=>u,tagMediaPlayer:()=>Rt,tagNavigation:()=>Nt,tagOverlay:()=>_t,tagPressable:()=>Jt,tagRootLocation:()=>jt,trackApplicationLoadedEvent:()=>br,trackEvent:()=>m,trackFailureEvent:()=>vt,trackHiddenEvent:()=>H,trackInputChangeEvent:()=>yr,trackInteractiveEvent:()=>ht,trackMediaEvent:()=>Ct,trackMediaLoadEvent:()=>wt,trackMediaPauseEvent:()=>Lt,trackMediaStartEvent:()=>Pt,trackMediaStopEvent:()=>At,trackNewElement:()=>$,trackNewElements:()=>_,trackNonInteractiveEvent:()=>Vt,trackPressEvent:()=>vr,trackRemovedElement:()=>Pr,trackRemovedElements:()=>Ar,trackSuccessEvent:()=>yt,trackVisibility:()=>It,trackVisibilityHiddenEvent:()=>Vr,trackVisibilityVisibleEvent:()=>N,trackVisibleEvent:()=>hr,trackerErrorHandler:()=>c});module.exports=Et(o);var D={name:"@objectiv/tracker-browser",version:"0.0.26",description:"Objectiv Web application analytics tracker for the open analytics taxonomy",license:"Apache-2.0",homepage:"https://objectiv.io",keywords:["objectiv","tracking","web","analytics","events","taxonomy"],repository:{type:"git",url:"https://github.com/objectiv/objectiv-analytics.git",directory:"tracker/trackers/browser"},bugs:"https://github.com/objectiv/objectiv-analytics/issues",contributors:[{name:"Surai Di Rosa",email:"surai.dirosa@gmail.com",url:"https://github.com/sdirosa"}],main:"./dist/index.js",module:"./dist/esm/index.js",types:"./dist/index.d.ts",files:["dist"],exports:{".":{require:"./dist/index.js",import:"./dist/esm/index.js",types:"./dist/index.d.ts"}},scripts:{build:"tsup src/index.ts --format cjs,esm --legacy-output --minify --dts --sourcemap --clean","deploy:verdaccio":"npm publish",prettify:"prettier --write .",tsc:"tsc --noEmit",test:"jest --silent","test:ci":"jest --silent --ci","test:coverage":"jest --silent --coverage",depcheck:"npx depcheck"},devDependencies:{"@objectiv/developer-tools":"^0.0.26","@objectiv/testing-tools":"^0.0.26",jest:"^28.1.3","jest-fetch-mock":"^3.0.3","jest-useragent-mock":"^0.1.1",prettier:"^2.7.1","ts-jest":"^28.0.7",tsup:"^6.2.1",typescript:"^4.7.4"},dependencies:{"@objectiv/plugin-application-context":"^0.0.26","@objectiv/plugin-http-context":"^0.0.26","@objectiv/plugin-path-context-from-url":"^0.0.26","@objectiv/plugin-root-location-context-from-url":"^0.0.26","@objectiv/queue-local-storage":"^0.0.26","@objectiv/schema":"^0.0.26","@objectiv/tracker-core":"^0.0.26","@objectiv/transport-debug":"^0.0.26","@objectiv/transport-fetch":"^0.0.26","@objectiv/transport-xhr":"^0.0.26"}};i(o,require("@objectiv/tracker-core"),module.exports);var Qr=require("@objectiv/plugin-application-context"),Hr=require("@objectiv/plugin-http-context"),Rr=require("@objectiv/plugin-path-context-from-url"),Nr=require("@objectiv/plugin-root-location-context-from-url"),W=r=>{let{trackApplicationContext:t=!0,trackHttpContext:e=!0,trackPathContextFromURL:n=!0,trackRootLocationContextFromURL:a=!0}=r,s=[];return t&&s.push(new Qr.ApplicationContextPlugin),e&&s.push(new Hr.HttpContextPlugin),n&&s.push(new Rr.PathContextFromURLPlugin),a&&s.push(new Nr.RootLocationContextFromURLPlugin),s};var _r=require("@objectiv/queue-local-storage"),Jr=require("@objectiv/tracker-core"),K=r=>new Jr.TrackerQueue({store:new _r.LocalStorageQueueStore({trackerId:r.trackerId??r.applicationId})});var F=require("@objectiv/tracker-core"),jr=require("@objectiv/transport-fetch"),Fr=require("@objectiv/transport-xhr"),X=()=>new F.TrackerTransportRetry({transport:new F.TrackerTransportSwitch({transports:[new jr.FetchTransport,new Fr.XHRTransport]})});var z=r=>r===!0||r===!1||r==="onTimeout";var Mr=require("@objectiv/tracker-core"),h=r=>typeof r!="object"||r===null||!r._type||!r.id?!1:Object.keys(Mr.LocationContextName).includes(r._type);var p=r=>!(typeof r!="object"||r===null||!r.hasOwnProperty("id")||r.id&&typeof r.id!="string");var l=(T=>(T.elementId="data-objectiv-element-id",T.parentElementId="data-objectiv-parent-element-id",T.context="data-objectiv-context",T.trackClicks="data-objectiv-track-clicks",T.trackBlurs="data-objectiv-track-blurs",T.trackVisibility="data-objectiv-track-visibility",T.tagChildren="data-objectiv-tag-children",T.tracked="data-objectiv-tracked",T.validate="data-objectiv-validate",T))(l||{});var C=r=>r instanceof HTMLElement||r instanceof SVGElement;var k=r=>C(r)&&r.hasAttribute("data-objectiv-context");var Y=r=>k(r)&&r.hasAttribute("data-objectiv-parent-element-id");var Z=require("@objectiv/tracker-core"),rr=r=>[Z.LocationContextName.PressableContext.toString(),Z.LocationContextName.LinkContext.toString()].includes(r._type);var tr=require("@objectiv/tracker-core"),er=r=>[tr.LocationContextName.OverlayContext.toString(),tr.LocationContextName.ExpandableContext.toString()].includes(r._type);var or=r=>C(r)&&r.hasAttribute("data-objectiv-tag-children");var ir=r=>!(typeof r!="object"||r===null||r["data-objectiv-element-id"]===void 0||r["data-objectiv-context"]===void 0);var S=r=>typeof r!="boolean"&&typeof r!="object"||r===null?!1:!(typeof r=="object"&&typeof r.trackValue!="boolean");var ar=r=>!(typeof r!="object"||r===null||r.intervalMs===void 0&&r.timeoutMs===void 0&&r.flushQueue===void 0||r.intervalMs!==void 0&&typeof r.intervalMs!="number"||r.timeoutMs!==void 0&&typeof r.timeoutMs!="number"||r.flushQueue!==void 0&&!z(r.flushQueue));var Q=r=>typeof r!="boolean"&&typeof r!="object"||r===null||typeof r=="object"&&r.waitUntilTracked!==!0&&typeof r.waitUntilTracked!="object"?!1:typeof r=="object"&&typeof r.waitUntilTracked=="object"?ar(r.waitUntilTracked):!0;var w=r=>typeof r!="boolean"&&typeof r!="object"?!1:typeof r=="boolean"?!0:!(!r.mode||!["auto","manual"].includes(r.mode)||r.mode==="auto"&&r.hasOwnProperty("isVisible")||r.mode==="manual"&&!r.hasOwnProperty("isVisible")||r.mode==="manual"&&typeof r.isVisible!="boolean");var L=r=>!(typeof r!="object"||r===null||!r.hasOwnProperty("locationUniqueness")||typeof r.locationUniqueness!="boolean");var nr=r=>!(typeof r!="object"||r===null||r.trackClicks!==void 0&&!Q(r.trackClicks)||r.trackBlurs!==void 0&&!S(r.trackBlurs)||r.trackVisibility!==void 0&&!w(r.trackVisibility)||r.validate!==void 0&&!L(r.validate));var cr=r=>!(typeof r!="object"||r===null||!r.hasOwnProperty("instance")||r.instance&&!h(r.instance)||r.options&&!nr(r.options));var P=r=>!(typeof r!="object"||r===null||r.queryAll===void 0||r.tagAs===void 0||r.queryAll!==void 0&&typeof r.queryAll!="string"||r.tagAs!==void 0&&!ir(r.tagAs));var d=r=>r===null?null:JSON.parse(r);var b=r=>{let t=d(r);if(!h(t))throw new Error(`LocationContext is not valid: ${JSON.stringify(r)}`);return t};var sr=r=>{if(r===null)throw new Error("Received `null` while attempting to parse Children Tagging Attribute");if(typeof r!="string")throw new Error("Children Tagging Attribute must be a string");let t=d(r);if(!Array.isArray(t))throw new Error("Parsed Children Tagging Attribute is not an array");return t.forEach(e=>{if(!P(e))throw new Error(`Invalid children tagging parameters: ${JSON.stringify(t)}`)}),t};var mr=r=>{let t=d(r);if(!S(t))throw new Error(`Invalid trackClicks attribute: ${JSON.stringify(r)}`);return t===!0?{trackValue:!1}:t===!1?void 0:t};var lr=r=>{let t=d(r);if(!Q(t))throw new Error(`Invalid trackClicks attribute: ${JSON.stringify(r)}`);if(typeof t=="boolean")return t?{}:void 0;let e={},{waitUntilTracked:n}=t;if(typeof n=="boolean")e.waitForQueue={},e.flushQueue=!0;else{let{flushQueue:a,...s}=n;e.flushQueue=a!==void 0?a:!0,e.waitForQueue=s}return e};var A=r=>{let t=d(r);if(!w(t))throw new Error(`trackVisibility attribute is not valid: ${JSON.stringify(r)}`);if(t===!0)return{mode:"auto"};if(t!==!1)return t};var fr=r=>{if(!r)return{locationUniqueness:!0};let t=d(r);if(!L(t))throw new Error(`validate attribute is not valid: ${JSON.stringify(r)}`);return t};var x=r=>JSON.stringify(r);var pr=r=>{if(!h(r))throw new Error(`Object is not a valid LocationContext: ${JSON.stringify(r)}`);return x(r)};var ur=r=>(r.forEach(t=>{if(!P(t))throw new Error(`Invalid children tagging parameters: ${JSON.stringify(r)}`)}),JSON.stringify(r));var gr=r=>x(r);var kr=r=>x(r);var dr=r=>{if(!w(r))throw new Error(`trackVisibility is not valid, received: ${JSON.stringify(r)}`);return x(r)};var Tr=r=>{if(!L(r))throw new Error(`validate attribute is not valid, received: ${JSON.stringify(r)}`);return x(r)};var I=(r,t=[])=>{var n;if(!r)return t;k(r)&&t.push(r);let e=r.parentElement;if(Y(r)){let a=r.getAttribute("data-objectiv-parent-element-id"),s=document.querySelector(`[${"data-objectiv-element-id"}='${a}']`);if(!k(s))return(n=globalThis.objectiv.devTools)==null||n.TrackerConsole.error(`findParentTaggedElements: missing or invalid Parent Element '${a}'`),t;e=s}return I(e,t)};var $r=require("@objectiv/tracker-core");var c=(r,t,e)=>{var n;e?e(r):(n=globalThis.objectiv.devTools)==null||n.TrackerConsole.error(r,t)};var xr=r=>{let t=[];try{let{element:e,tracker:n}=r;n&&t.push(...n.location_stack),C(e)&&I(e).reverse().forEach(s=>{t.push(b(s.getAttribute("data-objectiv-context")))}),n&&new $r.TrackerPlugins(n.plugins).enrich({location_stack:t,global_contexts:[]})}catch(e){c(e,r)}return t};var Er=()=>{if(!(typeof location>"u"))return location.href};var B=(r,t)=>{if(!(typeof t>"u"))return r(t)};var Ur=require("@objectiv/tracker-core");var V=()=>globalThis.objectiv.TrackerRepository;var v=r=>{let t=V().get(r);if(!t)throw new Error("No Tracker found. Please create one via `makeTracker`.");return t};var m=r=>{try{let{event:t,element:e,tracker:n=v(r.trackerId)}=r,a=t.location_stack;(a==null?void 0:a.length)===0&&e&&(a=xr({element:e})),n.trackEvent({...t,location_stack:a})}catch(t){c(t,r,r.onError)}};var vt=r=>{try{let{message:t,element:e=document,locationStack:n,globalContexts:a,tracker:s}=r;return m({event:(0,Ur.makeFailureEvent)({message:t,location_stack:n,global_contexts:a}),element:e,tracker:s})}catch(t){c(t,r,r.onError)}};var qr=require("@objectiv/tracker-core");var br=(r={})=>{try{let{element:t=document,locationStack:e,globalContexts:n,tracker:a}=r;return m({event:(0,qr.makeApplicationLoadedEvent)({location_stack:e,global_contexts:n}),element:t,tracker:a})}catch(t){c(t,r,r.onError)}};var Gr=require("@objectiv/tracker-core");var vr=({element:r,locationStack:t,globalContexts:e,tracker:n,onError:a})=>m({event:(0,Gr.makePressEvent)({location_stack:t,global_contexts:e}),element:r,tracker:n,onError:a});var Dr=require("@objectiv/tracker-core");var yt=r=>{try{let{message:t,element:e=document,locationStack:n,globalContexts:a,tracker:s}=r;return m({event:(0,Dr.makeSuccessEvent)({message:t,location_stack:n,global_contexts:a}),element:e,tracker:s})}catch(t){c(t,r,r.onError)}};var Wr=require("@objectiv/tracker-core");var yr=({element:r,locationStack:t,globalContexts:e,tracker:n,onError:a})=>m({event:(0,Wr.makeInputChangeEvent)({location_stack:t,global_contexts:e}),element:r,tracker:n,onError:a});var Kr=require("@objectiv/tracker-core");var ht=({element:r,locationStack:t,globalContexts:e,tracker:n,onError:a})=>m({event:(0,Kr.makeInteractiveEvent)({location_stack:t,global_contexts:e}),element:r,tracker:n,onError:a});var Xr=require("@objectiv/tracker-core");var H=({element:r,locationStack:t,globalContexts:e,tracker:n,onError:a})=>m({event:(0,Xr.makeHiddenEvent)({location_stack:t,global_contexts:e}),element:r,tracker:n,onError:a});var zr=require("@objectiv/tracker-core");var hr=({element:r,locationStack:t,globalContexts:e,tracker:n,onError:a})=>m({event:(0,zr.makeVisibleEvent)({location_stack:t,global_contexts:e}),element:r,tracker:n,onError:a});var Yr=require("@objectiv/tracker-core");var Ct=({element:r,locationStack:t,globalContexts:e,tracker:n,onError:a})=>m({event:(0,Yr.makeMediaEvent)({location_stack:t,global_contexts:e}),element:r,tracker:n,onError:a});var Zr=require("@objectiv/tracker-core");var wt=({element:r,locationStack:t,globalContexts:e,tracker:n,onError:a})=>m({event:(0,Zr.makeMediaLoadEvent)({location_stack:t,global_contexts:e}),element:r,tracker:n,onError:a});var rt=require("@objectiv/tracker-core");var Lt=({element:r,locationStack:t,globalContexts:e,tracker:n,onError:a})=>m({event:(0,rt.makeMediaPauseEvent)({location_stack:t,global_contexts:e}),element:r,tracker:n,onError:a});var tt=require("@objectiv/tracker-core");var Pt=({element:r,locationStack:t,globalContexts:e,tracker:n,onError:a})=>m({event:(0,tt.makeMediaStartEvent)({location_stack:t,global_contexts:e}),element:r,tracker:n,onError:a});var et=require("@objectiv/tracker-core");var At=({element:r,locationStack:t,globalContexts:e,tracker:n,onError:a})=>m({event:(0,et.makeMediaStopEvent)({location_stack:t,global_contexts:e}),element:r,tracker:n,onError:a});var ot=require("@objectiv/tracker-core");var Vt=({element:r,locationStack:t,globalContexts:e,tracker:n,onError:a})=>m({event:(0,ot.makeNonInteractiveEvent)({location_stack:t,global_contexts:e}),element:r,tracker:n,onError:a});var M=require("@objectiv/tracker-core");var It=({element:r,locationStack:t,globalContexts:e,tracker:n,isVisible:a,onError:s})=>m({event:a?(0,M.makeVisibleEvent)({location_stack:t,global_contexts:e}):(0,M.makeHiddenEvent)({location_stack:t,global_contexts:e}),element:r,tracker:n,onError:s});var Cr=(r,t)=>{try{return r.forEach(e=>{if(!P(e))throw new Error(`Invalid children tagging parameters: ${JSON.stringify(r)}`)}),{["data-objectiv-tag-children"]:ur(r)}}catch(e){return c(e,r,t)}};var Bt=(r,t)=>Cr([r],t);var it=require("@objectiv/tracker-core");var O=require("@objectiv/tracker-core");var u=r=>{try{if(!cr(r))throw new Error(`Invalid tagLocation parameters: ${JSON.stringify(r)}`);let{instance:t,options:e}=r,n=rr(t),a=t._type===O.LocationContextName.InputContext,s=er(t),g=(e==null?void 0:e.trackClicks)??(n?!0:void 0),f=(e==null?void 0:e.trackBlurs)??(a?!0:void 0),y=e!=null&&e.parent?e.parent["data-objectiv-element-id"]:void 0,T=(e==null?void 0:e.trackVisibility)!==!1?e==null?void 0:e.trackVisibility:void 0;((e==null?void 0:e.trackVisibility)===void 0&&s||(e==null?void 0:e.trackVisibility)===!0)&&(T={mode:"auto"});let j={["data-objectiv-element-id"]:(0,O.generateGUID)(),["data-objectiv-parent-element-id"]:y,["data-objectiv-context"]:pr(t),["data-objectiv-track-clicks"]:B(kr,g),["data-objectiv-track-blurs"]:B(gr,f),["data-objectiv-track-visibility"]:B(dr,T),["data-objectiv-validate"]:B(Tr,e==null?void 0:e.validate)};return(0,O.getObjectKeys)(j).forEach(Sr=>{j[Sr]===void 0&&delete j[Sr]}),j}catch(t){return c(t,r,r==null?void 0:r.onError)}};var Ot=r=>{try{if(!p(r))throw new Error(`Invalid location tagger parameters: ${JSON.stringify(r)}`);let{id:t,options:e}=r;return u({instance:(0,it.makeContentContext)({id:t}),options:e,onError:r.onError})}catch(t){return c(t,r)}};var at=require("@objectiv/tracker-core");var St=r=>{try{if(!p(r))throw new Error(`Invalid location tagger parameters: ${JSON.stringify(r)}`);let{id:t,options:e}=r;return u({instance:(0,at.makeExpandableContext)({id:t}),options:e,onError:r.onError})}catch(t){return c(t,r)}};var nt=require("@objectiv/tracker-core");var Qt=r=>{try{if(!p(r))throw new Error(`Invalid location tagger parameters: ${JSON.stringify(r)}`);let{id:t,options:e}=r;return u({instance:(0,nt.makeInputContext)({id:t}),options:e,onError:r.onError})}catch(t){return c(t,r)}};var ct=require("@objectiv/tracker-core");var Ht=r=>{try{if(!p(r))throw new Error(`Invalid location tagger parameters: ${JSON.stringify(r)}`);let{id:t,href:e,options:n}=r;return u({instance:(0,ct.makeLinkContext)({id:t,href:e}),options:n,onError:r.onError})}catch(t){return c(t,r)}};var st=require("@objectiv/tracker-core");var Rt=r=>{try{if(!p(r))throw new Error(`Invalid location tagger parameters: ${JSON.stringify(r)}`);let{id:t,options:e}=r;return u({instance:(0,st.makeMediaPlayerContext)({id:t}),options:e,onError:r.onError})}catch(t){return c(t,r)}};var mt=require("@objectiv/tracker-core");var Nt=r=>{try{if(!p(r))throw new Error(`Invalid location tagger parameters: ${JSON.stringify(r)}`);let{id:t,options:e}=r;return u({instance:(0,mt.makeNavigationContext)({id:t}),options:e,onError:r.onError})}catch(t){return c(t,r)}};var lt=require("@objectiv/tracker-core");var _t=r=>{try{if(!p(r))throw new Error(`Invalid location tagger parameters: ${JSON.stringify(r)}`);let{id:t,options:e}=r;return u({instance:(0,lt.makeOverlayContext)({id:t}),options:e,onError:r.onError})}catch(t){return c(t,r)}};var ft=require("@objectiv/tracker-core");var Jt=r=>{try{if(!p(r))throw new Error(`Invalid location tagger parameters: ${JSON.stringify(r)}`);let{id:t,options:e}=r;return u({instance:(0,ft.makePressableContext)({id:t}),options:e,onError:r.onError})}catch(t){return c(t,r)}};var pt=require("@objectiv/tracker-core");var jt=r=>{try{if(!p(r))throw new Error(`Invalid location tagger parameters: ${JSON.stringify(r)}`);let{id:t,options:e}=r;return u({instance:(0,pt.makeRootLocationContext)({id:t}),options:e,onError:r.onError})}catch(t){return c(t,r)}};var E={observerInstance:null,applicationLoaded:!1,previousURL:Er()};var ut=require("@objectiv/tracker-core");var wr=(r,t,e,n)=>a=>{if(a.target===r||k(a.currentTarget)&&a.currentTarget.hasAttribute("data-objectiv-track-blurs")){let s=[];(e==null?void 0:e.trackValue)&&n&&(a.target instanceof HTMLInputElement||a.target instanceof HTMLSelectElement)&&s.push((0,ut.makeInputValueContext)({id:n,value:a.target.value})),yr({element:r,tracker:t,globalContexts:s})}};var R=(r,t,e)=>async function n(a){if((a.target===r||k(a.currentTarget)&&a.currentTarget.hasAttribute("data-objectiv-track-clicks"))&&(vr({element:r,tracker:t}),e)){let{waitForQueue:s,flushQueue:g}=e,f=new a.constructor(a.type,a);a.preventDefault(),a.stopImmediatePropagation();let y=!0;s&&(y=await t.waitForQueue(s)),(g===!0||g==="onTimeout"&&!y)&&t.flushQueue(),r.removeEventListener(a.type,n,!0),r.dispatchEvent(f),r.addEventListener(a.type,R(r,t,e),!0)}};var Lr=r=>{let t=[];try{if(!or(r))return t;sr(r.getAttribute("data-objectiv-tag-children")).forEach(n=>{let{queryAll:a,tagAs:s}=n;r.querySelectorAll(a).forEach(g=>{for(let[f,y]of Object.entries(s))y&&g.setAttribute(f,y);t.push(g)})})}catch(e){c(e)}return t};var N=(r,t)=>{try{if(!r.hasAttribute("data-objectiv-track-visibility"))return;let e=A(r.getAttribute("data-objectiv-track-visibility"));e&&(e.mode==="auto"||e.mode==="manual"&&e.isVisible)&&hr({element:r,tracker:t})}catch(e){c(e)}};var $=(r,t)=>{try{if(k(r)){if(r.hasAttribute("data-objectiv-tracked"))return;r.setAttribute("data-objectiv-tracked","true");let e=fr(r.getAttribute("data-objectiv-validate")),n=r.getAttribute("data-objectiv-context"),a=b(n);if(globalThis.objectiv.devTools&&e.locationUniqueness){let s=null,g=I(r).splice(1).reverse().pop()??null;if(g){let f=g.getAttribute("data-objectiv-context");f&&(s=b(f))}globalThis.objectiv.devTools.LocationTree.add(a,s)}if(N(r,t),r.hasAttribute("data-objectiv-track-clicks")){let s=lr(r.getAttribute("data-objectiv-track-clicks"));if(!s)return;s.waitForQueue?r.addEventListener("click",R(r,t,s),!0):r.addEventListener("click",R(r,t),{passive:!0})}if(r.hasAttribute("data-objectiv-track-blurs")){let s=mr(r.getAttribute("data-objectiv-track-blurs"));if(!s)return;r.addEventListener("blur",wr(r,t,s,a.id),{passive:!0})}}}catch(e){c(e)}};var _=(r,t)=>{try{let e=r.querySelectorAll(`[${"data-objectiv-context"}]`);[r,...Array.from(e)].forEach(a=>$(a,t));let n=r.querySelectorAll(`[${"data-objectiv-tag-children"}]`);[r,...Array.from(n)].forEach(a=>{Lr(a).forEach(s=>{$(s,t)})})}catch(e){c(e)}};var Pr=(r,t)=>{try{if(k(r)){if(r.hasAttribute("data-objectiv-track-visibility")){let e=A(r.getAttribute("data-objectiv-track-visibility"));e&&e.mode==="auto"&&H({element:r,tracker:t})}globalThis.objectiv.devTools&&globalThis.objectiv.devTools.LocationTree.remove(b(r.getAttribute("data-objectiv-context")))}}catch(e){c(e)}};var Ar=(r,t)=>{try{let e=r.querySelectorAll(`[${"data-objectiv-element-id"}]`);[r,...Array.from(e)].forEach(n=>Pr(n,t))}catch(e){c(e)}};var Vr=(r,t)=>{try{if(!r.hasAttribute("data-objectiv-track-visibility"))return;let e=A(r.getAttribute("data-objectiv-track-visibility"));e&&e.mode==="manual"&&!e.isVisible&&H({element:r,tracker:t})}catch(e){c(e)}};var Ir=()=>r=>{try{let t=v();r.forEach(({addedNodes:e,removedNodes:n,target:a,attributeName:s,oldValue:g})=>{if(globalThis.objectiv.devTools&&s==="data-objectiv-element-id"&&g){let f=document.querySelector(`[${"data-objectiv-element-id"}='${g}']`);f&&globalThis.objectiv.devTools.LocationTree.remove(b(f.getAttribute("data-objectiv-context")))}e.forEach(f=>{f instanceof Element&&_(f,t)}),n.forEach(f=>{f instanceof Element&&Ar(f,t)}),s==="data-objectiv-track-visibility"&&k(a)&&(N(a,t),Vr(a,t))})}catch(t){c(t)}};var U=require("@objectiv/tracker-core");var J=class extends U.Tracker{constructor(e,...n){let a=e;if(a.platform=U.TrackerPlatform.BROWSER,!a.transport&&!e.endpoint)throw new Error("Either `transport` or `endpoint` must be provided");if(a.transport&&e.endpoint)throw new Error("Please provider either `transport` or `endpoint`, not both at same time");e.endpoint&&(a={...a,transport:X(),queue:a.queue??K(a)}),a.plugins=[...W(e),...a.plugins??[]];super(a,...n);this.trackerConfig=e}};var gt=(r,t)=>{let e={...r},n={...t};return delete e.active,delete n.active,delete e.anonymous,delete n.anonymous,JSON.stringify(e)===JSON.stringify(n)};var Br=r=>{try{if(E.observerInstance)return;let t=Ir();E.observerInstance=new MutationObserver(t),_(document.documentElement,v()),E.observerInstance.observe(document,{childList:!0,subtree:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["data-objectiv-track-visibility","data-objectiv-element-id"]}),((r==null?void 0:r.trackApplicationLoadedEvent)??!0)&&!E.applicationLoaded&&(E.applicationLoaded=!0,br({tracker:v()}))}catch(t){c(t)}};var Or=r=>{let t=new J(r);return Br(r),t};var Ft=r=>{var a;let t=V(),e=r.trackerId??r.applicationId,n=t.trackersMap.get(e);return n?(gt(n.trackerConfig,r)||(a=globalThis.objectiv.devTools)==null||a.TrackerConsole.error(`Tracker \`${e}\` exists but its configuration doesn't match the given one. This means getOrMakeTracker has been called twice with different configs.`),n):Or(r)};var Mt=async r=>{let t,e,n,a={};typeof r=="string"?(t=r,e=a,n=!0):(t=r.trackerId,e=r.waitForQueue??a,n=r.flushQueue??!0);let g=v(),f=!0;e&&(f=await g.waitForQueue(e)),(n===!0||n==="onTimeout"&&!f)&&g.flushQueue(),V().setDefault(t)};var $t=()=>{try{if(!E.observerInstance)return;E.observerInstance.disconnect(),E.observerInstance=null}catch(r){c(r)}};globalThis.objectiv=globalThis.objectiv??{};globalThis.objectiv.versions=globalThis.objectiv.versions??new Map;globalThis.objectiv.versions.set(D.name,D.version);0&&(module.exports={AutoTrackingState,BrowserTracker,TaggingAttribute,findParentTaggedElements,getElementLocationStack,getLocationHref,getOrMakeTracker,getTracker,getTrackerRepository,isFlushQueueOptions,isLocationContext,isLocationTaggerParameters,isParentTaggedElement,isPressableContext,isShowableContext,isTagChildrenElement,isTagLocationAttributes,isTagLocationOptions,isTagLocationParameters,isTaggableElement,isTaggedElement,isTrackBlursAttribute,isTrackClicksAttribute,isTrackVisibilityAttribute,isValidChildrenTaggingQuery,isValidateAttribute,isWaitUntilTrackedOptions,makeBlurEventHandler,makeBrowserTrackerDefaultPluginsList,makeBrowserTrackerDefaultQueue,makeBrowserTrackerDefaultTransport,makeClickEventHandler,makeMutationCallback,makeTracker,parseJson,parseLocationContext,parseTagChildren,parseTrackBlurs,parseTrackClicks,parseTrackVisibility,parseValidate,processTagChildrenElement,runIfValueIsNotUndefined,setDefaultTracker,startAutoTracking,stopAutoTracking,stringifyJson,stringifyLocationContext,stringifyTagChildren,stringifyTrackBlurs,stringifyTrackClicks,stringifyTrackVisibility,stringifyValidate,tagChild,tagChildren,tagContent,tagExpandable,tagInput,tagLink,tagLocation,tagMediaPlayer,tagNavigation,tagOverlay,tagPressable,tagRootLocation,trackApplicationLoadedEvent,trackEvent,trackFailureEvent,trackHiddenEvent,trackInputChangeEvent,trackInteractiveEvent,trackMediaEvent,trackMediaLoadEvent,trackMediaPauseEvent,trackMediaStartEvent,trackMediaStopEvent,trackNewElement,trackNewElements,trackNonInteractiveEvent,trackPressEvent,trackRemovedElement,trackRemovedElements,trackSuccessEvent,trackVisibility,trackVisibilityHiddenEvent,trackVisibilityVisibleEvent,trackVisibleEvent,trackerErrorHandler});
//# sourceMappingURL=index.js.map