1 | import { isObject, extend } from './utils';
|
2 |
|
3 | function 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 |
|
95 | export { updateSwiper }; |
\ | No newline at end of file |