UNPKG

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