UNPKG

3.12 kBJavaScriptView Raw
1import { isObject, extend } from './utils';
2
3function updateSwiper(swiper, slides, passedParams, changedParams) {
4 var updateParams = changedParams.filter(function (key) {
5 return key !== 'children' && key !== 'direction';
6 });
7 var currentParams = swiper.params,
8 pagination = swiper.pagination,
9 navigation = swiper.navigation,
10 scrollbar = swiper.scrollbar,
11 virtual = swiper.virtual,
12 thumbs = swiper.thumbs;
13 var needThumbsInit;
14 var needControllerInit;
15 var needPaginationInit;
16 var needScrollbarInit;
17 var needNavigationInit;
18
19 if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {
20 needThumbsInit = true;
21 }
22
23 if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {
24 needControllerInit = true;
25 }
26
27 if (changedParams.includes('pagination') && passedParams.pagination && passedParams.pagination.el && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {
28 needPaginationInit = true;
29 }
30
31 if (changedParams.includes('scrollbar') && passedParams.scrollbar && passedParams.scrollbar.el && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {
32 needScrollbarInit = true;
33 }
34
35 if (changedParams.includes('navigation') && passedParams.navigation && passedParams.navigation.prevEl && passedParams.navigation.nextEl && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {
36 needNavigationInit = true;
37 }
38
39 updateParams.forEach(function (key) {
40 if (isObject(currentParams[key]) && isObject(passedParams[key])) {
41 extend(currentParams[key], passedParams[key]);
42 } else {
43 currentParams[key] = passedParams[key];
44 }
45 });
46
47 if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {
48 virtual.slides = slides;
49 virtual.update(true);
50 } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {
51 swiper.lazy.load();
52 }
53
54 if (needThumbsInit) {
55 var initialized = thumbs.init();
56 if (initialized) thumbs.update(true);
57 }
58
59 if (needControllerInit) {
60 swiper.controller.control = currentParams.controller.control;
61 }
62
63 if (needPaginationInit) {
64 pagination.init();
65 pagination.render();
66 pagination.update();
67 }
68
69 if (needScrollbarInit) {
70 scrollbar.init();
71 scrollbar.updateSize();
72 scrollbar.setTranslate();
73 }
74
75 if (needNavigationInit) {
76 navigation.init();
77 navigation.update();
78 }
79
80 if (changedParams.includes('allowSlideNext')) {
81 swiper.allowSlideNext = passedParams.allowSlideNext;
82 }
83
84 if (changedParams.includes('allowSlidePrev')) {
85 swiper.allowSlidePrev = passedParams.allowSlidePrev;
86 }
87
88 if (changedParams.includes('direction')) {
89 swiper.changeDirection(passedParams.direction, false);
90 }
91
92 swiper.update();
93}
94
95export { updateSwiper };
\No newline at end of file