PageSourceSearch

https://hotelconcordy.com/wp-content/plugins/avirato-engine/widgets/js/slider.js?ver=7.1.2

js hotelconcordy.com collected 2026-10-06 08:51:54 UTC 2,925 bytes, 100 lines download raw bytes

1class SliderHandler extends elementorModules.frontend.handlers.Base {
2  getDefaultSettings() {
3    return {
4      selectors: {
5        thumbnails: ".avdivimg_slider_thumn",
6        sliderContainer: ".avdiv_wid_slider",
7        slides: ".avdivimg_slider_big",
8      },
9      slideInterval: 4000, // valor por defecto
10      slideTransition: 1000, // valor por defecto
11    };
12  }
13
14  getDefaultElements() {
15    const selectors = this.getSettings("selectors");
16    return {
17      $thumbnails: this.$element.find(selectors.thumbnails),
18      $sliderContainer: this.$element.find(selectors.sliderContainer),
19      $slides: this.$element.find(selectors.slides),
20    };
21  }
22
23  bindEvents() {
24    const settings = window.sliderSettings || {};
25    this.elements.$thumbnails.on("click", this.onThumbnailClick.bind(this));
26    this.startInterval(settings);
27  }
28
29  getSlideInterval(settings) {
30    return settings.slide_interval
31      ? settings.slide_interval
32      : this.getDefaultSettings().slideInterval;
33  }
34
35  getSlideTransition(settings) {
36    return settings.slide_transition
37      ? settings.slide_transition
38      : this.getDefaultSettings().slideTransition;
39  }
40
41  startInterval(settings) {
42    this.interval = setInterval(
43      this.nextSlide.bind(this),
44      this.getSlideInterval(settings)
45    );
46  }
47
48  onThumbnailClick(event) {
49    const $thumbnail = jQuery(event.currentTarget);
50    const step = parseInt($thumbnail.data("step"), 10);
51    clearInterval(this.interval);
52    this.goToSlide(step);
53    this.startInterval(window.sliderSettings); // Restablecer el intervalo después del clic
54  }
55
56  goToSlide(slideIndex) {
57    const settings = window.sliderSettings || {};
58    const transitionTime = this.getSlideTransition(settings);
59    const $targetSlide = this.elements.$slides.eq(slideIndex);
60    const targetOffset = slideIndex * $targetSlide.outerWidth(true);
61
62    this.elements.$sliderContainer.animate(
63      {
64        scrollLeft: targetOffset,
65      },
66      transitionTime,
67      () => {}
68    ); // Animación suave usando el tiempo de transición configurado
69  }
70
71  nextSlide() {
72    let currentSlideIndex = this.elements.$slides.filter(".active").index();
73    const totalSlides = this.elements.$slides.length;
74
75    if (currentSlideIndex === -1) {
76      currentSlideIndex = 0;
77    }
78
79    const nextSlideIndex = (currentSlideIndex + 1) % totalSlides;
80
81    this.elements.$slides
82      .removeClass("active")
83      .eq(nextSlideIndex)
84      .addClass("active");
85    this.goToSlide(nextSlideIndex);
86  }
87}
88
89jQuery(window).on("elementor/frontend/init", () => {
90  const addHandler = ($element) => {
91    elementorFrontend.elementsHandler.addHandler(SliderHandler, {
92      $element,
93    });
94  };
95
96  elementorFrontend.hooks.addAction(
97    "frontend/element_ready/carrusel-de-alojamiento.default",
98    addHandler
99  );
100});

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.