PageSourceSearch

https://www.hotelsophiegermain.com/res/js/template/slider/simple/ui.js?q=1789031218651

js hotelsophiegermain.com collected 2026-10-07 13:08:19 UTC 4,455 bytes, 126 lines download raw bytes

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.