1jQuery(document).ready(function ($) { 2 3 var freezeScroll = false; 4 5 initFitImgSize(); 6 7 function initFitImgSize() { 8 $('.size-fit-image').each(function () { 9 var imgEl = $('img', $(this)); 10 if (imgEl.length > 0) { 11 var imgWidth = imgEl.width(); 12 $(this).width(imgWidth); 13 } 14 }); 15 } 16 17 function initMasonry(appendItems) { 18 19 var gridEl = $('.grid'); 20 var gridElData = gridEl.data(); 21 22 if ($(window).width() < 480) { 23 gridEl.masonry('destroy'); 24 gridEl.removeData('masonry'); 25 } else { 26 27 setTimeout(function () { 28 29 if (appendItems) { 30 gridEl.masonry('appended', appendItems); 31 } else { 32 if (gridElData && gridElData.masonry) { 33 gridEl.masonry('destroy'); 34 gridEl.removeData('masonry'); 35 36 } 37 gridEl.masonry({ 38 itemSelector: '.grid-item', 39 columnWidth: '.grid-sizer', 40 percentPosition: true 41 }); 42 } 43 44 }, 300); 45 } 46 } 47 48 $(window).resize(function () { 49 initMasonry(); 50 initFitImgSize(); 51 }); 52 53 var EventsFilterProcessor = { 54 55 current_page: 1, 56 max_num_pages: 0, 57 58 loadMore: function () { 59 if (EventsFilterProcessor.current_page + 1 <= EventsFilterProcessor.max_num_pages) { 60 EventsFilterProcessor.current_page++; 61 EventsFilterProcessor.processFilter(); 62 } 63 }, 64 processFilter: function (formElement) { 65 66 var events_labels = $('[name="event-label"]').val(); 67 68 var requestData = { 69 action: 'ajax_filter_events', 70 current_page: EventsFilterProcessor.current_page 71 }; 72 73 if (events_labels) { 74 requestData.events_labels = events_labels; 75 } 76 77 var dateStart = ''; 78 var dateEnd = ''; 79 80 if ($('.event-filter-button.active').length > 0) { 81 82 dateStart = $('.event-filter-button.active').attr('data-date-start'); 83 dateEnd = $('.event-filter-button.active').attr('data-date-end'); 84 85 if (dateStart) { 86 requestData.after = dateStart; 87 } 88 if (dateEnd) { 89 requestData.before = dateEnd; 90 } 91 } 92 93 // console.log(requestData) 94 95 $.ajax({ 96 url: EVENTS_FILTER_PROCESSOR.ajaxUrl, 97 type: 'POST', 98 dataType: 'json', 99 data: requestData, 100 success: function (response) { 101 102 // console.log(response) 103 if (response && response.view) { 104 105 $('.no-results').hide(); 106 $('.events_list').fadeTo(250, 1); 107 108 if (EventsFilterProcessor.current_page == 1) { 109 response.view = '<div class="grid-sizer"></div>' + response.view; 110 $('.ajax-list-results').html(response.view); 111 EventsFilterProcessor.max_num_pages = response.max_num_pages; 112 113 initMasonry(); 114 } else { 115 var viewEl = $(response.view); 116 $('.ajax-list-results').append(viewEl); 117 initMasonry(viewEl); 118 } 119 120 $('.ajax-list-results .card').fadeTo(250, 1); 121 122 } else if (EventsFilterProcessor.current_page == 1) { 123 $('.events_list').hide(); 124 $('.no-results').fadeIn(250); 125 } 126 }, 127 error: function (response) { 128 console.warn(response); 129 }, 130 complete: function (response) { 131 } 132 }); 133 }, 134 init: function () { 135 $('[name="event-label"]').change(function () { 136 EventsFilterProcessor.current_page = 1;
137 EventsFilterProcessor.processFilter(); 138 }); 139 $('.event-filter-button').click(function (e) { 140 141 e.preventDefault(); 142 143 if ($(this).hasClass('active')) { 144 return; 145 } 146 147 $('.event-filter-button').removeClass('active'); 148 $(this).addClass('active'); 149 150 EventsFilterProcessor.current_page = 1; 151 EventsFilterProcessor.processFilter(); 152 }); 153 154 $(window).on("scroll", function () { 155 156 if (freezeScroll) { 157 return; 158 } 159 160 freezeScroll = true; 161 162 setTimeout(function () { 163 freezeScroll = false; 164 }, 1000); 165 166 if (EventsFilterProcessor.max_num_pages <= EventsFilterProcessor.current_page) { 167 return; 168 } 169 170 var lastElement = $('.ajax-list-results .result-item').last(); 171 172 if (lastElement.length > 0) { 173 174 var lastElementOffsset = lastElement.offset().top; 175 var lastElementHeight = lastElement.height(); 176 177 var scrollPos = Math.floor($(window).height() + $(window).scrollTop()); 178 179 var isBottom = scrollPos > lastElementOffsset + lastElementHeight - 100; 180 if (isBottom) { 181 EventsFilterProcessor.loadMore() 182 } 183 } 184 }); 185 } 186 } 187 188 EventsFilterProcessor.init(); 189 EventsFilterProcessor.processFilter(); 190 191 if ($('.events-carousel.swiper').length > 0) { 192 const swiper = new Swiper('.events-carousel.swiper', { 193 loop: true, 194 slidesPerView: 4, 195 spaceBetween: 20, 196 197 breakpoints: { 198 '320': { 199 slidesPerView: 1, 200 }, 201 '480': { 202 slidesPerView: 2, 203 }, 204 '960': { 205 slidesPerView: 3, 206 }, 207 '1199': { 208 slidesPerView: 4, 209 } 210 }, 211 212 navigation: { 213 nextEl: '.swiper-button-next', 214 prevEl: '.swiper-button-prev', 215 }, 216 }); 217 218 setTimeout(function () { 219 $('.events-carousel.swiper').fadeTo('slow', 1); 220 }, 250); 221 } 222});
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.