@walkeros/web-source-datalayer
Version:
DataLayer source for walkerOS
1 lines • 4.83 kB
JavaScript
var e=Object.defineProperty,t=(t,n)=>{for(var a in n)e(t,a,{get:n[a],enumerable:!0})};import{isArray as n,isObject as a,isString as r,tryCatch as i}from"@walkeros/core";var o=!1;function u(e,t={},o){if(t.filter){if(!0===i(()=>t.filter(o),()=>!1)())return}const u=function(e){if(a(e)&&r(e.event)){const{event:t,...n}=e;return{name:t,...n}}if(n(e)&&e.length>=2)return c(e);if(t=e,null!=t&&"object"==typeof t&&"length"in t&&"number"==typeof t.length&&t.length>0){return c(Array.from(e))}var t;return null}(o);if(!u)return;const s=`${t.prefix||"dataLayer"} ${u.name}`,{name:d,...m}=u,l={name:s,data:m};i(()=>e(l),()=>{})()}function c(e){const[t,n,i]=e;if(!r(t))return null;let o,u={};switch(t){case"consent":if(!r(n)||e.length<3)return null;if("default"!==n&&"update"!==n)return null;if(!a(i)||null===i)return null;o=`${t} ${n}`,u={...i};break;case"event":if(!r(n))return null;o=n,a(i)&&(u={...i});break;case"config":if(!r(n))return null;o=`${t} ${n}`,a(i)&&(u={...i});break;case"set":if(r(n))o=`${t} ${n}`,a(i)&&(u={...i});else{if(!a(n))return null;o=`${t} custom`,u={...n}}break;default:return null}return{name:o,...u}}var s={},d={};t(d,{push:()=>f});var m=()=>{},l=()=>()=>Promise.resolve({ok:!0,successful:[],queued:[],failed:[]}),p={error:m,info:m,debug:m,throw:e=>{throw"string"==typeof e?new Error(e):e},scope:()=>p},f={get push(){return l()},get command(){return l()},get elb(){return l()},get window(){return{dataLayer:[],addEventListener:m,removeEventListener:m}},logger:p},y={};function _(){return["consent","update",{ad_user_data:"granted",ad_personalization:"granted",ad_storage:"denied",analytics_storage:"granted"}]}function g(){return["consent","default",{ad_storage:"denied",analytics_storage:"denied",ad_user_data:"denied",ad_personalization:"denied"}]}function v(){return["event","purchase",{transaction_id:"T_12345",value:25.42,currency:"EUR",items:[{item_id:"SKU_12345",item_name:"Product Name",item_category:"Category",quantity:1,price:25.42}]}]}function w(){return["event","add_to_cart",{currency:"EUR",value:15.25,items:[{item_id:"SKU_12345",item_name:"Product Name",item_variant:"red",quantity:1,price:15.25}]}]}function X(){return["event","view_item",{currency:"EUR",value:15.25,items:[{item_id:"SKU_12345",item_name:"Product Name",item_category:"Category",price:15.25}]}]}function h(){return["config","G-XXXXXXXXXX",{page_title:"Custom Page Title",page_location:"https://example.com/page",send_page_view:!1}]}function E(){return["set",{currency:"EUR",country:"DE"}]}function L(){return{event:"custom_event",custom_parameter:"custom_value",user_id:"user123"}}t(y,{add_to_cart:()=>w,config:()=>h,consentDefault:()=>g,consentUpdate:()=>_,directDataLayerEvent:()=>L,purchase:()=>v,setCustom:()=>E,view_item:()=>X});var b={};t(b,{add_to_cart:()=>$,config:()=>x,configGA4:()=>q,consentOnlyMapping:()=>C,consentUpdate:()=>k,customEvent:()=>P,purchase:()=>U,view_item:()=>A});var k={name:"walker consent",settings:{command:{map:{functional:{value:!0},analytics:{key:"analytics_storage",fn:e=>"granted"===e},marketing:{key:"ad_storage",fn:e=>"granted"===e}}}}},U={name:"order complete",data:{map:{id:"transaction_id",total:"value",currency:"currency",nested:{loop:["items",{map:{type:{value:"product"},data:{map:{id:"item_id",name:"item_name",category:"item_category",quantity:"quantity",price:"price"}}}}]}}}},$={name:"product add",data:{map:{id:"items.0.item_id",name:"items.0.item_name",price:"value",currency:"currency",color:"items.0.item_variant",quantity:"items.0.quantity"}}},A={name:"product view",data:{map:{id:"items.0.item_id",name:"items.0.item_name",category:"items.0.item_category",price:"items.0.price",currency:"currency"}}},q={name:"page view",data:{map:{title:"page_title",url:"page_location"}}},P={data:{map:{user_id:"user_id",custom_parameter:"custom_parameter"}}},x={consent:{update:k},purchase:U,add_to_cart:$,view_item:A,"config G-XXXXXXXXXX":q,custom_event:P,"*":{data:{}}},C={consent:{update:k}},D=async(e,t)=>{const{elb:n,window:a}=t,r={name:"dataLayer",prefix:"dataLayer",...null==e?void 0:e.settings},i={settings:r};return a&&(function(e,t){const n=t.settings,a=(null==n?void 0:n.name)||"dataLayer",r=window[a];if(Array.isArray(r)&&!o){o=!0;try{for(const t of r)u(e,n,t)}finally{o=!1}}}(n,i),function(e,t){const n=t.settings,a=(null==n?void 0:n.name)||"dataLayer";window[a]||(window[a]=[]);const r=window[a];if(!Array.isArray(r))return;const i=r.push.bind(r);r.push=function(...t){if(o)return i(...t);o=!0;try{for(const a of t)u(e,n,a)}finally{o=!1}return i(...t)}}(n,i)),{type:"dataLayer",config:i,push:n,destroy:async()=>{const e=r.name||"dataLayer";a&&a[e]&&Array.isArray(a[e])}}},R=D;export{y as Events,b as Mapping,s as SourceDataLayer,C as consentOnlyMapping,_ as consentUpdateEvent,x as dataLayerExamples,R as default,d as env,D as sourceDataLayer};//# sourceMappingURL=index.mjs.map