PageSourceSearch

https://www.hotelslitteraires.fr/res/js/template/slider/tabs-team/ui.js?q=1790256808596

js hotelslitteraires.fr collected 2026-09-24 18:48:01 UTC 2,120 bytes, 81 lines download raw bytes

1var initSliderTabsTeam = async function () {
2  if (typeof Swiper !== 'function') {
3    if (!document.querySelector("link[href='/res/js/swiper/swiper-bundle.css']")) {
4      lazy.loadScript('/res/js/swiper/swiper-bundle.css');
5    }
6    await lazy.loadScript('/res/js/swiper/swiper-bundle.min.js');
7  }
8
9  tabsWithOnDemandSwiper();
10};
11
12const createSwiper = (el) => {
13  const parent = el.closest('.slider');
14  const swiper = new Swiper(el, {
15    speed: 600,
16    spaceBetween: 20,
17    slidesPerView: 1,
18    loop: true,
19    autoplay: {
20      delay: 2000,
21      disableOnInteraction: false,
22    },
23    breakpoints: {
24      768: { slidesPerView: 4 },
25      1280: { slidesPerView: 5 },
26    },
27    navigation: {
28      nextEl: parent.querySelector('.button-next'),
29      prevEl: parent.querySelector('.button-prev'),
30    },
31    observer: true,
32    observeParents: true,
33    on: {
34      init(sw) {
35        setTimeout(() => {
36          sw.update();
37          sw.autoplay?.start();
38        }, 0);
39      }
40    }
41  });
42  return swiper;
43};
44
45const tabsWithOnDemandSwiper = () => {
46  const tabs = document.querySelectorAll('[data-tab]');
47  const sliders = document.querySelectorAll('[data-tabs]');
48  let currentSwiper = null;
49  let currentEl = null;
50
51  tabs[0]?.classList.add('active');
52  sliders.forEach((c, i) => {
53    if (i === 0) {
54      c.classList.remove('hidden');
55      currentEl = c;
56      currentSwiper = createSwiper(c);
57    } else {
58      c.classList.add('hidden');
59    }
60  });
61
62  tabs.forEach(tab => {
63    tab.addEventListener('click', (e) => {
64      e.preventDefault();
65      const index = tab.getAttribute('data-tab');
66      const nextEl = document.querySelector(`[data-tabs="${index}"]`);
67      if (!nextEl || nextEl === currentEl) return;
68
69      tabs.forEach(t => t.classList.remove('active'));
70      tab.classList.add('active');
71      sliders.forEach(c => c.classList.add('hidden'));
72      nextEl.classList.remove('hidden');
73
74      if (currentSwiper && !currentSwiper.destroyed) {
75        currentSwiper.destroy(true, true);
76      }
77      currentEl = nextEl;
78      currentSwiper = createSwiper(nextEl);
79    });
80  });
81};

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.