{"version":3,"file":"cart.min.js","sources":["cart.js"],"sourcesContent":["((w) => {\r\n const utils = new GtmUtils();\r\n var externalTrackingSystemName = 'gtm';\r\n\r\n if (w.ExternalTrackingEventBus) {\r\n w.ExternalTrackingEventBus.register(externalTrackingSystemName);\r\n }\r\n\r\n w.PubSub.subscribe('externaltracking.shopcart', (topic, data) => {\r\n const channelParts = topic.split('.');\r\n const topicAction = channelParts[channelParts.length - 1];\r\n var topicActionLowerCase = topicAction.toLowerCase();\r\n\r\n const mapConvertItems = (items) => items.map(trackableOrderLine =>\r\n utils.convertToGtmEecProduct(trackableOrderLine.product, {\r\n 'price': trackableOrderLine.unitPrice,\r\n 'quantity': trackableOrderLine.quantity\r\n }));\r\n\r\n try {\r\n switch (topicActionLowerCase) {\r\n case 'addtocart':\r\n var gtmAddProducts = mapConvertItems(data.items);\r\n pushGtmEvent('add', gtmAddProducts, data.source);\r\n break;\r\n case 'removefromcart':\r\n var gtmRemoveProducts = mapConvertItems(data.items);\r\n pushGtmEvent('remove', gtmRemoveProducts, data.source);\r\n break;\r\n case 'updatecartquantity':\r\n if (data.addedQtyItems && data.addedQtyItems.length) {\r\n var gtmAddQtyProducts = mapConvertItems(data.addedQtyItems);\r\n pushGtmEvent('add', gtmAddQtyProducts, data.source);\r\n }\r\n else if (data.removedQtyItems && data.removedQtyItems.length) {\r\n var gtmRemoveQtyProducts = mapConvertItems(data.removedQtyItems);\r\n pushGtmEvent('remove', gtmRemoveQtyProducts, data.source);\r\n }\r\n break;\r\n default:\r\n throw 'Unknown shopcart action received via pubsub: ' + topicAction;\r\n }\r\n\r\n } catch (e) {\r\n console.error('[GTM]: Failed to push cart changes to dataLayer. Reason: ' + e);\r\n }\r\n finally {\r\n if (w.ExternalTrackingEventBus) {\r\n w.ExternalTrackingEventBus.eventHandled(externalTrackingSystemName, topicActionLowerCase, data);\r\n }\r\n }\r\n\r\n function pushGtmEvent(type, products, source) {\r\n var gtmEvent;\r\n switch (type) {\r\n case 'add':\r\n gtmEvent = {\r\n 'event': 'eec.addToCart',\r\n 'ecommerce': {\r\n 'currencyCode': utils.getCurrencyCode(data),\r\n 'add': { 'products': products }\r\n }\r\n };\r\n break;\r\n case 'remove':\r\n gtmEvent = {\r\n 'event': 'eec.removeFromCart',\r\n 'ecommerce': {\r\n 'currencyCode': utils.getCurrencyCode(data),\r\n 'remove': { 'products': products }\r\n }\r\n };\r\n break;\r\n default:\r\n throw 'Unknown GtmEvent type: ' + type;\r\n\r\n }\r\n\r\n w.dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\r\n w.dataLayer.push(gtmEvent);\r\n\r\n if (source === 'callback') {\r\n w.PubSub.publish('externaltracking.complete');\r\n }\r\n }\r\n });\r\n})(window);"],"names":["utils","GtmUtils","w","ExternalTrackingEventBus","register","PubSub","subscribe","topic","data","channelParts","split","topicAction","length","topicActionLowerCase","toLowerCase","mapConvertItems","items","map","trackableOrderLine","convertToGtmEecProduct","product","price","unitPrice","quantity","pushGtmEvent","source","addedQtyItems","removedQtyItems","e","console","error","eventHandled","type","products","gtmEvent","event","ecommerce","currencyCode","getCurrencyCode","add","remove","dataLayer","push","publish","window"],"mappings":"CAAC,IACG,MAAMA,EAAQ,IAAIC,SAGdC,EAAEC,0BACFD,EAAEC,yBAAyBC,SAHE,KAGiC,EAGlEF,EAAEG,OAAOC,UAAU,4BAA6B,CAACC,EAAOC,KACpD,IAAMC,EAAeF,EAAMG,MAAM,GAAG,EAC9BC,EAAcF,EAAaA,EAAaG,OAAS,GACnDC,EAAuBF,EAAYG,YAAY,EAE7CC,EAAkB,GAAWC,EAAMC,IAAIC,GACzClB,EAAMmB,uBAAuBD,EAAmBE,QAAS,CACrDC,MAASH,EAAmBI,UAC5BC,SAAYL,EAAmBK,QACnC,CAAC,CAAC,EAEN,IACI,OAAQV,GACJ,IAAK,YAEDW,EAAa,MADQT,EAAgBP,EAAKQ,KAAK,EACXR,EAAKiB,MAAM,EAC/C,MACJ,IAAK,iBAEDD,EAAa,SADWT,EAAgBP,EAAKQ,KAAK,EACRR,EAAKiB,MAAM,EACrD,MACJ,IAAK,qBACGjB,EAAKkB,eAAiBlB,EAAKkB,cAAcd,OAEzCY,EAAa,MADWT,EAAgBP,EAAKkB,aAAa,EACnBlB,EAAKiB,MAAM,EAE7CjB,EAAKmB,iBAAmBnB,EAAKmB,gBAAgBf,QAElDY,EAAa,SADcT,EAAgBP,EAAKmB,eAAe,EAClBnB,EAAKiB,MAAM,EAE5D,MACJ,QACI,KAAM,gDAAkDd,CAChE,CASJ,CAPE,MAAOiB,GACLC,QAAQC,MAAM,4DAA8DF,CAAC,CACjF,CACA,QACQ1B,EAAEC,0BACFD,EAAEC,yBAAyB4B,aA9CN,MA8C+ClB,EAAsBL,CAAI,CAEtG,CAEA,SAASgB,EAAaQ,EAAMC,EAAUR,GAClC,IAAIS,EACJ,OAAQF,GACJ,IAAK,MACDE,EAAW,CACPC,MAAS,gBACTC,UAAa,CACTC,aAAgBrC,EAAMsC,gBAAgB9B,CAAI,EAC1C+B,IAAO,CAAEN,SAAYA,CAAS,CAClC,CACJ,EACA,MACJ,IAAK,SACDC,EAAW,CACPC,MAAS,qBACTC,UAAa,CACTC,aAAgBrC,EAAMsC,gBAAgB9B,CAAI,EAC1CgC,OAAU,CAAEP,SAAYA,CAAS,CACrC,CACJ,EACA,MACJ,QACI,KAAM,0BAA4BD,CAE1C,CAEA9B,EAAEuC,UAAUC,KAAK,CAAEN,UAAW,IAAK,CAAC,EACpClC,EAAEuC,UAAUC,KAAKR,CAAQ,EAEV,aAAXT,GACAvB,EAAEG,OAAOsC,QAAQ,2BAA2B,CAEpD,CACJ,CAAC,CACJ,GAAEC,MAAM"}