PageSourceSearch

https://alix-avien.ru/bitrix/templates/aspro-lite/components/aspro…/main/script.js?17110418744827

js alix-avien.ru collected 2026-10-06 06:42:26 UTC 4,827 bytes, 115 lines download raw bytes

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.