react-slideshow-image 4.2.1 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,14 +13,12 @@ function _extends() {
13
13
  _extends = Object.assign ? Object.assign.bind() : function (target) {
14
14
  for (var i = 1; i < arguments.length; i++) {
15
15
  var source = arguments[i];
16
-
17
16
  for (var key in source) {
18
17
  if (Object.prototype.hasOwnProperty.call(source, key)) {
19
18
  target[key] = source[key];
20
19
  }
21
20
  }
22
21
  }
23
-
24
22
  return target;
25
23
  };
26
24
  return _extends.apply(this, arguments);
@@ -30,7 +28,6 @@ var getStartingIndex = function getStartingIndex(children, defaultIndex) {
30
28
  if (defaultIndex && defaultIndex < React__default.Children.count(children)) {
31
29
  return defaultIndex;
32
30
  }
33
-
34
31
  return 0;
35
32
  };
36
33
  var getResponsiveSettings = function getResponsiveSettings(wrapperWidth, responsive) {
@@ -39,7 +36,6 @@ var getResponsiveSettings = function getResponsiveSettings(wrapperWidth, respons
39
36
  return each.breakpoint <= wrapperWidth;
40
37
  });
41
38
  }
42
-
43
39
  return;
44
40
  };
45
41
  var EASING_METHODS = {
@@ -55,12 +51,11 @@ var getEasing = function getEasing(easeMethod) {
55
51
  if (easeMethod) {
56
52
  return EASING_METHODS[easeMethod];
57
53
  }
58
-
59
54
  return EASING_METHODS.linear;
60
55
  };
61
56
  var showPreviousArrow = function showPreviousArrow(_ref, currentIndex, moveSlides) {
62
57
  var prevArrow = _ref.prevArrow,
63
- infinite = _ref.infinite;
58
+ infinite = _ref.infinite;
64
59
  var isDisabled = currentIndex <= 0 && !infinite;
65
60
  var props = {
66
61
  'data-type': 'prev',
@@ -68,13 +63,11 @@ var showPreviousArrow = function showPreviousArrow(_ref, currentIndex, moveSlide
68
63
  disabled: isDisabled,
69
64
  onClick: moveSlides
70
65
  };
71
-
72
66
  if (prevArrow) {
73
67
  return /*#__PURE__*/React__default.cloneElement(prevArrow, _extends({
74
68
  className: (prevArrow.props.className || '') + " nav " + (isDisabled ? 'disabled' : '')
75
69
  }, props));
76
70
  }
77
-
78
71
  var className = "nav default-nav " + (isDisabled ? 'disabled' : '');
79
72
  return /*#__PURE__*/React__default.createElement("button", Object.assign({
80
73
  type: "button",
@@ -89,14 +82,12 @@ var showPreviousArrow = function showPreviousArrow(_ref, currentIndex, moveSlide
89
82
  };
90
83
  var showNextArrow = function showNextArrow(properties, currentIndex, moveSlides) {
91
84
  var nextArrow = properties.nextArrow,
92
- infinite = properties.infinite,
93
- children = properties.children;
85
+ infinite = properties.infinite,
86
+ children = properties.children;
94
87
  var slidesToScroll = 1;
95
-
96
88
  if ('slidesToScroll' in properties) {
97
89
  slidesToScroll = properties.slidesToScroll || 1;
98
90
  }
99
-
100
91
  var isDisabled = currentIndex >= React__default.Children.count(children) - slidesToScroll && !infinite;
101
92
  var props = {
102
93
  'data-type': 'next',
@@ -104,13 +95,11 @@ var showNextArrow = function showNextArrow(properties, currentIndex, moveSlides)
104
95
  disabled: isDisabled,
105
96
  onClick: moveSlides
106
97
  };
107
-
108
98
  if (nextArrow) {
109
99
  return /*#__PURE__*/React__default.cloneElement(nextArrow, _extends({
110
100
  className: (nextArrow.props.className || '') + " nav " + (isDisabled ? 'disabled' : '')
111
101
  }, props));
112
102
  }
113
-
114
103
  var className = "nav default-nav " + (isDisabled ? 'disabled' : '');
115
104
  return /*#__PURE__*/React__default.createElement("button", Object.assign({
116
105
  type: "button",
@@ -123,7 +112,6 @@ var showNextArrow = function showNextArrow(properties, currentIndex, moveSlides)
123
112
  d: "M5 3l3.057-3 11.943 12-11.943 12-3.057-3 9-9z"
124
113
  })));
125
114
  };
126
-
127
115
  var showDefaultIndicator = function showDefaultIndicator(isCurrentPageActive, key, indicatorProps) {
128
116
  return /*#__PURE__*/React__default.createElement("li", {
129
117
  key: key
@@ -132,25 +120,21 @@ var showDefaultIndicator = function showDefaultIndicator(isCurrentPageActive, ke
132
120
  className: "each-slideshow-indicator " + (isCurrentPageActive ? 'active' : '')
133
121
  }, indicatorProps)));
134
122
  };
135
-
136
123
  var showCustomIndicator = function showCustomIndicator(isCurrentPageActive, key, indicatorProps, eachIndicator) {
137
124
  return /*#__PURE__*/React__default.cloneElement(eachIndicator, _extends({
138
125
  className: eachIndicator.props.className + " " + (isCurrentPageActive ? 'active' : ''),
139
126
  key: key
140
127
  }, indicatorProps));
141
128
  };
142
-
143
129
  var showIndicators = function showIndicators(props, currentIndex, navigate, responsiveSettings) {
144
130
  var children = props.children,
145
- indicators = props.indicators;
131
+ indicators = props.indicators;
146
132
  var slidesToScroll = 1;
147
-
148
133
  if (responsiveSettings) {
149
134
  slidesToScroll = responsiveSettings == null ? void 0 : responsiveSettings.settings.slidesToScroll;
150
135
  } else if ('slidesToScroll' in props) {
151
136
  slidesToScroll = props.slidesToScroll || 1;
152
137
  }
153
-
154
138
  var pages = Math.ceil(React__default.Children.count(children) / slidesToScroll);
155
139
  return /*#__PURE__*/React__default.createElement("ul", {
156
140
  className: "indicators"
@@ -163,11 +147,9 @@ var showIndicators = function showIndicators(props, currentIndex, navigate, resp
163
147
  onClick: navigate
164
148
  };
165
149
  var isCurrentPageActive = Math.floor((currentIndex + slidesToScroll - 1) / slidesToScroll) === key;
166
-
167
150
  if (typeof indicators === 'function') {
168
151
  return showCustomIndicator(isCurrentPageActive, key, indicatorProps, indicators(key));
169
152
  }
170
-
171
153
  return showDefaultIndicator(isCurrentPageActive, key, indicatorProps);
172
154
  }));
173
155
  };
@@ -189,9 +171,8 @@ var defaultProps = {
189
171
 
190
172
  var FadeZoom = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
191
173
  var _useState = React.useState(getStartingIndex(props.children, props.defaultIndex)),
192
- index = _useState[0],
193
- setIndex = _useState[1];
194
-
174
+ index = _useState[0],
175
+ setIndex = _useState[1];
195
176
  var wrapperRef = React.useRef(null);
196
177
  var innerWrapperRef = React.useRef(null);
197
178
  var tweenGroup = React.useRef(new tween_js.Group());
@@ -205,10 +186,8 @@ var FadeZoom = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
205
186
  var wrapperWidth = wrapperRef.current.clientWidth;
206
187
  var fullwidth = wrapperWidth * childrenCount;
207
188
  innerWrapperRef.current.style.width = fullwidth + "px";
208
-
209
189
  for (var _index = 0; _index < innerWrapperRef.current.children.length; _index++) {
210
190
  var eachDiv = innerWrapperRef.current.children[_index];
211
-
212
191
  if (eachDiv) {
213
192
  eachDiv.style.width = wrapperWidth + "px";
214
193
  eachDiv.style.left = _index * -wrapperWidth + "px";
@@ -228,14 +207,13 @@ var FadeZoom = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
228
207
  }, [wrapperRef, applyStyle]);
229
208
  var play = React.useCallback(function () {
230
209
  var autoplay = props.autoplay,
231
- children = props.children,
232
- duration = props.duration,
233
- infinite = props.infinite;
234
-
210
+ children = props.children,
211
+ duration = props.duration,
212
+ infinite = props.infinite;
235
213
  if (autoplay && React__default.Children.count(children) > 1 && (infinite || index < React__default.Children.count(children) - 1)) {
236
214
  timeout.current = setTimeout(moveNext, duration);
237
- } // eslint-disable-next-line react-hooks/exhaustive-deps
238
-
215
+ }
216
+ // eslint-disable-next-line react-hooks/exhaustive-deps
239
217
  }, [props, index]);
240
218
  React.useEffect(function () {
241
219
  initResizeObserver();
@@ -269,78 +247,61 @@ var FadeZoom = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
269
247
  }
270
248
  };
271
249
  });
272
-
273
250
  var removeResizeObserver = function removeResizeObserver() {
274
251
  if (resizeObserver.current && wrapperRef.current) {
275
252
  resizeObserver.current.unobserve(wrapperRef.current);
276
253
  }
277
254
  };
278
-
279
255
  var pauseSlides = function pauseSlides() {
280
256
  if (props.pauseOnHover) {
281
257
  clearTimeout(timeout.current);
282
258
  }
283
259
  };
284
-
285
260
  var startSlides = function startSlides() {
286
261
  var pauseOnHover = props.pauseOnHover,
287
- autoplay = props.autoplay,
288
- duration = props.duration;
289
-
262
+ autoplay = props.autoplay,
263
+ duration = props.duration;
290
264
  if (pauseOnHover && autoplay) {
291
265
  timeout.current = setTimeout(function () {
292
266
  return moveNext();
293
267
  }, duration);
294
268
  }
295
269
  };
296
-
297
270
  var moveNext = function moveNext() {
298
271
  var children = props.children,
299
- infinite = props.infinite;
300
-
272
+ infinite = props.infinite;
301
273
  if (!infinite && index === React__default.Children.count(children) - 1) {
302
274
  return;
303
275
  }
304
-
305
276
  transitionSlide((index + 1) % React__default.Children.count(children));
306
277
  };
307
-
308
278
  var moveBack = function moveBack() {
309
279
  var children = props.children,
310
- infinite = props.infinite;
311
-
280
+ infinite = props.infinite;
312
281
  if (!infinite && index === 0) {
313
282
  return;
314
283
  }
315
-
316
284
  transitionSlide(index === 0 ? React__default.Children.count(children) - 1 : index - 1);
317
285
  };
318
-
319
286
  var preTransition = function preTransition(event) {
320
287
  var currentTarget = event.currentTarget;
321
-
322
288
  if (currentTarget.dataset.type === 'prev') {
323
289
  moveBack();
324
290
  } else {
325
291
  moveNext();
326
292
  }
327
293
  };
328
-
329
294
  var animate = function animate() {
330
295
  requestAnimationFrame(animate);
331
296
  tweenGroup.current.update();
332
297
  };
333
-
334
298
  var transitionSlide = function transitionSlide(newIndex) {
335
299
  var existingTweens = tweenGroup.current.getAll();
336
-
337
300
  if (!existingTweens.length) {
338
301
  var _innerWrapperRef$curr;
339
-
340
302
  if (!((_innerWrapperRef$curr = innerWrapperRef.current) != null && _innerWrapperRef$curr.children[newIndex])) {
341
303
  newIndex = 0;
342
304
  }
343
-
344
305
  clearTimeout(timeout.current);
345
306
  var value = {
346
307
  opacity: 0,
@@ -354,7 +315,6 @@ var FadeZoom = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
354
315
  if (!innerWrapperRef.current) {
355
316
  return;
356
317
  }
357
-
358
318
  innerWrapperRef.current.children[newIndex].style.opacity = value.opacity;
359
319
  innerWrapperRef.current.children[index].style.opacity = 1 - value.opacity;
360
320
  innerWrapperRef.current.children[index].style.transform = "scale(" + value.scale + ")";
@@ -370,7 +330,6 @@ var FadeZoom = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
370
330
  setIndex(newIndex);
371
331
  innerWrapperRef.current.children[index].style.transform = "scale(1)";
372
332
  }
373
-
374
333
  if (typeof props.onChange === 'function') {
375
334
  props.onChange(index, newIndex);
376
335
  }
@@ -378,25 +337,20 @@ var FadeZoom = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
378
337
  tween.start();
379
338
  }
380
339
  };
381
-
382
340
  var moveTo = function moveTo(gotoIndex) {
383
341
  if (gotoIndex !== index) {
384
342
  transitionSlide(gotoIndex);
385
343
  }
386
344
  };
387
-
388
345
  var navigate = function navigate(event) {
389
346
  var currentTarget = event.currentTarget;
390
-
391
347
  if (!currentTarget.dataset.key) {
392
348
  return;
393
349
  }
394
-
395
350
  if (parseInt(currentTarget.dataset.key) !== index) {
396
351
  moveTo(parseInt(currentTarget.dataset.key));
397
352
  }
398
353
  };
399
-
400
354
  return /*#__PURE__*/React__default.createElement("div", {
401
355
  dir: "ltr",
402
356
  "aria-roledescription": "carousel"
@@ -445,81 +399,83 @@ Zoom.defaultProps = defaultProps;
445
399
 
446
400
  var Slide = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
447
401
  var _useState = React.useState(getStartingIndex(props.children, props.defaultIndex)),
448
- index = _useState[0],
449
- setIndex = _useState[1];
450
-
402
+ index = _useState[0],
403
+ setIndex = _useState[1];
451
404
  var _useState2 = React.useState(0),
452
- wrapperWidth = _useState2[0],
453
- setWrapperWidth = _useState2[1];
454
-
405
+ wrapperSize = _useState2[0],
406
+ setWrapperSize = _useState2[1];
455
407
  var wrapperRef = React.useRef(null);
456
408
  var innerWrapperRef = React.useRef(null);
457
409
  var tweenGroup = React.useRef(new tween_js.Group());
458
410
  var responsiveSettings = React.useMemo(function () {
459
- return getResponsiveSettings(wrapperWidth, props.responsive);
460
- }, [wrapperWidth, props.responsive]);
411
+ return getResponsiveSettings(wrapperSize, props.responsive);
412
+ }, [wrapperSize, props.responsive]);
461
413
  var slidesToScroll = React.useMemo(function () {
462
414
  if (responsiveSettings) {
463
415
  return responsiveSettings.settings.slidesToScroll;
464
416
  }
465
-
466
417
  return props.slidesToScroll || 1;
467
418
  }, [responsiveSettings, props.slidesToScroll]);
468
419
  var slidesToShow = React.useMemo(function () {
469
420
  if (responsiveSettings) {
470
421
  return responsiveSettings.settings.slidesToShow;
471
422
  }
472
-
473
423
  return props.slidesToShow || 1;
474
424
  }, [responsiveSettings, props.slidesToShow]);
475
425
  var childrenCount = React.useMemo(function () {
476
426
  return React__default.Children.count(props.children);
477
427
  }, [props.children]);
478
- var eachChildWidth = React.useMemo(function () {
479
- return wrapperWidth / slidesToShow;
480
- }, [wrapperWidth, slidesToShow]);
428
+ var eachChildSize = React.useMemo(function () {
429
+ return wrapperSize / slidesToShow;
430
+ }, [wrapperSize, slidesToShow]);
481
431
  var timeout = React.useRef();
482
432
  var resizeObserver = React.useRef();
483
- var startingClientX;
433
+ var startingSwipePosition;
484
434
  var dragging = false;
485
435
  var distanceSwiped = 0;
436
+ var translateType = props.vertical ? 'translateY' : 'translateX';
437
+ var swipeAttributeType = props.vertical ? 'clientY' : 'clientX';
438
+ var swipePageAttributeType = props.vertical ? 'pageY' : 'pageX';
486
439
  var applyStyle = React.useCallback(function () {
487
440
  if (innerWrapperRef.current) {
488
- var fullwidth = wrapperWidth * innerWrapperRef.current.children.length;
489
- innerWrapperRef.current.style.width = fullwidth + "px";
490
-
441
+ var fullSize = wrapperSize * innerWrapperRef.current.children.length;
442
+ var attribute = props.vertical ? 'height' : 'width';
443
+ innerWrapperRef.current.style[attribute] = fullSize + "px";
444
+ if (props.vertical && wrapperRef.current) {
445
+ wrapperRef.current.style[attribute] = wrapperSize + "px";
446
+ }
491
447
  for (var _index = 0; _index < innerWrapperRef.current.children.length; _index++) {
492
448
  var eachDiv = innerWrapperRef.current.children[_index];
493
-
494
449
  if (eachDiv) {
495
- eachDiv.style.width = eachChildWidth + "px";
450
+ if (!props.vertical) {
451
+ eachDiv.style[attribute] = eachChildSize + "px";
452
+ }
496
453
  eachDiv.style.display = "block";
497
454
  }
498
455
  }
499
456
  }
500
- }, [wrapperWidth, eachChildWidth]);
457
+ }, [wrapperSize, eachChildSize]);
501
458
  var initResizeObserver = React.useCallback(function () {
502
459
  if (wrapperRef.current) {
503
460
  resizeObserver.current = new ResizeObserver(function (entries) {
504
461
  if (!entries) return;
505
- setWidth();
462
+ setSize();
506
463
  });
507
464
  resizeObserver.current.observe(wrapperRef.current);
508
465
  }
509
466
  }, [wrapperRef]);
510
467
  var play = React.useCallback(function () {
511
468
  var autoplay = props.autoplay,
512
- infinite = props.infinite,
513
- duration = props.duration;
514
-
469
+ infinite = props.infinite,
470
+ duration = props.duration;
515
471
  if (autoplay && (infinite || index < childrenCount - 1)) {
516
472
  timeout.current = setTimeout(moveNext, duration);
517
- } // eslint-disable-next-line react-hooks/exhaustive-deps
518
-
473
+ }
474
+ // eslint-disable-next-line react-hooks/exhaustive-deps
519
475
  }, [props, childrenCount, index]);
520
476
  React.useEffect(function () {
521
477
  applyStyle();
522
- }, [wrapperWidth, applyStyle]);
478
+ }, [wrapperSize, applyStyle]);
523
479
  React.useEffect(function () {
524
480
  initResizeObserver();
525
481
  return function () {
@@ -531,7 +487,7 @@ var Slide = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
531
487
  React.useEffect(function () {
532
488
  clearTimeout(timeout.current);
533
489
  play();
534
- }, [index, wrapperWidth, props.autoplay, play]);
490
+ }, [index, wrapperSize, props.autoplay, play]);
535
491
  React.useImperativeHandle(ref, function () {
536
492
  return {
537
493
  goNext: function goNext() {
@@ -549,102 +505,80 @@ var Slide = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
549
505
  }
550
506
  };
551
507
  });
552
-
553
508
  var removeResizeObserver = function removeResizeObserver() {
554
509
  if (resizeObserver && wrapperRef.current) {
555
510
  resizeObserver.current.unobserve(wrapperRef.current);
556
511
  }
557
512
  };
558
-
559
513
  var pauseSlides = function pauseSlides() {
560
514
  if (props.pauseOnHover) {
561
515
  clearTimeout(timeout.current);
562
516
  }
563
517
  };
564
-
565
518
  var swipe = function swipe(event) {
566
519
  if (props.canSwipe && dragging) {
567
- var clientX;
568
-
520
+ var position;
569
521
  if (window.TouchEvent && event.nativeEvent instanceof TouchEvent) {
570
- clientX = event.nativeEvent.touches[0].pageX;
571
- } else if (event.nativeEvent instanceof MouseEvent) {
572
- clientX = event.nativeEvent.clientX;
522
+ position = event.nativeEvent.touches[0][swipePageAttributeType];
523
+ } else {
524
+ position = event.nativeEvent[swipeAttributeType];
573
525
  }
574
-
575
- if (clientX && startingClientX) {
576
- var translateValue = eachChildWidth * (index + getOffset());
577
- var distance = clientX - startingClientX;
578
-
526
+ if (position && startingSwipePosition) {
527
+ var translateValue = eachChildSize * (index + getOffset());
528
+ var distance = position - startingSwipePosition;
579
529
  if (!props.infinite && index === childrenCount - slidesToScroll && distance < 0) {
580
530
  // if it is the last and infinite is false and you're swiping left
581
531
  // then nothing happens
582
532
  return;
583
533
  }
584
-
585
534
  if (!props.infinite && index === 0 && distance > 0) {
586
535
  // if it is the first and infinite is false and you're swiping right
587
536
  // then nothing happens
588
537
  return;
589
538
  }
590
-
591
539
  distanceSwiped = distance;
592
540
  translateValue -= distanceSwiped;
593
- innerWrapperRef.current.style.transform = "translate(-" + translateValue + "px)";
541
+ innerWrapperRef.current.style.transform = translateType + "(-" + translateValue + "px)";
594
542
  }
595
543
  }
596
544
  };
597
-
598
545
  var moveNext = function moveNext() {
599
546
  if (!props.infinite && index === childrenCount - slidesToScroll) {
600
547
  return;
601
548
  }
602
-
603
549
  var nextIndex = calculateIndex(index + slidesToScroll);
604
550
  transitionSlide(nextIndex);
605
551
  };
606
-
607
552
  var moveBack = function moveBack() {
608
553
  if (!props.infinite && index === 0) {
609
554
  return;
610
555
  }
611
-
612
556
  var previousIndex = index - slidesToScroll;
613
-
614
557
  if (previousIndex % slidesToScroll) {
615
558
  previousIndex = Math.ceil(previousIndex / slidesToScroll) * slidesToScroll;
616
559
  }
617
-
618
560
  transitionSlide(previousIndex);
619
561
  };
620
-
621
562
  var goToSlide = function goToSlide(_ref) {
622
563
  var currentTarget = _ref.currentTarget;
623
-
624
564
  if (!currentTarget.dataset.key) {
625
565
  return;
626
566
  }
627
-
628
567
  var datasetKey = parseInt(currentTarget.dataset.key);
629
568
  moveTo(datasetKey * slidesToScroll);
630
569
  };
631
-
632
570
  var moveTo = function moveTo(index) {
633
571
  transitionSlide(calculateIndex(index));
634
572
  };
635
-
636
573
  var calculateIndex = function calculateIndex(nextIndex) {
637
574
  if (nextIndex < childrenCount && nextIndex + slidesToScroll > childrenCount) {
638
575
  if ((childrenCount - slidesToScroll) % slidesToScroll) {
639
576
  return childrenCount - slidesToScroll;
640
577
  }
641
-
642
578
  return nextIndex;
643
579
  }
644
-
645
580
  return nextIndex;
646
581
  };
647
-
648
582
  var startSlides = function startSlides() {
649
583
  if (dragging) {
650
584
  endSwipe();
@@ -652,17 +586,14 @@ var Slide = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
652
586
  timeout.current = setTimeout(moveNext, props.duration);
653
587
  }
654
588
  };
655
-
656
589
  var moveSlides = function moveSlides(_ref2) {
657
590
  var dataset = _ref2.currentTarget.dataset;
658
-
659
591
  if (dataset.type === 'next') {
660
592
  moveNext();
661
593
  } else {
662
594
  moveBack();
663
595
  }
664
596
  };
665
-
666
597
  var renderPreceedingSlides = function renderPreceedingSlides() {
667
598
  return React__default.Children.toArray(props.children).slice(-slidesToShow).map(function (each, index) {
668
599
  return /*#__PURE__*/React__default.createElement("div", {
@@ -673,12 +604,10 @@ var Slide = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
673
604
  }, each);
674
605
  });
675
606
  };
676
-
677
607
  var renderTrailingSlides = function renderTrailingSlides() {
678
608
  if (!props.infinite && slidesToShow === slidesToScroll) {
679
609
  return;
680
610
  }
681
-
682
611
  return React__default.Children.toArray(props.children).slice(0, slidesToShow).map(function (each, index) {
683
612
  return /*#__PURE__*/React__default.createElement("div", {
684
613
  "data-index": childrenCount + index,
@@ -688,31 +617,33 @@ var Slide = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
688
617
  }, each);
689
618
  });
690
619
  };
691
-
692
- var setWidth = function setWidth() {
693
- if (wrapperRef.current) {
694
- setWrapperWidth(wrapperRef.current.clientWidth);
620
+ var setSize = function setSize() {
621
+ var attribute = props.vertical ? 'clientHeight' : 'clientWidth';
622
+ if (props.vertical) {
623
+ if (innerWrapperRef.current) {
624
+ setWrapperSize(innerWrapperRef.current.children[0][attribute]);
625
+ }
626
+ } else {
627
+ if (wrapperRef.current) {
628
+ setWrapperSize(wrapperRef.current[attribute]);
629
+ }
695
630
  }
696
631
  };
697
-
698
632
  var startSwipe = function startSwipe(event) {
699
633
  if (props.canSwipe) {
700
634
  if (window.TouchEvent && event.nativeEvent instanceof TouchEvent) {
701
- startingClientX = event.nativeEvent.touches[0].pageX;
702
- } else if (event.nativeEvent instanceof MouseEvent) {
703
- startingClientX = event.nativeEvent.clientX;
635
+ startingSwipePosition = event.nativeEvent.touches[0][swipePageAttributeType];
636
+ } else {
637
+ startingSwipePosition = event.nativeEvent[swipeAttributeType];
704
638
  }
705
-
706
639
  clearTimeout(timeout.current);
707
640
  dragging = true;
708
641
  }
709
642
  };
710
-
711
643
  var endSwipe = function endSwipe() {
712
644
  if (props.canSwipe) {
713
645
  dragging = false;
714
-
715
- if (Math.abs(distanceSwiped) / wrapperWidth > 0.2) {
646
+ if (Math.abs(distanceSwiped) / wrapperSize > 0.2) {
716
647
  if (distanceSwiped < 0) {
717
648
  moveNext();
718
649
  } else {
@@ -725,45 +656,39 @@ var Slide = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
725
656
  }
726
657
  }
727
658
  };
728
-
729
659
  var animate = function animate() {
730
660
  requestAnimationFrame(animate);
731
661
  tweenGroup.current.update();
732
662
  };
733
-
734
663
  var transitionSlide = function transitionSlide(toIndex, animationDuration) {
735
664
  var transitionDuration = animationDuration || props.transitionDuration;
736
665
  var currentIndex = index;
737
666
  var existingTweens = tweenGroup.current.getAll();
738
-
739
667
  if (!wrapperRef.current) {
740
668
  return;
741
669
  }
742
-
743
- var childWidth = wrapperRef.current.clientWidth / slidesToShow;
744
-
670
+ var attribute = props.vertical ? 'clientHeight' : 'clientWidth';
671
+ var childSize = wrapperRef.current[attribute] / slidesToShow;
745
672
  if (!existingTweens.length) {
746
673
  clearTimeout(timeout.current);
747
674
  var value = {
748
- margin: -childWidth * (currentIndex + getOffset()) + distanceSwiped
675
+ margin: -childSize * (currentIndex + getOffset()) + distanceSwiped
749
676
  };
750
677
  var tween = new tween_js.Tween(value, tweenGroup.current).to({
751
- margin: -childWidth * (toIndex + getOffset())
678
+ margin: -childSize * (toIndex + getOffset())
752
679
  }, transitionDuration).onUpdate(function (value) {
753
680
  if (innerWrapperRef.current) {
754
- innerWrapperRef.current.style.transform = "translate(" + value.margin + "px)";
681
+ innerWrapperRef.current.style.transform = translateType + "(" + value.margin + "px)";
755
682
  }
756
683
  });
757
684
  tween.easing(getEasing(props.easing));
758
685
  animate();
759
686
  var newIndex = toIndex;
760
-
761
687
  if (newIndex < 0) {
762
688
  newIndex = childrenCount - slidesToScroll;
763
689
  } else if (newIndex >= childrenCount) {
764
690
  newIndex = 0;
765
691
  }
766
-
767
692
  tween.onStart(function () {
768
693
  if (typeof props.onStartChange === 'function') {
769
694
  props.onStartChange(index, newIndex);
@@ -771,31 +696,25 @@ var Slide = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
771
696
  });
772
697
  tween.onComplete(function () {
773
698
  distanceSwiped = 0;
774
-
775
699
  if (typeof props.onChange === 'function') {
776
700
  props.onChange(index, newIndex);
777
701
  }
778
-
779
702
  setIndex(newIndex);
780
703
  });
781
704
  tween.start();
782
705
  }
783
706
  };
784
-
785
707
  var isSlideActive = function isSlideActive(key) {
786
708
  return key < index + slidesToShow && key >= index;
787
709
  };
788
-
789
710
  var getOffset = function getOffset() {
790
711
  if (!props.infinite) {
791
712
  return 0;
792
713
  }
793
-
794
714
  return slidesToShow;
795
715
  };
796
-
797
716
  var style = {
798
- transform: "translate(-" + (index + getOffset()) * eachChildWidth + "px)"
717
+ transform: translateType + "(-" + (index + getOffset()) * eachChildSize + "px)"
799
718
  };
800
719
  return /*#__PURE__*/React__default.createElement("div", {
801
720
  dir: "ltr",
@@ -816,7 +735,7 @@ var Slide = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
816
735
  className: "react-slideshow-wrapper slide " + (props.cssClass || ''),
817
736
  ref: wrapperRef
818
737
  }, /*#__PURE__*/React__default.createElement("div", {
819
- className: "images-wrap",
738
+ className: "images-wrap " + (props.vertical ? 'vertical' : 'horizontal'),
820
739
  style: style,
821
740
  ref: innerWrapperRef
822
741
  }, props.infinite && renderPreceedingSlides(), (React__default.Children.map(props.children, function (thisArg) {
@@ -830,7 +749,7 @@ var Slide = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
830
749
  "aria-roledescription": "slide",
831
750
  "aria-hidden": isThisSlideActive ? 'false' : 'true'
832
751
  }, each);
833
- }), renderTrailingSlides())), props.arrows && showNextArrow(props, index, moveSlides)), props.indicators && showIndicators(props, index, goToSlide, responsiveSettings));
752
+ }), renderTrailingSlides())), props.arrows && showNextArrow(props, index, moveSlides)), !!props.indicators && showIndicators(props, index, goToSlide, responsiveSettings));
834
753
  });
835
754
  Slide.defaultProps = defaultProps;
836
755