1var initSliderSimple = async () => { 2 if (document.querySelector('.baguetteBox-container')) { 3 if (typeof baguetteBox === 'undefined' || typeof baguetteBox.run !== 'function') { 4 await lazy.loadScript('/res/js/baguetteBox/baguetteBox.min.css', 0); 5 await lazy.loadScript('/res/js/baguetteBox/baguetteBox.min.js', 0, initBaguetteBox); 6 } else { 7 initBaguetteBox(); 8 } 9 } 10 // Vérifie s'il existe au moins un .slider-simple sur la page 11 if (document.querySelector('.slider-simple')) { 12 if (typeof Swiper != 'function') { 13 await lazy.loadScript('/res/js/swiper/swiper-bundle.css', 0); 14 await lazy.loadScript('/res/js/swiper/swiper-bundle.min.js', 0, initSlider); 15 } else { 16 // On vérifie que le CSS n'est pas déjà chargé 17 if (!document.querySelector("link[href='/res/js/swiper/swiper-bundle.css']")) { 18 await lazy.loadScript('/res/js/swiper/swiper-bundle.css', 0); 19 } 20 initSlider(); 21 } 22 } 23} 24 25 26const initSlider = function () { 27 const sliders = document.querySelectorAll('.slider-simple'); 28 29 if (sliders.length > 0) {
30 sliders.forEach(slider => { 31 // Options générales 32 const opt = { 33 loop: slider.dataset.loop === "true", 34 lazy: slider.dataset.lazy !== "false", 35 autoplay: parseInt(slider.dataset.autoplay) > 0 ? { delay: parseInt(slider.dataset.autoplay) } : false, 36 speed: parseInt(slider.dataset.speed) || 600, 37 effect: slider.dataset.effect || 'slide', 38 direction: slider.dataset.direction || 'horizontal', 39 slidesPerView: parseFloat(slider.dataset.slidesperview) || 1, 40 spaceBetween: parseInt(slider.dataset.spacebetween) || 0, 41 pagination: { 42 el: slider.dataset.pagination || '.swiper-pagination', 43 clickable: slider.dataset.paginationClickable === "true", 44 } 45 }; 46 47 // Navigation 48 if (slider.dataset.navigationNext || slider.dataset.navigationPrev) { 49 opt.navigation = { 50 nextEl: slider.parentNode.querySelector(slider.dataset.navigationNext), 51 prevEl: slider.parentNode.querySelector(slider.dataset.navigationPrev), 52 }; 53 } 54
55 // Breakpoints 56 if (slider.dataset.breakpoints) { 57 try { 58 const breakpoints = JSON.parse(slider.dataset.breakpoints); 59 Object.entries(breakpoints).forEach(([key, bp]) => { 60 bp.slidesPerView = parseFloat(bp.slidesPerView) || 1; 61 bp.spaceBetween = parseInt(bp.spaceBetween) || 0; 62 }); 63 opt.breakpoints = breakpoints; 64 } catch (error) { 65 console.error('Erreur parsing breakpoints:', error); 66 } 67 } 68 69 new Swiper(slider, opt); 70 }); 71 } 72 73}; 74 75 76 const initBaguetteBox = () => { 77 // Récupérer tous les containers de galeries 78 const galleryContainers = document.querySelectorAll('.baguetteBox-container .baguetteBox'); 79 80 if (galleryContainers.length === 0) { 81 return; // On ne fait rien du tout 82 } 83 // Supprimer les doublons et récupérer les data-group 84 const groups = new Set(); 85 galleryContainers.forEach(el => { 86 const group = el.dataset.group; 87 if (group) { 88 groups.add(group); 89 } 90 }); 91 92 // Exécuter BaguetteBox sur chaque groupe indépendamment 93 groups.forEach(group => { 94 try { 95 baguetteBox.run(`.baguetteBox[data-group="${group}"]`, { 96 noScrollbars: true, 97 buttons: 'auto', 98 }); 99 } catch (error) { 100 console.error(`Erreur sur le groupe ${group} :`, error); 101 } 102 }); 103 104 document.querySelectorAll('.btn-fullscreen').forEach(btn => { 105 btn.addEventListener('click', () => { 106 const group = btn.dataset.group; 107 if (group) { 108 // Ouvrir directement la première image (index 0) 109 try { 110 baguetteBox.run(`.baguetteBox[data-group="${group}"]`, { 111 noScrollbars: true, 112 buttons: 'auto', 113 }); 114 115 // Forcer ouverture directe 116 const links = document.querySelectorAll(`.baguetteBox[data-group="${group}"] a`); 117 if (links.length > 0) { 118 links[0].click(); 119 } 120 } catch (error) { 121 console.error(`Erreur bouton plein écran sur le groupe ${group} :`, error); 122 } 123 } 124 }); 125 }); 126 };
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.