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,345 +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
-
222
-    if (!support.touch) {
223
-      target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);
224
-      document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);
225
-      document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);
226
-    } else {
227
-      target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);
228
-      target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);
229
-      target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);
230
-    }
231
-  },
232
-  disableDraggable: function disableDraggable() {
233
-    var swiper = this;
234
-    if (!swiper.params.scrollbar.el) return;
235
-    var document = getDocument();
236
-    var scrollbar = swiper.scrollbar,
237
-        touchEventsTouch = swiper.touchEventsTouch,
238
-        touchEventsDesktop = swiper.touchEventsDesktop,
239
-        params = swiper.params,
240
-        support = swiper.support;
241
-    var $el = scrollbar.$el;
242
-    var target = $el[0];
243
-    var activeListener = support.passiveListener && params.passiveListeners ? {
244
-      passive: false,
245
-      capture: false
246
-    } : false;
247
-    var passiveListener = support.passiveListener && params.passiveListeners ? {
248
-      passive: true,
249
-      capture: false
250
-    } : false;
251
-
252
-    if (!support.touch) {
253
-      target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);
254
-      document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);
255
-      document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);
256
-    } else {
257
-      target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);
258
-      target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);
259
-      target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);
260
-    }
261
-  },
262
-  init: function init() {
263
-    var swiper = this;
264
-    if (!swiper.params.scrollbar.el) return;
265
-    var scrollbar = swiper.scrollbar,
266
-        $swiperEl = swiper.$el;
267
-    var params = swiper.params.scrollbar;
268
-    var $el = $(params.el);
269
-
270
-    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {
271
-      $el = $swiperEl.find(params.el);
272
-    }
273
-
274
-    var $dragEl = $el.find("." + swiper.params.scrollbar.dragClass);
275
-
276
-    if ($dragEl.length === 0) {
277
-      $dragEl = $("<div class=\"" + swiper.params.scrollbar.dragClass + "\"></div>");
278
-      $el.append($dragEl);
279
-    }
280
-
281
-    extend(scrollbar, {
282
-      $el: $el,
283
-      el: $el[0],
284
-      $dragEl: $dragEl,
285
-      dragEl: $dragEl[0]
286
-    });
287
-
288
-    if (params.draggable) {
289
-      scrollbar.enableDraggable();
290
-    }
291
-  },
292
-  destroy: function destroy() {
293
-    var swiper = this;
294
-    swiper.scrollbar.disableDraggable();
295
-  }
296
-};
297
-export default {
298
-  name: 'scrollbar',
299
-  params: {
300
-    scrollbar: {
301
-      el: null,
302
-      dragSize: 'auto',
303
-      hide: false,
304
-      draggable: false,
305
-      snapOnRelease: true,
306
-      lockClass: 'swiper-scrollbar-lock',
307
-      dragClass: 'swiper-scrollbar-drag'
308
-    }
309
-  },
310
-  create: function create() {
311
-    var swiper = this;
312
-    bindModuleMethods(swiper, {
313
-      scrollbar: _extends({
314
-        isTouched: false,
315
-        timeout: null,
316
-        dragTimeout: null
317
-      }, Scrollbar)
318
-    });
319
-  },
320
-  on: {
321
-    init: function init(swiper) {
322
-      swiper.scrollbar.init();
323
-      swiper.scrollbar.updateSize();
324
-      swiper.scrollbar.setTranslate();
325
-    },
326
-    update: function update(swiper) {
327
-      swiper.scrollbar.updateSize();
328
-    },
329
-    resize: function resize(swiper) {
330
-      swiper.scrollbar.updateSize();
331
-    },
332
-    observerUpdate: function observerUpdate(swiper) {
333
-      swiper.scrollbar.updateSize();
334
-    },
335
-    setTranslate: function setTranslate(swiper) {
336
-      swiper.scrollbar.setTranslate();
337
-    },
338
-    setTransition: function setTransition(swiper, duration) {
339
-      swiper.scrollbar.setTransition(duration);
340
-    },
341
-    destroy: function destroy(swiper) {
342
-      swiper.scrollbar.destroy();
343
-    }
344
-  }
345
-};
346 0
\ No newline at end of file
Browse code

swiper.js version 6.4.5

Benjamin Roth authored on17/01/2021 16:24:34
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,345 @@
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
+
222
+    if (!support.touch) {
223
+      target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);
224
+      document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);
225
+      document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);
226
+    } else {
227
+      target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);
228
+      target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);
229
+      target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);
230
+    }
231
+  },
232
+  disableDraggable: function disableDraggable() {
233
+    var swiper = this;
234
+    if (!swiper.params.scrollbar.el) return;
235
+    var document = getDocument();
236
+    var scrollbar = swiper.scrollbar,
237
+        touchEventsTouch = swiper.touchEventsTouch,
238
+        touchEventsDesktop = swiper.touchEventsDesktop,
239
+        params = swiper.params,
240
+        support = swiper.support;
241
+    var $el = scrollbar.$el;
242
+    var target = $el[0];
243
+    var activeListener = support.passiveListener && params.passiveListeners ? {
244
+      passive: false,
245
+      capture: false
246
+    } : false;
247
+    var passiveListener = support.passiveListener && params.passiveListeners ? {
248
+      passive: true,
249
+      capture: false
250
+    } : false;
251
+
252
+    if (!support.touch) {
253
+      target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);
254
+      document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);
255
+      document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);
256
+    } else {
257
+      target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);
258
+      target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);
259
+      target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);
260
+    }
261
+  },
262
+  init: function init() {
263
+    var swiper = this;
264
+    if (!swiper.params.scrollbar.el) return;
265
+    var scrollbar = swiper.scrollbar,
266
+        $swiperEl = swiper.$el;
267
+    var params = swiper.params.scrollbar;
268
+    var $el = $(params.el);
269
+
270
+    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {
271
+      $el = $swiperEl.find(params.el);
272
+    }
273
+
274
+    var $dragEl = $el.find("." + swiper.params.scrollbar.dragClass);
275
+
276
+    if ($dragEl.length === 0) {
277
+      $dragEl = $("<div class=\"" + swiper.params.scrollbar.dragClass + "\"></div>");
278
+      $el.append($dragEl);
279
+    }
280
+
281
+    extend(scrollbar, {
282
+      $el: $el,
283
+      el: $el[0],
284
+      $dragEl: $dragEl,
285
+      dragEl: $dragEl[0]
286
+    });
287
+
288
+    if (params.draggable) {
289
+      scrollbar.enableDraggable();
290
+    }
291
+  },
292
+  destroy: function destroy() {
293
+    var swiper = this;
294
+    swiper.scrollbar.disableDraggable();
295
+  }
296
+};
297
+export default {
298
+  name: 'scrollbar',
299
+  params: {
300
+    scrollbar: {
301
+      el: null,
302
+      dragSize: 'auto',
303
+      hide: false,
304
+      draggable: false,
305
+      snapOnRelease: true,
306
+      lockClass: 'swiper-scrollbar-lock',
307
+      dragClass: 'swiper-scrollbar-drag'
308
+    }
309
+  },
310
+  create: function create() {
311
+    var swiper = this;
312
+    bindModuleMethods(swiper, {
313
+      scrollbar: _extends({
314
+        isTouched: false,
315
+        timeout: null,
316
+        dragTimeout: null
317
+      }, Scrollbar)
318
+    });
319
+  },
320
+  on: {
321
+    init: function init(swiper) {
322
+      swiper.scrollbar.init();
323
+      swiper.scrollbar.updateSize();
324
+      swiper.scrollbar.setTranslate();
325
+    },
326
+    update: function update(swiper) {
327
+      swiper.scrollbar.updateSize();
328
+    },
329
+    resize: function resize(swiper) {
330
+      swiper.scrollbar.updateSize();
331
+    },
332
+    observerUpdate: function observerUpdate(swiper) {
333
+      swiper.scrollbar.updateSize();
334
+    },
335
+    setTranslate: function setTranslate(swiper) {
336
+      swiper.scrollbar.setTranslate();
337
+    },
338
+    setTransition: function setTransition(swiper, duration) {
339
+      swiper.scrollbar.setTransition(duration);
340
+    },
341
+    destroy: function destroy(swiper) {
342
+      swiper.scrollbar.destroy();
343
+    }
344
+  }
345
+};
0 346
\ No newline at end of file