{"version":3,"file":"product_list.min.js","sources":["product_list.js"],"sourcesContent":["(($, w) => {\r\n const gtmImpressionsChunkSize = 30;\r\n const assetId = 'gtm-ga4-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 processProductList(productImpressions);\r\n }\r\n });\r\n\r\n function processProductList(productList) {\r\n const listName = productList.listName || document.title;\r\n const allProducts = productList.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(productList);\r\n\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 const itemListId = productList.listType.replace(/\\s+/g, '_').toLowerCase();\r\n const itemListName = productList.listType;\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.convertToGtmGa4Product(prod,\r\n {\r\n 'currency': currencyCode,\r\n 'item_list_id': itemListId,\r\n 'item_list_name': itemListName,\r\n 'list_name': listName,\r\n 'index': positionInList\r\n });\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 viewItemListEvent = {\r\n 'event': 'view_item_list',\r\n 'ecommerce': {\r\n 'items': gtmProducts,\r\n 'item_list_id': itemListId,\r\n 'item_list_name': itemListName,\r\n }\r\n };\r\n\r\n if (userInfo) {\r\n viewItemListEvent.user = userInfo;\r\n }\r\n\r\n w.dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\r\n w.dataLayer.push(viewItemListEvent);\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': 'select_item',\r\n 'ecommerce': {\r\n 'items': [$this.data('gtm-product')]\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","processProductList","productList","listName","document","title","allProducts","totalProductsCount","$allProductLinks","idx","chunkIdx","utils","GtmUtils","currencyCode","getCurrencyCode","positionShift","products","slice","gtmProducts","itemListId","listType","replace","toLowerCase","itemListName","i","l","prod","positionInList","gtmProd","convertToGtmGa4Product","currency","item_list_id","item_list_name","list_name","index","push","$links","data","add","viewItemListEvent","event","ecommerce","user","dataLayer","on","evt","targetUrl","this","href","$this","productClickEvent","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,CAAAA,IAIoBC,EAJDH,EAKvB,MAAMI,EAAWD,EAAYC,UAAYC,SAASC,MAC5CC,EAAcJ,EAAYF,MAC1BO,EAAqBD,EAAYX,OACvC,IAAIa,EAAmBnB,IACnBoB,EAAM,EAAGC,EAAW,EACxB,MAAMC,EAAQ,IAAIC,SACZC,EAAeF,EAAMG,gBAAgBZ,GAE3C,KAAOO,EAAMF,GAAoB,CAC7B,IAAMQ,EAxBkB,GAwBFL,EAEhBM,EAAWV,EAAYW,MAAMR,EAAKA,GA1BhB,IA2BxB,MAAMS,EAAc,GAKpB,IAHA,IAAMC,EAAajB,EAAYkB,SAASC,QAAQ,OAAQ,KAAKC,cACvDC,EAAerB,EAAYkB,SAExBI,EAAI,EAAGC,EAAIT,EAASrB,OAAQ6B,EAAIC,EAAGD,IAAK,CAC7C,MAAME,EAAOV,EAASQ,GACtB,IAAMG,EAAiBZ,EAAgBS,EAAI,EACrCI,EAAUjB,EAAMkB,uBAAuBH,EACzC,CACII,SAAYjB,EACZkB,aAAgBZ,EAChBa,eAAkBT,EAClBU,UAAa9B,EACb+B,MAASP,IAEbC,IACAV,EAAYiB,KAAKP,GAEbF,EAAKU,SACLV,EAAKU,OAAOC,KAAK,cAAeT,GAChCF,EAAKU,OAAOC,KAAK,WAAYlC,GAC7BuB,EAAKU,OAAOC,KAAK,eAAgBxB,GAEjCL,EAAmBA,EAAiB8B,IAAIZ,EAAKU,UAKzD,MAAMG,EAAoB,CACtBC,MAAS,iBACTC,UAAa,CACTzC,MAASkB,EACTa,aAAgBZ,EAChBa,eAAkBT,IAItB9B,IACA8C,EAAkBG,KAAOjD,GAG7BH,EAAEqD,UAAUR,KAAK,CAAEM,UAAW,OAC9BnD,EAAEqD,UAAUR,KAAKI,KAEf7B,EAGwB,EAA1BF,EAAiBb,QACjBa,EAAiBoC,GAAG,QAAS,SAAUC,GACnC,IACI,IAAIC,EAAYC,KAAKC,KACrB,MAAMC,EAAQ5D,EAAE0D,MAEhB,IAAMG,EAAoB,CACtBV,MAAS,cACTC,UAAa,CACTzC,MAAS,CAACiD,EAAMZ,KAAK,iBAEzBc,cAAiB,WACb/C,SAASgD,SAAWN,IAI5BxD,EAAEqD,UAAUR,KAAK,CAAEM,UAAW,OAC9BnD,EAAEqD,UAAUR,KAAKe,GAEjBL,EAAIQ,iBACN,MAAOC,GACLC,QAAQC,MAAM,mEAAqEF,UAjGvG,CAsGGG,OAAQC"}