react-native-reanimated-carousel 4.0.0-alpha.0 → 4.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -160
- package/lib/commonjs/components/Carousel.js +231 -0
- package/lib/commonjs/components/Carousel.js.map +1 -0
- package/lib/commonjs/components/LazyView.js +22 -0
- package/lib/commonjs/components/LazyView.js.map +1 -0
- package/lib/commonjs/components/ScrollViewGesture.js +297 -0
- package/lib/commonjs/components/ScrollViewGesture.js.map +1 -0
- package/lib/commonjs/constants/index.js +21 -1
- package/lib/commonjs/constants/index.js.map +1 -1
- package/lib/commonjs/hooks/useAutoPlay.js +56 -1
- package/lib/commonjs/hooks/useAutoPlay.js.map +1 -1
- package/lib/commonjs/hooks/useCarouselController.js +244 -1
- package/lib/commonjs/hooks/useCarouselController.js.map +1 -1
- package/lib/commonjs/hooks/useCheckMounted.js +23 -1
- package/lib/commonjs/hooks/useCheckMounted.js.map +1 -1
- package/lib/commonjs/hooks/useCommonVariables.js +76 -1
- package/lib/commonjs/hooks/useCommonVariables.js.map +1 -1
- package/lib/commonjs/hooks/useInitProps.js +78 -1
- package/lib/commonjs/hooks/useInitProps.js.map +1 -1
- package/lib/commonjs/hooks/useLayoutConfig.js +39 -1
- package/lib/commonjs/hooks/useLayoutConfig.js.map +1 -1
- package/lib/commonjs/hooks/useOffsetX.js +48 -1
- package/lib/commonjs/hooks/useOffsetX.js.map +1 -1
- package/lib/commonjs/hooks/useOnProgressChange.js +38 -1
- package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
- package/lib/commonjs/hooks/usePropsErrorBoundary.js +36 -1
- package/lib/commonjs/hooks/usePropsErrorBoundary.js.map +1 -1
- package/lib/commonjs/hooks/useUpdateGestureConfig.js +20 -0
- package/lib/commonjs/hooks/useUpdateGestureConfig.js.map +1 -0
- package/lib/commonjs/hooks/useVisibleRanges.js +42 -1
- package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
- package/lib/commonjs/index.js +13 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/layouts/BaseLayout.js +110 -1
- package/lib/commonjs/layouts/BaseLayout.js.map +1 -1
- package/lib/commonjs/layouts/ParallaxLayout.js +83 -1
- package/lib/commonjs/layouts/ParallaxLayout.js.map +1 -1
- package/lib/commonjs/layouts/index.js +20 -1
- package/lib/commonjs/layouts/index.js.map +1 -1
- package/lib/commonjs/layouts/normal.js +27 -1
- package/lib/commonjs/layouts/normal.js.map +1 -1
- package/lib/commonjs/layouts/parallax.js +38 -1
- package/lib/commonjs/layouts/parallax.js.map +1 -1
- package/lib/commonjs/layouts/stack.js +215 -1
- package/lib/commonjs/layouts/stack.js.map +1 -1
- package/lib/commonjs/store/index.js +14 -1
- package/lib/commonjs/store/index.js.map +1 -1
- package/lib/commonjs/types.js +5 -1
- package/lib/commonjs/utils/computeNewIndexWhenDataChanges.js +52 -0
- package/lib/commonjs/utils/computeNewIndexWhenDataChanges.js.map +1 -0
- package/lib/commonjs/utils/computed-with-auto-fill-data.js +124 -0
- package/lib/commonjs/utils/computed-with-auto-fill-data.js.map +1 -0
- package/lib/commonjs/utils/deal-with-animation.js +21 -0
- package/lib/commonjs/utils/deal-with-animation.js.map +1 -0
- package/lib/commonjs/utils/handleroffset-direction.js +16 -0
- package/lib/commonjs/utils/handleroffset-direction.js.map +1 -0
- package/lib/commonjs/utils/index.test.js +74 -0
- package/lib/commonjs/utils/index.test.js.map +1 -0
- package/lib/commonjs/utils/log.js +22 -1
- package/lib/commonjs/utils/log.js.map +1 -1
- package/lib/module/{Carousel.js → components/Carousel.js} +11 -12
- package/lib/module/components/Carousel.js.map +1 -0
- package/lib/module/{ScrollViewGesture.js → components/ScrollViewGesture.js} +14 -6
- package/lib/module/components/ScrollViewGesture.js.map +1 -0
- package/lib/module/hooks/useCarouselController.js +3 -3
- package/lib/module/hooks/useCarouselController.js.map +1 -1
- package/lib/module/hooks/useCommonVariables.js +2 -2
- package/lib/module/hooks/useCommonVariables.js.map +1 -1
- package/lib/module/hooks/useInitProps.js +1 -3
- package/lib/module/hooks/useInitProps.js.map +1 -1
- package/lib/module/hooks/useOnProgressChange.js +1 -1
- package/lib/module/hooks/useOnProgressChange.js.map +1 -1
- package/lib/module/hooks/useUpdateGestureConfig.js +10 -0
- package/lib/module/hooks/useUpdateGestureConfig.js.map +1 -0
- package/lib/module/index.js +1 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/layouts/BaseLayout.js +1 -1
- package/lib/module/layouts/BaseLayout.js.map +1 -1
- package/lib/module/layouts/ParallaxLayout.js +1 -1
- package/lib/module/layouts/ParallaxLayout.js.map +1 -1
- package/lib/module/utils/{computedWithAutoFillData.js → computed-with-auto-fill-data.js} +1 -1
- package/lib/module/utils/computed-with-auto-fill-data.js.map +1 -0
- package/lib/module/utils/{dealWithAnimation.js → deal-with-animation.js} +1 -1
- package/lib/module/utils/deal-with-animation.js.map +1 -0
- package/lib/module/utils/{handlerOffsetDirection.js → handleroffset-direction.js} +1 -1
- package/lib/module/utils/handleroffset-direction.js.map +1 -0
- package/lib/typescript/{Carousel.d.ts → components/Carousel.d.ts} +1 -1
- package/lib/typescript/hooks/useUpdateGestureConfig.d.ts +4 -0
- package/lib/typescript/index.d.ts +2 -2
- package/lib/typescript/types.d.ts +103 -103
- package/package.json +18 -16
- package/src/{Carousel.tsx → components/Carousel.tsx} +13 -13
- package/src/{ScrollViewGesture.tsx → components/ScrollViewGesture.tsx} +30 -15
- package/src/hooks/useCarouselController.tsx +3 -3
- package/src/hooks/useCommonVariables.ts +2 -2
- package/src/hooks/useInitProps.ts +1 -3
- package/src/hooks/useOnProgressChange.ts +1 -1
- package/src/hooks/useUpdateGestureConfig.ts +13 -0
- package/src/index.tsx +2 -2
- package/src/layouts/BaseLayout.tsx +1 -1
- package/src/layouts/ParallaxLayout.tsx +1 -1
- package/src/types.ts +122 -124
- package/README.zh-CN.md +0 -202
- package/lib/commonjs/Carousel.js +0 -2
- package/lib/commonjs/Carousel.js.map +0 -1
- package/lib/commonjs/LazyView.js +0 -2
- package/lib/commonjs/LazyView.js.map +0 -1
- package/lib/commonjs/ScrollViewGesture.js +0 -2
- package/lib/commonjs/ScrollViewGesture.js.map +0 -1
- package/lib/commonjs/hooks/computeNewIndexWhenDataChanges.js +0 -2
- package/lib/commonjs/hooks/computeNewIndexWhenDataChanges.js.map +0 -1
- package/lib/commonjs/hooks/index.test.js +0 -2
- package/lib/commonjs/hooks/index.test.js.map +0 -1
- package/lib/commonjs/utils/computedWithAutoFillData.js +0 -2
- package/lib/commonjs/utils/computedWithAutoFillData.js.map +0 -1
- package/lib/commonjs/utils/dealWithAnimation.js +0 -2
- package/lib/commonjs/utils/dealWithAnimation.js.map +0 -1
- package/lib/commonjs/utils/handlerOffsetDirection.js +0 -2
- package/lib/commonjs/utils/handlerOffsetDirection.js.map +0 -1
- package/lib/module/Carousel.js.map +0 -1
- package/lib/module/ScrollViewGesture.js.map +0 -1
- package/lib/module/utils/computedWithAutoFillData.js.map +0 -1
- package/lib/module/utils/dealWithAnimation.js.map +0 -1
- package/lib/module/utils/handlerOffsetDirection.js.map +0 -1
- /package/lib/module/{LazyView.js → components/LazyView.js} +0 -0
- /package/lib/module/{LazyView.js.map → components/LazyView.js.map} +0 -0
- /package/lib/module/{hooks → utils}/computeNewIndexWhenDataChanges.js +0 -0
- /package/lib/module/{hooks → utils}/computeNewIndexWhenDataChanges.js.map +0 -0
- /package/lib/module/{hooks → utils}/index.test.js +0 -0
- /package/lib/module/{hooks → utils}/index.test.js.map +0 -0
- /package/lib/typescript/{LazyView.d.ts → components/LazyView.d.ts} +0 -0
- /package/lib/typescript/{ScrollViewGesture.d.ts → components/ScrollViewGesture.d.ts} +0 -0
- /package/lib/typescript/{hooks → utils}/computeNewIndexWhenDataChanges.d.ts +0 -0
- /package/lib/typescript/utils/{computedWithAutoFillData.d.ts → computed-with-auto-fill-data.d.ts} +0 -0
- /package/lib/typescript/utils/{dealWithAnimation.d.ts → deal-with-animation.d.ts} +0 -0
- /package/lib/typescript/utils/{handlerOffsetDirection.d.ts → handleroffset-direction.d.ts} +0 -0
- /package/lib/typescript/{hooks → utils}/index.test.d.ts +0 -0
- /package/src/{LazyView.tsx → components/LazyView.tsx} +0 -0
- /package/src/{hooks → utils}/computeNewIndexWhenDataChanges.ts +0 -0
- /package/src/utils/{computedWithAutoFillData.ts → computed-with-auto-fill-data.ts} +0 -0
- /package/src/utils/{dealWithAnimation.ts → deal-with-animation.ts} +0 -0
- /package/src/utils/{handlerOffsetDirection.ts → handleroffset-direction.ts} +0 -0
- /package/src/{hooks → utils}/index.test.ts +0 -0
|
@@ -1,2 +1,84 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ParallaxLayout = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
11
|
+
|
|
12
|
+
var _LazyView = require("../components/LazyView");
|
|
13
|
+
|
|
14
|
+
var _useOffsetX = require("../hooks/useOffsetX");
|
|
15
|
+
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
|
|
18
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
22
|
+
const ParallaxLayout = props => {
|
|
23
|
+
const {
|
|
24
|
+
handlerOffset,
|
|
25
|
+
parallaxScrollingOffset = 100,
|
|
26
|
+
parallaxScrollingScale = 0.8,
|
|
27
|
+
parallaxAdjacentItemScale = parallaxScrollingScale ** 2,
|
|
28
|
+
index,
|
|
29
|
+
width,
|
|
30
|
+
height,
|
|
31
|
+
loop,
|
|
32
|
+
dataLength,
|
|
33
|
+
children,
|
|
34
|
+
visibleRanges,
|
|
35
|
+
vertical
|
|
36
|
+
} = props;
|
|
37
|
+
|
|
38
|
+
const [shouldUpdate, setShouldUpdate] = _react.default.useState(false);
|
|
39
|
+
|
|
40
|
+
const size = props.vertical ? props.height : props.width;
|
|
41
|
+
const x = (0, _useOffsetX.useOffsetX)({
|
|
42
|
+
handlerOffset,
|
|
43
|
+
index,
|
|
44
|
+
size,
|
|
45
|
+
dataLength,
|
|
46
|
+
loop
|
|
47
|
+
}, visibleRanges);
|
|
48
|
+
const offsetXStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
49
|
+
const value = x.value / size;
|
|
50
|
+
const translate = (0, _reactNativeReanimated.interpolate)(value, [-1, 0, 1], [-size + parallaxScrollingOffset, 0, size - parallaxScrollingOffset], _reactNativeReanimated.Extrapolate.EXTEND);
|
|
51
|
+
const zIndex = (0, _reactNativeReanimated.interpolate)(value, [-1, 0, 1], [0, size, 0], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
52
|
+
const scale = (0, _reactNativeReanimated.interpolate)(value, [-1, 0, 1], [parallaxAdjacentItemScale, parallaxScrollingScale, parallaxAdjacentItemScale], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
53
|
+
return {
|
|
54
|
+
transform: [vertical ? {
|
|
55
|
+
translateY: translate
|
|
56
|
+
} : {
|
|
57
|
+
translateX: translate
|
|
58
|
+
}, {
|
|
59
|
+
scale
|
|
60
|
+
}],
|
|
61
|
+
zIndex
|
|
62
|
+
};
|
|
63
|
+
}, [loop, vertical, parallaxScrollingOffset]);
|
|
64
|
+
|
|
65
|
+
const updateView = _react.default.useCallback((negativeRange, positiveRange) => {
|
|
66
|
+
setShouldUpdate(index >= negativeRange[0] && index <= negativeRange[1] || index >= positiveRange[0] && index <= positiveRange[1]);
|
|
67
|
+
}, [index]);
|
|
68
|
+
|
|
69
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => visibleRanges.value, () => {
|
|
70
|
+
(0, _reactNativeReanimated.runOnJS)(updateView)(visibleRanges.value.negativeRange, visibleRanges.value.positiveRange);
|
|
71
|
+
}, [visibleRanges.value]);
|
|
72
|
+
return /*#__PURE__*/_react.default.createElement(_reactNativeReanimated.default.View, {
|
|
73
|
+
style: [{
|
|
74
|
+
width: width || "100%",
|
|
75
|
+
height: height || "100%",
|
|
76
|
+
position: "absolute"
|
|
77
|
+
}, offsetXStyle]
|
|
78
|
+
}, /*#__PURE__*/_react.default.createElement(_LazyView.LazyView, {
|
|
79
|
+
shouldUpdate: shouldUpdate
|
|
80
|
+
}, children));
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
exports.ParallaxLayout = ParallaxLayout;
|
|
2
84
|
//# sourceMappingURL=ParallaxLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ParallaxLayout.tsx"],"names":["ParallaxLayout","props","handlerOffset","parallaxScrollingOffset","parallaxScrollingScale","parallaxAdjacentItemScale","index","width","height","loop","dataLength","children","visibleRanges","vertical","
|
|
1
|
+
{"version":3,"sources":["ParallaxLayout.tsx"],"names":["ParallaxLayout","props","handlerOffset","parallaxScrollingOffset","parallaxScrollingScale","parallaxAdjacentItemScale","index","width","height","loop","dataLength","children","visibleRanges","vertical","shouldUpdate","setShouldUpdate","React","useState","size","x","offsetXStyle","value","translate","Extrapolate","EXTEND","zIndex","CLAMP","scale","transform","translateY","translateX","updateView","useCallback","negativeRange","positiveRange","position"],"mappings":"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","sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport Animated, {\n Extrapolate,\n interpolate,\n runOnJS,\n useAnimatedReaction,\n useAnimatedStyle,\n} from \"react-native-reanimated\";\n\nimport type { ILayoutConfig } from \"./parallax\";\n\nimport { LazyView } from \"../components/LazyView\";\nimport { useOffsetX } from \"../hooks/useOffsetX\";\nimport type { IVisibleRanges } from \"../hooks/useVisibleRanges\";\nimport type { IComputedDirectionTypes } from \"../types\";\n\nexport const ParallaxLayout: React.FC<PropsWithChildren<IComputedDirectionTypes<\n{\n loop?: boolean\n handlerOffset: Animated.SharedValue<number>\n index: number\n dataLength: number\n visibleRanges: IVisibleRanges\n} & ILayoutConfig\n>>> = (props) => {\n const {\n handlerOffset,\n parallaxScrollingOffset = 100,\n parallaxScrollingScale = 0.8,\n parallaxAdjacentItemScale = parallaxScrollingScale ** 2,\n index,\n width,\n height,\n loop,\n dataLength,\n children,\n visibleRanges,\n vertical,\n } = props;\n\n const [shouldUpdate, setShouldUpdate] = React.useState(false);\n\n const size = props.vertical ? props.height : props.width;\n\n const x = useOffsetX(\n {\n handlerOffset,\n index,\n size,\n dataLength,\n loop,\n },\n visibleRanges,\n );\n\n const offsetXStyle = useAnimatedStyle(() => {\n const value = x.value / size;\n\n const translate = interpolate(\n value,\n [-1, 0, 1],\n [\n -size + parallaxScrollingOffset,\n 0,\n size - parallaxScrollingOffset,\n ],\n Extrapolate.EXTEND,\n );\n\n const zIndex = interpolate(\n value,\n [-1, 0, 1],\n [0, size, 0],\n Extrapolate.CLAMP,\n );\n\n const scale = interpolate(\n value,\n [-1, 0, 1],\n [\n parallaxAdjacentItemScale,\n parallaxScrollingScale,\n parallaxAdjacentItemScale,\n ],\n Extrapolate.CLAMP,\n );\n\n return {\n transform: [\n vertical\n ? {\n translateY: translate,\n }\n : {\n translateX: translate,\n },\n {\n scale,\n },\n ],\n zIndex,\n };\n }, [loop, vertical, parallaxScrollingOffset]);\n\n const updateView = React.useCallback(\n (negativeRange: number[], positiveRange: number[]) => {\n setShouldUpdate(\n (index >= negativeRange[0] && index <= negativeRange[1])\n || (index >= positiveRange[0] && index <= positiveRange[1]),\n );\n },\n [index],\n );\n\n useAnimatedReaction(\n () => visibleRanges.value,\n () => {\n runOnJS(updateView)(\n visibleRanges.value.negativeRange,\n visibleRanges.value.positiveRange,\n );\n },\n [visibleRanges.value],\n );\n\n return (\n <Animated.View\n style={[\n {\n width: width || \"100%\",\n height: height || \"100%\",\n position: \"absolute\",\n },\n offsetXStyle,\n ]}\n >\n <LazyView shouldUpdate={shouldUpdate}>{children}</LazyView>\n </Animated.View>\n );\n};\n"]}
|
|
@@ -1,2 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Layouts = void 0;
|
|
7
|
+
|
|
8
|
+
var _normal = require("./normal");
|
|
9
|
+
|
|
10
|
+
var _parallax = require("./parallax");
|
|
11
|
+
|
|
12
|
+
var _stack = require("./stack");
|
|
13
|
+
|
|
14
|
+
const Layouts = {
|
|
15
|
+
normal: _normal.normalLayout,
|
|
16
|
+
parallax: _parallax.parallaxLayout,
|
|
17
|
+
horizontalStack: _stack.horizontalStackLayout,
|
|
18
|
+
verticalStack: _stack.verticalStackLayout
|
|
19
|
+
};
|
|
20
|
+
exports.Layouts = Layouts;
|
|
2
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["Layouts","normal","normalLayout","parallax","parallaxLayout","horizontalStack","horizontalStackLayout","verticalStack","verticalStackLayout"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["Layouts","normal","normalLayout","parallax","parallaxLayout","horizontalStack","horizontalStackLayout","verticalStack","verticalStackLayout"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAIO,MAAMA,OAAO,GAAG;AACrBC,EAAAA,MAAM,EAAEC,oBADa;AAErBC,EAAAA,QAAQ,EAAEC,wBAFW;AAGrBC,EAAAA,eAAe,EAAEC,4BAHI;AAIrBC,EAAAA,aAAa,EAAEC;AAJM,CAAhB","sourcesContent":["import { normalLayout } from \"./normal\";\nimport { parallaxLayout } from \"./parallax\";\nimport { horizontalStackLayout, verticalStackLayout } from \"./stack\";\n\nexport type TMode = \"parallax\" | \"horizontal-stack\" | \"vertical-stack\";\n\nexport const Layouts = {\n normal: normalLayout,\n parallax: parallaxLayout,\n horizontalStack: horizontalStackLayout,\n verticalStack: verticalStackLayout,\n};\n"]}
|
|
@@ -1,2 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.normalLayout = normalLayout;
|
|
7
|
+
|
|
8
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
|
+
|
|
10
|
+
function normalLayout(opts) {
|
|
11
|
+
const {
|
|
12
|
+
size,
|
|
13
|
+
vertical
|
|
14
|
+
} = opts;
|
|
15
|
+
return value => {
|
|
16
|
+
"worklet";
|
|
17
|
+
|
|
18
|
+
const translate = (0, _reactNativeReanimated.interpolate)(value, [-1, 0, 1], [-size, 0, size]);
|
|
19
|
+
return {
|
|
20
|
+
transform: [vertical ? {
|
|
21
|
+
translateY: translate
|
|
22
|
+
} : {
|
|
23
|
+
translateX: translate
|
|
24
|
+
}]
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
}
|
|
2
28
|
//# sourceMappingURL=normal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["normal.ts"],"names":["normalLayout","opts","size","vertical","value","translate","transform","translateY","translateX"
|
|
1
|
+
{"version":3,"sources":["normal.ts"],"names":["normalLayout","opts","size","vertical","value","translate","transform","translateY","translateX"],"mappings":";;;;;;;AAAA;;AAEO,SAASA,YAAT,CAAsBC,IAAtB,EAAiE;AACtE,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAqBF,IAA3B;AAEA,SAAQG,KAAD,IAAmB;AACxB;;AACA,UAAMC,SAAS,GAAG,wCAAYD,KAAZ,EAAmB,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,CAAnB,EAA+B,CAAC,CAACF,IAAF,EAAQ,CAAR,EAAWA,IAAX,CAA/B,CAAlB;AAEA,WAAO;AACLI,MAAAA,SAAS,EAAE,CACTH,QAAQ,GACJ;AACAI,QAAAA,UAAU,EAAEF;AADZ,OADI,GAIJ;AACAG,QAAAA,UAAU,EAAEH;AADZ,OALK;AADN,KAAP;AAWD,GAfD;AAgBD","sourcesContent":["import { interpolate } from \"react-native-reanimated\";\n\nexport function normalLayout(opts: { size: number; vertical: boolean }) {\n const { size, vertical } = opts;\n\n return (value: number) => {\n \"worklet\";\n const translate = interpolate(value, [-1, 0, 1], [-size, 0, size]);\n\n return {\n transform: [\n vertical\n ? {\n translateY: translate,\n }\n : {\n translateX: translate,\n },\n ],\n };\n };\n}\n"]}
|
|
@@ -1,2 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.parallaxLayout = parallaxLayout;
|
|
7
|
+
|
|
8
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
|
+
|
|
10
|
+
function parallaxLayout(baseConfig) {
|
|
11
|
+
let modeConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
12
|
+
const {
|
|
13
|
+
size,
|
|
14
|
+
vertical
|
|
15
|
+
} = baseConfig;
|
|
16
|
+
const {
|
|
17
|
+
parallaxScrollingOffset = 100,
|
|
18
|
+
parallaxScrollingScale = 0.8,
|
|
19
|
+
parallaxAdjacentItemScale = parallaxScrollingScale ** 2
|
|
20
|
+
} = modeConfig;
|
|
21
|
+
return value => {
|
|
22
|
+
"worklet";
|
|
23
|
+
|
|
24
|
+
const translate = (0, _reactNativeReanimated.interpolate)(value, [-1, 0, 1], [-size + parallaxScrollingOffset, 0, size - parallaxScrollingOffset]);
|
|
25
|
+
const zIndex = (0, _reactNativeReanimated.interpolate)(value, [-1, 0, 1], [0, size, 0], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
26
|
+
const scale = (0, _reactNativeReanimated.interpolate)(value, [-1, 0, 1], [parallaxAdjacentItemScale, parallaxScrollingScale, parallaxAdjacentItemScale], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
27
|
+
return {
|
|
28
|
+
transform: [vertical ? {
|
|
29
|
+
translateY: translate
|
|
30
|
+
} : {
|
|
31
|
+
translateX: translate
|
|
32
|
+
}, {
|
|
33
|
+
scale
|
|
34
|
+
}],
|
|
35
|
+
zIndex
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
}
|
|
2
39
|
//# sourceMappingURL=parallax.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["parallax.ts"],"names":["parallaxLayout","baseConfig","modeConfig","size","vertical","parallaxScrollingOffset","parallaxScrollingScale","parallaxAdjacentItemScale","value","translate","zIndex","Extrapolate","CLAMP","scale","transform","translateY","translateX"
|
|
1
|
+
{"version":3,"sources":["parallax.ts"],"names":["parallaxLayout","baseConfig","modeConfig","size","vertical","parallaxScrollingOffset","parallaxScrollingScale","parallaxAdjacentItemScale","value","translate","zIndex","Extrapolate","CLAMP","scale","transform","translateY","translateX"],"mappings":";;;;;;;AAAA;;AAmCO,SAASA,cAAT,CACLC,UADK,EAGL;AAAA,MADAC,UACA,uEAD4B,EAC5B;AACA,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAqBH,UAA3B;AACA,QAAM;AACJI,IAAAA,uBAAuB,GAAG,GADtB;AAEJC,IAAAA,sBAAsB,GAAG,GAFrB;AAGJC,IAAAA,yBAAyB,GAAGD,sBAAsB,IAAI;AAHlD,MAIFJ,UAJJ;AAMA,SAAQM,KAAD,IAAmB;AACxB;;AACA,UAAMC,SAAS,GAAG,wCAChBD,KADgB,EAEhB,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,CAFgB,EAGhB,CAAC,CAACL,IAAD,GAAQE,uBAAT,EAAkC,CAAlC,EAAqCF,IAAI,GAAGE,uBAA5C,CAHgB,CAAlB;AAMA,UAAMK,MAAM,GAAG,wCACbF,KADa,EAEb,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,CAFa,EAGb,CAAC,CAAD,EAAIL,IAAJ,EAAU,CAAV,CAHa,EAIbQ,mCAAYC,KAJC,CAAf;AAOA,UAAMC,KAAK,GAAG,wCACZL,KADY,EAEZ,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,CAFY,EAGZ,CACED,yBADF,EAEED,sBAFF,EAGEC,yBAHF,CAHY,EAQZI,mCAAYC,KARA,CAAd;AAWA,WAAO;AACLE,MAAAA,SAAS,EAAE,CACTV,QAAQ,GACJ;AACAW,QAAAA,UAAU,EAAEN;AADZ,OADI,GAIJ;AACAO,QAAAA,UAAU,EAAEP;AADZ,OALK,EAQT;AACEI,QAAAA;AADF,OARS,CADN;AAaLH,MAAAA;AAbK,KAAP;AAeD,GAzCD;AA0CD","sourcesContent":["import { Extrapolate, interpolate } from \"react-native-reanimated\";\n\nimport type { IComputedDirectionTypes } from \"../types\";\n\ninterface TBaseConfig {\n size: number\n vertical: boolean\n}\n\nexport interface ILayoutConfig {\n /**\n * control prev/next item offset.\n * @default 100\n */\n parallaxScrollingOffset?: number\n /**\n * control prev/current/next item offset.\n * @default 0.8\n */\n parallaxScrollingScale?: number\n /**\n * control prev/next item offset.\n * @default Math.pow(parallaxScrollingScale, 2)\n */\n parallaxAdjacentItemScale?: number\n}\n\nexport type TParallaxModeProps = IComputedDirectionTypes<{\n /**\n * Carousel Animated transitions.\n */\n mode?: \"parallax\"\n modeConfig?: ILayoutConfig\n}>;\n\nexport function parallaxLayout(\n baseConfig: TBaseConfig,\n modeConfig: ILayoutConfig = {},\n) {\n const { size, vertical } = baseConfig;\n const {\n parallaxScrollingOffset = 100,\n parallaxScrollingScale = 0.8,\n parallaxAdjacentItemScale = parallaxScrollingScale ** 2,\n } = modeConfig;\n\n return (value: number) => {\n \"worklet\";\n const translate = interpolate(\n value,\n [-1, 0, 1],\n [-size + parallaxScrollingOffset, 0, size - parallaxScrollingOffset],\n );\n\n const zIndex = interpolate(\n value,\n [-1, 0, 1],\n [0, size, 0],\n Extrapolate.CLAMP,\n );\n\n const scale = interpolate(\n value,\n [-1, 0, 1],\n [\n parallaxAdjacentItemScale,\n parallaxScrollingScale,\n parallaxAdjacentItemScale,\n ],\n Extrapolate.CLAMP,\n );\n\n return {\n transform: [\n vertical\n ? {\n translateY: translate,\n }\n : {\n translateX: translate,\n },\n {\n scale,\n },\n ],\n zIndex,\n };\n };\n}\n"]}
|
|
@@ -1,2 +1,216 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:true});exports.horizontalStackLayout=horizontalStackLayout;exports.useHorizontalStackLayout=useHorizontalStackLayout;exports.verticalStackLayout=verticalStackLayout;var _react=require("react");var _reactNative=require("react-native");var _reactNativeReanimated=require("react-native-reanimated");var screen=_reactNative.Dimensions.get("window");var _worklet_5756272565831_init_data={code:"function anonymous(_value) {\n const {\n screen,\n modeConfig,\n getCommonVariables,\n getCommonStyles,\n interpolate,\n Extrapolate\n } = this._closure;\n const {\n showLength: showLength,\n snapDirection = \"left\",\n moveSize = screen.width,\n stackInterval = 18,\n scaleInterval = 0.04,\n opacityInterval = 0.1,\n rotateZDeg = 30\n } = modeConfig;\n const transform = [];\n const {\n validLength: validLength,\n value: value,\n inputRange: inputRange\n } = getCommonVariables({\n showLength: showLength,\n value: _value,\n snapDirection: snapDirection\n });\n const {\n zIndex: zIndex,\n opacity: opacity\n } = getCommonStyles({\n validLength: validLength,\n value: value,\n opacityInterval: opacityInterval,\n snapDirection: snapDirection\n });\n const styles = {\n transform: transform,\n zIndex: zIndex,\n opacity: opacity\n };\n let translateX;\n let scale;\n let rotateZ;\n if (snapDirection === \"left\") {\n translateX = interpolate(value, inputRange, [-moveSize, 0, validLength * stackInterval], Extrapolate.CLAMP);\n scale = interpolate(value, inputRange, [1, 1, 1 - validLength * scaleInterval], Extrapolate.CLAMP);\n rotateZ = interpolate(value, inputRange, [-rotateZDeg, 0, 0], Extrapolate.CLAMP) + \"deg\";\n } else if (snapDirection === \"right\") {\n translateX = interpolate(value, inputRange, [-validLength * stackInterval, 0, moveSize], Extrapolate.CLAMP);\n scale = interpolate(value, inputRange, [1 - validLength * scaleInterval, 1, 1], Extrapolate.CLAMP);\n rotateZ = interpolate(value, inputRange, [0, 0, rotateZDeg], Extrapolate.CLAMP) + \"deg\";\n }\n transform.push({\n translateX: translateX\n }, {\n scale: scale\n }, {\n rotateZ: rotateZ\n });\n return styles;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/stack.ts",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"_value\",\"screen\",\"modeConfig\",\"getCommonVariables\",\"getCommonStyles\",\"interpolate\",\"Extrapolate\",\"_closure\",\"showLength\",\"snapDirection\",\"moveSize\",\"width\",\"stackInterval\",\"scaleInterval\",\"opacityInterval\",\"rotateZDeg\",\"transform\",\"validLength\",\"value\",\"inputRange\",\"zIndex\",\"opacity\",\"styles\",\"translateX\",\"scale\",\"rotateZ\",\"CLAMP\",\"push\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/stack.ts\"],\"mappings\":\"AAsCS,SAACA,SAAcA,CAAKC,MAAA;EAAA;IAAAC,MAAA;IAAAC,UAAA;IAAAC,kBAAA;IAAAC,eAAA;IAAAC,WAAA;IAAAC;EAAA,SAAAC,QAAA;EAGzB,MAAM;IACJC,UAAU,EAAVA,UAAU;IACVC,aAAa,GAAG,MAAM;IACtBC,QAAQ,GAAGT,MAAM,CAACU,KAAK;IACvBC,aAAa,GAAG,EAAE;IAClBC,aAAa,GAAG,IAAI;IACpBC,eAAe,GAAG,GAAG;IACrBC,UAAU,GAAG;EACf,CAAC,GAAGb,UAAU;EAEd,MAAMc,SAAuC,GAAG,EAAE;EAClD,MAAM;IAAEC,WAAW,EAAXA,WAAW;IAAEC,KAAK,EAALA,KAAK;IAAEC,UAAA,EAAAA;EAAW,CAAC,GAAGhB,kBAAkB,CAAC;IAC5DK,UAAU,EAAEA,UAAW;IACvBU,KAAK,EAAElB,MAAM;IACbS,aAAA,EAAAA;EACF,CAAC,CAAC;EACF,MAAM;IAAEW,MAAM,EAANA,MAAM;IAAEC,OAAA,EAAAA;EAAQ,CAAC,GAAGjB,eAAe,CAAC;IAC1Ca,WAAW,EAAXA,WAAW;IACXC,KAAK,EAALA,KAAK;IACLJ,eAAe,EAAfA,eAAe;IACfL,aAAA,EAAAA;EACF,CAAC,CAAC;EAEF,MAAMa,MAAiB,GAAG;IACxBN,SAAS,EAATA,SAAS;IACTI,MAAM,EAANA,MAAM;IACNC,OAAA,EAAAA;EACF,CAAC;EAED,IAAIE,UAAkB;EACtB,IAAIC,KAAa;EACjB,IAAIC,OAAe;EAEnB,IAAIhB,aAAa,KAAK,MAAM,EAAE;IAC5Bc,UAAU,GAAGlB,WAAW,CACtBa,KAAK,EACLC,UAAU,EACV,CAAC,CAACT,QAAQ,EAAE,CAAC,EAAEO,WAAW,GAAGL,aAAa,CAAC,EAC3CN,WAAW,CAACoB,KACd,CAAC;IACDF,KAAK,GAAGnB,WAAW,CACjBa,KAAK,EACLC,UAAU,EACV,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAGF,WAAW,GAAGJ,aAAa,CAAC,EACvCP,WAAW,CAACoB,KACd,CAAC;IACDD,OAAO,GAAMpB,WAAW,CACtBa,KAAK,EACLC,UAAU,EACV,CAAC,CAACJ,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,EACnBT,WAAW,CAACoB,KACd,CAAE,QAAI;EACR,CAAC,MACI,IAAIjB,aAAa,KAAK,OAAO,EAAE;IAClCc,UAAU,GAAGlB,WAAW,CACtBa,KAAK,EACLC,UAAU,EACV,CAAC,CAACF,WAAW,GAAGL,aAAa,EAAE,CAAC,EAAEF,QAAQ,CAAC,EAC3CJ,WAAW,CAACoB,KACd,CAAC;IACDF,KAAK,GAAGnB,WAAW,CACjBa,KAAK,EACLC,UAAU,EACV,CAAC,CAAC,GAAGF,WAAW,GAAGJ,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,EACvCP,WAAW,CAACoB,KACd,CAAC;IACDD,OAAO,GAAMpB,WAAW,CACtBa,KAAK,EACLC,UAAU,EACV,CAAC,CAAC,EAAE,CAAC,EAAEJ,UAAU,CAAC,EAClBT,WAAW,CAACoB,KACd,CAAE,QAAI;EACR;EAEAV,SAAS,CAACW,IAAI,CACZ;IACEJ,UAAU,EAAEA;EACd,CAAC,EACD;IACEC,KAAK,EAAEA;EACT,CAAC,EACD;IACEC,OAAO,EAAEA;EACX,CACF,CAAC;EAED,OAAOH,MAAM;AACf\"}"};function horizontalStackLayout(){var modeConfig=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return function(){var _e=[new global.Error(),-7,-27];var _f=function _f(_value){var showLength=modeConfig.showLength,_modeConfig$snapDirec=modeConfig.snapDirection,snapDirection=_modeConfig$snapDirec===void 0?"left":_modeConfig$snapDirec,_modeConfig$moveSize=modeConfig.moveSize,moveSize=_modeConfig$moveSize===void 0?screen.width:_modeConfig$moveSize,_modeConfig$stackInte=modeConfig.stackInterval,stackInterval=_modeConfig$stackInte===void 0?18:_modeConfig$stackInte,_modeConfig$scaleInte=modeConfig.scaleInterval,scaleInterval=_modeConfig$scaleInte===void 0?0.04:_modeConfig$scaleInte,_modeConfig$opacityIn=modeConfig.opacityInterval,opacityInterval=_modeConfig$opacityIn===void 0?0.1:_modeConfig$opacityIn,_modeConfig$rotateZDe=modeConfig.rotateZDeg,rotateZDeg=_modeConfig$rotateZDe===void 0?30:_modeConfig$rotateZDe;var transform=[];var _getCommonVariables=getCommonVariables({showLength:showLength,value:_value,snapDirection:snapDirection}),validLength=_getCommonVariables.validLength,value=_getCommonVariables.value,inputRange=_getCommonVariables.inputRange;var _getCommonStyles=getCommonStyles({validLength:validLength,value:value,opacityInterval:opacityInterval,snapDirection:snapDirection}),zIndex=_getCommonStyles.zIndex,opacity=_getCommonStyles.opacity;var styles={transform:transform,zIndex:zIndex,opacity:opacity};var translateX;var scale;var rotateZ;if(snapDirection==="left"){translateX=(0,_reactNativeReanimated.interpolate)(value,inputRange,[-moveSize,0,validLength*stackInterval],_reactNativeReanimated.Extrapolate.CLAMP);scale=(0,_reactNativeReanimated.interpolate)(value,inputRange,[1,1,1-validLength*scaleInterval],_reactNativeReanimated.Extrapolate.CLAMP);rotateZ=`${(0,_reactNativeReanimated.interpolate)(value,inputRange,[-rotateZDeg,0,0],_reactNativeReanimated.Extrapolate.CLAMP)}deg`;}else if(snapDirection==="right"){translateX=(0,_reactNativeReanimated.interpolate)(value,inputRange,[-validLength*stackInterval,0,moveSize],_reactNativeReanimated.Extrapolate.CLAMP);scale=(0,_reactNativeReanimated.interpolate)(value,inputRange,[1-validLength*scaleInterval,1,1],_reactNativeReanimated.Extrapolate.CLAMP);rotateZ=`${(0,_reactNativeReanimated.interpolate)(value,inputRange,[0,0,rotateZDeg],_reactNativeReanimated.Extrapolate.CLAMP)}deg`;}transform.push({translateX:translateX},{scale:scale},{rotateZ:rotateZ});return styles;};_f._closure={screen:screen,modeConfig:modeConfig,getCommonVariables:getCommonVariables,getCommonStyles:getCommonStyles,interpolate:_reactNativeReanimated.interpolate,Extrapolate:_reactNativeReanimated.Extrapolate};_f.__initData=_worklet_5756272565831_init_data;_f.__workletHash=5756272565831;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}();}function useHorizontalStackLayout(){var customAnimationConfig=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var customConfig=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var config=(0,_react.useMemo)(function(){return Object.assign({type:customAnimationConfig.snapDirection==="right"?"negative":"positive",viewCount:customAnimationConfig.showLength},customConfig);},[customAnimationConfig,customConfig]);return{layout:horizontalStackLayout(customAnimationConfig),config:config};}var _worklet_8233536719177_init_data={code:"function anonymous(_value) {\n const {\n screen,\n modeConfig,\n getCommonVariables,\n getCommonStyles,\n interpolate,\n Extrapolate\n } = this._closure;\n const {\n showLength: showLength,\n snapDirection = \"left\",\n moveSize = screen.width,\n stackInterval = 18,\n scaleInterval = 0.04,\n opacityInterval = 0.1,\n rotateZDeg = 30\n } = modeConfig;\n const transform = [];\n const {\n validLength: validLength,\n value: value,\n inputRange: inputRange\n } = getCommonVariables({\n showLength: showLength,\n value: _value,\n snapDirection: snapDirection\n });\n const {\n zIndex: zIndex,\n opacity: opacity\n } = getCommonStyles({\n validLength: validLength,\n value: value,\n opacityInterval: opacityInterval,\n snapDirection: snapDirection\n });\n const styles = {\n transform: transform,\n zIndex: zIndex,\n opacity: opacity\n };\n let translateX;\n let scale;\n let rotateZ;\n let translateY;\n if (snapDirection === \"left\") {\n translateX = interpolate(value, inputRange, [-moveSize, 0, 0], Extrapolate.CLAMP);\n scale = interpolate(value, inputRange, [1, 1, 1 - validLength * scaleInterval], Extrapolate.CLAMP);\n rotateZ = interpolate(value, inputRange, [-rotateZDeg, 0, 0], Extrapolate.CLAMP) + \"deg\";\n translateY = interpolate(value, inputRange, [0, 0, validLength * stackInterval], Extrapolate.CLAMP);\n } else if (snapDirection === \"right\") {\n translateX = interpolate(value, inputRange, [0, 0, moveSize], Extrapolate.CLAMP);\n scale = interpolate(value, inputRange, [1 - validLength * scaleInterval, 1, 1], Extrapolate.CLAMP);\n rotateZ = interpolate(value, inputRange, [0, 0, rotateZDeg], Extrapolate.CLAMP) + \"deg\";\n translateY = interpolate(value, inputRange, [validLength * stackInterval, 0, 0], Extrapolate.CLAMP);\n }\n transform.push({\n translateX: translateX\n }, {\n scale: scale\n }, {\n rotateZ: rotateZ\n }, {\n translateY: translateY\n });\n return styles;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/stack.ts",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"_value\",\"screen\",\"modeConfig\",\"getCommonVariables\",\"getCommonStyles\",\"interpolate\",\"Extrapolate\",\"_closure\",\"showLength\",\"snapDirection\",\"moveSize\",\"width\",\"stackInterval\",\"scaleInterval\",\"opacityInterval\",\"rotateZDeg\",\"transform\",\"validLength\",\"value\",\"inputRange\",\"zIndex\",\"opacity\",\"styles\",\"translateX\",\"scale\",\"rotateZ\",\"translateY\",\"CLAMP\",\"push\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/stack.ts\"],\"mappings\":\"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\"}"};function verticalStackLayout(){var modeConfig=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return function(){var _e=[new global.Error(),-7,-27];var _f=function _f(_value){var showLength=modeConfig.showLength,_modeConfig$snapDirec2=modeConfig.snapDirection,snapDirection=_modeConfig$snapDirec2===void 0?"left":_modeConfig$snapDirec2,_modeConfig$moveSize2=modeConfig.moveSize,moveSize=_modeConfig$moveSize2===void 0?screen.width:_modeConfig$moveSize2,_modeConfig$stackInte2=modeConfig.stackInterval,stackInterval=_modeConfig$stackInte2===void 0?18:_modeConfig$stackInte2,_modeConfig$scaleInte2=modeConfig.scaleInterval,scaleInterval=_modeConfig$scaleInte2===void 0?0.04:_modeConfig$scaleInte2,_modeConfig$opacityIn2=modeConfig.opacityInterval,opacityInterval=_modeConfig$opacityIn2===void 0?0.1:_modeConfig$opacityIn2,_modeConfig$rotateZDe2=modeConfig.rotateZDeg,rotateZDeg=_modeConfig$rotateZDe2===void 0?30:_modeConfig$rotateZDe2;var transform=[];var _getCommonVariables2=getCommonVariables({showLength:showLength,value:_value,snapDirection:snapDirection}),validLength=_getCommonVariables2.validLength,value=_getCommonVariables2.value,inputRange=_getCommonVariables2.inputRange;var _getCommonStyles2=getCommonStyles({validLength:validLength,value:value,opacityInterval:opacityInterval,snapDirection:snapDirection}),zIndex=_getCommonStyles2.zIndex,opacity=_getCommonStyles2.opacity;var styles={transform:transform,zIndex:zIndex,opacity:opacity};var translateX;var scale;var rotateZ;var translateY;if(snapDirection==="left"){translateX=(0,_reactNativeReanimated.interpolate)(value,inputRange,[-moveSize,0,0],_reactNativeReanimated.Extrapolate.CLAMP);scale=(0,_reactNativeReanimated.interpolate)(value,inputRange,[1,1,1-validLength*scaleInterval],_reactNativeReanimated.Extrapolate.CLAMP);rotateZ=`${(0,_reactNativeReanimated.interpolate)(value,inputRange,[-rotateZDeg,0,0],_reactNativeReanimated.Extrapolate.CLAMP)}deg`;translateY=(0,_reactNativeReanimated.interpolate)(value,inputRange,[0,0,validLength*stackInterval],_reactNativeReanimated.Extrapolate.CLAMP);}else if(snapDirection==="right"){translateX=(0,_reactNativeReanimated.interpolate)(value,inputRange,[0,0,moveSize],_reactNativeReanimated.Extrapolate.CLAMP);scale=(0,_reactNativeReanimated.interpolate)(value,inputRange,[1-validLength*scaleInterval,1,1],_reactNativeReanimated.Extrapolate.CLAMP);rotateZ=`${(0,_reactNativeReanimated.interpolate)(value,inputRange,[0,0,rotateZDeg],_reactNativeReanimated.Extrapolate.CLAMP)}deg`;translateY=(0,_reactNativeReanimated.interpolate)(value,inputRange,[validLength*stackInterval,0,0],_reactNativeReanimated.Extrapolate.CLAMP);}transform.push({translateX:translateX},{scale:scale},{rotateZ:rotateZ},{translateY:translateY});return styles;};_f._closure={screen:screen,modeConfig:modeConfig,getCommonVariables:getCommonVariables,getCommonStyles:getCommonStyles,interpolate:_reactNativeReanimated.interpolate,Extrapolate:_reactNativeReanimated.Extrapolate};_f.__initData=_worklet_8233536719177_init_data;_f.__workletHash=8233536719177;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}();}var _worklet_10327424297064_init_data={code:"function getCommonVariables(opts) {\n const {\n showLength: showLength,\n value: _value,\n snapDirection: snapDirection\n } = opts;\n function easeInOutCubic(v) {\n return v < 0.5 ? 4 * v * v * v : 1 - (-2 * v + 2) ** 3 / 2;\n }\n const page = Math.floor(Math.abs(_value));\n const diff = Math.abs(_value) % 1;\n const value = _value < 0 ? -(page + easeInOutCubic(diff)) : page + easeInOutCubic(diff);\n const validLength = showLength - 1;\n let inputRange;\n if (snapDirection === \"left\") inputRange = [-1, 0, validLength];else if (snapDirection === \"right\") inputRange = [-validLength, 0, 1];else throw new Error(\"snapDirection must be set to either left or right\");\n return {\n inputRange: inputRange,\n validLength: validLength,\n value: value\n };\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/stack.ts",sourceMap:"{\"version\":3,\"names\":[\"getCommonVariables\",\"opts\",\"showLength\",\"value\",\"_value\",\"snapDirection\",\"easeInOutCubic\",\"v\",\"page\",\"Math\",\"floor\",\"abs\",\"diff\",\"validLength\",\"inputRange\",\"Error\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/stack.ts\"],\"mappings\":\"AAsQA,SAAAA,kBAASA,CAAmBC,IAAA,EAI3B;EAGC,MAAM;IAAEC,UAAU,EAAVA,UAAU;IAAEC,KAAK,EAAEC,MAAM;IAAEC,aAAA,EAAAA;EAAc,CAAC,GAAGJ,IAAI;EACzD,SAASK,cAAcA,CAACC,CAAS,EAAU;IACzC,OAAOA,CAAC,GAAG,GAAG,GAAG,CAAC,GAAGA,CAAC,GAAGA,CAAC,GAAGA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAGA,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;EAC5D;EACA,MAAMC,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,CAACP,MAAM,CAAC,CAAC;EACzC,MAAMQ,IAAI,GAAGH,IAAI,CAACE,GAAG,CAACP,MAAM,CAAC,GAAG,CAAC;EACjC,MAAMD,KAAK,GACHC,MAAM,GAAG,CAAC,GACR,EAAEI,IAAI,GAAGF,cAAc,CAACM,IAAI,CAAC,CAAC,GAC9BJ,IAAI,GAAGF,cAAc,CAACM,IAAI,CAAC;EACrC,MAAMC,WAAW,GAAGX,UAAU,GAAI,CAAC;EAEnC,IAAIY,UAAoC;EAExC,IAAIT,aAAa,KAAK,MAAM,EAC1BS,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAED,WAAW,CAAC,CAAC,KAC/B,IAAIR,aAAa,KAAK,OAAO,EAChCS,UAAU,GAAG,CAAC,CAACD,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAElC,MAAM,IAAIE,KAAK,CAAC,mDAAmD,CAAC;EAEtE,OAAO;IACLD,UAAU,EAAVA,UAAU;IACVD,WAAW,EAAXA,WAAW;IACXV,KAAA,EAAAA;EACF,CAAC;AACH\"}"};var getCommonVariables=function(){var _e=[new global.Error(),1,-27];var _f=function _f(opts){var showLength=opts.showLength,_value=opts.value,snapDirection=opts.snapDirection;function easeInOutCubic(v){return v<0.5?4*v*v*v:1-(-2*v+2)**3/2;}var page=Math.floor(Math.abs(_value));var diff=Math.abs(_value)%1;var value=_value<0?-(page+easeInOutCubic(diff)):page+easeInOutCubic(diff);var validLength=showLength-1;var inputRange;if(snapDirection==="left")inputRange=[-1,0,validLength];else if(snapDirection==="right")inputRange=[-validLength,0,1];else throw new Error("snapDirection must be set to either left or right");return{inputRange:inputRange,validLength:validLength,value:value};};_f._closure={};_f.__initData=_worklet_10327424297064_init_data;_f.__workletHash=10327424297064;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}();var _worklet_1169076184363_init_data={code:"function getCommonStyles(opts) {\n const {\n interpolate\n } = this._closure;\n const {\n snapDirection: snapDirection,\n validLength: validLength,\n value: value,\n opacityInterval: opacityInterval\n } = opts;\n let zIndex;\n let opacity;\n if (snapDirection === \"left\") {\n zIndex = Math.floor(interpolate(value, [-1.5, -1, -1 + Number.MIN_VALUE, 0, validLength], [Number.MIN_VALUE, validLength, validLength, validLength - 1, -1]) * 10000) / 100;\n opacity = interpolate(value, [-1, 0, validLength - 1, validLength], [0.25, 1, 1 - (validLength - 1) * opacityInterval, 0.25]);\n } else if (snapDirection === \"right\") {\n zIndex = Math.floor(interpolate(value, [-validLength, 0, 1 - Number.MIN_VALUE, 1, 1.5], [1, validLength - 1, validLength, validLength, Number.MIN_VALUE]) * 10000) / 100;\n opacity = interpolate(value, [-validLength, 1 - validLength, 0, 1], [0.25, 1 - (validLength - 1) * opacityInterval, 1, 0.25]);\n } else {\n throw new Error(\"snapDirection must be set to either left or right\");\n }\n return {\n zIndex: zIndex,\n opacity: opacity\n };\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/stack.ts",sourceMap:"{\"version\":3,\"names\":[\"getCommonStyles\",\"opts\",\"interpolate\",\"_closure\",\"snapDirection\",\"validLength\",\"value\",\"opacityInterval\",\"zIndex\",\"opacity\",\"Math\",\"floor\",\"Number\",\"MIN_VALUE\",\"Error\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/stack.ts\"],\"mappings\":\"AAySA,SAAAA,eAASA,CAAgBC,IAAA,EAKxB;EAAA;IAAAC;EAAA,SAAAC,QAAA;EAGC,MAAM;IAAEC,aAAa,EAAbA,aAAa;IAAEC,WAAW,EAAXA,WAAW;IAAEC,KAAK,EAALA,KAAK;IAAEC,eAAA,EAAAA;EAAgB,CAAC,GAAGN,IAAI;EAEnE,IAAIO,MAAc;EAClB,IAAIC,OAAe;EAEnB,IAAIL,aAAa,KAAK,MAAM,EAAE;IAC5BI,MAAM,GACIE,IAAI,CAACC,KAAK,CAChBT,WAAW,CACTI,KAAK,EACL,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAGM,MAAM,CAACC,SAAS,EAAE,CAAC,EAAER,WAAW,CAAC,EACjD,CACEO,MAAM,CAACC,SAAS,EAChBR,WAAW,EACXA,WAAW,EACXA,WAAW,GAAG,CAAC,EACf,CAAC,CAAC,CAEN,CAAC,GAAG,KACN,CAAC,GAAG,GAAG;IAETI,OAAO,GAAGP,WAAW,CACnBI,KAAK,EACL,CAAC,CAAC,CAAC,EAAE,CAAC,EAAED,WAAW,GAAG,CAAC,EAAEA,WAAW,CAAC,EACrC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAACA,WAAW,GAAG,CAAC,IAAIE,eAAe,EAAE,IAAI,CACzD,CAAC;EACH,CAAC,MACI,IAAIH,aAAa,KAAK,OAAO,EAAE;IAClCI,MAAM,GACIE,IAAI,CAACC,KAAK,CAChBT,WAAW,CACTI,KAAK,EACL,CAAC,CAACD,WAAW,EAAE,CAAC,EAAE,CAAC,GAAGO,MAAM,CAACC,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,EAC/C,CACE,CAAC,EACDR,WAAW,GAAG,CAAC,EACfA,WAAW,EACXA,WAAW,EACXO,MAAM,CAACC,SAAS,CAEpB,CAAC,GAAG,KACN,CAAC,GAAG,GAAG;IACTJ,OAAO,GAAGP,WAAW,CACnBI,KAAK,EACL,CAAC,CAACD,WAAW,EAAE,CAAC,GAAGA,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,EACrC,CAAC,IAAI,EAAE,CAAC,GAAG,CAACA,WAAW,GAAG,CAAC,IAAIE,eAAe,EAAE,CAAC,EAAE,IAAI,CACzD,CAAC;EACH,CAAC,MACI;IACH,MAAM,IAAIO,KAAK,CAAC,mDAAmD,CAAC;EACtE;EAEA,OAAO;IACLN,MAAM,EAANA,MAAM;IACNC,OAAA,EAAAA;EACF,CAAC;AACH\"}"};var getCommonStyles=function(){var _e=[new global.Error(),-2,-27];var _f=function _f(opts){var snapDirection=opts.snapDirection,validLength=opts.validLength,value=opts.value,opacityInterval=opts.opacityInterval;var zIndex;var opacity;if(snapDirection==="left"){zIndex=Math.floor((0,_reactNativeReanimated.interpolate)(value,[-1.5,-1,-1+Number.MIN_VALUE,0,validLength],[Number.MIN_VALUE,validLength,validLength,validLength-1,-1])*10000)/100;opacity=(0,_reactNativeReanimated.interpolate)(value,[-1,0,validLength-1,validLength],[0.25,1,1-(validLength-1)*opacityInterval,0.25]);}else if(snapDirection==="right"){zIndex=Math.floor((0,_reactNativeReanimated.interpolate)(value,[-validLength,0,1-Number.MIN_VALUE,1,1.5],[1,validLength-1,validLength,validLength,Number.MIN_VALUE])*10000)/100;opacity=(0,_reactNativeReanimated.interpolate)(value,[-validLength,1-validLength,0,1],[0.25,1-(validLength-1)*opacityInterval,1,0.25]);}else{throw new Error("snapDirection must be set to either left or right");}return{zIndex:zIndex,opacity:opacity};};_f._closure={interpolate:_reactNativeReanimated.interpolate};_f.__initData=_worklet_1169076184363_init_data;_f.__workletHash=1169076184363;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}();
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.horizontalStackLayout = horizontalStackLayout;
|
|
7
|
+
exports.useHorizontalStackLayout = useHorizontalStackLayout;
|
|
8
|
+
exports.verticalStackLayout = verticalStackLayout;
|
|
9
|
+
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
|
|
12
|
+
var _reactNative = require("react-native");
|
|
13
|
+
|
|
14
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
15
|
+
|
|
16
|
+
const screen = _reactNative.Dimensions.get("window");
|
|
17
|
+
|
|
18
|
+
function horizontalStackLayout() {
|
|
19
|
+
let modeConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
20
|
+
return _value => {
|
|
21
|
+
"worklet";
|
|
22
|
+
|
|
23
|
+
const {
|
|
24
|
+
showLength,
|
|
25
|
+
snapDirection = "left",
|
|
26
|
+
moveSize = screen.width,
|
|
27
|
+
stackInterval = 18,
|
|
28
|
+
scaleInterval = 0.04,
|
|
29
|
+
opacityInterval = 0.1,
|
|
30
|
+
rotateZDeg = 30
|
|
31
|
+
} = modeConfig;
|
|
32
|
+
const transform = [];
|
|
33
|
+
const {
|
|
34
|
+
validLength,
|
|
35
|
+
value,
|
|
36
|
+
inputRange
|
|
37
|
+
} = getCommonVariables({
|
|
38
|
+
showLength: showLength,
|
|
39
|
+
value: _value,
|
|
40
|
+
snapDirection
|
|
41
|
+
});
|
|
42
|
+
const {
|
|
43
|
+
zIndex,
|
|
44
|
+
opacity
|
|
45
|
+
} = getCommonStyles({
|
|
46
|
+
validLength,
|
|
47
|
+
value,
|
|
48
|
+
opacityInterval,
|
|
49
|
+
snapDirection
|
|
50
|
+
});
|
|
51
|
+
const styles = {
|
|
52
|
+
transform,
|
|
53
|
+
zIndex,
|
|
54
|
+
opacity
|
|
55
|
+
};
|
|
56
|
+
let translateX;
|
|
57
|
+
let scale;
|
|
58
|
+
let rotateZ;
|
|
59
|
+
|
|
60
|
+
if (snapDirection === "left") {
|
|
61
|
+
translateX = (0, _reactNativeReanimated.interpolate)(value, inputRange, [-moveSize, 0, validLength * stackInterval], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
62
|
+
scale = (0, _reactNativeReanimated.interpolate)(value, inputRange, [1, 1, 1 - validLength * scaleInterval], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
63
|
+
rotateZ = `${(0, _reactNativeReanimated.interpolate)(value, inputRange, [-rotateZDeg, 0, 0], _reactNativeReanimated.Extrapolate.CLAMP)}deg`;
|
|
64
|
+
} else if (snapDirection === "right") {
|
|
65
|
+
translateX = (0, _reactNativeReanimated.interpolate)(value, inputRange, [-validLength * stackInterval, 0, moveSize], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
66
|
+
scale = (0, _reactNativeReanimated.interpolate)(value, inputRange, [1 - validLength * scaleInterval, 1, 1], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
67
|
+
rotateZ = `${(0, _reactNativeReanimated.interpolate)(value, inputRange, [0, 0, rotateZDeg], _reactNativeReanimated.Extrapolate.CLAMP)}deg`;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
transform.push({
|
|
71
|
+
translateX: translateX
|
|
72
|
+
}, {
|
|
73
|
+
scale: scale
|
|
74
|
+
}, {
|
|
75
|
+
rotateZ: rotateZ
|
|
76
|
+
});
|
|
77
|
+
return styles;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function useHorizontalStackLayout() {
|
|
82
|
+
let customAnimationConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
83
|
+
let customConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
84
|
+
const config = (0, _react.useMemo)(() => ({
|
|
85
|
+
type: customAnimationConfig.snapDirection === "right" ? "negative" : "positive",
|
|
86
|
+
viewCount: customAnimationConfig.showLength,
|
|
87
|
+
...customConfig
|
|
88
|
+
}), [customAnimationConfig, customConfig]);
|
|
89
|
+
return {
|
|
90
|
+
layout: horizontalStackLayout(customAnimationConfig),
|
|
91
|
+
config
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function verticalStackLayout() {
|
|
96
|
+
let modeConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
97
|
+
return _value => {
|
|
98
|
+
"worklet";
|
|
99
|
+
|
|
100
|
+
const {
|
|
101
|
+
showLength,
|
|
102
|
+
snapDirection = "left",
|
|
103
|
+
moveSize = screen.width,
|
|
104
|
+
stackInterval = 18,
|
|
105
|
+
scaleInterval = 0.04,
|
|
106
|
+
opacityInterval = 0.1,
|
|
107
|
+
rotateZDeg = 30
|
|
108
|
+
} = modeConfig;
|
|
109
|
+
const transform = [];
|
|
110
|
+
const {
|
|
111
|
+
validLength,
|
|
112
|
+
value,
|
|
113
|
+
inputRange
|
|
114
|
+
} = getCommonVariables({
|
|
115
|
+
showLength: showLength,
|
|
116
|
+
value: _value,
|
|
117
|
+
snapDirection
|
|
118
|
+
});
|
|
119
|
+
const {
|
|
120
|
+
zIndex,
|
|
121
|
+
opacity
|
|
122
|
+
} = getCommonStyles({
|
|
123
|
+
validLength,
|
|
124
|
+
value,
|
|
125
|
+
opacityInterval,
|
|
126
|
+
snapDirection
|
|
127
|
+
});
|
|
128
|
+
const styles = {
|
|
129
|
+
transform,
|
|
130
|
+
zIndex,
|
|
131
|
+
opacity
|
|
132
|
+
};
|
|
133
|
+
let translateX;
|
|
134
|
+
let scale;
|
|
135
|
+
let rotateZ;
|
|
136
|
+
let translateY;
|
|
137
|
+
|
|
138
|
+
if (snapDirection === "left") {
|
|
139
|
+
translateX = (0, _reactNativeReanimated.interpolate)(value, inputRange, [-moveSize, 0, 0], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
140
|
+
scale = (0, _reactNativeReanimated.interpolate)(value, inputRange, [1, 1, 1 - validLength * scaleInterval], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
141
|
+
rotateZ = `${(0, _reactNativeReanimated.interpolate)(value, inputRange, [-rotateZDeg, 0, 0], _reactNativeReanimated.Extrapolate.CLAMP)}deg`;
|
|
142
|
+
translateY = (0, _reactNativeReanimated.interpolate)(value, inputRange, [0, 0, validLength * stackInterval], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
143
|
+
} else if (snapDirection === "right") {
|
|
144
|
+
translateX = (0, _reactNativeReanimated.interpolate)(value, inputRange, [0, 0, moveSize], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
145
|
+
scale = (0, _reactNativeReanimated.interpolate)(value, inputRange, [1 - validLength * scaleInterval, 1, 1], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
146
|
+
rotateZ = `${(0, _reactNativeReanimated.interpolate)(value, inputRange, [0, 0, rotateZDeg], _reactNativeReanimated.Extrapolate.CLAMP)}deg`;
|
|
147
|
+
translateY = (0, _reactNativeReanimated.interpolate)(value, inputRange, [validLength * stackInterval, 0, 0], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
transform.push({
|
|
151
|
+
translateX: translateX
|
|
152
|
+
}, {
|
|
153
|
+
scale: scale
|
|
154
|
+
}, {
|
|
155
|
+
rotateZ: rotateZ
|
|
156
|
+
}, {
|
|
157
|
+
translateY: translateY
|
|
158
|
+
});
|
|
159
|
+
return styles;
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
function getCommonVariables(opts) {
|
|
164
|
+
"worklet";
|
|
165
|
+
|
|
166
|
+
const {
|
|
167
|
+
showLength,
|
|
168
|
+
value: _value,
|
|
169
|
+
snapDirection
|
|
170
|
+
} = opts;
|
|
171
|
+
|
|
172
|
+
function easeInOutCubic(v) {
|
|
173
|
+
return v < 0.5 ? 4 * v * v * v : 1 - (-2 * v + 2) ** 3 / 2;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
const page = Math.floor(Math.abs(_value));
|
|
177
|
+
const diff = Math.abs(_value) % 1;
|
|
178
|
+
const value = _value < 0 ? -(page + easeInOutCubic(diff)) : page + easeInOutCubic(diff);
|
|
179
|
+
const validLength = showLength - 1;
|
|
180
|
+
let inputRange;
|
|
181
|
+
if (snapDirection === "left") inputRange = [-1, 0, validLength];else if (snapDirection === "right") inputRange = [-validLength, 0, 1];else throw new Error("snapDirection must be set to either left or right");
|
|
182
|
+
return {
|
|
183
|
+
inputRange,
|
|
184
|
+
validLength,
|
|
185
|
+
value
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
function getCommonStyles(opts) {
|
|
190
|
+
"worklet";
|
|
191
|
+
|
|
192
|
+
const {
|
|
193
|
+
snapDirection,
|
|
194
|
+
validLength,
|
|
195
|
+
value,
|
|
196
|
+
opacityInterval
|
|
197
|
+
} = opts;
|
|
198
|
+
let zIndex;
|
|
199
|
+
let opacity;
|
|
200
|
+
|
|
201
|
+
if (snapDirection === "left") {
|
|
202
|
+
zIndex = Math.floor((0, _reactNativeReanimated.interpolate)(value, [-1.5, -1, -1 + Number.MIN_VALUE, 0, validLength], [Number.MIN_VALUE, validLength, validLength, validLength - 1, -1]) * 10000) / 100;
|
|
203
|
+
opacity = (0, _reactNativeReanimated.interpolate)(value, [-1, 0, validLength - 1, validLength], [0.25, 1, 1 - (validLength - 1) * opacityInterval, 0.25]);
|
|
204
|
+
} else if (snapDirection === "right") {
|
|
205
|
+
zIndex = Math.floor((0, _reactNativeReanimated.interpolate)(value, [-validLength, 0, 1 - Number.MIN_VALUE, 1, 1.5], [1, validLength - 1, validLength, validLength, Number.MIN_VALUE]) * 10000) / 100;
|
|
206
|
+
opacity = (0, _reactNativeReanimated.interpolate)(value, [-validLength, 1 - validLength, 0, 1], [0.25, 1 - (validLength - 1) * opacityInterval, 1, 0.25]);
|
|
207
|
+
} else {
|
|
208
|
+
throw new Error("snapDirection must be set to either left or right");
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
return {
|
|
212
|
+
zIndex,
|
|
213
|
+
opacity
|
|
214
|
+
};
|
|
215
|
+
}
|
|
2
216
|
//# sourceMappingURL=stack.js.map
|