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