UNPKG

@walkeros/web-source-datalayer

Version:

DataLayer source for walkerOS

1 lines 5.45 kB
"use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,i=(e,n)=>{for(var r in n)t(e,r,{get:n[r],enumerable:!0})},o={};i(o,{Events:()=>l,Mapping:()=>X,SourceDataLayer:()=>m,consentOnlyMapping:()=>P,consentUpdateEvent:()=>y,dataLayerExamples:()=>E,default:()=>$,sourceDataLayer:()=>k}),module.exports=(e=o,((e,i,o,c)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let s of r(i))a.call(e,s)||s===o||t(e,s,{get:()=>i[s],enumerable:!(c=n(i,s))||c.enumerable});return e})(t({},"__esModule",{value:!0}),e));var c=require("@walkeros/core"),s=!1;function u(e,t={},n){if(t.filter){if(!0===(0,c.tryCatch)(()=>t.filter(n),()=>!1)())return}const r=function(e){if((0,c.isObject)(e)&&(0,c.isString)(e.event))return e;if((0,c.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(!r)return;const a={event:`${t.prefix||"dataLayer"} ${r.event}`,data:r,context:{},globals:{},custom:{},consent:{},nested:[],user:{},id:Math.random().toString(36).substring(2,15),trigger:"",entity:"",action:"",timestamp:Date.now(),timing:0,group:"",count:0,version:{source:"1.0.0",tagging:2},source:{type:"dataLayer",id:"",previous_id:""}};(0,c.tryCatch)(()=>e.push(a),()=>{})()}function d(e){const[t,n,r]=e;if(!(0,c.isString)(t))return null;let a,i={};switch(t){case"consent":if(!(0,c.isString)(n)||e.length<3)return null;if(!(0,c.isObject)(r)||null===r)return null;a=`${t} ${n}`,i={...r};break;case"event":if(!(0,c.isString)(n))return null;a=n,(0,c.isObject)(r)&&(i={...r});break;case"config":if(!(0,c.isString)(n))return null;a=`${t} ${n}`,(0,c.isObject)(r)&&(i={...r});break;case"set":if((0,c.isString)(n))a=`${t} ${n}`,(0,c.isObject)(r)&&(i={...r});else{if(!(0,c.isObject)(n))return null;a=`${t} custom`,i={...n}}break;default:return null}return{event:a,...i}}var m={},l={};function y(){return["consent","update",{ad_user_data:"granted",ad_personalization:"granted",ad_storage:"denied",analytics_storage:"granted"}]}function p(){return["consent","default",{ad_storage:"denied",analytics_storage:"denied",ad_user_data:"denied",ad_personalization:"denied"}]}function g(){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 f(){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 _(){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 v(){return["config","G-XXXXXXXXXX",{page_title:"Custom Page Title",page_location:"https://example.com/page",send_page_view:!1}]}function w(){return["set",{currency:"EUR",country:"DE"}]}function b(){return{event:"custom_event",custom_parameter:"custom_value",user_id:"user123"}}i(l,{add_to_cart:()=>f,config:()=>v,consentDefault:()=>p,consentUpdate:()=>y,directDataLayerEvent:()=>b,purchase:()=>g,setCustom:()=>w,view_item:()=>_});var X={};i(X,{add_to_cart:()=>O,config:()=>E,configGA4:()=>A,consentOnlyMapping:()=>P,consentUpdate:()=>h,customEvent:()=>S,purchase:()=>L,view_item:()=>j});var h={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}}}}},L={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"}}}}]}}}},O={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"}}},j={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"}}},S={data:{map:{user_id:"user_id",custom_parameter:"custom_parameter"}}},E={consent:{update:h},purchase:L,add_to_cart:O,view_item:j,"config G-XXXXXXXXXX":A,custom_event:S,"*":{data:{}}},P={consent:{update:h}},U=(e,t)=>{const{settings:n}=t,r={type:"dataLayer",config:t,collector:e,destroy(){const e=n.name||"dataLayer";window[e]&&Array.isArray(window[e])}};!function(e,t){const n=t.settings,r=(null==n?void 0:n.name)||"dataLayer",a=window[r];if(Array.isArray(a)&&!s){s=!0;try{for(const t of a)u(e,n,t)}finally{s=!1}}}(e,t),function(e,t){const n=t.settings,r=(null==n?void 0:n.name)||"dataLayer";window[r]||(window[r]=[]);const a=window[r];if(!Array.isArray(a))return;const i=a.push.bind(a);a.push=function(...t){if(s)return i(...t);s=!0;try{for(const r of t)u(e,n,r)}finally{s=!1}return i(...t)}}(e,t);return{source:r,elb:(...e)=>{const t=n.name||"dataLayer",r=window[t];return Array.isArray(r)?Promise.resolve(r.push(...e)):Promise.resolve(0)}}};function k(e={}){const t=(t,n)=>{const r={...n,settings:{name:"dataLayer",prefix:"dataLayer",...e,...n.settings}};return U(t,r)};return t.init=(e,t)=>U(e,{type:"dataLayer",settings:t.settings}),t.settings={name:"dataLayer",prefix:"dataLayer",...e},t.type="dataLayer",t}var $=k;//# sourceMappingURL=index.js.map