@walkeros/web-source-browser 4.3.2 → 4.4.0-next-1785239495233

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