@walkeros/web-source-browser 3.4.0 → 3.4.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/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var e=Object.defineProperty,t=(t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})},n=Object.defineProperty;((e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})})({},{Level:()=>o});var r,o=((r=o||{})[r.ERROR=0]="ERROR",r[r.WARN=1]="WARN",r[r.INFO=2]="INFO",r[r.DEBUG=3]="DEBUG",r),i={merge:!0,shallow:!0,extend:!0};function s(e,t={},n={}){n={...i,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const i=e[r];return n.merge&&Array.isArray(i)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...i]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function c(e){return Array.isArray(e)}function a(e){return void 0!==e}function l(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function u(e){return"object"==typeof e&&null!==e&&!c(e)&&"[object Object]"===Object.prototype.toString.call(e)}function d(e){return"string"==typeof e}function f(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function p(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{null==n||n()}}}function m(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}import{Const as g}from"@walkeros/collector";import{elb as b,getAttribute as h}from"@walkeros/web-core";import{Const as v}from"@walkeros/collector";import{getAttribute as y}from"@walkeros/web-core";function w(e,t,n=!0){return e+(t=null!=t?(n?"-":"")+t:"")}function k(e,t,n,r=!0){return T(y(t,w(e,n,r))||"").reduce((e,n)=>{let[r,o]=R(n);if(!r)return e;if(o||(r.endsWith(":")&&(r=r.slice(0,-1)),o=""),o.startsWith("#")){o=o.slice(1);try{let e=t[o];e||"selected"!==o||(e=t.options[t.selectedIndex].text),o=String(e)}catch(e){o=""}}return r.endsWith("[]")?(r=r.slice(0,-2),c(e[r])||(e[r]=[]),e[r].push(f(o))):e[r]=f(o),e},{})}function x(e,t=v.Commands.Prefix){var n;const r=e;if(!r)return[];let o=[];const i=v.Commands.Action,s=`[${w(t,i,!1)}]`,c=e=>{Object.keys(k(t,e,i,!1)).forEach(n=>{o=o.concat(E(e,n,t))})};return r!==(r.ownerDocument||r)&&(null==(n=r.matches)?void 0:n.call(r,s))&&c(r),D(r,s,c),o}function E(e,t,n=v.Commands.Prefix){const r=[],{actions:o,nearestOnly:i}=function(e,t,n){let r=t;for(;r;){const t=y(r,w(e,v.Commands.Actions,!1));if(t){const e=O(t);if(e[n])return{actions:e[n],nearestOnly:!1}}const o=y(r,w(e,v.Commands.Action,!1));if(o){const e=O(o);if(e[n]||"click"!==n)return{actions:e[n]||[],nearestOnly:!0}}r=$(e,r)}return{actions:[],nearestOnly:!1}}(n,e,t);return o.length?(o.forEach(o=>{const s=T(o.actionParams||"",",").reduce((e,t)=>(e[m(t)]=!0,e),{}),c=A(n,e,s,i);if(!c.length){const t="page",r=`[${w(n,t)}]`,[o,i]=L(e,r,n,t);c.push({entity:t,data:o,nested:[],context:i})}c.forEach(e=>{r.push({entity:e.entity,action:o.action,data:e.data,trigger:t,context:e.context,nested:e.nested})})}),r):r}function j(e=v.Commands.Prefix,t){if(!t)return{};const n=w(e,v.Commands.Globals,!1);let r={};return S(t,`[${n}]`,t=>{r=s(r,k(e,t,v.Commands.Globals,!1))}),r}function O(e){const t={};return T(e).forEach(e=>{const[n,r]=R(e),[o,i]=P(n);if(!o)return;let[s,c]=P(r||"");s=s||o,t[o]||(t[o]=[]),t[o].push({trigger:o,triggerParams:i,action:s,actionParams:c})}),t}function A(e,t,n,r=!1){const o=[];let i=t;for(n=0!==Object.keys(n||{}).length?n:void 0;i;){const s=C(e,i,t,n);if(s&&(o.push(s),r))break;i=$(e,i)}return o}function C(e,t,n,r){const o=y(t,w(e));if(!o||r&&!r[o])return null;const i=[t],c=`[${w(e,o)}],[${w(e,"")}]`,a=w(e,v.Commands.Link,!1);let l={};const u=[],[d,f]=L(n||t,c,e,o);D(t,`[${a}]`,n=>{const[r,o]=R(y(n,a));"parent"===o&&D(t.ownerDocument.body,`[${a}="${r}:child"]`,t=>{i.push(t);const n=C(e,t);n&&u.push(n)})});const p=[];i.forEach(e=>{e.matches(c)&&p.push(e),D(e,c,e=>p.push(e))});let m={};return p.forEach(t=>{m=s(m,k(e,t,"")),l=s(l,k(e,t,o))}),l=s(s(m,l),d),i.forEach(t=>{D(t,`[${w(e)}]`,t=>{const n=C(e,t);n&&u.push(n)})}),{entity:o,data:l,context:f,nested:u}}function $(e,t){const n=w(e,v.Commands.Link,!1);if(t.matches(`[${n}]`)){const[e,r]=R(y(t,n));if("child"===r){const r=t.ownerDocument;let o=null;return S(r,`[${n}="${e}:parent"]`,e=>{o||(o=e)}),o}}const r=t.ownerDocument.defaultView;return!t.parentElement&&t.getRootNode&&t.getRootNode()instanceof r.ShadowRoot?t.getRootNode().host:t.parentElement}function L(e,t,n,r){let o={};const i={};let c=e;const a=`[${w(n,v.Commands.Context,!1)}]`;let l=0;for(;c;)c.matches(t)&&(o=s(k(n,c,""),o),o=s(k(n,c,r),o)),c.matches(a)&&(Object.entries(k(n,c,v.Commands.Context,!1)).forEach(([e,t])=>{t&&!i[e]&&(i[e]=[t,l])}),++l),c=$(n,c);return[o,i]}function S(e,t,n){e.querySelectorAll(t).forEach(n)}function D(e,t,n){e.querySelectorAll(t).forEach(n);e instanceof(e.ownerDocument||e).defaultView.Element&&e.shadowRoot&&D(e.shadowRoot,t,n),e.querySelectorAll("*").forEach(e=>{e.shadowRoot&&D(e.shadowRoot,t,n)})}function T(e,t=";"){if(!e)return[];const n=new RegExp(`(?:[^${t}']+|'[^']*')+`,"ig");return e.match(n)||[]}function R(e){const[t,n]=e.split(/:(.+)/,2);return[m(t),m(n)]}function P(e){const[t,n]=e.split("(",2);return[t,n?n.slice(0,-1):""]}import{isVisible as N}from"@walkeros/web-core";var W=new WeakMap,V=new WeakMap,I=new WeakMap;function M(e){const t=Date.now();let n=V.get(e);if(!n||t-n.lastChecked>500){const r=e.ownerDocument.defaultView,o=e.ownerDocument;n={isVisible:N(e,r,o),lastChecked:t},V.set(e,n)}return n.isVisible}function _(e){const t=(e.ownerDocument||e).defaultView;if(t&&t.IntersectionObserver)return p(()=>new t.IntersectionObserver(t=>{t.forEach(t=>{!function(e,t){var n,r;const o=t.target,i=I.get(e);if(!i)return;const s=i.timers.get(o);if(t.intersectionRatio>0){const r=Date.now();let c=W.get(o);if(!c||r-c.lastChecked>1e3){const e=o.ownerDocument.defaultView;c={isLarge:o.offsetHeight>e.innerHeight,lastChecked:r},W.set(o,c)}if(t.intersectionRatio>=.5||c.isLarge&&M(o)){const t=null==(n=i.elementConfigs)?void 0:n.get(o);if((null==t?void 0:t.multiple)&&t.blocked)return;if(!s){const t=o.ownerDocument.defaultView.setTimeout(async()=>{var t,n;if(M(o)){const r=null==(t=i.elementConfigs)?void 0:t.get(o);(null==r?void 0:r.context)&&await oe(r.context,o,r.trigger);const s=null==(n=i.elementConfigs)?void 0:n.get(o);(null==s?void 0:s.multiple)?s.blocked=!0:function(e,t){const n=I.get(e);if(!n)return;n.observer&&n.observer.unobserve(t);const r=n.timers.get(t);r&&(clearTimeout(r),n.timers.delete(t)),W.delete(t),V.delete(t)}(e,o)}},i.duration);i.timers.set(o,t)}return}}s&&(clearTimeout(s),i.timers.delete(o));const c=null==(r=i.elementConfigs)?void 0:r.get(o);(null==c?void 0:c.multiple)&&(c.blocked=!1)}(e,t)})},{rootMargin:"0px",threshold:[0,.5]}),()=>{})()}function U(e,t,n={multiple:!1}){var r;const o=e.settings.scope;if(!o)return;const i=I.get(o);(null==i?void 0:i.observer)&&t&&(i.elementConfigs||(i.elementConfigs=new WeakMap),i.elementConfigs.set(t,{multiple:null!=(r=n.multiple)&&r,blocked:!1,context:e,trigger:n.multiple?"visible":"impression"}),i.observer.observe(t))}function q(e){if(!e)return;const t=I.get(e);t&&(t.observer&&t.observer.disconnect(),I.delete(e))}function B(e,t,n,r,o,i,s){const{elb:c,settings:a}=e;if(d(t)&&t.startsWith("walker "))return c(t,n);if(u(t)){const e=t;if(!e.source&&a.scope){const t=a.scope.ownerDocument||a.scope,n=t.defaultView;e.source=H(n,t)}return!e.globals&&a.scope&&(e.globals=j(a.prefix,a.scope)),c(e)}const[f]=String(u(t)?t.name:t).split(" ");let p,m=u(n)?n:{},g={},b=!1;if(l(n)&&(p=n,b=!0),l(o)?p=o:u(o)&&Object.keys(o).length&&(g=o),p){const e=A(a.prefix||"data-elb",p).find(e=>e.entity===f);e&&(b&&(m=e.data),g=e.context)}const h=a.scope?a.scope.ownerDocument||a.scope:void 0,v=null==h?void 0:h.defaultView;"page"===f&&v&&(m.id=m.id||v.location.pathname);const y=j(a.prefix,a.scope);return c({name:String(t||""),data:m,context:g,globals:y,nested:i,custom:s,trigger:d(r)?r:"",source:v&&h?H(v,h):void 0})}function H(e,t){return{type:"browser",id:e.location.href,previous_id:t.referrer}}var G,z=[],Y="click",F="hover",K="load",X="pulse",J="scroll",Q="submit",Z="impression",ee="visible",te="wait";function ne(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;if(!n)return;n.addEventListener("click",p(function(t){ce.call(this,e,t)})),n.addEventListener("submit",p(function(t){ae.call(this,e,t)}))}(e,t)}function re(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;z=[];const r=n;if(!r)return;q(r),function(e,t=1e3){I.has(e)||I.set(e,{observer:_(e),timers:new WeakMap,duration:t})}(r,1e3);const o=w(t.prefix,g.Commands.Action,!1),i=r.ownerDocument||r;r!==i&&ie(e,r,o,t);D(r,`[${o}]`,n=>{ie(e,n,o,t)}),z.length&&function(e,t){const n=t.ownerDocument||t,r=n.defaultView,o=(e,t)=>e.filter(([e,n])=>{const o=r.scrollY+r.innerHeight,i=e.offsetTop;if(o<i)return!0;const s=e.clientHeight;return!(100*(1-(i+s-o)/(s||1))>=n)||(oe(t,e,J),!1)});G||(G=function(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}(function(){z=o.call(t,z,e)}),t.addEventListener("scroll",G))}(e,r)}(e,t)}async function oe(e,t,n){const r=E(t,n,e.settings.prefix);return Promise.all(r.map(t=>B(e,{name:`${t.entity} ${t.action}`,...t,trigger:n})))}function ie(e,t,n,r){const o=h(t,n);o&&Object.values(O(o)).forEach(n=>n.forEach(n=>{switch(n.trigger){case F:!function(e,t){t.addEventListener("mouseenter",p(function(t){const n=se(t);n&&oe(e,n,F)}))}(e,t);break;case K:!function(e,t){oe(e,t,K)}(e,t);break;case X:!function(e,t,n=""){const r=t.ownerDocument;setInterval(()=>{r.hidden||oe(e,t,X)},parseInt(n||"")||15e3)}(e,t,n.triggerParams);break;case J:!function(e,t=""){const n=parseInt(t||"")||50;if(n<0||n>100)return;z.push([e,n])}(t,n.triggerParams);break;case Z:U(e,t);break;case ee:U(e,t,{multiple:!0});break;case te:!function(e,t,n=""){setTimeout(()=>oe(e,t,te),parseInt(n||"")||15e3)}(e,t,n.triggerParams)}}))}function se(e){var t;const n=null==(t=e.composedPath)?void 0:t.call(e),r=(null==n?void 0:n.length)?n[0]:e.target;if(r&&"object"==typeof r&&"tagName"in r)return r}function ce(e,t){const n=se(t);n&&oe(e,n,Y)}function ae(e,t){const n=se(t);n&&oe(e,n,Q)}function le(e,t={}){const n=t.name||"elbLayer",r=t.window;if(!r)return;const o=r;o[n]||(o[n]=[]);const i=o[n],s=r.document;i.push=function(...n){if(fe(n[0])){const r=[...Array.from(n[0])],o=Array.prototype.push.apply(this,[r]);return de(e,t.prefix,r,s),o}const r=Array.prototype.push.apply(this,n);return n.forEach(n=>{de(e,t.prefix,n,s)}),r},Array.isArray(i)&&i.length>0&&function(e,t="data-elb",n,r){ue(e,t,n,!0,r),ue(e,t,n,!1,r),n.length=0}(e,t.prefix,i,s)}function ue(e,t,n,r,o){const i=[];let s=!0;n.forEach(e=>{const t=fe(e)?[...Array.from(e)]:null!=(n=e)&&"object"==typeof n&&"length"in n&&"number"==typeof n.length?Array.from(e):[e];var n;if(Array.isArray(t)&&0===t.length)return;if(Array.isArray(t)&&1===t.length&&!t[0])return;const o=t[0],c=!u(o)&&d(o)&&o.startsWith("walker ");if(u(o)){if("object"==typeof o&&0===Object.keys(o).length)return}else{const e=Array.from(t);if(!d(e[0])||""===e[0].trim())return;const n="walker run";s&&e[0]===n&&(s=!1)}(r&&c||!r&&!c)&&i.push(t)}),i.forEach(n=>{de(e,t,n,o)})}function de(e,t="data-elb",n,r){p(()=>{if(Array.isArray(n)){const[o,...i]=n;if(!o||d(o)&&""===o.trim())return;if(d(o)&&o.startsWith("walker "))return void e(o,i[0]);B({elb:e,settings:{prefix:t,scope:r,pageview:!1,elb:"",elbLayer:!1}},o,...i)}else if(n&&"object"==typeof n){if(0===Object.keys(n).length)return;e(n)}},()=>{})()}function fe(e){return null!=e&&"object"==typeof e&&"[object Arguments]"===Object.prototype.toString.call(e)}var pe={},me={};t(me,{createTrigger:()=>Le,env:()=>ge,step:()=>we,trigger:()=>Se});var ge={};t(ge,{push:()=>ye});var be=()=>{},he=()=>()=>Promise.resolve({ok:!0}),ve={error:be,warn:be,info:be,debug:be,throw:e=>{throw"string"==typeof e?new Error(e):e},json:be,scope:()=>ve},ye={get push(){return he()},get command(){return he()},get elb(){return he()},get window(){return{addEventListener:be,removeEventListener:be,location:{href:"https://example.com/page",pathname:"/page",search:"?query=test",hash:"#section",host:"example.com",hostname:"example.com",origin:"https://example.com",protocol:"https:"},document:{},navigator:{language:"en-US",userAgent:"Mozilla/5.0 (Test)"},screen:{width:1920,height:1080},innerWidth:1920,innerHeight:1080,pageXOffset:0,pageYOffset:0,scrollX:0,scrollY:0}},get document(){return{addEventListener:be,removeEventListener:be,querySelector:be,querySelectorAll:()=>[],getElementById:be,getElementsByClassName:()=>[],getElementsByTagName:()=>[],createElement:()=>({setAttribute:be,getAttribute:be,addEventListener:be,removeEventListener:be}),body:{appendChild:be,removeChild:be},documentElement:{scrollTop:0,scrollLeft:0},readyState:"complete",title:"Test Page",referrer:"",cookie:""}},logger:ve},we={};t(we,{clickEvent:()=>xe,contextAndGlobals:()=>Ce,dataAttributeTypes:()=>Ae,impressionEvent:()=>je,nestedEntities:()=>Oe,pageView:()=>ke,submitEvent:()=>Ee});var ke={trigger:{type:"load",options:{url:"https://example.com/docs",title:"Documentation",referrer:"https://example.com/"}},in:"",out:[["elb",{name:"page view",data:{domain:"example.com",title:"Documentation",referrer:"https://example.com/",id:"/docs"},context:{},globals:{},nested:void 0,custom:void 0,trigger:"load",source:{type:"browser",id:"https://example.com/docs",previous_id:"https://example.com/"}}]]},xe={trigger:{type:"click",options:"button"},in:'<button data-elb="cta" data-elb-cta="label:Sign Up" data-elbaction="click:click">Sign Up</button>',out:[["elb",{name:"cta click",entity:"cta",action:"click",data:{label:"Sign Up"},context:{},globals:{},nested:[],source:{type:"browser",id:"https://example.com/",previous_id:""},trigger:"click"}]]},Ee={trigger:{type:"submit",options:"form"},in:'<form data-elb="signup" data-elb-signup="plan:premium" data-elbaction="submit:complete"></form>',out:[["elb",{name:"signup complete",entity:"signup",action:"complete",data:{plan:"premium"},context:{},globals:{},nested:[],source:{type:"browser",id:"https://example.com/",previous_id:""},trigger:"submit"}]]},je={trigger:{type:"impression",options:"div"},in:'<div data-elb="banner" data-elb-banner="type:promotional;position:sidebar" data-elbaction="impression:view"></div>',out:[["elb",{name:"banner view",entity:"banner",action:"view",data:{type:"promotional",position:"sidebar"},context:{},globals:{},nested:[],source:{type:"browser",id:"https://example.com/",previous_id:""},trigger:"impression"}]]},Oe={trigger:{type:"load"},in:'<div data-elb="product" data-elb-product="id:SKU-42;name:Sneakers" data-elbaction="load:view"><div data-elb="size" data-elb-size="selected:large;inStock:true"></div></div>',out:[["elb",{name:"page view",data:{domain:"example.com",title:"",referrer:"",id:"/"},context:{},globals:{},nested:void 0,custom:void 0,trigger:"load",source:{type:"browser",id:"https://example.com/",previous_id:""}}],["elb",{name:"product view",entity:"product",action:"view",data:{id:"SKU-42",name:"Sneakers"},context:{},globals:{},nested:[{entity:"size",data:{selected:"large",inStock:!0},context:{},nested:[]}],source:{type:"browser",id:"https://example.com/",previous_id:""},trigger:"load"}]]},Ae={trigger:{type:"click",options:"div"},in:'<div data-elb="product" data-elb-product="price:99.99;available:true;colors[]:red;colors[]:blue" data-elbaction="click:select"></div>',out:[["elb",{name:"product select",entity:"product",action:"select",data:{price:99.99,available:!0,colors:["red","blue"]},context:{},globals:{},nested:[],source:{type:"browser",id:"https://example.com/",previous_id:""},trigger:"click"}]]},Ce={trigger:{type:"click",options:'[data-elb="cta"]'},in:'<div data-elbcontext="test:engagement_flow" data-elbglobals="language:en;plan:premium"><div data-elb="cta" data-elb-cta="label:Try Now" data-elbaction="click:signup">Try Now</div></div>',out:[["elb",{name:"cta signup",entity:"cta",action:"signup",data:{label:"Try Now"},context:{test:["engagement_flow",0]},globals:{language:"en",plan:"premium"},nested:[],source:{type:"browser",id:"https://example.com/",previous_id:""},trigger:"click"}]]};import{startFlow as $e}from"@walkeros/collector";var Le=async(e,t)=>{const n=(null==t?void 0:t.sourceId)||"browser";let r;const o=document,i=window;return{get flow(){return r},trigger:(t,s)=>async c=>{var a;if("load"===t||!t){const e="object"==typeof s&&null!==s?s:{};if(e.url){const t=new URL(e.url);i.history.replaceState({},"",t.pathname)}e.title&&(o.title=e.title),e.referrer&&Object.defineProperty(o,"referrer",{value:e.referrer,configurable:!0})}if(c&&(o.body.innerHTML=c),!r){const t=await $e({...e,run:null==(a=e.run)||a});r={collector:t.collector,elb:t.elb}}if(!t||"load"===t)return;const l="string"==typeof s?s:void 0,u=l?o.querySelector(l):null;if(!u)return void console.warn(`Trigger: element not found for selector "${l}"`);const d=r.collector.sources[n];if(!d)return void console.warn(`Trigger: source "${n}" not found in collector`);const f={elb:r.elb,settings:d.config.settings};await oe(f,u,t)}}},Se=(e,t)=>{if(!e||"object"!=typeof e)return;const n=e,r=t.document,o=t.window,i=()=>{var e,t;if(!n.attributes)return;const o=(null==(t=null==(e=n.element)?void 0:e.match(/^(\w+)/))?void 0:t[1])||"div",i=r.createElement(o);for(const[e,t]of Object.entries(n.attributes))i.setAttribute(e,t);if(n.children)for(const e of n.children){const t=r.createElement("div");for(const[n,r]of Object.entries(e))t.setAttribute(n,r);i.appendChild(t)}return r.body.appendChild(i),i};if(!n.trigger||"load"===n.trigger){if(n.url){const e=new URL(n.url);o.history.replaceState({},"",e.pathname)}return n.title&&(r.title=n.title),n.referrer&&Object.defineProperty(r,"referrer",{value:n.referrer}),void i()}return()=>{const e=i();if(e)switch(n.trigger){case"click":e.dispatchEvent(new MouseEvent("click",{bubbles:!0}));break;case"submit":e.dispatchEvent(new Event("submit",{bubbles:!0}));break;case"hover":e.dispatchEvent(new MouseEvent("mouseenter",{bubbles:!0}));break;case"scroll":o.dispatchEvent(new Event("scroll"))}}};function De(e={}){const t=e.prefix||"data-elb";return function(e){let n,r=e;const o={},i={},s={},c={},l={},u={};function f(e){return Object.entries(e).map(([e,t])=>`${e}:${function(e){if(!a(e)||null===e)return"undefined";let t=String(e);return t=t.replace(/\\/g,"\\\\"),t=t.replace(/;/g,"\\;"),t=t.replace(/:/g,"\\:"),t=t.replace(/'/g,"\\'"),t}(t)}`).join(";")}const p={entity:e=>(n=e,r=e,p),data(e,t){const n=null!=r?r:"";return o[n]||(o[n]={}),d(e)?o[n][e]=t:Object.assign(o[n],e),p},action(e,t){if(d(e))if(a(t))i[e]=t;else if(e.includes(":")){const[t,n]=e.split(":",2);i[t]=n}else i[e]=e;else Object.assign(i,e);return p},actions(e,t){if(d(e))if(a(t))s[e]=t;else if(e.includes(":")){const[t,n]=e.split(":",2);s[t]=n}else s[e]=e;else Object.assign(s,e);return p},context:(e,t)=>(d(e)?c[e]=t:Object.assign(c,e),p),globals:(e,t)=>(d(e)?l[e]=t:Object.assign(l,e),p),link:(e,t)=>(d(e)?u[e]=t:Object.assign(u,e),p),get(){const e={};return n&&(e[t]=n),Object.entries(o).forEach(([n,r])=>{if(Object.keys(r).length>0){e[n?`${t}-${n}`:`${t}-`]=f(r)}}),Object.keys(i).length>0&&(e[`${t}action`]=f(i)),Object.keys(s).length>0&&(e[`${t}actions`]=f(s)),Object.keys(c).length>0&&(e[`${t}context`]=f(c)),Object.keys(l).length>0&&(e[`${t}globals`]=f(l)),Object.keys(u).length>0&&(e[`${t}link`]=f(u)),e}};return p}}var Te=async e=>{const{config:t,env:n}=e,{elb:r,command:o,window:i,document:s}=n,c=(null==t?void 0:t.settings)||{},a=i||(void 0!==globalThis.window?globalThis.window:void 0),l=s||(void 0!==globalThis.document?globalThis.document:void 0),u=function(e={},t){return{prefix:"data-elb",pageview:!0,elb:"elb",elbLayer:"elbLayer",scope:t||void 0,...e}}(c,l),f={settings:u},p={elb:r,settings:u},m=e=>{if(e.pageview){const[t,n]=function(e,t){const n=t.ownerDocument||t,r=n.defaultView.location,o="page",i="body"in t?t.body:t,[s,c]=L(i,`[${w(e,o)}]`,e,o);return s.domain=r.hostname,s.title=n.title,s.referrer=n.referrer,r.search&&(s.search=r.search),r.hash&&(s.hash=r.hash),[s,c]}(e.prefix||"data-elb",e.scope);B(p,"page view",t,"load",n)}};a&&l&&(!1!==u.elbLayer&&r&&le(r,{name:d(u.elbLayer)?u.elbLayer:"elbLayer",prefix:u.prefix,window:a}),await async function(e,t,n){const r=()=>{e(t,n)},o=n.scope;if(!o)return void r();const i=o.ownerDocument||o;"loading"!==i.readyState?r():i.addEventListener("DOMContentLoaded",r)}(ne,p,u),d(u.elb)&&u.elb&&(a[u.elb]=(...e)=>{const[t,n,r,o,i,s]=e;return B(p,t,n,r,o,i,s)}));return{type:"browser",config:f,push:(...e)=>{const[t,n,r,o,i,s]=e;return B(p,t,n,r,o,i,s)},destroy:async()=>{l&&q(u.scope||l)},on:async e=>{switch(e){case"ready":default:break;case"run":l&&a&&(re(p,u),m(u))}}}},Re=Te;export{pe as SourceBrowser,De as createTagger,Re as default,me as examples,x as getAllEvents,w as getElbAttributeName,k as getElbValues,E as getEvents,j as getGlobals,Te as sourceBrowser};//# sourceMappingURL=index.mjs.map
1
+ var e=Object.defineProperty,t=(t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})},n=Object.defineProperty;((e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})})({},{Level:()=>o});var r,o=((r=o||{})[r.ERROR=0]="ERROR",r[r.WARN=1]="WARN",r[r.INFO=2]="INFO",r[r.DEBUG=3]="DEBUG",r),i={merge:!0,shallow:!0,extend:!0};function s(e,t={},n={}){n={...i,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const i=e[r];return n.merge&&Array.isArray(i)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...i]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function a(e){return Array.isArray(e)}function c(e){return void 0!==e}function l(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function u(e){return"object"==typeof e&&null!==e&&!a(e)&&"[object Object]"===Object.prototype.toString.call(e)}function d(e){return"string"==typeof e}function p(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function f(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{null==n||n()}}}function m(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}import{Const as g}from"@walkeros/collector";import{elb as b,getAttribute as h}from"@walkeros/web-core";import{Const as v}from"@walkeros/collector";import{getAttribute as y}from"@walkeros/web-core";function w(e,t,n=!0){return e+(t=null!=t?(n?"-":"")+t:"")}function k(e,t,n,r=!0){return R(y(t,w(e,n,r))||"").reduce((e,n)=>{let[r,o]=T(n);if(!r)return e;if(o||(r.endsWith(":")&&(r=r.slice(0,-1)),o=""),o.startsWith("#")){o=o.slice(1);try{let e=t[o];e||"selected"!==o||(e=t.options[t.selectedIndex].text),o=String(e)}catch(e){o=""}}return r.endsWith("[]")?(r=r.slice(0,-2),a(e[r])||(e[r]=[]),e[r].push(p(o))):e[r]=p(o),e},{})}function x(e,t=v.Commands.Prefix){var n;const r=e;if(!r)return[];let o=[];const i=v.Commands.Action,s=`[${w(t,i,!1)}]`,a=e=>{Object.keys(k(t,e,i,!1)).forEach(n=>{o=o.concat(E(e,n,t))})};return r!==(r.ownerDocument||r)&&(null==(n=r.matches)?void 0:n.call(r,s))&&a(r),D(r,s,a),o}function E(e,t,n=v.Commands.Prefix){const r=[],{actions:o,nearestOnly:i}=function(e,t,n){let r=t;for(;r;){const t=y(r,w(e,v.Commands.Actions,!1));if(t){const e=O(t);if(e[n])return{actions:e[n],nearestOnly:!1}}const o=y(r,w(e,v.Commands.Action,!1));if(o){const e=O(o);if(e[n]||"click"!==n)return{actions:e[n]||[],nearestOnly:!0}}r=$(e,r)}return{actions:[],nearestOnly:!1}}(n,e,t);return o.length?(o.forEach(o=>{const s=R(o.actionParams||"",",").reduce((e,t)=>(e[m(t)]=!0,e),{}),a=A(n,e,s,i);if(!a.length){const t="page",r=`[${w(n,t)}]`,[o,i]=L(e,r,n,t);a.push({entity:t,data:o,nested:[],context:i})}a.forEach(e=>{r.push({entity:e.entity,action:o.action,data:e.data,trigger:t,context:e.context,nested:e.nested})})}),r):r}function j(e=v.Commands.Prefix,t){if(!t)return{};const n=w(e,v.Commands.Globals,!1);let r={};return S(t,`[${n}]`,t=>{r=s(r,k(e,t,v.Commands.Globals,!1))}),r}function O(e){const t={};return R(e).forEach(e=>{const[n,r]=T(e),[o,i]=P(n);if(!o)return;let[s,a]=P(r||"");s=s||o,t[o]||(t[o]=[]),t[o].push({trigger:o,triggerParams:i,action:s,actionParams:a})}),t}function A(e,t,n,r=!1){const o=[];let i=t;for(n=0!==Object.keys(n||{}).length?n:void 0;i;){const s=C(e,i,t,n);if(s&&(o.push(s),r))break;i=$(e,i)}return o}function C(e,t,n,r){const o=y(t,w(e));if(!o||r&&!r[o])return null;const i=[t],a=`[${w(e,o)}],[${w(e,"")}]`,c=w(e,v.Commands.Link,!1);let l={};const u=[],[d,p]=L(n||t,a,e,o);D(t,`[${c}]`,n=>{const[r,o]=T(y(n,c));"parent"===o&&D(t.ownerDocument.body,`[${c}="${r}:child"]`,t=>{i.push(t);const n=C(e,t);n&&u.push(n)})});const f=[];i.forEach(e=>{e.matches(a)&&f.push(e),D(e,a,e=>f.push(e))});let m={};return f.forEach(t=>{m=s(m,k(e,t,"")),l=s(l,k(e,t,o))}),l=s(s(m,l),d),i.forEach(t=>{D(t,`[${w(e)}]`,t=>{const n=C(e,t);n&&u.push(n)})}),{entity:o,data:l,context:p,nested:u}}function $(e,t){const n=w(e,v.Commands.Link,!1);if(t.matches(`[${n}]`)){const[e,r]=T(y(t,n));if("child"===r){const r=t.ownerDocument;let o=null;return S(r,`[${n}="${e}:parent"]`,e=>{o||(o=e)}),o}}const r=t.ownerDocument.defaultView;return!t.parentElement&&t.getRootNode&&t.getRootNode()instanceof r.ShadowRoot?t.getRootNode().host:t.parentElement}function L(e,t,n,r){let o={};const i={};let a=e;const c=`[${w(n,v.Commands.Context,!1)}]`;let l=0;for(;a;)a.matches(t)&&(o=s(k(n,a,""),o),o=s(k(n,a,r),o)),a.matches(c)&&(Object.entries(k(n,a,v.Commands.Context,!1)).forEach(([e,t])=>{t&&!i[e]&&(i[e]=[t,l])}),++l),a=$(n,a);return[o,i]}function S(e,t,n){e.querySelectorAll(t).forEach(n)}function D(e,t,n){e.querySelectorAll(t).forEach(n);e instanceof(e.ownerDocument||e).defaultView.Element&&e.shadowRoot&&D(e.shadowRoot,t,n),e.querySelectorAll("*").forEach(e=>{e.shadowRoot&&D(e.shadowRoot,t,n)})}function R(e,t=";"){if(!e)return[];const n=new RegExp(`(?:[^${t}']+|'[^']*')+`,"ig");return e.match(n)||[]}function T(e){const[t,n]=e.split(/:(.+)/,2);return[m(t),m(n)]}function P(e){const[t,n]=e.split("(",2);return[t,n?n.slice(0,-1):""]}import{isVisible as N}from"@walkeros/web-core";var W=new WeakMap,V=new WeakMap,I=new WeakMap;function M(e){const t=Date.now();let n=V.get(e);if(!n||t-n.lastChecked>500){const r=e.ownerDocument.defaultView,o=e.ownerDocument;n={isVisible:N(e,r,o),lastChecked:t},V.set(e,n)}return n.isVisible}function U(e){const t=(e.ownerDocument||e).defaultView;if(t&&t.IntersectionObserver)return f(()=>new t.IntersectionObserver(t=>{t.forEach(t=>{!function(e,t){var n,r;const o=t.target,i=I.get(e);if(!i)return;const s=i.timers.get(o);if(t.intersectionRatio>0){const r=Date.now();let a=W.get(o);if(!a||r-a.lastChecked>1e3){const e=o.ownerDocument.defaultView;a={isLarge:o.offsetHeight>e.innerHeight,lastChecked:r},W.set(o,a)}if(t.intersectionRatio>=.5||a.isLarge&&M(o)){const t=null==(n=i.elementConfigs)?void 0:n.get(o);if((null==t?void 0:t.multiple)&&t.blocked)return;if(!s){const t=o.ownerDocument.defaultView.setTimeout(async()=>{var t,n;if(M(o)){const r=null==(t=i.elementConfigs)?void 0:t.get(o);(null==r?void 0:r.context)&&await oe(r.context,o,r.trigger);const s=null==(n=i.elementConfigs)?void 0:n.get(o);(null==s?void 0:s.multiple)?s.blocked=!0:function(e,t){const n=I.get(e);if(!n)return;n.observer&&n.observer.unobserve(t);const r=n.timers.get(t);r&&(clearTimeout(r),n.timers.delete(t)),W.delete(t),V.delete(t)}(e,o)}},i.duration);i.timers.set(o,t)}return}}s&&(clearTimeout(s),i.timers.delete(o));const a=null==(r=i.elementConfigs)?void 0:r.get(o);(null==a?void 0:a.multiple)&&(a.blocked=!1)}(e,t)})},{rootMargin:"0px",threshold:[0,.5]}),()=>{})()}function _(e,t,n={multiple:!1}){var r;const o=e.settings.scope;if(!o)return;const i=I.get(o);(null==i?void 0:i.observer)&&t&&(i.elementConfigs||(i.elementConfigs=new WeakMap),i.elementConfigs.set(t,{multiple:null!=(r=n.multiple)&&r,blocked:!1,context:e,trigger:n.multiple?"visible":"impression"}),i.observer.observe(t))}function q(e){if(!e)return;const t=I.get(e);t&&(t.observer&&t.observer.disconnect(),I.delete(e))}function B(e,t,n,r,o,i,s){const{elb:a,settings:c}=e;if(d(t)&&t.startsWith("walker "))return a(t,n);if(u(t)){const e=t;if(!e.source&&c.scope){const t=c.scope.ownerDocument||c.scope,n=t.defaultView;e.source=H(n,t)}return!e.globals&&c.scope&&(e.globals=j(c.prefix,c.scope)),a(e)}const[p]=String(u(t)?t.name:t).split(" ");let f,m=u(n)?n:{},g={},b=!1;if(l(n)&&(f=n,b=!0),l(o)?f=o:u(o)&&Object.keys(o).length&&(g=o),f){const e=A(c.prefix||"data-elb",f).find(e=>e.entity===p);e&&(b&&(m=e.data),g=e.context)}const h=c.scope?c.scope.ownerDocument||c.scope:void 0,v=null==h?void 0:h.defaultView;"page"===p&&v&&(m.id=m.id||v.location.pathname);const y=j(c.prefix,c.scope);return a({name:String(t||""),data:m,context:g,globals:y,nested:i,custom:s,trigger:d(r)?r:"",source:v&&h?H(v,h):void 0})}function H(e,t){return{type:"browser",id:e.location.href,previous_id:t.referrer}}var z,G=[],Y="click",F="hover",K="load",X="pulse",J="scroll",Q="submit",Z="impression",ee="visible",te="wait";function ne(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;if(!n)return;n.addEventListener("click",f(function(t){ae.call(this,e,t)})),n.addEventListener("submit",f(function(t){ce.call(this,e,t)}))}(e,t)}function re(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;G=[];const r=n;if(!r)return;q(r),function(e,t=1e3){I.has(e)||I.set(e,{observer:U(e),timers:new WeakMap,duration:t})}(r,1e3);const o=w(t.prefix,g.Commands.Action,!1),i=r.ownerDocument||r;r!==i&&ie(e,r,o,t);D(r,`[${o}]`,n=>{ie(e,n,o,t)}),G.length&&function(e,t){const n=t.ownerDocument||t,r=n.defaultView,o=(e,t)=>e.filter(([e,n])=>{const o=r.scrollY+r.innerHeight,i=e.offsetTop;if(o<i)return!0;const s=e.clientHeight;return!(100*(1-(i+s-o)/(s||1))>=n)||(oe(t,e,J),!1)});z||(z=function(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}(function(){G=o.call(t,G,e)}),t.addEventListener("scroll",z))}(e,r)}(e,t)}async function oe(e,t,n){const r=E(t,n,e.settings.prefix);return Promise.all(r.map(t=>B(e,{name:`${t.entity} ${t.action}`,...t,trigger:n})))}function ie(e,t,n,r){const o=h(t,n);o&&Object.values(O(o)).forEach(n=>n.forEach(n=>{switch(n.trigger){case F:!function(e,t){t.addEventListener("mouseenter",f(function(t){const n=se(t);n&&oe(e,n,F)}))}(e,t);break;case K:!function(e,t){oe(e,t,K)}(e,t);break;case X:!function(e,t,n=""){const r=t.ownerDocument;setInterval(()=>{r.hidden||oe(e,t,X)},parseInt(n||"")||15e3)}(e,t,n.triggerParams);break;case J:!function(e,t=""){const n=parseInt(t||"")||50;if(n<0||n>100)return;G.push([e,n])}(t,n.triggerParams);break;case Z:_(e,t);break;case ee:_(e,t,{multiple:!0});break;case te:!function(e,t,n=""){setTimeout(()=>oe(e,t,te),parseInt(n||"")||15e3)}(e,t,n.triggerParams)}}))}function se(e){var t;const n=null==(t=e.composedPath)?void 0:t.call(e),r=(null==n?void 0:n.length)?n[0]:e.target;if(r&&"object"==typeof r&&"tagName"in r)return r}function ae(e,t){const n=se(t);n&&oe(e,n,Y)}function ce(e,t){const n=se(t);n&&oe(e,n,Q)}function le(e,t={}){const n=t.name||"elbLayer",r=t.window;if(!r)return;const o=r;o[n]||(o[n]=[]);const i=o[n],s=r.document;i.push=function(...n){if(pe(n[0])){const r=[...Array.from(n[0])],o=Array.prototype.push.apply(this,[r]);return de(e,t.prefix,r,s),o}const r=Array.prototype.push.apply(this,n);return n.forEach(n=>{de(e,t.prefix,n,s)}),r},Array.isArray(i)&&i.length>0&&function(e,t="data-elb",n,r){ue(e,t,n,!0,r),ue(e,t,n,!1,r),n.length=0}(e,t.prefix,i,s)}function ue(e,t,n,r,o){const i=[];let s=!0;n.forEach(e=>{const t=pe(e)?[...Array.from(e)]:null!=(n=e)&&"object"==typeof n&&"length"in n&&"number"==typeof n.length?Array.from(e):[e];var n;if(Array.isArray(t)&&0===t.length)return;if(Array.isArray(t)&&1===t.length&&!t[0])return;const o=t[0],a=!u(o)&&d(o)&&o.startsWith("walker ");if(u(o)){if("object"==typeof o&&0===Object.keys(o).length)return}else{const e=Array.from(t);if(!d(e[0])||""===e[0].trim())return;const n="walker run";s&&e[0]===n&&(s=!1)}(r&&a||!r&&!a)&&i.push(t)}),i.forEach(n=>{de(e,t,n,o)})}function de(e,t="data-elb",n,r){f(()=>{if(Array.isArray(n)){const[o,...i]=n;if(!o||d(o)&&""===o.trim())return;if(d(o)&&o.startsWith("walker "))return void e(o,i[0]);B({elb:e,settings:{prefix:t,scope:r,pageview:!1,elb:"",elbLayer:!1}},o,...i)}else if(n&&"object"==typeof n){if(0===Object.keys(n).length)return;e(n)}},()=>{})()}function pe(e){return null!=e&&"object"==typeof e&&"[object Arguments]"===Object.prototype.toString.call(e)}var fe={},me={};t(me,{createTrigger:()=>Le,env:()=>ge,step:()=>we,trigger:()=>Se});var ge={};t(ge,{push:()=>ye});var be=()=>{},he=()=>()=>Promise.resolve({ok:!0}),ve={error:be,warn:be,info:be,debug:be,throw:e=>{throw"string"==typeof e?new Error(e):e},json:be,scope:()=>ve},ye={get push(){return he()},get command(){return he()},get elb(){return he()},get window(){return{addEventListener:be,removeEventListener:be,location:{href:"https://example.com/page",pathname:"/page",search:"?query=test",hash:"#section",host:"example.com",hostname:"example.com",origin:"https://example.com",protocol:"https:"},document:{},navigator:{language:"en-US",userAgent:"Mozilla/5.0 (Test)"},screen:{width:1920,height:1080},innerWidth:1920,innerHeight:1080,pageXOffset:0,pageYOffset:0,scrollX:0,scrollY:0}},get document(){return{addEventListener:be,removeEventListener:be,querySelector:be,querySelectorAll:()=>[],getElementById:be,getElementsByClassName:()=>[],getElementsByTagName:()=>[],createElement:()=>({setAttribute:be,getAttribute:be,addEventListener:be,removeEventListener:be}),body:{appendChild:be,removeChild:be},documentElement:{scrollTop:0,scrollLeft:0},readyState:"complete",title:"Test Page",referrer:"",cookie:""}},logger:ve},we={};t(we,{clickEvent:()=>xe,contextAndGlobals:()=>Ce,dataAttributeTypes:()=>Ae,impressionEvent:()=>je,nestedEntities:()=>Oe,pageView:()=>ke,submitEvent:()=>Ee});var ke={title:"Page view",description:"A page load trigger captures the current URL, title, and referrer as a walker page view event.",trigger:{type:"load",options:{url:"https://example.com/docs",title:"Documentation",referrer:"https://example.com/"}},in:"",out:[["elb",{name:"page view",data:{domain:"example.com",title:"Documentation",referrer:"https://example.com/",id:"/docs"},context:{},globals:{},nested:void 0,custom:void 0,trigger:"load",source:{type:"browser",id:"https://example.com/docs",previous_id:"https://example.com/"}}]]},xe={title:"Click event",description:"A button click with walker data attributes is captured as an entity action event with the mapped label data.",trigger:{type:"click",options:"button"},in:'<button data-elb="cta" data-elb-cta="label:Sign Up" data-elbaction="click:click">Sign Up</button>',out:[["elb",{name:"cta click",entity:"cta",action:"click",data:{label:"Sign Up"},context:{},globals:{},nested:[],source:{type:"browser",id:"https://example.com/",previous_id:""},trigger:"click"}]]},Ee={title:"Submit event",description:"A form submit with walker data attributes produces a signup complete event carrying the selected plan.",trigger:{type:"submit",options:"form"},in:'<form data-elb="signup" data-elb-signup="plan:premium" data-elbaction="submit:complete"></form>',out:[["elb",{name:"signup complete",entity:"signup",action:"complete",data:{plan:"premium"},context:{},globals:{},nested:[],source:{type:"browser",id:"https://example.com/",previous_id:""},trigger:"submit"}]]},je={title:"Impression event",description:"An intersection observer impression on a div with walker attributes emits a banner view event.",trigger:{type:"impression",options:"div"},in:'<div data-elb="banner" data-elb-banner="type:promotional;position:sidebar" data-elbaction="impression:view"></div>',out:[["elb",{name:"banner view",entity:"banner",action:"view",data:{type:"promotional",position:"sidebar"},context:{},globals:{},nested:[],source:{type:"browser",id:"https://example.com/",previous_id:""},trigger:"impression"}]]},Oe={title:"Nested entities",description:"A page load produces a page view plus a product view whose nested size entity is captured on the product event.",trigger:{type:"load"},in:'<div data-elb="product" data-elb-product="id:SKU-42;name:Sneakers" data-elbaction="load:view"><div data-elb="size" data-elb-size="selected:large;inStock:true"></div></div>',out:[["elb",{name:"page view",data:{domain:"example.com",title:"",referrer:"",id:"/"},context:{},globals:{},nested:void 0,custom:void 0,trigger:"load",source:{type:"browser",id:"https://example.com/",previous_id:""}}],["elb",{name:"product view",entity:"product",action:"view",data:{id:"SKU-42",name:"Sneakers"},context:{},globals:{},nested:[{entity:"size",data:{selected:"large",inStock:!0},context:{},nested:[]}],source:{type:"browser",id:"https://example.com/",previous_id:""},trigger:"load"}]]},Ae={title:"Data attribute types",description:"Walker data attributes parse scalar, boolean, and array values into typed fields on the emitted event.",trigger:{type:"click",options:"div"},in:'<div data-elb="product" data-elb-product="price:99.99;available:true;colors[]:red;colors[]:blue" data-elbaction="click:select"></div>',out:[["elb",{name:"product select",entity:"product",action:"select",data:{price:99.99,available:!0,colors:["red","blue"]},context:{},globals:{},nested:[],source:{type:"browser",id:"https://example.com/",previous_id:""},trigger:"click"}]]},Ce={title:"Context and globals",description:"Walker context and globals attributes attach ambient metadata to events emitted by the browser source.",trigger:{type:"click",options:'[data-elb="cta"]'},in:'<div data-elbcontext="test:engagement_flow" data-elbglobals="language:en;plan:premium"><div data-elb="cta" data-elb-cta="label:Try Now" data-elbaction="click:signup">Try Now</div></div>',out:[["elb",{name:"cta signup",entity:"cta",action:"signup",data:{label:"Try Now"},context:{test:["engagement_flow",0]},globals:{language:"en",plan:"premium"},nested:[],source:{type:"browser",id:"https://example.com/",previous_id:""},trigger:"click"}]]};import{startFlow as $e}from"@walkeros/collector";var Le=async(e,t)=>{const n=(null==t?void 0:t.sourceId)||"browser";let r;const o=document,i=window;return{get flow(){return r},trigger:(t,s)=>async a=>{var c;if("load"===t||!t){const e="object"==typeof s&&null!==s?s:{};if(e.url){const t=new URL(e.url);i.history.replaceState({},"",t.pathname)}e.title&&(o.title=e.title),e.referrer&&Object.defineProperty(o,"referrer",{value:e.referrer,configurable:!0})}if(a&&(o.body.innerHTML=a),!r){const t=await $e({...e,run:null==(c=e.run)||c});r={collector:t.collector,elb:t.elb}}if(!t||"load"===t)return;const l="string"==typeof s?s:void 0,u=l?o.querySelector(l):null;if(!u)return void console.warn(`Trigger: element not found for selector "${l}"`);const d=r.collector.sources[n];if(!d)return void console.warn(`Trigger: source "${n}" not found in collector`);const p={elb:r.elb,settings:d.config.settings};await oe(p,u,t)}}},Se=(e,t)=>{if(!e||"object"!=typeof e)return;const n=e,r=t.document,o=t.window,i=()=>{var e,t;if(!n.attributes)return;const o=(null==(t=null==(e=n.element)?void 0:e.match(/^(\w+)/))?void 0:t[1])||"div",i=r.createElement(o);for(const[e,t]of Object.entries(n.attributes))i.setAttribute(e,t);if(n.children)for(const e of n.children){const t=r.createElement("div");for(const[n,r]of Object.entries(e))t.setAttribute(n,r);i.appendChild(t)}return r.body.appendChild(i),i};if(!n.trigger||"load"===n.trigger){if(n.url){const e=new URL(n.url);o.history.replaceState({},"",e.pathname)}return n.title&&(r.title=n.title),n.referrer&&Object.defineProperty(r,"referrer",{value:n.referrer}),void i()}return()=>{const e=i();if(e)switch(n.trigger){case"click":e.dispatchEvent(new MouseEvent("click",{bubbles:!0}));break;case"submit":e.dispatchEvent(new Event("submit",{bubbles:!0}));break;case"hover":e.dispatchEvent(new MouseEvent("mouseenter",{bubbles:!0}));break;case"scroll":o.dispatchEvent(new Event("scroll"))}}};function De(e={}){const t=e.prefix||"data-elb";return function(e){let n,r=e;const o={},i={},s={},a={},l={},u={};function p(e){return Object.entries(e).map(([e,t])=>`${e}:${function(e){if(!c(e)||null===e)return"undefined";let t=String(e);return t=t.replace(/\\/g,"\\\\"),t=t.replace(/;/g,"\\;"),t=t.replace(/:/g,"\\:"),t=t.replace(/'/g,"\\'"),t}(t)}`).join(";")}const f={entity:e=>(n=e,r=e,f),data(e,t){const n=null!=r?r:"";return o[n]||(o[n]={}),d(e)?o[n][e]=t:Object.assign(o[n],e),f},action(e,t){if(d(e))if(c(t))i[e]=t;else if(e.includes(":")){const[t,n]=e.split(":",2);i[t]=n}else i[e]=e;else Object.assign(i,e);return f},actions(e,t){if(d(e))if(c(t))s[e]=t;else if(e.includes(":")){const[t,n]=e.split(":",2);s[t]=n}else s[e]=e;else Object.assign(s,e);return f},context:(e,t)=>(d(e)?a[e]=t:Object.assign(a,e),f),globals:(e,t)=>(d(e)?l[e]=t:Object.assign(l,e),f),link:(e,t)=>(d(e)?u[e]=t:Object.assign(u,e),f),get(){const e={};return n&&(e[t]=n),Object.entries(o).forEach(([n,r])=>{if(Object.keys(r).length>0){e[n?`${t}-${n}`:`${t}-`]=p(r)}}),Object.keys(i).length>0&&(e[`${t}action`]=p(i)),Object.keys(s).length>0&&(e[`${t}actions`]=p(s)),Object.keys(a).length>0&&(e[`${t}context`]=p(a)),Object.keys(l).length>0&&(e[`${t}globals`]=p(l)),Object.keys(u).length>0&&(e[`${t}link`]=p(u)),e}};return f}}var Re=async e=>{const{config:t,env:n}=e,{elb:r,command:o,window:i,document:s}=n,a=(null==t?void 0:t.settings)||{},c=i||(void 0!==globalThis.window?globalThis.window:void 0),l=s||(void 0!==globalThis.document?globalThis.document:void 0),u=function(e={},t){return{prefix:"data-elb",pageview:!0,elb:"elb",elbLayer:"elbLayer",scope:t||void 0,...e}}(a,l),p={settings:u},f={elb:r,settings:u},m=e=>{if(e.pageview){const[t,n]=function(e,t){const n=t.ownerDocument||t,r=n.defaultView.location,o="page",i="body"in t?t.body:t,[s,a]=L(i,`[${w(e,o)}]`,e,o);return s.domain=r.hostname,s.title=n.title,s.referrer=n.referrer,r.search&&(s.search=r.search),r.hash&&(s.hash=r.hash),[s,a]}(e.prefix||"data-elb",e.scope);B(f,"page view",t,"load",n)}};c&&l&&(!1!==u.elbLayer&&r&&le(r,{name:d(u.elbLayer)?u.elbLayer:"elbLayer",prefix:u.prefix,window:c}),await async function(e,t,n){const r=()=>{e(t,n)},o=n.scope;if(!o)return void r();const i=o.ownerDocument||o;"loading"!==i.readyState?r():i.addEventListener("DOMContentLoaded",r)}(ne,f,u),d(u.elb)&&u.elb&&(c[u.elb]=(...e)=>{const[t,n,r,o,i,s]=e;return B(f,t,n,r,o,i,s)}));return{type:"browser",config:p,push:(...e)=>{const[t,n,r,o,i,s]=e;return B(f,t,n,r,o,i,s)},destroy:async()=>{l&&q(u.scope||l)},on:async e=>{switch(e){case"ready":default:break;case"run":l&&c&&(re(f,u),m(u))}}}},Te=Re;export{fe as SourceBrowser,De as createTagger,Te as default,me as examples,x as getAllEvents,w as getElbAttributeName,k as getElbValues,E as getEvents,j as getGlobals,Re as sourceBrowser};//# sourceMappingURL=index.mjs.map