{"version":3,"sources":["../js/sugTagManager.js"],"names":["SugTagManager","pushEvent","event","action","label","window","globalcfg","isEU_User","ga","dataLayer","push","eventAction","eventLabel","pushConversionEvent","sendTo","value","currency","send_to","thirdPartyDataLayer","pushValue","key","reset","this"],"mappings":"MAKMA,cAWJC,UAAY,SAASC,EAAOC,EAAQC,GAC7BC,OAAOC,UAAUC,YAEpBF,OAAOG,GAAG,OAAO,QAASN,EAAOC,EAAQC,CAAK,EAG9CC,OAAOI,UAAUC,KAAK,CAChBR,MAASA,EACTS,YAAeR,EACfS,WAAcR,CACpB,CAAC,EAEL,EAWAS,oBAAsB,SAASX,EAAOY,EAAQC,EAAQ,EAAMC,EAAW,OAChEX,OAAOC,UAAUC,YAEpBF,OAAOI,UAAUC,KAAK,CACER,MAAOA,EACPe,QAASH,EACTC,MAAOA,EACPC,SAAUA,CACZ,CAAC,EAGmB,KAAA,IAA/BX,OAAOa,qBAChBb,OAAOa,oBAAoBR,KAAK,CAAC,QAAQ,aAAa,CACpDO,QAAWH,EACXC,MAASA,EACTC,SAAYA,CACd,EAAE,EAGR,EASAG,UAAY,SAASC,EAAKL,GACnBV,OAAOC,UAAUC,WACpBF,OAAOI,UAAUC,KAAK,EAAEU,GAAML,CAAK,CAAC,CAExC,EAKAM,MAAQ,WAINhB,OAAOI,UAAUC,KAAK,WACpBY,KAAKD,MAAM,CACb,CAAC,CACH,CACF","file":"sugTagManager.min.js","sourcesContent":["/**\r\n * SUG Tag Manager for handling multiple external Google Tag Manager systems in one location\r\n * @author SUG\r\n**/\r\n\r\nclass SugTagManager {\r\n // TODO: add a constructor method and accept a datalayer property name\r\n\r\n /**\r\n * Method to handle pushing events to the Data Layers\r\n * @event - required, name of the event being fired\r\n * @action - required, action for the event\r\n * @label - optional, label that provides further detail\r\n // example: pushEvent(\"myEvent\", \"myAction\", \"myLabel\");\r\n // example: pushEvent(event = \"myEvent\", action = \"myAction\", label = \"myLabel\");\r\n **/\r\n pushEvent = function(event, action, label) {\r\n if( !window.globalcfg.isEU_User ){\r\n // UA\r\n window.ga('send','event', event, action, label);\r\n\r\n // GTM\r\n window.dataLayer.push({\r\n 'event': event, // 'pricing page’\r\n 'eventAction': action, // 'click'\r\n 'eventLabel': label // 'gold cta'\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Method to handle pushing conversion events to the Data Layer and the Third Party Data Layer\r\n * @event - required, name of the event being fired\r\n * @send_to - required, sent to of the event being fired\r\n * @value - optional, currency amount\r\n * @currency - optional, currency type\r\n // example: pushConversionEvent(\"eventNameHere\", \"AW-877246914/znU2CPbp0okDEMLzpqID\");\r\n // example: pushConversionEvent(event = \"eventNameHere\", sendTo = \"AW-877246914/znU2CPbp0okDEMLzpqID\", value = 0.00, currency = \"USD\");\r\n **/\r\n pushConversionEvent = function(event, sendTo, value = 0.00, currency = \"USD\") {\r\n if( !window.globalcfg.isEU_User ){\r\n // GTM only, UA is being left as is\r\n window.dataLayer.push({\r\n event: event,\r\n send_to: sendTo,\r\n value: value,\r\n currency: currency\r\n });\r\n\r\n // some areas of the site push conversions for older tracking to a thirdPartyDataLayer\r\n if( typeof window.thirdPartyDataLayer !== 'undefined'){\r\n window.thirdPartyDataLayer.push([\"event\",\"conversion\",{\r\n \"send_to\": sendTo,\r\n \"value\": value,\r\n \"currency\": currency\r\n }]);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Method to handle pushing key / values\r\n * @key - required, this is the key of the data\r\n * @value - required, this is the value of the data\r\n // example: pushValue(\"someKey\", \"someValue\");\r\n // example: pushValue(key = \"myKey\", value = \"myValue\");\r\n **/\r\n pushValue = function(key, value) {\r\n if( !window.globalcfg.isEU_User ){\r\n window.dataLayer.push({[key]: value});\r\n }\r\n }\r\n\r\n /**\r\n * Method to handle reseting the current user Data Layer\r\n **/\r\n reset = function() {\r\n // called when the user logs out from the system\r\n\r\n // GTM only\r\n window.dataLayer.push(function() {\r\n this.reset();\r\n });\r\n }\r\n}"]}