├── .gitignore
├── CHANGELOG.md
├── Carousel.js
├── CarouselPager.android.js
├── CarouselPager.ios.js
├── LICENSE
├── README.md
├── npm-debug.log
├── package-lock.json
└── package.json
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
3 | # JetBrains IDEs
4 | .idea
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ### 0.11.0
2 | - React 16 support (@abuinitski)
3 |
4 | ### 0.10.0
5 | - Fix horizontal scroll in RN v0.28 (@sghiassy, @dmccer)
6 |
7 | ### 0.9.1
8 | - onPageChange never called on indicator press on Android (@lideen)
9 |
10 | ### 0.9.0
11 | - Fix carousel in iOS with react-native 0.28 (@francisco-sanchez-molina)
12 |
13 | ### 0.8.0
14 | - Custom indicator content (@shidhincr)
15 |
16 | ### 0.7.0
17 | - Call createClass on React instead of React Native (@scottluptowski)
18 |
19 | ### 0.6.1
20 | - Hide inactive indicators (@scottluptowski)
21 |
22 | ### 0.6.0
23 | - Compute width on the fly (@mikelambert)
24 | - Android support (@mikelambert, @kushal)
25 |
26 | ### 0.5.0
27 | - Fix for pressing indicator with custom width (@juankiz)
28 | - Fix scrollWithoutAnimationTo deprecation warning (@juankiz)
29 |
30 | ### 0.4.6
31 | - Fix depreciated parameter for scrollTo (@ronaldx)
32 |
33 | ### 0.4.5
34 | - Fix scrolling to top when pressing iOS status bar (@juankiz)
35 |
36 | ### 0.4.4
37 | - Added indicatorOffset property (@regeda)
38 |
39 | ### 0.4.3
40 | - Fix for page loop animation
41 |
42 | ### 0.4.2
43 | - Fix for Dimension import
44 |
45 | ### 0.4.1
46 | - Remove duplicate width calculation when initialPage is defined (@ptmt)
47 |
48 | ### 0.4.0
49 | - Add autoplay and looping options (@PraiseGeek)
50 |
51 | ### 0.3.5
52 | - Add `indicatorSpace` prop (@alinz)
53 |
54 | ### 0.3.3
55 | - Add `indicatorSize` prop (@daviferreira)
56 |
57 | ### 0.3.2
58 | - Add `hideIndicators` prop (@daviferreira)
59 |
60 | ### 0.3.1
61 | - Add `onPageChange` prop (@unknownexception)
62 |
63 | ### 0.3.0
64 | - Bump react-native dependency
65 |
66 | ### 0.2.0
67 | - Add `indicatorAtBottom` prop (@imaffett)
68 | - Added new styles for the indicator positions (@imaffett)
69 | - Clicking the indicators will switch the card/page it is on. (@imaffett)
70 | - Set the background of the indicator to transparent. (@imaffett)
71 | - Set bounces=false on the ScrollView used for the Carousel (@imaffett)
72 |
73 | ### 0.1.0
74 | - Initial component
75 |
--------------------------------------------------------------------------------
/Carousel.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var React = require('react');
4 | var createReactClass = require('create-react-class');
5 | var {
6 | Dimensions,
7 | StyleSheet,
8 | Text,
9 | View,
10 | } = require('react-native');
11 |
12 | var TimerMixin = require('react-timer-mixin');
13 | var CarouselPager = require('./CarouselPager');
14 |
15 | var Carousel = createReactClass({
16 | mixins: [TimerMixin],
17 |
18 | getDefaultProps() {
19 | return {
20 | hideIndicators: false,
21 | indicatorColor: '#000000',
22 | indicatorSize: 50,
23 | inactiveIndicatorColor: '#999999',
24 | indicatorAtBottom: true,
25 | indicatorOffset: 250,
26 | indicatorText: '•',
27 | inactiveIndicatorText: '•',
28 | width: null,
29 | initialPage: 0,
30 | indicatorSpace: 25,
31 | animate: true,
32 | delay: 1000,
33 | loop: true,
34 | };
35 | },
36 |
37 | getInitialState() {
38 | return {
39 | activePage: this.props.initialPage > 0 ? this.props.initialPage : 0,
40 | };
41 | },
42 |
43 | getWidth() {
44 | if (this.props.width !== null) {
45 | return this.props.width;
46 | } else {
47 | return Dimensions.get('window').width;
48 | }
49 | },
50 |
51 | componentDidMount() {
52 | if (this.props.initialPage > 0) {
53 | this.refs.pager.scrollToPage(this.props.initialPage, false);
54 | }
55 |
56 | if (this.props.animate && this.props.children){
57 | this._setUpTimer();
58 | }
59 | },
60 |
61 | indicatorPressed(activePage) {
62 | this.setState({activePage});
63 | this.refs.pager.scrollToPage(activePage);
64 | },
65 |
66 | renderPageIndicator() {
67 | if (this.props.hideIndicators === true) {
68 | return null;
69 | }
70 |
71 | var indicators = [],
72 | indicatorStyle = this.props.indicatorAtBottom ? { bottom: this.props.indicatorOffset } : { top: this.props.indicatorOffset },
73 | style, position;
74 |
75 | position = {
76 | width: this.props.children.length * this.props.indicatorSpace,
77 | };
78 | position.left = (this.getWidth() - position.width) / 2;
79 |
80 | for (var i = 0, l = this.props.children.length; i < l; i++) {
81 | if (typeof this.props.children[i] === "undefined") {
82 | continue;
83 | }
84 |
85 | style = i === this.state.activePage ? { color: this.props.indicatorColor } : { color: this.props.inactiveIndicatorColor };
86 | indicators.push(
87 |
92 | { i === this.state.activePage ? this.props.indicatorText : this.props.inactiveIndicatorText }
93 |
94 | );
95 | }
96 |
97 | if (indicators.length === 1) {
98 | return null;
99 | }
100 |
101 | return (
102 |
103 | {indicators}
104 |
105 | );
106 | },
107 |
108 | _setUpTimer() {
109 | if (this.props.children.length > 1) {
110 | this.clearTimeout(this.timer);
111 | this.timer = this.setTimeout(this._animateNextPage, this.props.delay);
112 | }
113 | },
114 |
115 | _animateNextPage() {
116 | var activePage = 0;
117 | if (this.state.activePage < this.props.children.length - 1) {
118 | activePage = this.state.activePage + 1;
119 | } else if (!this.props.loop) {
120 | return;
121 | }
122 |
123 | this.indicatorPressed(activePage);
124 | this._setUpTimer();
125 | },
126 |
127 | _onAnimationBegin() {
128 | this.clearTimeout(this.timer);
129 | },
130 |
131 | _onAnimationEnd(activePage) {
132 | this.setState({activePage});
133 | if (this.props.onPageChange) {
134 | this.props.onPageChange(activePage);
135 | }
136 | },
137 |
138 | render() {
139 | return (
140 |
141 |
148 | {this.props.children}
149 |
150 | {this.renderPageIndicator()}
151 |
152 | );
153 | },
154 |
155 | });
156 |
157 | var styles = StyleSheet.create({
158 | pageIndicator: {
159 | position: 'absolute',
160 | flexDirection: 'row',
161 | flex: 1,
162 | justifyContent: 'space-around',
163 | alignItems: 'center',
164 | alignSelf: 'center',
165 | backgroundColor:'transparent',
166 | },
167 | });
168 |
169 | module.exports = Carousel;
170 |
--------------------------------------------------------------------------------
/CarouselPager.android.js:
--------------------------------------------------------------------------------
1 | var React = require('react');
2 | var createReactClass = require('create-react-class');
3 | var {
4 | View
5 | } = require('react-native');
6 | import ViewPager from "@react-native-community/viewpager";
7 |
8 | var CarouselPager = createReactClass({
9 |
10 | scrollToPage(page, animated) {
11 | if (typeof animated === 'undefined') {
12 | animated = true;
13 | }
14 | if (animated) {
15 | this.refs.viewPager.setPage(page);
16 | } else {
17 | this.refs.viewPager.setPageWithoutAnimation(page);
18 | }
19 | this._onPageSelected(page);
20 | },
21 |
22 | _onPageSelected(page) {
23 | this.props.onEnd(page);
24 | },
25 |
26 | render() {
27 | return this._onPageSelected(e.nativeEvent.position)}
37 | scrollsToTop={false}
38 | >
39 | {this.props.children.map((c, idx) => {c})}
40 | ;
41 | },
42 | });
43 |
44 | module.exports = CarouselPager;
45 |
--------------------------------------------------------------------------------
/CarouselPager.ios.js:
--------------------------------------------------------------------------------
1 | var React = require('react');
2 | var createReactClass = require('create-react-class');
3 | var {
4 | ScrollView,
5 | } = require('react-native');
6 |
7 | var CarouselPager = createReactClass({
8 |
9 | scrollToPage(page, animated) {
10 | if (typeof animated === 'undefined') {
11 | animated = true;
12 | }
13 | this.refs.scrollView.scrollTo({x: page * this.props.width, y: 0, animated: animated});
14 | },
15 |
16 | _onMomentumScrollEnd(e) {
17 | var activePage = e.nativeEvent.contentOffset.x / this.props.width;
18 | this.props.onEnd(activePage);
19 | },
20 |
21 | render() {
22 | return
33 | {this.props.children}
34 | ;
35 | },
36 | });
37 |
38 | module.exports = CarouselPager;
39 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Alexey
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## Carousel component for react-native
2 |
3 | ### Installation
4 | ```bash
5 | npm install react-native-carousel
6 | ```
7 |
8 | ### Properties
9 |
10 | ```js
11 | hideIndicators={false} // Set to true to hide the indicators
12 | indicatorColor="#FFFFFF" // Active indicator color
13 | indicatorSize={20} // Indicator bullet size
14 | indicatorSpace={15} // space between each indicator
15 | inactiveIndicatorColor="#999999" // Inactive indicator color
16 | indicatorAtBottom={true} // Set to false to show the indicators at the top
17 | indicatorOffset={250} // Indicator relative position from top or bottom
18 | onPageChange={callback} // Called when the active page changes
19 | inactiveIndicatorText= '•' // Inactive indicator content ( You can customize to use any Unicode character )
20 | indicatorText= '•' // Active indicator content ( You can customize to use any Unicode character )
21 |
22 | animate={true} // Enable carousel autoplay
23 | delay={1000} // Set Animation delay between slides
24 | loop={true} // Allow infinite looped animation. Depends on Prop {...animate} set to true.
25 |
26 | ```
27 |
28 | ### Usage example
29 |
30 | Assuming you have `npm install -g react-native-cli`, first generate an app:
31 |
32 | react-native init RNCarousel
33 | cd RNCarousel
34 | npm install react-native-carousel --save
35 |
36 | Then paste the following into `RNCarousel/index.ios.js`:
37 |
38 | ```javascript
39 | 'use strict';
40 |
41 | var React = require('react-native');
42 | var {
43 | AppRegistry,
44 | StyleSheet,
45 | Text,
46 | View,
47 | } = React;
48 |
49 | var Carousel = require('react-native-carousel');
50 |
51 | var RNCarousel = React.createClass({
52 | render: function() {
53 | return (
54 |
55 |
56 | Page 1
57 |
58 |
59 | Page 2
60 |
61 |
62 | Page 3
63 |
64 |
65 | );
66 | }
67 | });
68 |
69 | var styles = StyleSheet.create({
70 | container: {
71 | width: 375,
72 | flex: 1,
73 | justifyContent: 'center',
74 | alignItems: 'center',
75 | backgroundColor: 'transparent',
76 | },
77 | });
78 |
79 | AppRegistry.registerComponent('RNCarousel', () => RNCarousel);
80 | ```
81 |
--------------------------------------------------------------------------------
/npm-debug.log:
--------------------------------------------------------------------------------
1 | 0 info it worked if it ends with ok
2 | 1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'publish' ]
3 | 2 info using npm@3.8.9
4 | 3 info using node@v6.2.0
5 | 4 verbose publish [ '.' ]
6 | 5 silly cache add args [ '.', null ]
7 | 6 verbose cache add spec .
8 | 7 silly cache add parsed spec Result {
9 | 7 silly cache add raw: '.',
10 | 7 silly cache add scope: null,
11 | 7 silly cache add name: null,
12 | 7 silly cache add rawSpec: '.',
13 | 7 silly cache add spec: '/Users/nick/Projects/react-native-carousel',
14 | 7 silly cache add type: 'directory' }
15 | 8 verbose addLocalDirectory /Users/nick/.npm/react-native-carousel/0.10.0/package.tgz not in flight; packing
16 | 9 verbose correctMkdir /Users/nick/.npm correctMkdir not in flight; initializing
17 | 10 info lifecycle react-native-carousel@0.10.0~prepublish: react-native-carousel@0.10.0
18 | 11 silly lifecycle react-native-carousel@0.10.0~prepublish: no script for prepublish, continuing
19 | 12 verbose tar pack [ '/Users/nick/.npm/react-native-carousel/0.10.0/package.tgz',
20 | 12 verbose tar pack '/Users/nick/Projects/react-native-carousel' ]
21 | 13 verbose tarball /Users/nick/.npm/react-native-carousel/0.10.0/package.tgz
22 | 14 verbose folder /Users/nick/Projects/react-native-carousel
23 | 15 verbose addLocalTarball adding from inside cache /Users/nick/.npm/react-native-carousel/0.10.0/package.tgz
24 | 16 verbose correctMkdir /Users/nick/.npm correctMkdir not in flight; initializing
25 | 17 silly cache afterAdd react-native-carousel@0.10.0
26 | 18 verbose afterAdd /Users/nick/.npm/react-native-carousel/0.10.0/package/package.json not in flight; writing
27 | 19 verbose correctMkdir /Users/nick/.npm correctMkdir not in flight; initializing
28 | 20 verbose afterAdd /Users/nick/.npm/react-native-carousel/0.10.0/package/package.json written
29 | 21 silly publish { name: 'react-native-carousel',
30 | 21 silly publish version: '0.10.0',
31 | 21 silly publish description: 'Simple carousel component for react-native',
32 | 21 silly publish main: 'Carousel.js',
33 | 21 silly publish scripts: { test: 'echo "Error: no test specified" && exit 1' },
34 | 21 silly publish repository:
35 | 21 silly publish { type: 'git',
36 | 21 silly publish url: 'https://github.com/nick/react-native-carousel.git' },
37 | 21 silly publish keywords: [ 'react-native', 'carousel' ],
38 | 21 silly publish author:
39 | 21 silly publish { name: 'Nick Poulden',
40 | 21 silly publish email: 'nick@poulden.com',
41 | 21 silly publish url: 'https://github.com/nick' },
42 | 21 silly publish license: 'MIT',
43 | 21 silly publish bugs: { url: 'https://github.com/nick/react-native-carousel/issues' },
44 | 21 silly publish homepage: 'https://github.com/nick/react-native-carousel',
45 | 21 silly publish dependencies: { 'react-timer-mixin': '^0.13.3' },
46 | 21 silly publish peerDependencies: { 'react-native': '>=0.28 <1.0' },
47 | 21 silly publish readme: '## Carousel component for react-native\n\n### Installation\n```bash\nnpm install react-native-carousel\n```\n\n###Properties\n\n```\nhideIndicators={false} // Set to true to hide the indicators\nindicatorColor="#FFFFFF" // Active indicator color\nindicatorSize={20} // Indicator bullet size\nindicatorSpace={15} // space between each indicator\ninactiveIndicatorColor="#999999" // Inactive indicator color\nindicatorAtBottom={true} // Set to false to show the indicators at the top\nindicatorOffset={250} // Indicator relative position from top or bottom\nonPageChange={callback} // Called when the active page changes\ninactiveIndicatorText= \'•\' // Inactive indicator content ( You can customize to use any Unicode character )\nindicatorText= \'•\' // Active indicator content ( You can customize to use any Unicode character )\n\nanimate={true} // Enable carousel autoplay\ndelay={1000} // Set Animation delay between slides\nloop={true} // Allow infinite looped animation. Depends on Prop {...animate} set to true.\n \n```\n\n### Usage example\n\nAssuming you have `npm install -g react-native-cli`, first generate an app:\n\n react-native init RNCarousel\n cd RNCarousel\n npm install react-native-carousel --save\n\nThen paste the following into `RNCarousel/index.ios.js`:\n\n```javascript\n\'use strict\';\n\nvar React = require(\'react-native\');\nvar {\n AppRegistry,\n StyleSheet,\n Text,\n View,\n} = React;\n\nvar Carousel = require(\'react-native-carousel\');\n\nvar RNCarousel = React.createClass({\n render: function() {\n return (\n \n \n Page 1\n \n \n Page 2\n \n \n Page 3\n \n \n );\n }\n});\n\nvar styles = StyleSheet.create({\n container: {\n width: 375,\n flex: 1,\n justifyContent: \'center\',\n alignItems: \'center\',\n backgroundColor: \'transparent\',\n },\n});\n\nAppRegistry.registerComponent(\'RNCarousel\', () => RNCarousel);\n```\n',
48 | 21 silly publish readmeFilename: 'README.md',
49 | 21 silly publish gitHead: 'cf8ca562178d72abbb5db5aa6984615222547f21',
50 | 21 silly publish _id: 'react-native-carousel@0.10.0',
51 | 21 silly publish _shasum: 'f4becc5ff46f66585d0ec9e42dce1efb1d7e571a',
52 | 21 silly publish _from: '.' }
53 | 22 verbose getPublishConfig undefined
54 | 23 silly mapToRegistry name react-native-carousel
55 | 24 silly mapToRegistry using default registry
56 | 25 silly mapToRegistry registry https://registry.npmjs.org/
57 | 26 silly mapToRegistry data Result {
58 | 26 silly mapToRegistry raw: 'react-native-carousel',
59 | 26 silly mapToRegistry scope: null,
60 | 26 silly mapToRegistry name: 'react-native-carousel',
61 | 26 silly mapToRegistry rawSpec: '',
62 | 26 silly mapToRegistry spec: 'latest',
63 | 26 silly mapToRegistry type: 'tag' }
64 | 27 silly mapToRegistry uri https://registry.npmjs.org/react-native-carousel
65 | 28 verbose publish registryBase https://registry.npmjs.org/
66 | 29 silly publish uploading /Users/nick/.npm/react-native-carousel/0.10.0/package.tgz
67 | 30 verbose request uri https://registry.npmjs.org/react-native-carousel
68 | 31 verbose request sending authorization for write operation
69 | 32 info attempt registry request try #1 at 12:31:22 PM
70 | 33 verbose request id d55ac47a92d6e2f4
71 | 34 http request PUT https://registry.npmjs.org/react-native-carousel
72 | 35 http 403 https://registry.npmjs.org/react-native-carousel
73 | 36 verbose headers { 'content-type': 'application/json',
74 | 36 verbose headers 'cache-control': 'max-age=300',
75 | 36 verbose headers 'content-length': '96',
76 | 36 verbose headers 'accept-ranges': 'bytes',
77 | 36 verbose headers date: 'Tue, 26 Jul 2016 18:31:23 GMT',
78 | 36 verbose headers via: '1.1 varnish',
79 | 36 verbose headers connection: 'keep-alive',
80 | 36 verbose headers 'x-served-by': 'cache-sjc3128-SJC',
81 | 36 verbose headers 'x-cache': 'MISS',
82 | 36 verbose headers 'x-cache-hits': '0',
83 | 36 verbose headers 'x-timer': 'S1469557883.327890,VS0,VE150',
84 | 36 verbose headers vary: 'Accept-Encoding' }
85 | 37 verbose request invalidating /Users/nick/.npm/registry.npmjs.org/react-native-carousel on PUT
86 | 38 error publish Failed PUT 403
87 | 39 verbose stack Error: "You cannot publish over the previously published version 0.10.0." : react-native-carousel
88 | 39 verbose stack at makeError (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/lib/request.js:264:12)
89 | 39 verbose stack at CachingRegistryClient. (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/lib/request.js:252:14)
90 | 39 verbose stack at Request._callback (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/lib/request.js:172:14)
91 | 39 verbose stack at Request.self.callback (/usr/local/lib/node_modules/npm/node_modules/request/request.js:200:22)
92 | 39 verbose stack at emitTwo (events.js:106:13)
93 | 39 verbose stack at Request.emit (events.js:191:7)
94 | 39 verbose stack at Request. (/usr/local/lib/node_modules/npm/node_modules/request/request.js:1067:10)
95 | 39 verbose stack at emitOne (events.js:101:20)
96 | 39 verbose stack at Request.emit (events.js:188:7)
97 | 39 verbose stack at IncomingMessage. (/usr/local/lib/node_modules/npm/node_modules/request/request.js:988:12)
98 | 40 verbose statusCode 403
99 | 41 verbose pkgid react-native-carousel
100 | 42 verbose cwd /Users/nick/Projects/react-native-carousel
101 | 43 error Darwin 15.6.0
102 | 44 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "publish"
103 | 45 error node v6.2.0
104 | 46 error npm v3.8.9
105 | 47 error code E403
106 | 48 error "You cannot publish over the previously published version 0.10.0." : react-native-carousel
107 | 49 error If you need help, you may report this error at:
108 | 49 error
109 | 50 verbose exit [ 1, true ]
110 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-native-carousel",
3 | "version": "0.11.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@react-native-community/viewpager": {
8 | "version": "1.1.7",
9 | "resolved": "https://registry.npmjs.org/@react-native-community/viewpager/-/viewpager-1.1.7.tgz",
10 | "integrity": "sha512-k9v2KJtAprNPq7IZmedD2VLMePvPW+ohX3uDnkpoKritBji+/RtRmTKrdtPi3Uvp0toq/KtPttAds1dr7AZNpw=="
11 | },
12 | "add": {
13 | "version": "2.0.6",
14 | "resolved": "https://registry.npmjs.org/add/-/add-2.0.6.tgz",
15 | "integrity": "sha1-JI8Kn25aUo7yKV2+7DBTITCuIjU="
16 | },
17 | "react-timer-mixin": {
18 | "version": "0.13.4",
19 | "resolved": "https://registry.npmjs.org/react-timer-mixin/-/react-timer-mixin-0.13.4.tgz",
20 | "integrity": "sha512-4+ow23tp/Tv7hBM5Az5/Be/eKKF7DIvJ09voz5LyHGQaqqz9WV8YMs31eFvcYQs7d451LSg7kDJV70XYN/Ug/Q=="
21 | },
22 | "yarn": {
23 | "version": "1.17.3",
24 | "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.17.3.tgz",
25 | "integrity": "sha512-CgA8o7nRZaQvmeF/WBx2FC7f9W/0X59T2IaLYqgMo6637wfp5mMEsM3YXoJtKUspnpmDJKl/gGFhnqS+sON7hA=="
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-native-carousel",
3 | "version": "0.12.0",
4 | "description": "Simple carousel component for react-native",
5 | "main": "Carousel.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/nick/react-native-carousel.git"
12 | },
13 | "keywords": [
14 | "react-native",
15 | "carousel"
16 | ],
17 | "author": "Nick Poulden (https://github.com/nick)",
18 | "license": "MIT",
19 | "bugs": {
20 | "url": "https://github.com/nick/react-native-carousel/issues"
21 | },
22 | "homepage": "https://github.com/nick/react-native-carousel",
23 | "dependencies": {
24 | "@react-native-community/viewpager": "^1.1.7",
25 | "react-timer-mixin": "^0.13.3"
26 | },
27 | "peerDependencies": {
28 | "create-react-class": ">=15.6.2",
29 | "react-native": ">=0.28 <1.0"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------