PageSourceSearch

https://www.raiffeisen.hu/o/raiffeisen-theme/js/components/Slider.js?minifierType=js&t=1790242628779

js raiffeisen.hu collected 2026-09-24 09:38:36 UTC 4,282 bytes, 139 lines download raw bytes

1/*1786086148000*/
2"use scrict";
3
4//raiffeisen slider
5let raiffeisenSlider = (() => {
6  const app = (config) => {
7    const raiffeisenSlider = document.querySelector(`${config.id}`);
8
9    const interval = 5000;
10    const duration = 1000;
11
12    let clickPermission = true;
13    let play;
14
15    if (raiffeisenSlider) {
16      const sliderItems = raiffeisenSlider.querySelectorAll(
17          ".raiffeisen-slider-item"
18      );
19      const dots = raiffeisenSlider.querySelectorAll(".dot");
20      const next = raiffeisenSlider.querySelector(`.next-icon`);
21      const prev = raiffeisenSlider.querySelector(`.prev-icon`);
22      const length = sliderItems.length > 1;
23
24      const playSlide = (milliseconds) => {
25        play = setInterval(() => (length ? nextElement() : null), milliseconds);
26      };
27
28      const pauseSlide = () => {
29        clearInterval(play);
30      };
31
32      const navigation = (current, num, direction) => {
33        if (clickPermission) {
34          clickPermission = false;
35
36          sliderItems.forEach((element) => {
37            element.setAttribute("aria-hidden", true);
38          });
39
40          const currentId =
41              direction == 3
42                  ? num
43                  : parseFloat(current.getAttribute("data-id")) + num;
44
45          const setCurrent = (id) => {
46            sliderItems[id].classList.add("active");
47            sliderItems[id].style.transition = `opacity ${duration}ms ease-out`;
48            sliderItems[id].setAttribute("aria-hidden", false);
49
50            setTimeout(() => {
51              current.classList.remove("current");
52              sliderItems[id].style.transition = "";
53              sliderItems[id].classList.remove("active");
54              sliderItems[id].classList.add("current");
55            }, duration + 50);
56          };
57
58          if (direction == 1) {
59            if (currentId <= sliderItems.length - 1) {
60              setCurrent(currentId);
61              setDotsCurrent(currentId);
62            } else {
63              setCurrent(0);
64              setDotsCurrent(0);
65            }
66          } else if (direction == 2) {
67            if (currentId > -1) {
68              setCurrent(currentId);
69              setDotsCurrent(currentId);
70            } else {
71              setCurrent(sliderItems.length - 1);
72              setDotsCurrent(sliderItems.length - 1);
73            }
74          } else if (direction == 3) {
75            setCurrent(currentId);
76            setDotsCurrent(currentId);
77          }
78
79          setTimeout(() => {
80            clickPermission = true;
81          }, duration + 50);
82        }
83      };
84
85      const setDotsCurrent = (id) => {
86        dotsRemove();
87        dots[id].classList.add("current");
88      };
89
90      const dotsRemove = () => {
91        dots.forEach((element) => {
92          element.classList.remove("current");
93        });
94      };
95
96      playSlide(interval);
97
98      const nextElement = () => {
99        const currentSliderItem = raiffeisenSlider.querySelector(
100            ".raiffeisen-slider-item.current"
101        );
102        navigation(currentSliderItem, 1, 1);
103        pauseSlide();
104        playSlide(interval + duration);
105      };
106
107      const prevElement = () => {
108        const currentSliderItem = raiffeisenSlider.querySelector(
109            ".raiffeisen-slider-item.current"
110        );
111        navigation(currentSliderItem, -1, 2);
112        pauseSlide();
113        playSlide(interval + duration);
114      };
115
116      const dotsNavigation = (el) => {
117        el.addEventListener("click", function (event) {
118          const currentSliderItem = raiffeisenSlider.querySelector(
119              ".raiffeisen-slider-item.current"
120          );
121          navigation(
122              currentSliderItem,
123              parseFloat(event.currentTarget.getAttribute("data-id")),
124              3
125          );
126          pauseSlide();
127          playSlide(interval + duration);
128        });
129      };
130
131      length ? next.addEventListener("click", () => nextElement()) : null;
132      length ? prev.addEventListener("click", () => prevElement()) : null;
133      length ? dots.forEach((element) => dotsNavigation(element)) : null;
134    }
135  };
136  return {
137    app: app,
138  };
139})();

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.