{"version":3,"file":"eec-C7XtubS3.js","sources":["../../../app/javascript/src/utils/eec.js"],"sourcesContent":["const push = (obj) => {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({ ecommerce: null });\n window.dataLayer.push(obj);\n}\n\nexport const productHash = (args) => {\n return {\n 'id': args.id, // Product ID (string).\n 'name': args.name, // Product name (string).\n 'category': args.category, // Product category (string).\n 'list': args.list, // Product list (string).\n 'position': args.position // Product position (number).\n };\n};\n\nexport const trackImpression = (args) => {\n push({\n event: 'eec.impressionView',\n ecommerce: { impressions: [productHash(args)] }\n });\n};\n\nexport const trackDetailView = (args) => {\n push({\n event: 'gtm.dom',\n ecommerce: { detail: {products: [productHash(args)]} }\n });\n};\n\nexport const trackClick = (args, redirectTo, evt) => {\n push({\n event: 'eec.impressionClick',\n ecommerce: {\n click: {\n actionField: { list: args.list },\n products: [productHash(args)]\n }\n }\n });\n if (redirectTo) {\n document.location = redirectTo\n } else if (evt) {\n evt.preventDefault();\n const link = evt.target.closest('a').href;\n if (evt.metaKey || evt.ctrlKey) {\n window.open(link);\n } else {\n window.location.assign(evt.target.closest('a').href);\n }\n }\n};\n\nexport const isInViewport = (element) => {\n if (!element) {\n return false;\n }\n const rect = element.getBoundingClientRect();\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth)\n );\n};\n\nexport const trackPurchase = (args) => {\n push({\n ecommerce: {\n purchase: {\n actionField: {\n id: Date.now().toString(),\n revenue: args.revenue,\n affiliation: args.affiliation,\n coupon: args.coupon\n },\n products: [{\n name: args.name,\n id: args.id,\n quantity: 1\n }]\n }\n }\n });\n}\n"],"names":["push","obj","productHash","args","trackImpression","trackDetailView","trackClick","redirectTo","evt","link","isInViewport","element","rect","trackPurchase"],"mappings":"AAAA,MAAMA,EAAQC,GAAQ,CACpB,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAAE,UAAW,IAAM,CAAA,EACzC,OAAO,UAAU,KAAKA,CAAG,CAC3B,EAEaC,EAAeC,IACnB,CACL,GAAMA,EAAK,GACX,KAAQA,EAAK,KACb,SAAYA,EAAK,SACjB,KAAQA,EAAK,KACb,SAAYA,EAAK,QACrB,GAGaC,EAAmBD,GAAS,CACvCH,EAAK,CACH,MAAO,qBACP,UAAW,CAAE,YAAa,CAACE,EAAYC,CAAI,CAAC,CAAG,CACnD,CAAG,CACH,EAEaE,EAAmBF,GAAS,CACvCH,EAAK,CACH,MAAO,UACP,UAAW,CAAE,OAAQ,CAAC,SAAU,CAACE,EAAYC,CAAI,CAAC,CAAC,CAAG,CAC1D,CAAG,CACH,EAEaG,EAAa,CAACH,EAAMI,EAAYC,IAAQ,CAUnD,GATAR,EAAK,CACH,MAAO,sBACP,UAAW,CACT,MAAO,CACL,YAAa,CAAE,KAAMG,EAAK,IAAM,EAChC,SAAU,CAACD,EAAYC,CAAI,CAAC,CAC7B,CACF,CACL,CAAG,EACGI,EACF,SAAS,SAAWA,UACXC,EAAK,CACdA,EAAI,eAAc,EAClB,MAAMC,EAAOD,EAAI,OAAO,QAAQ,GAAG,EAAE,KACjCA,EAAI,SAAWA,EAAI,QACrB,OAAO,KAAKC,CAAI,EAEhB,OAAO,SAAS,OAAOD,EAAI,OAAO,QAAQ,GAAG,EAAE,IAAI,CAEtD,CACH,EAEaE,EAAgBC,GAAY,CACvC,GAAI,CAACA,EACH,MAAO,GAET,MAAMC,EAAOD,EAAQ,wBACrB,OACEC,EAAK,KAAO,GACVA,EAAK,MAAQ,GACbA,EAAK,SAAW,OAAO,aAAe,SAAS,gBAAgB,eAC/DA,EAAK,QAAU,OAAO,YAAc,SAAS,gBAAgB,YAEnE,EAEaC,EAAiBV,GAAS,CACrCH,EAAK,CACH,UAAW,CACT,SAAU,CACR,YAAa,CACX,GAAI,KAAK,IAAK,EAAC,SAAU,EACzB,QAASG,EAAK,QACd,YAAaA,EAAK,YAClB,OAAQA,EAAK,MACd,EACD,SAAU,CAAC,CACT,KAAMA,EAAK,KACX,GAAIA,EAAK,GACT,SAAU,CACpB,CAAS,CACF,CACF,CACL,CAAG,CACH"}