{"version":3,"file":"product_list.min.js","sources":["product_list.js"],"sourcesContent":["// reset redirecting flag in case back button was clicked in the browser\nwindow.addEventListener('pageshow', function () { window.isBeingRedirected = false; });\n\n(($, w) => {\n const gtmImpressionsChunkSize = 30;\n const assetId = 'gtm-ga4-prod-list';\n\n let userInfo = null;\n if (w.umwAssets && w.umwAssets[assetId] && w.umwAssets[assetId].length) {\n userInfo = w.umwAssets[assetId][0];\n }\n\n w.PubSub.subscribe('externaltracking.product.listview', (_, productImpressions) => {\n if (productImpressions && productImpressions.items && productImpressions.items.length > 0) {\n processProductList(productImpressions);\n }\n });\n\n function processProductList(productList) {\n const listName = productList.listName || document.title;\n const allProducts = productList.items;\n const totalProductsCount = allProducts.length;\n var $allProductLinks = $(); \n var idx = 0, chunkIdx = 0;\n const utils = new GtmUtils();\n const currencyCode = utils.getCurrencyCode(productList);\n\n while (idx < totalProductsCount) {\n const positionShift = chunkIdx * gtmImpressionsChunkSize;\n\n const products = allProducts.slice(idx, idx += gtmImpressionsChunkSize);\n const gtmProducts = [];\n\n const itemListId = productList.listType.replace(/\\s+/g, '_').toLowerCase();\n const itemListName = productList.listType;\n\n for (var i = 0, l = products.length; i < l; i++) {\n const prod = products[i];\n const positionInList = positionShift + i + 1;\n const gtmProd = utils.convertToGtmGa4Product(prod,\n {\n 'currency': currencyCode,\n 'item_list_id': itemListId,\n 'item_list_name': itemListName,\n 'list_name': listName,\n 'index': positionInList\n });\n if (gtmProd) {\n gtmProducts.push(gtmProd);\n\n if (prod.$links) {\n prod.$links.data('gtm-product', gtmProd);\n prod.$links.data('listname', listName);\n prod.$links.data('currencycode', currencyCode);\n\n $allProductLinks = $allProductLinks.add(prod.$links);\n }\n }\n }\n\n const viewItemListEvent = {\n 'event': 'view_item_list',\n 'ecommerce': {\n 'items': gtmProducts,\n 'item_list_id': itemListId,\n 'item_list_name': itemListName,\n }\n };\n\n if (userInfo) {\n viewItemListEvent.user = userInfo;\n }\n\n w.dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\n w.dataLayer.push(viewItemListEvent);\n\n ++chunkIdx;\n }\n\n if ($allProductLinks.length > 0) {\n $allProductLinks.on('click', function (evt) {\n try {\n if (w['google_tag_manager']) {\r\n var targetUrl = this.href;\n const $this = $(this);\n\n const productClickEvent = {\n 'event': 'select_item',\n 'ecommerce': {\n 'items': [$this.data('gtm-product')]\n },\n 'eventCallback': function () {\n if (!w.isBeingRedirected) {\n document.location = targetUrl;\n w.isBeingRedirected = true;\n }\n },\n 'eventTimeout': 1000\n };\n\n w.dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\n w.dataLayer.push(productClickEvent);\n\n evt.preventDefault();\r\n }\n } catch (e) {\n console.error('[GTM]: Failed to push product click event to dataLayer. Reason: ' + e);\n }\n });\n }\n }\n})(jQuery, window);"],"names":["window","addEventListener","isBeingRedirected","$","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","eventTimeout","preventDefault","e","console","error","jQuery"],"mappings":"AACAA,OAAOC,iBAAiB,WAAY,WAAcD,OAAOE,mBAAoB,KAE7E,CAAEC,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,GAAIvD,EAAsB,mBAAG,CACzB,IAAIwD,EAAYC,KAAKC,KACrB,MAAMC,EAAQ5D,EAAE0D,MAEhB,IAAMG,EAAoB,CACtBV,MAAS,cACTC,UAAa,CACTzC,MAAS,CAACiD,EAAMZ,KAAK,iBAEzBc,cAAiB,WACR7D,EAAEF,oBACHgB,SAASgD,SAAWN,EACpBxD,EAAEF,mBAAoB,IAG9BiE,aAAgB,KAGpB/D,EAAEqD,UAAUR,KAAK,CAAEM,UAAW,OAC9BnD,EAAEqD,UAAUR,KAAKe,GAEjBL,EAAIS,kBAEV,MAAOC,GACLC,QAAQC,MAAM,mEAAqEF,UAvGvG,CA4GGG,OAAQxE"}