react-spring-carousel 1.9.29-beta45 → 1.9.29-beta49
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/cjs/index.js +85 -139
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/{index.esm.js → index.js} +86 -140
- package/dist/esm/index.js.map +1 -0
- package/dist/{cjs → types}/index.d.ts +0 -0
- package/dist/{cjs → types}/modules/index.d.ts +0 -0
- package/dist/{cjs → types}/modules/useCustomEventsModule.d.ts +0 -0
- package/dist/{cjs → types}/modules/useFullscreenModule.d.ts +0 -0
- package/dist/{cjs → types}/modules/useThumbsModule.d.ts +0 -0
- package/dist/{cjs → types}/types.d.ts +0 -0
- package/dist/{cjs → types}/useSpringCarousel/index.d.ts +0 -0
- package/dist/{cjs → types}/useTransitionCarousel/index.d.ts +0 -0
- package/dist/{cjs → types}/utils.d.ts +0 -0
- package/package.json +10 -4
- package/dist/esm/index.d.ts +0 -2
- package/dist/esm/index.esm.js.map +0 -1
- package/dist/esm/modules/index.d.ts +0 -3
- package/dist/esm/modules/useCustomEventsModule.d.ts +0 -5
- package/dist/esm/modules/useFullscreenModule.d.ts +0 -13
- package/dist/esm/modules/useThumbsModule.d.ts +0 -19
- package/dist/esm/types.d.ts +0 -171
- package/dist/esm/useSpringCarousel/index.d.ts +0 -9
- package/dist/esm/useTransitionCarousel/index.d.ts +0 -24
- package/dist/esm/utils.d.ts +0 -4
|
@@ -73,6 +73,33 @@ function useFullscreenModule({ mainCarouselWrapperRef, emitObservable, handleRes
|
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
/*! *****************************************************************************
|
|
77
|
+
Copyright (c) Microsoft Corporation.
|
|
78
|
+
|
|
79
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
80
|
+
purpose with or without fee is hereby granted.
|
|
81
|
+
|
|
82
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
83
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
84
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
85
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
86
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
87
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
88
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
89
|
+
***************************************************************************** */
|
|
90
|
+
|
|
91
|
+
function __rest(s, e) {
|
|
92
|
+
var t = {};
|
|
93
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
94
|
+
t[p] = s[p];
|
|
95
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
96
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
97
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
98
|
+
t[p[i]] = s[p[i]];
|
|
99
|
+
}
|
|
100
|
+
return t;
|
|
101
|
+
}
|
|
102
|
+
|
|
76
103
|
function useMount(callback) {
|
|
77
104
|
const isMounted = useRef(false);
|
|
78
105
|
useEffect(() => {
|
|
@@ -90,7 +117,8 @@ function getIsBrowser() {
|
|
|
90
117
|
return typeof window !== 'undefined';
|
|
91
118
|
}
|
|
92
119
|
|
|
93
|
-
const InternalWrapper = forwardRef((
|
|
120
|
+
const InternalWrapper = forwardRef((_a, ref) => {
|
|
121
|
+
var { children } = _a, rest = __rest(_a, ["children"]);
|
|
94
122
|
return (jsx(animated.div, Object.assign({}, rest, { ref: ref }, { children: children }), void 0));
|
|
95
123
|
});
|
|
96
124
|
function useThumbsModule({ items, withThumbs, thumbsSlideAxis = 'x', springConfig, prepareThumbsData, itemsPerSlide, getFluidWrapperScrollValue = () => 0, getSlideValue = () => 0, CustomThumbsWrapperComponent, }) {
|
|
@@ -114,7 +142,8 @@ function useThumbsModule({ items, withThumbs, thumbsSlideAxis = 'x', springConfi
|
|
|
114
142
|
return internalThumbsWrapperRef.current[thumbsSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop'];
|
|
115
143
|
}
|
|
116
144
|
function getThumbsTotalScrollableValue() {
|
|
117
|
-
|
|
145
|
+
var _a;
|
|
146
|
+
return Math.round(Number((_a = internalThumbsWrapperRef.current) === null || _a === void 0 ? void 0 : _a[thumbsSlideAxis === 'x' ? 'scrollWidth' : 'scrollHeight']) -
|
|
118
147
|
internalThumbsWrapperRef.current.getBoundingClientRect()[thumbsSlideAxis === 'x' ? 'width' : 'height']);
|
|
119
148
|
}
|
|
120
149
|
function getThumbSlideValue() {
|
|
@@ -243,18 +272,12 @@ function useThumbsModule({ items, withThumbs, thumbsSlideAxis = 'x', springConfi
|
|
|
243
272
|
: InternalWrapper;
|
|
244
273
|
const thumbsFragment = withThumbs ? (jsx(Wrapper, Object.assign({ ref: internalThumbsWrapperRef, className: "use-spring-carousel-thumbs-wrapper", onWheel: () => {
|
|
245
274
|
thumbListStyles[thumbsSlideAxis].stop();
|
|
246
|
-
}, style: {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
? { overflowX: 'auto' }
|
|
253
|
-
: {
|
|
254
|
-
overflowY: 'auto',
|
|
255
|
-
maxHeight: '100%',
|
|
256
|
-
}),
|
|
257
|
-
} }, { children: handlePrepareThumbsDate().map(({ id, renderThumb }) => {
|
|
275
|
+
}, style: Object.assign({ display: 'flex', flex: 1, position: 'relative', flexDirection: thumbsSlideAxis === 'x' ? 'row' : 'column' }, (thumbsSlideAxis === 'x'
|
|
276
|
+
? { overflowX: 'auto' }
|
|
277
|
+
: {
|
|
278
|
+
overflowY: 'auto',
|
|
279
|
+
maxHeight: '100%',
|
|
280
|
+
})) }, { children: handlePrepareThumbsDate().map(({ id, renderThumb }) => {
|
|
258
281
|
const thumbId = `thumb-${id}`;
|
|
259
282
|
return (jsx("div", Object.assign({ id: thumbId }, { children: renderThumb }), thumbId));
|
|
260
283
|
}) }), void 0)) : null;
|
|
@@ -298,7 +321,8 @@ function useSpringCarousel({ itemsPerSlide = 1, items, withLoop = false, draggin
|
|
|
298
321
|
},
|
|
299
322
|
}));
|
|
300
323
|
function getCarouselItem() {
|
|
301
|
-
|
|
324
|
+
var _a;
|
|
325
|
+
return (_a = carouselTrackWrapperRef.current) === null || _a === void 0 ? void 0 : _a.querySelector('.use-spring-carousel-item');
|
|
302
326
|
}
|
|
303
327
|
const getMainCarouselWrapperWidth = useCallback(() => {
|
|
304
328
|
if (!mainCarouselWrapperRef.current) {
|
|
@@ -320,7 +344,8 @@ function useSpringCarousel({ itemsPerSlide = 1, items, withLoop = false, draggin
|
|
|
320
344
|
return getCarouselItemWidth() * items.length < getMainCarouselWrapperWidth();
|
|
321
345
|
}, [getCarouselItemWidth, getMainCarouselWrapperWidth, items.length]);
|
|
322
346
|
const getFluidWrapperScrollValue = useCallback(() => {
|
|
323
|
-
|
|
347
|
+
var _a;
|
|
348
|
+
return Math.round(Number((_a = carouselTrackWrapperRef.current) === null || _a === void 0 ? void 0 : _a[carouselSlideAxis === 'x' ? 'scrollWidth' : 'scrollHeight']) -
|
|
324
349
|
carouselTrackWrapperRef.current.getBoundingClientRect()[carouselSlideAxis === 'x' ? 'width' : 'height']);
|
|
325
350
|
}, [carouselSlideAxis]);
|
|
326
351
|
const getIsFirstItem = useCallback(() => {
|
|
@@ -509,11 +534,7 @@ function useSpringCarousel({ itemsPerSlide = 1, items, withLoop = false, draggin
|
|
|
509
534
|
}
|
|
510
535
|
if (isDragging) {
|
|
511
536
|
setIsDragging(true);
|
|
512
|
-
emitObservable({
|
|
513
|
-
eventName: 'onDrag',
|
|
514
|
-
slideActionType: getSlideActionType(),
|
|
515
|
-
...props,
|
|
516
|
-
});
|
|
537
|
+
emitObservable(Object.assign({ eventName: 'onDrag', slideActionType: getSlideActionType() }, props));
|
|
517
538
|
const direction = props.direction[carouselSlideAxis === 'x' ? 0 : 1];
|
|
518
539
|
if (direction > 0) {
|
|
519
540
|
setSlideActionType('prev');
|
|
@@ -586,11 +607,7 @@ function useSpringCarousel({ itemsPerSlide = 1, items, withLoop = false, draggin
|
|
|
586
607
|
}
|
|
587
608
|
if (props.last && !props.pressed && !freeScroll) {
|
|
588
609
|
resetAnimation();
|
|
589
|
-
emitObservable({
|
|
590
|
-
eventName: 'onDrag',
|
|
591
|
-
slideActionType: getSlideActionType(),
|
|
592
|
-
...props,
|
|
593
|
-
});
|
|
610
|
+
emitObservable(Object.assign({ eventName: 'onDrag', slideActionType: getSlideActionType() }, props));
|
|
594
611
|
}
|
|
595
612
|
}, {
|
|
596
613
|
enabled: !disableGestures,
|
|
@@ -758,11 +775,7 @@ function useSpringCarousel({ itemsPerSlide = 1, items, withLoop = false, draggin
|
|
|
758
775
|
[carouselSlideAxis]: -(getSlideValue() * to),
|
|
759
776
|
};
|
|
760
777
|
}
|
|
761
|
-
setCarouselStyles.start({
|
|
762
|
-
...getFromValue(),
|
|
763
|
-
to: getToValue(),
|
|
764
|
-
immediate,
|
|
765
|
-
onRest: val => {
|
|
778
|
+
setCarouselStyles.start(Object.assign(Object.assign({}, getFromValue()), { to: getToValue(), immediate, onRest: val => {
|
|
766
779
|
if (val.finished) {
|
|
767
780
|
setIsDragging(false);
|
|
768
781
|
setIsAnimating(false);
|
|
@@ -778,8 +791,7 @@ function useSpringCarousel({ itemsPerSlide = 1, items, withLoop = false, draggin
|
|
|
778
791
|
});
|
|
779
792
|
}
|
|
780
793
|
}
|
|
781
|
-
}
|
|
782
|
-
});
|
|
794
|
+
} }));
|
|
783
795
|
if (enableThumbsWrapperScroll && withThumbs && !immediate) {
|
|
784
796
|
handleThumbsScroll(to, getSlideActionType());
|
|
785
797
|
}
|
|
@@ -925,8 +937,7 @@ function useSpringCarousel({ itemsPerSlide = 1, items, withLoop = false, draggin
|
|
|
925
937
|
to: itemIndex,
|
|
926
938
|
});
|
|
927
939
|
}
|
|
928
|
-
const contextProps = {
|
|
929
|
-
useListenToCustomEvent,
|
|
940
|
+
const contextProps = Object.assign({ useListenToCustomEvent,
|
|
930
941
|
getIsFullscreen,
|
|
931
942
|
enterFullscreen,
|
|
932
943
|
exitFullscreen,
|
|
@@ -935,34 +946,27 @@ function useSpringCarousel({ itemsPerSlide = 1, items, withLoop = false, draggin
|
|
|
935
946
|
getIsNextItem,
|
|
936
947
|
getIsPrevItem,
|
|
937
948
|
slideToPrevItem,
|
|
938
|
-
slideToNextItem,
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
: {}),
|
|
951
|
-
};
|
|
949
|
+
slideToNextItem }, (typeof itemsPerSlide === 'number'
|
|
950
|
+
? {
|
|
951
|
+
slideToItem: _slideToItem,
|
|
952
|
+
getIsActiveItem: (id) => {
|
|
953
|
+
return findItemIndex(id) === getCurrentActiveItem();
|
|
954
|
+
},
|
|
955
|
+
getCurrentActiveItem: () => ({
|
|
956
|
+
id: items[getCurrentActiveItem()].id,
|
|
957
|
+
index: getCurrentActiveItem(),
|
|
958
|
+
}),
|
|
959
|
+
}
|
|
960
|
+
: {}));
|
|
952
961
|
function getItemStyles() {
|
|
953
962
|
if (typeof itemsPerSlide === 'number') {
|
|
954
|
-
return {
|
|
955
|
-
...(carouselSlideAxis === 'x'
|
|
956
|
-
? { marginRight: `${gutter}px` }
|
|
957
|
-
: { marginBottom: `${gutter}px` }),
|
|
958
|
-
flex: `1 0 calc(100% / ${itemsPerSlide} - ${(gutter * (itemsPerSlide - 1)) / itemsPerSlide}px)`,
|
|
959
|
-
};
|
|
960
|
-
}
|
|
961
|
-
return {
|
|
962
|
-
...(carouselSlideAxis === 'x'
|
|
963
|
+
return Object.assign(Object.assign({}, (carouselSlideAxis === 'x'
|
|
963
964
|
? { marginRight: `${gutter}px` }
|
|
964
|
-
: { marginBottom: `${gutter}px` }),
|
|
965
|
-
}
|
|
965
|
+
: { marginBottom: `${gutter}px` })), { flex: `1 0 calc(100% / ${itemsPerSlide} - ${(gutter * (itemsPerSlide - 1)) / itemsPerSlide}px)` });
|
|
966
|
+
}
|
|
967
|
+
return Object.assign({}, (carouselSlideAxis === 'x'
|
|
968
|
+
? { marginRight: `${gutter}px` }
|
|
969
|
+
: { marginBottom: `${gutter}px` }));
|
|
966
970
|
}
|
|
967
971
|
function getAnimatedWrapperStyles() {
|
|
968
972
|
const percentValue = `calc(100% - ${startEndGutter * 2}px)`;
|
|
@@ -1011,32 +1015,12 @@ function useSpringCarousel({ itemsPerSlide = 1, items, withLoop = false, draggin
|
|
|
1011
1015
|
}
|
|
1012
1016
|
const carouselFragment = (jsx(UseSpringCarouselContext.Provider, Object.assign({ value: contextProps }, { children: jsx("div", Object.assign({ ref: mainCarouselWrapperRef, className: "use-spring-carousel-main-wrapper", "data-testid": "use-spring-carousel-wrapper" }, getWheelEvent(), {
|
|
1013
1017
|
// @ts-ignore
|
|
1014
|
-
style: {
|
|
1015
|
-
|
|
1016
|
-
position: 'relative',
|
|
1017
|
-
width: '100%',
|
|
1018
|
-
height: '100%',
|
|
1019
|
-
...getOverflowStyles(),
|
|
1020
|
-
} }, { children: jsx(animated.div, Object.assign({}, bindDrag(), { className: "use-spring-carousel-track-wrapper", "data-testid": "use-spring-carousel-animated-wrapper", ref: handleCarouselFragmentRef, style: {
|
|
1021
|
-
display: 'flex',
|
|
1022
|
-
position: 'relative',
|
|
1023
|
-
touchAction: getTouchAction(),
|
|
1024
|
-
flexDirection: carouselSlideAxis === 'x' ? 'row' : 'column',
|
|
1025
|
-
...getAnimatedWrapperStyles(),
|
|
1026
|
-
...(freeScroll ? {} : carouselStyles),
|
|
1027
|
-
} }, { children: internalItems.map(({ id, renderItem }, index) => {
|
|
1028
|
-
return (jsx("div", Object.assign({ className: "use-spring-carousel-item", "data-testid": "use-spring-carousel-item-wrapper", style: {
|
|
1029
|
-
display: 'flex',
|
|
1030
|
-
position: 'relative',
|
|
1031
|
-
...getItemStyles(),
|
|
1032
|
-
} }, { children: renderItem }), `${id}-${index}`));
|
|
1018
|
+
style: Object.assign({ display: 'flex', position: 'relative', width: '100%', height: '100%' }, getOverflowStyles()) }, { children: jsx(animated.div, Object.assign({}, bindDrag(), { className: "use-spring-carousel-track-wrapper", "data-testid": "use-spring-carousel-animated-wrapper", ref: handleCarouselFragmentRef, style: Object.assign(Object.assign({ display: 'flex', position: 'relative', touchAction: getTouchAction(), flexDirection: carouselSlideAxis === 'x' ? 'row' : 'column' }, getAnimatedWrapperStyles()), (freeScroll ? {} : carouselStyles)) }, { children: internalItems.map(({ id, renderItem }, index) => {
|
|
1019
|
+
return (jsx("div", Object.assign({ className: "use-spring-carousel-item", "data-testid": "use-spring-carousel-item-wrapper", style: Object.assign({ display: 'flex', position: 'relative' }, getItemStyles()) }, { children: renderItem }), `${id}-${index}`));
|
|
1033
1020
|
}) }), void 0) }), void 0) }), void 0));
|
|
1034
1021
|
const thumbsFragment = (jsx(UseSpringCarouselContext.Provider, Object.assign({ value: contextProps }, { children: _thumbsFragment }), void 0));
|
|
1035
|
-
return {
|
|
1036
|
-
|
|
1037
|
-
carouselFragment,
|
|
1038
|
-
thumbsFragment,
|
|
1039
|
-
};
|
|
1022
|
+
return Object.assign(Object.assign({}, contextProps), { carouselFragment,
|
|
1023
|
+
thumbsFragment });
|
|
1040
1024
|
}
|
|
1041
1025
|
function useSpringCarouselContext() {
|
|
1042
1026
|
const context = useContext(UseSpringCarouselContext);
|
|
@@ -1125,57 +1109,28 @@ function useTransitionCarousel({ items, withLoop = false, withThumbs = false, sp
|
|
|
1125
1109
|
const slideActionType = getSlideActionType();
|
|
1126
1110
|
if (slideActionType === 'prev' && toPrevItemSpringProps) {
|
|
1127
1111
|
return {
|
|
1128
|
-
initial: {
|
|
1129
|
-
|
|
1130
|
-
},
|
|
1131
|
-
|
|
1132
|
-
...toPrevItemSpringProps.from,
|
|
1133
|
-
},
|
|
1134
|
-
enter: {
|
|
1135
|
-
...toPrevItemSpringProps.enter,
|
|
1136
|
-
},
|
|
1137
|
-
leave: {
|
|
1138
|
-
...toPrevItemSpringProps.leave,
|
|
1139
|
-
},
|
|
1112
|
+
initial: Object.assign({}, springAnimationProps.initial),
|
|
1113
|
+
from: Object.assign({}, toPrevItemSpringProps.from),
|
|
1114
|
+
enter: Object.assign({}, toPrevItemSpringProps.enter),
|
|
1115
|
+
leave: Object.assign({}, toPrevItemSpringProps.leave),
|
|
1140
1116
|
};
|
|
1141
1117
|
}
|
|
1142
1118
|
if (slideActionType === 'next' && toNextItemSpringProps) {
|
|
1143
1119
|
return {
|
|
1144
|
-
initial: {
|
|
1145
|
-
|
|
1146
|
-
},
|
|
1147
|
-
|
|
1148
|
-
...toNextItemSpringProps.from,
|
|
1149
|
-
},
|
|
1150
|
-
enter: {
|
|
1151
|
-
...toNextItemSpringProps.enter,
|
|
1152
|
-
},
|
|
1153
|
-
leave: {
|
|
1154
|
-
...toNextItemSpringProps.leave,
|
|
1155
|
-
},
|
|
1120
|
+
initial: Object.assign({}, springAnimationProps.initial),
|
|
1121
|
+
from: Object.assign({}, toNextItemSpringProps.from),
|
|
1122
|
+
enter: Object.assign({}, toNextItemSpringProps.enter),
|
|
1123
|
+
leave: Object.assign({}, toNextItemSpringProps.leave),
|
|
1156
1124
|
};
|
|
1157
1125
|
}
|
|
1158
1126
|
return {
|
|
1159
|
-
initial: {
|
|
1160
|
-
|
|
1161
|
-
},
|
|
1162
|
-
|
|
1163
|
-
...springAnimationProps.from,
|
|
1164
|
-
},
|
|
1165
|
-
enter: {
|
|
1166
|
-
...springAnimationProps.enter,
|
|
1167
|
-
},
|
|
1168
|
-
leave: {
|
|
1169
|
-
...springAnimationProps.leave,
|
|
1170
|
-
},
|
|
1127
|
+
initial: Object.assign({}, springAnimationProps.initial),
|
|
1128
|
+
from: Object.assign({}, springAnimationProps.from),
|
|
1129
|
+
enter: Object.assign({}, springAnimationProps.enter),
|
|
1130
|
+
leave: Object.assign({}, springAnimationProps.leave),
|
|
1171
1131
|
};
|
|
1172
1132
|
}
|
|
1173
|
-
const transitions = useTransition(activeItem, {
|
|
1174
|
-
config: springConfig,
|
|
1175
|
-
...getTransitionConfig(),
|
|
1176
|
-
onStart: () => setIsAnimating(true),
|
|
1177
|
-
keys: null,
|
|
1178
|
-
onRest: val => {
|
|
1133
|
+
const transitions = useTransition(activeItem, Object.assign(Object.assign({ config: springConfig }, getTransitionConfig()), { onStart: () => setIsAnimating(true), keys: null, onRest: val => {
|
|
1179
1134
|
if (val.finished) {
|
|
1180
1135
|
setIsAnimating(false);
|
|
1181
1136
|
emitObservable({
|
|
@@ -1187,14 +1142,8 @@ function useTransitionCarousel({ items, withLoop = false, withThumbs = false, sp
|
|
|
1187
1142
|
},
|
|
1188
1143
|
});
|
|
1189
1144
|
}
|
|
1190
|
-
}
|
|
1191
|
-
});
|
|
1192
|
-
const itemsFragment = transitions((styles, item) => (jsx(animated.div, Object.assign({ style: {
|
|
1193
|
-
...styles,
|
|
1194
|
-
flex: '1 0 100%',
|
|
1195
|
-
width: '100%',
|
|
1196
|
-
height: '100%',
|
|
1197
|
-
} }, { children: items[item].renderItem }), void 0)));
|
|
1145
|
+
} }));
|
|
1146
|
+
const itemsFragment = transitions((styles, item) => (jsx(animated.div, Object.assign({ style: Object.assign(Object.assign({}, styles), { flex: '1 0 100%', width: '100%', height: '100%' }) }, { children: items[item].renderItem }), void 0)));
|
|
1198
1147
|
function getIsAnimating() {
|
|
1199
1148
|
return isAnimating.current;
|
|
1200
1149
|
}
|
|
@@ -1372,12 +1321,9 @@ function useTransitionCarousel({ items, withLoop = false, withThumbs = false, sp
|
|
|
1372
1321
|
overflow: 'hidden',
|
|
1373
1322
|
} }, { children: itemsFragment }), void 0) }), void 0));
|
|
1374
1323
|
const thumbsFragment = (jsx(UseTransitionCarouselContext.Provider, Object.assign({ value: contextProps }, { children: _thumbsFragment }), void 0));
|
|
1375
|
-
return {
|
|
1376
|
-
|
|
1377
|
-
thumbsFragment,
|
|
1378
|
-
...contextProps,
|
|
1379
|
-
};
|
|
1324
|
+
return Object.assign({ carouselFragment,
|
|
1325
|
+
thumbsFragment }, contextProps);
|
|
1380
1326
|
}
|
|
1381
1327
|
|
|
1382
1328
|
export { useSpringCarousel, useSpringCarouselContext, useTransitionCarousel, useTransitionCarouselContext };
|
|
1383
|
-
//# sourceMappingURL=index.
|
|
1329
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/modules/useCustomEventsModule.tsx","../../src/modules/useFullscreenModule.tsx","../../src/utils.ts","../../src/modules/useThumbsModule.tsx","../../src/useSpringCarousel/index.tsx","../../src/useTransitionCarousel/index.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { Subject } from 'rxjs'\nimport { EventsObservableProps, ObservableCallbackFn, EmitObservableFn } from '../types'\n\nexport function useCustomEventsModule() {\n const eventsObserverRef = useRef(new Subject<EventsObservableProps>())\n\n function useListenToCustomEvent(fn: ObservableCallbackFn) {\n useEffect(() => {\n const subscribe = eventsObserverRef.current.subscribe(fn)\n return () => subscribe.unsubscribe()\n }, [fn])\n }\n\n const emitObservable: EmitObservableFn = data => {\n eventsObserverRef.current.next(data)\n }\n\n return {\n useListenToCustomEvent,\n emitObservable,\n }\n}\n","import { useRef, MutableRefObject, useEffect } from 'react'\nimport screenfull from 'screenfull'\nimport { EmitObservableFn } from '../types'\n\ntype FullscreenModule = {\n mainCarouselWrapperRef: MutableRefObject<HTMLDivElement | null>\n emitObservable: EmitObservableFn\n handleResize?(): void\n}\n\nexport function useFullscreenModule({\n mainCarouselWrapperRef,\n emitObservable,\n handleResize,\n}: FullscreenModule) {\n const isFullscreen = useRef(false)\n\n useEffect(() => {\n function handleFullscreenChange() {\n if (document.fullscreenElement) {\n setIsFullscreen(true)\n emitObservable({\n eventName: 'onFullscreenChange',\n isFullscreen: true,\n })\n\n handleResize && handleResize()\n }\n\n if (!document.fullscreenElement) {\n setIsFullscreen(false)\n emitObservable({\n eventName: 'onFullscreenChange',\n isFullscreen: false,\n })\n handleResize && handleResize()\n }\n }\n\n if (screenfull.isEnabled) {\n screenfull.on('change', handleFullscreenChange)\n return () => {\n if (screenfull.isEnabled) {\n screenfull.off('change', handleFullscreenChange)\n }\n }\n }\n })\n\n function setIsFullscreen(_isFullscreen: boolean) {\n isFullscreen.current = _isFullscreen\n }\n\n function getIsFullscreen() {\n return isFullscreen.current\n }\n\n function enterFullscreen(elementRef?: HTMLElement) {\n if (screenfull.isEnabled) {\n screenfull.request((elementRef || mainCarouselWrapperRef.current) as Element)\n }\n }\n\n function exitFullscreen() {\n screenfull.isEnabled && screenfull.exit()\n }\n\n return {\n enterFullscreen,\n exitFullscreen,\n getIsFullscreen,\n }\n}\n","import { useRef, useEffect } from 'react'\n\ntype Callback = () => void | (() => void)\n\nexport function useMount(callback: Callback) {\n const isMounted = useRef(false)\n\n useEffect(() => {\n if (!isMounted.current) {\n const clean = callback()\n isMounted.current = true\n\n return () => {\n clean && clean()\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n}\n\nexport function getIsBrowser() {\n return typeof window !== 'undefined'\n}\n","import { forwardRef, HTMLAttributes, useRef } from 'react'\nimport { useSpring, SpringConfig, animated } from 'react-spring'\nimport { useMount } from 'src/utils'\nimport {\n UseSpringCarouselProps,\n ReactSpringThumbItem,\n PrepareThumbsData,\n UseSpringCarouselItems,\n SlideActionType,\n} from '../types'\n\ntype OffsetDimension = 'offsetWidth' | 'offsetHeight'\ntype OffsetDirection = 'offsetLeft' | 'offsetTop'\ntype ScrollDirection = 'scrollLeft' | 'scrollTop'\n\ntype Props = {\n items: UseSpringCarouselItems['items']\n withThumbs: boolean\n thumbsSlideAxis: UseSpringCarouselProps['thumbsSlideAxis']\n springConfig: SpringConfig\n prepareThumbsData?: PrepareThumbsData\n itemsPerSlide?: UseSpringCarouselProps['itemsPerSlide']\n CustomThumbsWrapperComponent?: UseSpringCarouselProps['CustomThumbsWrapperComponent']\n getFluidWrapperScrollValue?(): number\n getSlideValue?(): number\n}\n\ntype WrapperProps = {\n children: React.ReactNode\n} & HTMLAttributes<HTMLDivElement>\n\nconst InternalWrapper = forwardRef<HTMLDivElement, WrapperProps>(\n ({ children, ...rest }, ref) => {\n return (\n <animated.div {...rest} ref={ref}>\n {children}\n </animated.div>\n )\n },\n)\n\nexport function useThumbsModule({\n items,\n withThumbs,\n thumbsSlideAxis = 'x',\n springConfig,\n prepareThumbsData,\n itemsPerSlide,\n getFluidWrapperScrollValue = () => 0,\n getSlideValue = () => 0,\n CustomThumbsWrapperComponent,\n}: Props) {\n const internalThumbsWrapperRef = useRef<HTMLDivElement | null>(null)\n const [thumbListStyles, setThumbListStyles] = useSpring(() => ({\n x: 0,\n y: 0,\n config: springConfig,\n onChange: ({ value }) => {\n if (internalThumbsWrapperRef.current) {\n internalThumbsWrapperRef.current[\n thumbsSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop'\n ] = Math.abs(value[thumbsSlideAxis])\n }\n },\n }))\n\n useMount(() => {\n if (withThumbs && !internalThumbsWrapperRef.current) {\n throw new Error(\n \"The thumbs wrapper is not defined. If you've passed a Functional component, be sure to wrap your component in forwardRef.\",\n )\n }\n })\n\n function getCurrentThumbScrollValue() {\n return internalThumbsWrapperRef.current![\n thumbsSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop'\n ]\n }\n function getThumbsTotalScrollableValue() {\n return Math.round(\n Number(\n internalThumbsWrapperRef.current?.[\n thumbsSlideAxis === 'x' ? 'scrollWidth' : 'scrollHeight'\n ],\n ) -\n internalThumbsWrapperRef.current!.getBoundingClientRect()[\n thumbsSlideAxis === 'x' ? 'width' : 'height'\n ],\n )\n }\n\n function getThumbSlideValue() {\n const thumbSlideTotal = Math.round(getFluidWrapperScrollValue() / getSlideValue())\n const totalScrollableValue = getThumbsTotalScrollableValue()\n return totalScrollableValue / thumbSlideTotal\n }\n\n function handleThumbsScroll(activeItem: number, actionType?: SlideActionType) {\n if (itemsPerSlide === 'fluid') {\n const totalScrollableValue = getThumbsTotalScrollableValue()\n\n if (actionType === 'next') {\n const nextValue = getCurrentThumbScrollValue() + getThumbSlideValue()\n setThumbListStyles.start({\n from: {\n [thumbsSlideAxis]: getCurrentThumbScrollValue(),\n },\n to: {\n [thumbsSlideAxis]:\n nextValue > totalScrollableValue ? totalScrollableValue : nextValue,\n },\n })\n }\n if (actionType === 'prev') {\n const nextValue = getCurrentThumbScrollValue() - getThumbSlideValue()\n setThumbListStyles.start({\n from: {\n [thumbsSlideAxis]: getCurrentThumbScrollValue(),\n },\n to: {\n [thumbsSlideAxis]: nextValue < 0 ? 0 : nextValue,\n },\n })\n }\n } else {\n function getOffsetDirection() {\n return thumbsSlideAxis === 'x' ? 'offsetLeft' : 'offsetTop'\n }\n function getOffsetDimension() {\n return thumbsSlideAxis === 'x' ? 'offsetWidth' : 'offsetHeight'\n }\n function getScrollDirecton() {\n return thumbsSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop'\n }\n function getThumbNode() {\n return internalThumbsWrapperRef.current!.querySelector(\n `#thumb-${items[activeItem].id}`,\n ) as HTMLElement\n }\n function getThumbOffsetPosition({\n thumbNode,\n offsetDirection,\n offsetDimension,\n }: {\n thumbNode: HTMLElement\n offsetDirection: OffsetDirection\n offsetDimension: OffsetDimension\n }) {\n return thumbNode[offsetDirection] + thumbNode[offsetDimension] / 2\n }\n function getThumbScrollDimension({\n thumbWrapper,\n offsetDimension,\n }: {\n thumbWrapper: HTMLDivElement\n offsetDimension: OffsetDimension\n }) {\n return thumbWrapper[offsetDimension] / 2\n }\n function getScrollFromValue({\n thumbWrapper,\n scrollDirection,\n }: {\n thumbWrapper: HTMLDivElement\n scrollDirection: ScrollDirection\n }) {\n return thumbWrapper[scrollDirection]\n }\n function getScrollToValue({\n thumbWrapper,\n thumbOffsetPosition,\n thumbScrollDimension,\n offsetDimension,\n }: {\n thumbWrapper: HTMLDivElement\n thumbOffsetPosition: number\n thumbScrollDimension: number\n offsetDimension: OffsetDimension\n }) {\n const scrollDimensionProperty =\n thumbsSlideAxis === 'x' ? 'scrollWidth' : 'scrollHeight'\n\n if (\n activeItem === items.length - 1 ||\n thumbOffsetPosition - thumbScrollDimension >\n thumbWrapper[scrollDimensionProperty] - thumbWrapper[offsetDimension]\n ) {\n return thumbWrapper[scrollDimensionProperty] - thumbWrapper[offsetDimension]\n }\n if (activeItem === 0) {\n return 0\n }\n\n return thumbOffsetPosition - thumbScrollDimension\n }\n\n const thumbNode = getThumbNode()\n\n if (thumbNode) {\n const thumbWrapper = internalThumbsWrapperRef.current!\n const offsetDirection = getOffsetDirection()\n const offsetDimension = getOffsetDimension()\n const scrollDirection = getScrollDirecton()\n const thumbOffsetPosition = getThumbOffsetPosition({\n thumbNode,\n offsetDimension,\n offsetDirection,\n })\n const thumbScrollDimension = getThumbScrollDimension({\n thumbWrapper,\n offsetDimension,\n })\n\n setThumbListStyles.start({\n from: {\n [thumbsSlideAxis]: getScrollFromValue({\n thumbWrapper,\n scrollDirection,\n }),\n },\n to: {\n [thumbsSlideAxis]: getScrollToValue({\n thumbWrapper,\n thumbOffsetPosition,\n thumbScrollDimension,\n offsetDimension,\n }),\n },\n onChange: val => {\n if (thumbsSlideAxis === 'x') {\n // @ts-ignore\n internalThumbsWrapperRef!.current!.scrollLeft = val.x\n } else {\n // @ts-ignore\n internalThumbsWrapperRef!.current!.scrollTop = val.y\n }\n },\n })\n }\n }\n }\n function handlePrepareThumbsDate() {\n function getPreparedItems(\n _items: UseSpringCarouselItems['items'],\n ): ReactSpringThumbItem[] {\n return _items.map(i => ({\n id: i.id,\n renderThumb: i.renderThumb,\n }))\n }\n\n if (prepareThumbsData) {\n return prepareThumbsData(getPreparedItems(items))\n }\n return getPreparedItems(items)\n }\n\n const Wrapper = CustomThumbsWrapperComponent\n ? animated(CustomThumbsWrapperComponent)\n : InternalWrapper\n\n const thumbsFragment = withThumbs ? (\n <Wrapper\n ref={internalThumbsWrapperRef}\n className=\"use-spring-carousel-thumbs-wrapper\"\n onWheel={() => {\n thumbListStyles[thumbsSlideAxis].stop()\n }}\n style={{\n display: 'flex',\n flex: 1,\n position: 'relative',\n flexDirection: thumbsSlideAxis === 'x' ? 'row' : 'column',\n ...(thumbsSlideAxis === 'x'\n ? { overflowX: 'auto' }\n : {\n overflowY: 'auto',\n maxHeight: '100%',\n }),\n }}\n >\n {handlePrepareThumbsDate().map(({ id, renderThumb }) => {\n const thumbId = `thumb-${id}`\n return (\n <div key={thumbId} id={thumbId}>\n {renderThumb}\n </div>\n )\n })}\n </Wrapper>\n ) : null\n\n return {\n thumbsFragment,\n handleThumbsScroll,\n }\n}\n","import { useRef, createContext, useCallback, useContext, useEffect } from 'react'\nimport { useSpring, config, animated } from 'react-spring'\nimport { useDrag } from '@use-gesture/react'\nimport { useCustomEventsModule, useFullscreenModule, useThumbsModule } from '../modules'\nimport {\n UseSpringCarouselProps,\n SlideToItemFnProps,\n SlideActionType,\n UseSpringDafaultTypeReturnProps,\n UseSpringFluidTypeReturnProps,\n} from '../types'\nimport { useMount } from '../utils'\nimport { getIsBrowser } from '../utils'\n\ntype ReturnHook<T> = T extends 'fluid'\n ? UseSpringFluidTypeReturnProps\n : UseSpringDafaultTypeReturnProps\n\nconst UseSpringCarouselContext = createContext<\n (UseSpringFluidTypeReturnProps | UseSpringDafaultTypeReturnProps) | undefined\n>(undefined)\n\nfunction useSpringCarousel<T>({\n itemsPerSlide = 1,\n items,\n withLoop = false,\n draggingSlideTreshold = 140,\n springConfig = config.default,\n shouldResizeOnWindowResize = true,\n withThumbs = false,\n enableThumbsWrapperScroll = true,\n carouselSlideAxis = 'x',\n thumbsSlideAxis = 'x',\n prepareThumbsData,\n initialActiveItem = 0,\n initialStartingPosition = 'start',\n disableGestures = false,\n gutter = 0,\n startEndGutter = 0,\n touchAction,\n slideAmount,\n freeScroll = false,\n CustomThumbsWrapperComponent,\n}: UseSpringCarouselProps): ReturnHook<T> & {\n carouselFragment: JSX.Element\n thumbsFragment: JSX.Element\n} {\n function getItems() {\n if (withLoop) {\n if (items.length === itemsPerSlide) {\n return [...items, ...items, ...items, ...items, ...items]\n }\n return [...items, ...items, ...items]\n }\n return items\n }\n const slideActionType = useRef<SlideActionType>('initial')\n const internalItems = getItems()\n const activeItem = useRef(initialActiveItem)\n const mainCarouselWrapperRef = useRef<HTMLDivElement | null>(null)\n const carouselTrackWrapperRef = useRef<HTMLDivElement | null>(null)\n const isDragging = useRef(false)\n const isAnimating = useRef(false)\n const windowIsHidden = useRef(false)\n const currentWindowWidth = useRef(0)\n const fluidTotalWrapperScrollValue = useRef(0)\n const slideFluidEndReached = useRef(false)\n const initialWindowWidth = useRef(0)\n\n const [carouselStyles, setCarouselStyles] = useSpring(() => ({\n y: 0,\n x: 0,\n config: springConfig,\n onChange: ({ value }) => {\n if (mainCarouselWrapperRef.current && freeScroll) {\n mainCarouselWrapperRef.current[\n carouselSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop'\n ] = Math.abs(value[carouselSlideAxis])\n }\n },\n }))\n function getCarouselItem() {\n return carouselTrackWrapperRef.current?.querySelector('.use-spring-carousel-item')\n }\n const getMainCarouselWrapperWidth = useCallback(() => {\n if (!mainCarouselWrapperRef.current) {\n throw new Error('mainCarouselWrapperRef is not available')\n }\n return mainCarouselWrapperRef.current.getBoundingClientRect()[\n carouselSlideAxis === 'x' ? 'width' : 'height'\n ]\n }, [carouselSlideAxis])\n const getCarouselItemWidth = useCallback(() => {\n const carouselItem = getCarouselItem()\n if (!carouselItem) {\n throw Error('No carousel items available!')\n }\n return (\n carouselItem.getBoundingClientRect()[\n carouselSlideAxis === 'x' ? 'width' : 'height'\n ] + gutter\n )\n }, [carouselSlideAxis, gutter])\n const getCurrentSlidedValue = useCallback(() => {\n return carouselStyles[carouselSlideAxis].get()\n }, [carouselSlideAxis, carouselStyles])\n const getIfItemsNotFillTheCarousel = useCallback(() => {\n return getCarouselItemWidth() * items.length < getMainCarouselWrapperWidth()\n }, [getCarouselItemWidth, getMainCarouselWrapperWidth, items.length])\n const getFluidWrapperScrollValue = useCallback(() => {\n return Math.round(\n Number(\n carouselTrackWrapperRef.current?.[\n carouselSlideAxis === 'x' ? 'scrollWidth' : 'scrollHeight'\n ],\n ) -\n carouselTrackWrapperRef.current!.getBoundingClientRect()[\n carouselSlideAxis === 'x' ? 'width' : 'height'\n ],\n )\n }, [carouselSlideAxis])\n const getIsFirstItem = useCallback(() => {\n return getCurrentActiveItem() === 0\n }, [])\n const getSlideValue = useCallback(() => {\n if (!carouselTrackWrapperRef.current) {\n return 0\n }\n const itemVal = getCarouselItemWidth()\n\n if (itemsPerSlide === 'fluid' && typeof slideAmount === 'number') {\n if (slideAmount < itemVal) {\n throw new Error('slideAmount must be greater than the width of a single item.')\n }\n return slideAmount\n }\n return itemVal\n }, [getCarouselItemWidth, itemsPerSlide, slideAmount])\n const adjustCarouselWrapperPosition = useCallback(\n (ref: HTMLDivElement) => {\n const positionProperty = carouselSlideAxis === 'x' ? 'left' : 'top'\n function getDefaultPositionValue() {\n return getCarouselItemWidth() * items.length\n }\n function setPosition(v: number) {\n ref.style.top = '0px'\n ref.style.left = '0px'\n if (withLoop) {\n ref.style[positionProperty] = `-${v - startEndGutter}px`\n }\n }\n function setStartPosition() {\n setPosition(getDefaultPositionValue())\n }\n\n if (itemsPerSlide !== 'fluid' && typeof itemsPerSlide === 'number') {\n function setCenterPosition() {\n setPosition(\n getDefaultPositionValue() -\n getSlideValue() * Math.round(((itemsPerSlide as number) - 1) / 2),\n )\n }\n function setEndPosition() {\n setPosition(\n getDefaultPositionValue() -\n getSlideValue() * Math.round((itemsPerSlide as number) - 1),\n )\n }\n\n if (itemsPerSlide > 1) {\n switch (initialStartingPosition) {\n default:\n case 'start': {\n setStartPosition()\n break\n }\n case 'center': {\n setCenterPosition()\n break\n }\n case 'end': {\n setEndPosition()\n break\n }\n }\n } else {\n setStartPosition()\n }\n } else {\n setStartPosition()\n }\n },\n [\n carouselSlideAxis,\n itemsPerSlide,\n getCarouselItemWidth,\n items.length,\n startEndGutter,\n getSlideValue,\n initialStartingPosition,\n withLoop,\n ],\n )\n\n const handleResize = useCallback(() => {\n if (window.innerWidth === currentWindowWidth.current || freeScroll) {\n return\n }\n currentWindowWidth.current = window.innerWidth\n\n if (itemsPerSlide === 'fluid') {\n if (getIfItemsNotFillTheCarousel()) {\n setCarouselStyles.start({\n immediate: true,\n [carouselSlideAxis]: 0,\n })\n return\n }\n fluidTotalWrapperScrollValue.current = getFluidWrapperScrollValue()\n const diff = currentWindowWidth.current - initialWindowWidth.current\n\n if (slideFluidEndReached.current) {\n const nextValue = -fluidTotalWrapperScrollValue.current\n setCarouselStyles.start({\n immediate: true,\n [carouselSlideAxis]: nextValue,\n })\n } else {\n const nextValue = getCurrentSlidedValue() + diff\n setCarouselStyles.start({\n immediate: true,\n [carouselSlideAxis]: nextValue,\n })\n }\n\n initialWindowWidth.current = window.innerWidth\n } else {\n setCarouselStyles.start({\n immediate: true,\n x: 0,\n y: 0,\n })\n setCarouselStyles.start({\n immediate: true,\n [carouselSlideAxis]: -(getSlideValue() * getCurrentActiveItem()),\n })\n }\n adjustCarouselWrapperPosition(carouselTrackWrapperRef.current!)\n }, [\n itemsPerSlide,\n getIfItemsNotFillTheCarousel,\n getFluidWrapperScrollValue,\n freeScroll,\n setCarouselStyles,\n carouselSlideAxis,\n getCurrentSlidedValue,\n getSlideValue,\n adjustCarouselWrapperPosition,\n ])\n // Custom modules\n const { useListenToCustomEvent, emitObservable } = useCustomEventsModule()\n const { enterFullscreen, exitFullscreen, getIsFullscreen } = useFullscreenModule({\n mainCarouselWrapperRef,\n emitObservable,\n handleResize,\n })\n const { thumbsFragment: _thumbsFragment, handleThumbsScroll } = useThumbsModule({\n withThumbs,\n items,\n thumbsSlideAxis,\n springConfig,\n prepareThumbsData,\n itemsPerSlide,\n getFluidWrapperScrollValue,\n getSlideValue,\n CustomThumbsWrapperComponent,\n })\n\n function getWrapperScrollDirection() {\n if (!mainCarouselWrapperRef.current) {\n throw new Error('Missing mainCarouselWrapperRef.current')\n }\n return mainCarouselWrapperRef.current[\n carouselSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop'\n ]\n }\n\n const bindDrag = useDrag(\n props => {\n const isDragging = props.dragging\n const movement = props.offset[carouselSlideAxis === 'x' ? 0 : 1]\n const currentMovement = props.movement[carouselSlideAxis === 'x' ? 0 : 1]\n function cancelDrag() {\n props.cancel()\n }\n function resetAnimation() {\n if (itemsPerSlide === 'fluid') {\n if (\n getIfItemsNotFillTheCarousel() ||\n (getIsFirstItem() && getSlideActionType() === 'prev')\n ) {\n setCarouselStyles.start({\n [carouselSlideAxis]: 0,\n })\n } else if (slideFluidEndReached.current) {\n setCarouselStyles.start({\n [carouselSlideAxis]: -fluidTotalWrapperScrollValue.current,\n })\n } else {\n setCarouselStyles.start({\n [carouselSlideAxis]: getCurrentSlidedValue(),\n })\n }\n } else {\n setCarouselStyles.start({\n [carouselSlideAxis]: -(getCurrentActiveItem() * getSlideValue()),\n })\n }\n }\n\n if (isDragging) {\n setIsDragging(true)\n emitObservable({\n eventName: 'onDrag',\n slideActionType: getSlideActionType(),\n ...props,\n })\n const direction = props.direction[carouselSlideAxis === 'x' ? 0 : 1]\n if (direction > 0) {\n setSlideActionType('prev')\n } else {\n setSlideActionType('next')\n }\n\n if (freeScroll) {\n if (getWrapperScrollDirection() === 0 && direction > 0) {\n cancelDrag()\n } else {\n setCarouselStyles.start({\n from: {\n [carouselSlideAxis]: getWrapperScrollDirection(),\n },\n to: {\n [carouselSlideAxis]:\n direction > 0\n ? getWrapperScrollDirection() - Math.abs(movement)\n : getWrapperScrollDirection() + Math.abs(movement),\n },\n })\n }\n } else {\n setCarouselStyles.start({\n [carouselSlideAxis]: movement,\n })\n }\n\n const prevItemTreshold = currentMovement > draggingSlideTreshold\n const nextItemTreshold = currentMovement < -draggingSlideTreshold\n\n if (\n mainCarouselWrapperRef.current!.getBoundingClientRect().width >=\n items.length * getSlideValue() &&\n itemsPerSlide === 'fluid'\n ) {\n slideFluidEndReached.current = true\n }\n\n if (\n (prevItemTreshold || nextItemTreshold) &&\n getIfItemsNotFillTheCarousel() &&\n itemsPerSlide === 'fluid'\n ) {\n cancelDrag()\n resetAnimation()\n return\n }\n\n if (slideFluidEndReached.current && movement < 0) {\n if (nextItemTreshold) {\n cancelDrag()\n setCarouselStyles.start({\n [carouselSlideAxis]: -fluidTotalWrapperScrollValue.current,\n })\n }\n } else if (nextItemTreshold) {\n cancelDrag()\n if (!withLoop && getIsLastItem()) {\n resetAnimation()\n } else {\n slideToNextItem()\n }\n } else if (prevItemTreshold) {\n cancelDrag()\n if (!withLoop && getIsFirstItem()) {\n resetAnimation()\n } else {\n slideToPrevItem()\n }\n }\n }\n\n if (props.last && !props.pressed && !freeScroll) {\n resetAnimation()\n emitObservable({\n eventName: 'onDrag',\n slideActionType: getSlideActionType(),\n ...props,\n })\n }\n },\n {\n enabled: !disableGestures,\n from: () => [carouselStyles.x.get(), carouselStyles.y.get()],\n },\n )\n\n // Perform some check on first mount\n useMount(() => {\n if (itemsPerSlide !== 'fluid' && !Number.isInteger(itemsPerSlide)) {\n throw new Error(`itemsPerSlide should be an integer.`)\n }\n if (itemsPerSlide > items.length) {\n throw new Error(\n `The itemsPerSlide prop can't be greater than the total length of the items you provide.`,\n )\n }\n if (itemsPerSlide < 1) {\n throw new Error(`The itemsPerSlide prop can't be less than 1.`)\n }\n if (!shouldResizeOnWindowResize) {\n console.warn(\n 'You set shouldResizeOnWindowResize={false}; be aware that the carousel could behave in a strange way if you also use the fullscreen functionality or if you change the mobile orientation.',\n )\n }\n if (initialActiveItem < 0) {\n console.warn('The initialActiveItem cannot be less than 0.')\n }\n if (initialActiveItem > items.length) {\n console.warn(\n 'The initialActiveItem cannot be greater than the total length of the items you provide.',\n )\n }\n })\n useMount(() => {\n fluidTotalWrapperScrollValue.current = getFluidWrapperScrollValue()\n function handleVisibilityChange() {\n if (document.hidden) {\n windowIsHidden.current = true\n } else {\n windowIsHidden.current = false\n }\n }\n if (getIsBrowser()) {\n document.addEventListener('visibilitychange', handleVisibilityChange)\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange)\n }\n }\n })\n useMount(() => {\n initialWindowWidth.current = window.innerWidth\n if (initialActiveItem > 0 && initialActiveItem <= items.length) {\n slideToItem({\n to: initialActiveItem,\n immediate: true,\n })\n setActiveItem(initialActiveItem)\n }\n })\n useEffect(() => {\n function resize() {\n setTimeout(handleResize)\n }\n if (shouldResizeOnWindowResize) {\n window.addEventListener('resize', resize)\n return () => {\n window.removeEventListener('resize', resize)\n }\n }\n }, [handleResize, shouldResizeOnWindowResize])\n useEffect(() => {\n if (carouselTrackWrapperRef.current) {\n if (carouselSlideAxis === 'x') {\n carouselTrackWrapperRef.current.style.top = '0px'\n }\n if (carouselSlideAxis === 'y') {\n carouselTrackWrapperRef.current.style.left = '0px'\n }\n }\n }, [carouselSlideAxis])\n useEffect(() => {\n setTimeout(() => adjustCarouselWrapperPosition(carouselTrackWrapperRef.current!), 150)\n }, [adjustCarouselWrapperPosition, carouselSlideAxis, itemsPerSlide])\n\n function setSlideActionType(type: SlideActionType) {\n slideActionType.current = type\n }\n function getSlideActionType() {\n return slideActionType.current\n }\n function setActiveItem(newItem: number) {\n activeItem.current = newItem\n }\n function getCurrentActiveItem() {\n return activeItem.current\n }\n function getIsAnimating() {\n return isAnimating.current\n }\n function setIsAnimating(val: boolean) {\n isAnimating.current = val\n }\n function setIsDragging(val: boolean) {\n isDragging.current = val\n }\n function getIsDragging() {\n return isDragging.current\n }\n function getPrevItem() {\n const currentActiveItem = getCurrentActiveItem()\n if (currentActiveItem === 0) {\n return items.length - 1\n }\n return currentActiveItem - 1\n }\n function getNextItem() {\n const currentActiveItem = getCurrentActiveItem()\n if (currentActiveItem === items.length - 1) {\n return 0\n }\n return currentActiveItem + 1\n }\n function getIsNextItem(id: string) {\n const itemIndex = findItemIndex(id)\n const activeItem = getCurrentActiveItem()\n if (withLoop && activeItem === items.length - 1) {\n return itemIndex === 0\n }\n return itemIndex === activeItem + 1\n }\n function getIsPrevItem(id: string) {\n const itemIndex = findItemIndex(id)\n const activeItem = getCurrentActiveItem()\n if (withLoop && activeItem === 0) {\n return itemIndex === items.length - 1\n }\n return itemIndex === activeItem - 1\n }\n function findItemIndex(id: string) {\n return items.findIndex(item => item.id === id)\n }\n function slideToItem({\n from,\n to = -1,\n customTo,\n immediate = false,\n onRest = () => {},\n }: SlideToItemFnProps) {\n if (!immediate) {\n setActiveItem(to)\n setIsAnimating(true)\n emitObservable({\n eventName: 'onSlideStartChange',\n slideActionType: getSlideActionType(),\n nextItem: {\n index: itemsPerSlide === 'fluid' ? -1 : to,\n id: itemsPerSlide === 'fluid' ? '' : items[to].id,\n },\n })\n }\n\n function getFromValue() {\n if (typeof from === 'number') {\n return {\n from: {\n [carouselSlideAxis]: from,\n },\n }\n }\n return {}\n }\n function getToValue() {\n if (typeof customTo === 'number') {\n return {\n [carouselSlideAxis]: customTo,\n }\n }\n return {\n [carouselSlideAxis]: -(getSlideValue() * to),\n }\n }\n\n setCarouselStyles.start({\n ...getFromValue(),\n to: getToValue(),\n immediate,\n onRest: val => {\n if (val.finished) {\n setIsDragging(false)\n setIsAnimating(false)\n onRest()\n if (!immediate) {\n emitObservable({\n eventName: 'onSlideChange',\n slideActionType: getSlideActionType(),\n currentItem: {\n index: itemsPerSlide === 'fluid' ? -1 : getCurrentActiveItem(),\n id: itemsPerSlide === 'fluid' ? '' : items[getCurrentActiveItem()].id,\n },\n })\n }\n }\n },\n })\n if (enableThumbsWrapperScroll && withThumbs && !immediate) {\n handleThumbsScroll(to, getSlideActionType())\n }\n }\n function getIsLastItem() {\n return getCurrentActiveItem() === items.length - 1\n }\n function slideToPrevItem() {\n setSlideActionType('prev')\n\n if (itemsPerSlide === 'fluid') {\n if (getIfItemsNotFillTheCarousel()) {\n return\n }\n const nextPrevValue = getCurrentSlidedValue() + getSlideValue() + 200\n\n if (freeScroll) {\n const nextValue = mainCarouselWrapperRef.current!.scrollLeft - getSlideValue()\n slideToItem({\n customTo: nextValue < 0 ? 0 : nextValue,\n from: mainCarouselWrapperRef.current!.scrollLeft,\n })\n } else if (nextPrevValue >= 0) {\n if (withLoop) {\n slideToItem({\n from: getCurrentSlidedValue() - getCarouselItemWidth() * items.length,\n customTo:\n getCurrentSlidedValue() -\n getCarouselItemWidth() * items.length +\n getSlideValue(),\n })\n } else {\n slideToItem({\n customTo: 0,\n })\n }\n } else {\n slideToItem({\n customTo: getCurrentSlidedValue() + getSlideValue(),\n })\n }\n if (slideFluidEndReached.current) {\n slideFluidEndReached.current = false\n }\n } else {\n if ((!withLoop && getCurrentActiveItem() === 0) || windowIsHidden.current) {\n return\n }\n\n if (getIsFirstItem()) {\n slideToItem({\n from: getCurrentSlidedValue() - getSlideValue() * items.length,\n to: items.length - 1,\n })\n } else {\n slideToItem({\n to: getPrevItem(),\n })\n }\n }\n }\n function slideToNextItem() {\n setSlideActionType('next')\n\n if (itemsPerSlide === 'fluid') {\n if (getIfItemsNotFillTheCarousel()) {\n return\n }\n const willGoAfterLastFluidItem =\n Math.abs(getCurrentSlidedValue() - getSlideValue()) + 100 >=\n fluidTotalWrapperScrollValue.current\n\n if (freeScroll) {\n slideToItem({\n customTo: mainCarouselWrapperRef.current!.scrollLeft + getSlideValue(),\n from: mainCarouselWrapperRef.current!.scrollLeft,\n })\n } else if (\n withLoop &&\n Math.abs(getCurrentSlidedValue() - getSlideValue()) >=\n items.length * getCarouselItemWidth()\n ) {\n const currentWidth = getCarouselItemWidth() * items.length\n slideToItem({\n from: getCurrentSlidedValue() + currentWidth,\n customTo: getCurrentSlidedValue() + currentWidth - getSlideValue(),\n })\n } else if (slideFluidEndReached.current) {\n return\n } else if (willGoAfterLastFluidItem) {\n slideFluidEndReached.current = true\n slideToItem({\n customTo: -fluidTotalWrapperScrollValue.current,\n })\n } else {\n slideToItem({\n customTo: getCurrentSlidedValue() - getSlideValue(),\n })\n }\n } else {\n if (\n (!withLoop && getCurrentActiveItem() === internalItems.length - 1) ||\n windowIsHidden.current\n ) {\n return\n }\n\n if (getIsLastItem()) {\n slideToItem({\n from: getCurrentSlidedValue() + getSlideValue() * items.length,\n to: 0,\n })\n } else {\n slideToItem({\n to: getNextItem(),\n })\n }\n }\n }\n function _slideToItem(item: string | number) {\n let itemIndex = 0\n\n if (typeof item === 'string') {\n itemIndex = items.findIndex(_item => _item.id === item)\n } else {\n itemIndex = item\n }\n\n if (itemIndex >= items.length) {\n throw Error(\n `The item you want to slide to doesn't exist. This could be due to the fact that \n you provide a wrong id or a higher numeric index.`,\n )\n }\n if (itemIndex === getCurrentActiveItem()) {\n return\n }\n\n const currentItem = findItemIndex(items[getCurrentActiveItem()].id)\n const newActiveItem = findItemIndex(items[itemIndex].id)\n\n if (newActiveItem > currentItem) {\n setSlideActionType('next')\n } else {\n setSlideActionType('prev')\n }\n\n slideToItem({\n to: itemIndex,\n })\n }\n\n const contextProps = {\n useListenToCustomEvent,\n getIsFullscreen,\n enterFullscreen,\n exitFullscreen,\n getIsAnimating,\n getIsDragging,\n getIsNextItem,\n getIsPrevItem,\n slideToPrevItem,\n slideToNextItem,\n ...(typeof itemsPerSlide === 'number'\n ? {\n slideToItem: _slideToItem,\n getIsActiveItem: (id: string) => {\n return findItemIndex(id) === getCurrentActiveItem()\n },\n getCurrentActiveItem: () => ({\n id: items[getCurrentActiveItem()].id,\n index: getCurrentActiveItem(),\n }),\n }\n : {}),\n }\n function getItemStyles() {\n if (typeof itemsPerSlide === 'number') {\n return {\n ...(carouselSlideAxis === 'x'\n ? { marginRight: `${gutter}px` }\n : { marginBottom: `${gutter}px` }),\n flex: `1 0 calc(100% / ${itemsPerSlide} - ${\n (gutter * (itemsPerSlide - 1)) / itemsPerSlide\n }px)`,\n }\n }\n return {\n ...(carouselSlideAxis === 'x'\n ? { marginRight: `${gutter}px` }\n : { marginBottom: `${gutter}px` }),\n }\n }\n function getAnimatedWrapperStyles() {\n const percentValue = `calc(100% - ${startEndGutter * 2}px)`\n return {\n width: carouselSlideAxis === 'x' ? percentValue : '100%',\n height: carouselSlideAxis === 'y' ? percentValue : '100%',\n }\n }\n function handleCarouselFragmentRef(ref: HTMLDivElement | null) {\n if (ref) {\n carouselTrackWrapperRef.current = ref\n adjustCarouselWrapperPosition(ref)\n }\n }\n function getOverflowStyles() {\n if (freeScroll) {\n if (carouselSlideAxis === 'x') {\n return {\n overflowX: 'auto',\n }\n }\n return {\n overflowY: 'auto',\n }\n }\n return {}\n }\n function getWheelEvent() {\n if (freeScroll) {\n return {\n onWheel() {\n carouselStyles[carouselSlideAxis].stop()\n },\n }\n }\n return {}\n }\n function getTouchAction() {\n if (!touchAction) {\n if (carouselSlideAxis === 'x') {\n return 'pan-y'\n }\n return 'pan-x'\n }\n return touchAction\n }\n const carouselFragment = (\n <UseSpringCarouselContext.Provider value={contextProps}>\n <div\n ref={mainCarouselWrapperRef}\n className=\"use-spring-carousel-main-wrapper\"\n data-testid=\"use-spring-carousel-wrapper\"\n {...getWheelEvent()}\n // @ts-ignore\n style={{\n display: 'flex',\n position: 'relative',\n width: '100%',\n height: '100%',\n ...getOverflowStyles(),\n }}\n >\n <animated.div\n {...bindDrag()}\n className=\"use-spring-carousel-track-wrapper\"\n data-testid=\"use-spring-carousel-animated-wrapper\"\n ref={handleCarouselFragmentRef}\n style={{\n display: 'flex',\n position: 'relative',\n touchAction: getTouchAction(),\n flexDirection: carouselSlideAxis === 'x' ? 'row' : 'column',\n ...getAnimatedWrapperStyles(),\n ...(freeScroll ? {} : carouselStyles),\n }}\n >\n {internalItems.map(({ id, renderItem }, index) => {\n return (\n <div\n key={`${id}-${index}`}\n className=\"use-spring-carousel-item\"\n data-testid=\"use-spring-carousel-item-wrapper\"\n style={{\n display: 'flex',\n position: 'relative',\n ...getItemStyles(),\n }}\n >\n {renderItem}\n </div>\n )\n })}\n </animated.div>\n </div>\n </UseSpringCarouselContext.Provider>\n )\n const thumbsFragment = (\n <UseSpringCarouselContext.Provider value={contextProps}>\n {_thumbsFragment}\n </UseSpringCarouselContext.Provider>\n )\n\n return {\n ...(contextProps as ReturnHook<T>),\n carouselFragment,\n thumbsFragment,\n }\n}\n\nfunction useSpringCarouselContext<T>() {\n const context = useContext(UseSpringCarouselContext)\n if (!context) {\n throw new Error(\n 'useSpringCarouselContext must be used only inside a component that is rendered inside the Carousel.',\n )\n }\n return context as ReturnHook<T>\n}\n\nexport { useSpringCarousel, useSpringCarouselContext }\n","import { createContext, useRef, useState, useContext } from 'react'\nimport { useTransition, animated, config } from 'react-spring'\nimport { useDrag } from '@use-gesture/react'\nimport { useCustomEventsModule, useThumbsModule, useFullscreenModule } from '../modules'\nimport {\n UseTransitionCarouselContextProps,\n UseTransitionCarouselProps,\n SlideActionType,\n} from '../types'\n\nconst UseTransitionCarouselContext = createContext<\n UseTransitionCarouselContextProps | undefined\n>(undefined)\n\nfunction useTransitionCarouselContext() {\n const context = useContext(UseTransitionCarouselContext)\n\n if (!context) {\n throw new Error(`useTransitionCarouselContext isn't being used within the useTransitionCarousel context; \n use the context only inside a component that is rendered within the Carousel.`)\n }\n\n return context\n}\n\nfunction useTransitionCarousel({\n items,\n withLoop = false,\n withThumbs = false,\n springConfig = config.default,\n thumbsSlideAxis = 'x',\n enableThumbsWrapperScroll = true,\n draggingSlideTreshold = 50,\n prepareThumbsData,\n toPrevItemSpringProps,\n toNextItemSpringProps,\n disableGestures = false,\n CustomThumbsWrapperComponent,\n springAnimationProps = {\n initial: {\n opacity: 1,\n position: 'relative',\n },\n from: {\n opacity: 0,\n position: 'absolute',\n },\n enter: {\n opacity: 1,\n position: 'relative',\n },\n leave: {\n opacity: 0,\n position: 'absolute',\n },\n },\n}: UseTransitionCarouselProps) {\n const slideActionType = useRef<SlideActionType>('next')\n const mainCarouselWrapperRef = useRef<HTMLDivElement | null>(null)\n const isAnimating = useRef(false)\n const [activeItem, setActiveItem] = useState(0)\n\n const { emitObservable, useListenToCustomEvent } = useCustomEventsModule()\n const { enterFullscreen, exitFullscreen, getIsFullscreen } = useFullscreenModule({\n emitObservable,\n mainCarouselWrapperRef,\n })\n const { thumbsFragment: _thumbsFragment, handleThumbsScroll } = useThumbsModule({\n items,\n withThumbs,\n thumbsSlideAxis,\n springConfig,\n prepareThumbsData,\n CustomThumbsWrapperComponent,\n })\n\n const bindSwipe = useDrag(\n ({ last, movement: [mx] }) => {\n if (getIsAnimating()) {\n return\n }\n\n if (last) {\n const prevItemTreshold = mx > draggingSlideTreshold\n const nextItemTreshold = mx < -draggingSlideTreshold\n const isFirstItem = activeItem === 0\n const isLastItem = activeItem === items.length - 1\n\n if (nextItemTreshold) {\n if (!withLoop && isLastItem) {\n return\n }\n\n slideToNextItem()\n emitObservable({\n eventName: 'onLeftSwipe',\n })\n } else if (prevItemTreshold) {\n if (!withLoop && isFirstItem) {\n return\n }\n\n slideToPrevItem()\n emitObservable({\n eventName: 'onRightSwipe',\n })\n }\n }\n },\n {\n enabled: !disableGestures,\n },\n )\n\n function getTransitionConfig() {\n const slideActionType = getSlideActionType()\n\n if (slideActionType === 'prev' && toPrevItemSpringProps) {\n return {\n initial: {\n ...springAnimationProps.initial,\n },\n from: {\n ...toPrevItemSpringProps.from,\n },\n enter: {\n ...toPrevItemSpringProps.enter,\n },\n leave: {\n ...toPrevItemSpringProps.leave,\n },\n }\n }\n\n if (slideActionType === 'next' && toNextItemSpringProps) {\n return {\n initial: {\n ...springAnimationProps.initial,\n },\n from: {\n ...toNextItemSpringProps.from,\n },\n enter: {\n ...toNextItemSpringProps.enter,\n },\n leave: {\n ...toNextItemSpringProps.leave,\n },\n }\n }\n\n return {\n initial: {\n ...springAnimationProps.initial,\n },\n from: {\n ...springAnimationProps.from,\n },\n enter: {\n ...springAnimationProps.enter,\n },\n leave: {\n ...springAnimationProps.leave,\n },\n }\n }\n\n const transitions = useTransition(activeItem, {\n config: springConfig,\n ...getTransitionConfig(),\n onStart: () => setIsAnimating(true),\n keys: null,\n onRest: val => {\n if (val.finished) {\n setIsAnimating(false)\n emitObservable({\n eventName: 'onSlideChange',\n slideActionType: getSlideActionType(),\n currentItem: {\n index: activeItem,\n id: items[activeItem].id,\n },\n })\n }\n },\n })\n const itemsFragment = transitions((styles, item) => (\n <animated.div\n style={{\n ...styles,\n flex: '1 0 100%',\n width: '100%',\n height: '100%',\n }}\n >\n {items[item].renderItem}\n </animated.div>\n ))\n\n function getIsAnimating() {\n return isAnimating.current\n }\n function setIsAnimating(val: boolean) {\n isAnimating.current = val\n }\n function setSlideActionType(type: SlideActionType) {\n slideActionType.current = type\n }\n function getSlideActionType() {\n return slideActionType.current\n }\n function slideToItem(item: string | number) {\n let itemIndex = 0\n\n if (typeof item === 'string') {\n itemIndex = items.findIndex(_item => _item.id === item)\n } else {\n itemIndex = item\n }\n\n if (itemIndex >= items.length) {\n throw Error(\n `The item you want to slide to doesn't exist. This could be due to the fact that \n you provide a wrong id or a higher numeric index.`,\n )\n }\n\n if (itemIndex === activeItem) {\n return\n }\n\n const currentItem = findItemIndex(items[activeItem].id)\n const newActiveItem = findItemIndex(items[itemIndex].id)\n\n emitObservable({\n eventName: 'onSlideStartChange',\n slideActionType: getSlideActionType(),\n nextItem: {\n index: newActiveItem,\n id: items[itemIndex].id,\n },\n })\n\n if (newActiveItem > currentItem) {\n setSlideActionType('next')\n } else {\n setSlideActionType('prev')\n }\n\n setActiveItem(itemIndex)\n\n if (enableThumbsWrapperScroll && withThumbs) {\n handleThumbsScroll(itemIndex)\n }\n }\n function slideToNextItem() {\n const isLastItem = activeItem === items.length - 1\n\n if (withLoop) {\n setSlideActionType('next')\n if (isLastItem) {\n emitObservable({\n eventName: 'onSlideStartChange',\n slideActionType: getSlideActionType(),\n nextItem: {\n index: 0,\n id: items[0].id,\n },\n })\n setActiveItem(0)\n } else {\n emitObservable({\n eventName: 'onSlideStartChange',\n slideActionType: getSlideActionType(),\n nextItem: {\n index: activeItem + 1,\n id: items[activeItem + 1].id,\n },\n })\n setActiveItem(activeItem + 1)\n }\n } else {\n if (!isLastItem) {\n emitObservable({\n eventName: 'onSlideStartChange',\n slideActionType: getSlideActionType(),\n nextItem: {\n index: activeItem + 1,\n id: items[activeItem + 1].id,\n },\n })\n setSlideActionType('next')\n setActiveItem(activeItem + 1)\n }\n }\n }\n function slideToPrevItem() {\n const isFirstItem = activeItem === 0\n\n if (withLoop) {\n setSlideActionType('prev')\n if (isFirstItem) {\n emitObservable({\n eventName: 'onSlideStartChange',\n slideActionType: getSlideActionType(),\n nextItem: {\n index: activeItem - 1,\n id: items[activeItem - 1].id,\n },\n })\n setActiveItem(items.length - 1)\n } else {\n emitObservable({\n eventName: 'onSlideStartChange',\n slideActionType: getSlideActionType(),\n nextItem: {\n index: activeItem - 1,\n id: items[activeItem - 1].id,\n },\n })\n setActiveItem(activeItem - 1)\n }\n } else {\n if (!isFirstItem) {\n setSlideActionType('prev')\n emitObservable({\n eventName: 'onSlideStartChange',\n slideActionType: getSlideActionType(),\n nextItem: {\n index: activeItem - 1,\n id: items[activeItem - 1].id,\n },\n })\n setActiveItem(activeItem - 1)\n }\n }\n }\n function findItemIndex(id: string) {\n return items.findIndex(item => item.id === id)\n }\n function getIsNextItem(id: string) {\n const itemIndex = findItemIndex(id)\n\n if (withLoop && activeItem === items.length - 1) {\n return itemIndex === 0\n }\n\n return itemIndex === activeItem + 1\n }\n function getIsPrevItem(id: string) {\n const itemIndex = findItemIndex(id)\n\n if (withLoop && activeItem === 0) {\n return itemIndex === items.length - 1\n }\n\n return itemIndex === activeItem - 1\n }\n\n const contextProps: UseTransitionCarouselContextProps = {\n activeItem,\n slideToItem,\n slideToNextItem,\n slideToPrevItem,\n enterFullscreen,\n exitFullscreen,\n useListenToCustomEvent,\n getIsNextItem,\n getIsPrevItem,\n getIsAnimating,\n getIsFullscreen,\n getIsActiveItem: id => {\n return findItemIndex(id) === activeItem\n },\n getCurrentActiveItem: () => ({\n id: items[activeItem].id,\n index: activeItem,\n }),\n }\n\n const carouselFragment = (\n <UseTransitionCarouselContext.Provider value={contextProps}>\n <div\n ref={mainCarouselWrapperRef}\n {...bindSwipe()}\n style={{\n display: 'flex',\n position: 'relative',\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n }}\n >\n {itemsFragment}\n </div>\n </UseTransitionCarouselContext.Provider>\n )\n\n const thumbsFragment = (\n <UseTransitionCarouselContext.Provider value={contextProps}>\n {_thumbsFragment}\n </UseTransitionCarouselContext.Provider>\n )\n\n return {\n carouselFragment,\n thumbsFragment,\n ...contextProps,\n }\n}\n\nexport { useTransitionCarouselContext, useTransitionCarousel }\n"],"names":["_jsx"],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-spring-carousel",
|
|
3
|
-
"version": "1.9.29-
|
|
3
|
+
"version": "1.9.29-beta49",
|
|
4
4
|
"description": "A new Carousel experience for the web",
|
|
5
5
|
"homepage": "https://react-spring-carousel-js.emilianobucci.com",
|
|
6
6
|
"repository": "https://github.com/Emiliano-Bucci/react-spring-carousel",
|
|
@@ -17,12 +17,18 @@
|
|
|
17
17
|
"react-spring-slider",
|
|
18
18
|
"animated"
|
|
19
19
|
],
|
|
20
|
-
"main": "dist/cjs/index.js",
|
|
21
|
-
"module": "dist/esm/index.
|
|
22
|
-
"types": "dist/
|
|
20
|
+
"main": "./dist/cjs/index.js",
|
|
21
|
+
"module": "./dist/esm/index.js",
|
|
22
|
+
"types": "./dist/types/index.d.ts",
|
|
23
23
|
"files": [
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"require": "./dist/cjs/index.js",
|
|
29
|
+
"default": "./dist/esm/index.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
26
32
|
"scripts": {
|
|
27
33
|
"start": "start-storybook -p 6006",
|
|
28
34
|
"clean": "rimraf dist",
|
package/dist/esm/index.d.ts
DELETED