react-slideshow-image 4.2.1 → 4.3.1

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