Browse code

Refactor and rewrite as contao bundle

Benjamin Roth authored on04/11/2022 22:32:32
Showing1 changed files
1 1
deleted file mode 100644
... ...
@@ -1,347 +0,0 @@
1
-function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
-
3
-import { getDocument } from 'ssr-window';
4
-import $ from '../../utils/dom';
5
-import { extend, nextTick, bindModuleMethods } from '../../utils/utils';
6
-var Scrollbar = {
7
-  setTranslate: function setTranslate() {
8
-    var swiper = this;
9
-    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
10
-    var scrollbar = swiper.scrollbar,
11
-        rtl = swiper.rtlTranslate,
12
-        progress = swiper.progress;
13
-    var dragSize = scrollbar.dragSize,
14
-        trackSize = scrollbar.trackSize,
15
-        $dragEl = scrollbar.$dragEl,
16
-        $el = scrollbar.$el;
17
-    var params = swiper.params.scrollbar;
18
-    var newSize = dragSize;
19
-    var newPos = (trackSize - dragSize) * progress;
20
-
21
-    if (rtl) {
22
-      newPos = -newPos;
23
-
24
-      if (newPos > 0) {
25
-        newSize = dragSize - newPos;
26
-        newPos = 0;
27
-      } else if (-newPos + dragSize > trackSize) {
28
-        newSize = trackSize + newPos;
29
-      }
30
-    } else if (newPos < 0) {
31
-      newSize = dragSize + newPos;
32
-      newPos = 0;
33
-    } else if (newPos + dragSize > trackSize) {
34
-      newSize = trackSize - newPos;
35
-    }
36
-
37
-    if (swiper.isHorizontal()) {
38
-      $dragEl.transform("translate3d(" + newPos + "px, 0, 0)");
39
-      $dragEl[0].style.width = newSize + "px";
40
-    } else {
41
-      $dragEl.transform("translate3d(0px, " + newPos + "px, 0)");
42
-      $dragEl[0].style.height = newSize + "px";
43
-    }
44
-
45
-    if (params.hide) {
46
-      clearTimeout(swiper.scrollbar.timeout);
47
-      $el[0].style.opacity = 1;
48
-      swiper.scrollbar.timeout = setTimeout(function () {
49
-        $el[0].style.opacity = 0;
50
-        $el.transition(400);
51
-      }, 1000);
52
-    }
53
-  },
54
-  setTransition: function setTransition(duration) {
55
-    var swiper = this;
56
-    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
57
-    swiper.scrollbar.$dragEl.transition(duration);
58
-  },
59
-  updateSize: function updateSize() {
60
-    var swiper = this;
61
-    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
62
-    var scrollbar = swiper.scrollbar;
63
-    var $dragEl = scrollbar.$dragEl,
64
-        $el = scrollbar.$el;
65
-    $dragEl[0].style.width = '';
66
-    $dragEl[0].style.height = '';
67
-    var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;
68
-    var divider = swiper.size / swiper.virtualSize;
69
-    var moveDivider = divider * (trackSize / swiper.size);
70
-    var dragSize;
71
-
72
-    if (swiper.params.scrollbar.dragSize === 'auto') {
73
-      dragSize = trackSize * divider;
74
-    } else {
75
-      dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);
76
-    }
77
-
78
-    if (swiper.isHorizontal()) {
79
-      $dragEl[0].style.width = dragSize + "px";
80
-    } else {
81
-      $dragEl[0].style.height = dragSize + "px";
82
-    }
83
-
84
-    if (divider >= 1) {
85
-      $el[0].style.display = 'none';
86
-    } else {
87
-      $el[0].style.display = '';
88
-    }
89
-
90
-    if (swiper.params.scrollbar.hide) {
91
-      $el[0].style.opacity = 0;
92
-    }
93
-
94
-    extend(scrollbar, {
95
-      trackSize: trackSize,
96
-      divider: divider,
97
-      moveDivider: moveDivider,
98
-      dragSize: dragSize
99
-    });
100
-    scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);
101
-  },
102
-  getPointerPosition: function getPointerPosition(e) {
103
-    var swiper = this;
104
-
105
-    if (swiper.isHorizontal()) {
106
-      return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;
107
-    }
108
-
109
-    return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;
110
-  },
111
-  setDragPosition: function setDragPosition(e) {
112
-    var swiper = this;
113
-    var scrollbar = swiper.scrollbar,
114
-        rtl = swiper.rtlTranslate;
115
-    var $el = scrollbar.$el,
116
-        dragSize = scrollbar.dragSize,
117
-        trackSize = scrollbar.trackSize,
118
-        dragStartPos = scrollbar.dragStartPos;
119
-    var positionRatio;
120
-    positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);
121
-    positionRatio = Math.max(Math.min(positionRatio, 1), 0);
122
-
123
-    if (rtl) {
124
-      positionRatio = 1 - positionRatio;
125
-    }
126
-
127
-    var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;
128
-    swiper.updateProgress(position);
129
-    swiper.setTranslate(position);
130
-    swiper.updateActiveIndex();
131
-    swiper.updateSlidesClasses();
132
-  },
133
-  onDragStart: function onDragStart(e) {
134
-    var swiper = this;
135
-    var params = swiper.params.scrollbar;
136
-    var scrollbar = swiper.scrollbar,
137
-        $wrapperEl = swiper.$wrapperEl;
138
-    var $el = scrollbar.$el,
139
-        $dragEl = scrollbar.$dragEl;
140
-    swiper.scrollbar.isTouched = true;
141
-    swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;
142
-    e.preventDefault();
143
-    e.stopPropagation();
144
-    $wrapperEl.transition(100);
145
-    $dragEl.transition(100);
146
-    scrollbar.setDragPosition(e);
147
-    clearTimeout(swiper.scrollbar.dragTimeout);
148
-    $el.transition(0);
149
-
150
-    if (params.hide) {
151
-      $el.css('opacity', 1);
152
-    }
153
-
154
-    if (swiper.params.cssMode) {
155
-      swiper.$wrapperEl.css('scroll-snap-type', 'none');
156
-    }
157
-
158
-    swiper.emit('scrollbarDragStart', e);
159
-  },
160
-  onDragMove: function onDragMove(e) {
161
-    var swiper = this;
162
-    var scrollbar = swiper.scrollbar,
163
-        $wrapperEl = swiper.$wrapperEl;
164
-    var $el = scrollbar.$el,
165
-        $dragEl = scrollbar.$dragEl;
166
-    if (!swiper.scrollbar.isTouched) return;
167
-    if (e.preventDefault) e.preventDefault();else e.returnValue = false;
168
-    scrollbar.setDragPosition(e);
169
-    $wrapperEl.transition(0);
170
-    $el.transition(0);
171
-    $dragEl.transition(0);
172
-    swiper.emit('scrollbarDragMove', e);
173
-  },
174
-  onDragEnd: function onDragEnd(e) {
175
-    var swiper = this;
176
-    var params = swiper.params.scrollbar;
177
-    var scrollbar = swiper.scrollbar,
178
-        $wrapperEl = swiper.$wrapperEl;
179
-    var $el = scrollbar.$el;
180
-    if (!swiper.scrollbar.isTouched) return;
181
-    swiper.scrollbar.isTouched = false;
182
-
183
-    if (swiper.params.cssMode) {
184
-      swiper.$wrapperEl.css('scroll-snap-type', '');
185
-      $wrapperEl.transition('');
186
-    }
187
-
188
-    if (params.hide) {
189
-      clearTimeout(swiper.scrollbar.dragTimeout);
190
-      swiper.scrollbar.dragTimeout = nextTick(function () {
191
-        $el.css('opacity', 0);
192
-        $el.transition(400);
193
-      }, 1000);
194
-    }
195
-
196
-    swiper.emit('scrollbarDragEnd', e);
197
-
198
-    if (params.snapOnRelease) {
199
-      swiper.slideToClosest();
200
-    }
201
-  },
202
-  enableDraggable: function enableDraggable() {
203
-    var swiper = this;
204
-    if (!swiper.params.scrollbar.el) return;
205
-    var document = getDocument();
206
-    var scrollbar = swiper.scrollbar,
207
-        touchEventsTouch = swiper.touchEventsTouch,
208
-        touchEventsDesktop = swiper.touchEventsDesktop,
209
-        params = swiper.params,
210
-        support = swiper.support;
211
-    var $el = scrollbar.$el;
212
-    var target = $el[0];
213
-    var activeListener = support.passiveListener && params.passiveListeners ? {
214
-      passive: false,
215
-      capture: false
216
-    } : false;
217
-    var passiveListener = support.passiveListener && params.passiveListeners ? {
218
-      passive: true,
219
-      capture: false
220
-    } : false;
221
-    if (!target) return;
222
-
223
-    if (!support.touch) {
224
-      target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);
225
-      document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);
226
-      document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);
227
-    } else {
228
-      target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);
229
-      target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);
230
-      target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);
231
-    }
232
-  },
233
-  disableDraggable: function disableDraggable() {
234
-    var swiper = this;
235
-    if (!swiper.params.scrollbar.el) return;
236
-    var document = getDocument();
237
-    var scrollbar = swiper.scrollbar,
238
-        touchEventsTouch = swiper.touchEventsTouch,
239
-        touchEventsDesktop = swiper.touchEventsDesktop,
240
-        params = swiper.params,
241
-        support = swiper.support;
242
-    var $el = scrollbar.$el;
243
-    var target = $el[0];
244
-    var activeListener = support.passiveListener && params.passiveListeners ? {
245
-      passive: false,
246
-      capture: false
247
-    } : false;
248
-    var passiveListener = support.passiveListener && params.passiveListeners ? {
249
-      passive: true,
250
-      capture: false
251
-    } : false;
252
-    if (!target) return;
253
-
254
-    if (!support.touch) {
255
-      target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);
256
-      document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);
257
-      document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);
258
-    } else {
259
-      target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);
260
-      target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);
261
-      target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);
262
-    }
263
-  },
264
-  init: function init() {
265
-    var swiper = this;
266
-    if (!swiper.params.scrollbar.el) return;
267
-    var scrollbar = swiper.scrollbar,
268
-        $swiperEl = swiper.$el;
269
-    var params = swiper.params.scrollbar;
270
-    var $el = $(params.el);
271
-
272
-    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {
273
-      $el = $swiperEl.find(params.el);
274
-    }
275
-
276
-    var $dragEl = $el.find("." + swiper.params.scrollbar.dragClass);
277
-
278
-    if ($dragEl.length === 0) {
279
-      $dragEl = $("<div class=\"" + swiper.params.scrollbar.dragClass + "\"></div>");
280
-      $el.append($dragEl);
281
-    }
282
-
283
-    extend(scrollbar, {
284
-      $el: $el,
285
-      el: $el[0],
286
-      $dragEl: $dragEl,
287
-      dragEl: $dragEl[0]
288
-    });
289
-
290
-    if (params.draggable) {
291
-      scrollbar.enableDraggable();
292
-    }
293
-  },
294
-  destroy: function destroy() {
295
-    var swiper = this;
296
-    swiper.scrollbar.disableDraggable();
297
-  }
298
-};
299
-export default {
300
-  name: 'scrollbar',
301
-  params: {
302
-    scrollbar: {
303
-      el: null,
304
-      dragSize: 'auto',
305
-      hide: false,
306
-      draggable: false,
307
-      snapOnRelease: true,
308
-      lockClass: 'swiper-scrollbar-lock',
309
-      dragClass: 'swiper-scrollbar-drag'
310
-    }
311
-  },
312
-  create: function create() {
313
-    var swiper = this;
314
-    bindModuleMethods(swiper, {
315
-      scrollbar: _extends({
316
-        isTouched: false,
317
-        timeout: null,
318
-        dragTimeout: null
319
-      }, Scrollbar)
320
-    });
321
-  },
322
-  on: {
323
-    init: function init(swiper) {
324
-      swiper.scrollbar.init();
325
-      swiper.scrollbar.updateSize();
326
-      swiper.scrollbar.setTranslate();
327
-    },
328
-    update: function update(swiper) {
329
-      swiper.scrollbar.updateSize();
330
-    },
331
-    resize: function resize(swiper) {
332
-      swiper.scrollbar.updateSize();
333
-    },
334
-    observerUpdate: function observerUpdate(swiper) {
335
-      swiper.scrollbar.updateSize();
336
-    },
337
-    setTranslate: function setTranslate(swiper) {
338
-      swiper.scrollbar.setTranslate();
339
-    },
340
-    setTransition: function setTransition(swiper, duration) {
341
-      swiper.scrollbar.setTransition(duration);
342
-    },
343
-    destroy: function destroy(swiper) {
344
-      swiper.scrollbar.destroy();
345
-    }
346
-  }
347
-};
348 0
\ No newline at end of file
Browse code

swiper.js version 6.5.0

Benjamin Roth authored on14/03/2021 15:29:46
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,347 @@
1
+function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+import { getDocument } from 'ssr-window';
4
+import $ from '../../utils/dom';
5
+import { extend, nextTick, bindModuleMethods } from '../../utils/utils';
6
+var Scrollbar = {
7
+  setTranslate: function setTranslate() {
8
+    var swiper = this;
9
+    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
10
+    var scrollbar = swiper.scrollbar,
11
+        rtl = swiper.rtlTranslate,
12
+        progress = swiper.progress;
13
+    var dragSize = scrollbar.dragSize,
14
+        trackSize = scrollbar.trackSize,
15
+        $dragEl = scrollbar.$dragEl,
16
+        $el = scrollbar.$el;
17
+    var params = swiper.params.scrollbar;
18
+    var newSize = dragSize;
19
+    var newPos = (trackSize - dragSize) * progress;
20
+
21
+    if (rtl) {
22
+      newPos = -newPos;
23
+
24
+      if (newPos > 0) {
25
+        newSize = dragSize - newPos;
26
+        newPos = 0;
27
+      } else if (-newPos + dragSize > trackSize) {
28
+        newSize = trackSize + newPos;
29
+      }
30
+    } else if (newPos < 0) {
31
+      newSize = dragSize + newPos;
32
+      newPos = 0;
33
+    } else if (newPos + dragSize > trackSize) {
34
+      newSize = trackSize - newPos;
35
+    }
36
+
37
+    if (swiper.isHorizontal()) {
38
+      $dragEl.transform("translate3d(" + newPos + "px, 0, 0)");
39
+      $dragEl[0].style.width = newSize + "px";
40
+    } else {
41
+      $dragEl.transform("translate3d(0px, " + newPos + "px, 0)");
42
+      $dragEl[0].style.height = newSize + "px";
43
+    }
44
+
45
+    if (params.hide) {
46
+      clearTimeout(swiper.scrollbar.timeout);
47
+      $el[0].style.opacity = 1;
48
+      swiper.scrollbar.timeout = setTimeout(function () {
49
+        $el[0].style.opacity = 0;
50
+        $el.transition(400);
51
+      }, 1000);
52
+    }
53
+  },
54
+  setTransition: function setTransition(duration) {
55
+    var swiper = this;
56
+    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
57
+    swiper.scrollbar.$dragEl.transition(duration);
58
+  },
59
+  updateSize: function updateSize() {
60
+    var swiper = this;
61
+    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
62
+    var scrollbar = swiper.scrollbar;
63
+    var $dragEl = scrollbar.$dragEl,
64
+        $el = scrollbar.$el;
65
+    $dragEl[0].style.width = '';
66
+    $dragEl[0].style.height = '';
67
+    var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;
68
+    var divider = swiper.size / swiper.virtualSize;
69
+    var moveDivider = divider * (trackSize / swiper.size);
70
+    var dragSize;
71
+
72
+    if (swiper.params.scrollbar.dragSize === 'auto') {
73
+      dragSize = trackSize * divider;
74
+    } else {
75
+      dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);
76
+    }
77
+
78
+    if (swiper.isHorizontal()) {
79
+      $dragEl[0].style.width = dragSize + "px";
80
+    } else {
81
+      $dragEl[0].style.height = dragSize + "px";
82
+    }
83
+
84
+    if (divider >= 1) {
85
+      $el[0].style.display = 'none';
86
+    } else {
87
+      $el[0].style.display = '';
88
+    }
89
+
90
+    if (swiper.params.scrollbar.hide) {
91
+      $el[0].style.opacity = 0;
92
+    }
93
+
94
+    extend(scrollbar, {
95
+      trackSize: trackSize,
96
+      divider: divider,
97
+      moveDivider: moveDivider,
98
+      dragSize: dragSize
99
+    });
100
+    scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);
101
+  },
102
+  getPointerPosition: function getPointerPosition(e) {
103
+    var swiper = this;
104
+
105
+    if (swiper.isHorizontal()) {
106
+      return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;
107
+    }
108
+
109
+    return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;
110
+  },
111
+  setDragPosition: function setDragPosition(e) {
112
+    var swiper = this;
113
+    var scrollbar = swiper.scrollbar,
114
+        rtl = swiper.rtlTranslate;
115
+    var $el = scrollbar.$el,
116
+        dragSize = scrollbar.dragSize,
117
+        trackSize = scrollbar.trackSize,
118
+        dragStartPos = scrollbar.dragStartPos;
119
+    var positionRatio;
120
+    positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);
121
+    positionRatio = Math.max(Math.min(positionRatio, 1), 0);
122
+
123
+    if (rtl) {
124
+      positionRatio = 1 - positionRatio;
125
+    }
126
+
127
+    var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;
128
+    swiper.updateProgress(position);
129
+    swiper.setTranslate(position);
130
+    swiper.updateActiveIndex();
131
+    swiper.updateSlidesClasses();
132
+  },
133
+  onDragStart: function onDragStart(e) {
134
+    var swiper = this;
135
+    var params = swiper.params.scrollbar;
136
+    var scrollbar = swiper.scrollbar,
137
+        $wrapperEl = swiper.$wrapperEl;
138
+    var $el = scrollbar.$el,
139
+        $dragEl = scrollbar.$dragEl;
140
+    swiper.scrollbar.isTouched = true;
141
+    swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;
142
+    e.preventDefault();
143
+    e.stopPropagation();
144
+    $wrapperEl.transition(100);
145
+    $dragEl.transition(100);
146
+    scrollbar.setDragPosition(e);
147
+    clearTimeout(swiper.scrollbar.dragTimeout);
148
+    $el.transition(0);
149
+
150
+    if (params.hide) {
151
+      $el.css('opacity', 1);
152
+    }
153
+
154
+    if (swiper.params.cssMode) {
155
+      swiper.$wrapperEl.css('scroll-snap-type', 'none');
156
+    }
157
+
158
+    swiper.emit('scrollbarDragStart', e);
159
+  },
160
+  onDragMove: function onDragMove(e) {
161
+    var swiper = this;
162
+    var scrollbar = swiper.scrollbar,
163
+        $wrapperEl = swiper.$wrapperEl;
164
+    var $el = scrollbar.$el,
165
+        $dragEl = scrollbar.$dragEl;
166
+    if (!swiper.scrollbar.isTouched) return;
167
+    if (e.preventDefault) e.preventDefault();else e.returnValue = false;
168
+    scrollbar.setDragPosition(e);
169
+    $wrapperEl.transition(0);
170
+    $el.transition(0);
171
+    $dragEl.transition(0);
172
+    swiper.emit('scrollbarDragMove', e);
173
+  },
174
+  onDragEnd: function onDragEnd(e) {
175
+    var swiper = this;
176
+    var params = swiper.params.scrollbar;
177
+    var scrollbar = swiper.scrollbar,
178
+        $wrapperEl = swiper.$wrapperEl;
179
+    var $el = scrollbar.$el;
180
+    if (!swiper.scrollbar.isTouched) return;
181
+    swiper.scrollbar.isTouched = false;
182
+
183
+    if (swiper.params.cssMode) {
184
+      swiper.$wrapperEl.css('scroll-snap-type', '');
185
+      $wrapperEl.transition('');
186
+    }
187
+
188
+    if (params.hide) {
189
+      clearTimeout(swiper.scrollbar.dragTimeout);
190
+      swiper.scrollbar.dragTimeout = nextTick(function () {
191
+        $el.css('opacity', 0);
192
+        $el.transition(400);
193
+      }, 1000);
194
+    }
195
+
196
+    swiper.emit('scrollbarDragEnd', e);
197
+
198
+    if (params.snapOnRelease) {
199
+      swiper.slideToClosest();
200
+    }
201
+  },
202
+  enableDraggable: function enableDraggable() {
203
+    var swiper = this;
204
+    if (!swiper.params.scrollbar.el) return;
205
+    var document = getDocument();
206
+    var scrollbar = swiper.scrollbar,
207
+        touchEventsTouch = swiper.touchEventsTouch,
208
+        touchEventsDesktop = swiper.touchEventsDesktop,
209
+        params = swiper.params,
210
+        support = swiper.support;
211
+    var $el = scrollbar.$el;
212
+    var target = $el[0];
213
+    var activeListener = support.passiveListener && params.passiveListeners ? {
214
+      passive: false,
215
+      capture: false
216
+    } : false;
217
+    var passiveListener = support.passiveListener && params.passiveListeners ? {
218
+      passive: true,
219
+      capture: false
220
+    } : false;
221
+    if (!target) return;
222
+
223
+    if (!support.touch) {
224
+      target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);
225
+      document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);
226
+      document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);
227
+    } else {
228
+      target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);
229
+      target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);
230
+      target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);
231
+    }
232
+  },
233
+  disableDraggable: function disableDraggable() {
234
+    var swiper = this;
235
+    if (!swiper.params.scrollbar.el) return;
236
+    var document = getDocument();
237
+    var scrollbar = swiper.scrollbar,
238
+        touchEventsTouch = swiper.touchEventsTouch,
239
+        touchEventsDesktop = swiper.touchEventsDesktop,
240
+        params = swiper.params,
241
+        support = swiper.support;
242
+    var $el = scrollbar.$el;
243
+    var target = $el[0];
244
+    var activeListener = support.passiveListener && params.passiveListeners ? {
245
+      passive: false,
246
+      capture: false
247
+    } : false;
248
+    var passiveListener = support.passiveListener && params.passiveListeners ? {
249
+      passive: true,
250
+      capture: false
251
+    } : false;
252
+    if (!target) return;
253
+
254
+    if (!support.touch) {
255
+      target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);
256
+      document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);
257
+      document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);
258
+    } else {
259
+      target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);
260
+      target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);
261
+      target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);
262
+    }
263
+  },
264
+  init: function init() {
265
+    var swiper = this;
266
+    if (!swiper.params.scrollbar.el) return;
267
+    var scrollbar = swiper.scrollbar,
268
+        $swiperEl = swiper.$el;
269
+    var params = swiper.params.scrollbar;
270
+    var $el = $(params.el);
271
+
272
+    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {
273
+      $el = $swiperEl.find(params.el);
274
+    }
275
+
276
+    var $dragEl = $el.find("." + swiper.params.scrollbar.dragClass);
277
+
278
+    if ($dragEl.length === 0) {
279
+      $dragEl = $("<div class=\"" + swiper.params.scrollbar.dragClass + "\"></div>");
280
+      $el.append($dragEl);
281
+    }
282
+
283
+    extend(scrollbar, {
284
+      $el: $el,
285
+      el: $el[0],
286
+      $dragEl: $dragEl,
287
+      dragEl: $dragEl[0]
288
+    });
289
+
290
+    if (params.draggable) {
291
+      scrollbar.enableDraggable();
292
+    }
293
+  },
294
+  destroy: function destroy() {
295
+    var swiper = this;
296
+    swiper.scrollbar.disableDraggable();
297
+  }
298
+};
299
+export default {
300
+  name: 'scrollbar',
301
+  params: {
302
+    scrollbar: {
303
+      el: null,
304
+      dragSize: 'auto',
305
+      hide: false,
306
+      draggable: false,
307
+      snapOnRelease: true,
308
+      lockClass: 'swiper-scrollbar-lock',
309
+      dragClass: 'swiper-scrollbar-drag'
310
+    }
311
+  },
312
+  create: function create() {
313
+    var swiper = this;
314
+    bindModuleMethods(swiper, {
315
+      scrollbar: _extends({
316
+        isTouched: false,
317
+        timeout: null,
318
+        dragTimeout: null
319
+      }, Scrollbar)
320
+    });
321
+  },
322
+  on: {
323
+    init: function init(swiper) {
324
+      swiper.scrollbar.init();
325
+      swiper.scrollbar.updateSize();
326
+      swiper.scrollbar.setTranslate();
327
+    },
328
+    update: function update(swiper) {
329
+      swiper.scrollbar.updateSize();
330
+    },
331
+    resize: function resize(swiper) {
332
+      swiper.scrollbar.updateSize();
333
+    },
334
+    observerUpdate: function observerUpdate(swiper) {
335
+      swiper.scrollbar.updateSize();
336
+    },
337
+    setTranslate: function setTranslate(swiper) {
338
+      swiper.scrollbar.setTranslate();
339
+    },
340
+    setTransition: function setTransition(swiper, duration) {
341
+      swiper.scrollbar.setTransition(duration);
342
+    },
343
+    destroy: function destroy(swiper) {
344
+      swiper.scrollbar.destroy();
345
+    }
346
+  }
347
+};
0 348
\ No newline at end of file