{"version":3,"file":"product_list.min.js","sources":["product_list.js"],"sourcesContent":["(($, w) => {\r\n const gtmImpressionsChunkSize = 30;\r\n const assetId = 'gtm-eec-prod-list';\r\n\r\n let userInfo = null;\r\n if (w.umwAssets && w.umwAssets[assetId] && w.umwAssets[assetId].length) {\r\n userInfo = w.umwAssets[assetId][0];\r\n }\r\n\r\n w.PubSub.subscribe('externaltracking.product.listview', (_, productImpressions) => {\r\n if (productImpressions && productImpressions.items && productImpressions.items.length > 0) {\r\n processImpressions(productImpressions);\r\n }\r\n });\r\n\r\n function processImpressions(productListImpressions) {\r\n const listName = productListImpressions.listName || document.title;\r\n const allProducts = productListImpressions.items;\r\n const totalProductsCount = allProducts.length;\r\n var $allProductLinks = $(); \r\n var idx = 0, chunkIdx = 0;\r\n const utils = new GtmUtils();\r\n const currencyCode = utils.getCurrencyCode(productListImpressions);\r\n while (idx < totalProductsCount) {\r\n const positionShift = chunkIdx * gtmImpressionsChunkSize;\r\n\r\n const products = allProducts.slice(idx, idx += gtmImpressionsChunkSize);\r\n const gtmProducts = [];\r\n\r\n for (var i = 0, l = products.length; i < l; i++) {\r\n const prod = products[i];\r\n const positionInList = positionShift + i + 1;\r\n const gtmProd = utils.convertToGtmEecProduct(prod, { 'list': listName, 'position': positionInList });\r\n if (gtmProd) {\r\n gtmProducts.push(gtmProd);\r\n\r\n if (prod.$links) {\r\n prod.$links.data('gtm-product', gtmProd);\r\n prod.$links.data('listname', listName);\r\n prod.$links.data('currencycode', currencyCode);\r\n\r\n $allProductLinks = $allProductLinks.add(prod.$links);\r\n }\r\n }\r\n }\r\n\r\n const impressionViewEvent = {\r\n 'event': 'eec.impressionView',\r\n 'ecommerce': {\r\n 'currencyCode': currencyCode,\r\n 'impressions': gtmProducts\r\n }\r\n };\r\n \r\n if (userInfo) {\r\n impressionViewEvent.user = userInfo;\r\n }\r\n\r\n w.dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\r\n w.dataLayer.push(impressionViewEvent);\r\n\r\n ++chunkIdx;\r\n }\r\n\r\n if ($allProductLinks.length > 0) {\r\n $allProductLinks.on('click', function (evt) {\r\n try {\r\n var targetUrl = this.href;\r\n const $this = $(this);\r\n\r\n const productClickEvent = {\r\n 'event': 'eec.productClick',\r\n 'ecommerce': {\r\n 'currencyCode': $this.data('currencycode') || utils.getCurrencyCode(),\r\n 'click': {\r\n 'actionField': { 'list': $this.data('listname') },\r\n 'products': [$this.data('gtm-product')]\r\n }\r\n },\r\n 'eventCallback': function () {\r\n document.location = targetUrl;\r\n }\r\n };\r\n\r\n w.dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\r\n w.dataLayer.push(productClickEvent);\r\n\r\n evt.preventDefault();\r\n } catch (e) {\r\n console.error('[GTM]: Failed to push product click event to dataLayer. Reason: ' + e);\r\n }\r\n });\r\n }\r\n }\r\n})(jQuery, window);"],"names":["$","w","assetId","let","userInfo","umwAssets","length","PubSub","subscribe","_","productImpressions","items","processImpressions","listName","productListImpressions","document","title","allProducts","totalProductsCount","$allProductLinks","idx","chunkIdx","utils","GtmUtils","currencyCode","getCurrencyCode","positionShift","products","slice","gtmProducts","i","l","prod","positionInList","gtmProd","convertToGtmEecProduct","list","position","push","$links","data","add","impressionViewEvent","event","ecommerce","impressions","user","dataLayer","on","evt","targetUrl","this","href","$this","productClickEvent","click","actionField","eventCallback","location","preventDefault","e","console","error","jQuery","window"],"mappings":"CAAA,CAAEA,EAAGC,KAED,IAAMC,EAAU,oBAEhBC,IAAIC,EAAW,KACXH,EAAEI,WAAaJ,EAAEI,UAAUH,IAAYD,EAAEI,UAAUH,GAASI,SAC5DF,EAAWH,EAAEI,UAAUH,GAAS,IAGpCD,EAAEM,OAAOC,UAAU,oCAAqC,CAACC,EAAGC,KACxD,GAAIA,GAAsBA,EAAmBC,OAA2C,EAAlCD,EAAmBC,MAAML,OAC3EM,CAKJ,MAAMC,EAAWC,EAAuBD,UAAYE,SAASC,MACvDC,EAAcH,EAAuBH,MACrCO,EAAqBD,EAAYX,OACvC,IAAIa,EAAmBnB,IACnBoB,EAAM,EAAGC,EAAW,EACxB,MAAMC,EAAQ,IAAIC,SACZC,EAAeF,EAAMG,gBAAgBX,GAC3C,KAAOM,EAAMF,GAAoB,CAC7B,IAAMQ,EAvBkB,GAuBFL,EAEhBM,EAAWV,EAAYW,MAAMR,EAAKA,GAzBhB,IA0BxB,MAAMS,EAAc,GAEpB,IAAK,IAAIC,EAAI,EAAGC,EAAIJ,EAASrB,OAAQwB,EAAIC,EAAGD,IAAK,CAC7C,MAAME,EAAOL,EAASG,GACtB,IAAMG,EAAiBP,EAAgBI,EAAI,EACrCI,EAAUZ,EAAMa,uBAAuBH,EAAM,CAAEI,KAAQvB,EAAUwB,SAAYJ,IAC/EC,IACAL,EAAYS,KAAKJ,GAEbF,EAAKO,SACLP,EAAKO,OAAOC,KAAK,cAAeN,GAChCF,EAAKO,OAAOC,KAAK,WAAY3B,GAC7BmB,EAAKO,OAAOC,KAAK,eAAgBhB,GAEjCL,EAAmBA,EAAiBsB,IAAIT,EAAKO,UAKzD,MAAMG,EAAsB,CACxBC,MAAS,qBACTC,UAAa,CACTpB,aAAgBA,EAChBqB,YAAehB,IAInBzB,IACAsC,EAAoBI,KAAO1C,GAG/BH,EAAE8C,UAAUT,KAAK,CAAEM,UAAW,OAC9B3C,EAAE8C,UAAUT,KAAKI,KAEfrB,EAGwB,EAA1BF,EAAiBb,QACjBa,EAAiB6B,GAAG,QAAS,SAAUC,GACnC,IACI,IAAIC,EAAYC,KAAKC,KACrB,MAAMC,EAAQrD,EAAEmD,MAEhB,IAAMG,EAAoB,CACtBX,MAAS,mBACTC,UAAa,CACTpB,aAAgB6B,EAAMb,KAAK,iBAAmBlB,EAAMG,kBACpD8B,MAAS,CACLC,YAAe,CAAEpB,KAAQiB,EAAMb,KAAK,aACpCb,SAAY,CAAC0B,EAAMb,KAAK,kBAGhCiB,cAAiB,WACb1C,SAAS2C,SAAWR,IAI5BjD,EAAE8C,UAAUT,KAAK,CAAEM,UAAW,OAC9B3C,EAAE8C,UAAUT,KAAKgB,GAEjBL,EAAIU,iBACN,MAAOC,GACLC,QAAQC,MAAM,mEAAqEF,UAzFvG,CA8FGG,OAAQC"}