{"version":3,"file":"SearchResultsTemplated_Base.min.js","sources":["SearchResultsTemplated_Base.js"],"sourcesContent":["(function(w, $, _) {\r\n const assetId = 'search-results-default-script';\r\n\r\n if (!w.umwAssets || !w.umwAssets[assetId]) {\r\n console.error('No context found for ' + assetId);\r\n return;\r\n }\r\n\r\n for (let ctx of w.umwAssets[assetId]) {\r\n \r\n $(w).load(function() {\r\n\r\n const addedText = ctx.labels.addedToWishList;\r\n const removedText = ctx.labels.removedFromWishList;\r\n const anonymous = ctx.isAnonymousUser;\r\n\r\n const mainPanelSelector = '#' + ctx.mainPanelID;\r\n\r\n const mainPanelContainer = $(mainPanelSelector);\r\n const $itemContainers = mainPanelContainer.find('.SearchItemContainer[data-itemid]');\r\n const addLinks = $('a.WishListAdd', mainPanelSelector).hide();\r\n const removeLinks = $('a.WishListRemove', mainPanelSelector).hide();\r\n\r\n const $listTitle = mainPanelContainer.find('.MainTitle');\r\n\r\n reportImpressions($listTitle, $itemContainers);\r\n\r\n //New flag system\r\n if (ctx.useNewFlagSystem) {\r\n // Get flags\r\n const itemIds = [];\r\n for (let i = 0; i < $itemContainers.length; i++) {\r\n if ($($itemContainers[i]).data('productid')) {\r\n itemIds.push($($itemContainers[i]).data('itemid'));\r\n }\r\n }\r\n\r\n $.get(w.R + 'startup/api/v1/acrhive/flags/connections/visible',\r\n {\r\n itemIds: itemIds,\r\n archiveType: 20,\r\n }).done(function(data) {\r\n _.each(data,\r\n function(flags, itemId) {\r\n const $prodContainer = $itemContainers.filter('[data-itemid=\"' + itemId + '\"]');\r\n let $prodImage = $prodContainer.find('.js-flags-target-uc170');\r\n if ($prodImage.length === 0) {\r\n // Fallback to the old implementation. May be useful for custom views\r\n $prodImage = $prodContainer.find('img.Image');\r\n }\r\n _.each(flags,\r\n function(flagDetails) {\r\n const $em = $('',\r\n {\r\n 'class': 'Flag flag flag_uc170 flag-' +\r\n flagDetails.FlagID +\r\n ' ' +\r\n flagDetails.Name,\r\n text: flagDetails.Name\r\n });\r\n $em.data('flag', flagDetails);\r\n $em.insertBefore($prodImage);\r\n });\r\n\r\n w.PubSub.publish('product.flags.created', [itemId, $prodContainer, flags]);\r\n });\r\n }).error(function() {\r\n console.error('Failed to load flags');\r\n });\r\n }\r\n\r\n //Get wishlist items\r\n if (w.PublicEStore && anonymous === false && addLinks.length > 0) {\r\n $.when(w.PublicEStore.getWishList().then(function(c) {\r\n if (!c || !c.result) {\r\n return;\r\n }\r\n\r\n addLinks.click(function(e) {\r\n e.preventDefault();\r\n const t = $(this);\r\n const productId = parseInt(t.closest('div.SearchItemContainer').data('productid'));\r\n const prodName = t.closest('div.SearchItemContainer').find('a.ItemTitleLink').text();\r\n\r\n $.when(w.PublicEStore.addToWishList(productId).then(function() {\r\n //Hide add\r\n t.hide();\r\n\r\n //Show remove\r\n t.siblings('a.WishListRemove').show();\r\n\r\n //Show message\r\n msg(prodName + ' ' + addedText, 'success');\r\n },\r\n function(errContract) {\r\n if (!errContract) {\r\n return;\r\n }\r\n\r\n let errMsg = errContract.message;\r\n\r\n if (errContract.result &&\r\n errContract.result.items &&\r\n errContract.result.items.length > 0) {\r\n errMsg = errContract.result.items[0].message;\r\n }\r\n\r\n msg(errMsg, 'error');\r\n }));\r\n });\r\n\r\n removeLinks.click(function(e) {\r\n e.preventDefault();\r\n const t = $(this);\r\n const productId = parseInt(t.closest('div.SearchItemContainer').data('productid'));\r\n const prodName = t.closest('div.SearchItemContainer').find('a.ItemTitleLink').text();\r\n\r\n $.when(w.PublicEStore.removeFromWishList(productId).then(function() {\r\n\r\n //Hide remove\r\n t.hide();\r\n\r\n //Show add\r\n t.siblings('a.WishListAdd').show();\r\n\r\n //Show message\r\n msg(prodName + ' ' + removedText, 'warning');\r\n\r\n },\r\n function(errContract) {\r\n if (!errContract) {\r\n return;\r\n }\r\n\r\n let errMsg = errContract.message;\r\n\r\n if (errContract.result &&\r\n errContract.result.items &&\r\n errContract.result.items.length > 0) {\r\n errMsg = errContract.result.items[0].message;\r\n }\r\n\r\n msg(errMsg, 'error');\r\n }));\r\n });\r\n\r\n const productIds = c.result.items && c.result.items.length > 0\r\n ? _.pluck(c.result.items, 'productId')\r\n : [];\r\n\r\n const rows = $('div.SearchItemContainer:not([data-productid=\"\"])', mainPanelSelector);\r\n\r\n const inWishList = rows.filter(function() {\r\n return _.contains(productIds, $(this).data('productid'));\r\n });\r\n\r\n const notInWishList = rows.filter(function() {\r\n return !_.contains(productIds, $(this).data('productid'));\r\n });\r\n\r\n $('a.WishListAdd', inWishList).hide();\r\n $('a.WishListAdd', notInWishList).show();\r\n $('a.WishListRemove', inWishList).show();\r\n $('a.WishListRemove', notInWishList).hide();\r\n }));\r\n }\r\n\r\n // Setup added to card container handling\r\n _.each(ctx.quantitiesInCart,\r\n function(qty, prodId) {\r\n const $prodCont = mainPanelContainer.find('.SearchItemContainer[data-productId=\"' + prodId + '\"]');\r\n if ($prodCont.length === 1) {\r\n $prodCont.find('.ProdCount').text(qty);\r\n $prodCont.find('.AddToCartContainer').show();\r\n }\r\n });\r\n\r\n // Setup add to card container handling\r\n $.publicFetch({\r\n handler: 'EStoreData',\r\n data: {\r\n a: 'GetTempOrderLineProductIDs'\r\n },\r\n success: function(data) {\r\n ctx.tolProducts = data;\r\n _.each(data,\r\n function(tolProductId, idx) {\r\n $('.SearchItemContainer[data-productId=\"' + tolProductId + '\"] .AddToCartContainer',\r\n mainPanelSelector).show().closest('.MakeOrderContainer').show();\r\n });\r\n },\r\n error: function(error) {\r\n console.error('An error has occured fetching temp order line products: ', error);\r\n }\r\n });\r\n\r\n // Setup MessagesCont\r\n $('.MessagesCont', mainPanelSelector).each(function(idx, elem) {\r\n const $elem = $(elem);\r\n if ($.trim($elem.html()).length === 0) {\r\n $elem.removeClass('Active');\r\n } else {\r\n $elem.addClass('Active');\r\n // Set timeout to hide\r\n let autoHideErrMsgTimout = setTimeout(function() {\r\n $('.MessagesCont.Active', mainPanelSelector).fadeOut('slow');\r\n },\r\n 5000);\r\n\r\n $elem.click(function() {\r\n if (autoHideErrMsgTimout) {\r\n clearTimeout(autoHideErrMsgTimout);\r\n autoHideErrMsgTimout = null;\r\n }\r\n\r\n $(this).closest('.MessagesCont').hide();\r\n return false;\r\n });\r\n\r\n $elem.append($('
',\r\n {\r\n 'class': 'CloseMessage'\r\n })).wrapInner('
')\r\n .wrapInner('
');\r\n }\r\n });\r\n\r\n // Hide make order containers if there is only AddToCartContainer inside\r\n $('.MakeOrderContainer', mainPanelSelector).each(function() {\r\n const childCount = $(this).children().length;\r\n if (childCount === 0 || childCount === 1 && $(this).find('.AddToCartContainer').length === 1) {\r\n $(this).hide();\r\n }\r\n });\r\n\r\n // Setup MPEF\r\n if (w.globalSettings.enableMPEF) {\r\n mainPanelContainer.find('.BuyBtn').click(function(evt) {\r\n\r\n const mainProdContainer = $(this).closest('div[data-productid]');\r\n\r\n if (mainProdContainer.length === 1) {\r\n evt.preventDefault();\r\n tryBuy(mainProdContainer);\r\n }\r\n });\r\n\r\n // Subscribe to removeFromCart event and hide shopCart icon\r\n const removeFromCartTopic = w.PublicEStore.channels.callback.shopCart +\r\n '.' +\r\n w.PublicEStore.actions.removeFromCart;\r\n const emptyCartTopic = w.PublicEStore.channels.callback.shopCart + '.' + w.PublicEStore.actions.emptyCart;\r\n const addToCartTopic = w.PublicEStore.channels.callback.shopCart + '.' + w.PublicEStore.actions.addToCart;\r\n w.PublicEStore.subscribe(removeFromCartTopic, removeFromCartHandler);\r\n w.PublicEStore.subscribe(emptyCartTopic, emptyCartHandler);\r\n w.PublicEStore.subscribe(addToCartTopic, addToCartGlobalCallback);\r\n }\r\n\r\n });\r\n\r\n const notys = [];\r\n\r\n function msg(text, type) {\r\n if (!w.PubSub || !text || text.length === 0) {\r\n return;\r\n }\r\n\r\n type = type || 'info';\r\n\r\n if (notys && notys.length > 3) {\r\n const noty = notys.shift();\r\n if (noty) {\r\n noty.close();\r\n }\r\n }\r\n\r\n w.PubSub.publish('notification',\r\n { type: type, timeout: 10 * 1000, text: text, notyCallback: function(n) { notys.push(n); } });\r\n };\r\n\r\n function tryBuy($prodContainer) {\r\n const productId = $prodContainer.attr('data-productId');\r\n\r\n if (productId === 0) {\r\n showError($prodContainer, ctx.labels.selectAvailableDimensionsMsg);\r\n return;\r\n }\r\n\r\n let redirectUrl = $prodContainer.attr('data-redirectUrl');\r\n\r\n if (redirectUrl) {\r\n const quantity = $prodContainer.find('.QuantityContainer input.QuantityTxb').val();\r\n if (quantity) {\r\n redirectUrl = '{0}&qt={1}'.format(redirectUrl, quantity);\r\n }\r\n w.location.href = redirectUrl;\r\n return;\r\n }\r\n\r\n const contract = composeAddToCartDataContract($prodContainer);\r\n\r\n if (contract && !isNaN(contract.quantity.toString().replace(/[,.]/g, ''))) {\r\n $prodContainer.addClass('buying');\r\n $.when(w.PublicEStore.addToCart(contract)).then(addToCartCallback, errorCallback).always(function() {\r\n $('#' + ctx.mainPanelID).find('.SearchItemContainer').removeClass('buying');\r\n });\r\n }\r\n };\r\n\r\n function showError(mainProdContainer, errorMsg) {\r\n const $mainProdCont = $(mainProdContainer);\r\n\r\n // Try to find product name or product number to use it as an error prefix\r\n var prodName = $mainProdCont.find('.ItemTitleLink').text();\r\n if (!prodName) {\r\n prodName = $mainProdCont.find('.ProductNumber').text();\r\n }\r\n\r\n const errorPrefix = prodName ? '' + prodName + ': ' : '';\r\n\r\n // Show error\r\n w.PubSub.publish('notification.error', errorPrefix + errorMsg);\r\n };\r\n\r\n function composeAddToCartDataContract(mainProdContainer) {\r\n const customFields = {};\r\n mainProdContainer.find('.customFieldsCont .customField').each(function(idx, elem) {\r\n let $elem = $(elem);\r\n const customFieldId = $elem.attr('customFieldId');\r\n\r\n //Special handling for checkbox because they are wrapped in a span\r\n if ($elem.find('input').length > 0) {\r\n $elem = $elem.find('input');\r\n }\r\n\r\n if (customFieldId) {\r\n const cfValue = $elem.is(':checkbox') ? $elem.is(':checked').toString() : $elem.val();\r\n customFields[customFieldId] = cfValue;\r\n }\r\n });\r\n\r\n return {\r\n productId: mainProdContainer.attr('data-productId'),\r\n quantity: mainProdContainer.find('.QuantityContainer input.QuantityTxb').val(),\r\n fraction: mainProdContainer.find('.FractionRow input.Fraction').val(),\r\n customFields: customFields,\r\n imageId: mainProdContainer.find('input:hidden[id*=\"hProductImageId\"]').val()\r\n };\r\n };\r\n\r\n function addToCartCallback(dataContract) {\r\n const mainPanelContainer = $('#' + ctx.mainPanelID);\r\n\r\n _.each(dataContract.result.items,\r\n function(prod) {\r\n if (typeof prod === 'object' && prod) {\r\n const prodContainer = mainPanelContainer.find('.SearchItemContainer[data-productId=\"' + prod.productID + '\"]');\r\n if (prod.status.toLowerCase() !== 'ok') {\r\n showError(prodContainer, prod.message);\r\n }\r\n }\r\n });\r\n };\r\n\r\n function addToCartGlobalCallback(channel, contract) {\r\n const mainPanelContainer = $('#' + ctx.mainPanelID);\r\n\r\n _.each(contract.result.items,\r\n function(prod) {\r\n if (typeof prod === 'object' && prod) {\r\n const prodContainer = mainPanelContainer.find('.SearchItemContainer[data-productId=\"' + prod.productID + '\"]');\r\n if (prod.status.toLowerCase() === 'ok') {\r\n // Update total product's count for the current temp order line\r\n const orderLineQuantityContainer = prodContainer.find('.ProdCount');\r\n orderLineQuantityContainer.text(prod.totalQuantityInTempOrderLine);\r\n\r\n // Animate action\r\n const addToCartIconContainer = prodContainer.find('.AddToCartContainer');\r\n addToCartIconContainer.show();\r\n prodContainer.effect('transfer',\r\n { to: addToCartIconContainer },\r\n 500,\r\n function() {\r\n addToCartIconContainer.effect('bounce', null, 500);\r\n });\r\n\r\n ctx.quantitiesInCart[parseInt(prod.productID)] = prod.totalQuantityInTempOrderLine;\r\n }\r\n } else {\r\n console.error('An error has occured while processing AddToCart callback contract');\r\n }\r\n });\r\n }\r\n\r\n function errorCallback(dataContract) {\r\n var mainPanelContainer = $('#' + ctx.mainPanelID);\r\n\r\n if (dataContract.message) {\r\n msg(dataContract.message, 'error');\r\n }\r\n\r\n if (dataContract.result && dataContract.result.items) {\r\n _.each(dataContract.result.items,\r\n function(prod) {\r\n if (typeof prod === 'object' && prod) {\r\n const prodContainer = mainPanelContainer.find('.SearchItemContainer[data-productId=\"' +\r\n prod.productID +\r\n '\"]');\r\n showError(prodContainer, prod.message);\r\n } else {\r\n console.error('An error has occured while processing error callback contract');\r\n }\r\n });\r\n }\r\n };\r\n\r\n function removeFromCartHandler(topic, dataContract) {\r\n var mainPanelContainer = $('#' + ctx.mainPanelID);\r\n _.each(dataContract.result.items,\r\n function(prod) {\r\n if (typeof prod === 'object' && prod && prod.status.toLowerCase() === 'ok') {\r\n mainPanelContainer.find('.SearchItemContainer[data-productId=\"' +\r\n prod.productID +\r\n '\"] .AddToCartContainer').hide();\r\n delete ctx.quantitiesInCart[parseInt(prod.productID)];\r\n }\r\n });\r\n };\r\n\r\n function emptyCartHandler(topic, dataContract) {\r\n if (dataContract.status.toLowerCase() === 'ok') {\r\n const mainPanelContainer = $('#' + ctx.mainPanelID);\r\n mainPanelContainer.find('.SearchItemContainer .AddToCartContainer').hide();\r\n ctx.quantitiesInCart = {};\r\n }\r\n };\r\n\r\n function reportImpressions($listTitle, $productContainers) {\r\n try {\r\n const listName = $.trim($listTitle.text() || document.title);\r\n const productImpressions = [];\r\n\r\n $productContainers.each(function() {\r\n const $prod = $(this);\r\n\r\n const productId = parseInt($prod.data('productid'));\r\n if (productId > 0) {\r\n productImpressions.push({ productId: productId, $links: $prod.find('.js-product-link') });\r\n }\r\n });\r\n\r\n if (productImpressions.length > 0) {\r\n w.reportProductListView(w.productListType.searchResults, listName, productImpressions);\r\n }\r\n } catch (e) {\r\n console.error('Failed to report products impressions. ' + e);\r\n }\r\n }\r\n }\r\n})(window, jQuery, _);"],"names":["w","$","_","assetId","umwAssets","let","ctx","load","addedText","labels","addedToWishList","removedText","removedFromWishList","anonymous","isAnonymousUser","mainPanelSelector","mainPanelID","mainPanelContainer","$itemContainers","find","addLinks","hide","removeLinks","$listTitle","$productContainers","listName","trim","text","document","title","productImpressions","each","$prod","this","productId","parseInt","data","push","$links","length","reportProductListView","productListType","searchResults","e","console","error","useNewFlagSystem","itemIds","i","get","R","archiveType","done","flags","itemId","$prodContainer","filter","$prodImage","flagDetails","$em","class","FlagID","Name","insertBefore","PubSub","publish","PublicEStore","when","getWishList","then","c","result","click","preventDefault","t","closest","prodName","addToWishList","siblings","show","msg","errContract","errMsg","message","items","removeFromWishList","productIds","pluck","rows","inWishList","contains","notInWishList","quantitiesInCart","qty","prodId","$prodCont","publicFetch","handler","a","success","tolProducts","tolProductId","idx","elem","$elem","html","removeClass","addClass","autoHideErrMsgTimout","setTimeout","fadeOut","clearTimeout","append","wrapInner","childCount","children","globalSettings","enableMPEF","evt","mainProdContainer","attr","showError","selectAvailableDimensionsMsg","redirectUrl","quantity","val","format","location","href","contract","customFields","cfValue","customFieldId","is","toString","fraction","imageId","isNaN","replace","addToCart","addToCartCallback","errorCallback","always","removeFromCartTopic","channels","callback","shopCart","actions","removeFromCart","emptyCartTopic","emptyCart","addToCartTopic","subscribe","removeFromCartHandler","emptyCartHandler","addToCartGlobalCallback","notys","type","noty","shift","close","timeout","notyCallback","n","errorMsg","$mainProdCont","dataContract","prod","prodContainer","productID","status","toLowerCase","channel","totalQuantityInTempOrderLine","addToCartIconContainer","effect","to","topic","window","jQuery"],"mappings":"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"}