{"version":3,"file":"shopping_list.min.js","sources":["shopping_list.js"],"sourcesContent":["((w) => {\n const utils = new GtmUtils();\n var externalTrackingSystemName = 'gtm';\n\n if (w.ExternalTrackingEventBus) {\n w.ExternalTrackingEventBus.register(externalTrackingSystemName);\n }\n\n w.PubSub.subscribe('externaltracking.shoppinglist', (topic, data) => {\n const channelParts = topic.split('.');\n const topicAction = channelParts[channelParts.length - 1];\n var topicActionLowerCase = topicAction.toLowerCase();\n const currencyCode = utils.getCurrencyCode();\n\n const mapConvertItems = (items) => items.map(trackableShoppingListEntry =>\n utils.convertToGtmGa4Product(trackableShoppingListEntry.product, {\n 'quantity': trackableShoppingListEntry.quantity\n }));\n\n try {\n switch (topicActionLowerCase) {\n case 'addtowishlist':\n var gtmAddProducts = mapConvertItems(data.items);\n pushGtmEvent('add', gtmAddProducts, data.source);\n break;\n default:\n throw 'Unknown shoppinglist action received via pubsub: ' + topicAction;\n }\n\n } catch (e) {\n console.error('[GTM]: Failed to push cart changes to dataLayer. Reason: ' + e);\n }\n finally {\n if (w.ExternalTrackingEventBus) {\n w.ExternalTrackingEventBus.eventHandled(externalTrackingSystemName, topicActionLowerCase, data);\n }\n }\n\n function pushGtmEvent(type, products, source) {\n var gtmEvent;\n switch (type) {\n case 'add':\n gtmEvent = {\n 'event': 'add_to_wishlist',\n 'ecommerce': {\n 'currency': currencyCode,\n 'items': products\n }\n };\n break;\n default:\n throw 'Unknown GtmEvent type: ' + type;\n\n }\n\n w.dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\n w.dataLayer.push(gtmEvent);\n\n if (source === 'callback') {\n w.PubSub.publish('externaltracking.complete');\n }\n }\n });\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"}