UNPKG

@walkeros/web-source-datalayer

Version:

DataLayer source for walkerOS

1 lines 5.22 kB
"use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,i=(e,n)=>{for(var a in n)t(e,a,{get:n[a],enumerable:!0})},c={};i(c,{Events:()=>_,Mapping:()=>j,SourceDataLayer:()=>m,consentOnlyMapping:()=>q,consentUpdateEvent:()=>g,dataLayerExamples:()=>$,default:()=>D,env:()=>l,sourceDataLayer:()=>C}),module.exports=(e=c,((e,i,c,o)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let u of a(i))r.call(e,u)||u===c||t(e,u,{get:()=>i[u],enumerable:!(o=n(i,u))||o.enumerable});return e})(t({},"__esModule",{value:!0}),e));var o=require("@walkeros/core"),u=!1;function s(e,t={},n){if(t.filter){if(!0===(0,o.tryCatch)(()=>t.filter(n),()=>!1)())return}const a=function(e){if((0,o.isObject)(e)&&(0,o.isString)(e.event)){const{event:t,...n}=e;return{name:t,...n}}if((0,o.isArray)(e)&&e.length>=2)return d(e);if(t=e,null!=t&&"object"==typeof t&&"length"in t&&"number"==typeof t.length&&t.length>0){return d(Array.from(e))}var t;return null}(n);if(!a)return;const r=`${t.prefix||"dataLayer"} ${a.name}`,{name:i,...c}=a,u={name:r,data:c};(0,o.tryCatch)(()=>e(u),()=>{})()}function d(e){const[t,n,a]=e;if(!(0,o.isString)(t))return null;let r,i={};switch(t){case"consent":if(!(0,o.isString)(n)||e.length<3)return null;if("default"!==n&&"update"!==n)return null;if(!(0,o.isObject)(a)||null===a)return null;r=`${t} ${n}`,i={...a};break;case"event":if(!(0,o.isString)(n))return null;r=n,(0,o.isObject)(a)&&(i={...a});break;case"config":if(!(0,o.isString)(n))return null;r=`${t} ${n}`,(0,o.isObject)(a)&&(i={...a});break;case"set":if((0,o.isString)(n))r=`${t} ${n}`,(0,o.isObject)(a)&&(i={...a});else{if(!(0,o.isObject)(n))return null;r=`${t} custom`,i={...n}}break;default:return null}return{name:r,...i}}var m={},l={};i(l,{push:()=>f});var p=()=>{},y=()=>()=>Promise.resolve({ok:!0,successful:[],queued:[],failed:[]}),f={get push(){return y()},get command(){return y()},get elb(){return y()},get window(){return{dataLayer:[],addEventListener:p,removeEventListener:p}}},_={};function g(){return["consent","update",{ad_user_data:"granted",ad_personalization:"granted",ad_storage:"denied",analytics_storage:"granted"}]}function v(){return["consent","default",{ad_storage:"denied",analytics_storage:"denied",ad_user_data:"denied",ad_personalization:"denied"}]}function w(){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 b(){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 O(){return["set",{currency:"EUR",country:"DE"}]}function L(){return{event:"custom_event",custom_parameter:"custom_value",user_id:"user123"}}i(_,{add_to_cart:()=>b,config:()=>h,consentDefault:()=>v,consentUpdate:()=>g,directDataLayerEvent:()=>L,purchase:()=>w,setCustom:()=>O,view_item:()=>X});var j={};i(j,{add_to_cart:()=>S,config:()=>$,configGA4:()=>A,consentOnlyMapping:()=>q,consentUpdate:()=>E,customEvent:()=>P,purchase:()=>k,view_item:()=>U});var E={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}}}}},k={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"}}}}]}}}},S={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"}}},U={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"}}},A={name:"page view",data:{map:{title:"page_title",url:"page_location"}}},P={data:{map:{user_id:"user_id",custom_parameter:"custom_parameter"}}},$={consent:{update:E},purchase:k,add_to_cart:S,view_item:U,"config G-XXXXXXXXXX":A,custom_event:P,"*":{data:{}}},q={consent:{update:E}},C=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)&&!u){u=!0;try{for(const t of r)s(e,n,t)}finally{u=!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(u)return i(...t);u=!0;try{for(const a of t)s(e,n,a)}finally{u=!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])}}},D=C;//# sourceMappingURL=index.js.map