react-spring-carousel 3.0.0-beta079 → 3.0.0-beta080
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/index.cjs.js +1 -0
- package/dist/{cjs/index2.cjs → index.cjs2.js} +1 -2
- package/dist/index.cjs3.js +5 -0
- package/dist/index.cjs4.js +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.es.js +12 -0
- package/dist/index.es2.js +6 -0
- package/dist/index.es3.js +1087 -0
- package/dist/{esm/useTransitionCarousel.esm.js → index.es4.js} +15 -17
- package/dist/use-gesture-react.esm-662f7bb4.cjs +1 -0
- package/dist/use-gesture-react.esm-9eb8841a.js +1004 -0
- package/dist/{esm/useThumbsModule-f4286033.js → useThumbsModule-08e90459.js} +23 -24
- package/dist/{cjs/useThumbsModule-57ac2128.cjs → useThumbsModule-f2f898fc.cjs} +3 -4
- package/package.json +4 -4
- package/dist/cjs/index.cjs +0 -2
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/cjs/index2.cjs.map +0 -1
- package/dist/cjs/useEventsModule-0feadbf7.cjs +0 -2
- package/dist/cjs/useEventsModule-0feadbf7.cjs.map +0 -1
- package/dist/cjs/useSpringCarousel.cjs +0 -2
- package/dist/cjs/useSpringCarousel.cjs.map +0 -1
- package/dist/cjs/useThumbsModule-57ac2128.cjs.map +0 -1
- package/dist/cjs/useTransitionCarousel.cjs +0 -2
- package/dist/cjs/useTransitionCarousel.cjs.map +0 -1
- package/dist/esm/index.esm.js +0 -16
- package/dist/esm/index.esm.js.map +0 -1
- package/dist/esm/index.esm2.js +0 -7
- package/dist/esm/index.esm2.js.map +0 -1
- package/dist/esm/useEventsModule-538b90c9.js +0 -34
- package/dist/esm/useEventsModule-538b90c9.js.map +0 -1
- package/dist/esm/useSpringCarousel.esm.js +0 -666
- package/dist/esm/useSpringCarousel.esm.js.map +0 -1
- package/dist/esm/useThumbsModule-f4286033.js.map +0 -1
- package/dist/esm/useTransitionCarousel.esm.js.map +0 -1
- package/dist/types/index.d.ts +0 -3
- package/dist/types/src/index.d.ts +0 -3
- package/dist/types/src/index.js +0 -4
- package/dist/types/src/index.js.map +0 -1
- package/dist/types/src/mockedItems.d.ts +0 -2
- package/dist/types/src/mockedItems.js +0 -46
- package/dist/types/src/mockedItems.js.map +0 -1
- package/dist/types/src/modules/index.d.ts +0 -1
- package/dist/types/src/modules/index.js +0 -2
- package/dist/types/src/modules/index.js.map +0 -1
- package/dist/types/src/modules/useEventsModule.d.ts +0 -5
- package/dist/types/src/modules/useEventsModule.js +0 -36
- package/dist/types/src/modules/useEventsModule.js.map +0 -1
- package/dist/types/src/modules/useFullscreenModule.d.ts +0 -6
- package/dist/types/src/modules/useFullscreenModule.js +0 -48
- package/dist/types/src/modules/useFullscreenModule.js.map +0 -1
- package/dist/types/src/modules/useThumbsModule.d.ts +0 -6
- package/dist/types/src/modules/useThumbsModule.js +0 -82
- package/dist/types/src/modules/useThumbsModule.js.map +0 -1
- package/dist/types/src/types/common.d.ts +0 -34
- package/dist/types/src/types/common.js +0 -2
- package/dist/types/src/types/common.js.map +0 -1
- package/dist/types/src/types/index.d.ts +0 -3
- package/dist/types/src/types/index.js +0 -4
- package/dist/types/src/types/index.js.map +0 -1
- package/dist/types/src/types/useEventsModule.types.js +0 -2
- package/dist/types/src/types/useEventsModule.types.js.map +0 -1
- package/dist/types/src/types/useFullscreenModule.types.d.ts +0 -6
- package/dist/types/src/types/useFullscreenModule.types.js +0 -2
- package/dist/types/src/types/useFullscreenModule.types.js.map +0 -1
- package/dist/types/src/types/useSpringCarousel.types.js +0 -2
- package/dist/types/src/types/useSpringCarousel.types.js.map +0 -1
- package/dist/types/src/types/useThumbsModule.types.d.ts +0 -8
- package/dist/types/src/types/useThumbsModule.types.js +0 -2
- package/dist/types/src/types/useThumbsModule.types.js.map +0 -1
- package/dist/types/src/types/useTransitionCarousel.types.js +0 -2
- package/dist/types/src/types/useTransitionCarousel.types.js.map +0 -1
- package/dist/types/src/useSpringCarousel.d.ts +0 -18
- package/dist/types/src/useSpringCarousel.js +0 -917
- package/dist/types/src/useSpringCarousel.js.map +0 -1
- package/dist/types/src/useTransitionCarousel.d.ts +0 -5
- package/dist/types/src/useTransitionCarousel.js +0 -285
- package/dist/types/src/useTransitionCarousel.js.map +0 -1
- package/dist/types/tsconfig.tsbuildinfo +0 -1
- package/dist/types/useEventsModule.types.d.ts +0 -46
- package/dist/types/useFullscreenModule.types.d.ts +0 -6
- package/dist/types/useSpringCarousel.types.d.ts +0 -102
- package/dist/types/useThumbsModule.types.d.ts +0 -8
- package/dist/types/useTransitionCarousel.types.d.ts +0 -33
- /package/dist/{types/common.d.ts → common.d.ts} +0 -0
- /package/dist/{types/src/types/useEventsModule.types.d.ts → useEventsModule.types.d.ts} +0 -0
- /package/dist/{types/src/types/useSpringCarousel.types.d.ts → useSpringCarousel.types.d.ts} +0 -0
- /package/dist/{types/src/types/useTransitionCarousel.types.d.ts → useTransitionCarousel.types.d.ts} +0 -0
|
@@ -22,12 +22,12 @@ function sr() {
|
|
|
22
22
|
if (we)
|
|
23
23
|
return W;
|
|
24
24
|
we = 1;
|
|
25
|
-
var c = Oe, m = Symbol.for("react.element"), j = Symbol.for("react.fragment"),
|
|
25
|
+
var c = Oe, m = Symbol.for("react.element"), j = Symbol.for("react.fragment"), y = Object.prototype.hasOwnProperty, k = c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, g = { key: !0, ref: !0, __self: !0, __source: !0 };
|
|
26
26
|
function x(T, f, O) {
|
|
27
27
|
var p, _ = {}, d = null, b = null;
|
|
28
28
|
O !== void 0 && (d = "" + O), f.key !== void 0 && (d = "" + f.key), f.ref !== void 0 && (b = f.ref);
|
|
29
29
|
for (p in f)
|
|
30
|
-
|
|
30
|
+
y.call(f, p) && !g.hasOwnProperty(p) && (_[p] = f[p]);
|
|
31
31
|
if (T && T.defaultProps)
|
|
32
32
|
for (p in f = T.defaultProps, f)
|
|
33
33
|
_[p] === void 0 && (_[p] = f[p]);
|
|
@@ -48,7 +48,7 @@ var $ = {};
|
|
|
48
48
|
var Ce;
|
|
49
49
|
function fr() {
|
|
50
50
|
return Ce || (Ce = 1, process.env.NODE_ENV !== "production" && function() {
|
|
51
|
-
var c = Oe, m = Symbol.for("react.element"), j = Symbol.for("react.portal"),
|
|
51
|
+
var c = Oe, m = Symbol.for("react.element"), j = Symbol.for("react.portal"), y = Symbol.for("react.fragment"), k = Symbol.for("react.strict_mode"), g = Symbol.for("react.profiler"), x = Symbol.for("react.provider"), T = Symbol.for("react.context"), f = Symbol.for("react.forward_ref"), O = Symbol.for("react.suspense"), p = Symbol.for("react.suspense_list"), _ = Symbol.for("react.memo"), d = Symbol.for("react.lazy"), b = Symbol.for("react.offscreen"), E = Symbol.iterator, Y = "@@iterator";
|
|
52
52
|
function N(e) {
|
|
53
53
|
if (e === null || typeof e != "object")
|
|
54
54
|
return null;
|
|
@@ -76,7 +76,7 @@ function fr() {
|
|
|
76
76
|
var xe = !1, Se = !1, je = !1, ke = !1, De = !1, ee;
|
|
77
77
|
ee = Symbol.for("react.module.reference");
|
|
78
78
|
function Fe(e) {
|
|
79
|
-
return !!(typeof e == "string" || typeof e == "function" || e ===
|
|
79
|
+
return !!(typeof e == "string" || typeof e == "function" || e === y || e === g || De || e === k || e === O || e === p || ke || e === b || xe || Se || je || typeof e == "object" && e !== null && (e.$$typeof === d || e.$$typeof === _ || e.$$typeof === x || e.$$typeof === T || e.$$typeof === f || // This needs to include all possible module reference object
|
|
80
80
|
// types supported by any Flight configuration anywhere since
|
|
81
81
|
// we don't know which Flight build this will end up being used
|
|
82
82
|
// with.
|
|
@@ -100,7 +100,7 @@ function fr() {
|
|
|
100
100
|
if (typeof e == "string")
|
|
101
101
|
return e;
|
|
102
102
|
switch (e) {
|
|
103
|
-
case
|
|
103
|
+
case y:
|
|
104
104
|
return "Fragment";
|
|
105
105
|
case j:
|
|
106
106
|
return "Portal";
|
|
@@ -275,9 +275,9 @@ function fr() {
|
|
|
275
275
|
if (l !== 1 || s !== 1)
|
|
276
276
|
do
|
|
277
277
|
if (l--, s--, s < 0 || a[l] !== h[s]) {
|
|
278
|
-
var
|
|
278
|
+
var R = `
|
|
279
279
|
` + a[l].replace(" at new ", " at ");
|
|
280
|
-
return e.displayName &&
|
|
280
|
+
return e.displayName && R.includes("<anonymous>") && (R = R.replace("<anonymous>", e.displayName)), typeof e == "function" && M.set(e, R), R;
|
|
281
281
|
}
|
|
282
282
|
while (l >= 1 && s >= 0);
|
|
283
283
|
break;
|
|
@@ -523,7 +523,7 @@ Check the top-level render call using <` + t + ">.");
|
|
|
523
523
|
return r;
|
|
524
524
|
}
|
|
525
525
|
}
|
|
526
|
-
function
|
|
526
|
+
function Re(e, r) {
|
|
527
527
|
{
|
|
528
528
|
if (!e._store || e._store.validated || e.key != null)
|
|
529
529
|
return;
|
|
@@ -536,14 +536,14 @@ Check the top-level render call using <` + t + ">.");
|
|
|
536
536
|
e && e._owner && e._owner !== X.current && (n = " It was passed a child from " + w(e._owner.type) + "."), D(e), v('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', t, n), D(null);
|
|
537
537
|
}
|
|
538
538
|
}
|
|
539
|
-
function
|
|
539
|
+
function ye(e, r) {
|
|
540
540
|
{
|
|
541
541
|
if (typeof e != "object")
|
|
542
542
|
return;
|
|
543
543
|
if (z(e))
|
|
544
544
|
for (var t = 0; t < e.length; t++) {
|
|
545
545
|
var n = e[t];
|
|
546
|
-
Q(n) &&
|
|
546
|
+
Q(n) && Re(n, r);
|
|
547
547
|
}
|
|
548
548
|
else if (Q(e))
|
|
549
549
|
e._store && (e._store.validated = !0);
|
|
@@ -551,7 +551,7 @@ Check the top-level render call using <` + t + ">.");
|
|
|
551
551
|
var i = N(e);
|
|
552
552
|
if (typeof i == "function" && i !== e.entries)
|
|
553
553
|
for (var u = i.call(e), o; !(o = u.next()).done; )
|
|
554
|
-
Q(o.value) &&
|
|
554
|
+
Q(o.value) && Re(o.value, r);
|
|
555
555
|
}
|
|
556
556
|
}
|
|
557
557
|
}
|
|
@@ -607,19 +607,19 @@ Check the top-level render call using <` + t + ">.");
|
|
|
607
607
|
if (s == null)
|
|
608
608
|
return s;
|
|
609
609
|
if (o) {
|
|
610
|
-
var
|
|
611
|
-
if (
|
|
610
|
+
var R = r.children;
|
|
611
|
+
if (R !== void 0)
|
|
612
612
|
if (n)
|
|
613
|
-
if (z(
|
|
614
|
-
for (var F = 0; F <
|
|
615
|
-
|
|
616
|
-
Object.freeze && Object.freeze(
|
|
613
|
+
if (z(R)) {
|
|
614
|
+
for (var F = 0; F < R.length; F++)
|
|
615
|
+
ye(R[F], e);
|
|
616
|
+
Object.freeze && Object.freeze(R);
|
|
617
617
|
} else
|
|
618
618
|
v("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
|
|
619
619
|
else
|
|
620
|
-
|
|
620
|
+
ye(R, e);
|
|
621
621
|
}
|
|
622
|
-
return e ===
|
|
622
|
+
return e === y ? rr(s) : er(s), s;
|
|
623
623
|
}
|
|
624
624
|
}
|
|
625
625
|
function tr(e, r, t) {
|
|
@@ -629,7 +629,7 @@ Check the top-level render call using <` + t + ">.");
|
|
|
629
629
|
return _e(e, r, t, !1);
|
|
630
630
|
}
|
|
631
631
|
var ar = nr, or = tr;
|
|
632
|
-
$.Fragment =
|
|
632
|
+
$.Fragment = y, $.jsx = ar, $.jsxs = or;
|
|
633
633
|
}()), $;
|
|
634
634
|
}
|
|
635
635
|
(function(c) {
|
|
@@ -643,7 +643,7 @@ function pr({
|
|
|
643
643
|
thumbsSlideAxis: c = "x",
|
|
644
644
|
withThumbs: m = !1,
|
|
645
645
|
prepareThumbsData: j,
|
|
646
|
-
items:
|
|
646
|
+
items: y,
|
|
647
647
|
renderThumbFnProps: k
|
|
648
648
|
}) {
|
|
649
649
|
const g = ir(null), [x, T] = ur(() => ({
|
|
@@ -659,7 +659,7 @@ function pr({
|
|
|
659
659
|
var Y;
|
|
660
660
|
function b() {
|
|
661
661
|
return g.current ? g.current.querySelector(
|
|
662
|
-
`#thumb-item-${
|
|
662
|
+
`#thumb-item-${y[d].id}`
|
|
663
663
|
) : null;
|
|
664
664
|
}
|
|
665
665
|
const E = b();
|
|
@@ -687,7 +687,7 @@ function pr({
|
|
|
687
687
|
renderThumb: E.renderThumb
|
|
688
688
|
}));
|
|
689
689
|
}
|
|
690
|
-
return j ? j(d(
|
|
690
|
+
return j ? j(d(y)) : d(y);
|
|
691
691
|
}
|
|
692
692
|
return {
|
|
693
693
|
thumbsFragment: m ? /* @__PURE__ */ q.jsx(
|
|
@@ -721,4 +721,3 @@ export {
|
|
|
721
721
|
q as j,
|
|
722
722
|
pr as u
|
|
723
723
|
};
|
|
724
|
-
//# sourceMappingURL=useThumbsModule-f4286033.js.map
|
|
@@ -14,15 +14,14 @@
|
|
|
14
14
|
*
|
|
15
15
|
* This source code is licensed under the MIT license found in the
|
|
16
16
|
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var xe;function sr(){return xe||(xe=1,process.env.NODE_ENV!=="production"&&function(){var c=Q,m=Symbol.for("react.element"),j=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),g=Symbol.for("react.profiler"),P=Symbol.for("react.provider"),T=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),C=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),_=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),b=Symbol.for("react.offscreen"),E=Symbol.iterator,Y="@@iterator";function N(e){if(e===null||typeof e!="object")return null;var r=E&&e[E]||e[Y];return typeof r=="function"?r:null}var O=c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function v(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];Ce("error",e,t)}}function Ce(e,r,t){{var n=O.ReactDebugCurrentFrame,i=n.getStackAddendum();i!==""&&(r+="%s",t=t.concat([i]));var u=t.map(function(o){return String(o)});u.unshift("Warning: "+r),Function.prototype.apply.call(console[e],console,u)}}var Oe=!1,Pe=!1,Se=!1,je=!1,ke=!1,ee;ee=Symbol.for("react.module.reference");function De(e){return!!(typeof e=="string"||typeof e=="function"||e===y||e===g||ke||e===k||e===C||e===p||je||e===b||Oe||Pe||Se||typeof e=="object"&&e!==null&&(e.$$typeof===d||e.$$typeof===_||e.$$typeof===P||e.$$typeof===T||e.$$typeof===f||e.$$typeof===ee||e.getModuleId!==void 0))}function Fe(e,r,t){var n=e.displayName;if(n)return n;var i=r.displayName||r.name||"";return i!==""?t+"("+i+")":t}function re(e){return e.displayName||"Context"}function w(e){if(e==null)return null;if(typeof e.tag=="number"&&v("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case y:return"Fragment";case j:return"Portal";case g:return"Profiler";case k:return"StrictMode";case C:return"Suspense";case p:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case T:var r=e;return re(r)+".Consumer";case P:var t=e;return re(t._context)+".Provider";case f:return Fe(e,e.render,"ForwardRef");case _:var n=e.displayName||null;return n!==null?n:w(e.type)||"Memo";case d:{var i=e,u=i._payload,o=i._init;try{return w(o(u))}catch{return null}}}return null}var S=Object.assign,I=0,te,ne,ae,oe,ie,ue,se;function le(){}le.__reactDisabledLog=!0;function Ie(){{if(I===0){te=console.log,ne=console.info,ae=console.warn,oe=console.error,ie=console.group,ue=console.groupCollapsed,se=console.groupEnd;var e={configurable:!0,enumerable:!0,value:le,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}I++}}function Ae(){{if(I--,I===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:S({},e,{value:te}),info:S({},e,{value:ne}),warn:S({},e,{value:ae}),error:S({},e,{value:oe}),group:S({},e,{value:ie}),groupCollapsed:S({},e,{value:ue}),groupEnd:S({},e,{value:se})})}I<0&&v("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var
|
|
18
|
-
`+H+e}}var J=!1,M;{var We=typeof WeakMap=="function"?WeakMap:Map;M=new We}function fe(e,r){if(!e||J)return"";{var t=M.get(e);if(t!==void 0)return t}var n;J=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var u;u=
|
|
17
|
+
*/var xe;function sr(){return xe||(xe=1,process.env.NODE_ENV!=="production"&&function(){var c=Q,m=Symbol.for("react.element"),j=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),g=Symbol.for("react.profiler"),P=Symbol.for("react.provider"),T=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),C=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),_=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),b=Symbol.for("react.offscreen"),E=Symbol.iterator,Y="@@iterator";function N(e){if(e===null||typeof e!="object")return null;var r=E&&e[E]||e[Y];return typeof r=="function"?r:null}var O=c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function v(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];Ce("error",e,t)}}function Ce(e,r,t){{var n=O.ReactDebugCurrentFrame,i=n.getStackAddendum();i!==""&&(r+="%s",t=t.concat([i]));var u=t.map(function(o){return String(o)});u.unshift("Warning: "+r),Function.prototype.apply.call(console[e],console,u)}}var Oe=!1,Pe=!1,Se=!1,je=!1,ke=!1,ee;ee=Symbol.for("react.module.reference");function De(e){return!!(typeof e=="string"||typeof e=="function"||e===y||e===g||ke||e===k||e===C||e===p||je||e===b||Oe||Pe||Se||typeof e=="object"&&e!==null&&(e.$$typeof===d||e.$$typeof===_||e.$$typeof===P||e.$$typeof===T||e.$$typeof===f||e.$$typeof===ee||e.getModuleId!==void 0))}function Fe(e,r,t){var n=e.displayName;if(n)return n;var i=r.displayName||r.name||"";return i!==""?t+"("+i+")":t}function re(e){return e.displayName||"Context"}function w(e){if(e==null)return null;if(typeof e.tag=="number"&&v("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case y:return"Fragment";case j:return"Portal";case g:return"Profiler";case k:return"StrictMode";case C:return"Suspense";case p:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case T:var r=e;return re(r)+".Consumer";case P:var t=e;return re(t._context)+".Provider";case f:return Fe(e,e.render,"ForwardRef");case _:var n=e.displayName||null;return n!==null?n:w(e.type)||"Memo";case d:{var i=e,u=i._payload,o=i._init;try{return w(o(u))}catch{return null}}}return null}var S=Object.assign,I=0,te,ne,ae,oe,ie,ue,se;function le(){}le.__reactDisabledLog=!0;function Ie(){{if(I===0){te=console.log,ne=console.info,ae=console.warn,oe=console.error,ie=console.group,ue=console.groupCollapsed,se=console.groupEnd;var e={configurable:!0,enumerable:!0,value:le,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}I++}}function Ae(){{if(I--,I===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:S({},e,{value:te}),info:S({},e,{value:ne}),warn:S({},e,{value:ae}),error:S({},e,{value:oe}),group:S({},e,{value:ie}),groupCollapsed:S({},e,{value:ue}),groupEnd:S({},e,{value:se})})}I<0&&v("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var q=O.ReactCurrentDispatcher,H;function L(e,r,t){{if(H===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\n( *(at )?)/);H=n&&n[1]||""}return`
|
|
18
|
+
`+H+e}}var J=!1,M;{var We=typeof WeakMap=="function"?WeakMap:Map;M=new We}function fe(e,r){if(!e||J)return"";{var t=M.get(e);if(t!==void 0)return t}var n;J=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var u;u=q.current,q.current=null,Ie();try{if(r){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(o,[])}catch(x){n=x}Reflect.construct(e,[],o)}else{try{o.call()}catch(x){n=x}e.call(o.prototype)}}else{try{throw Error()}catch(x){n=x}e()}}catch(x){if(x&&n&&typeof x.stack=="string"){for(var a=x.stack.split(`
|
|
19
19
|
`),h=n.stack.split(`
|
|
20
20
|
`),s=a.length-1,l=h.length-1;s>=1&&l>=0&&a[s]!==h[l];)l--;for(;s>=1&&l>=0;s--,l--)if(a[s]!==h[l]){if(s!==1||l!==1)do if(s--,l--,l<0||a[s]!==h[l]){var R=`
|
|
21
|
-
`+a[s].replace(" at new "," at ");return e.displayName&&R.includes("<anonymous>")&&(R=R.replace("<anonymous>",e.displayName)),typeof e=="function"&&M.set(e,R),R}while(s>=1&&l>=0);break}}}finally{J=!1,
|
|
21
|
+
`+a[s].replace(" at new "," at ");return e.displayName&&R.includes("<anonymous>")&&(R=R.replace("<anonymous>",e.displayName)),typeof e=="function"&&M.set(e,R),R}while(s>=1&&l>=0);break}}}finally{J=!1,q.current=u,Ae(),Error.prepareStackTrace=i}var F=e?e.displayName||e.name:"",Te=F?L(F):"";return typeof e=="function"&&M.set(e,Te),Te}function $e(e,r,t){return fe(e,!1)}function Ye(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function V(e,r,t){if(e==null)return"";if(typeof e=="function")return fe(e,Ye(e));if(typeof e=="string")return L(e);switch(e){case C:return L("Suspense");case p:return L("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case f:return $e(e.render);case _:return V(e.type,r,t);case d:{var n=e,i=n._payload,u=n._init;try{return V(u(i),r,t)}catch{}}}return""}var U=Object.prototype.hasOwnProperty,ce={},de=O.ReactDebugCurrentFrame;function B(e){if(e){var r=e._owner,t=V(e.type,e._source,r?r.type:null);de.setExtraStackFrame(t)}else de.setExtraStackFrame(null)}function Ne(e,r,t,n,i){{var u=Function.call.bind(U);for(var o in e)if(u(e,o)){var a=void 0;try{if(typeof e[o]!="function"){var h=Error((n||"React class")+": "+t+" type `"+o+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[o]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw h.name="Invariant Violation",h}a=e[o](r,o,n,t,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(s){a=s}a&&!(a instanceof Error)&&(B(i),v("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",n||"React class",t,o,typeof a),B(null)),a instanceof Error&&!(a.message in ce)&&(ce[a.message]=!0,B(i),v("Failed %s type: %s",t,a.message),B(null))}}}var Le=Array.isArray;function G(e){return Le(e)}function Me(e){{var r=typeof Symbol=="function"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||"Object";return t}}function Ve(e){try{return ve(e),!1}catch{return!0}}function ve(e){return""+e}function pe(e){if(Ve(e))return v("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Me(e)),ve(e)}var A=O.ReactCurrentOwner,Ue={key:!0,ref:!0,__self:!0,__source:!0},he,ge,z;z={};function Be(e){if(U.call(e,"ref")){var r=Object.getOwnPropertyDescriptor(e,"ref").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function qe(e){if(U.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function He(e,r){if(typeof e.ref=="string"&&A.current&&r&&A.current.stateNode!==r){var t=w(A.current.type);z[t]||(v('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',w(A.current.type),e.ref),z[t]=!0)}}function Je(e,r){{var t=function(){he||(he=!0,v("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"key",{get:t,configurable:!0})}}function Ge(e,r){{var t=function(){ge||(ge=!0,v("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"ref",{get:t,configurable:!0})}}var ze=function(e,r,t,n,i,u,o){var a={$$typeof:m,type:e,key:r,ref:t,props:o,_owner:u};return a._store={},Object.defineProperty(a._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(a,"_self",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(a,"_source",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze&&(Object.freeze(a.props),Object.freeze(a)),a};function Ke(e,r,t,n,i){{var u,o={},a=null,h=null;t!==void 0&&(pe(t),a=""+t),qe(r)&&(pe(r.key),a=""+r.key),Be(r)&&(h=r.ref,He(r,i));for(u in r)U.call(r,u)&&!Ue.hasOwnProperty(u)&&(o[u]=r[u]);if(e&&e.defaultProps){var s=e.defaultProps;for(u in s)o[u]===void 0&&(o[u]=s[u])}if(a||h){var l=typeof e=="function"?e.displayName||e.name||"Unknown":e;a&&Je(o,l),h&&Ge(o,l)}return ze(e,a,h,i,n,A.current,o)}}var K=O.ReactCurrentOwner,me=O.ReactDebugCurrentFrame;function D(e){if(e){var r=e._owner,t=V(e.type,e._source,r?r.type:null);me.setExtraStackFrame(t)}else me.setExtraStackFrame(null)}var X;X=!1;function Z(e){return typeof e=="object"&&e!==null&&e.$$typeof===m}function be(){{if(K.current){var e=w(K.current.type);if(e)return`
|
|
22
22
|
|
|
23
23
|
Check the render method of \``+e+"`."}return""}}function Xe(e){{if(e!==void 0){var r=e.fileName.replace(/^.*[\\\/]/,""),t=e.lineNumber;return`
|
|
24
24
|
|
|
25
25
|
Check your code at `+r+":"+t+"."}return""}}var Ee={};function Ze(e){{var r=be();if(!r){var t=typeof e=="string"?e:e.displayName||e.name;t&&(r=`
|
|
26
26
|
|
|
27
27
|
Check the top-level render call using <`+t+">.")}return r}}function Re(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=Ze(r);if(Ee[t])return;Ee[t]=!0;var n="";e&&e._owner&&e._owner!==K.current&&(n=" It was passed a child from "+w(e._owner.type)+"."),D(e),v('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),D(null)}}function ye(e,r){{if(typeof e!="object")return;if(G(e))for(var t=0;t<e.length;t++){var n=e[t];Z(n)&&Re(n,r)}else if(Z(e))e._store&&(e._store.validated=!0);else if(e){var i=N(e);if(typeof i=="function"&&i!==e.entries)for(var u=i.call(e),o;!(o=u.next()).done;)Z(o.value)&&Re(o.value,r)}}}function Qe(e){{var r=e.type;if(r==null||typeof r=="string")return;var t;if(typeof r=="function")t=r.propTypes;else if(typeof r=="object"&&(r.$$typeof===f||r.$$typeof===_))t=r.propTypes;else return;if(t){var n=w(r);Ne(t,e.props,"prop",n,e)}else if(r.PropTypes!==void 0&&!X){X=!0;var i=w(r);v("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",i||"Unknown")}typeof r.getDefaultProps=="function"&&!r.getDefaultProps.isReactClassApproved&&v("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function er(e){{for(var r=Object.keys(e.props),t=0;t<r.length;t++){var n=r[t];if(n!=="children"&&n!=="key"){D(e),v("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",n),D(null);break}}e.ref!==null&&(D(e),v("Invalid attribute `ref` supplied to `React.Fragment`."),D(null))}}function _e(e,r,t,n,i,u){{var o=De(e);if(!o){var a="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(a+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var h=Xe(i);h?a+=h:a+=be();var s;e===null?s="null":G(e)?s="array":e!==void 0&&e.$$typeof===m?(s="<"+(w(e.type)||"Unknown")+" />",a=" Did you accidentally export a JSX literal instead of a component?"):s=typeof e,v("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",s,a)}var l=Ke(e,r,t,i,u);if(l==null)return l;if(o){var R=r.children;if(R!==void 0)if(n)if(G(R)){for(var F=0;F<R.length;F++)ye(R[F],e);Object.freeze&&Object.freeze(R)}else v("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else ye(R,e)}return e===y?er(l):Qe(l),l}}function rr(e,r,t){return _e(e,r,t,!0)}function tr(e,r,t){return _e(e,r,t,!1)}var nr=tr,ar=rr;$.Fragment=y,$.jsx=nr,$.jsxs=ar}()),$}(function(c){process.env.NODE_ENV==="production"?c.exports=ur():c.exports=sr()})(ir);function lr(c){const m=c.getBoundingClientRect();return m.top>=0&&m.left>=0&&m.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&m.right<=(window.innerWidth||document.documentElement.clientWidth)}function fr({thumbsSlideAxis:c="x",withThumbs:m=!1,prepareThumbsData:j,items:y,renderThumbFnProps:k}){const g=Q.useRef(null),[P,T]=or.useSpring(()=>({val:0}));function f(){var d;return Math.round(Number((d=g.current)==null?void 0:d[c==="x"?"scrollWidth":"scrollHeight"])-g.current.getBoundingClientRect()[c==="x"?"width":"height"])}function C(d){var Y;function b(){return g.current?g.current.querySelector(`#thumb-item-${y[d].id}`):null}const E=b();if(E&&g.current&&!lr(E)){const N=E.offsetLeft,O=N>f()?f():N;T.start({from:{val:((Y=g.current)==null?void 0:Y[c==="x"?"scrollLeft":"scrollTop"])??0},to:{val:O},onChange:({value:v})=>{g.current&&(g.current[c==="x"?"scrollLeft":"scrollTop"]=Math.abs(v.val))}})}}function p(){function d(b){return b.map(E=>({id:E.id,renderThumb:E.renderThumb}))}return j?j(d(y)):d(y)}return{thumbsFragment:m?exports.jsxRuntimeExports.jsx("div",{className:"use-spring-carousel-thumbs-wrapper",ref:g,onWheel:()=>P.val.stop(),style:{display:"flex",flex:"1",position:"relative",width:"100%",height:"100%",flexDirection:c==="x"?"row":"column",...c==="x"?{overflowX:"auto"}:{overflowY:"auto",maxHeight:"100%"}},children:p().map(({id:d,renderThumb:b})=>{const E=`thumb-item-${d}`;return exports.jsxRuntimeExports.jsx("div",{id:E,className:"thumb-item",children:typeof b=="function"?b(k):b},E)})}):null,handleScroll:C}}exports.useThumbsModule=fr;
|
|
28
|
-
//# sourceMappingURL=useThumbsModule-57ac2128.cjs.map
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-spring-carousel",
|
|
3
|
-
"version": "3.0.0-
|
|
3
|
+
"version": "3.0.0-beta080",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A new <Carousel /> experience for the web",
|
|
6
6
|
"homepage": "https://react-spring-carousel.emilianobucci.com",
|
|
7
7
|
"repository": "https://github.com/Emiliano-Bucci/react-spring-carousel",
|
|
8
8
|
"author": "Emiliano Bucci",
|
|
9
9
|
"license": "MIT",
|
|
10
|
-
"main": "
|
|
11
|
-
"module": "
|
|
12
|
-
"types": "
|
|
10
|
+
"main": "dist/index.cjs.js",
|
|
11
|
+
"module": "dist/index.es.js",
|
|
12
|
+
"types": "dist/index.d.ts",
|
|
13
13
|
"files": [
|
|
14
14
|
"dist"
|
|
15
15
|
],
|
package/dist/cjs/index.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useSpringCarousel.cjs"),r=require("./useTransitionCarousel.cjs");require("./useThumbsModule-57ac2128.cjs");require("react");require("@react-spring/web");require("./useEventsModule-0feadbf7.cjs");require("@use-gesture/react");require("resize-observer-polyfill");require("screenfull");exports.useSpringCarousel=e.useSpringCarousel;exports.useSpringCarouselContext=e.useSpringCarouselContext;exports.useTransitionCarousel=r.useTransitionCarousel;exports.useTransitionCarouselContext=r.useTransitionCarouselContext;
|
|
2
|
-
//# sourceMappingURL=index.cjs.map
|
package/dist/cjs/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/cjs/index2.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const s=require("react"),u="RSC::Event";function o(){const e=s.useRef(null);function c(t){s.useEffect(()=>{e.current||(e.current=document.createElement("div"));function n(r){t(r.detail)}if(e.current)return e.current.addEventListener(u,n,!1),()=>{var r;(r=e.current)==null||r.removeEventListener(u,n,!1)}},[t])}function i(t){if(e.current){const n=new CustomEvent(u,{detail:t});e.current.dispatchEvent(n)}}return{useListenToCustomEvent:c,emitEvent:i}}exports.useEventsModule=o;
|
|
2
|
-
//# sourceMappingURL=useEventsModule-0feadbf7.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useEventsModule-0feadbf7.cjs","sources":["../../src/modules/useEventsModule.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\n\nimport { EventHandler, Events } from '../types/useEventsModule.types'\n\nconst eventLabel = 'RSC::Event'\n\nexport function useEventsModule<T extends 'use-spring' | 'use-transition'>() {\n const targetEvent = useRef<HTMLDivElement | null>(null)\n\n function useListenToCustomEvent(eventHandler: EventHandler<T>) {\n useEffect(() => {\n if (!targetEvent.current) {\n targetEvent.current = document.createElement('div')\n }\n\n function handleEvent(event: CustomEvent<Events<T>>) {\n eventHandler(event.detail)\n }\n\n if (targetEvent.current) {\n // @ts-ignore\n targetEvent.current.addEventListener(eventLabel, handleEvent, false)\n return () => {\n // @ts-ignore\n targetEvent.current?.removeEventListener(eventLabel, handleEvent, false)\n }\n }\n }, [eventHandler])\n }\n function emitEvent(event: Events<T>) {\n if (targetEvent.current) {\n const newEvent = new CustomEvent(eventLabel, {\n detail: event,\n })\n targetEvent.current.dispatchEvent(newEvent)\n }\n }\n\n return {\n useListenToCustomEvent,\n emitEvent,\n }\n}\n"],"names":["eventLabel","useEventsModule","targetEvent","useRef","useListenToCustomEvent","eventHandler","useEffect","handleEvent","event","_a","emitEvent","newEvent"],"mappings":"sCAIMA,EAAa,aAEZ,SAASC,GAA6D,CACrE,MAAAC,EAAcC,SAA8B,IAAI,EAEtD,SAASC,EAAuBC,EAA+B,CAC7DC,EAAAA,UAAU,IAAM,CACTJ,EAAY,UACHA,EAAA,QAAU,SAAS,cAAc,KAAK,GAGpD,SAASK,EAAYC,EAA+B,CAClDH,EAAaG,EAAM,MAAM,CAC3B,CAEA,GAAIN,EAAY,QAEd,OAAAA,EAAY,QAAQ,iBAAiBF,EAAYO,EAAa,EAAK,EAC5D,IAAM,QAEXE,EAAAP,EAAY,UAAZ,MAAAO,EAAqB,oBAAoBT,EAAYO,EAAa,GAAK,CAE3E,EACC,CAACF,CAAY,CAAC,CACnB,CACA,SAASK,EAAUF,EAAkB,CACnC,GAAIN,EAAY,QAAS,CACjB,MAAAS,EAAW,IAAI,YAAYX,EAAY,CAC3C,OAAQQ,CAAA,CACT,EACWN,EAAA,QAAQ,cAAcS,CAAQ,EAE9C,CAEO,MAAA,CACL,uBAAAP,EACA,UAAAM,CAAA,CAEJ"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("./useThumbsModule-57ac2128.cjs"),j=require("@react-spring/web"),c=require("react"),Ve=require("./useEventsModule-0feadbf7.cjs"),De=require("@use-gesture/react"),Be=require("resize-observer-polyfill"),k=require("screenfull");function Oe({mainCarouselWrapperRef:n,onFullScreenChange:m,handleResize:$}){const X=c.useRef(!1);c.useEffect(()=>{function h(){document.fullscreenElement&&(H(!0),m(!0),$&&$()),document.fullscreenElement||(H(!1),m(!1),$&&$())}if(k.isEnabled)return k.on("change",h),()=>{k.isEnabled&&k.off("change",h)}},[]);function H(h){X.current=h}function b(){return X.current}function w(h){k.isEnabled&&k.request(h||n.current)}function i(){k.isEnabled&&k.exit()}return{enterFullscreen:w,exitFullscreen:i,getIsFullscreen:b}}function He({items:n,init:m=!0,withThumbs:$,thumbsSlideAxis:X="x",itemsPerSlide:H=1,slideType:b="fixed",gutter:w=0,withLoop:i=!1,startEndGutter:h=0,carouselSlideAxis:s="x",disableGestures:ae=!1,draggingSlideTreshold:G,slideWhenThresholdIsReached:de=!1,freeScroll:u,enableFreeScrollDrag:xe,initialStartingPosition:L,prepareThumbsData:pe,initialActiveItem:R=0,animateWhenActiveItemChange:ye=!0,getControllerRef:A}){const E=H>n.length?n.length:H,Y=c.useRef(!1),J=c.useRef(G??0),M=c.useRef("initial"),S=c.useRef("initial"),ee=c.useRef("initial"),x=c.useRef(R),f=c.useRef(R===0),l=c.useRef(b==="fixed"&&R===n.length-1),a=c.useRef(null),p=c.useRef(null),te=c.useRef(!0),re=c.useRef(0),ne=c.useRef(0),d=c.useRef(0),Ie=c.useRef(i),Te=c.useRef(b),be=c.useRef(u),P=c.useRef(!1),K=c.useCallback(()=>i?[...n.map(e=>({...e,id:`prev-repeated-item-${e.id}`})),...n,...n.map(e=>({...e,id:`next-repeated-item-${e.id}`}))]:[...n],[n,i])(),[N,y]=j.useSpring(()=>({val:0,pause:!m,onChange:({value:e})=>{u&&a.current?(s==="x"?a.current.scrollLeft=Math.abs(e.val):a.current.scrollTop=Math.abs(e.val),_()):p.current&&(s==="x"?p.current.style.transform=`translate3d(${e.val}px, 0px,0px)`:p.current.style.transform=`translate3d(0px,${e.val}px,0px)`)}}),[u]),{emitEvent:Q,useListenToCustomEvent:U}=Ve.useEventsModule(),{thumbsFragment:Re,handleScroll:Ee}=F.useThumbsModule({withThumbs:!!$,thumbsSlideAxis:X,prepareThumbsData:pe,items:n,renderThumbFnProps:{getIsActiveItem:le,getIsPrevItem:oe,useListenToCustomEvent:U,getIsNextItem:se}}),{enterFullscreen:ge,exitFullscreen:ve,getIsFullscreen:me}=Oe({mainCarouselWrapperRef:a,handleResize:()=>Z(),onFullScreenChange:e=>{Q({eventName:"onFullscreenChange",isFullscreen:e})}});function Me(e){return b==="fixed"&&!u?{marginRight:`${e?0:w}px`,flex:`1 0 calc(100% / ${E} - ${w*(E-1)/E}px)`}:{marginRight:`${e?0:w}px`}}function g(){var r;const e=(r=a.current)==null?void 0:r.querySelector(".use-spring-carousel-item");if(!e)throw Error("No carousel items available!");return e.getBoundingClientRect()[s==="x"?"width":"height"]+w}function W({from:e,to:r,nextActiveItem:t,immediate:o=!1,slideMode:T}){S.current=T,typeof t=="number"&&(u||(x.current=t),Q({eventName:"onSlideStartChange",slideActionType:M.current,slideMode:S.current,nextItem:{startReached:f.current,endReached:l.current,index:u?-1:x.current,id:u?"":n[x.current].id}})),d.current=r,y.start({immediate:o,from:{val:e},to:{val:r},config:{...j.config.default,velocity:N.val.velocity},onRest(B){!o&&B.finished&&Q({eventName:"onSlideChange",slideActionType:M.current,slideMode:S.current,currentItem:{startReached:f.current,endReached:l.current,index:u?-1:x.current,id:u?"":n[x.current].id}})}}),$&&!o&&Ee(x.current)}function v(){var e;return i?g()*n.length:Math.round(Number((e=p.current)==null?void 0:e[s==="x"?"scrollWidth":"scrollHeight"])-p.current.getBoundingClientRect()[s==="x"?"width":"height"]-h*2)}function Ce(){const e=`calc(100% - ${h*2}px)`;return{width:s==="x"?e:"100%",height:s==="y"?e:"100%"}}function ue(){var r;const e=(r=p.current)==null?void 0:r.querySelector(".use-spring-carousel-item");if(!e)throw Error("No carousel items available!");return e.getBoundingClientRect()[s==="x"?"width":"height"]+w}function ce(e){const r=s==="x"?"left":"top",t=p.current;t&&(i?(t.style.top="0px",t.style.left="0px",t.style[r]=`-${e-h}px`,f.current=!1,l.current=!1):(t.style.left="0px",t.style.top="0px"))}function Z(e=!1){if(p.current&&e&&(p.current.style.transform="translate3d(0px, 0px,0px)",p.current.style.left="0",p.current.style.top="0"),b==="fixed"&&ce(L==="center"?ue()*n.length-g()*Math.round((E-1)/2):L==="end"?ue()*n.length-g()*Math.round(E-1):ue()*n.length),b==="fluid"){if(l.current&&v()!==Math.abs(d.current)&&!i){const r=-v();d.current=r,y.start({immediate:!0,val:d.current});return}if(Math.abs(d.current)>0&&v()!==Math.abs(d.current)&&!i&&!u&&ee.current==="backward"){const r=re.current-v(),t=d.current+r;return y.start({immediate:!0,val:t}),()=>{d.current=t}}return}if(!u&&b==="fixed"){const r=-(g()*x.current);if(Math.abs(r)>v()&&!i){const t=-v();l.current=!0,d.current=t,y.start({immediate:!0,val:d.current})}else d.current=r,y.start({immediate:!0,val:r});setTimeout(()=>{Y.current=!1},0)}}function C(){return u&&a.current?a.current[s==="x"?"scrollLeft":"scrollTop"]:N.val.get()}function z(e,r){if(u&&e==="next"){const t=d.current+g();return t>v()?v():t}if(u&&e==="prev"){const t=d.current-g();return t<0?0:t}return e==="next"?typeof r=="number"?-(r*g()):d.current-g():typeof r=="number"?-(r*g()):d.current+g()}function q({type:e,index:r,immediate:t}){if(!m||P.current||f.current&&!i)return;l.current&&(ee.current="backward"),M.current="prev",l.current=!1;const o=typeof r=="number"?r:x.current-1;if(u&&_(),!i){const T=u?z("prev",r)-g()/3<0:z("prev",r)+g()/3>0;if(f.current)return;if(T){f.current=!0,l.current=!1,W({slideMode:e,from:C(),to:0,nextActiveItem:0,immediate:t});return}}if(i&&(f.current||o<0)){f.current=!1,l.current=!0,W({slideMode:e,from:C()-g()*n.length,to:-(g()*n.length)+g(),nextActiveItem:n.length-1,immediate:t});return}o===0&&(f.current=!0),(o===n.length-1||o===-1)&&(l.current=!0),W({slideMode:e,from:C(),to:z("prev",r),nextActiveItem:o,immediate:t})}function V({type:e,index:r,immediate:t}){if(!m||P.current||l.current&&!i)return;f.current&&(ee.current="forward"),M.current="next",f.current=!1;const o=r||x.current+1;if(u&&_(),!i){const T=Math.abs(z("next",r))>v()-g()/3;if(l.current)return;if(T){f.current=!1,l.current=!0,W({slideMode:e,from:C(),to:u?v():-v(),nextActiveItem:o,immediate:t});return}}if(i&&(l.current||o>n.length-1)){l.current=!1,f.current=!0,W({slideMode:e,from:C()+g()*n.length,to:0,nextActiveItem:0,immediate:t});return}o===0&&(f.current=!0),o===n.length-1&&(l.current=!0),W({slideMode:e,from:C(),to:z("next",r),nextActiveItem:o,immediate:t})}function we(){G?J.current=G:J.current=Math.floor(g()/2/2)}function he(){!te.current&&p.current&&(re.current=v(),Ie.current=i,Te.current=b,be.current=u,ne.current=window.innerWidth,d.current=0,ie({id:0,immediate:!0,shouldReset:!0}),we(),Z())}const Fe=m&&!ae&&!u||!!u&&!!xe,ke=De.useDrag(e=>{const r=e.dragging,t=e.offset[s==="x"?0:1],o=e.movement[s==="x"?0:1],T=e.direction[s==="x"?0:1],B=o>J.current,O=o<-J.current,qe=v();if(r){if(T>0?M.current="prev":M.current="next",Q({...e,eventName:"onDrag",slideActionType:M.current}),u){if(t>0){y.start({from:{val:C()},to:{val:0},config:{velocity:e.velocity,friction:50,tension:1e3}}),e.cancel();return}y.start({from:{val:C()},to:{val:-t},config:{velocity:e.velocity,friction:50,tension:1e3}});return}y.start({val:t,config:{velocity:e.velocity,friction:50,tension:1e3}}),de&&O?(V({type:"drag"}),e.cancel()):de&&B&&(q({type:"drag"}),e.cancel()),qe-Math.abs(t)<-(g()*2)&&e.cancel();return}if(e.last&&u&&t>0){y.start({from:{val:C()},to:{val:0},config:{velocity:e.velocity,friction:50,tension:1e3}});return}e.last&&!e.canceled&&u&&(M.current==="prev"&&q({type:"drag"}),M.current==="next"&&V({type:"drag"})),e.last&&!e.canceled&&!u&&(O?!i&&l.current?y.start({val:-v(),config:{...j.config.default,velocity:e.velocity}}):V({type:"drag"}):B?!i&&f.current?y.start({val:0,config:{...j.config.default,velocity:e.velocity}}):q({type:"drag"}):y.start({val:d.current,config:{...j.config.default,velocity:e.velocity}})),e.last&&e.canceled&&y.start({val:d.current,config:{...j.config.default,velocity:e.velocity}})},{enabled:Fe,axis:s,from:()=>u&&a.current?[-a.current.scrollLeft,-a.current.scrollTop]:s==="x"?[N.val.get(),N.val.get()]:[N.val.get(),N.val.get()]});function $e(){return u?s==="x"?{overflowX:"auto"}:{overflowY:"auto"}:{}}function _(){a.current&&(d.current=a.current[s==="x"?"scrollLeft":"scrollTop"],a.current[s==="x"?"scrollLeft":"scrollTop"]===0&&(f.current=!0,l.current=!1),a.current[s==="x"?"scrollLeft":"scrollTop"]>0&&a.current[s==="x"?"scrollLeft":"scrollTop"]<v()&&(f.current=!1,l.current=!1),a.current[s==="x"?"scrollLeft":"scrollTop"]===v()&&(f.current=!1,l.current=!0))}function Ne(){return u?{onWheel(){N.val.stop(),_()}}:{}}function D(e,r){let t=0;if(typeof e=="string"?t=n.findIndex(o=>o.id===e):t=e,t<0||t>=n.length){if(r)throw new Error(r);console.error(`The item doesn't exist; check that the id provided - ${e} - is correct.`),t=-1}return t}function ie({id:e,immediate:r,shouldReset:t,type:o}){if(!m||P.current)return;f.current=!1,l.current=!1;const T=D(e,"The item you want to slide to doesn't exist; check the provided id.");if(T===x.current&&!t)return;const B=D(n[x.current].id),O=D(n[T].id);O>B?V({type:o||t?"initial":"click",index:O,immediate:r}):q({type:o||t?"initial":"click",index:O,immediate:r})}function se(e){const r=D(e,"The item doesn't exist; check the provided id."),t=x.current;return i&&t===n.length-1?r===0:r===t+1}function oe(e){const r=D(e,"The item doesn't exist; check the provided id."),t=x.current;return i&&t===0?r===n.length-1:r===t-1}function le(e){return D(e,"The item you want to check doesn't exist; check the provided id.")===x.current}function je(){return ae?"unset":s==="x"?"pan-y":"pan-x"}const I=u?{useListenToCustomEvent:U,enterFullscreen:ge,exitFullscreen:ve,getIsFullscreen:me,slideToPrevItem:(e=!0)=>{q({type:"click",immediate:!e})},slideToNextItem:(e=!0)=>{V({type:"click",immediate:!e})}}:{useListenToCustomEvent:U,enterFullscreen:ge,exitFullscreen:ve,getIsFullscreen:me,slideToPrevItem:(e=!0)=>{q({type:"click",immediate:!e})},slideToNextItem:(e=!0)=>{V({type:"click",immediate:!e})},slideToItem:(e,r=!0)=>{ie({id:e,immediate:!r})},getIsNextItem:se,getIsPrevItem:oe,getIsActiveItem:le};j.useIsomorphicLayoutEffect(()=>{p.current&&m&&(Y.current=!0,he())},[m]),c.useEffect(()=>{x.current!==R&&ie({id:R,immediate:!ye})},[R]),c.useEffect(()=>{if(m){if(R>n.length-1)throw new Error(`initialActiveItem (${R}) is greater than the total quantity available items (${n.length}).`);E>n.length&&console.warn(`itemsPerSlide (${E}) is greater than the total quantity available items (${n.length}). Fallback to ${n.length})`)}},[R,n.length,E,m]),c.useEffect(()=>{ne.current=window.innerWidth},[]),c.useEffect(()=>{m&&(Y.current=!0,he())},[L,E,h,w,m,i]),c.useEffect(()=>{if(!m)return;function e(){document.hidden?P.current=!0:P.current=!1}return document.addEventListener("visibilitychange",e),()=>{document.removeEventListener("visibilitychange",e)}},[m]),c.useEffect(()=>{if(a.current){let e;const r=new Be(()=>{if(te.current){te.current=!1;return}if(!P.current&&!Y.current){ne.current=window.innerWidth;const t=Z();window.clearTimeout(e),e=setTimeout(()=>{re.current=v(),typeof t=="function"&&t()},100)}});return r.observe(a.current),()=>{r.disconnect()}}},[Z,v]),c.useEffect(()=>{A&&A({slideToNextItem:I.slideToNextItem,slideToPrevItem:I.slideToPrevItem,slideToItem:I==null?void 0:I.slideToItem})},[A,I.slideToItem,I.slideToNextItem,I.slideToPrevItem]);const Pe=F.jsxRuntimeExports.jsx(fe.Provider,{value:I,children:Re}),We=F.jsxRuntimeExports.jsx(fe.Provider,{value:I,children:F.jsxRuntimeExports.jsx("div",{className:"use-spring-carousel-main-wrapper",ref:a,...Ne(),style:{display:"flex",position:"relative",width:"100%",height:"100%",...$e()},children:F.jsxRuntimeExports.jsxs("div",{className:"use-spring-carousel-track-wrapper",ref:p,...ke(),style:{position:"relative",display:"flex",flexDirection:s==="x"?"row":"column",touchAction:je(),...Ce()},children:[(u||!i)&&h?F.jsxRuntimeExports.jsx("div",{style:{flexShrink:0,width:h}}):null,K.map((e,r)=>F.jsxRuntimeExports.jsx("div",{className:"use-spring-carousel-item","data-testid":"use-spring-carousel-item-wrapper",style:{display:"flex",position:"relative",flex:"1",...Me(r===K.findIndex(t=>t.id===K[K.length-1].id))},children:typeof e.renderItem=="function"?e.renderItem({getIsActiveItem:le,getIsNextItem:se,getIsPrevItem:oe,useListenToCustomEvent:U}):e.renderItem},`${e.id}-${r}`)),(u||!i)&&h?F.jsxRuntimeExports.jsx("div",{style:{flexShrink:0,width:h}}):null]})})});return{...I,carouselFragment:We,thumbsFragment:Pe}}const fe=c.createContext(void 0);function ze(){const n=c.useContext(fe);if(!n)throw new Error("useSpringCarouselContext must be used within the carousel.");return n}exports.useSpringCarousel=He;exports.useSpringCarouselContext=ze;
|
|
2
|
-
//# sourceMappingURL=useSpringCarousel.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSpringCarousel.cjs","sources":["../../src/modules/useFullscreenModule.ts","../../src/useSpringCarousel.tsx"],"sourcesContent":["import { useRef, useEffect } from 'react'\nimport screenfull from 'screenfull'\nimport { FullscreenModule } from '../types/useFullscreenModule.types'\n\nexport function useFullscreenModule({\n mainCarouselWrapperRef,\n onFullScreenChange,\n handleResize,\n}: FullscreenModule) {\n const isFullscreen = useRef(false)\n\n useEffect(() => {\n function handleFullscreenChange() {\n if (document.fullscreenElement) {\n setIsFullscreen(true)\n onFullScreenChange(true)\n handleResize && handleResize()\n }\n\n if (!document.fullscreenElement) {\n setIsFullscreen(false)\n onFullScreenChange(false)\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 // eslint-disable-next-line react-hooks/exhaustive-deps\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 { config, useIsomorphicLayoutEffect, useSpring } from '@react-spring/web'\nimport React, { createContext, useCallback, useContext, useEffect, useRef } from 'react'\n\nimport { useEventsModule } from './modules/useEventsModule'\nimport { useDrag } from '@use-gesture/react'\n\nimport { useThumbsModule } from './modules/useThumbsModule'\nimport ResizeObserver from 'resize-observer-polyfill'\n\nimport {\n SlideActionType,\n SlideMode,\n UseSpringCarouselComplete,\n UseSpringCarouselWithFreeScroll,\n UseSpringCarouselWithThumbs,\n UseSpringCarouselWithNoThumbs,\n UseSpringCarouselWithNoFixedItems,\n UseSpringCarouselWithFixedItems,\n UseSpringFreeScrollReturnType,\n UseSpringReturnType,\n SlideType,\n ItemWithThumb,\n} from './types'\nimport { useFullscreenModule } from './modules/useFullscreenModule'\n\ntype ReturnType<T> = T extends true ? UseSpringFreeScrollReturnType : UseSpringReturnType\n\n/**\n * With free scroll\n */\nfunction useSpringCarousel(props: UseSpringCarouselWithFreeScroll): ReturnType<true>\nfunction useSpringCarousel(props: UseSpringCarouselWithThumbs<true>): ReturnType<true>\nfunction useSpringCarousel(props: UseSpringCarouselWithNoThumbs<true>): ReturnType<true>\n/**\n * No free scroll\n */\nfunction useSpringCarousel(props: UseSpringCarouselWithThumbs<false>): ReturnType<false>\nfunction useSpringCarousel(props: UseSpringCarouselWithNoThumbs<false>): ReturnType<false>\nfunction useSpringCarousel(props: UseSpringCarouselWithFixedItems<false>): ReturnType<false>\nfunction useSpringCarousel(props: UseSpringCarouselWithNoFixedItems<false>): ReturnType<false>\n\nfunction useSpringCarousel({\n items,\n init = true,\n withThumbs,\n thumbsSlideAxis = 'x',\n itemsPerSlide: _itemsPerSlide = 1,\n slideType = 'fixed',\n gutter = 0,\n withLoop = false,\n startEndGutter = 0,\n carouselSlideAxis = 'x',\n disableGestures = false,\n draggingSlideTreshold: _draggingSlideTreshold,\n slideWhenThresholdIsReached = false,\n freeScroll,\n enableFreeScrollDrag,\n initialStartingPosition,\n prepareThumbsData,\n initialActiveItem = 0,\n animateWhenActiveItemChange = true,\n getControllerRef,\n}: UseSpringCarouselComplete): ReturnType<typeof freeScroll> {\n const itemsPerSlide = _itemsPerSlide > items.length ? items.length : _itemsPerSlide\n const resizeByPropChange = useRef(false)\n const draggingSlideTreshold = useRef(_draggingSlideTreshold ?? 0)\n const slideActionType = useRef<SlideActionType>('initial')\n const slideModeType = useRef<SlideMode>('initial')\n\n /**\n * After the user hits start/end edges of the carousel,\n * we check where the user is going. This is useful\n * to correctly resize the carousel when the carousel is going\n * backward after reaching the last item in fluid slide mode\n */\n const directionAfterReachingEdges = useRef<'forward' | 'backward' | 'initial'>('initial')\n\n const activeItem = useRef(initialActiveItem)\n const firstItemReached = useRef(initialActiveItem === 0)\n const lastItemReached = useRef(slideType === 'fixed' && initialActiveItem === items.length - 1)\n const mainCarouselWrapperRef = useRef<HTMLDivElement | null>(null)\n const carouselTrackWrapperRef = useRef<HTMLDivElement | null>(null)\n\n const isFirstMount = useRef(true)\n\n const prevTotalScrollValue = useRef(0)\n const prevWindowWidth = useRef(0)\n const prevSlidedValue = useRef(0)\n const prevWithLoop = useRef(withLoop)\n const prevSlideType = useRef(slideType)\n const prevFreeScroll = useRef(freeScroll)\n const windowIsHidden = useRef(false)\n\n const getItems = useCallback(() => {\n if (withLoop) {\n return [\n ...items.map((i) => ({\n ...i,\n id: `prev-repeated-item-${i.id}`,\n })),\n ...items,\n ...items.map((i) => ({\n ...i,\n id: `next-repeated-item-${i.id}`,\n })),\n ]\n }\n return [...items]\n }, [items, withLoop])\n const internalItems = getItems()\n\n const [spring, setSpring] = useSpring(\n () => ({\n val: 0,\n pause: !init,\n onChange: ({ value }) => {\n if (freeScroll && mainCarouselWrapperRef.current) {\n if (carouselSlideAxis === 'x') {\n mainCarouselWrapperRef.current.scrollLeft = Math.abs(value.val)\n } else {\n mainCarouselWrapperRef.current.scrollTop = Math.abs(value.val)\n }\n setStartEndItemReachedOnFreeScroll()\n } else if (carouselTrackWrapperRef.current) {\n if (carouselSlideAxis === 'x') {\n carouselTrackWrapperRef.current.style.transform = `translate3d(${value.val}px, 0px,0px)`\n } else {\n carouselTrackWrapperRef.current.style.transform = `translate3d(0px,${value.val}px,0px)`\n }\n }\n },\n }),\n [freeScroll],\n )\n const { emitEvent, useListenToCustomEvent } = useEventsModule<'use-spring'>()\n const { thumbsFragment, handleScroll } = useThumbsModule<'use-spring'>({\n withThumbs: !!withThumbs,\n thumbsSlideAxis,\n prepareThumbsData,\n items: items as ItemWithThumb<'use-spring'>[],\n renderThumbFnProps: {\n getIsActiveItem,\n getIsPrevItem,\n useListenToCustomEvent,\n getIsNextItem,\n },\n })\n const { enterFullscreen, exitFullscreen, getIsFullscreen } = useFullscreenModule({\n mainCarouselWrapperRef,\n handleResize: () => adjustCarouselWrapperPosition(),\n onFullScreenChange: (val) => {\n emitEvent({\n eventName: 'onFullscreenChange',\n isFullscreen: val,\n })\n },\n })\n\n function getItemStyles(isLastItem: boolean) {\n if (slideType === 'fixed' && !freeScroll) {\n return {\n marginRight: `${isLastItem ? 0 : gutter}px`,\n flex: `1 0 calc(100% / ${itemsPerSlide} - ${\n (gutter * (itemsPerSlide - 1)) / itemsPerSlide\n }px)`,\n }\n }\n return {\n ...{ marginRight: `${isLastItem ? 0 : gutter}px` },\n }\n }\n function getSlideValue() {\n const carouselItem = mainCarouselWrapperRef.current?.querySelector('.use-spring-carousel-item')\n\n if (!carouselItem) {\n throw Error('No carousel items available!')\n }\n\n return (\n carouselItem.getBoundingClientRect()[carouselSlideAxis === 'x' ? 'width' : 'height'] + gutter\n )\n }\n\n type SlideToItem = {\n from: number\n to: number\n nextActiveItem?: number\n immediate?: boolean\n slideMode: SlideMode\n }\n\n function slideToItem({ from, to, nextActiveItem, immediate = false, slideMode }: SlideToItem) {\n slideModeType.current = slideMode\n\n if (typeof nextActiveItem === 'number') {\n if (!freeScroll) {\n activeItem.current = nextActiveItem\n }\n emitEvent({\n eventName: 'onSlideStartChange',\n slideActionType: slideActionType.current,\n slideMode: slideModeType.current,\n nextItem: {\n startReached: firstItemReached.current,\n endReached: lastItemReached.current,\n index: freeScroll ? -1 : activeItem.current,\n id: freeScroll ? '' : items[activeItem.current].id,\n },\n })\n }\n\n prevSlidedValue.current = to\n setSpring.start({\n immediate,\n from: {\n val: from,\n },\n to: {\n val: to,\n },\n config: {\n ...config.default,\n velocity: spring.val.velocity,\n },\n onRest(value) {\n if (!immediate && value.finished) {\n emitEvent({\n eventName: 'onSlideChange',\n slideActionType: slideActionType.current,\n slideMode: slideModeType.current,\n currentItem: {\n startReached: firstItemReached.current,\n endReached: lastItemReached.current,\n index: freeScroll ? -1 : activeItem.current,\n id: freeScroll ? '' : items[activeItem.current].id,\n },\n })\n }\n },\n })\n if (withThumbs && !immediate) {\n handleScroll(activeItem.current)\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n function getTotalScrollValue() {\n if (withLoop) {\n return getSlideValue() * items.length\n }\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 startEndGutter * 2,\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\n function getCarouselItemWidth() {\n const carouselItem = carouselTrackWrapperRef.current?.querySelector('.use-spring-carousel-item')\n if (!carouselItem) {\n throw Error('No carousel items available!')\n }\n return (\n carouselItem.getBoundingClientRect()[carouselSlideAxis === 'x' ? 'width' : 'height'] + gutter\n )\n }\n\n function setPosition(v: number) {\n const positionProperty = carouselSlideAxis === 'x' ? 'left' : 'top'\n const ref = carouselTrackWrapperRef.current\n if (!ref) return\n\n if (withLoop) {\n ref.style.top = '0px'\n ref.style.left = '0px'\n ref.style[positionProperty] = `-${v - startEndGutter}px`\n\n firstItemReached.current = false\n lastItemReached.current = false\n } else {\n ref.style.left = '0px'\n ref.style.top = '0px'\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n function adjustCarouselWrapperPosition(shouldResetPosition = false) {\n if (carouselTrackWrapperRef.current && shouldResetPosition) {\n carouselTrackWrapperRef.current.style.transform = `translate3d(0px, 0px,0px)`\n carouselTrackWrapperRef.current.style.left = `0`\n carouselTrackWrapperRef.current.style.top = `0`\n }\n\n if (slideType === 'fixed') {\n if (initialStartingPosition === 'center') {\n setPosition(\n getCarouselItemWidth() * items.length -\n getSlideValue() * Math.round((itemsPerSlide - 1) / 2),\n )\n } else if (initialStartingPosition === 'end') {\n setPosition(\n getCarouselItemWidth() * items.length - getSlideValue() * Math.round(itemsPerSlide - 1),\n )\n } else {\n setPosition(getCarouselItemWidth() * items.length)\n }\n }\n\n if (slideType === 'fluid') {\n /**\n * User reached the last item and now is resizing the container that becomes smaller/bigger.\n * Example: on mobile devices the user rotates the device\n */\n if (\n lastItemReached.current &&\n getTotalScrollValue() !== Math.abs(prevSlidedValue.current) &&\n !withLoop\n ) {\n const newVal = -getTotalScrollValue()\n prevSlidedValue.current = newVal\n setSpring.start({\n immediate: true,\n val: prevSlidedValue.current,\n })\n return\n }\n\n if (\n Math.abs(prevSlidedValue.current) > 0 &&\n getTotalScrollValue() !== Math.abs(prevSlidedValue.current) &&\n !withLoop &&\n !freeScroll &&\n directionAfterReachingEdges.current === 'backward'\n ) {\n const diff = prevTotalScrollValue.current - getTotalScrollValue()\n const next = prevSlidedValue.current + diff\n\n setSpring.start({\n immediate: true,\n val: next,\n })\n\n return () => {\n prevSlidedValue.current = next\n }\n }\n\n return\n }\n\n if (!freeScroll && slideType === 'fixed') {\n const nextValue = -(getSlideValue() * activeItem.current)\n\n /**\n * Here we make sure to always show the latest item as the\n * latest item visible in the carousel viewport.\n */\n if (Math.abs(nextValue) > getTotalScrollValue() && !withLoop) {\n const val = -getTotalScrollValue()\n lastItemReached.current = true\n prevSlidedValue.current = val\n setSpring.start({\n immediate: true,\n val: prevSlidedValue.current,\n })\n } else {\n prevSlidedValue.current = nextValue\n setSpring.start({\n immediate: true,\n val: nextValue,\n })\n }\n\n setTimeout(() => {\n resizeByPropChange.current = false\n }, 0)\n }\n }\n function getFromValue() {\n if (freeScroll && mainCarouselWrapperRef.current) {\n return mainCarouselWrapperRef.current[carouselSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop']\n }\n return spring.val.get()\n }\n function getToValue(type: 'next' | 'prev', index?: number) {\n if (freeScroll && type === 'next') {\n const next = prevSlidedValue.current + getSlideValue()\n if (next > getTotalScrollValue()) {\n return getTotalScrollValue()\n }\n return next\n }\n\n if (freeScroll && type === 'prev') {\n const next = prevSlidedValue.current - getSlideValue()\n if (next < 0) {\n return 0\n }\n return next\n }\n\n if (type === 'next') {\n if (typeof index === 'number') {\n return -(index * getSlideValue())\n }\n return prevSlidedValue.current - getSlideValue()\n }\n\n if (typeof index === 'number') {\n return -(index * getSlideValue())\n }\n return prevSlidedValue.current + getSlideValue()\n }\n\n type SlideToPrevNextItem = {\n type: SlideMode\n index?: number\n immediate?: boolean\n }\n function slideToPrevItem({ type, index, immediate }: SlideToPrevNextItem) {\n if (!init || windowIsHidden.current || (firstItemReached.current && !withLoop)) return\n\n if (lastItemReached.current) {\n directionAfterReachingEdges.current = 'backward'\n }\n\n slideActionType.current = 'prev'\n lastItemReached.current = false\n\n const nextItem = typeof index === 'number' ? index : activeItem.current - 1\n\n if (freeScroll) {\n setStartEndItemReachedOnFreeScroll()\n }\n\n if (!withLoop) {\n const nextItemWillExceed = freeScroll\n ? getToValue('prev', index) - getSlideValue() / 3 < 0\n : getToValue('prev', index) + getSlideValue() / 3 > 0\n\n if (firstItemReached.current) return\n if (nextItemWillExceed) {\n firstItemReached.current = true\n lastItemReached.current = false\n\n slideToItem({\n slideMode: type,\n from: getFromValue(),\n to: 0,\n nextActiveItem: 0,\n immediate,\n })\n return\n }\n }\n if (withLoop && (firstItemReached.current || nextItem < 0)) {\n firstItemReached.current = false\n lastItemReached.current = true\n slideToItem({\n slideMode: type,\n from: getFromValue() - getSlideValue() * items.length,\n to: -(getSlideValue() * items.length) + getSlideValue(),\n nextActiveItem: items.length - 1,\n immediate,\n })\n return\n }\n if (nextItem === 0) {\n firstItemReached.current = true\n }\n if (nextItem === items.length - 1 || nextItem === -1) {\n lastItemReached.current = true\n }\n slideToItem({\n slideMode: type,\n from: getFromValue(),\n to: getToValue('prev', index),\n nextActiveItem: nextItem,\n immediate,\n })\n }\n function slideToNextItem({ type, index, immediate }: SlideToPrevNextItem) {\n if (!init || windowIsHidden.current || (lastItemReached.current && !withLoop)) return\n\n if (firstItemReached.current) {\n directionAfterReachingEdges.current = 'forward'\n }\n\n slideActionType.current = 'next'\n firstItemReached.current = false\n\n const nextItem = index || activeItem.current + 1\n\n if (freeScroll) {\n setStartEndItemReachedOnFreeScroll()\n }\n\n if (!withLoop) {\n const nextItemWillExceed =\n Math.abs(getToValue('next', index)) > getTotalScrollValue() - getSlideValue() / 3\n\n if (lastItemReached.current) return\n if (nextItemWillExceed) {\n firstItemReached.current = false\n lastItemReached.current = true\n\n slideToItem({\n slideMode: type,\n from: getFromValue(),\n to: freeScroll ? getTotalScrollValue() : -getTotalScrollValue(),\n nextActiveItem: nextItem,\n immediate,\n })\n return\n }\n }\n if (withLoop && (lastItemReached.current || nextItem > items.length - 1)) {\n lastItemReached.current = false\n firstItemReached.current = true\n slideToItem({\n slideMode: type,\n from: getFromValue() + getSlideValue() * items.length,\n to: 0,\n nextActiveItem: 0,\n immediate,\n })\n return\n }\n if (nextItem === 0) {\n firstItemReached.current = true\n }\n if (nextItem === items.length - 1) {\n lastItemReached.current = true\n }\n slideToItem({\n slideMode: type,\n from: getFromValue(),\n to: getToValue('next', index),\n nextActiveItem: nextItem,\n immediate,\n })\n }\n function setDraggingSliderTreshold() {\n if (_draggingSlideTreshold) {\n draggingSlideTreshold.current = _draggingSlideTreshold\n } else {\n draggingSlideTreshold.current = Math.floor(getSlideValue() / 2 / 2)\n }\n }\n function initializeCarousel() {\n if (!isFirstMount.current && carouselTrackWrapperRef.current) {\n prevTotalScrollValue.current = getTotalScrollValue()\n prevWithLoop.current = withLoop\n prevSlideType.current = slideType\n prevFreeScroll.current = freeScroll\n prevWindowWidth.current = window.innerWidth\n prevSlidedValue.current = 0\n\n internalSlideToItem({ id: 0, immediate: true, shouldReset: true })\n setDraggingSliderTreshold()\n adjustCarouselWrapperPosition()\n }\n }\n\n const enableDrag =\n (init && !disableGestures && !freeScroll) || (!!freeScroll && !!enableFreeScrollDrag)\n\n const bindDrag = useDrag(\n (state) => {\n const isDragging = state.dragging\n const movement = state.offset[carouselSlideAxis === 'x' ? 0 : 1]\n const currentMovement = state.movement[carouselSlideAxis === 'x' ? 0 : 1]\n const direction = state.direction[carouselSlideAxis === 'x' ? 0 : 1]\n\n const prevItemTreshold = currentMovement > draggingSlideTreshold.current\n const nextItemTreshold = currentMovement < -draggingSlideTreshold.current\n const tot = getTotalScrollValue()\n\n if (isDragging) {\n if (direction > 0) {\n slideActionType.current = 'prev'\n } else {\n slideActionType.current = 'next'\n }\n\n emitEvent({\n ...state,\n eventName: 'onDrag',\n slideActionType: slideActionType.current,\n })\n\n if (freeScroll) {\n if (movement > 0) {\n setSpring.start({\n from: {\n val: getFromValue(),\n },\n to: {\n val: 0,\n },\n config: {\n velocity: state.velocity,\n friction: 50,\n tension: 1000,\n },\n })\n state.cancel()\n return\n }\n\n setSpring.start({\n from: {\n val: getFromValue(),\n },\n to: {\n val: -movement,\n },\n config: {\n velocity: state.velocity,\n friction: 50,\n tension: 1000,\n },\n })\n return\n }\n\n setSpring.start({\n val: movement,\n config: {\n velocity: state.velocity,\n friction: 50,\n tension: 1000,\n },\n })\n\n if (slideWhenThresholdIsReached && nextItemTreshold) {\n slideToNextItem({ type: 'drag' })\n state.cancel()\n } else if (slideWhenThresholdIsReached && prevItemTreshold) {\n slideToPrevItem({ type: 'drag' })\n state.cancel()\n }\n\n const res = tot - Math.abs(movement)\n\n if (res < -(getSlideValue() * 2)) {\n state.cancel()\n }\n\n return\n }\n\n if (state.last && freeScroll && movement > 0) {\n setSpring.start({\n from: {\n val: getFromValue(),\n },\n to: {\n val: 0,\n },\n config: {\n velocity: state.velocity,\n friction: 50,\n tension: 1000,\n },\n })\n return\n }\n if (state.last && !state.canceled && freeScroll) {\n if (slideActionType.current === 'prev') {\n slideToPrevItem({ type: 'drag' })\n }\n if (slideActionType.current === 'next') {\n slideToNextItem({ type: 'drag' })\n }\n }\n if (state.last && !state.canceled && !freeScroll) {\n if (nextItemTreshold) {\n if (!withLoop && lastItemReached.current) {\n setSpring.start({\n val: -getTotalScrollValue(),\n config: {\n ...config.default,\n velocity: state.velocity,\n },\n })\n } else {\n slideToNextItem({ type: 'drag' })\n }\n } else if (prevItemTreshold) {\n if (!withLoop && firstItemReached.current) {\n setSpring.start({\n val: 0,\n config: {\n ...config.default,\n velocity: state.velocity,\n },\n })\n } else {\n slideToPrevItem({ type: 'drag' })\n }\n } else {\n setSpring.start({\n val: prevSlidedValue.current,\n config: {\n ...config.default,\n velocity: state.velocity,\n },\n })\n }\n }\n if (state.last && state.canceled) {\n setSpring.start({\n val: prevSlidedValue.current,\n config: {\n ...config.default,\n velocity: state.velocity,\n },\n })\n }\n },\n {\n enabled: enableDrag,\n axis: carouselSlideAxis,\n from: () => {\n if (freeScroll && mainCarouselWrapperRef.current) {\n return [\n -mainCarouselWrapperRef.current.scrollLeft,\n -mainCarouselWrapperRef.current.scrollTop,\n ]\n }\n if (carouselSlideAxis === 'x') {\n return [spring.val.get(), spring.val.get()]\n }\n return [spring.val.get(), spring.val.get()]\n },\n },\n )\n\n function getWrapperOverflowStyles() {\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 setStartEndItemReachedOnFreeScroll() {\n if (mainCarouselWrapperRef.current) {\n prevSlidedValue.current =\n mainCarouselWrapperRef.current[carouselSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop']\n if (\n mainCarouselWrapperRef.current[carouselSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop'] === 0\n ) {\n firstItemReached.current = true\n lastItemReached.current = false\n }\n if (\n mainCarouselWrapperRef.current[carouselSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop'] >\n 0 &&\n mainCarouselWrapperRef.current[carouselSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop'] <\n getTotalScrollValue()\n ) {\n firstItemReached.current = false\n lastItemReached.current = false\n }\n\n if (\n mainCarouselWrapperRef.current[carouselSlideAxis === 'x' ? 'scrollLeft' : 'scrollTop'] ===\n getTotalScrollValue()\n ) {\n firstItemReached.current = false\n lastItemReached.current = true\n }\n }\n }\n function getScrollHandlers() {\n if (freeScroll) {\n return {\n onWheel() {\n spring.val.stop()\n setStartEndItemReachedOnFreeScroll()\n },\n }\n }\n return {}\n }\n function findItemIndex(id: string | number, error?: string) {\n let itemIndex = 0\n\n if (typeof id === 'string') {\n itemIndex = items.findIndex((item) => item.id === id)\n } else {\n itemIndex = id\n }\n if (itemIndex < 0 || itemIndex >= items.length) {\n if (error) {\n throw new Error(error)\n }\n console.error(`The item doesn't exist; check that the id provided - ${id} - is correct.`)\n itemIndex = -1\n }\n\n return itemIndex\n }\n type InternalSlideToItem = {\n id: string | number\n immediate?: boolean\n shouldReset?: boolean\n type?: SlideType\n }\n function internalSlideToItem({ id, immediate, shouldReset, type }: InternalSlideToItem) {\n if (!init || windowIsHidden.current) return\n\n firstItemReached.current = false\n lastItemReached.current = false\n\n const itemIndex = findItemIndex(\n id,\n \"The item you want to slide to doesn't exist; check the provided id.\",\n )\n\n if (itemIndex === activeItem.current && !shouldReset) {\n return\n }\n\n const currentItem = findItemIndex(items[activeItem.current].id)\n const newActiveItem = findItemIndex(items[itemIndex].id)\n\n if (newActiveItem > currentItem) {\n slideToNextItem({\n type: type || shouldReset ? 'initial' : 'click',\n index: newActiveItem,\n immediate,\n })\n } else {\n slideToPrevItem({\n type: type || shouldReset ? 'initial' : 'click',\n index: newActiveItem,\n immediate,\n })\n }\n }\n function getIsNextItem(id: string | number) {\n const itemIndex = findItemIndex(id, \"The item doesn't exist; check the provided id.\")\n const _activeItem = activeItem.current\n if (withLoop && _activeItem === items.length - 1) {\n return itemIndex === 0\n }\n return itemIndex === _activeItem + 1\n }\n function getIsPrevItem(id: string | number) {\n const itemIndex = findItemIndex(id, \"The item doesn't exist; check the provided id.\")\n const _activeItem = activeItem.current\n if (withLoop && _activeItem === 0) {\n return itemIndex === items.length - 1\n }\n return itemIndex === _activeItem - 1\n }\n function getIsActiveItem(id: string | number) {\n return (\n findItemIndex(id, \"The item you want to check doesn't exist; check the provided id.\") ===\n activeItem.current\n )\n }\n function getTouchAction() {\n if (disableGestures) {\n return 'unset'\n }\n\n if (carouselSlideAxis === 'x') {\n return 'pan-y'\n }\n return 'pan-x'\n }\n\n const res = freeScroll\n ? {\n useListenToCustomEvent,\n enterFullscreen,\n exitFullscreen,\n getIsFullscreen,\n slideToPrevItem: (animate = true) => {\n slideToPrevItem({\n type: 'click',\n immediate: !animate,\n })\n },\n slideToNextItem: (animate = true) => {\n slideToNextItem({\n type: 'click',\n immediate: !animate,\n })\n },\n }\n : {\n useListenToCustomEvent,\n enterFullscreen,\n exitFullscreen,\n getIsFullscreen,\n slideToPrevItem: (animate = true) => {\n slideToPrevItem({\n type: 'click',\n immediate: !animate,\n })\n },\n slideToNextItem: (animate = true) => {\n slideToNextItem({\n type: 'click',\n immediate: !animate,\n })\n },\n slideToItem: (id: string | number, animate = true) => {\n internalSlideToItem({ id, immediate: !animate })\n },\n getIsNextItem,\n getIsPrevItem,\n getIsActiveItem,\n }\n\n // uwc-debug-below\n useIsomorphicLayoutEffect(() => {\n /**\n * Set initial track position\n */\n if (carouselTrackWrapperRef.current && init) {\n resizeByPropChange.current = true\n initializeCarousel()\n }\n }, [init])\n useEffect(() => {\n if (activeItem.current !== initialActiveItem) {\n internalSlideToItem({\n id: initialActiveItem,\n immediate: !animateWhenActiveItemChange,\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initialActiveItem])\n useEffect(() => {\n if (init) {\n if (initialActiveItem > items.length - 1) {\n throw new Error(\n `initialActiveItem (${initialActiveItem}) is greater than the total quantity available items (${items.length}).`,\n )\n }\n if (itemsPerSlide > items.length) {\n console.warn(\n `itemsPerSlide (${itemsPerSlide}) is greater than the total quantity available items (${items.length}). Fallback to ${items.length})`,\n )\n }\n }\n }, [initialActiveItem, items.length, itemsPerSlide, init])\n useEffect(() => {\n prevWindowWidth.current = window.innerWidth\n }, [])\n useEffect(() => {\n /**\n * When these props change we reset the carousel\n */\n if (init) {\n resizeByPropChange.current = true\n initializeCarousel()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initialStartingPosition, itemsPerSlide, startEndGutter, gutter, init, withLoop])\n useEffect(() => {\n if (!init) return\n function handleVisibilityChange() {\n if (document.hidden) {\n windowIsHidden.current = true\n } else {\n windowIsHidden.current = false\n }\n }\n document.addEventListener('visibilitychange', handleVisibilityChange)\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange)\n }\n }, [init])\n\n useEffect(() => {\n if (mainCarouselWrapperRef.current) {\n let timer: NodeJS.Timeout\n const observer = new ResizeObserver(() => {\n if (isFirstMount.current) {\n isFirstMount.current = false\n return\n }\n\n if (windowIsHidden.current) return\n if (!resizeByPropChange.current) {\n prevWindowWidth.current = window.innerWidth\n const cb = adjustCarouselWrapperPosition()\n window.clearTimeout(timer)\n\n timer = setTimeout(() => {\n prevTotalScrollValue.current = getTotalScrollValue()\n if (typeof cb === 'function') {\n cb()\n }\n }, 100)\n }\n })\n observer.observe(mainCarouselWrapperRef.current)\n return () => {\n observer.disconnect()\n }\n }\n }, [adjustCarouselWrapperPosition, getTotalScrollValue])\n useEffect(() => {\n if (getControllerRef) {\n getControllerRef({\n slideToNextItem: res.slideToNextItem,\n slideToPrevItem: res.slideToPrevItem,\n slideToItem: res?.slideToItem,\n })\n }\n }, [getControllerRef, res.slideToItem, res.slideToNextItem, res.slideToPrevItem])\n\n const _thumbsFragment = <Context.Provider value={res}>{thumbsFragment}</Context.Provider>\n const carouselFragment = (\n <Context.Provider value={res}>\n <div\n className=\"use-spring-carousel-main-wrapper\"\n ref={mainCarouselWrapperRef}\n {...getScrollHandlers()}\n style={{\n display: 'flex',\n position: 'relative',\n width: '100%',\n height: '100%',\n ...(getWrapperOverflowStyles() as React.CSSProperties),\n }}\n >\n <div\n className=\"use-spring-carousel-track-wrapper\"\n ref={carouselTrackWrapperRef}\n {...bindDrag()}\n style={{\n position: 'relative',\n display: 'flex',\n flexDirection: carouselSlideAxis === 'x' ? 'row' : 'column',\n touchAction: getTouchAction(),\n ...getAnimatedWrapperStyles(),\n }}\n >\n {(freeScroll || !withLoop) && startEndGutter ? (\n <div\n style={{\n flexShrink: 0,\n width: startEndGutter,\n }}\n />\n ) : null}\n {internalItems.map((item, index) => {\n return (\n <div\n key={`${item.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 flex: '1',\n ...getItemStyles(\n index ===\n internalItems.findIndex(\n (i) => i.id === internalItems[internalItems.length - 1].id,\n ),\n ),\n }}\n >\n {typeof item.renderItem === 'function'\n ? item.renderItem({\n getIsActiveItem,\n getIsNextItem,\n getIsPrevItem,\n useListenToCustomEvent,\n })\n : item.renderItem}\n </div>\n )\n })}\n {(freeScroll || !withLoop) && startEndGutter ? (\n <div\n style={{\n flexShrink: 0,\n width: startEndGutter,\n }}\n />\n ) : null}\n </div>\n </div>\n </Context.Provider>\n )\n\n return { ...res, carouselFragment, thumbsFragment: _thumbsFragment }\n}\n\ntype ContextProps<T = undefined> = Omit<\n ReturnType<T extends 'free-scroll' ? true : false>,\n 'carouselFragment' | 'thumbsFragment'\n>\n\nconst Context = createContext<ContextProps | ContextProps<'free-scroll'> | undefined>(undefined)\n\nfunction useSpringCarouselContext<T>() {\n const context = useContext(Context)\n if (!context) {\n throw new Error('useSpringCarouselContext must be used within the carousel.')\n }\n return context as ContextProps<T>\n}\n\nexport { useSpringCarousel, useSpringCarouselContext }\n"],"names":["useFullscreenModule","mainCarouselWrapperRef","onFullScreenChange","handleResize","isFullscreen","useRef","useEffect","handleFullscreenChange","setIsFullscreen","screenfull","_isFullscreen","getIsFullscreen","enterFullscreen","elementRef","exitFullscreen","useSpringCarousel","items","init","withThumbs","thumbsSlideAxis","_itemsPerSlide","slideType","gutter","withLoop","startEndGutter","carouselSlideAxis","disableGestures","_draggingSlideTreshold","slideWhenThresholdIsReached","freeScroll","enableFreeScrollDrag","initialStartingPosition","prepareThumbsData","initialActiveItem","animateWhenActiveItemChange","getControllerRef","itemsPerSlide","resizeByPropChange","draggingSlideTreshold","slideActionType","slideModeType","directionAfterReachingEdges","activeItem","firstItemReached","lastItemReached","carouselTrackWrapperRef","isFirstMount","prevTotalScrollValue","prevWindowWidth","prevSlidedValue","prevWithLoop","prevSlideType","prevFreeScroll","windowIsHidden","internalItems","useCallback","i","spring","setSpring","useSpring","value","setStartEndItemReachedOnFreeScroll","emitEvent","useListenToCustomEvent","useEventsModule","thumbsFragment","handleScroll","useThumbsModule","getIsActiveItem","getIsPrevItem","getIsNextItem","adjustCarouselWrapperPosition","val","getItemStyles","isLastItem","getSlideValue","carouselItem","_a","slideToItem","from","to","nextActiveItem","immediate","slideMode","config","getTotalScrollValue","getAnimatedWrapperStyles","percentValue","getCarouselItemWidth","setPosition","v","positionProperty","ref","shouldResetPosition","newVal","diff","next","nextValue","getFromValue","getToValue","type","index","slideToPrevItem","nextItem","nextItemWillExceed","slideToNextItem","setDraggingSliderTreshold","initializeCarousel","internalSlideToItem","enableDrag","bindDrag","useDrag","state","isDragging","movement","currentMovement","direction","prevItemTreshold","nextItemTreshold","tot","getWrapperOverflowStyles","getScrollHandlers","findItemIndex","id","error","itemIndex","item","shouldReset","currentItem","newActiveItem","_activeItem","getTouchAction","res","animate","useIsomorphicLayoutEffect","handleVisibilityChange","timer","observer","ResizeObserver","cb","_thumbsFragment","jsx","Context","carouselFragment","jsxs","createContext","useSpringCarouselContext","context","useContext"],"mappings":"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"}
|