1jQuery(document).ready(function($) { 2 3// Calculate footer height to keep the footer anchored to the bottom of the page 4$(document).ready(function() { 5 function elementHeights() { 6 var header = $('.main-header').outerHeight(); 7 var footer = $('.main-footer').outerHeight(); 8 var height = footer; 9 $('#content').css('min-height', 'calc(100vh - ' + height + 'px)'); 10 } 11 elementHeights(); 12 $(window).resize(elementHeights); 13}); 14 15$('.toggler').click(function(){ 16 $('.menu-wrapper').addClass('open'); 17 $('.sub-menu').css({ 'opacity': '0', 'height': '0', 'pointer-events': 'none' }); 18}); 19$('.toggler-close').click(function(){ 20 $('.menu-wrapper').removeClass('open'); 21}); 22$('.menu-item-has-children').click(function() { 23 var subMenu = $(this).find('.sub-menu'); 24 var menuItem = $('.menu > .menu-item').outerHeight(); 25 var liCount = subMenu.find('li').length; 26 var subMenuItems = liCount * menuItem + 'px'; 27 var subMenuHeight = 'calc(' + subMenuItems + ' - 18px)'; 28 if (subMenu.css('opacity') == '0') { 29 subMenu.css({ 'height': subMenuHeight, 'opacity': '1', 'pointer-events': 'all' }); 30 $(this).addClass('open'); 31 } else { 32 subMenu.css({ 'height': '0', 'opacity': '0', 'pointer-events': 'none' }); 33 $(this).removeClass('open'); 34 } 35}); 36 37$('.back-to-top').click(function(event) { 38 var target = $(this).attr('href'); 39 $('html, body').animate({ 40 scrollTop: $(target).offset().top 41 }, 700); 42 event.preventDefault(); 43}); 44 45// Swiper 46var browserWidth = $(window).width(); 47var spacerWidth = browserWidth/100*2.25*1.25; 48var spacerWidthMobile = 18; 49const swiperHero = new Swiper('.swiper-hero', { 50 speed: 2000, 51 slidesPerView: 1, 52 loop: true, 53 centeredSlides: false, 54 effect: "fade", 55 autoplay: { 56 delay: 6000, 57 disableOnInteraction: false, 58 }, 59}); 60const swiperNavigationPagination = new Swiper('.swiper-navigation-pagination', { 61 speed: 400, 62 slidesPerView: 1, 63 loop: true, 64 centeredSlides: false, 65 navigation: { 66 nextEl: '.swiper-button-next', 67 prevEl: '.swiper-button-prev', 68 }, 69 pagination: { 70 el: ".swiper-pagination", 71 clickable: true, 72 }, 73}); 74const swiperSuggested = new Swiper('.swiper-suggested', { 75 speed: 400, 76 spaceBetween: spacerWidthMobile, 77 slidesPerView: 'auto', 78 loop: false, 79 centeredSlides: false, 80 centeredSlidesBounds: false, 81 navigation: { 82 nextEl: '.swiper-button-next', 83 prevEl: '.swiper-button-prev', 84 }, 85 pagination: { 86 el: ".swiper-pagination", 87 clickable: true, 88 }, 89 breakpoints: { 90 768: { 91 spaceBetween: spacerWidth 92 } 93 } 94}); 95 96 97 98// Scroll to anchor 99$('.anchor').click(function(event) { 100 var target = $(this).attr('href'); 101 var headerHeight = $('.main-header').outerHeight(); // Header height offset 102 var offset = headerHeight*1.25; 103 $('html, body').animate({ 104 scrollTop: $(target).offset().top - offset 105 }, 700); 106 event.preventDefault(); 107}); 108 109// Prevent default scroll to top on all empty anchors 110$('a[href^="#"]').click(function(event) { 111 event.preventDefault(); 112}); 113 114// Lazyload 115var lazyload = new LazyLoad({ 116 elements_selector: '.lazy', 117 thresholds: '100% 0px', 118}); 119 120/* 121 122// Back to top 123 124 125 126 127 128 129 130 131// AOS 132AOS.init({ 133 // Global settings: 134 disable: false, // accepts following values: 'phone', 'tablet', 'mobile', boolean, expression or function 135 startEvent: 'DOMContentLoaded', // name of the event dispatched on the document, that AOS should initialize on 136 initClassName: 'aos-init', // class applied after initialization 137 animatedClassName: 'aos-animate', // class applied on animation 138 useClassNames: false, // if true, will add content of `data-aos` as classes on scroll 139 disableMutationObserver: false, // disables automatic mutations' detections (advanced) 140 debounceDelay: 50, // the delay on debounce used while resizing window (advanced) 141 throttleDelay: 99, // the delay on throttle used while scrolling the page (advanced) 142 // Settings that can be overridden on per-element basis, by `data-aos-*` attributes: 143 offset: 300, // offset (in px) from the original trigger point 144 delay: 0, // values from 0 to 3000, with step 50ms 145 duration: 1000, // values from 0 to 3000, with step 50ms 146 easing: 'ease', // default easing for AOS animations 147 once: true, // whether animation should happen only once - while scrolling down 148 mirror: false, // whether elements should animate out while scrolling past them 149 anchorPlacement: 'top-center', // defines which position of the element regarding to window should trigger the animation 150}); 151 152// Mixitup 153var mixer = mixitup('.mix-container', { 154 animation: { 155 effects: 'fade', 156 nudge: false, 157 }, 158 selectors: { 159 control: '[data-mixitup-control]' 160 } 161}); 162*/ 163 164// Fancybox 165Fancybox.bind('[data-fancybox]', { 166 infinite: false, 167 click: 'close', // action when clicking on backdrop (values: close / next) 168 Thumbs: false, 169 Toolbar: false, 170 closeButton: "top", 171 Image: { 172 zoom: false, // disables default animation 173 }, 174 Carousel: { 175 Navigation: false, 176 }, 177 template: { 178 closeButton: '<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M39.9098 10.2198L37.7898 8.08984L23.9998 21.8798L10.2098 8.08984L8.08984 10.2098L21.8798 23.9998L8.08984 37.7798L10.2098 39.9098L23.9998 26.1198L37.7898 39.9098L39.9098 37.7898L26.1198 23.9998L39.9098 10.2198Z" fill="white"/></svg>', 179 }, 180}); 181Fancybox.bind('[data-fancybox="gallery"]', { 182 infinite: false, 183 click: 'close', // action when clicking on backdrop (values: close / next) 184 Thumbs: false, 185 Toolbar: false, 186 closeButton: "top", 187 Image: { 188 zoom: false, // disables default animation 189 }, 190 Carousel: { 191 Navigation: { 192 prevTpl: '<svg width="22" height="40" viewBox="0 0 22 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.35039 19.9998C15.9604 16.9398 21.3504 9.4898 21.3504 0.799805H18.3504C18.3504 10.5598 10.4104 18.4998 0.650391 18.4998V21.4998C10.4104 21.4998 18.3504 29.4398 18.3504 39.1998H21.3504C21.3504 30.5098 15.9604 23.0598 8.35039 19.9998Z" fill="white"/></svg>', 193 nextTpl: '<svg width="22" height="40" viewBox="0 0 22 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.6504 19.9998C6.04039 23.0598 0.650391 30.5098 0.650391 39.1998H3.65039C3.65039 29.4398 11.5904 21.4998 21.3504 21.4998V18.4998C11.5904 18.4998 3.65039 10.5598 3.65039 0.799805H0.650391C0.650391 9.4898 6.04039 16.9398 13.6504 19.9998Z" fill="white"/></svg>', 194 }, 195 }, 196 template: { 197 closeButton: '<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M39.9098 10.2198L37.7898 8.08984L23.9998 21.8798L10.2098 8.08984L8.08984 10.2098L21.8798 23.9998L8.08984 37.7798L10.2098 39.9098L23.9998 26.1198L37.7898 39.9098L39.9098 37.7898L26.1198 23.9998L39.9098 10.2198Z" fill="white"/></svg>', 198 }, 199}); 200Fancybox.bind('[data-fancybox="caption"]', { 201 infinite: false, 202 click: 'close', // action when clicking on backdrop (values: close / next) 203 Thumbs: false, 204 Toolbar: false, 205 closeButton: "top", 206 Image: { 207 zoom: false, // disables default animation 208 }, 209 Carousel: { 210 Navigation: false, 211 }, 212 template: { 213 closeButton: '<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M39.9098 10.2198L37.7898 8.08984L23.9998 21.8798L10.2098 8.08984L8.08984 10.2098L21.8798 23.9998L8.08984 37.7798L10.2098 39.9098L23.9998 26.1198L37.7898 39.9098L39.9098 37.7898L26.1198 23.9998L39.9098 10.2198Z" fill="white"/></svg>', 214 }, 215}); 216 217 218}); 219
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.