{"version":3,"file":"shopping_list.min.js","sources":["shopping_list.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.shoppinglist', (topic, data) => {\r\n const channelParts = topic.split('.');\r\n const topicAction = channelParts[channelParts.length - 1];\r\n var topicActionLowerCase = topicAction.toLowerCase();\r\n const currencyCode = utils.getCurrencyCode();\r\n\r\n const mapConvertItems = (items) => items.map(trackableShoppingListEntry =>\r\n utils.convertToGtmGa4Product(trackableShoppingListEntry.product, {\r\n 'quantity': trackableShoppingListEntry.quantity\r\n }));\r\n\r\n try {\r\n switch (topicActionLowerCase) {\r\n case 'addtowishlist':\r\n var gtmAddProducts = mapConvertItems(data.items);\r\n pushGtmEvent('add', gtmAddProducts, data.source);\r\n break;\r\n default:\r\n throw 'Unknown shoppinglist 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': 'add_to_wishlist',\r\n 'ecommerce': {\r\n 'currency': currencyCode,\r\n 'items': 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","currencyCode","getCurrencyCode","gtmAddProducts","items","map","trackableShoppingListEntry","convertToGtmGa4Product","product","quantity","type","products","source","gtmEvent","event","ecommerce","currency","dataLayer","push","publish","e","console","error","eventHandled","window"],"mappings":"CAAC,IACG,MAAMA,EAAQ,IAAIC,SAGdC,EAAEC,0BACFD,EAAEC,yBAAyBC,SAHE,KAGiC,EAGlEF,EAAEG,OAAOC,UAAU,gCAAiC,CAACC,EAAOC,KACxD,IAAMC,EAAeF,EAAMG,MAAM,GAAG,EAC9BC,EAAcF,EAAaA,EAAaG,OAAS,GACnDC,EAAuBF,EAAYG,YAAY,EACnD,MAAMC,EAAef,EAAMgB,gBAAgB,EAO3C,IACI,GACS,kBADDH,EAMA,KAAM,oDAAsDF,EAJ5D,IAAIM,EAAiCT,EAAKU,MARbC,IAAIC,GACzCpB,EAAMqB,uBAAuBD,EAA2BE,QAAS,CAC7DC,SAAYH,EAA2BG,QAC3C,CAAC,CAAC,EAqBgBC,EAfG,MAeGC,EAfIR,EAeMS,EAfUlB,EAAKkB,OAiBjD,GACS,QADDF,EAWA,KAAM,0BAA4BA,EATlCG,EAAW,CACPC,MAAS,kBACTC,UAAa,CACTC,SAAYf,EACZG,MAASO,CACb,CACJ,EAORvB,EAAE6B,UAAUC,KAAK,CAAEH,UAAW,IAAK,CAAC,EACpC3B,EAAE6B,UAAUC,KAAKL,CAAQ,EAEV,aAAXD,GACAxB,EAAEG,OAAO4B,QAAQ,2BAA2B,CAvBpD,CAPE,MAAOC,GACLC,QAAQC,MAAM,4DAA8DF,CAAC,CACjF,CACA,QACQhC,EAAEC,0BACFD,EAAEC,yBAAyBkC,aAhCN,MAgC+CxB,EAAsBL,CAAI,CAEtG,CA0BJ,CAAC,CACJ,GAAE8B,MAAM"}