1/******************************************************************************************* 2* ___ _ ______ _ _ _ * 3* / _ \| | | ___ \ | (_) | | © 2022 * 4* / /_\ | | _____ _| |_/ /_ __ __ _ _ __ __| |_ _ __ __ _ | |_ ___ __ _ _ __ ___ * 5* | _ | |/ _ \ \/ / ___ \ '__/ _` | '_ \ / _` | | '_ \ / _` | | __/ _ \/ _` | '_ ` _ \ * 6* | | | | | __/> <| |_/ / | | (_| | | | | (_| | | | | | (_| | | || __/ (_| | | | | | | * 7* \_| |_/_|\___/_/\_\____/|_| \__,_|_| |_|\__,_|_|_| |_|\__, | \___\___|\__,_|_| |_| |_| * 8* __/ | * 9* |___/ * 10* ---------------------------------------------------------------------------------------- * 11* This is commercial software, only users who have purchased a valid license and accept * 12* to the terms of the License Agreement can install and use this program. * 13* ---------------------------------------------------------------------------------------- * 14* website: https://cs-cart.alexbranding.com * 15* email: [email protected] * 16*******************************************************************************************/ 17(function(_, $) { 18var wrapper_class = 'ab-hm-first-level-section'; 19var prev_w_size = 0; 20$(window).on('resize', function() { 21_init_horizontal_menu_scroller($(_.doc)); 22}); 23function _init_horizontal_menu_scroller(context) { 24if (prev_w_size !== window.innerWidth) { 25prev_w_size = window.innerWidth; 26var items = context.find('.ut2-h__menu .cm-responsive-menu > .' + wrapper_class + ' > .ty-menu__item'); 27if (items.length) { 28items.removeClass('added-to-selection').unwrap(); 29context.find('.ab-hm-first-level-toggler').remove(); 30_rebuild_horizontal_menu(context); 31} else { 32_rebuild_horizontal_menu(context); 33} 34} 35} 36function _rebuild_horizontal_menu(context) { 37var items_wrapper = context.find('.ut2-h__menu .cm-responsive-menu'); 38if (items_wrapper.length) { 39var available_space = items_wrapper.outerWidth(); 40var subitems = items_wrapper.find('> .ty-menu__item'); 41var items_width = get_elements_width(subitems); 42if (available_space < items_width) { 43items_wrapper.css('visibility', 'hidden'); 44available_space -= 25 * 2; 45var slides_count = Math.ceil(items_width / available_space); 46var elems_arr = []; 47var subitems_wrap_collection = []; 48for (var i = 0; i < slides_count; i++) { 49var slide_w = 0; 50elems_arr[i] = []; 51subitems.each(function() { 52var item = $(this); 53if (!item.hasClass('added-to-selection')) { 54var item_w = item.outerWidth(); 55if (((slide_w + item_w) <= available_space)) { 56slide_w += item_w; 57elems_arr[i].push(this); 58item.addClass('added-to-selection'); 59} 60} 61}); 62var temp_subitems = $(elems_arr[i]); 63subitems_wrap_collection.push( 64temp_subitems.wrapAll("<div class='" + wrapper_class + " clearfix'>").parent().addClass(i === 0 ? '' : 'hidden') 65); 66} 67subitems_wrap_collection.forEach(function(wrapper, index) { 68if (wrapper.prev().hasClass(wrapper_class)) { 69wrapper.addClass('has-prev').prepend( 70"<div class='ab-hm-first-level-toggler hm-prev-toggler cm-tooltip' title='" + _.tr('abt__ut2_go_back') + "'>" + 71'<span>' + (index + 1) + '/' + slides_count + '</span>' + 72'</div>'); 73} 74if (wrapper.next().hasClass(wrapper_class)) { 75wrapper.addClass('has-next').append( 76"<div class='ab-hm-first-level-toggler hm-next-toggler cm-tooltip' title='" + _.tr('abt__ut2_go_next') + "'>" + 77'<span>' + (index + 1) + '/' + slides_count + '</span>' + 78'</div>'); 79} 80}); 81$('.ab-hm-first-level-toggler').click(function() { 82var btn = $(this); 83var parent = btn.parent(); 84var elem = null; 85var is_prev = btn.hasClass('hm-prev-toggler'); 86if (is_prev) { 87elem = parent.prev(); 88} else { 89elem = parent.next(); 90} 91parent.addClass('hidden'); 92elem.removeClass('hidden'); 93$.ceEvent('trigger', 'ce.ut2-hm-toggle', [btn, parent, elem, is_prev]); 94}); 95items_wrapper.css('visibility', ''); 96} 97} 98} 99function get_elements_width(elems) { 100var total_w = 0; 101elems.each(function() { total_w += $(this).outerWidth(); 102}); 103return total_w; 104} 105})(Tygh, Tygh.$);
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.