https://securelist.ru/wp-content/plugins/kaspersky-custom-gallery/assets/js/script.js?ver=1790865803
1// post gallery 2jQuery(document).ready(function($) { 3 $('._post .post-gallery').each(function(ind, el) { 4 var $gallery = $(el) 5 var resizeTimer 6 7 // ФÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¿ÐµÑеÑÑÑÑа позиÑий и вÑÑоÑÑ 8 function updatePositions() { 9 // ÐеÑеÑÑÑÑ Ð²ÑÑоÑÑ 10 // var hSlickTrack = $gallery.find('.slick-track').height() 11 12 // if (hSlickTrack) { 13 // $gallery.find('.slick-slide').height(hSlickTrack) 14 // $gallery.find('.post-gallery__item').height(hSlickTrack) 15 // } 16 17 // ÐеÑеÑÑÑÑ Ð¿Ð¾Ð·Ð¸Ñий 18 var wGalleryDots = $gallery.find('ul.slick-dots').width() 19 var wGalleryWrapper = $gallery.closest('.post-gallery-wrapper').width() 20 21 if (wGalleryWrapper === 0) return 22 23 var offsetDots = (wGalleryWrapper - wGalleryDots) / 2 24 var offsetArrow = offsetDots - 70 25 26 // ÐеÑевод в пÑоÑенÑÑ 27 var offsetDotsPercent = offsetDots / wGalleryWrapper * 100 28 var offsetArrowPercent = offsetArrow / wGalleryWrapper * 100 29 30 $gallery.find('ul.slick-dots').css('left', offsetDotsPercent + '%') 31 $gallery 32 .find('.slick-arrow.slick-next') 33 .css('right', offsetArrowPercent + '%') 34 $gallery 35 .find('.slick-arrow.slick-prev') 36 .css('left', offsetArrowPercent + '%') 37 38 // ÐÑиÑаем ÑекÑÑ ÑÑÑелок 39 $('button.slick-arrow').html('') 40 41 // вÑÑоÑа ÑлайдеÑа 42 43 // var hGalleryCurrent = $gallery.height() 44 var hActiveImage = $gallery.find('.slick-slide.slick-active img').height() 45 46 $gallery.css({ 47 48 height: hActiveImage + 'px' 49 }) 50 // $gallery.height(hActiveImage) 51 } 52 53 // СобÑÑие иниÑиализаÑии Slick 54 $gallery.on('init', function(event, slick) { 55 updatePositions() 56 }) 57 58 // СобÑÑие поÑле Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñлайда 59 $gallery.on('afterChange', function() { 60 updatePositions() 61 }) 62 63 // СобÑÑие ÑеÑайза Ñ debounce Ð´Ð»Ñ Ð¾Ð¿ÑимизаÑии 64 $(window).on('resize', function() { 65 clearTimeout(resizeTimer) 66 resizeTimer = setTimeout(function() { 67 updatePositions() 68 }, 150) 69 }) 70 71 // ÐниÑиализаÑÐ¸Ñ Slick ÑлайдеÑа 72 $gallery.slick({ 73 dots: true, 74 infinite: false, 75 speed: 200, 76 fade: true, 77 responsive: [ 78 { 79 breakpoint: 768, 80 settings: { 81 fade: false, 82 infinite: true 83 } 84 } 85 ] 86 }) 87 }) 88 89 // ФÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð·Ð¸Ñий ÑлеменÑов в овеÑлее 90 function updateOverlayPositions($wrapper) { 91 if (!$wrapper.length || !$wrapper.hasClass('_overlay_show')) return 92 93 var wGalleryDots = $wrapper.find('ul.slick-dots').width() 94 var wGalleryWrapper = $wrapper.width() 95 96 if (wGalleryWrapper === 0) return 97 98 var offsetDots = (wGalleryWrapper - wGalleryDots) / 2 99 var offsetArrow = offsetDots - 70 100 101 // ÐеÑевод в пÑоÑенÑÑ 102 var offsetDotsPercent = offsetDots / wGalleryWrapper * 100 103 var offsetArrowPercent = offsetArrow / wGalleryWrapper * 100 104 105 $wrapper.find('ul.slick-dots').css('left', offsetDotsPercent + '%') 106 $wrapper 107 .find('.slick-arrow.slick-next') 108 .css('right', offsetArrowPercent + '%') 109 $wrapper 110 .find('.slick-arrow.slick-prev') 111 .css('left', offsetArrowPercent + '%') 112 113 // ÐÑиÑаем ÑекÑÑ ÑÑÑелок 114 $('button.slick-arrow').html('') 115 } 116 117 // Debounce ÑÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¾Ð¿ÑимизаÑии 118 function debounce(func, wait) { 119 var timeout 120 return function executedFunction() { 121 var later = function() { 122 clearTimeout(timeout) 123 func() 124 } 125 clearTimeout(timeout) 126 timeout = setTimeout(later, wait) 127 } 128 } 129 130 // ÐниÑиализаÑÐ¸Ñ Ð¾Ð²ÐµÑлей ÑлайдеÑа 131 $('._overlay .post-gallery').on('init', function(event, slick) { 132 var $gallery = $(this) 133 var $wrapper = $gallery.closest('.post-gallery-wrapper._overlay') 134 135 updateOverlayPositions($wrapper) 136 $('.c-page-header, .site-top').addClass('overlay_only') 137 }) 138 139 // Ðбновление позиÑий пÑи ÑеÑайзе Ð´Ð»Ñ Ð°ÐºÑивного овеÑÐ»ÐµÑ 140 var debouncedResize = debounce(function() { 141 var $activeOverlay = $('.post-gallery-wrapper._overlay._overlay_show') 142 if ($activeOverlay.length) { 143 updateOverlayPositions($activeOverlay) 144 } 145 }, 150) 146 147 $(window).on('resize', debouncedResize) 148 149 // Ðбновление позиÑий пÑи Ñмене Ñлайда в овеÑлее 150 $(document).on('afterChange', '._overlay .post-gallery', function( 151 event, 152 slick, 153 currentSlide 154 ) { 155 var $gallery = $(this) 156 var $wrapper = $gallery.closest('.post-gallery-wrapper._overlay') 157 if ($wrapper.hasClass('_overlay_show')) { 158 updateOverlayPositions($wrapper) 159 } 160 }) 161 162 // Ðлик по изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¾ÑкÑÑÑÐ¸Ñ Ð¾Ð²ÐµÑÐ»ÐµÑ 163 $('.post-gallery._link_file img').on('click', function() { 164 var $img = $(this) 165 var $wrapper = $img.closest('.post-gallery-wrapper') 166 var galleryID = $wrapper.attr('data-id') 167 var $overlayWrapper = $('._overlay-' + galleryID) 168 var $overlayGallery = $overlayWrapper.find('.post-gallery') 169 170 var currentSlideIndex = $img 171 .closest('.slick-slide') 172 .attr('data-slick-index') 173 if (currentSlideIndex === undefined) { 174 currentSlideIndex = 0 175 } else { 176 currentSlideIndex = parseInt(currentSlideIndex) 177 } 178 179 // ÐниÑиализиÑÑем овеÑлей ÑлайдеÑ, еÑли еÑÑ Ð½Ðµ иниÑиализиÑован 180 if (!$overlayGallery.hasClass('slick-initialized')) { 181 $overlayGallery.slick({ 182 dots: true, 183 infinite: false, 184 speed: 200, 185 fade: true, 186 responsive: [ 187 { 188 breakpoint: 768, 189 settings: { 190 fade: false, 191 infinite: true 192 } 193 } 194 ] 195 }) 196 } 197 198 // ÐоказÑваем овеÑлей 199 $overlayWrapper.addClass('_overlay_show') 200 201 // ÐеÑÐµÑ Ð¾Ð´Ð¸Ð¼ к нÑÐ¶Ð½Ð¾Ð¼Ñ ÑÐ»Ð°Ð¹Ð´Ñ 202 $overlayGallery.slick('slickGoTo', currentSlideIndex, true) 203 204 // ÐбновлÑем позиÑии поÑле показа 205 setTimeout(function() { 206 updateOverlayPositions($overlayWrapper) 207 }, 50) 208 }) 209 210 // ÐакÑÑÑие овеÑÐ»ÐµÑ 211 $(document).on('click', '.post-gallery-wrapper._overlay_show', function(e) { 212 var $wrapper = $(this) 213 var $overlayGallery = $wrapper.find('.post-gallery') 214 var galleryID = $wrapper.attr('data-id') 215 ? $wrapper.attr('data-id').replace('_overlay-', '') 216 : '' 217 218 // ÐакÑÑваем ÑолÑко пÑи клике вне изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸ ÑлеменÑов ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ 219 if (!$(e.target).is('img, .slick-arrow, .slick-dots *')) { 220 var currentSlideIndex = $overlayGallery.slick('slickCurrentSlide') 221 222 // Ð¡Ð¸Ð½Ñ ÑонизиÑÑем оÑновной ÑÐ»Ð°Ð¹Ð´ÐµÑ 223 if (galleryID) { 224 $('._post-' + galleryID + ' .post-gallery').slick( 225 'slickGoTo', 226 currentSlideIndex 227 ) 228 } 229 230 // УниÑÑожаем овеÑлей ÑÐ»Ð°Ð¹Ð´ÐµÑ 231 if ($overlayGallery.hasClass('slick-initialized')) { 232 $overlayGallery.slick('unslick') 233 } 234 235 // СкÑÑваем овеÑлей 236 $wrapper.removeClass('_overlay_show') 237 238 // УдалÑем клаÑÑÑ Ñ Ñ ÐµÐ´ÐµÑа 239 var $otherOverlays = $('.post-gallery-wrapper._overlay_show') 240 if (!$otherOverlays.length) { 241 $('.c-page-header, .site-top').removeClass('overlay_only') 242 } 243 } 244 }) 245 246 // ÐополниÑелÑÐ½Ð°Ñ ÑÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð·Ð°ÐºÑÑÑÐ¸Ñ Ð¾Ð²ÐµÑÐ»ÐµÑ Ð¿Ð¾ Escape 247 $(document).on('keydown', function(e) { 248 if (e.key === 'Escape' || e.keyCode === 27) { 249 var $activeOverlay = $('.post-gallery-wrapper._overlay_show') 250 if ($activeOverlay.length) { 251 $activeOverlay.trigger('click') 252 } 253 } 254 }) 255 256 // Ðбновление позиÑий пÑи загÑÑзке вÑÐµÑ Ð¸Ð·Ð¾Ð±Ñажений в овеÑлее 257 $(document).on('lazyLoaded', '._overlay .post-gallery', function() { 258 var $gallery = $(this) 259 var $wrapper = $gallery.closest('.post-gallery-wrapper._overlay') 260 if ($wrapper.hasClass('_overlay_show')) { 261 updateOverlayPositions($wrapper) 262 } 263 }) 264})
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.