@walkeros/web-source-browser 4.3.0-next-1784055686454 → 4.3.0

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
- import{isString as e}from"@walkeros/core";import{createPushResult as t}from"@walkeros/collector";import{throttle as n,tryCatch as r}from"@walkeros/core";import{Const as o}from"@walkeros/collector";import{elb as s,getAttribute as i}from"@walkeros/web-core";import{assign as c,castValue as l,isArray as a,trim as u}from"@walkeros/core";import{Const as f}from"@walkeros/collector";import{getAttribute as d}from"@walkeros/web-core";function m(e,t,n=!0){return e+(t=null!=t?(n?"-":"")+t:"")}function h(e,t,n,r=!0){return $(d(t,m(e,n,r))||"").reduce((e,n)=>{let[r,o]=A(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(l(o))):e[r]=l(o),e},{})}function g(e,t=f.Commands.Prefix){var n;const r=e;if(!r)return[];let o=[];const s=f.Commands.Action,i=`[${m(t,s,!1)}]`,c=e=>{Object.keys(h(t,e,s,!1)).forEach(n=>{o=o.concat(b(e,n,t))})};return r!==(r.ownerDocument||r)&&(null==(n=r.matches)?void 0:n.call(r,i))&&c(r),P(r,i,c),o}function b(e,t,n=f.Commands.Prefix){const r=[],{actions:o,nearestOnly:s}=function(e,t,n){let r=t;for(;r;){const t=d(r,m(e,f.Commands.Actions,!1));if(t){const e=w(t);if(e[n])return{actions:e[n],nearestOnly:!1}}const o=d(r,m(e,f.Commands.Action,!1));if(o){const e=w(o);if(e[n]||"click"!==n)return{actions:e[n]||[],nearestOnly:!0}}r=E(e,r)}return{actions:[],nearestOnly:!1}}(n,e,t);return o.length?(o.forEach(o=>{const i=$(o.actionParams||"",",").reduce((e,t)=>(e[u(t)]=!0,e),{}),c=y(n,e,i,s);if(!c.length){const t="page",r=`[${m(n,t)}]`,[o,s]=O(e,r,n,t);c.push({entity:t,data:o,nested:[],context:s})}c.forEach(e=>{var n;r.push({entity:e.entity,action:o.action,data:e.data,trigger:t,context:e.context,nested:null!=(n=e.nested)?n:[]})})}),r):r}function p(e=f.Commands.Prefix,t){if(!t)return{};const n=m(e,f.Commands.Globals,!1);let r={};return x(t,`[${n}]`,t=>{r=c(r,h(e,t,f.Commands.Globals,!1))}),r}function v(e=f.Commands.Prefix,t){if(!t)return{};const n=m(e,f.Commands.User,!1);let r={};return x(t,`[${n}]`,t=>{r=c(r,h(e,t,f.Commands.User,!1))}),r}function w(e){const t={};return $(e).forEach(e=>{const[n,r]=A(e),[o,s]=j(n);if(!o)return;let[i,c]=j(r||"");i=i||o,t[o]||(t[o]=[]),t[o].push({trigger:o,triggerParams:s,action:i,actionParams:c})}),t}function y(e,t,n,r=!1){const o=[];let s=t;for(n=0!==Object.keys(n||{}).length?n:void 0;s;){const i=k(e,s,t,n);if(i&&(o.push(i),r))break;s=E(e,s)}return o}function k(e,t,n,r){const o=d(t,m(e));if(!o||r&&!r[o])return null;const s=[t],i=`[${m(e,o)}],[${m(e,"")}]`,l=m(e,f.Commands.Link,!1);let a={};const u=[],[g,b]=O(n||t,i,e,o,!0);P(t,`[${l}]`,n=>{const[r,o]=A(d(n,l));"parent"===o&&P(t.ownerDocument.body,`[${l}="${r}:child"]`,t=>{s.push(t);const n=k(e,t);n&&u.push(n)})});const p=[];s.forEach(e=>{e.matches(i)&&p.push(e),P(e,i,e=>p.push(e))});let v={};return p.forEach(t=>{v=c(v,h(e,t,"")),a=c(a,h(e,t,o))}),a=c(c(v,a),g),s.forEach(t=>{P(t,`[${m(e)}]`,t=>{const n=k(e,t);n&&u.push(n)})}),{entity:o,data:a,context:b,nested:u}}function E(e,t){const n=m(e,f.Commands.Link,!1);if(t.matches(`[${n}]`)){const[e,r]=A(d(t,n));if("child"===r){const r=t.ownerDocument;let o=null;return x(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 O(e,t,n,r,o=!1){let s={};const i={};let l=e;const a=`[${m(n,f.Commands.Context,!1)}]`,u=f.Commands.Scoped,d=`[${m(n,u,!1)}]`;let g=0;for(;l;)o&&u&&l.matches(d)&&(s=c(h(n,l,u,!1),s)),l.matches(t)&&(s=c(h(n,l,""),s),s=c(h(n,l,r),s)),l.matches(a)&&(Object.entries(h(n,l,f.Commands.Context,!1)).forEach(([e,t])=>{t&&!i[e]&&(i[e]=[t,g])}),++g),l=E(n,l);return[s,i]}function x(e,t,n){e.querySelectorAll(t).forEach(n)}function P(e,t,n){e.querySelectorAll(t).forEach(n);e instanceof(e.ownerDocument||e).defaultView.Element&&e.shadowRoot&&P(e.shadowRoot,t,n),e.querySelectorAll("*").forEach(e=>{e.shadowRoot&&P(e.shadowRoot,t,n)})}function $(e,t=";"){if(!e)return[];const n=new RegExp(`(?:[^${t}']+|'[^']*')+`,"ig");return e.match(n)||[]}function A(e){const[t,n]=e.split(/:(.+)/,2);return[u(t),u(n)]}function j(e){const[t,n]=e.split("(",2);return[t,n?n.slice(0,-1):""]}import{tryCatch as C}from"@walkeros/core";import{isVisible as I}from"@walkeros/web-core";var R,S=Array.from({length:101},(e,t)=>t/100),L=new WeakMap;function T(e){return e.ownerDocument||e}function D(e){const t=(e.ownerDocument||e).defaultView;if(t&&t.IntersectionObserver)return C(()=>new t.IntersectionObserver(t=>{t.forEach(t=>function(e,t){const n=t.target,r=L.get(T(e));if(!r)return;const o=n.ownerDocument.defaultView;if(!o)return;const s=r.configs.get(n);if(!s||!s.length)return;const i=r.timers.get(n);if(function(e,t){if(!e.isIntersecting)return!1;const n=e.boundingClientRect;if(n.width<=0||n.height<=0)return!1;const r=e.rootBounds?e.rootBounds.width:t.innerWidth,o=e.rootBounds?e.rootBounds.height:t.innerHeight;if(r<=0||o<=0)return!1;const s=e.intersectionRect,i=.5*Math.min(n.width,r),c=.5*Math.min(n.height,o);return s.width>=i&&s.height>=c}(t,o)){if(s.every(e=>e.blocked))return;if(!i){const t=o.setTimeout(()=>{V(T(e),n)},r.duration);r.timers.set(n,t)}return}i&&(clearTimeout(i),r.timers.delete(n));s.forEach(e=>{e.multiple&&(e.blocked=!1)})}(e,t))},{rootMargin:"0px",threshold:S}),()=>{})()}async function V(e,t){const n=L.get(e);if(!n)return;n.timers.delete(t);const r=t.ownerDocument,o=r.defaultView;if(!o)return;if("visible"!==r.visibilityState)return void n.timers.set(t,o.setTimeout(()=>{V(e,t)},n.duration));if(!I(t,o,r))return;const s=n.configs.get(t);if(!s)return;const i=s.filter(e=>!e.blocked);if(!i.length)return;i.forEach(e=>{e.multiple&&(e.blocked=!0)});const c=s.filter(e=>e.multiple);c.length?n.configs.set(t,c):M(e,t),await Promise.all(i.map(e=>ne(e.context,t,e.trigger)))}function M(e,t){var n,r;const o=L.get(T(e));if(!o)return;null==(n=o.observer)||n.unobserve(t),null==(r=o.resizeObserver)||r.unobserve(t),o.configs.delete(t),o.zeroArea.delete(t);const s=o.timers.get(t);s&&(clearTimeout(s),o.timers.delete(t))}function W(e){const t=(e.ownerDocument||e).defaultView;if(t&&t.ResizeObserver)return C(()=>new t.ResizeObserver(t=>{const n=L.get(e);(null==n?void 0:n.observer)&&t.forEach(e=>{var t,r;const o=e.target,{width:s,height:i}=e.contentRect;s<=0||i<=0?n.zeroArea.add(o):n.zeroArea.has(o)&&(n.zeroArea.delete(o),null==(t=n.observer)||t.unobserve(o),null==(r=n.observer)||r.observe(o))})}),()=>{})()}function z(e,t,n={multiple:!1}){var r,o,s;const i=e.settings.scope;if(!i)return;const c=L.get(T(i));if(!(null==c?void 0:c.observer)||!t)return;const l=null!=(r=n.multiple)&&r,a=null!=(o=c.configs.get(t))?o:[];if(a.push({multiple:l,blocked:!1,context:e,trigger:l?Y.Visible:Y.Impression}),c.configs.set(t,a),a.length>1)return;const u=t.getBoundingClientRect();(u.width<=0||u.height<=0)&&c.zeroArea.add(t),c.observer.observe(t),null==(s=c.resizeObserver)||s.observe(t)}import{isString as H,isObject as q,isElementOrDocument as B}from"@walkeros/core";import{createPushResult as N}from"@walkeros/collector";function G(e,t,n,r,o,s,i){const{elb:c,settings:l}=e;if(H(t)&&t.startsWith("walker ")){if("walker init"===t&&e.initScope){const t=function(e,t){if(_(e))return[e];if(Array.isArray(e)){const t=[];for(const n of e)_(n)&&t.push(n);return t}if(void 0===e){const e=t.scope;if(_(e))return[e];if(void 0!==globalThis.document)return[globalThis.document]}return[]}(n,l);for(const n of t)e.initScope({...e,settings:{...l,scope:n}});return Promise.resolve(N({ok:!0}))}return c(t,n)}if(q(t)){const e=t;if(!e.source&&l.scope){const t=l.scope.ownerDocument||l.scope,n=t.defaultView;e.source=U(n,t)}return!e.globals&&l.scope&&(e.globals=F(l.scope)?p(l.prefix,l.scope):{}),c(e)}const[a]=String(q(t)?t.name:t).split(" ");let u,f=q(n)?n:{},d={},m=!1;if(B(n)&&(u=n,m=!0),B(o)?u=o:q(o)&&Object.keys(o).length&&(d=o),u){const e=y(l.prefix||"data-elb",u).find(e=>e.entity===a);e&&(m&&(f=e.data),e.context&&(d=e.context))}const h=l.scope?l.scope.ownerDocument||l.scope:void 0,g=null==h?void 0:h.defaultView;"page"===a&&g&&(f.id=f.id||g.location.pathname);const b=l.scope&&F(l.scope)?p(l.prefix,l.scope):{};return c({name:String(t||""),data:f,context:d,globals:b,nested:s,custom:i,trigger:H(r)?r:"",source:g&&h?U(g,h):void 0})}function U(e,t){return{type:"browser",platform:"web",url:e.location.href,referrer:t.referrer}}function _(e){if(!e||"object"!=typeof e)return!1;if("undefined"!=typeof Element&&e instanceof Element)return!0;if("undefined"!=typeof Document&&e instanceof Document)return!0;if("undefined"!=typeof ShadowRoot&&e instanceof ShadowRoot)return!0;if("nodeType"in e){const t=e.nodeType;return 1===t||9===t||11===t}return!1}function F(e){return 11!==e.nodeType}var J=new Map,K=new WeakMap;function Q(e){return K.has(e)}function X(e){var t;const n=K.get(e);if(!n)return;const r=J.get(n.scope);n.intervalIds.forEach(e=>{if(clearInterval(e),r){const t=r.intervalIds.indexOf(e);-1!==t&&r.intervalIds.splice(t,1)}}),n.timeoutIds.forEach(e=>{if(clearTimeout(e),r){const t=r.timeoutIds.indexOf(e);-1!==t&&r.timeoutIds.splice(t,1)}}),null==(t=n.hoverAbort)||t.abort(),n.observed&&(M(n.scope,e),null==r||r.observed.delete(e)),n.scroll&&r&&(r.scrollElements=r.scrollElements.filter(([t])=>t!==e)),null==r||r.registered.delete(e),K.delete(e)}var Y={Click:"click",Custom:"custom",Hover:"hover",Load:"load",Pulse:"pulse",Scroll:"scroll",Submit:"submit",Impression:"impression",Visible:"visible",Wait:"wait"};function Z(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;if(!n)return;R&&R.abort();R=new AbortController;const{signal:o}=R;n.addEventListener("click",r(function(t){se.call(this,e,t)}),{signal:o,capture:t.capture}),n.addEventListener("submit",r(function(t){ie.call(this,e,t)}),{signal:o,capture:t.capture})}(e,t)}function ee(e){R&&(R.abort(),R=void 0),J.forEach((e,t)=>{e.abort.abort(),e.mutationObservers.forEach(e=>e.disconnect()),e.intervalIds.forEach(e=>clearInterval(e)),e.timeoutIds.forEach(e=>clearTimeout(e)),e.observed.forEach(e=>M(t,e)),[...e.registered].forEach(e=>X(e))}),J.forEach((e,t)=>{!function(e){var t,n;if(!e)return;const r=T(e),o=L.get(r);o&&(null==(t=o.observer)||t.disconnect(),null==(n=o.resizeObserver)||n.disconnect(),L.delete(r))}(t)}),J.clear()}function te(e,t){const n=e.settings.scope;if(!n)return;const s=function(e){const t=J.get(e);t&&(t.abort.abort(),t.intervalIds.forEach(e=>clearInterval(e)),t.timeoutIds.forEach(e=>clearTimeout(e)),t.observed.forEach(t=>M(e,t)),[...t.registered].forEach(e=>X(e)),t.mutationObservers.forEach(e=>e.disconnect()));const n={abort:new AbortController,intervalIds:[],timeoutIds:[],scrollElements:[],observed:new Set,registered:new Set,mutationObservers:[]};return J.set(e,n),n}(n);!function(e,t=1e3){const n=T(e);L.has(n)||L.set(n,{observer:D(n),resizeObserver:W(n),timers:new WeakMap,duration:t,configs:new WeakMap,zeroArea:new WeakSet})}(n,1e3);const i=m(e.settings.prefix,o.Commands.Action,!1),c=n.ownerDocument||n,l=c.defaultView;n!==c&&l&&n instanceof l.Element&&re(e,n,i,s,n),P(n,`[${i}]`,t=>{re(e,t,i,s,n)}),s.scrollElements.length&&ce(e,n,s),function(e,t,n,s){const i=t.ownerDocument||t,c=i.defaultView;if(!c||!c.MutationObserver)return;const l=m(e.settings.prefix,"observe",!1),a=[];t!==i&&t instanceof c.Element&&t.matches(`[${l}]`)&&a.push(t);P(t,`[${l}]`,e=>a.push(e)),a.forEach(i=>{if(a.some(e=>e!==i&&e.contains(i)))return;const l=new c.MutationObserver(r(n=>{const r=J.get(t);r&&n.forEach(n=>{n.addedNodes.forEach(n=>function(e,t,n,r,o){var s;const i=null==(s=t.ownerDocument)?void 0:s.defaultView;if(!(i&&t instanceof i.HTMLElement))return;re(e,t,n,r,o),P(t,`[${n}]`,t=>{re(e,t,n,r,o)})}(e,n,s,r,t)),r.scrollElements.length&&ce(e,t,r),n.removedNodes.forEach(t=>function(e,t){var n;if(1!==t.nodeType)return;const r=null==(n=t.ownerDocument)?void 0:n.defaultView;if(!(r&&t instanceof r.HTMLElement))return;const s=m(e.settings.prefix,o.Commands.Action,!1);Q(t)&&X(t);P(t,`[${s}]`,e=>{e instanceof r.HTMLElement&&Q(e)&&X(e)})}(e,t))})}));l.observe(i,{childList:!0,subtree:!0}),n.mutationObservers.push(l)})}(e,n,s,i)}async function ne(e,t,n){const r=b(t,n,e.settings.prefix);return Promise.all(r.map(t=>G(e,{name:`${t.entity} ${t.action}`,...t,trigger:n})))}function re(e,t,n,o,s){var c;if(1!==t.nodeType)return;const l=null==(c=t.ownerDocument)?void 0:c.defaultView;if(!(l&&t instanceof l.HTMLElement))return;if(Q(t))return;if(!i(t,n))return;const a={scope:s,intervalIds:[],timeoutIds:[],scroll:!1,observed:!1};return function(e,t,n,o,s){const c=i(t,n);if(!c)return;Object.values(w(c)).forEach(n=>n.forEach(n=>{switch(n.trigger){case Y.Hover:!function(e,t,n){n.hoverAbort||(n.hoverAbort=new AbortController);t.addEventListener("mouseenter",r(function(t){const n=oe(t);n&&ne(e,n,Y.Hover)}),{signal:n.hoverAbort.signal})}(e,t,s);break;case Y.Load:!function(e,t){ne(e,t,Y.Load)}(e,t);break;case Y.Pulse:!function(e,t,n,r,o=""){const s=t.ownerDocument,i=setInterval(()=>{s.hidden||ne(e,t,Y.Pulse)},parseInt(o||"")||15e3);n.intervalIds.push(i),r.intervalIds.push(i)}(e,t,o,s,n.triggerParams);break;case Y.Scroll:!function(e,t,n,r=""){const o=parseInt(r||"")||50;if(o<0||o>100)return;t.scrollElements.push([e,o]),n.scroll=!0}(t,o,s,n.triggerParams);break;case Y.Impression:z(e,t),o.observed.add(t),s.observed=!0;break;case Y.Visible:z(e,t,{multiple:!0}),o.observed.add(t),s.observed=!0;break;case Y.Wait:!function(e,t,n,r,o=""){const s=setTimeout(()=>ne(e,t,Y.Wait),parseInt(o||"")||15e3);n.timeoutIds.push(s),r.timeoutIds.push(s)}(e,t,o,s,n.triggerParams)}}))}(e,t,n,o,a),function(e,t,n){if(K.has(t))return!1;const r=J.get(e);!!r&&(n.scope=e,r.registered.add(t),K.set(t,n))}(s,t,a),a}function oe(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 se(e,t){const n=oe(t);n&&ne(e,n,Y.Click)}function ie(e,t){const n=oe(t);n&&ne(e,n,Y.Submit)}function ce(e,t,r){const o=t.ownerDocument||t,s=o.defaultView,i=(e,t)=>e.filter(([e,n])=>{const r=e.getBoundingClientRect();if(s.innerHeight<r.top)return!0;const o=r.height||e.clientHeight;return!(100*(1-(r.top+o-s.innerHeight)/(o||1))>=n)||(ne(t,e,Y.Scroll),!1)});if(!r.scrollListener){r.scrollListener=n(function(){r.scrollElements=i.call(t,r.scrollElements,e)});(t instanceof s.ShadowRoot?o:t).addEventListener("scroll",r.scrollListener,{signal:r.abort.signal})}}import{isString as le,isObject as ae}from"@walkeros/core";import{createPushResult as ue}from"@walkeros/collector";var fe=Symbol.for("@walkeros/web-source-browser:elbLayer-drained"),de=e=>{const t=Reflect.get(e,fe);if(ae(n=t)&&"number"==typeof n.commands&&"number"==typeof n.events)return t;var n;const r={commands:0,events:0};return Object.defineProperty(e,fe,{value:r,writable:!0,enumerable:!1,configurable:!0}),r};function me(e,t={}){const n=t.name||"elbLayer",r=t.window,o=t.logger,s=()=>ue({ok:!0});if(!r)return{intake:()=>Promise.resolve(s()),start:()=>{},enqueue:e=>Promise.resolve().then(()=>e()),destroy:()=>{}};const i=Reflect.get(r,n);let c;Array.isArray(i)?c=i:(c=[],Reflect.set(r,n,c));const l=de(c);let a=!1,u=l.commands,f=l.events,d=Promise.resolve(s()),m=Promise.resolve();const h=()=>{l.commands=u,l.events=f},g=async t=>{try{return await(t=>{if(Array.isArray(t)){const[n,...r]=t;return G(e,n,...r)}return G(e,t)})(t)}catch(e){return null==o||o.warn("elbLayer entry failed",{error:e,item:t}),ue({ok:!1})}},b=e=>{const t=e[0];return le(t)&&t.startsWith("walker ")},p=(e,t)=>{if(!a){if(b(e)){if(t<u)return Promise.resolve(s());const n=d.then(()=>g(e));return d=n,u=t+1,h(),n}return Promise.resolve(s())}const n=m.then(()=>g(e));return m=n,u=t+1,f=t+1,h(),n},v=e=>{const t=he(e),n=c.length;return c[n]=e,t?p(t,n):Promise.resolve(s())};c.push=(...e)=>{for(const t of e)v(t);return c.length};const w=c.length;for(let e=0;e<w;e++){const t=he(c[e]);t&&p(t,e)}return{intake:e=>v(e),start:()=>{if(!a){a=!0,m=d;for(let e=f;e<c.length;e++){const t=he(c[e]);if(!t)continue;if(b(t))continue;const n=t;m=m.then(()=>g(n))}f=c.length,u=c.length,h()}},enqueue:e=>{const t=m.then(()=>e());return m=t.then(()=>{},()=>{}),t},destroy:()=>{Reflect.deleteProperty(c,"push"),a=!1,u=0,f=0,d=Promise.resolve(s()),m=Promise.resolve()}}}function he(e){const t=null!=(n=e)&&"object"==typeof n&&"[object Arguments]"===Object.prototype.toString.call(n)?[...Array.from(e)]:function(e){return null!=e&&"object"==typeof e&&"length"in e&&"number"==typeof e.length}(e)?Array.from(e):[e];var n;if(!Array.isArray(t)||0===t.length)return null;if(1===t.length&&!t[0])return null;const r=t[0];return ae(r)&&0===Object.keys(r).length||!ae(r)&&le(r)&&""===r.trim()?null:t}function ge(e={},t){return{prefix:"data-elb",pageview:!0,capture:!0,elb:"elb",elbLayer:"elbLayer",scope:t||void 0,...e}}var be={};import{isString as pe,isDefined as ve}from"@walkeros/core";function we(e={}){const t=e.prefix||"data-elb";return function(e){let n,r=e;const o={},s={},i={},c={},l={},a={},u={};function f(e){return Object.entries(e).map(([e,t])=>`${e}:${function(e){if(!ve(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 d={entity:e=>(n=e,r=e,d),data(e,t){const n=null!=r?r:"";return o[n]||(o[n]={}),pe(e)?o[n][e]=t:Object.assign(o[n],e),d},scoped:(e,t)=>(pe(e)?s[e]=t:Object.assign(s,e),d),action(e,t){if(pe(e))if(ve(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 d},actions(e,t){if(pe(e))if(ve(t))c[e]=t;else if(e.includes(":")){const[t,n]=e.split(":",2);c[t]=n}else c[e]=e;else Object.assign(c,e);return d},context:(e,t)=>(pe(e)?l[e]=t:Object.assign(l,e),d),globals:(e,t)=>(pe(e)?a[e]=t:Object.assign(a,e),d),link:(e,t)=>(pe(e)?u[e]=t:Object.assign(u,e),d),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(s).length>0&&(e[`${t}_`]=f(s)),Object.keys(i).length>0&&(e[`${t}action`]=f(i)),Object.keys(c).length>0&&(e[`${t}actions`]=f(c)),Object.keys(l).length>0&&(e[`${t}context`]=f(l)),Object.keys(a).length>0&&(e[`${t}globals`]=f(a)),Object.keys(u).length>0&&(e[`${t}link`]=f(u)),e}};return d}}var ye=Symbol.for("@walkeros/web-source-browser:instance");function ke(e){return e||(void 0!==globalThis.window?globalThis.window:void 0)}function Ee(){const e=ke(void 0);e&&Reflect.deleteProperty(e,ye)}function Oe(){const e=ke(void 0);return e?Reflect.get(e,ye):void 0}var xe=async n=>{const{config:r,env:o,logger:s}=n,{elb:i,command:c,window:l,document:a}=o,u=(null==r?void 0:r.settings)||{},f=l||(void 0!==globalThis.window?globalThis.window:void 0),d=a||(void 0!==globalThis.document?globalThis.document:void 0),h=ke(f);if(h){if(Reflect.get(h,ye))return{type:"browser",config:{settings:ge({},void 0)},push:(...e)=>Promise.resolve(t({ok:!0})),on:async()=>{},init:async()=>{},destroy:async()=>{}};Object.defineProperty(h,ye,{value:!0,enumerable:!1,configurable:!0,writable:!1})}const g=ge(u,d),b={elb:i,settings:g,initScope:te};let p,w;const y=e=>{if(!e.pageview)return;const[t,n]=function(e,t){const n=t.ownerDocument||t,r=n.defaultView.location,o="page",s="body"in t?t.body:t,[i,c]=O(s,`[${m(e,o)}]`,e,o);return i.domain=r.hostname,i.title=n.title,i.referrer=n.referrer,r.search&&(i.search=r.search),r.hash&&(i.hash=r.hash),[i,c]}(e.prefix||"data-elb",e.scope);return G(b,"page view",t,"load",n)},k=e=>{const t=v(e.prefix||"data-elb",e.scope);if(Object.keys(t).length)return G(b,"walker user",t)},E=(...e)=>{const[t,n,r,o,s,i]=e;return G(b,t,n,r,o,s,i)};return{type:"browser",config:{settings:g},push:E,on:async e=>{if("run"===e)d&&f&&(!function(e,t){if(!t.scope)return;te(e)}(b,g),p?(p.start(),p.enqueue(()=>k(g)).catch(()=>{}),p.enqueue(()=>y(g)).catch(()=>{})):(await k(g),y(g)))},init:async()=>{if(!f||!d)return;const t=!1!==g.elbLayer?me(b,{name:e(g.elbLayer)?g.elbLayer:"elbLayer",window:f,logger:s}):void 0;if(p=t,await async function(e,t,n){const r=()=>{e(t,n)},o=n.scope;if(!o)return void r();const s=o.ownerDocument||o;"loading"!==s.readyState?r():s.addEventListener("DOMContentLoaded",r)}(Z,b,g),e(g.elb)&&g.elb){const e=t?(...e)=>t.intake(e):E;w=e,Reflect.set(f,g.elb,e)}},destroy:async()=>{ee(),null==p||p.destroy(),f&&e(g.elb)&&g.elb&&Reflect.get(f,g.elb)===w&&Reflect.deleteProperty(f,g.elb),h&&Reflect.deleteProperty(h,ye),p=void 0,w=void 0}}},Pe=xe;export{be as SourceBrowser,Oe as __readInstanceGuardForTests,Ee as __resetInstanceCountForTests,we as createTagger,Pe as default,g as getAllEvents,m as getElbAttributeName,h as getElbValues,b as getEvents,p as getGlobals,v as getUser,xe as sourceBrowser};//# sourceMappingURL=index.mjs.map
1
+ import{isString as e}from"@walkeros/core";import{createPushResult as t}from"@walkeros/collector";import{throttle as n,tryCatch as r}from"@walkeros/core";import{Const as o}from"@walkeros/collector";import{elb as s,getAttribute as i}from"@walkeros/web-core";import{assign as c,castValue as l,isArray as a,trim as u}from"@walkeros/core";import{Const as f}from"@walkeros/collector";import{getAttribute as d}from"@walkeros/web-core";function m(e,t,n=!0){return e+(t=null!=t?(n?"-":"")+t:"")}function h(e,t,n,r=!0){return $(d(t,m(e,n,r))||"").reduce((e,n)=>{let[r,o]=A(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(l(o))):e[r]=l(o),e},{})}function g(e,t=f.Commands.Prefix){var n;const r=e;if(!r)return[];let o=[];const s=f.Commands.Action,i=`[${m(t,s,!1)}]`,c=e=>{Object.keys(h(t,e,s,!1)).forEach(n=>{o=o.concat(b(e,n,t))})};return r!==(r.ownerDocument||r)&&(null==(n=r.matches)?void 0:n.call(r,i))&&c(r),P(r,i,c),o}function b(e,t,n=f.Commands.Prefix){const r=[],{actions:o,nearestOnly:s}=function(e,t,n){let r=t;for(;r;){const t=d(r,m(e,f.Commands.Actions,!1));if(t){const e=w(t);if(e[n])return{actions:e[n],nearestOnly:!1}}const o=d(r,m(e,f.Commands.Action,!1));if(o){const e=w(o);if(e[n]||"click"!==n)return{actions:e[n]||[],nearestOnly:!0}}r=E(e,r)}return{actions:[],nearestOnly:!1}}(n,e,t);return o.length?(o.forEach(o=>{const i=$(o.actionParams||"",",").reduce((e,t)=>(e[u(t)]=!0,e),{}),c=y(n,e,i,s);if(!c.length){const t="page",r=`[${m(n,t)}]`,[o,s]=O(e,r,n,t);c.push({entity:t,data:o,nested:[],context:s})}c.forEach(e=>{var n;r.push({entity:e.entity,action:o.action,data:e.data,trigger:t,context:e.context,nested:null!=(n=e.nested)?n:[]})})}),r):r}function p(e=f.Commands.Prefix,t){if(!t)return{};const n=m(e,f.Commands.Globals,!1);let r={};return x(t,`[${n}]`,t=>{r=c(r,h(e,t,f.Commands.Globals,!1))}),r}function v(e=f.Commands.Prefix,t){if(!t)return{};const n=m(e,f.Commands.User,!1);let r={};return x(t,`[${n}]`,t=>{r=c(r,h(e,t,f.Commands.User,!1))}),r}function w(e){const t={};return $(e).forEach(e=>{const[n,r]=A(e),[o,s]=j(n);if(!o)return;let[i,c]=j(r||"");i=i||o,t[o]||(t[o]=[]),t[o].push({trigger:o,triggerParams:s,action:i,actionParams:c})}),t}function y(e,t,n,r=!1){const o=[];let s=t;for(n=0!==Object.keys(n||{}).length?n:void 0;s;){const i=k(e,s,t,n);if(i&&(o.push(i),r))break;s=E(e,s)}return o}function k(e,t,n,r){const o=d(t,m(e));if(!o||r&&!r[o])return null;const s=[t],i=`[${m(e,o)}],[${m(e,"")}]`,l=m(e,f.Commands.Link,!1);let a={};const u=[],[g,b]=O(n||t,i,e,o,!0);P(t,`[${l}]`,n=>{const[r,o]=A(d(n,l));"parent"===o&&P(t.ownerDocument.body,`[${l}="${r}:child"]`,t=>{s.push(t);const n=k(e,t);n&&u.push(n)})});const p=[];s.forEach(e=>{e.matches(i)&&p.push(e),P(e,i,e=>p.push(e))});let v={};return p.forEach(t=>{v=c(v,h(e,t,"")),a=c(a,h(e,t,o))}),a=c(c(v,a),g),s.forEach(t=>{P(t,`[${m(e)}]`,t=>{const n=k(e,t);n&&u.push(n)})}),{entity:o,data:a,context:b,nested:u}}function E(e,t){const n=m(e,f.Commands.Link,!1);if(t.matches(`[${n}]`)){const[e,r]=A(d(t,n));if("child"===r){const r=t.ownerDocument;let o=null;return x(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 O(e,t,n,r,o=!1){let s={};const i={};let l=e;const a=`[${m(n,f.Commands.Context,!1)}]`,u=f.Commands.Scoped,d=`[${m(n,u,!1)}]`;let g=0;for(;l;)o&&u&&l.matches(d)&&(s=c(h(n,l,u,!1),s)),l.matches(t)&&(s=c(h(n,l,""),s),s=c(h(n,l,r),s)),l.matches(a)&&(Object.entries(h(n,l,f.Commands.Context,!1)).forEach(([e,t])=>{t&&!i[e]&&(i[e]=[t,g])}),++g),l=E(n,l);return[s,i]}function x(e,t,n){e.querySelectorAll(t).forEach(n)}function P(e,t,n){e.querySelectorAll(t).forEach(n);e instanceof(e.ownerDocument||e).defaultView.Element&&e.shadowRoot&&P(e.shadowRoot,t,n),e.querySelectorAll("*").forEach(e=>{e.shadowRoot&&P(e.shadowRoot,t,n)})}function $(e,t=";"){if(!e)return[];const n=new RegExp(`(?:[^${t}']+|'[^']*')+`,"ig");return e.match(n)||[]}function A(e){const[t,n]=e.split(/:(.+)/,2);return[u(t),u(n)]}function j(e){const[t,n]=e.split("(",2);return[t,n?n.slice(0,-1):""]}import{tryCatch as I}from"@walkeros/core";import{isVisible as C}from"@walkeros/web-core";var R,S=Array.from({length:101},(e,t)=>t/100),L=new WeakMap;function T(e){return e.ownerDocument||e}function D(e){const t=(e.ownerDocument||e).defaultView;if(t&&t.IntersectionObserver)return I(()=>new t.IntersectionObserver(t=>{t.forEach(t=>function(e,t){const n=t.target,r=L.get(T(e));if(!r)return;const o=n.ownerDocument.defaultView;if(!o)return;const s=r.configs.get(n);if(!s||!s.length)return;const i=r.timers.get(n);if(function(e,t){if(!e.isIntersecting)return!1;const n=e.boundingClientRect;if(n.width<=0||n.height<=0)return!1;const r=e.rootBounds?e.rootBounds.width:t.innerWidth,o=e.rootBounds?e.rootBounds.height:t.innerHeight;if(r<=0||o<=0)return!1;const s=e.intersectionRect,i=.5*Math.min(n.width,r),c=.5*Math.min(n.height,o);return s.width>=i&&s.height>=c}(t,o)){if(s.every(e=>e.blocked))return;if(!i){const t=o.setTimeout(()=>{V(T(e),n)},r.duration);r.timers.set(n,t)}return}i&&(clearTimeout(i),r.timers.delete(n));s.forEach(e=>{e.multiple&&(e.blocked=!1)})}(e,t))},{rootMargin:"0px",threshold:S}),()=>{})()}async function V(e,t,n=!1){const r=L.get(e);if(!r)return;r.timers.delete(t);const o=t.ownerDocument,s=o.defaultView;if(!s)return;if("visible"!==o.visibilityState)return void r.timers.set(t,s.setTimeout(()=>{V(e,t,!0)},r.duration));if(n)return void r.timers.set(t,s.setTimeout(()=>{V(e,t)},r.duration));if(!C(t,s,o))return void r.timers.set(t,s.setTimeout(()=>{V(e,t)},r.duration));const i=r.configs.get(t);if(!i)return;const c=i.filter(e=>!e.blocked);if(!c.length)return;c.forEach(e=>{e.multiple&&(e.blocked=!0)});const l=i.filter(e=>e.multiple);l.length?r.configs.set(t,l):M(e,t),await Promise.all(c.map(e=>ne(e.context,t,e.trigger)))}function M(e,t){var n,r;const o=L.get(T(e));if(!o)return;null==(n=o.observer)||n.unobserve(t),null==(r=o.resizeObserver)||r.unobserve(t),o.configs.delete(t),o.zeroArea.delete(t);const s=o.timers.get(t);s&&(clearTimeout(s),o.timers.delete(t))}function W(e){const t=(e.ownerDocument||e).defaultView;if(t&&t.ResizeObserver)return I(()=>new t.ResizeObserver(t=>{const n=L.get(e);(null==n?void 0:n.observer)&&t.forEach(e=>{var t,r;const o=e.target,{width:s,height:i}=e.contentRect;s<=0||i<=0?n.zeroArea.add(o):n.zeroArea.has(o)&&(n.zeroArea.delete(o),null==(t=n.observer)||t.unobserve(o),null==(r=n.observer)||r.observe(o))})}),()=>{})()}function z(e,t,n={multiple:!1}){var r,o,s;const i=e.settings.scope;if(!i)return;const c=L.get(T(i));if(!(null==c?void 0:c.observer)||!t)return;const l=null!=(r=n.multiple)&&r,a=null!=(o=c.configs.get(t))?o:[],u=a.length>0,f=l?Y.Visible:Y.Impression,d={multiple:l,blocked:!1,context:e,trigger:f},m=a.findIndex(e=>e.trigger===f);if(m>=0?a[m]=d:a.push(d),c.configs.set(t,a),u)return;const h=t.getBoundingClientRect();(h.width<=0||h.height<=0)&&c.zeroArea.add(t),c.observer.observe(t),null==(s=c.resizeObserver)||s.observe(t)}import{isString as H,isObject as q,isElementOrDocument as B}from"@walkeros/core";import{createPushResult as N}from"@walkeros/collector";function G(e,t,n,r,o,s,i){const{elb:c,settings:l}=e;if(H(t)&&t.startsWith("walker ")){if("walker init"===t&&e.initScope){const t=function(e,t){if(_(e))return[e];if(Array.isArray(e)){const t=[];for(const n of e)_(n)&&t.push(n);return t}if(void 0===e){const e=t.scope;if(_(e))return[e];if(void 0!==globalThis.document)return[globalThis.document]}return[]}(n,l);for(const n of t)e.initScope({...e,settings:{...l,scope:n}});return Promise.resolve(N({ok:!0}))}return c(t,n)}if(q(t)){const e=t;if(!e.source&&l.scope){const t=l.scope.ownerDocument||l.scope,n=t.defaultView;e.source=U(n,t)}return!e.globals&&l.scope&&(e.globals=F(l.scope)?p(l.prefix,l.scope):{}),c(e)}const[a]=String(q(t)?t.name:t).split(" ");let u,f=q(n)?n:{},d={},m=!1;if(B(n)&&(u=n,m=!0),B(o)?u=o:q(o)&&Object.keys(o).length&&(d=o),u){const e=y(l.prefix||"data-elb",u).find(e=>e.entity===a);e&&(m&&(f=e.data),e.context&&(d=e.context))}const h=l.scope?l.scope.ownerDocument||l.scope:void 0,g=null==h?void 0:h.defaultView;"page"===a&&g&&(f.id=f.id||g.location.pathname);const b=l.scope&&F(l.scope)?p(l.prefix,l.scope):{};return c({name:String(t||""),data:f,context:d,globals:b,nested:s,custom:i,trigger:H(r)?r:"",source:g&&h?U(g,h):void 0})}function U(e,t){return{type:"browser",platform:"web",url:e.location.href,referrer:t.referrer}}function _(e){if(!e||"object"!=typeof e)return!1;if("undefined"!=typeof Element&&e instanceof Element)return!0;if("undefined"!=typeof Document&&e instanceof Document)return!0;if("undefined"!=typeof ShadowRoot&&e instanceof ShadowRoot)return!0;if("nodeType"in e){const t=e.nodeType;return 1===t||9===t||11===t}return!1}function F(e){return 11!==e.nodeType}var J=new Map,K=new WeakMap;function Q(e){return K.has(e)}function X(e){var t;const n=K.get(e);if(!n)return;const r=J.get(n.scope);n.intervalIds.forEach(e=>{if(clearInterval(e),r){const t=r.intervalIds.indexOf(e);-1!==t&&r.intervalIds.splice(t,1)}}),n.timeoutIds.forEach(e=>{if(clearTimeout(e),r){const t=r.timeoutIds.indexOf(e);-1!==t&&r.timeoutIds.splice(t,1)}}),null==(t=n.hoverAbort)||t.abort(),n.observed&&(M(n.scope,e),null==r||r.observed.delete(e)),n.scroll&&r&&(r.scrollElements=r.scrollElements.filter(([t])=>t!==e)),null==r||r.registered.delete(e),K.delete(e)}var Y={Click:"click",Custom:"custom",Hover:"hover",Load:"load",Pulse:"pulse",Scroll:"scroll",Submit:"submit",Impression:"impression",Visible:"visible",Wait:"wait"};function Z(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;if(!n)return;R&&R.abort();R=new AbortController;const{signal:o}=R;n.addEventListener("click",r(function(t){se.call(this,e,t)}),{signal:o,capture:t.capture}),n.addEventListener("submit",r(function(t){ie.call(this,e,t)}),{signal:o,capture:t.capture})}(e,t)}function ee(e){R&&(R.abort(),R=void 0),J.forEach((e,t)=>{e.abort.abort(),e.mutationObservers.forEach(e=>e.disconnect()),e.intervalIds.forEach(e=>clearInterval(e)),e.timeoutIds.forEach(e=>clearTimeout(e)),e.observed.forEach(e=>M(t,e)),[...e.registered].forEach(e=>X(e))}),J.forEach((e,t)=>{!function(e){var t,n;if(!e)return;const r=T(e),o=L.get(r);o&&(null==(t=o.observer)||t.disconnect(),null==(n=o.resizeObserver)||n.disconnect(),L.delete(r))}(t)}),J.clear()}function te(e,t){const n=e.settings.scope;if(!n)return;const s=function(e){const t=J.get(e);t&&(t.abort.abort(),t.intervalIds.forEach(e=>clearInterval(e)),t.timeoutIds.forEach(e=>clearTimeout(e)),t.observed.forEach(t=>M(e,t)),[...t.registered].forEach(e=>X(e)),t.mutationObservers.forEach(e=>e.disconnect()));const n={abort:new AbortController,intervalIds:[],timeoutIds:[],scrollElements:[],observed:new Set,registered:new Set,mutationObservers:[]};return J.set(e,n),n}(n);!function(e,t=1e3){const n=T(e);L.has(n)||L.set(n,{observer:D(n),resizeObserver:W(n),timers:new WeakMap,duration:t,configs:new WeakMap,zeroArea:new WeakSet})}(n,1e3);const i=m(e.settings.prefix,o.Commands.Action,!1),c=n.ownerDocument||n,l=c.defaultView;n!==c&&l&&n instanceof l.Element&&re(e,n,i,s,n),P(n,`[${i}]`,t=>{re(e,t,i,s,n)}),s.scrollElements.length&&ce(e,n,s),function(e,t,n,s){const i=t.ownerDocument||t,c=i.defaultView;if(!c||!c.MutationObserver)return;const l=m(e.settings.prefix,"observe",!1),a=[];t!==i&&t instanceof c.Element&&t.matches(`[${l}]`)&&a.push(t);P(t,`[${l}]`,e=>a.push(e)),a.forEach(i=>{if(a.some(e=>e!==i&&e.contains(i)))return;const l=new c.MutationObserver(r(n=>{const r=J.get(t);r&&n.forEach(n=>{n.addedNodes.forEach(n=>function(e,t,n,r,o){var s;const i=null==(s=t.ownerDocument)?void 0:s.defaultView;if(!(i&&t instanceof i.HTMLElement))return;re(e,t,n,r,o),P(t,`[${n}]`,t=>{re(e,t,n,r,o)})}(e,n,s,r,t)),r.scrollElements.length&&ce(e,t,r),n.removedNodes.forEach(t=>function(e,t){var n;if(1!==t.nodeType)return;const r=null==(n=t.ownerDocument)?void 0:n.defaultView;if(!(r&&t instanceof r.HTMLElement))return;const s=m(e.settings.prefix,o.Commands.Action,!1);Q(t)&&X(t);P(t,`[${s}]`,e=>{e instanceof r.HTMLElement&&Q(e)&&X(e)})}(e,t))})}));l.observe(i,{childList:!0,subtree:!0}),n.mutationObservers.push(l)})}(e,n,s,i)}async function ne(e,t,n){const r=b(t,n,e.settings.prefix);return Promise.all(r.map(t=>G(e,{name:`${t.entity} ${t.action}`,...t,trigger:n})))}function re(e,t,n,o,s){var c;if(1!==t.nodeType)return;const l=null==(c=t.ownerDocument)?void 0:c.defaultView;if(!(l&&t instanceof l.HTMLElement))return;if(Q(t))return;if(!i(t,n))return;const a={scope:s,intervalIds:[],timeoutIds:[],scroll:!1,observed:!1};return function(e,t,n,o,s){const c=i(t,n);if(!c)return;Object.values(w(c)).forEach(n=>n.forEach(n=>{switch(n.trigger){case Y.Hover:!function(e,t,n){n.hoverAbort||(n.hoverAbort=new AbortController);t.addEventListener("mouseenter",r(function(t){const n=oe(t);n&&ne(e,n,Y.Hover)}),{signal:n.hoverAbort.signal})}(e,t,s);break;case Y.Load:!function(e,t){ne(e,t,Y.Load)}(e,t);break;case Y.Pulse:!function(e,t,n,r,o=""){const s=t.ownerDocument,i=setInterval(()=>{s.hidden||ne(e,t,Y.Pulse)},parseInt(o||"")||15e3);n.intervalIds.push(i),r.intervalIds.push(i)}(e,t,o,s,n.triggerParams);break;case Y.Scroll:!function(e,t,n,r=""){const o=parseInt(r||"")||50;if(o<0||o>100)return;t.scrollElements.push([e,o]),n.scroll=!0}(t,o,s,n.triggerParams);break;case Y.Impression:z(e,t),o.observed.add(t),s.observed=!0;break;case Y.Visible:z(e,t,{multiple:!0}),o.observed.add(t),s.observed=!0;break;case Y.Wait:!function(e,t,n,r,o=""){const s=setTimeout(()=>ne(e,t,Y.Wait),parseInt(o||"")||15e3);n.timeoutIds.push(s),r.timeoutIds.push(s)}(e,t,o,s,n.triggerParams)}}))}(e,t,n,o,a),function(e,t,n){if(K.has(t))return!1;const r=J.get(e);!!r&&(n.scope=e,r.registered.add(t),K.set(t,n))}(s,t,a),a}function oe(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 se(e,t){const n=oe(t);n&&ne(e,n,Y.Click)}function ie(e,t){const n=oe(t);n&&ne(e,n,Y.Submit)}function ce(e,t,r){const o=t.ownerDocument||t,s=o.defaultView,i=(e,t)=>e.filter(([e,n])=>{const r=e.getBoundingClientRect();if(s.innerHeight<r.top)return!0;const o=r.height||e.clientHeight;return!(100*(1-(r.top+o-s.innerHeight)/(o||1))>=n)||(ne(t,e,Y.Scroll),!1)});if(!r.scrollListener){r.scrollListener=n(function(){r.scrollElements=i.call(t,r.scrollElements,e)});(t instanceof s.ShadowRoot?o:t).addEventListener("scroll",r.scrollListener,{signal:r.abort.signal})}}import{isString as le,isObject as ae}from"@walkeros/core";import{createPushResult as ue}from"@walkeros/collector";var fe=Symbol.for("@walkeros/web-source-browser:elbLayer-drained"),de=e=>{const t=Reflect.get(e,fe);if(ae(n=t)&&"number"==typeof n.commands&&"number"==typeof n.events)return t;var n;const r={commands:0,events:0};return Object.defineProperty(e,fe,{value:r,writable:!0,enumerable:!1,configurable:!0}),r};function me(e,t={}){const n=t.name||"elbLayer",r=t.window,o=t.logger,s=()=>ue({ok:!0});if(!r)return{intake:()=>Promise.resolve(s()),start:()=>{},enqueue:e=>Promise.resolve().then(()=>e()),destroy:()=>{}};const i=Reflect.get(r,n);let c;Array.isArray(i)?c=i:(c=[],Reflect.set(r,n,c));const l=de(c);let a=!1,u=l.commands,f=l.events,d=Promise.resolve(s()),m=Promise.resolve();const h=()=>{l.commands=u,l.events=f},g=async t=>{try{return await(t=>{if(Array.isArray(t)){const[n,...r]=t;return G(e,n,...r)}return G(e,t)})(t)}catch(e){return null==o||o.warn("elbLayer entry failed",{error:e,item:t}),ue({ok:!1})}},b=e=>{const t=e[0];return le(t)&&t.startsWith("walker ")},p=(e,t)=>{if(!a){if(b(e)){if(t<u)return Promise.resolve(s());const n=d.then(()=>g(e));return d=n,u=t+1,h(),n}return Promise.resolve(s())}const n=m.then(()=>g(e));return m=n,u=t+1,f=t+1,h(),n},v=e=>{const t=he(e),n=c.length;return c[n]=e,t?p(t,n):Promise.resolve(s())};c.push=(...e)=>{for(const t of e)v(t);return c.length};const w=c.length;for(let e=0;e<w;e++){const t=he(c[e]);t&&p(t,e)}return{intake:e=>v(e),start:()=>{if(!a){a=!0,m=d;for(let e=f;e<c.length;e++){const t=he(c[e]);if(!t)continue;if(b(t))continue;const n=t;m=m.then(()=>g(n))}f=c.length,u=c.length,h()}},enqueue:e=>{const t=m.then(()=>e());return m=t.then(()=>{},()=>{}),t},destroy:()=>{Reflect.deleteProperty(c,"push"),a=!1,u=0,f=0,d=Promise.resolve(s()),m=Promise.resolve()}}}function he(e){const t=null!=(n=e)&&"object"==typeof n&&"[object Arguments]"===Object.prototype.toString.call(n)?[...Array.from(e)]:function(e){return null!=e&&"object"==typeof e&&"length"in e&&"number"==typeof e.length}(e)?Array.from(e):[e];var n;if(!Array.isArray(t)||0===t.length)return null;if(1===t.length&&!t[0])return null;const r=t[0];return ae(r)&&0===Object.keys(r).length||!ae(r)&&le(r)&&""===r.trim()?null:t}function ge(e={},t){return{prefix:"data-elb",pageview:!0,capture:!0,elb:"elb",elbLayer:"elbLayer",scope:t||void 0,...e}}var be={};import{isString as pe,isDefined as ve}from"@walkeros/core";function we(e={}){const t=e.prefix||"data-elb";return function(e){let n,r=e;const o={},s={},i={},c={},l={},a={},u={};function f(e){return Object.entries(e).map(([e,t])=>`${e}:${function(e){if(!ve(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 d={entity:e=>(n=e,r=e,d),data(e,t){const n=null!=r?r:"";return o[n]||(o[n]={}),pe(e)?o[n][e]=t:Object.assign(o[n],e),d},scoped:(e,t)=>(pe(e)?s[e]=t:Object.assign(s,e),d),action(e,t){if(pe(e))if(ve(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 d},actions(e,t){if(pe(e))if(ve(t))c[e]=t;else if(e.includes(":")){const[t,n]=e.split(":",2);c[t]=n}else c[e]=e;else Object.assign(c,e);return d},context:(e,t)=>(pe(e)?l[e]=t:Object.assign(l,e),d),globals:(e,t)=>(pe(e)?a[e]=t:Object.assign(a,e),d),link:(e,t)=>(pe(e)?u[e]=t:Object.assign(u,e),d),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(s).length>0&&(e[`${t}_`]=f(s)),Object.keys(i).length>0&&(e[`${t}action`]=f(i)),Object.keys(c).length>0&&(e[`${t}actions`]=f(c)),Object.keys(l).length>0&&(e[`${t}context`]=f(l)),Object.keys(a).length>0&&(e[`${t}globals`]=f(a)),Object.keys(u).length>0&&(e[`${t}link`]=f(u)),e}};return d}}var ye=Symbol.for("@walkeros/web-source-browser:instance");function ke(e){return e||(void 0!==globalThis.window?globalThis.window:void 0)}function Ee(){const e=ke(void 0);e&&Reflect.deleteProperty(e,ye)}function Oe(){const e=ke(void 0);return e?Reflect.get(e,ye):void 0}var xe=async n=>{const{config:r,env:o,logger:s}=n,{elb:i,command:c,window:l,document:a}=o,u=(null==r?void 0:r.settings)||{},f=l||(void 0!==globalThis.window?globalThis.window:void 0),d=a||(void 0!==globalThis.document?globalThis.document:void 0),h=ke(f);if(h){if(Reflect.get(h,ye))return{type:"browser",config:{settings:ge({},void 0)},push:(...e)=>Promise.resolve(t({ok:!0})),on:async()=>{},init:async()=>{},destroy:async()=>{}};Object.defineProperty(h,ye,{value:!0,enumerable:!1,configurable:!0,writable:!1})}const g=ge(u,d),b={elb:i,settings:g,initScope:te};let p,w;const y=e=>{if(!e.pageview)return;const[t,n]=function(e,t){const n=t.ownerDocument||t,r=n.defaultView.location,o="page",s="body"in t?t.body:t,[i,c]=O(s,`[${m(e,o)}]`,e,o);return i.domain=r.hostname,i.title=n.title,i.referrer=n.referrer,r.search&&(i.search=r.search),r.hash&&(i.hash=r.hash),[i,c]}(e.prefix||"data-elb",e.scope);return G(b,"page view",t,"load",n)},k=e=>{const t=v(e.prefix||"data-elb",e.scope);if(Object.keys(t).length)return G(b,"walker user",t)},E=(...e)=>{const[t,n,r,o,s,i]=e;return G(b,t,n,r,o,s,i)};return{type:"browser",config:{settings:g},push:E,on:async e=>{if("run"===e)d&&f&&(!function(e,t){if(!t.scope)return;te(e)}(b,g),p?(p.start(),p.enqueue(()=>k(g)).catch(()=>{}),p.enqueue(()=>y(g)).catch(()=>{})):(await k(g),y(g)))},init:async()=>{if(!f||!d)return;const t=!1!==g.elbLayer?me(b,{name:e(g.elbLayer)?g.elbLayer:"elbLayer",window:f,logger:s}):void 0;if(p=t,await async function(e,t,n){const r=()=>{e(t,n)},o=n.scope;if(!o)return void r();const s=o.ownerDocument||o;"loading"!==s.readyState?r():s.addEventListener("DOMContentLoaded",r)}(Z,b,g),e(g.elb)&&g.elb){const e=t?(...e)=>t.intake(e):E;w=e,Reflect.set(f,g.elb,e)}},destroy:async()=>{ee(),null==p||p.destroy(),f&&e(g.elb)&&g.elb&&Reflect.get(f,g.elb)===w&&Reflect.deleteProperty(f,g.elb),h&&Reflect.deleteProperty(h,ye),p=void 0,w=void 0}}},Pe=xe;export{be as SourceBrowser,Oe as __readInstanceGuardForTests,Ee as __resetInstanceCountForTests,we as createTagger,Pe as default,g as getAllEvents,m as getElbAttributeName,h as getElbValues,b as getEvents,p as getGlobals,v as getUser,xe as sourceBrowser};//# sourceMappingURL=index.mjs.map