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