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 15 if(typeof storageItems[productId] != 'undefined'){ 16 17 if(storageItems[productId].DETAIL_PAGE_URL == "" && cookieItems[i].DETAIL_PAGE_URL != "" ){ 18 storageItems[productId].DETAIL_PAGE_URL = cookieItems[i].DETAIL_PAGE_URL; 19 } 20 21 } 22 23 if( 24 productId && 25 typeof storageItems[productId] == 'undefined' 26 ) { 27 $viewedSlider.find('.catalog-viewed__item-wrap[data-id=' + productId + ']').closest('.catalog-viewed__item').remove(); 28 } 29 } 30 31 32 33 for (let productId in storageItems) { 34 var $item = $viewedSlider.find('.catalog-viewed__item-wrap[data-id=' + productId + ']'); 35 36 if ($item.length) { 37 let storageItem = storageItems[productId]; 38 39 let picture = { 40 ID: false, 41 SRC: arAsproOptions.SITE_TEMPLATE_PATH + '/images/svg/noimage_product.svg', 42 ALT: storageItem.NAME, 43 TITLE: storageItem.NAME, 44 }; 45 if (typeof $item.attr('data-picture') !== 'undefined') { 46 picture = JSON.parse($item.attr('data-picture')); 47 } 48 49 let bSaleMode = arAsproOptions.MODULES.sale; 50 let isOffer = storageItem.IS_OFFER == 'Y'; 51 let bWithOffers = storageItem.WITH_OFFERS == 'Y'; 52 let bShowMeasure = config.SHOW_MEASURE == 'Y' && !bWithOffers && storageItem.CATALOG_MEASURE_NAME.length; 53 let bHasPrice = typeof storageItem.PRICE === 'object' && storageItem.PRICE && (storageItem.PRICE.PRICE > 0 || (!bSaleMode &&storageItem.PRICE.PRICE.length)); 54 let bHasEconomy = typeof storageItem.PRICE === 'object' && storageItem.PRICE && (storageItem.PRICE.ECONOMY > 0 || (!bSaleMode &&storageItem.PRICE.ECONOMY.length)); 55 56 let priceHtml = ''; 57 if (bHasPrice) { 58 let pricePrint = typeof storageItem.PRICE.PRICE_PRINT !== 'undefined' ? storageItem.PRICE.PRICE_PRINT : storageItem.PRICE.PRICE; 59 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>'; 60 } 61 priceHtml = '<div class="price color_222">' + priceHtml + '</div>'; 62 63 let stickersHtml = ''; 64 let economyHtml = ''; 65 if (bHasEconomy) { 66 let economyPrint = typeof storageItem.PRICE.ECONOMY_PRINT !== 'undefined' ? storageItem.PRICE.ECONOMY_PRINT : storageItem.PRICE.ECONOMY; 67 economyHtml = '<div class="catalog-viewed__item-sticker-value rounded-x sticker__item sticker__item--sale">' + economyPrint + '</div>'; 68 } 69 70 let bonusHtml = ''; 71 // if (config.SHOW_BONUS == 'Y') { 72 // bonusHtml = '<div class="bonus-system-block lb_bonus lb_bonus_viewed lb_ajax_' + storageItem.productId + '" data-item="' + storageItem.productId + '"></div>'; 73 // } 74 75 if (economyHtml || bonusHtml) { 76 stickersHtml = '<div class="catalog-viewed__item-sticker">' + economyHtml + bonusHtml + '</div>'; 77 } 78 79 $item.html( 80 '<div class="catalog-viewed__item__inner flexbox flexbox--column">' + 81 '<div class="catalog-viewed__item__image__wrap">' + 82 '<div class="catalog-viewed__item__image">' + 83 '<a href="' + storageItem.DETAIL_PAGE_URL + '" class="thumb">' + 84 '<img border="0" src="' + picture.SRC + '" alt="' + (picture.ALT.length ? picture.ALT : storageItem.NAME) + '" title="' + (picture.TITLE.length ? picture.TITLE : storageItem.NAME) + '" />' + 85 '</a>' + 86 '</div>' + 87 stickersHtml + 88 '</div>' + 89 '<div class="catalog-viewed__item__info item_info">' + 90 priceHtml + 91 '<div class="catalog-viewed__item__title font_14 linecamp-2">' + 92 '<a class="dark_link switcher-title color-theme-target" href="' + storageItem.DETAIL_PAGE_URL + '"><span>' + storageItem.NAME + '</span></a>' + 93 '</div>' + 94 '</div>' + 95 '</div>' 96 ); 97 } 98 else { 99 // item not finded 100 // may be if it`s new item (it`s detail page now) 101 // or quantity limit 102 } 103 } 104 105 // if no items than remove block 106 if (!$viewedSlider.find('.catalog-viewed__item').length) { 107 $viewedSlider.closest('.catalog-viewed-list').remove(); 108 } 109 } 110 catch (e) { 111 console.error(e); 112 } 113 } 114 } 115}
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.