1(function ($) { 2 document.addEventListener('DOMContentLoaded', function () { 3 const tab = function () { 4 const tabItem = document.querySelectorAll(".cs-v2__tab-item"); 5 const tabItemTitle = document.querySelectorAll(".cs-v2__tab-item-title"); 6 const eventList = document.querySelectorAll(".cs-v2__event-list"); 7 8 let tabName = ""; 9 10 tabItem.forEach(item => { 11 item.addEventListener("click", selectTabItem); 12 }); 13 14 // slick 15 function slickCarousel() { 16 if (window.innerWidth >= 768 && $('.cs-v2__event-list--active').length > 0) { 17 $('.cs-v2__event-list--active').slick({ 18 infinite: true, 19 slidesToShow: 3, 20 slidesToScroll: 1, 21 variableWidth: true, 22 centerPadding: '30px', 23 arrows: true, 24 responsive: [ 25 { 26 breakpoint: 1482, 27 settings: { 28 slidesToShow: 1, 29 slidesToScroll: 1, 30 variableWidth: true, 31 centerMode: true, 32 } 33 } 34 ] 35 }); 36 } else { 37 destroyCarousel(); 38 } 39 } 40 41 function destroyCarousel() { 42 if ($('.cs-v2__event-list--active').hasClass('slick-initialized')) { 43 $('.cs-v2__event-list--active').slick('destroy'); 44 } 45 } 46 47 function selectTabItem() { 48 destroyCarousel(); 49 tabItem.forEach(item => { 50 item.classList.remove("cs-v2__tab-item--active"); 51 }); 52 tabItemTitle.forEach(title => { 53 title.classList.remove("cs-v2__tab-item-title--active"); 54 }); 55 56 this.classList.add("cs-v2__tab-item--active"); 57 58 let tabTile = this.querySelector(".cs-v2__tab-item-title"); 59 tabTile.classList.add("cs-v2__tab-item-title--active"); 60 61 tabName = this.getAttribute("data-tab-name"); 62 selectTabContent(tabName); 63 64 function selectTabContent(tabName) { 65 eventList.forEach(item => { 66 item.classList.contains(tabName) 67 ? item.classList.add("cs-v2__event-list--active") 68 : item.classList.remove("cs-v2__event-list--active"); 69 }); 70 } 71 72 slickCarousel(); 73 } 74 75 slickCarousel(); 76 window.addEventListener('resize', slickCarousel); 77 }; 78 tab(); 79 }); 80 81 $(document).on( 82 'click', 83 '.cs-v2__event-item.has-sub-events:visible .cs-v2__event-buttons .cs-v2__event-btn.cs-v2__event-btn--second', 84 function () { 85 let $that = $(this); 86 let $parent = $that.parents('.cs-v2__event-item.has-sub-events:visible:first'); 87 let $modal = $('.modal-sub-events-for-slider[data-modal-id="sub_items_' + $parent.data('id') + '"]'); 88 89 if ($modal.hasClass('active')) { 90 $modal.removeClass('active'); 91 } else { 92 $modal.addClass('active'); 93 } 94 95 return false; 96 }); 97 98 $(document).on('click', '.modal-sub-events-for-slider:visible [data-action="close_modal_sub_events"]', function () { 99 let $modal = $('.modal-sub-events-for-slider:visible'); 100 101 if ($modal.hasClass('active')) { 102 $modal.removeClass('active'); 103 } 104 }); 105 106 $(document).on('click', '.modal-sub-events-for-slider:visible', function (ev) { 107 let $target = $(ev.target); 108 109 if (!$target.parents('.modal-sub-events__content').length && !$target.hasClass('modal-sub-events__content')) { 110 $('.modal-sub-events-for-slider:visible').removeClass('active'); 111 } 112 }); 113})(jQuery)
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.