UNPKG

3.75 kBJavaScriptView Raw
1import { ariaDisable, ariaHidden } from './swiper-a11y';
2import { CLS, addClass, queryChildren, removeClass } from './swiper-utils';
3import { updatePaginationClasses } from './swiper-pagination';
4/*=========================
5 Classes
6 ===========================*/
7export function updateClasses(s) {
8 var childElements;
9 removeClass(s._slides, [CLS.slideActive, CLS.slideNext, CLS.slidePrev, CLS.slideDuplicateActive, CLS.slideDuplicateNext, CLS.slideDuplicatePrev]);
10 for (var i = 0; i < s._slides.length; i++) {
11 ariaHidden(s._slides[i], true);
12 }
13 var activeSlide = s._slides[s._activeIndex];
14 if (!activeSlide) {
15 return;
16 }
17 // Active classes
18 addClass(activeSlide, CLS.slideActive);
19 ariaHidden(activeSlide, false);
20 if (s.loop) {
21 // Duplicate to all looped slides
22 if (activeSlide.classList.contains(CLS.slideDuplicate)) {
23 childElements = queryChildren(s._wrapper, '.' + CLS.slide + ':not(.' + CLS.slideDuplicate + ')[data-swiper-slide-index="' + s.realIndex + '"]');
24 }
25 else {
26 childElements = queryChildren(s._wrapper, '.' + CLS.slide + '.' + CLS.slideDuplicate + '[data-swiper-slide-index="' + s.realIndex + '"]');
27 }
28 addClass(childElements, CLS.slideDuplicateActive);
29 }
30 // Next Slide
31 var nextSlide = activeSlide.nextElementSibling;
32 if (s.loop && !nextSlide) {
33 nextSlide = s._slides[0];
34 }
35 nextSlide && nextSlide.classList.add(CLS.slideNext);
36 // Prev Slide
37 var prevSlide = activeSlide.previousElementSibling;
38 if (s.loop && !prevSlide) {
39 prevSlide = s._slides[s._slides.length - 1];
40 }
41 prevSlide && prevSlide.classList.add(CLS.slidePrev);
42 if (s.loop) {
43 // Duplicate to all looped slides
44 if (nextSlide.classList.contains(CLS.slideDuplicate)) {
45 childElements = queryChildren(s._wrapper, '.' + CLS.slide + ':not(.' + CLS.slideDuplicate + ')[data-swiper-slide-index="' + nextSlide.getAttribute('data-swiper-slide-index') + '"]');
46 }
47 else {
48 childElements = queryChildren(s._wrapper, '.' + CLS.slide + '.' + CLS.slideDuplicate + '[data-swiper-slide-index="' + nextSlide.getAttribute('data-swiper-slide-index') + '"]');
49 }
50 addClass(childElements, CLS.slideDuplicateNext);
51 if (prevSlide.classList.contains(CLS.slideDuplicate)) {
52 childElements = queryChildren(s._wrapper, '.' + CLS.slide + ':not(.' + CLS.slideDuplicate + ')[data-swiper-slide-index="' + prevSlide.getAttribute('data-swiper-slide-index') + '"]');
53 }
54 else {
55 childElements = queryChildren(s._wrapper, '.' + CLS.slide + '.' + CLS.slideDuplicate + '[data-swiper-slide-index="' + prevSlide.getAttribute('data-swiper-slide-index') + '"]');
56 }
57 addClass(childElements, CLS.slideDuplicatePrev);
58 }
59 // Pagination
60 if (s._paginationContainer) {
61 updatePaginationClasses(s);
62 }
63 // Next/active buttons
64 if (!s.loop) {
65 if (s.prevButton) {
66 if (s._isBeginning) {
67 s.prevButton.classList.add(CLS.buttonDisabled);
68 ariaDisable(s.prevButton, true);
69 }
70 else {
71 s.prevButton.classList.remove(CLS.buttonDisabled);
72 ariaDisable(s.prevButton, false);
73 }
74 }
75 if (s.nextButton) {
76 if (s._isEnd) {
77 s.nextButton.classList.add(CLS.buttonDisabled);
78 ariaDisable(s.nextButton, true);
79 }
80 else {
81 s.nextButton.classList.remove(CLS.buttonDisabled);
82 ariaDisable(s.nextButton, false);
83 }
84 }
85 }
86}
87//# sourceMappingURL=swiper-classes.js.map
\No newline at end of file