1if (!funcDefined('showViewedItems')) { 2 showViewedItems = function($viewedSlider, cookieItems, config) { 3 config = (typeof config === 'object' && config) ? config : {}; 4 config.SHOW_MEASURE = config.SHOW_MEASURE !== 'N' ? 'Y' : 'N'; 5 config.SHOW_BONUS = config.SHOW_BONUS !== 'Y' ? 'N' : 'Y'; 6 7 if ($viewedSlider.length) { 8 try { 9 let storageItems = JViewed.get().getProducts(); 10 11 // remove some old items 12 for (var i in cookieItems) { 13 let productId = cookieItems[i].PRODUCT_ID; 14 if( 15 productId && 16 typeof storageItems[productId] == 'undefined' 17 ) { 18 $viewedSlider.find('.catalog-viewed__item-wrap[data-id=' + productId + ']').closest('.catalog-viewed__item').remove(); 19 } 20 } 21 22 for (let productId in storageItems) { 23 var $item = $viewedSlider.find('.catalog-viewed__item-wrap[data-id=' + productId + ']'); 24 25 if ($item.length) { 26 let storageItem = storageItems[productId]; 27 28 let picture = { 29 ID: false, 30 SRC: arAsproOptions.SITE_TEMPLATE_PATH + '/images/svg/noimage_product.svg', 31 ALT: storageItem.NAME, 32 TITLE: storageItem.NAME, 33 }; 34 if (typeof $item.attr('data-picture') !== 'undefined') { 35 picture = JSON.parse($item.attr('data-picture')); 36 } 37 38 let bSaleMode = arAsproOptions.MODULES.sale; 39 let isOffer = storageItem.IS_OFFER == 'Y'; 40 let bWithOffers = storageItem.WITH_OFFERS == 'Y'; 41 let bShowMeasure = config.SHOW_MEASURE == 'Y' && !bWithOffers && storageItem.CATALOG_MEASURE_NAME.length; 42 let bHasPrice = typeof storageItem.PRICE === 'object' && storageItem.PRICE && (storageItem.PRICE.PRICE > 0 || (!bSaleMode &&storageItem.PRICE.PRICE.length)); 43 let bHasEconomy = typeof storageItem.PRICE === 'object' && storageItem.PRICE && (storageItem.PRICE.ECONOMY > 0 || (!bSaleMode &&storageItem.PRICE.ECONOMY.length)); 44 45 let priceHtml = ''; 46 if (bHasPrice) { 47 let pricePrint = typeof storageItem.PRICE.PRICE_PRINT !== 'undefined' ? storageItem.PRICE.PRICE_PRINT : storageItem.PRICE.PRICE; 48 priceHtml = '<div class="price__new"><span class="price__new-val font_15">' + (bWithOffers && bSaleMode ? BX.message('CATALOG_FROM_VIEWED') + ' ' : '') + pricePrint.replace(BX.message('CATALOG_FROM_VIEWED'), '').trim() + (bShowMeasure ? '/' + storageItem.CATALOG_MEASURE_NAME : '') + '</span></div>'; 49 } 50 priceHtml = '<div class="price color_222">' + priceHtml + '</div>'; 51 52 let stickersHtml = ''; 53 let economyHtml = ''; 54 if (bHasEconomy) { 55 let economyPrint = typeof storageItem.PRICE.ECONOMY_PRINT !== 'undefined' ? storageItem.PRICE.ECONOMY_PRINT : storageItem.PRICE.ECONOMY; 56 economyHtml = '<div class="catalog-viewed__item-sticker-value rounded-x sticker__item sticker__item--sale">' + economyPrint + '</div>'; 57 } 58 59 let bonusHtml = ''; 60 // if (config.SHOW_BONUS == 'Y') { 61 // bonusHtml = '<div class="bonus-system-block lb_bonus lb_bonus_viewed lb_ajax_' + storageItem.productId + '" data-item="' + storageItem.productId + '"></div>'; 62 // } 63 64 if (economyHtml || bonusHtml) { 65 stickersHtml = '<div class="catalog-viewed__item-sticker">' + economyHtml + bonusHtml + '</div>'; 66 } 67 68 $item.html( 69 '<div class="catalog-viewed__item__inner flexbox flexbox--column">' + 70 '<div class="catalog-viewed__item__image__wrap">' + 71 '<div class="catalog-viewed__item__image">' + 72 '<a href="' + storageItem.DETAIL_PAGE_URL + '" class="thumb">' + 73 '<img border="0" src="' + picture.SRC + '" alt="' + (picture.ALT.length ? picture.ALT : storageItem.NAME) + '" title="' + (picture.TITLE.length ? picture.TITLE : storageItem.NAME) + '" />' + 74 '</a>' + 75 '</div>' + 76 stickersHtml + 77 '</div>' + 78 '<div class="catalog-viewed__item__info item_info">' + 79 priceHtml + 80 '<div class="catalog-viewed__item__title font_14 linecamp-2">' + 81 '<a class="dark_link switcher-title color-theme-target" href="' + storageItem.DETAIL_PAGE_URL + '"><span>' + storageItem.NAME + '</span></a>' + 82 '</div>' + 83 '</div>' + 84 '</div>' 85 ); 86 } 87 else { 88 // item not finded 89 // may be if it`s new item (it`s detail page now) 90 // or quantity limit 91 } 92 } 93 94 // if no items than remove block 95 if (!$viewedSlider.find('.catalog-viewed__item').length) { 96 $viewedSlider.closest('.catalog-viewed-list').remove(); 97 } 98 } 99 catch (e) { 100 console.error(e); 101 } 102 } 103 } 104}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.