{"version":3,"sources":["GoogleDataLayer.js"],"names":["googleDataLayer","_dataLayer","init","dataLayer","console","error","this","presentedAgeGate","log","push","event","passedAgeGate","selectedCountry","selectedYear","data","country","year","age_gate_data","failedAgeGate","errorReason","fail_reason","newsletterSignup","selectedInterest","newsletter_interest","contactFormSignup","contact_form_preference","viewItem","product","d","split","itemData","item_name","item_id","price","item_brand","item_category","item_variant","quantity","coupon","currency","value","items","ecommerce","addToCart","registerInterest","interestPreference","interestCampaign","keepMeUpdated","interest_preference","interest_campaign","newsletter","beginCheckout","orderDetails","inviteCampaign","completeCheckout","purchaseInfo","purchaseObject","itemArray","itemsData","campaignId","forEach","item","customAttributes","attr","Key","Value","itemDetails","transaction_id","name","netPaymentSet","presentmentMoney","currencyCode","amount","inviteSuccess","inviteFailure","reason"],"mappings":"AAAA,IAAIA,gBAAkB,CAClBC,WAAY,KAEZC,KAAM,WACF,MAA0B,oBAAf,WAA2C,MAAbC,WAA2C,iBAAf,WACjEC,QAAQC,MAAM,uFACP,IAEPC,KAAKL,WAAaE,WACX,IAIfI,iBAAkB,WACd,GAAID,KAAKJ,OAEL,OADAE,QAAQI,IAAI,oBACLF,KAAKL,WAAWQ,KACnB,CACIC,MAAO,oBAKvBC,cAAe,SAAUC,EAAiBC,GACtC,GAAIP,KAAKJ,OAAQ,CACb,IAAIY,EAAO,CACPC,QAASH,EACTI,KAAMH,GAGV,OADAT,QAAQI,IAAI,mBAAoBM,GACzBR,KAAKL,WAAWQ,KACnB,CACIC,MAAO,gBACPO,cAAeH,MAM/BI,cAAe,SAAUN,EAAiBC,EAAcM,GACpD,GAAIb,KAAKJ,OAAQ,CACb,IAAIY,EAAO,CACPC,QAASH,EACTI,KAAMH,EACNO,YAAaD,GAGjB,OADAf,QAAQI,IAAI,mBAAoBM,GACzBR,KAAKL,WAAWQ,KACnB,CACIC,MAAO,gBACPO,cAAeH,MAK/BO,iBAAkB,SAAUC,GACxB,GAAIhB,KAAKJ,OAEL,OADAE,QAAQI,IAAI,sBAAuBc,GAC5BhB,KAAKL,WAAWQ,KACnB,CACIC,MAAO,oBACPa,oBAAqBD,KAKrCE,kBAAmB,SAAUF,GACzB,GAAIhB,KAAKJ,OAKL,OADAE,QAAQI,IAAI,uBAAwBc,GAC7BhB,KAAKL,WAAWQ,KACnB,CACIC,MAAO,sBACPe,wBAAyBH,KAIzCI,SAAU,SAAUC,GAChB,IAAIC,EAAID,EAAQE,MAAM,KACtB,GAAIvB,KAAKJ,OAAQ,CACb,IAAI4B,EAAW,CAAC,CACZC,UAAWH,EAAE,GACbI,QAASJ,EAAE,GACXK,MAAOL,EAAE,GACTM,WAAYN,EAAE,GACdO,cAAeP,EAAE,GACjBQ,aAAcR,EAAE,GAChBS,SAAUT,EAAE,GACZU,OAAQV,EAAE,KAEVd,EAAO,CACPyB,SAAUX,EAAE,GACZY,MAAOZ,EAAE,GACTa,MAAOX,GAGX,OADA1B,QAAQI,IAAI,cAAeM,GACpBR,KAAKL,WAAWQ,KACnB,CACIC,MAAO,YACPgC,UAAW5B,MAI3B6B,UAAW,SAAUhB,GACjB,IAAIC,EAAID,EAAQE,MAAM,KACtB,GAAIvB,KAAKJ,OAAQ,CACb,IAAI4B,EAAW,CAAC,CACZC,UAAWH,EAAE,GACbI,QAASJ,EAAE,GACXK,MAAOL,EAAE,GACTM,WAAYN,EAAE,GACdO,cAAeP,EAAE,GACjBQ,aAAcR,EAAE,GAChBS,SAAUT,EAAE,GACZU,OAAQV,EAAE,KAEVd,EAAO,CACPyB,SAAUX,EAAE,GACZY,MAAOZ,EAAE,GACTa,MAAOX,GAGX,OADA1B,QAAQI,IAAI,eAAgBM,GACrBR,KAAKL,WAAWQ,KACnB,CACIC,MAAO,cACPgC,UAAW5B,MAI3B8B,iBAAkB,SAAUC,EAAoBC,EAAkBC,GAC9D,GAAIzC,KAAKJ,OAGL,OAFAE,QAAQI,IAAI,sBAAuBqC,EAAoBC,EAAkBC,GAElEzC,KAAKL,WAAWQ,KACnB,CACIC,MAAO,oBACPsC,oBAAqBH,EACrBI,kBAAmBH,EACnBI,WAAYH,KAI5BI,cAAe,SAAUC,GAErB,IAAIb,EAAWa,EAAuB,SAClCZ,EAAQY,EAAoB,MAC5BX,EAAQW,EAAoB,MAC5BC,EAAiBD,EAA6B,eAElD,GAAI9C,KAAKJ,OAAQ,CACb,IAAIY,EAAO,CACPyB,SAAUA,EACVC,MAAOA,EACPF,OAAQe,EACRZ,MAAOA,GAGX,OADArC,QAAQI,IAAI,mBAAoBM,GACzBR,KAAKL,WAAWQ,KACnB,CACIC,MAAO,iBACPgC,UAAW5B,MAI3BwC,iBAAkB,SAAUC,GACxB,IAAIC,EAAiBD,EACrB,GAAIjD,KAAKJ,OAAQ,CAEb,IAAIuD,EAAYD,EAA0B,UAC1C,IAAIE,EAAY,GAEhB,IAAIC,EAAa,GAEjBF,EAAUG,SAASC,IAEfA,EAAKC,iBAAiBF,SAASG,IACX,cAAZA,EAAKC,MACLL,EAAaI,EAAKE,UAI1B,IAAIC,EAAc,CACdnC,UAAW8B,EAAW,KACtB7B,QAAS6B,EAAW,KACpBvB,OAAQqB,EACRtB,SAAUwB,EAAe,SACzB5B,MAAO4B,EAAyB,mBAAoB,iBAAU,QAGlEH,EAAUjD,KAAKyD,MAGnB,IAAIpD,EAAO,CACPqD,eAAkBX,EAAeY,KACjC7B,SAAUiB,EAAea,cAAcC,iBAAiBC,aACxD/B,MAAOgB,EAAea,cAAcC,iBAAiBE,OACrDlC,OAAQqB,EACRlB,MAAOiB,GAGX,OADAtD,QAAQI,IAAI,sBAAuBM,GAC5BR,KAAKL,WAAWQ,KACnB,CACIC,MAAO,WACPgC,UAAW5B,MAI3B2D,cAAe,WAEX,GAAInE,KAAKJ,OAEL,OADAE,QAAQI,IAAI,iBACLF,KAAKL,WAAWQ,KACnB,CACIC,MAAS,yBAIzBgE,cAAe,SAAUC,GAErB,GAAIrE,KAAKJ,OAEL,OADAE,QAAQI,IAAI,mBAAoBmE,GACzBrE,KAAKL,WAAWQ,KACnB,CACIC,MAAS,mBACT,cAAeiE","file":"../GoogleDataLayer.js","sourcesContent":["var googleDataLayer = {\r\n _dataLayer: null,\r\n\r\n init: function () {\r\n if (typeof (dataLayer) == 'undefined' || dataLayer == null || typeof (dataLayer) != 'object') {\r\n console.error(\"Google datalayer object is not available. No data layer transaction can take place\");\r\n return false;\r\n } else {\r\n this._dataLayer = dataLayer\r\n return true;\r\n }\r\n },\r\n\r\n presentedAgeGate: function () {\r\n if (this.init()) {\r\n console.log(\"presentedAgeGate\");\r\n return this._dataLayer.push(\r\n {\r\n event: \"age_gate_shown\"\r\n });\r\n }\r\n },\r\n\r\n passedAgeGate: function (selectedCountry, selectedYear) {\r\n if (this.init()) {\r\n let data = {\r\n country: selectedCountry,\r\n year: selectedYear\r\n };\r\n console.log(\"passedAgeGate %o\", data);\r\n return this._dataLayer.push(\r\n {\r\n event: \"age_gate_pass\",\r\n age_gate_data: data\r\n\r\n });\r\n }\r\n },\r\n\r\n failedAgeGate: function (selectedCountry, selectedYear, errorReason) {\r\n if (this.init()) {\r\n let data = {\r\n country: selectedCountry,\r\n year: selectedYear,\r\n fail_reason: errorReason\r\n };\r\n console.log(\"failedAgeGate %o\", data);\r\n return this._dataLayer.push(\r\n {\r\n event: \"age_gate_fail\",\r\n age_gate_data: data\r\n });\r\n }\r\n },\r\n\r\n newsletterSignup: function (selectedInterest) {\r\n if (this.init()) {\r\n console.log(\"newsletterSignup %o\", selectedInterest);\r\n return this._dataLayer.push(\r\n {\r\n event: \"newsletter_signup\",\r\n newsletter_interest: selectedInterest\r\n });\r\n }\r\n },\r\n\r\n contactFormSignup: function (selectedInterest) {\r\n if (this.init()) {\r\n //let data = {\r\n // newsletter_interest: selectedInterest\r\n //};\r\n console.log(\"contactFormSignup %o\", selectedInterest);\r\n return this._dataLayer.push(\r\n {\r\n event: \"contact_form_submit\",\r\n contact_form_preference: selectedInterest\r\n });\r\n }\r\n },\r\n viewItem: function (product) {\r\n var d = product.split(',');\r\n if (this.init()) {\r\n let itemData = [{\r\n item_name: d[0],\r\n item_id: d[1],\r\n price: d[2],\r\n item_brand: d[3],\r\n item_category: d[4],\r\n item_variant: d[5],\r\n quantity: d[6],\r\n coupon: d[8]\r\n }];\r\n let data = {\r\n currency: d[7],\r\n value: d[2],\r\n items: itemData\r\n };\r\n console.log(\"viewItem %o\", data);\r\n return this._dataLayer.push(\r\n {\r\n event: \"view_item\",\r\n ecommerce: data\r\n });\r\n }\r\n },\r\n addToCart: function (product) {\r\n var d = product.split(',');\r\n if (this.init()) {\r\n let itemData = [{\r\n item_name: d[0],\r\n item_id: d[1],\r\n price: d[2],\r\n item_brand: d[3],\r\n item_category: d[4],\r\n item_variant: d[5],\r\n quantity: d[6],\r\n coupon: d[8]\r\n }];\r\n let data = {\r\n currency: d[7],\r\n value: d[2],\r\n items: itemData\r\n };\r\n console.log(\"addToCart %o\", data);\r\n return this._dataLayer.push(\r\n {\r\n event: \"add_to_cart\",\r\n ecommerce: data\r\n });\r\n }\r\n },\r\n registerInterest: function (interestPreference, interestCampaign, keepMeUpdated) {\r\n if (this.init()) {\r\n console.log(\"registerInterest %o\", interestPreference, interestCampaign, keepMeUpdated);\r\n\r\n return this._dataLayer.push(\r\n {\r\n event: \"register_interest\",\r\n interest_preference: interestPreference,\r\n interest_campaign: interestCampaign,\r\n newsletter: keepMeUpdated\r\n });\r\n }\r\n },\r\n beginCheckout: function (orderDetails) {\r\n\r\n var currency = orderDetails[\"currency\"];\r\n var value = orderDetails[\"value\"];\r\n var items = orderDetails[\"items\"];\r\n var inviteCampaign = orderDetails[\"inviteCampaign\"]; \r\n\r\n if (this.init()) {\r\n let data = {\r\n currency: currency,\r\n value: value,\r\n coupon: inviteCampaign,\r\n items: items\r\n };\r\n console.log(\"beginCheckout %o\", data);\r\n return this._dataLayer.push(\r\n {\r\n event: \"begin_checkout\",\r\n ecommerce: data\r\n });\r\n }\r\n },\r\n completeCheckout: function (purchaseInfo) {\r\n var purchaseObject = purchaseInfo;\r\n if (this.init()) {\r\n\r\n var itemArray = purchaseObject[\"lineItems\"];\r\n let itemsData = [];\r\n\r\n var campaignId = \"\";\r\n\r\n itemArray.forEach((item) => {\r\n\r\n item.customAttributes.forEach((attr) => {\r\n if (attr.Key == 'campaignId') {\r\n campaignId = attr.Value\r\n }\r\n });\r\n\r\n let itemDetails = {\r\n item_name: item[\"name\"],\r\n item_id: item[\"name\"],\r\n coupon: campaignId,\r\n quantity: item[\"quantity\"],\r\n price: item[\"discountedTotalSet\"][\"presentmentMoney\"][\"amount\"]\r\n };\r\n\r\n itemsData.push(itemDetails);\r\n });\r\n\r\n let data = {\r\n 'transaction_id': purchaseObject.name,\r\n currency: purchaseObject.netPaymentSet.presentmentMoney.currencyCode,\r\n value: purchaseObject.netPaymentSet.presentmentMoney.amount,\r\n coupon: campaignId,\r\n items: itemsData\r\n };\r\n console.log(\"completeCheckout %o\", data);\r\n return this._dataLayer.push(\r\n {\r\n event: \"purchase\",\r\n ecommerce: data\r\n });\r\n }\r\n },\r\n inviteSuccess: function () {\r\n\r\n if (this.init()) {\r\n console.log(\"inviteSuccess\");\r\n return this._dataLayer.push(\r\n {\r\n 'event': 'invite_link_success'\r\n });\r\n }\r\n },\r\n inviteFailure: function (reason) {\r\n\r\n if (this.init()) {\r\n console.log(\"inviteFailure %o\", reason);\r\n return this._dataLayer.push(\r\n {\r\n 'event': 'invite_link_fail',\r\n 'fail-reason': reason\r\n });\r\n }\r\n }\r\n};"]}