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