Browse code

Refactor and rewrite as contao bundle

Benjamin Roth authored on04/11/2022 22:32:32
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,90 @@
1
+import { isObject, extend } from './utils';
2
+
3
+function 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
+
90
+export { updateSwiper };
0 91
\ No newline at end of file