├── .gitignore ├── .npmignore ├── Dial.js ├── LICENSE ├── README.md ├── example ├── .babelrc ├── .buckconfig ├── .flowconfig ├── .gitattributes ├── .gitignore ├── .watchmanconfig ├── Dial.js ├── __tests__ │ ├── index.android.js │ └── index.ios.js ├── android │ ├── app │ │ ├── BUCK │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── MainActivity.java │ │ │ │ └── MainApplication.java │ │ │ └── res │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ └── values │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── keystores │ │ ├── BUCK │ │ └── debug.keystore.properties │ └── settings.gradle ├── app.json ├── example.js ├── index.android.js ├── index.ios.js ├── ios │ ├── example-tvOS │ │ └── Info.plist │ ├── example-tvOSTests │ │ └── Info.plist │ ├── example.xcodeproj │ │ ├── project.pbxproj │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ ├── example-tvOS.xcscheme │ │ │ └── example.xcscheme │ ├── example │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ └── LaunchScreen.xib │ │ ├── Images.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ └── main.m │ └── exampleTests │ │ ├── Info.plist │ │ └── exampleTests.m ├── package.json └── yarn.lock ├── package.json ├── screenshot.png ├── works-with-yeti.png └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | project.xcworkspace 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | 33 | # node.js 34 | # 35 | node_modules/ 36 | npm-debug.log 37 | yarn-error.log 38 | 39 | # BUCK 40 | buck-out/ 41 | \.buckd/ 42 | *.keystore 43 | 44 | # fastlane 45 | # 46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 47 | # screenshots whenever they are needed. 48 | # For more information about the recommended setup visit: 49 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md 50 | 51 | fastlane/report.xml 52 | fastlane/Preview.html 53 | fastlane/screenshots 54 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | project.xcworkspace 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | 33 | # node.js 34 | # 35 | node_modules/ 36 | npm-debug.log 37 | yarn-error.log 38 | 39 | # BUCK 40 | buck-out/ 41 | \.buckd/ 42 | *.keystore 43 | 44 | # fastlane 45 | # 46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 47 | # screenshots whenever they are needed. 48 | # For more information about the recommended setup visit: 49 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md 50 | 51 | fastlane/report.xml 52 | fastlane/Preview.html 53 | fastlane/screenshots 54 | 55 | 56 | ### Also ignore: 57 | example 58 | .vscode -------------------------------------------------------------------------------- /Dial.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import { 3 | Dimensions, 4 | PanResponder, 5 | StyleSheet, 6 | View, 7 | } from 'react-native' 8 | import { throttle } from 'lodash' 9 | 10 | const GREY_LIGHT = '#eeeeee' 11 | 12 | export class Dial extends Component { 13 | static defaultProps = { 14 | initialRadius: 1, 15 | initialAngle: 0, 16 | precision: 0, 17 | } 18 | 19 | constructor(props) { 20 | super(props) 21 | this.state = { 22 | startingAngle: this.props.initialAngle, 23 | startingRadius: this.props.initialRadius, 24 | releaseAngle: this.props.initialAngle, 25 | releaseRadius: this.props.initialRadius, 26 | angle: this.props.initialAngle, 27 | radius: this.props.initialRadius, 28 | } 29 | this.offset = { x: 0, y: 0 } 30 | this.updateState = throttle(this.updateState.bind(this), 16) 31 | } 32 | 33 | componentWillMount () { 34 | this._panResponder = PanResponder.create({ 35 | onStartShouldSetPanResponder: (e, gestureState) => true, 36 | onStartShouldSetPanResponderCapture: (e, gestureState) => { 37 | this.measureOffset() // measure again 38 | const { deg, radius } = this.calcAngle(e.nativeEvent) 39 | this.setState({ startingAngle: deg, startingRadius: radius }) 40 | return true 41 | }, 42 | onMoveShouldSetPanResponder: (e, g) => true, 43 | onMoveShouldSetPanResponderCapture: (e, gestureState) => true, 44 | onPanResponderGrant: (e, gestureState) => true, 45 | onPanResponderMove: (e, gestureState) => { 46 | this.updateAngle(gestureState) 47 | }, 48 | onPanResponderRelease: (e, gestureState) => { 49 | const { 50 | angle, 51 | radius, 52 | releaseAngle, 53 | releaseRadius, 54 | } = this.state 55 | 56 | if (angle !== releaseAngle || radius !== releaseRadius) { 57 | this.setState({ 58 | releaseAngle: angle, 59 | releaseRadius: radius, 60 | }) 61 | } 62 | }, 63 | }) 64 | } 65 | 66 | onLayout (nativeEvent) { 67 | /* 68 | * Multiple measures to avoid the gap between animated 69 | * and not animated views 70 | */ 71 | this.measureOffset() 72 | setTimeout(() => this.measureOffset(), 200) 73 | } 74 | 75 | measureOffset () { 76 | /* 77 | * const {x, y, width, height} = nativeEvent.layout 78 | * onlayout values are different than measureInWindow 79 | * x and y are the distances to its previous element 80 | * but in measureInWindow they are relative to the window 81 | */ 82 | const { width: screenWidth } = Dimensions.get('window') 83 | 84 | this.self.measureInWindow((x, y, width, height) => { 85 | this.offset = { 86 | x: x % screenWidth + width / 2, 87 | y: y + height / 2, 88 | } 89 | this.radius = width / 2 90 | }) 91 | } 92 | 93 | updateAngle (gestureState) { 94 | let { deg, radius } = this.calcAngle(gestureState) 95 | if (deg < 0) deg += 360 96 | if (Math.abs(this.state.angle - deg) > this.props.precision) { 97 | this.updateState({ deg, radius }) 98 | } 99 | } 100 | 101 | calcAngle (gestureState) { 102 | const { pageX, pageY, moveX, moveY } = gestureState 103 | const [x, y] = [pageX || moveX, pageY || moveY] 104 | const [dx, dy] = [x - this.offset.x, y - this.offset.y] 105 | return { 106 | deg: Math.atan2(dy, dx) * 180 / Math.PI + 120, 107 | radius: Math.sqrt(dy * dy + dx * dx) / this.radius, // pitagoras r^2 = x^2 + y^2 normalizado 108 | } 109 | } 110 | 111 | updateState ({ deg, radius = this.state.radius }) { 112 | radius = this.state.releaseRadius + radius - this.state.startingRadius 113 | if (radius < this.props.radiusMin) radius = this.props.radiusMin 114 | else if (radius > this.props.radiusMax) radius = this.props.radiusMax 115 | 116 | const angle = deg + this.state.releaseAngle - this.state.startingAngle 117 | if (deg < 0) deg += 360 118 | 119 | if (angle !== this.state.angle || radius !== this.state.radius) { 120 | this.setState({ angle, radius }) 121 | if (this.props.onValueChange) this.props.onValueChange(angle, radius) 122 | } 123 | } 124 | 125 | forceUpdate = (deg: number, radius: number) => { 126 | this.setState({ 127 | angle: deg === undefined ? this.state.angle : deg, 128 | radius: radius === undefined ? this.state.radius : radius, 129 | }) 130 | } 131 | 132 | render () { 133 | const rotate = this.props.fixed ? '0deg' : `${this.state.angle}deg` 134 | const scale = this.props.elastic ? this.state.radius : 1 135 | 136 | return ( 137 | this.onLayout(nativeEvent)} 139 | ref={(node) => { this.self = node }} 140 | style={[styles.coverResponder, this.props.responderStyle]} 141 | {...this._panResponder.panHandlers} 142 | > 143 | {this.props.children 144 | ? 145 | {this.props.children} 146 | 147 | : 148 | } 149 | 150 | ) 151 | } 152 | } 153 | 154 | export const DefaultDial = ({ style = {}, rotate = '0rad', scale = 1 }) => ( 155 | 161 | 162 | 163 | 164 | 165 | ) 166 | 167 | const styles = StyleSheet.create({ 168 | coverResponder: { 169 | padding: 20, // needs a minimum 170 | }, 171 | dial: { 172 | width: 120, 173 | height: 120, 174 | backgroundColor: 'white', 175 | borderRadius: 60, 176 | elevation: 5, 177 | shadowColor: GREY_LIGHT, 178 | shadowOffset: { width: 1, height: 2 }, 179 | shadowOpacity: 0.8, 180 | shadowRadius: 1, 181 | }, 182 | innerDialDecorator: { 183 | top: 10, 184 | left: 10, 185 | width: 100, 186 | height: 100, 187 | borderRadius: 50, 188 | backgroundColor: 'white', 189 | elevation: 3, 190 | }, 191 | pointer: { 192 | top: 20, 193 | left: 20, 194 | position: 'absolute', 195 | width: 10, 196 | height: 10, 197 | backgroundColor: 'rgb(221,223,226)', 198 | borderRadius: 5, 199 | }, 200 | }) 201 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Netbeast 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-native-dial 2 | ![npm version](https://badge.fury.io/js/react-native-dial.svg) 3 | 4 | 5 | works with yeti 6 | 7 | 8 | > This package powers [Yeti Smart Home](https://getyeti.co) and is used in production. 9 | 10 | A react native reusable and efficient dial knob element. 11 | 12 | ```javascript 13 | import { Dial } from 'react-native-dial' 14 | // ... 15 | this.toggle()} 20 | responderStyle={styles.responderStyle} 21 | wrapperStyle={styles.wheelWrapper} 22 | onValueChange={(a, r) => this.changeBrightness(r)} /> 23 | ``` 24 | 25 | demo screenshot 26 | 27 | 28 | Some properties: 29 | ``` 30 | 40 | {/* 41 | Optionally you can pass children so it renders a different component of your choice as a Dial, 42 | that can change in scale and angle 43 | */} 44 | 45 | 46 | 47 | ``` 48 | 49 | More documentation is incoming, in the meanwhile please read the source code. It is a single file! 50 | PRs and issues are more than welcome. 51 | 52 | Follow us in Github or https://twitter.com/netbeast_co. 53 | -------------------------------------------------------------------------------- /example/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["react-native"] 3 | } 4 | -------------------------------------------------------------------------------- /example/.buckconfig: -------------------------------------------------------------------------------- 1 | 2 | [android] 3 | target = Google Inc.:Google APIs:23 4 | 5 | [maven_repositories] 6 | central = https://repo1.maven.org/maven2 7 | -------------------------------------------------------------------------------- /example/.flowconfig: -------------------------------------------------------------------------------- 1 | [ignore] 2 | ; We fork some components by platform 3 | .*/*[.]android.js 4 | 5 | ; Ignore "BUCK" generated dirs 6 | /\.buckd/ 7 | 8 | ; Ignore unexpected extra "@providesModule" 9 | .*/node_modules/.*/node_modules/fbjs/.* 10 | 11 | ; Ignore duplicate module providers 12 | ; For RN Apps installed via npm, "Libraries" folder is inside 13 | ; "node_modules/react-native" but in the source repo it is in the root 14 | .*/Libraries/react-native/React.js 15 | .*/Libraries/react-native/ReactNative.js 16 | 17 | [include] 18 | 19 | [libs] 20 | node_modules/react-native/Libraries/react-native/react-native-interface.js 21 | node_modules/react-native/flow 22 | flow/ 23 | 24 | [options] 25 | emoji=true 26 | 27 | module.system=haste 28 | 29 | munge_underscores=true 30 | 31 | module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' 32 | 33 | suppress_type=$FlowIssue 34 | suppress_type=$FlowFixMe 35 | suppress_type=$FixMe 36 | 37 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(4[0-9]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) 38 | suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(4[0-9]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ 39 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy 40 | suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError 41 | 42 | unsafe.enable_getters_and_setters=true 43 | 44 | [version] 45 | ^0.49.1 46 | -------------------------------------------------------------------------------- /example/.gitattributes: -------------------------------------------------------------------------------- 1 | *.pbxproj -text 2 | -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | project.xcworkspace 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | 33 | # node.js 34 | # 35 | node_modules/ 36 | npm-debug.log 37 | yarn-error.log 38 | 39 | # BUCK 40 | buck-out/ 41 | \.buckd/ 42 | *.keystore 43 | 44 | # fastlane 45 | # 46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 47 | # screenshots whenever they are needed. 48 | # For more information about the recommended setup visit: 49 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md 50 | 51 | fastlane/report.xml 52 | fastlane/Preview.html 53 | fastlane/screenshots 54 | -------------------------------------------------------------------------------- /example/.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /example/Dial.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import { 3 | Dimensions, 4 | PanResponder, 5 | StyleSheet, 6 | View, 7 | } from 'react-native' 8 | 9 | const GREY_LIGHT = '#eeeeee' 10 | 11 | export class Dial extends Component { 12 | static defaultProps = { 13 | initialRadius: 1, 14 | initialAngle: 0, 15 | precision: 0, 16 | } 17 | 18 | constructor (props) { 19 | super(props) 20 | this.state = { 21 | startingAngle: this.props.initialAngle, 22 | startingRadius: this.props.initialRadius, 23 | releaseAngle: this.props.initialAngle, 24 | releaseRadius: this.props.initialRadius, 25 | angle: this.props.initialAngle, 26 | radius: this.props.initialRadius, 27 | } 28 | this.offset = {x: 0, y: 0} 29 | } 30 | 31 | componentWillMount () { 32 | this._panResponder = PanResponder.create({ 33 | onStartShouldSetPanResponder: (e, gestureState) => true, 34 | onStartShouldSetPanResponderCapture: (e, gestureState) => { 35 | this.measureOffset() // measure again 36 | const { deg, radius } = this.calcAngle(e.nativeEvent) 37 | this.setState({startingAngle: deg, startingRadius: radius}) 38 | return true 39 | }, 40 | onMoveShouldSetPanResponder: (e, g) => true, 41 | onMoveShouldSetPanResponderCapture: (e, gestureState) => true, 42 | onPanResponderGrant: (e, gestureState) => true, 43 | onPanResponderMove: (e, gestureState) => requestAnimationFrame(() => { 44 | this.updateAngle(gestureState) 45 | }), 46 | onPanResponderRelease: (e, gestureState) => { 47 | this.setState({ 48 | releaseAngle: this.state.angle, 49 | releaseRadius: this.state.radius, 50 | }) 51 | }, 52 | }) 53 | } 54 | 55 | onLayout (nativeEvent) { 56 | /* 57 | * Multiple measures to avoid the gap between animated 58 | * and not animated views 59 | */ 60 | this.measureOffset() 61 | setTimeout(() => this.measureOffset(), 200) 62 | } 63 | 64 | measureOffset () { 65 | /* 66 | * const {x, y, width, height} = nativeEvent.layout 67 | * onlayout values are different than measureInWindow 68 | * x and y are the distances to its previous element 69 | * but in measureInWindow they are relative to the window 70 | */ 71 | const { width: screenWidth } = Dimensions.get('window') 72 | 73 | this.self.measureInWindow((x, y, width, height) => { 74 | this.offset = { 75 | x: x % screenWidth + width / 2, 76 | y: y + height / 2, 77 | } 78 | this.radius = width / 2 79 | }) 80 | } 81 | 82 | updateAngle (gestureState) { 83 | let {deg, radius} = this.calcAngle(gestureState) 84 | if (deg < 0) deg += 360 85 | if (Math.abs(this.state.angle - deg) > this.props.precision) { 86 | this.updateState({deg, radius}) 87 | } 88 | } 89 | 90 | calcAngle (gestureState) { 91 | const {pageX, pageY, moveX, moveY} = gestureState 92 | const [x, y] = [pageX || moveX, pageY || moveY] 93 | const [dx, dy] = [x - this.offset.x, y - this.offset.y] 94 | return { 95 | deg: Math.atan2(dy, dx) * 180 / Math.PI + 120, 96 | radius: Math.sqrt(dy * dy + dx * dx) / this.radius, // pitagoras r^2 = x^2 + y^2 normalizado 97 | } 98 | } 99 | 100 | updateState ({deg, radius = this.state.radius}) { 101 | radius = this.state.releaseRadius + radius - this.state.startingRadius 102 | if (radius < this.props.radiusMin) radius = this.props.radiusMin 103 | else if (radius > this.props.radiusMax) radius = this.props.radiusMax 104 | 105 | deg = deg + this.state.releaseAngle - this.state.startingAngle 106 | if (deg < 0) deg += 360 107 | 108 | this.setState({angle: deg, radius}) 109 | if (this.props.onValueChange) this.props.onValueChange(deg, radius) 110 | } 111 | 112 | render () { 113 | const rotate = this.props.fixed ? '0deg' : `${this.state.angle}deg` 114 | const scale = this.props.elastic ? this.state.radius : 1 115 | 116 | return ( 117 | this.onLayout(nativeEvent)} 119 | ref={(node) => { this.self = node }} 120 | style={[styles.coverResponder, this.props.responderStyle]} 121 | {...this._panResponder.panHandlers} 122 | > 123 | {this.props.children 124 | ? 125 | {this.props.children} 126 | 127 | : 128 | } 129 | 130 | ) 131 | } 132 | } 133 | 134 | export const DefaultDial = ({style = {}, rotate = '0rad', scale = 1}) => ( 135 | 139 | 140 | 141 | 142 | 143 | ) 144 | 145 | const styles = StyleSheet.create({ 146 | coverResponder: { 147 | padding: 20, // needs a minimum 148 | }, 149 | dial: { 150 | width: 120, 151 | height: 120, 152 | backgroundColor: 'white', 153 | borderRadius: 60, 154 | elevation: 5, 155 | shadowColor: GREY_LIGHT, 156 | shadowOffset: {width: 1, height: 2}, 157 | shadowOpacity: 0.8, 158 | shadowRadius: 1, 159 | }, 160 | innerDialDecorator: { 161 | top: 10, 162 | left: 10, 163 | width: 100, 164 | height: 100, 165 | borderRadius: 50, 166 | backgroundColor: 'white', 167 | elevation: 3, 168 | }, 169 | pointer: { 170 | top: 20, 171 | left: 20, 172 | position: 'absolute', 173 | width: 10, 174 | height: 10, 175 | backgroundColor: 'rgb(221,223,226)', 176 | borderRadius: 5, 177 | }, 178 | }) 179 | -------------------------------------------------------------------------------- /example/__tests__/index.android.js: -------------------------------------------------------------------------------- 1 | import 'react-native'; 2 | import React from 'react'; 3 | import Index from '../index.android.js'; 4 | 5 | // Note: test renderer must be required after react-native. 6 | import renderer from 'react-test-renderer'; 7 | 8 | it('renders correctly', () => { 9 | const tree = renderer.create( 10 | 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /example/__tests__/index.ios.js: -------------------------------------------------------------------------------- 1 | import 'react-native'; 2 | import React from 'react'; 3 | import Index from '../index.ios.js'; 4 | 5 | // Note: test renderer must be required after react-native. 6 | import renderer from 'react-test-renderer'; 7 | 8 | it('renders correctly', () => { 9 | const tree = renderer.create( 10 | 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /example/android/app/BUCK: -------------------------------------------------------------------------------- 1 | # To learn about Buck see [Docs](https://buckbuild.com/). 2 | # To run your application with Buck: 3 | # - install Buck 4 | # - `npm start` - to start the packager 5 | # - `cd android` 6 | # - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` 7 | # - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck 8 | # - `buck install -r android/app` - compile, install and run application 9 | # 10 | 11 | lib_deps = [] 12 | 13 | for jarfile in glob(['libs/*.jar']): 14 | name = 'jars__' + jarfile[jarfile.rindex('/') + 1: jarfile.rindex('.jar')] 15 | lib_deps.append(':' + name) 16 | prebuilt_jar( 17 | name = name, 18 | binary_jar = jarfile, 19 | ) 20 | 21 | for aarfile in glob(['libs/*.aar']): 22 | name = 'aars__' + aarfile[aarfile.rindex('/') + 1: aarfile.rindex('.aar')] 23 | lib_deps.append(':' + name) 24 | android_prebuilt_aar( 25 | name = name, 26 | aar = aarfile, 27 | ) 28 | 29 | android_library( 30 | name = "all-libs", 31 | exported_deps = lib_deps, 32 | ) 33 | 34 | android_library( 35 | name = "app-code", 36 | srcs = glob([ 37 | "src/main/java/**/*.java", 38 | ]), 39 | deps = [ 40 | ":all-libs", 41 | ":build_config", 42 | ":res", 43 | ], 44 | ) 45 | 46 | android_build_config( 47 | name = "build_config", 48 | package = "com.example", 49 | ) 50 | 51 | android_resource( 52 | name = "res", 53 | package = "com.example", 54 | res = "src/main/res", 55 | ) 56 | 57 | android_binary( 58 | name = "app", 59 | keystore = "//android/keystores:debug", 60 | manifest = "src/main/AndroidManifest.xml", 61 | package_type = "debug", 62 | deps = [ 63 | ":app-code", 64 | ], 65 | ) 66 | -------------------------------------------------------------------------------- /example/android/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: "com.android.application" 2 | 3 | import com.android.build.OutputFile 4 | 5 | /** 6 | * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets 7 | * and bundleReleaseJsAndAssets). 8 | * These basically call `react-native bundle` with the correct arguments during the Android build 9 | * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the 10 | * bundle directly from the development server. Below you can see all the possible configurations 11 | * and their defaults. If you decide to add a configuration block, make sure to add it before the 12 | * `apply from: "../../node_modules/react-native/react.gradle"` line. 13 | * 14 | * project.ext.react = [ 15 | * // the name of the generated asset file containing your JS bundle 16 | * bundleAssetName: "index.android.bundle", 17 | * 18 | * // the entry file for bundle generation 19 | * entryFile: "index.android.js", 20 | * 21 | * // whether to bundle JS and assets in debug mode 22 | * bundleInDebug: false, 23 | * 24 | * // whether to bundle JS and assets in release mode 25 | * bundleInRelease: true, 26 | * 27 | * // whether to bundle JS and assets in another build variant (if configured). 28 | * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants 29 | * // The configuration property can be in the following formats 30 | * // 'bundleIn${productFlavor}${buildType}' 31 | * // 'bundleIn${buildType}' 32 | * // bundleInFreeDebug: true, 33 | * // bundleInPaidRelease: true, 34 | * // bundleInBeta: true, 35 | * 36 | * // whether to disable dev mode in custom build variants (by default only disabled in release) 37 | * // for example: to disable dev mode in the staging build type (if configured) 38 | * devDisabledInStaging: true, 39 | * // The configuration property can be in the following formats 40 | * // 'devDisabledIn${productFlavor}${buildType}' 41 | * // 'devDisabledIn${buildType}' 42 | * 43 | * // the root of your project, i.e. where "package.json" lives 44 | * root: "../../", 45 | * 46 | * // where to put the JS bundle asset in debug mode 47 | * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", 48 | * 49 | * // where to put the JS bundle asset in release mode 50 | * jsBundleDirRelease: "$buildDir/intermediates/assets/release", 51 | * 52 | * // where to put drawable resources / React Native assets, e.g. the ones you use via 53 | * // require('./image.png')), in debug mode 54 | * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", 55 | * 56 | * // where to put drawable resources / React Native assets, e.g. the ones you use via 57 | * // require('./image.png')), in release mode 58 | * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", 59 | * 60 | * // by default the gradle tasks are skipped if none of the JS files or assets change; this means 61 | * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to 62 | * // date; if you have any other folders that you want to ignore for performance reasons (gradle 63 | * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ 64 | * // for example, you might want to remove it from here. 65 | * inputExcludes: ["android/**", "ios/**"], 66 | * 67 | * // override which node gets called and with what additional arguments 68 | * nodeExecutableAndArgs: ["node"], 69 | * 70 | * // supply additional arguments to the packager 71 | * extraPackagerArgs: [] 72 | * ] 73 | */ 74 | 75 | apply from: "../../node_modules/react-native/react.gradle" 76 | 77 | /** 78 | * Set this to true to create two separate APKs instead of one: 79 | * - An APK that only works on ARM devices 80 | * - An APK that only works on x86 devices 81 | * The advantage is the size of the APK is reduced by about 4MB. 82 | * Upload all the APKs to the Play Store and people will download 83 | * the correct one based on the CPU architecture of their device. 84 | */ 85 | def enableSeparateBuildPerCPUArchitecture = false 86 | 87 | /** 88 | * Run Proguard to shrink the Java bytecode in release builds. 89 | */ 90 | def enableProguardInReleaseBuilds = false 91 | 92 | android { 93 | compileSdkVersion 23 94 | buildToolsVersion "23.0.1" 95 | 96 | defaultConfig { 97 | applicationId "com.example" 98 | minSdkVersion 16 99 | targetSdkVersion 22 100 | versionCode 1 101 | versionName "1.0" 102 | ndk { 103 | abiFilters "armeabi-v7a", "x86" 104 | } 105 | } 106 | splits { 107 | abi { 108 | reset() 109 | enable enableSeparateBuildPerCPUArchitecture 110 | universalApk false // If true, also generate a universal APK 111 | include "armeabi-v7a", "x86" 112 | } 113 | } 114 | buildTypes { 115 | release { 116 | minifyEnabled enableProguardInReleaseBuilds 117 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 118 | } 119 | } 120 | // applicationVariants are e.g. debug, release 121 | applicationVariants.all { variant -> 122 | variant.outputs.each { output -> 123 | // For each separate APK per architecture, set a unique version code as described here: 124 | // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits 125 | def versionCodes = ["armeabi-v7a":1, "x86":2] 126 | def abi = output.getFilter(OutputFile.ABI) 127 | if (abi != null) { // null for the universal-debug, universal-release variants 128 | output.versionCodeOverride = 129 | versionCodes.get(abi) * 1048576 + defaultConfig.versionCode 130 | } 131 | } 132 | } 133 | } 134 | 135 | dependencies { 136 | compile fileTree(dir: "libs", include: ["*.jar"]) 137 | compile "com.android.support:appcompat-v7:23.0.1" 138 | compile "com.facebook.react:react-native:+" // From node_modules 139 | } 140 | 141 | // Run this once to be able to run the application with BUCK 142 | // puts all compile dependencies into folder libs for BUCK to use 143 | task copyDownloadableDepsToLibs(type: Copy) { 144 | from configurations.compile 145 | into 'libs' 146 | } 147 | -------------------------------------------------------------------------------- /example/android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Disabling obfuscation is useful if you collect stack traces from production crashes 20 | # (unless you are using a system that supports de-obfuscate the stack traces). 21 | -dontobfuscate 22 | 23 | # React Native 24 | 25 | # Keep our interfaces so they can be used by other ProGuard rules. 26 | # See http://sourceforge.net/p/proguard/bugs/466/ 27 | -keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip 28 | -keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters 29 | -keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip 30 | 31 | # Do not strip any method/class that is annotated with @DoNotStrip 32 | -keep @com.facebook.proguard.annotations.DoNotStrip class * 33 | -keep @com.facebook.common.internal.DoNotStrip class * 34 | -keepclassmembers class * { 35 | @com.facebook.proguard.annotations.DoNotStrip *; 36 | @com.facebook.common.internal.DoNotStrip *; 37 | } 38 | 39 | -keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * { 40 | void set*(***); 41 | *** get*(); 42 | } 43 | 44 | -keep class * extends com.facebook.react.bridge.JavaScriptModule { *; } 45 | -keep class * extends com.facebook.react.bridge.NativeModule { *; } 46 | -keepclassmembers,includedescriptorclasses class * { native ; } 47 | -keepclassmembers class * { @com.facebook.react.uimanager.UIProp ; } 48 | -keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp ; } 49 | -keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup ; } 50 | 51 | -dontwarn com.facebook.react.** 52 | 53 | # TextLayoutBuilder uses a non-public Android constructor within StaticLayout. 54 | # See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details. 55 | -dontwarn android.text.StaticLayout 56 | 57 | # okhttp 58 | 59 | -keepattributes Signature 60 | -keepattributes *Annotation* 61 | -keep class okhttp3.** { *; } 62 | -keep interface okhttp3.** { *; } 63 | -dontwarn okhttp3.** 64 | 65 | # okio 66 | 67 | -keep class sun.misc.Unsafe { *; } 68 | -dontwarn java.nio.file.* 69 | -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 70 | -dontwarn okio.** 71 | -------------------------------------------------------------------------------- /example/android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 19 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /example/android/app/src/main/java/com/example/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import com.facebook.react.ReactActivity; 4 | 5 | public class MainActivity extends ReactActivity { 6 | 7 | /** 8 | * Returns the name of the main component registered from JavaScript. 9 | * This is used to schedule rendering of the component. 10 | */ 11 | @Override 12 | protected String getMainComponentName() { 13 | return "example"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /example/android/app/src/main/java/com/example/MainApplication.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import android.app.Application; 4 | 5 | import com.facebook.react.ReactApplication; 6 | import com.facebook.react.ReactNativeHost; 7 | import com.facebook.react.ReactPackage; 8 | import com.facebook.react.shell.MainReactPackage; 9 | import com.facebook.soloader.SoLoader; 10 | 11 | import java.util.Arrays; 12 | import java.util.List; 13 | 14 | public class MainApplication extends Application implements ReactApplication { 15 | 16 | private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { 17 | @Override 18 | public boolean getUseDeveloperSupport() { 19 | return BuildConfig.DEBUG; 20 | } 21 | 22 | @Override 23 | protected List getPackages() { 24 | return Arrays.asList( 25 | new MainReactPackage() 26 | ); 27 | } 28 | }; 29 | 30 | @Override 31 | public ReactNativeHost getReactNativeHost() { 32 | return mReactNativeHost; 33 | } 34 | 35 | @Override 36 | public void onCreate() { 37 | super.onCreate(); 38 | SoLoader.init(this, /* native exopackage */ false); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netbeast/react-native-dial/d37adc68e42d50ef731291da51dbac1eeaed333a/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netbeast/react-native-dial/d37adc68e42d50ef731291da51dbac1eeaed333a/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netbeast/react-native-dial/d37adc68e42d50ef731291da51dbac1eeaed333a/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netbeast/react-native-dial/d37adc68e42d50ef731291da51dbac1eeaed333a/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | example 3 | 4 | -------------------------------------------------------------------------------- /example/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/android/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:2.2.3' 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | mavenLocal() 18 | jcenter() 19 | maven { 20 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm 21 | url "$rootDir/../node_modules/react-native/android" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /example/android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | 20 | android.useDeprecatedNdk=true 21 | -------------------------------------------------------------------------------- /example/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netbeast/react-native-dial/d37adc68e42d50ef731291da51dbac1eeaed333a/example/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /example/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip 6 | -------------------------------------------------------------------------------- /example/android/gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ############################################################################## 4 | ## 5 | ## Gradle start up script for UN*X 6 | ## 7 | ############################################################################## 8 | 9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 10 | DEFAULT_JVM_OPTS="" 11 | 12 | APP_NAME="Gradle" 13 | APP_BASE_NAME=`basename "$0"` 14 | 15 | # Use the maximum available, or set MAX_FD != -1 to use that value. 16 | MAX_FD="maximum" 17 | 18 | warn ( ) { 19 | echo "$*" 20 | } 21 | 22 | die ( ) { 23 | echo 24 | echo "$*" 25 | echo 26 | exit 1 27 | } 28 | 29 | # OS specific support (must be 'true' or 'false'). 30 | cygwin=false 31 | msys=false 32 | darwin=false 33 | case "`uname`" in 34 | CYGWIN* ) 35 | cygwin=true 36 | ;; 37 | Darwin* ) 38 | darwin=true 39 | ;; 40 | MINGW* ) 41 | msys=true 42 | ;; 43 | esac 44 | 45 | # For Cygwin, ensure paths are in UNIX format before anything is touched. 46 | if $cygwin ; then 47 | [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 48 | fi 49 | 50 | # Attempt to set APP_HOME 51 | # Resolve links: $0 may be a link 52 | PRG="$0" 53 | # Need this for relative symlinks. 54 | while [ -h "$PRG" ] ; do 55 | ls=`ls -ld "$PRG"` 56 | link=`expr "$ls" : '.*-> \(.*\)$'` 57 | if expr "$link" : '/.*' > /dev/null; then 58 | PRG="$link" 59 | else 60 | PRG=`dirname "$PRG"`"/$link" 61 | fi 62 | done 63 | SAVED="`pwd`" 64 | cd "`dirname \"$PRG\"`/" >&- 65 | APP_HOME="`pwd -P`" 66 | cd "$SAVED" >&- 67 | 68 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 69 | 70 | # Determine the Java command to use to start the JVM. 71 | if [ -n "$JAVA_HOME" ] ; then 72 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 73 | # IBM's JDK on AIX uses strange locations for the executables 74 | JAVACMD="$JAVA_HOME/jre/sh/java" 75 | else 76 | JAVACMD="$JAVA_HOME/bin/java" 77 | fi 78 | if [ ! -x "$JAVACMD" ] ; then 79 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 80 | 81 | Please set the JAVA_HOME variable in your environment to match the 82 | location of your Java installation." 83 | fi 84 | else 85 | JAVACMD="java" 86 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 87 | 88 | Please set the JAVA_HOME variable in your environment to match the 89 | location of your Java installation." 90 | fi 91 | 92 | # Increase the maximum file descriptors if we can. 93 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 94 | MAX_FD_LIMIT=`ulimit -H -n` 95 | if [ $? -eq 0 ] ; then 96 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 97 | MAX_FD="$MAX_FD_LIMIT" 98 | fi 99 | ulimit -n $MAX_FD 100 | if [ $? -ne 0 ] ; then 101 | warn "Could not set maximum file descriptor limit: $MAX_FD" 102 | fi 103 | else 104 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 105 | fi 106 | fi 107 | 108 | # For Darwin, add options to specify how the application appears in the dock 109 | if $darwin; then 110 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 111 | fi 112 | 113 | # For Cygwin, switch paths to Windows format before running java 114 | if $cygwin ; then 115 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 116 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 117 | 118 | # We build the pattern for arguments to be converted via cygpath 119 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 120 | SEP="" 121 | for dir in $ROOTDIRSRAW ; do 122 | ROOTDIRS="$ROOTDIRS$SEP$dir" 123 | SEP="|" 124 | done 125 | OURCYGPATTERN="(^($ROOTDIRS))" 126 | # Add a user-defined pattern to the cygpath arguments 127 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 128 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 129 | fi 130 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 131 | i=0 132 | for arg in "$@" ; do 133 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 134 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 135 | 136 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 137 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 138 | else 139 | eval `echo args$i`="\"$arg\"" 140 | fi 141 | i=$((i+1)) 142 | done 143 | case $i in 144 | (0) set -- ;; 145 | (1) set -- "$args0" ;; 146 | (2) set -- "$args0" "$args1" ;; 147 | (3) set -- "$args0" "$args1" "$args2" ;; 148 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 149 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 150 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 151 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 152 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 153 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 154 | esac 155 | fi 156 | 157 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 158 | function splitJvmOpts() { 159 | JVM_OPTS=("$@") 160 | } 161 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 162 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 163 | 164 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 165 | -------------------------------------------------------------------------------- /example/android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /example/android/keystores/BUCK: -------------------------------------------------------------------------------- 1 | keystore( 2 | name = "debug", 3 | properties = "debug.keystore.properties", 4 | store = "debug.keystore", 5 | visibility = [ 6 | "PUBLIC", 7 | ], 8 | ) 9 | -------------------------------------------------------------------------------- /example/android/keystores/debug.keystore.properties: -------------------------------------------------------------------------------- 1 | key.store=debug.keystore 2 | key.alias=androiddebugkey 3 | key.store.password=android 4 | key.alias.password=android 5 | -------------------------------------------------------------------------------- /example/android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'example' 2 | 3 | include ':app' 4 | -------------------------------------------------------------------------------- /example/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "displayName": "example" 4 | } -------------------------------------------------------------------------------- /example/example.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Sample React Native App 3 | * https://github.com/facebook/react-native 4 | * @flow 5 | */ 6 | 7 | import React, { Component } from 'react'; 8 | import { 9 | Dimensions, 10 | StyleSheet, 11 | View 12 | } from 'react-native'; 13 | import { Dial } from './Dial'; 14 | 15 | export default class Example extends Component { 16 | render() { 17 | const borderRadius = Dimensions.get('window').width * 0.5 18 | return ( 19 | 20 | 24 | 25 | ); 26 | } 27 | } 28 | 29 | const styles = StyleSheet.create({ 30 | responderStyle: { 31 | backgroundColor: 'white', 32 | elevation: 3, 33 | shadowColor: 'rgba(0,0,0,.7)', 34 | shadowOffset: { width: 1, height: 2 }, 35 | shadowOpacity: 0.8, 36 | shadowRadius: 1, 37 | }, 38 | wheelWrapper: { 39 | borderRadius: 120, 40 | elevation: 5, 41 | padding: 0, 42 | shadowColor: 'rgba(0,0,0,.7)', 43 | shadowOffset: { width: 1, height: 2 }, 44 | shadowOpacity: 0.8, 45 | shadowRadius: 1, 46 | zIndex: 1, 47 | }, 48 | }) -------------------------------------------------------------------------------- /example/index.android.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Sample React Native App 3 | * https://github.com/facebook/react-native 4 | * @flow 5 | */ 6 | 7 | import React, { Component } from 'react'; 8 | import { 9 | AppRegistry, 10 | StyleSheet, 11 | Text, 12 | View 13 | } from 'react-native'; 14 | 15 | import Example from './example' 16 | 17 | export default class example extends Component { 18 | render() { 19 | return ( 20 | 21 | 22 | Welcome to React Native! 23 | 24 | 25 | To get started, edit index.ios.js 26 | 27 | 28 | Press Cmd+R to reload,{'\n'} 29 | Cmd+D or shake for dev menu 30 | 31 | 32 | 33 | ); 34 | } 35 | } 36 | 37 | const styles = StyleSheet.create({ 38 | container: { 39 | flex: 1, 40 | justifyContent: 'center', 41 | alignItems: 'center', 42 | backgroundColor: '#ddd', 43 | paddingTop: 100, 44 | }, 45 | welcome: { 46 | fontSize: 20, 47 | textAlign: 'center', 48 | margin: 10, 49 | }, 50 | instructions: { 51 | textAlign: 'center', 52 | color: '#333333', 53 | marginBottom: 5, 54 | }, 55 | }); 56 | 57 | AppRegistry.registerComponent('example', () => example); 58 | -------------------------------------------------------------------------------- /example/index.ios.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Sample React Native App 3 | * https://github.com/facebook/react-native 4 | * @flow 5 | */ 6 | 7 | import React, { Component } from 'react'; 8 | import { 9 | AppRegistry, 10 | StyleSheet, 11 | Text, 12 | View 13 | } from 'react-native'; 14 | 15 | import Example from './example' 16 | 17 | export default class example extends Component { 18 | render() { 19 | return ( 20 | 21 | 22 | Welcome to React Native! 23 | 24 | 25 | To get started, edit index.ios.js 26 | 27 | 28 | Press Cmd+R to reload,{'\n'} 29 | Cmd+D or shake for dev menu 30 | 31 | 32 | 33 | ); 34 | } 35 | } 36 | 37 | const styles = StyleSheet.create({ 38 | container: { 39 | flex: 1, 40 | justifyContent: 'center', 41 | alignItems: 'center', 42 | backgroundColor: '#ddd', 43 | paddingTop: 100, 44 | }, 45 | welcome: { 46 | fontSize: 20, 47 | textAlign: 'center', 48 | margin: 10, 49 | }, 50 | instructions: { 51 | textAlign: 'center', 52 | color: '#333333', 53 | marginBottom: 5, 54 | }, 55 | }); 56 | 57 | AppRegistry.registerComponent('example', () => example); 58 | -------------------------------------------------------------------------------- /example/ios/example-tvOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UIViewControllerBasedStatusBarAppearance 38 | 39 | NSLocationWhenInUseUsageDescription 40 | 41 | NSAppTransportSecurity 42 | 43 | 44 | NSExceptionDomains 45 | 46 | localhost 47 | 48 | NSExceptionAllowsInsecureHTTPLoads 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /example/ios/example-tvOSTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /example/ios/example.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; }; 11 | 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; }; 12 | 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; }; 13 | 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; }; 14 | 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; }; 15 | 00E356F31AD99517003FC87E /* exampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* exampleTests.m */; }; 16 | 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; 17 | 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; 18 | 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; 19 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 20 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 21 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 22 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 23 | 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 24 | 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 25 | 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 26 | 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 27 | 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 28 | 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */; }; 29 | 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */; }; 30 | 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */; }; 31 | 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */; }; 32 | 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */; }; 33 | 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */; }; 34 | 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; }; 35 | 2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; }; 36 | 2DCD954D1E0B4F2C00145EB5 /* exampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* exampleTests.m */; }; 37 | 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; 38 | 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; 39 | ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; }; 40 | /* End PBXBuildFile section */ 41 | 42 | /* Begin PBXContainerItemProxy section */ 43 | 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = { 44 | isa = PBXContainerItemProxy; 45 | containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; 46 | proxyType = 2; 47 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 48 | remoteInfo = RCTActionSheet; 49 | }; 50 | 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = { 51 | isa = PBXContainerItemProxy; 52 | containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; 53 | proxyType = 2; 54 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 55 | remoteInfo = RCTGeolocation; 56 | }; 57 | 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = { 58 | isa = PBXContainerItemProxy; 59 | containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; 60 | proxyType = 2; 61 | remoteGlobalIDString = 58B5115D1A9E6B3D00147676; 62 | remoteInfo = RCTImage; 63 | }; 64 | 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = { 65 | isa = PBXContainerItemProxy; 66 | containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; 67 | proxyType = 2; 68 | remoteGlobalIDString = 58B511DB1A9E6C8500147676; 69 | remoteInfo = RCTNetwork; 70 | }; 71 | 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = { 72 | isa = PBXContainerItemProxy; 73 | containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; 74 | proxyType = 2; 75 | remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; 76 | remoteInfo = RCTVibration; 77 | }; 78 | 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { 79 | isa = PBXContainerItemProxy; 80 | containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; 81 | proxyType = 1; 82 | remoteGlobalIDString = 13B07F861A680F5B00A75B9A; 83 | remoteInfo = example; 84 | }; 85 | 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = { 86 | isa = PBXContainerItemProxy; 87 | containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; 88 | proxyType = 2; 89 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 90 | remoteInfo = RCTSettings; 91 | }; 92 | 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */ = { 93 | isa = PBXContainerItemProxy; 94 | containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; 95 | proxyType = 2; 96 | remoteGlobalIDString = 3C86DF461ADF2C930047B81A; 97 | remoteInfo = RCTWebSocket; 98 | }; 99 | 146834031AC3E56700842450 /* PBXContainerItemProxy */ = { 100 | isa = PBXContainerItemProxy; 101 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 102 | proxyType = 2; 103 | remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; 104 | remoteInfo = React; 105 | }; 106 | 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = { 107 | isa = PBXContainerItemProxy; 108 | containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; 109 | proxyType = 1; 110 | remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7; 111 | remoteInfo = "example-tvOS"; 112 | }; 113 | 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = { 114 | isa = PBXContainerItemProxy; 115 | containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; 116 | proxyType = 2; 117 | remoteGlobalIDString = 2D2A283A1D9B042B00D4039D; 118 | remoteInfo = "RCTImage-tvOS"; 119 | }; 120 | 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */ = { 121 | isa = PBXContainerItemProxy; 122 | containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; 123 | proxyType = 2; 124 | remoteGlobalIDString = 2D2A28471D9B043800D4039D; 125 | remoteInfo = "RCTLinking-tvOS"; 126 | }; 127 | 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */ = { 128 | isa = PBXContainerItemProxy; 129 | containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; 130 | proxyType = 2; 131 | remoteGlobalIDString = 2D2A28541D9B044C00D4039D; 132 | remoteInfo = "RCTNetwork-tvOS"; 133 | }; 134 | 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */ = { 135 | isa = PBXContainerItemProxy; 136 | containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; 137 | proxyType = 2; 138 | remoteGlobalIDString = 2D2A28611D9B046600D4039D; 139 | remoteInfo = "RCTSettings-tvOS"; 140 | }; 141 | 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */ = { 142 | isa = PBXContainerItemProxy; 143 | containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; 144 | proxyType = 2; 145 | remoteGlobalIDString = 2D2A287B1D9B048500D4039D; 146 | remoteInfo = "RCTText-tvOS"; 147 | }; 148 | 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */ = { 149 | isa = PBXContainerItemProxy; 150 | containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; 151 | proxyType = 2; 152 | remoteGlobalIDString = 2D2A28881D9B049200D4039D; 153 | remoteInfo = "RCTWebSocket-tvOS"; 154 | }; 155 | 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */ = { 156 | isa = PBXContainerItemProxy; 157 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 158 | proxyType = 2; 159 | remoteGlobalIDString = 2D2A28131D9B038B00D4039D; 160 | remoteInfo = "React-tvOS"; 161 | }; 162 | 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */ = { 163 | isa = PBXContainerItemProxy; 164 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 165 | proxyType = 2; 166 | remoteGlobalIDString = 3D3C059A1DE3340900C268FA; 167 | remoteInfo = yoga; 168 | }; 169 | 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */ = { 170 | isa = PBXContainerItemProxy; 171 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 172 | proxyType = 2; 173 | remoteGlobalIDString = 3D3C06751DE3340C00C268FA; 174 | remoteInfo = "yoga-tvOS"; 175 | }; 176 | 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */ = { 177 | isa = PBXContainerItemProxy; 178 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 179 | proxyType = 2; 180 | remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4; 181 | remoteInfo = cxxreact; 182 | }; 183 | 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */ = { 184 | isa = PBXContainerItemProxy; 185 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 186 | proxyType = 2; 187 | remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4; 188 | remoteInfo = "cxxreact-tvOS"; 189 | }; 190 | 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */ = { 191 | isa = PBXContainerItemProxy; 192 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 193 | proxyType = 2; 194 | remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4; 195 | remoteInfo = jschelpers; 196 | }; 197 | 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */ = { 198 | isa = PBXContainerItemProxy; 199 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; 200 | proxyType = 2; 201 | remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4; 202 | remoteInfo = "jschelpers-tvOS"; 203 | }; 204 | 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { 205 | isa = PBXContainerItemProxy; 206 | containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; 207 | proxyType = 2; 208 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 209 | remoteInfo = RCTAnimation; 210 | }; 211 | 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { 212 | isa = PBXContainerItemProxy; 213 | containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; 214 | proxyType = 2; 215 | remoteGlobalIDString = 2D2A28201D9B03D100D4039D; 216 | remoteInfo = "RCTAnimation-tvOS"; 217 | }; 218 | 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = { 219 | isa = PBXContainerItemProxy; 220 | containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; 221 | proxyType = 2; 222 | remoteGlobalIDString = 134814201AA4EA6300B7C361; 223 | remoteInfo = RCTLinking; 224 | }; 225 | 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = { 226 | isa = PBXContainerItemProxy; 227 | containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; 228 | proxyType = 2; 229 | remoteGlobalIDString = 58B5119B1A9E6C1200147676; 230 | remoteInfo = RCTText; 231 | }; 232 | ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */ = { 233 | isa = PBXContainerItemProxy; 234 | containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; 235 | proxyType = 2; 236 | remoteGlobalIDString = 358F4ED71D1E81A9004DF814; 237 | remoteInfo = RCTBlob; 238 | }; 239 | /* End PBXContainerItemProxy section */ 240 | 241 | /* Begin PBXFileReference section */ 242 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; 243 | 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; }; 244 | 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; }; 245 | 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; }; 246 | 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; }; 247 | 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; }; 248 | 00E356EE1AD99517003FC87E /* exampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = exampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 249 | 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 250 | 00E356F21AD99517003FC87E /* exampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exampleTests.m; sourceTree = ""; }; 251 | 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; 252 | 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; 253 | 13B07F961A680F5B00A75B9A /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 254 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = example/AppDelegate.h; sourceTree = ""; }; 255 | 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = example/AppDelegate.m; sourceTree = ""; }; 256 | 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 257 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = example/Images.xcassets; sourceTree = ""; }; 258 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = example/Info.plist; sourceTree = ""; }; 259 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = example/main.m; sourceTree = ""; }; 260 | 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; 261 | 2D02E47B1E0B4A5D006451C7 /* example-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "example-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 262 | 2D02E4901E0B4A5D006451C7 /* example-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "example-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 263 | 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; }; 264 | 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; 265 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; 266 | ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = ""; }; 267 | /* End PBXFileReference section */ 268 | 269 | /* Begin PBXFrameworksBuildPhase section */ 270 | 00E356EB1AD99517003FC87E /* Frameworks */ = { 271 | isa = PBXFrameworksBuildPhase; 272 | buildActionMask = 2147483647; 273 | files = ( 274 | 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */, 275 | ); 276 | runOnlyForDeploymentPostprocessing = 0; 277 | }; 278 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { 279 | isa = PBXFrameworksBuildPhase; 280 | buildActionMask = 2147483647; 281 | files = ( 282 | ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */, 283 | 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */, 284 | 146834051AC3E58100842450 /* libReact.a in Frameworks */, 285 | 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */, 286 | 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, 287 | 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */, 288 | 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */, 289 | 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */, 290 | 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */, 291 | 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */, 292 | 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, 293 | 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, 294 | 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, 295 | ); 296 | runOnlyForDeploymentPostprocessing = 0; 297 | }; 298 | 2D02E4781E0B4A5D006451C7 /* Frameworks */ = { 299 | isa = PBXFrameworksBuildPhase; 300 | buildActionMask = 2147483647; 301 | files = ( 302 | 2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */, 303 | 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation-tvOS.a in Frameworks */, 304 | 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */, 305 | 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */, 306 | 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */, 307 | 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */, 308 | 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */, 309 | 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */, 310 | ); 311 | runOnlyForDeploymentPostprocessing = 0; 312 | }; 313 | 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = { 314 | isa = PBXFrameworksBuildPhase; 315 | buildActionMask = 2147483647; 316 | files = ( 317 | ); 318 | runOnlyForDeploymentPostprocessing = 0; 319 | }; 320 | /* End PBXFrameworksBuildPhase section */ 321 | 322 | /* Begin PBXGroup section */ 323 | 00C302A81ABCB8CE00DB3ED1 /* Products */ = { 324 | isa = PBXGroup; 325 | children = ( 326 | 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */, 327 | ); 328 | name = Products; 329 | sourceTree = ""; 330 | }; 331 | 00C302B61ABCB90400DB3ED1 /* Products */ = { 332 | isa = PBXGroup; 333 | children = ( 334 | 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */, 335 | ); 336 | name = Products; 337 | sourceTree = ""; 338 | }; 339 | 00C302BC1ABCB91800DB3ED1 /* Products */ = { 340 | isa = PBXGroup; 341 | children = ( 342 | 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */, 343 | 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */, 344 | ); 345 | name = Products; 346 | sourceTree = ""; 347 | }; 348 | 00C302D41ABCB9D200DB3ED1 /* Products */ = { 349 | isa = PBXGroup; 350 | children = ( 351 | 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */, 352 | 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */, 353 | ); 354 | name = Products; 355 | sourceTree = ""; 356 | }; 357 | 00C302E01ABCB9EE00DB3ED1 /* Products */ = { 358 | isa = PBXGroup; 359 | children = ( 360 | 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */, 361 | ); 362 | name = Products; 363 | sourceTree = ""; 364 | }; 365 | 00E356EF1AD99517003FC87E /* exampleTests */ = { 366 | isa = PBXGroup; 367 | children = ( 368 | 00E356F21AD99517003FC87E /* exampleTests.m */, 369 | 00E356F01AD99517003FC87E /* Supporting Files */, 370 | ); 371 | path = exampleTests; 372 | sourceTree = ""; 373 | }; 374 | 00E356F01AD99517003FC87E /* Supporting Files */ = { 375 | isa = PBXGroup; 376 | children = ( 377 | 00E356F11AD99517003FC87E /* Info.plist */, 378 | ); 379 | name = "Supporting Files"; 380 | sourceTree = ""; 381 | }; 382 | 139105B71AF99BAD00B5F7CC /* Products */ = { 383 | isa = PBXGroup; 384 | children = ( 385 | 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */, 386 | 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */, 387 | ); 388 | name = Products; 389 | sourceTree = ""; 390 | }; 391 | 139FDEE71B06529A00C62182 /* Products */ = { 392 | isa = PBXGroup; 393 | children = ( 394 | 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */, 395 | 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */, 396 | ); 397 | name = Products; 398 | sourceTree = ""; 399 | }; 400 | 13B07FAE1A68108700A75B9A /* example */ = { 401 | isa = PBXGroup; 402 | children = ( 403 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */, 404 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 405 | 13B07FB01A68108700A75B9A /* AppDelegate.m */, 406 | 13B07FB51A68108700A75B9A /* Images.xcassets */, 407 | 13B07FB61A68108700A75B9A /* Info.plist */, 408 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, 409 | 13B07FB71A68108700A75B9A /* main.m */, 410 | ); 411 | name = example; 412 | sourceTree = ""; 413 | }; 414 | 146834001AC3E56700842450 /* Products */ = { 415 | isa = PBXGroup; 416 | children = ( 417 | 146834041AC3E56700842450 /* libReact.a */, 418 | 3DAD3EA31DF850E9000B6D8A /* libReact.a */, 419 | 3DAD3EA51DF850E9000B6D8A /* libyoga.a */, 420 | 3DAD3EA71DF850E9000B6D8A /* libyoga.a */, 421 | 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */, 422 | 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */, 423 | 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */, 424 | 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */, 425 | 3DAD3EA31DF850E9000B6D8A /* libReact-tvOS.a */, 426 | ); 427 | name = Products; 428 | sourceTree = ""; 429 | }; 430 | 5E91572E1DD0AC6500FF2AA8 /* Products */ = { 431 | isa = PBXGroup; 432 | children = ( 433 | 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */, 434 | 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */, 435 | ); 436 | name = Products; 437 | sourceTree = ""; 438 | }; 439 | 78C398B11ACF4ADC00677621 /* Products */ = { 440 | isa = PBXGroup; 441 | children = ( 442 | 78C398B91ACF4ADC00677621 /* libRCTLinking.a */, 443 | 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */, 444 | ); 445 | name = Products; 446 | sourceTree = ""; 447 | }; 448 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = { 449 | isa = PBXGroup; 450 | children = ( 451 | 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */, 452 | 146833FF1AC3E56700842450 /* React.xcodeproj */, 453 | 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, 454 | ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */, 455 | 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, 456 | 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */, 457 | 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */, 458 | 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */, 459 | 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */, 460 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, 461 | 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, 462 | 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, 463 | ); 464 | name = Libraries; 465 | sourceTree = ""; 466 | }; 467 | 832341B11AAA6A8300B99B32 /* Products */ = { 468 | isa = PBXGroup; 469 | children = ( 470 | 832341B51AAA6A8300B99B32 /* libRCTText.a */, 471 | 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */, 472 | ); 473 | name = Products; 474 | sourceTree = ""; 475 | }; 476 | 83CBB9F61A601CBA00E9B192 = { 477 | isa = PBXGroup; 478 | children = ( 479 | 13B07FAE1A68108700A75B9A /* example */, 480 | 832341AE1AAA6A7D00B99B32 /* Libraries */, 481 | 00E356EF1AD99517003FC87E /* exampleTests */, 482 | 83CBBA001A601CBA00E9B192 /* Products */, 483 | ); 484 | indentWidth = 2; 485 | sourceTree = ""; 486 | tabWidth = 2; 487 | usesTabs = 0; 488 | }; 489 | 83CBBA001A601CBA00E9B192 /* Products */ = { 490 | isa = PBXGroup; 491 | children = ( 492 | 13B07F961A680F5B00A75B9A /* example.app */, 493 | 00E356EE1AD99517003FC87E /* exampleTests.xctest */, 494 | 2D02E47B1E0B4A5D006451C7 /* example-tvOS.app */, 495 | 2D02E4901E0B4A5D006451C7 /* example-tvOSTests.xctest */, 496 | ); 497 | name = Products; 498 | sourceTree = ""; 499 | }; 500 | ADBDB9201DFEBF0600ED6528 /* Products */ = { 501 | isa = PBXGroup; 502 | children = ( 503 | ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */, 504 | ); 505 | name = Products; 506 | sourceTree = ""; 507 | }; 508 | /* End PBXGroup section */ 509 | 510 | /* Begin PBXNativeTarget section */ 511 | 00E356ED1AD99517003FC87E /* exampleTests */ = { 512 | isa = PBXNativeTarget; 513 | buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "exampleTests" */; 514 | buildPhases = ( 515 | 00E356EA1AD99517003FC87E /* Sources */, 516 | 00E356EB1AD99517003FC87E /* Frameworks */, 517 | 00E356EC1AD99517003FC87E /* Resources */, 518 | ); 519 | buildRules = ( 520 | ); 521 | dependencies = ( 522 | 00E356F51AD99517003FC87E /* PBXTargetDependency */, 523 | ); 524 | name = exampleTests; 525 | productName = exampleTests; 526 | productReference = 00E356EE1AD99517003FC87E /* exampleTests.xctest */; 527 | productType = "com.apple.product-type.bundle.unit-test"; 528 | }; 529 | 13B07F861A680F5B00A75B9A /* example */ = { 530 | isa = PBXNativeTarget; 531 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "example" */; 532 | buildPhases = ( 533 | 13B07F871A680F5B00A75B9A /* Sources */, 534 | 13B07F8C1A680F5B00A75B9A /* Frameworks */, 535 | 13B07F8E1A680F5B00A75B9A /* Resources */, 536 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 537 | ); 538 | buildRules = ( 539 | ); 540 | dependencies = ( 541 | ); 542 | name = example; 543 | productName = "Hello World"; 544 | productReference = 13B07F961A680F5B00A75B9A /* example.app */; 545 | productType = "com.apple.product-type.application"; 546 | }; 547 | 2D02E47A1E0B4A5D006451C7 /* example-tvOS */ = { 548 | isa = PBXNativeTarget; 549 | buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "example-tvOS" */; 550 | buildPhases = ( 551 | 2D02E4771E0B4A5D006451C7 /* Sources */, 552 | 2D02E4781E0B4A5D006451C7 /* Frameworks */, 553 | 2D02E4791E0B4A5D006451C7 /* Resources */, 554 | 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */, 555 | ); 556 | buildRules = ( 557 | ); 558 | dependencies = ( 559 | ); 560 | name = "example-tvOS"; 561 | productName = "example-tvOS"; 562 | productReference = 2D02E47B1E0B4A5D006451C7 /* example-tvOS.app */; 563 | productType = "com.apple.product-type.application"; 564 | }; 565 | 2D02E48F1E0B4A5D006451C7 /* example-tvOSTests */ = { 566 | isa = PBXNativeTarget; 567 | buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "example-tvOSTests" */; 568 | buildPhases = ( 569 | 2D02E48C1E0B4A5D006451C7 /* Sources */, 570 | 2D02E48D1E0B4A5D006451C7 /* Frameworks */, 571 | 2D02E48E1E0B4A5D006451C7 /* Resources */, 572 | ); 573 | buildRules = ( 574 | ); 575 | dependencies = ( 576 | 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */, 577 | ); 578 | name = "example-tvOSTests"; 579 | productName = "example-tvOSTests"; 580 | productReference = 2D02E4901E0B4A5D006451C7 /* example-tvOSTests.xctest */; 581 | productType = "com.apple.product-type.bundle.unit-test"; 582 | }; 583 | /* End PBXNativeTarget section */ 584 | 585 | /* Begin PBXProject section */ 586 | 83CBB9F71A601CBA00E9B192 /* Project object */ = { 587 | isa = PBXProject; 588 | attributes = { 589 | LastUpgradeCheck = 0610; 590 | ORGANIZATIONNAME = Facebook; 591 | TargetAttributes = { 592 | 00E356ED1AD99517003FC87E = { 593 | CreatedOnToolsVersion = 6.2; 594 | TestTargetID = 13B07F861A680F5B00A75B9A; 595 | }; 596 | 2D02E47A1E0B4A5D006451C7 = { 597 | CreatedOnToolsVersion = 8.2.1; 598 | ProvisioningStyle = Automatic; 599 | }; 600 | 2D02E48F1E0B4A5D006451C7 = { 601 | CreatedOnToolsVersion = 8.2.1; 602 | ProvisioningStyle = Automatic; 603 | TestTargetID = 2D02E47A1E0B4A5D006451C7; 604 | }; 605 | }; 606 | }; 607 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */; 608 | compatibilityVersion = "Xcode 3.2"; 609 | developmentRegion = English; 610 | hasScannedForEncodings = 0; 611 | knownRegions = ( 612 | en, 613 | Base, 614 | ); 615 | mainGroup = 83CBB9F61A601CBA00E9B192; 616 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; 617 | projectDirPath = ""; 618 | projectReferences = ( 619 | { 620 | ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */; 621 | ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; 622 | }, 623 | { 624 | ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */; 625 | ProjectRef = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; 626 | }, 627 | { 628 | ProductGroup = ADBDB9201DFEBF0600ED6528 /* Products */; 629 | ProjectRef = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; 630 | }, 631 | { 632 | ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; 633 | ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; 634 | }, 635 | { 636 | ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */; 637 | ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; 638 | }, 639 | { 640 | ProductGroup = 78C398B11ACF4ADC00677621 /* Products */; 641 | ProjectRef = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; 642 | }, 643 | { 644 | ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */; 645 | ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; 646 | }, 647 | { 648 | ProductGroup = 139105B71AF99BAD00B5F7CC /* Products */; 649 | ProjectRef = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; 650 | }, 651 | { 652 | ProductGroup = 832341B11AAA6A8300B99B32 /* Products */; 653 | ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; 654 | }, 655 | { 656 | ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */; 657 | ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; 658 | }, 659 | { 660 | ProductGroup = 139FDEE71B06529A00C62182 /* Products */; 661 | ProjectRef = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; 662 | }, 663 | { 664 | ProductGroup = 146834001AC3E56700842450 /* Products */; 665 | ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; 666 | }, 667 | ); 668 | projectRoot = ""; 669 | targets = ( 670 | 13B07F861A680F5B00A75B9A /* example */, 671 | 00E356ED1AD99517003FC87E /* exampleTests */, 672 | 2D02E47A1E0B4A5D006451C7 /* example-tvOS */, 673 | 2D02E48F1E0B4A5D006451C7 /* example-tvOSTests */, 674 | ); 675 | }; 676 | /* End PBXProject section */ 677 | 678 | /* Begin PBXReferenceProxy section */ 679 | 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = { 680 | isa = PBXReferenceProxy; 681 | fileType = archive.ar; 682 | path = libRCTActionSheet.a; 683 | remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */; 684 | sourceTree = BUILT_PRODUCTS_DIR; 685 | }; 686 | 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = { 687 | isa = PBXReferenceProxy; 688 | fileType = archive.ar; 689 | path = libRCTGeolocation.a; 690 | remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */; 691 | sourceTree = BUILT_PRODUCTS_DIR; 692 | }; 693 | 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = { 694 | isa = PBXReferenceProxy; 695 | fileType = archive.ar; 696 | path = libRCTImage.a; 697 | remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */; 698 | sourceTree = BUILT_PRODUCTS_DIR; 699 | }; 700 | 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = { 701 | isa = PBXReferenceProxy; 702 | fileType = archive.ar; 703 | path = libRCTNetwork.a; 704 | remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */; 705 | sourceTree = BUILT_PRODUCTS_DIR; 706 | }; 707 | 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = { 708 | isa = PBXReferenceProxy; 709 | fileType = archive.ar; 710 | path = libRCTVibration.a; 711 | remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */; 712 | sourceTree = BUILT_PRODUCTS_DIR; 713 | }; 714 | 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = { 715 | isa = PBXReferenceProxy; 716 | fileType = archive.ar; 717 | path = libRCTSettings.a; 718 | remoteRef = 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */; 719 | sourceTree = BUILT_PRODUCTS_DIR; 720 | }; 721 | 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */ = { 722 | isa = PBXReferenceProxy; 723 | fileType = archive.ar; 724 | path = libRCTWebSocket.a; 725 | remoteRef = 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */; 726 | sourceTree = BUILT_PRODUCTS_DIR; 727 | }; 728 | 146834041AC3E56700842450 /* libReact.a */ = { 729 | isa = PBXReferenceProxy; 730 | fileType = archive.ar; 731 | path = libReact.a; 732 | remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; 733 | sourceTree = BUILT_PRODUCTS_DIR; 734 | }; 735 | 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = { 736 | isa = PBXReferenceProxy; 737 | fileType = archive.ar; 738 | path = "libRCTImage-tvOS.a"; 739 | remoteRef = 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */; 740 | sourceTree = BUILT_PRODUCTS_DIR; 741 | }; 742 | 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */ = { 743 | isa = PBXReferenceProxy; 744 | fileType = archive.ar; 745 | path = "libRCTLinking-tvOS.a"; 746 | remoteRef = 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */; 747 | sourceTree = BUILT_PRODUCTS_DIR; 748 | }; 749 | 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */ = { 750 | isa = PBXReferenceProxy; 751 | fileType = archive.ar; 752 | path = "libRCTNetwork-tvOS.a"; 753 | remoteRef = 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */; 754 | sourceTree = BUILT_PRODUCTS_DIR; 755 | }; 756 | 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */ = { 757 | isa = PBXReferenceProxy; 758 | fileType = archive.ar; 759 | path = "libRCTSettings-tvOS.a"; 760 | remoteRef = 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */; 761 | sourceTree = BUILT_PRODUCTS_DIR; 762 | }; 763 | 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */ = { 764 | isa = PBXReferenceProxy; 765 | fileType = archive.ar; 766 | path = "libRCTText-tvOS.a"; 767 | remoteRef = 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */; 768 | sourceTree = BUILT_PRODUCTS_DIR; 769 | }; 770 | 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */ = { 771 | isa = PBXReferenceProxy; 772 | fileType = archive.ar; 773 | path = "libRCTWebSocket-tvOS.a"; 774 | remoteRef = 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */; 775 | sourceTree = BUILT_PRODUCTS_DIR; 776 | }; 777 | 3DAD3EA31DF850E9000B6D8A /* libReact-tvOS.a */ = { 778 | isa = PBXReferenceProxy; 779 | fileType = archive.ar; 780 | path = "libReact-tvOS.a"; 781 | remoteRef = 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */; 782 | sourceTree = BUILT_PRODUCTS_DIR; 783 | }; 784 | 3DAD3EA51DF850E9000B6D8A /* libyoga.a */ = { 785 | isa = PBXReferenceProxy; 786 | fileType = archive.ar; 787 | path = libyoga.a; 788 | remoteRef = 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */; 789 | sourceTree = BUILT_PRODUCTS_DIR; 790 | }; 791 | 3DAD3EA71DF850E9000B6D8A /* libyoga.a */ = { 792 | isa = PBXReferenceProxy; 793 | fileType = archive.ar; 794 | path = libyoga.a; 795 | remoteRef = 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */; 796 | sourceTree = BUILT_PRODUCTS_DIR; 797 | }; 798 | 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */ = { 799 | isa = PBXReferenceProxy; 800 | fileType = archive.ar; 801 | path = libcxxreact.a; 802 | remoteRef = 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */; 803 | sourceTree = BUILT_PRODUCTS_DIR; 804 | }; 805 | 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */ = { 806 | isa = PBXReferenceProxy; 807 | fileType = archive.ar; 808 | path = libcxxreact.a; 809 | remoteRef = 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */; 810 | sourceTree = BUILT_PRODUCTS_DIR; 811 | }; 812 | 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */ = { 813 | isa = PBXReferenceProxy; 814 | fileType = archive.ar; 815 | path = libjschelpers.a; 816 | remoteRef = 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */; 817 | sourceTree = BUILT_PRODUCTS_DIR; 818 | }; 819 | 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */ = { 820 | isa = PBXReferenceProxy; 821 | fileType = archive.ar; 822 | path = libjschelpers.a; 823 | remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */; 824 | sourceTree = BUILT_PRODUCTS_DIR; 825 | }; 826 | 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { 827 | isa = PBXReferenceProxy; 828 | fileType = archive.ar; 829 | path = libRCTAnimation.a; 830 | remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */; 831 | sourceTree = BUILT_PRODUCTS_DIR; 832 | }; 833 | 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */ = { 834 | isa = PBXReferenceProxy; 835 | fileType = archive.ar; 836 | path = "libRCTAnimation-tvOS.a"; 837 | remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */; 838 | sourceTree = BUILT_PRODUCTS_DIR; 839 | }; 840 | 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = { 841 | isa = PBXReferenceProxy; 842 | fileType = archive.ar; 843 | path = libRCTLinking.a; 844 | remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */; 845 | sourceTree = BUILT_PRODUCTS_DIR; 846 | }; 847 | 832341B51AAA6A8300B99B32 /* libRCTText.a */ = { 848 | isa = PBXReferenceProxy; 849 | fileType = archive.ar; 850 | path = libRCTText.a; 851 | remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; 852 | sourceTree = BUILT_PRODUCTS_DIR; 853 | }; 854 | ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */ = { 855 | isa = PBXReferenceProxy; 856 | fileType = archive.ar; 857 | path = libRCTBlob.a; 858 | remoteRef = ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */; 859 | sourceTree = BUILT_PRODUCTS_DIR; 860 | }; 861 | /* End PBXReferenceProxy section */ 862 | 863 | /* Begin PBXResourcesBuildPhase section */ 864 | 00E356EC1AD99517003FC87E /* Resources */ = { 865 | isa = PBXResourcesBuildPhase; 866 | buildActionMask = 2147483647; 867 | files = ( 868 | ); 869 | runOnlyForDeploymentPostprocessing = 0; 870 | }; 871 | 13B07F8E1A680F5B00A75B9A /* Resources */ = { 872 | isa = PBXResourcesBuildPhase; 873 | buildActionMask = 2147483647; 874 | files = ( 875 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 876 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, 877 | ); 878 | runOnlyForDeploymentPostprocessing = 0; 879 | }; 880 | 2D02E4791E0B4A5D006451C7 /* Resources */ = { 881 | isa = PBXResourcesBuildPhase; 882 | buildActionMask = 2147483647; 883 | files = ( 884 | 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */, 885 | ); 886 | runOnlyForDeploymentPostprocessing = 0; 887 | }; 888 | 2D02E48E1E0B4A5D006451C7 /* Resources */ = { 889 | isa = PBXResourcesBuildPhase; 890 | buildActionMask = 2147483647; 891 | files = ( 892 | ); 893 | runOnlyForDeploymentPostprocessing = 0; 894 | }; 895 | /* End PBXResourcesBuildPhase section */ 896 | 897 | /* Begin PBXShellScriptBuildPhase section */ 898 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { 899 | isa = PBXShellScriptBuildPhase; 900 | buildActionMask = 2147483647; 901 | files = ( 902 | ); 903 | inputPaths = ( 904 | ); 905 | name = "Bundle React Native code and images"; 906 | outputPaths = ( 907 | ); 908 | runOnlyForDeploymentPostprocessing = 0; 909 | shellPath = /bin/sh; 910 | shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; 911 | }; 912 | 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { 913 | isa = PBXShellScriptBuildPhase; 914 | buildActionMask = 2147483647; 915 | files = ( 916 | ); 917 | inputPaths = ( 918 | ); 919 | name = "Bundle React Native Code And Images"; 920 | outputPaths = ( 921 | ); 922 | runOnlyForDeploymentPostprocessing = 0; 923 | shellPath = /bin/sh; 924 | shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; 925 | }; 926 | /* End PBXShellScriptBuildPhase section */ 927 | 928 | /* Begin PBXSourcesBuildPhase section */ 929 | 00E356EA1AD99517003FC87E /* Sources */ = { 930 | isa = PBXSourcesBuildPhase; 931 | buildActionMask = 2147483647; 932 | files = ( 933 | 00E356F31AD99517003FC87E /* exampleTests.m in Sources */, 934 | ); 935 | runOnlyForDeploymentPostprocessing = 0; 936 | }; 937 | 13B07F871A680F5B00A75B9A /* Sources */ = { 938 | isa = PBXSourcesBuildPhase; 939 | buildActionMask = 2147483647; 940 | files = ( 941 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, 942 | 13B07FC11A68108700A75B9A /* main.m in Sources */, 943 | ); 944 | runOnlyForDeploymentPostprocessing = 0; 945 | }; 946 | 2D02E4771E0B4A5D006451C7 /* Sources */ = { 947 | isa = PBXSourcesBuildPhase; 948 | buildActionMask = 2147483647; 949 | files = ( 950 | 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */, 951 | 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */, 952 | ); 953 | runOnlyForDeploymentPostprocessing = 0; 954 | }; 955 | 2D02E48C1E0B4A5D006451C7 /* Sources */ = { 956 | isa = PBXSourcesBuildPhase; 957 | buildActionMask = 2147483647; 958 | files = ( 959 | 2DCD954D1E0B4F2C00145EB5 /* exampleTests.m in Sources */, 960 | ); 961 | runOnlyForDeploymentPostprocessing = 0; 962 | }; 963 | /* End PBXSourcesBuildPhase section */ 964 | 965 | /* Begin PBXTargetDependency section */ 966 | 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { 967 | isa = PBXTargetDependency; 968 | target = 13B07F861A680F5B00A75B9A /* example */; 969 | targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; 970 | }; 971 | 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = { 972 | isa = PBXTargetDependency; 973 | target = 2D02E47A1E0B4A5D006451C7 /* example-tvOS */; 974 | targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */; 975 | }; 976 | /* End PBXTargetDependency section */ 977 | 978 | /* Begin PBXVariantGroup section */ 979 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { 980 | isa = PBXVariantGroup; 981 | children = ( 982 | 13B07FB21A68108700A75B9A /* Base */, 983 | ); 984 | name = LaunchScreen.xib; 985 | path = example; 986 | sourceTree = ""; 987 | }; 988 | /* End PBXVariantGroup section */ 989 | 990 | /* Begin XCBuildConfiguration section */ 991 | 00E356F61AD99517003FC87E /* Debug */ = { 992 | isa = XCBuildConfiguration; 993 | buildSettings = { 994 | BUNDLE_LOADER = "$(TEST_HOST)"; 995 | GCC_PREPROCESSOR_DEFINITIONS = ( 996 | "DEBUG=1", 997 | "$(inherited)", 998 | ); 999 | INFOPLIST_FILE = exampleTests/Info.plist; 1000 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 1001 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1002 | OTHER_LDFLAGS = ( 1003 | "-ObjC", 1004 | "-lc++", 1005 | ); 1006 | PRODUCT_NAME = "$(TARGET_NAME)"; 1007 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/example"; 1008 | }; 1009 | name = Debug; 1010 | }; 1011 | 00E356F71AD99517003FC87E /* Release */ = { 1012 | isa = XCBuildConfiguration; 1013 | buildSettings = { 1014 | BUNDLE_LOADER = "$(TEST_HOST)"; 1015 | COPY_PHASE_STRIP = NO; 1016 | INFOPLIST_FILE = exampleTests/Info.plist; 1017 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 1018 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1019 | OTHER_LDFLAGS = ( 1020 | "-ObjC", 1021 | "-lc++", 1022 | ); 1023 | PRODUCT_NAME = "$(TARGET_NAME)"; 1024 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/example"; 1025 | }; 1026 | name = Release; 1027 | }; 1028 | 13B07F941A680F5B00A75B9A /* Debug */ = { 1029 | isa = XCBuildConfiguration; 1030 | buildSettings = { 1031 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 1032 | CURRENT_PROJECT_VERSION = 1; 1033 | DEAD_CODE_STRIPPING = NO; 1034 | INFOPLIST_FILE = example/Info.plist; 1035 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1036 | OTHER_LDFLAGS = ( 1037 | "$(inherited)", 1038 | "-ObjC", 1039 | "-lc++", 1040 | ); 1041 | PRODUCT_NAME = example; 1042 | VERSIONING_SYSTEM = "apple-generic"; 1043 | }; 1044 | name = Debug; 1045 | }; 1046 | 13B07F951A680F5B00A75B9A /* Release */ = { 1047 | isa = XCBuildConfiguration; 1048 | buildSettings = { 1049 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 1050 | CURRENT_PROJECT_VERSION = 1; 1051 | INFOPLIST_FILE = example/Info.plist; 1052 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1053 | OTHER_LDFLAGS = ( 1054 | "$(inherited)", 1055 | "-ObjC", 1056 | "-lc++", 1057 | ); 1058 | PRODUCT_NAME = example; 1059 | VERSIONING_SYSTEM = "apple-generic"; 1060 | }; 1061 | name = Release; 1062 | }; 1063 | 2D02E4971E0B4A5E006451C7 /* Debug */ = { 1064 | isa = XCBuildConfiguration; 1065 | buildSettings = { 1066 | ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; 1067 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 1068 | CLANG_ANALYZER_NONNULL = YES; 1069 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1070 | CLANG_WARN_INFINITE_RECURSION = YES; 1071 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1072 | DEBUG_INFORMATION_FORMAT = dwarf; 1073 | ENABLE_TESTABILITY = YES; 1074 | GCC_NO_COMMON_BLOCKS = YES; 1075 | INFOPLIST_FILE = "example-tvOS/Info.plist"; 1076 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1077 | OTHER_LDFLAGS = ( 1078 | "-ObjC", 1079 | "-lc++", 1080 | ); 1081 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.example-tvOS"; 1082 | PRODUCT_NAME = "$(TARGET_NAME)"; 1083 | SDKROOT = appletvos; 1084 | TARGETED_DEVICE_FAMILY = 3; 1085 | TVOS_DEPLOYMENT_TARGET = 9.2; 1086 | }; 1087 | name = Debug; 1088 | }; 1089 | 2D02E4981E0B4A5E006451C7 /* Release */ = { 1090 | isa = XCBuildConfiguration; 1091 | buildSettings = { 1092 | ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; 1093 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 1094 | CLANG_ANALYZER_NONNULL = YES; 1095 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1096 | CLANG_WARN_INFINITE_RECURSION = YES; 1097 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1098 | COPY_PHASE_STRIP = NO; 1099 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1100 | GCC_NO_COMMON_BLOCKS = YES; 1101 | INFOPLIST_FILE = "example-tvOS/Info.plist"; 1102 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1103 | OTHER_LDFLAGS = ( 1104 | "-ObjC", 1105 | "-lc++", 1106 | ); 1107 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.example-tvOS"; 1108 | PRODUCT_NAME = "$(TARGET_NAME)"; 1109 | SDKROOT = appletvos; 1110 | TARGETED_DEVICE_FAMILY = 3; 1111 | TVOS_DEPLOYMENT_TARGET = 9.2; 1112 | }; 1113 | name = Release; 1114 | }; 1115 | 2D02E4991E0B4A5E006451C7 /* Debug */ = { 1116 | isa = XCBuildConfiguration; 1117 | buildSettings = { 1118 | BUNDLE_LOADER = "$(TEST_HOST)"; 1119 | CLANG_ANALYZER_NONNULL = YES; 1120 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1121 | CLANG_WARN_INFINITE_RECURSION = YES; 1122 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1123 | DEBUG_INFORMATION_FORMAT = dwarf; 1124 | ENABLE_TESTABILITY = YES; 1125 | GCC_NO_COMMON_BLOCKS = YES; 1126 | INFOPLIST_FILE = "example-tvOSTests/Info.plist"; 1127 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1128 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.example-tvOSTests"; 1129 | PRODUCT_NAME = "$(TARGET_NAME)"; 1130 | SDKROOT = appletvos; 1131 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example-tvOS.app/example-tvOS"; 1132 | TVOS_DEPLOYMENT_TARGET = 10.1; 1133 | }; 1134 | name = Debug; 1135 | }; 1136 | 2D02E49A1E0B4A5E006451C7 /* Release */ = { 1137 | isa = XCBuildConfiguration; 1138 | buildSettings = { 1139 | BUNDLE_LOADER = "$(TEST_HOST)"; 1140 | CLANG_ANALYZER_NONNULL = YES; 1141 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1142 | CLANG_WARN_INFINITE_RECURSION = YES; 1143 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1144 | COPY_PHASE_STRIP = NO; 1145 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1146 | GCC_NO_COMMON_BLOCKS = YES; 1147 | INFOPLIST_FILE = "example-tvOSTests/Info.plist"; 1148 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1149 | PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.example-tvOSTests"; 1150 | PRODUCT_NAME = "$(TARGET_NAME)"; 1151 | SDKROOT = appletvos; 1152 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example-tvOS.app/example-tvOS"; 1153 | TVOS_DEPLOYMENT_TARGET = 10.1; 1154 | }; 1155 | name = Release; 1156 | }; 1157 | 83CBBA201A601CBA00E9B192 /* Debug */ = { 1158 | isa = XCBuildConfiguration; 1159 | buildSettings = { 1160 | ALWAYS_SEARCH_USER_PATHS = NO; 1161 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 1162 | CLANG_CXX_LIBRARY = "libc++"; 1163 | CLANG_ENABLE_MODULES = YES; 1164 | CLANG_ENABLE_OBJC_ARC = YES; 1165 | CLANG_WARN_BOOL_CONVERSION = YES; 1166 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1167 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1168 | CLANG_WARN_EMPTY_BODY = YES; 1169 | CLANG_WARN_ENUM_CONVERSION = YES; 1170 | CLANG_WARN_INT_CONVERSION = YES; 1171 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1172 | CLANG_WARN_UNREACHABLE_CODE = YES; 1173 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1174 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 1175 | COPY_PHASE_STRIP = NO; 1176 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1177 | GCC_C_LANGUAGE_STANDARD = gnu99; 1178 | GCC_DYNAMIC_NO_PIC = NO; 1179 | GCC_OPTIMIZATION_LEVEL = 0; 1180 | GCC_PREPROCESSOR_DEFINITIONS = ( 1181 | "DEBUG=1", 1182 | "$(inherited)", 1183 | ); 1184 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 1185 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1186 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1187 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1188 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1189 | GCC_WARN_UNUSED_FUNCTION = YES; 1190 | GCC_WARN_UNUSED_VARIABLE = YES; 1191 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 1192 | MTL_ENABLE_DEBUG_INFO = YES; 1193 | ONLY_ACTIVE_ARCH = YES; 1194 | SDKROOT = iphoneos; 1195 | }; 1196 | name = Debug; 1197 | }; 1198 | 83CBBA211A601CBA00E9B192 /* Release */ = { 1199 | isa = XCBuildConfiguration; 1200 | buildSettings = { 1201 | ALWAYS_SEARCH_USER_PATHS = NO; 1202 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 1203 | CLANG_CXX_LIBRARY = "libc++"; 1204 | CLANG_ENABLE_MODULES = YES; 1205 | CLANG_ENABLE_OBJC_ARC = YES; 1206 | CLANG_WARN_BOOL_CONVERSION = YES; 1207 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1208 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1209 | CLANG_WARN_EMPTY_BODY = YES; 1210 | CLANG_WARN_ENUM_CONVERSION = YES; 1211 | CLANG_WARN_INT_CONVERSION = YES; 1212 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1213 | CLANG_WARN_UNREACHABLE_CODE = YES; 1214 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1215 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 1216 | COPY_PHASE_STRIP = YES; 1217 | ENABLE_NS_ASSERTIONS = NO; 1218 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1219 | GCC_C_LANGUAGE_STANDARD = gnu99; 1220 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1221 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1222 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1223 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1224 | GCC_WARN_UNUSED_FUNCTION = YES; 1225 | GCC_WARN_UNUSED_VARIABLE = YES; 1226 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 1227 | MTL_ENABLE_DEBUG_INFO = NO; 1228 | SDKROOT = iphoneos; 1229 | VALIDATE_PRODUCT = YES; 1230 | }; 1231 | name = Release; 1232 | }; 1233 | /* End XCBuildConfiguration section */ 1234 | 1235 | /* Begin XCConfigurationList section */ 1236 | 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "exampleTests" */ = { 1237 | isa = XCConfigurationList; 1238 | buildConfigurations = ( 1239 | 00E356F61AD99517003FC87E /* Debug */, 1240 | 00E356F71AD99517003FC87E /* Release */, 1241 | ); 1242 | defaultConfigurationIsVisible = 0; 1243 | defaultConfigurationName = Release; 1244 | }; 1245 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "example" */ = { 1246 | isa = XCConfigurationList; 1247 | buildConfigurations = ( 1248 | 13B07F941A680F5B00A75B9A /* Debug */, 1249 | 13B07F951A680F5B00A75B9A /* Release */, 1250 | ); 1251 | defaultConfigurationIsVisible = 0; 1252 | defaultConfigurationName = Release; 1253 | }; 1254 | 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "example-tvOS" */ = { 1255 | isa = XCConfigurationList; 1256 | buildConfigurations = ( 1257 | 2D02E4971E0B4A5E006451C7 /* Debug */, 1258 | 2D02E4981E0B4A5E006451C7 /* Release */, 1259 | ); 1260 | defaultConfigurationIsVisible = 0; 1261 | defaultConfigurationName = Release; 1262 | }; 1263 | 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "example-tvOSTests" */ = { 1264 | isa = XCConfigurationList; 1265 | buildConfigurations = ( 1266 | 2D02E4991E0B4A5E006451C7 /* Debug */, 1267 | 2D02E49A1E0B4A5E006451C7 /* Release */, 1268 | ); 1269 | defaultConfigurationIsVisible = 0; 1270 | defaultConfigurationName = Release; 1271 | }; 1272 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */ = { 1273 | isa = XCConfigurationList; 1274 | buildConfigurations = ( 1275 | 83CBBA201A601CBA00E9B192 /* Debug */, 1276 | 83CBBA211A601CBA00E9B192 /* Release */, 1277 | ); 1278 | defaultConfigurationIsVisible = 0; 1279 | defaultConfigurationName = Release; 1280 | }; 1281 | /* End XCConfigurationList section */ 1282 | }; 1283 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; 1284 | } 1285 | -------------------------------------------------------------------------------- /example/ios/example.xcodeproj/xcshareddata/xcschemes/example-tvOS.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 43 | 49 | 50 | 51 | 52 | 53 | 58 | 59 | 61 | 67 | 68 | 69 | 70 | 71 | 77 | 78 | 79 | 80 | 81 | 82 | 92 | 94 | 100 | 101 | 102 | 103 | 104 | 105 | 111 | 113 | 119 | 120 | 121 | 122 | 124 | 125 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /example/ios/example.xcodeproj/xcshareddata/xcschemes/example.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 43 | 49 | 50 | 51 | 52 | 53 | 58 | 59 | 61 | 67 | 68 | 69 | 70 | 71 | 77 | 78 | 79 | 80 | 81 | 82 | 92 | 94 | 100 | 101 | 102 | 103 | 104 | 105 | 111 | 113 | 119 | 120 | 121 | 122 | 124 | 125 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /example/ios/example/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @interface AppDelegate : UIResponder 13 | 14 | @property (nonatomic, strong) UIWindow *window; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /example/ios/example/AppDelegate.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "AppDelegate.h" 11 | 12 | #import 13 | #import 14 | 15 | @implementation AppDelegate 16 | 17 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 18 | { 19 | NSURL *jsCodeLocation; 20 | 21 | jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; 22 | 23 | RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation 24 | moduleName:@"example" 25 | initialProperties:nil 26 | launchOptions:launchOptions]; 27 | rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; 28 | 29 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 30 | UIViewController *rootViewController = [UIViewController new]; 31 | rootViewController.view = rootView; 32 | self.window.rootViewController = rootViewController; 33 | [self.window makeKeyAndVisible]; 34 | return YES; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /example/ios/example/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 21 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /example/ios/example/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /example/ios/example/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | example 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | LSRequiresIPhoneOS 26 | 27 | UILaunchStoryboardName 28 | LaunchScreen 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UIViewControllerBasedStatusBarAppearance 40 | 41 | NSLocationWhenInUseUsageDescription 42 | 43 | NSAppTransportSecurity 44 | 45 | 46 | NSExceptionDomains 47 | 48 | localhost 49 | 50 | NSExceptionAllowsInsecureHTTPLoads 51 | 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /example/ios/example/main.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "AppDelegate.h" 13 | 14 | int main(int argc, char * argv[]) { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /example/ios/exampleTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /example/ios/exampleTests/exampleTests.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | #define TIMEOUT_SECONDS 600 17 | #define TEXT_TO_LOOK_FOR @"Welcome to React Native!" 18 | 19 | @interface exampleTests : XCTestCase 20 | 21 | @end 22 | 23 | @implementation exampleTests 24 | 25 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test 26 | { 27 | if (test(view)) { 28 | return YES; 29 | } 30 | for (UIView *subview in [view subviews]) { 31 | if ([self findSubviewInView:subview matching:test]) { 32 | return YES; 33 | } 34 | } 35 | return NO; 36 | } 37 | 38 | - (void)testRendersWelcomeScreen 39 | { 40 | UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; 41 | NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; 42 | BOOL foundElement = NO; 43 | 44 | __block NSString *redboxError = nil; 45 | RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { 46 | if (level >= RCTLogLevelError) { 47 | redboxError = message; 48 | } 49 | }); 50 | 51 | while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { 52 | [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 53 | [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 54 | 55 | foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { 56 | if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { 57 | return YES; 58 | } 59 | return NO; 60 | }]; 61 | } 62 | 63 | RCTSetLogFunction(RCTDefaultLogFunction); 64 | 65 | XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); 66 | XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); 67 | } 68 | 69 | 70 | @end 71 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "start": "node node_modules/react-native/local-cli/cli.js start", 7 | "test": "jest" 8 | }, 9 | "dependencies": { 10 | "react": "16.0.0-alpha.12", 11 | "react-native": "0.48.4" 12 | }, 13 | "devDependencies": { 14 | "babel-jest": "21.2.0", 15 | "babel-preset-react-native": "4.0.0", 16 | "jest": "21.2.1", 17 | "react-test-renderer": "16.0.0-alpha.12" 18 | }, 19 | "jest": { 20 | "preset": "react-native" 21 | } 22 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-dial", 3 | "version": "1.0.13", 4 | "description": "A react native reusable and efficient dial knob element", 5 | "main": "./Dial.js", 6 | "license": "MIT", 7 | "repository": { 8 | "type": "https", 9 | "url": "https://github.com/netbeast/react-native-dial" 10 | }, 11 | "keywords": [ 12 | "dial", 13 | "react", 14 | "native", 15 | "react-native", 16 | "android", 17 | "ios" 18 | ], 19 | "peerDependencies": { 20 | "react": ">=16.0.0", 21 | "react-native": ">=0.36" 22 | }, 23 | "devDependencies": { 24 | "babel-eslint": "^7.1.0", 25 | "babel-plugin-transform-inline-environment-variables": "^6.8.0", 26 | "babel-plugin-transform-remove-console": "^6.8.0", 27 | "babel-preset-react-native": "^1.9.0", 28 | "babel-preset-react-native-stage-0": "^1.0.1", 29 | "eslint": "^3.9.1", 30 | "eslint-plugin-react": "^6.6.0" 31 | }, 32 | "dependencies": { 33 | "lodash": "^4.17.4" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netbeast/react-native-dial/d37adc68e42d50ef731291da51dbac1eeaed333a/screenshot.png -------------------------------------------------------------------------------- /works-with-yeti.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netbeast/react-native-dial/d37adc68e42d50ef731291da51dbac1eeaed333a/works-with-yeti.png -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | acorn-jsx@^3.0.0: 6 | version "3.0.1" 7 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 8 | dependencies: 9 | acorn "^3.0.4" 10 | 11 | acorn@^3.0.4: 12 | version "3.3.0" 13 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 14 | 15 | acorn@^5.1.1: 16 | version "5.2.1" 17 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7" 18 | 19 | ajv-keywords@^1.0.0: 20 | version "1.5.1" 21 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" 22 | 23 | ajv@^4.7.0: 24 | version "4.11.8" 25 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 26 | dependencies: 27 | co "^4.6.0" 28 | json-stable-stringify "^1.0.1" 29 | 30 | ansi-escapes@^1.1.0: 31 | version "1.4.0" 32 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 33 | 34 | ansi-regex@^2.0.0: 35 | version "2.1.1" 36 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 37 | 38 | ansi-regex@^3.0.0: 39 | version "3.0.0" 40 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 41 | 42 | ansi-styles@^2.2.1: 43 | version "2.2.1" 44 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 45 | 46 | argparse@^1.0.7: 47 | version "1.0.9" 48 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" 49 | dependencies: 50 | sprintf-js "~1.0.2" 51 | 52 | array-union@^1.0.1: 53 | version "1.0.2" 54 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 55 | dependencies: 56 | array-uniq "^1.0.1" 57 | 58 | array-uniq@^1.0.1: 59 | version "1.0.3" 60 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 61 | 62 | array.prototype.find@^2.0.1: 63 | version "2.0.4" 64 | resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90" 65 | dependencies: 66 | define-properties "^1.1.2" 67 | es-abstract "^1.7.0" 68 | 69 | arrify@^1.0.0: 70 | version "1.0.1" 71 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 72 | 73 | babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: 74 | version "6.26.0" 75 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 76 | dependencies: 77 | chalk "^1.1.3" 78 | esutils "^2.0.2" 79 | js-tokens "^3.0.2" 80 | 81 | babel-eslint@^7.1.0: 82 | version "7.2.3" 83 | resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" 84 | dependencies: 85 | babel-code-frame "^6.22.0" 86 | babel-traverse "^6.23.1" 87 | babel-types "^6.23.0" 88 | babylon "^6.17.0" 89 | 90 | babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: 91 | version "6.24.1" 92 | resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" 93 | dependencies: 94 | babel-helper-explode-assignable-expression "^6.24.1" 95 | babel-runtime "^6.22.0" 96 | babel-types "^6.24.1" 97 | 98 | babel-helper-builder-react-jsx@^6.24.1: 99 | version "6.26.0" 100 | resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" 101 | dependencies: 102 | babel-runtime "^6.26.0" 103 | babel-types "^6.26.0" 104 | esutils "^2.0.2" 105 | 106 | babel-helper-call-delegate@^6.24.1: 107 | version "6.24.1" 108 | resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" 109 | dependencies: 110 | babel-helper-hoist-variables "^6.24.1" 111 | babel-runtime "^6.22.0" 112 | babel-traverse "^6.24.1" 113 | babel-types "^6.24.1" 114 | 115 | babel-helper-define-map@^6.24.1: 116 | version "6.26.0" 117 | resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" 118 | dependencies: 119 | babel-helper-function-name "^6.24.1" 120 | babel-runtime "^6.26.0" 121 | babel-types "^6.26.0" 122 | lodash "^4.17.4" 123 | 124 | babel-helper-explode-assignable-expression@^6.24.1: 125 | version "6.24.1" 126 | resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" 127 | dependencies: 128 | babel-runtime "^6.22.0" 129 | babel-traverse "^6.24.1" 130 | babel-types "^6.24.1" 131 | 132 | babel-helper-function-name@^6.24.1: 133 | version "6.24.1" 134 | resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" 135 | dependencies: 136 | babel-helper-get-function-arity "^6.24.1" 137 | babel-runtime "^6.22.0" 138 | babel-template "^6.24.1" 139 | babel-traverse "^6.24.1" 140 | babel-types "^6.24.1" 141 | 142 | babel-helper-get-function-arity@^6.24.1: 143 | version "6.24.1" 144 | resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" 145 | dependencies: 146 | babel-runtime "^6.22.0" 147 | babel-types "^6.24.1" 148 | 149 | babel-helper-hoist-variables@^6.24.1: 150 | version "6.24.1" 151 | resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" 152 | dependencies: 153 | babel-runtime "^6.22.0" 154 | babel-types "^6.24.1" 155 | 156 | babel-helper-optimise-call-expression@^6.24.1: 157 | version "6.24.1" 158 | resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" 159 | dependencies: 160 | babel-runtime "^6.22.0" 161 | babel-types "^6.24.1" 162 | 163 | babel-helper-replace-supers@^6.24.1: 164 | version "6.24.1" 165 | resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" 166 | dependencies: 167 | babel-helper-optimise-call-expression "^6.24.1" 168 | babel-messages "^6.23.0" 169 | babel-runtime "^6.22.0" 170 | babel-template "^6.24.1" 171 | babel-traverse "^6.24.1" 172 | babel-types "^6.24.1" 173 | 174 | babel-messages@^6.23.0: 175 | version "6.23.0" 176 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 177 | dependencies: 178 | babel-runtime "^6.22.0" 179 | 180 | babel-plugin-check-es2015-constants@^6.5.0: 181 | version "6.22.0" 182 | resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" 183 | dependencies: 184 | babel-runtime "^6.22.0" 185 | 186 | babel-plugin-react-transform@2.0.2: 187 | version "2.0.2" 188 | resolved "https://registry.yarnpkg.com/babel-plugin-react-transform/-/babel-plugin-react-transform-2.0.2.tgz#515bbfa996893981142d90b1f9b1635de2995109" 189 | dependencies: 190 | lodash "^4.6.1" 191 | 192 | babel-plugin-syntax-async-functions@^6.5.0: 193 | version "6.13.0" 194 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" 195 | 196 | babel-plugin-syntax-class-constructor-call@^6.18.0: 197 | version "6.18.0" 198 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" 199 | 200 | babel-plugin-syntax-class-properties@^6.5.0, babel-plugin-syntax-class-properties@^6.8.0: 201 | version "6.13.0" 202 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" 203 | 204 | babel-plugin-syntax-decorators@^6.1.18: 205 | version "6.13.0" 206 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" 207 | 208 | babel-plugin-syntax-do-expressions@^6.8.0: 209 | version "6.13.0" 210 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d" 211 | 212 | babel-plugin-syntax-exponentiation-operator@^6.8.0: 213 | version "6.13.0" 214 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" 215 | 216 | babel-plugin-syntax-export-extensions@^6.8.0: 217 | version "6.13.0" 218 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" 219 | 220 | babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.5.0: 221 | version "6.18.0" 222 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" 223 | 224 | babel-plugin-syntax-function-bind@^6.8.0: 225 | version "6.13.0" 226 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46" 227 | 228 | babel-plugin-syntax-jsx@^6.5.0, babel-plugin-syntax-jsx@^6.8.0: 229 | version "6.18.0" 230 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" 231 | 232 | babel-plugin-syntax-object-rest-spread@^6.8.0: 233 | version "6.13.0" 234 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" 235 | 236 | babel-plugin-syntax-trailing-function-commas@^6.5.0: 237 | version "6.22.0" 238 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" 239 | 240 | babel-plugin-transform-class-constructor-call@^6.6.5: 241 | version "6.24.1" 242 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" 243 | dependencies: 244 | babel-plugin-syntax-class-constructor-call "^6.18.0" 245 | babel-runtime "^6.22.0" 246 | babel-template "^6.24.1" 247 | 248 | babel-plugin-transform-class-properties@^6.5.0: 249 | version "6.24.1" 250 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" 251 | dependencies: 252 | babel-helper-function-name "^6.24.1" 253 | babel-plugin-syntax-class-properties "^6.8.0" 254 | babel-runtime "^6.22.0" 255 | babel-template "^6.24.1" 256 | 257 | babel-plugin-transform-decorators-legacy@^1.3.4: 258 | version "1.3.4" 259 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.4.tgz#741b58f6c5bce9e6027e0882d9c994f04f366925" 260 | dependencies: 261 | babel-plugin-syntax-decorators "^6.1.18" 262 | babel-runtime "^6.2.0" 263 | babel-template "^6.3.0" 264 | 265 | babel-plugin-transform-do-expressions@^6.5.0: 266 | version "6.22.0" 267 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb" 268 | dependencies: 269 | babel-plugin-syntax-do-expressions "^6.8.0" 270 | babel-runtime "^6.22.0" 271 | 272 | babel-plugin-transform-es2015-arrow-functions@^6.5.0: 273 | version "6.22.0" 274 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" 275 | dependencies: 276 | babel-runtime "^6.22.0" 277 | 278 | babel-plugin-transform-es2015-block-scoping@^6.5.0: 279 | version "6.26.0" 280 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" 281 | dependencies: 282 | babel-runtime "^6.26.0" 283 | babel-template "^6.26.0" 284 | babel-traverse "^6.26.0" 285 | babel-types "^6.26.0" 286 | lodash "^4.17.4" 287 | 288 | babel-plugin-transform-es2015-classes@^6.5.0: 289 | version "6.24.1" 290 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" 291 | dependencies: 292 | babel-helper-define-map "^6.24.1" 293 | babel-helper-function-name "^6.24.1" 294 | babel-helper-optimise-call-expression "^6.24.1" 295 | babel-helper-replace-supers "^6.24.1" 296 | babel-messages "^6.23.0" 297 | babel-runtime "^6.22.0" 298 | babel-template "^6.24.1" 299 | babel-traverse "^6.24.1" 300 | babel-types "^6.24.1" 301 | 302 | babel-plugin-transform-es2015-computed-properties@^6.5.0: 303 | version "6.24.1" 304 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" 305 | dependencies: 306 | babel-runtime "^6.22.0" 307 | babel-template "^6.24.1" 308 | 309 | babel-plugin-transform-es2015-destructuring@^6.5.0: 310 | version "6.23.0" 311 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" 312 | dependencies: 313 | babel-runtime "^6.22.0" 314 | 315 | babel-plugin-transform-es2015-for-of@^6.5.0: 316 | version "6.23.0" 317 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" 318 | dependencies: 319 | babel-runtime "^6.22.0" 320 | 321 | babel-plugin-transform-es2015-function-name@^6.5.0: 322 | version "6.24.1" 323 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" 324 | dependencies: 325 | babel-helper-function-name "^6.24.1" 326 | babel-runtime "^6.22.0" 327 | babel-types "^6.24.1" 328 | 329 | babel-plugin-transform-es2015-literals@^6.5.0: 330 | version "6.22.0" 331 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" 332 | dependencies: 333 | babel-runtime "^6.22.0" 334 | 335 | babel-plugin-transform-es2015-modules-commonjs@^6.5.0: 336 | version "6.26.0" 337 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" 338 | dependencies: 339 | babel-plugin-transform-strict-mode "^6.24.1" 340 | babel-runtime "^6.26.0" 341 | babel-template "^6.26.0" 342 | babel-types "^6.26.0" 343 | 344 | babel-plugin-transform-es2015-parameters@^6.5.0: 345 | version "6.24.1" 346 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" 347 | dependencies: 348 | babel-helper-call-delegate "^6.24.1" 349 | babel-helper-get-function-arity "^6.24.1" 350 | babel-runtime "^6.22.0" 351 | babel-template "^6.24.1" 352 | babel-traverse "^6.24.1" 353 | babel-types "^6.24.1" 354 | 355 | babel-plugin-transform-es2015-shorthand-properties@^6.5.0: 356 | version "6.24.1" 357 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" 358 | dependencies: 359 | babel-runtime "^6.22.0" 360 | babel-types "^6.24.1" 361 | 362 | babel-plugin-transform-es2015-spread@^6.5.0: 363 | version "6.22.0" 364 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" 365 | dependencies: 366 | babel-runtime "^6.22.0" 367 | 368 | babel-plugin-transform-es2015-template-literals@^6.5.0: 369 | version "6.22.0" 370 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" 371 | dependencies: 372 | babel-runtime "^6.22.0" 373 | 374 | babel-plugin-transform-exponentiation-operator@^6.5.0: 375 | version "6.24.1" 376 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" 377 | dependencies: 378 | babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" 379 | babel-plugin-syntax-exponentiation-operator "^6.8.0" 380 | babel-runtime "^6.22.0" 381 | 382 | babel-plugin-transform-export-extensions@^6.5.0: 383 | version "6.22.0" 384 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" 385 | dependencies: 386 | babel-plugin-syntax-export-extensions "^6.8.0" 387 | babel-runtime "^6.22.0" 388 | 389 | babel-plugin-transform-flow-strip-types@^6.5.0: 390 | version "6.22.0" 391 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" 392 | dependencies: 393 | babel-plugin-syntax-flow "^6.18.0" 394 | babel-runtime "^6.22.0" 395 | 396 | babel-plugin-transform-function-bind@^6.5.2: 397 | version "6.22.0" 398 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97" 399 | dependencies: 400 | babel-plugin-syntax-function-bind "^6.8.0" 401 | babel-runtime "^6.22.0" 402 | 403 | babel-plugin-transform-inline-environment-variables@^6.8.0: 404 | version "6.8.0" 405 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-environment-variables/-/babel-plugin-transform-inline-environment-variables-6.8.0.tgz#fc91dd08127dc6c2abdfd1721b11e9602a69ba10" 406 | dependencies: 407 | babel-runtime "^6.0.0" 408 | 409 | babel-plugin-transform-object-assign@^6.5.0: 410 | version "6.22.0" 411 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz#f99d2f66f1a0b0d498e346c5359684740caa20ba" 412 | dependencies: 413 | babel-runtime "^6.22.0" 414 | 415 | babel-plugin-transform-object-rest-spread@^6.5.0: 416 | version "6.26.0" 417 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" 418 | dependencies: 419 | babel-plugin-syntax-object-rest-spread "^6.8.0" 420 | babel-runtime "^6.26.0" 421 | 422 | babel-plugin-transform-react-display-name@^6.5.0: 423 | version "6.25.0" 424 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" 425 | dependencies: 426 | babel-runtime "^6.22.0" 427 | 428 | babel-plugin-transform-react-jsx-source@^6.5.0: 429 | version "6.22.0" 430 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" 431 | dependencies: 432 | babel-plugin-syntax-jsx "^6.8.0" 433 | babel-runtime "^6.22.0" 434 | 435 | babel-plugin-transform-react-jsx@^6.5.0: 436 | version "6.24.1" 437 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" 438 | dependencies: 439 | babel-helper-builder-react-jsx "^6.24.1" 440 | babel-plugin-syntax-jsx "^6.8.0" 441 | babel-runtime "^6.22.0" 442 | 443 | babel-plugin-transform-regenerator@^6.5.0: 444 | version "6.26.0" 445 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" 446 | dependencies: 447 | regenerator-transform "^0.10.0" 448 | 449 | babel-plugin-transform-remove-console@^6.8.0: 450 | version "6.8.5" 451 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.8.5.tgz#fde9d2d3d725530b0fadd8d31078402410386810" 452 | 453 | babel-plugin-transform-strict-mode@^6.24.1: 454 | version "6.24.1" 455 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" 456 | dependencies: 457 | babel-runtime "^6.22.0" 458 | babel-types "^6.24.1" 459 | 460 | babel-preset-react-native-stage-0@^1.0.1: 461 | version "1.0.1" 462 | resolved "https://registry.yarnpkg.com/babel-preset-react-native-stage-0/-/babel-preset-react-native-stage-0-1.0.1.tgz#d5f5f685575471ef756a49f191b193269f74306e" 463 | dependencies: 464 | babel-plugin-syntax-trailing-function-commas "^6.5.0" 465 | babel-plugin-transform-class-constructor-call "^6.6.5" 466 | babel-plugin-transform-decorators-legacy "^1.3.4" 467 | babel-plugin-transform-do-expressions "^6.5.0" 468 | babel-plugin-transform-exponentiation-operator "^6.5.0" 469 | babel-plugin-transform-export-extensions "^6.5.0" 470 | babel-plugin-transform-function-bind "^6.5.2" 471 | babel-preset-react-native "^1.5.6" 472 | 473 | babel-preset-react-native@^1.5.6, babel-preset-react-native@^1.9.0: 474 | version "1.9.2" 475 | resolved "https://registry.yarnpkg.com/babel-preset-react-native/-/babel-preset-react-native-1.9.2.tgz#b22addd2e355ff3b39671b79be807e52dfa145f2" 476 | dependencies: 477 | babel-plugin-check-es2015-constants "^6.5.0" 478 | babel-plugin-react-transform "2.0.2" 479 | babel-plugin-syntax-async-functions "^6.5.0" 480 | babel-plugin-syntax-class-properties "^6.5.0" 481 | babel-plugin-syntax-flow "^6.5.0" 482 | babel-plugin-syntax-jsx "^6.5.0" 483 | babel-plugin-syntax-trailing-function-commas "^6.5.0" 484 | babel-plugin-transform-class-properties "^6.5.0" 485 | babel-plugin-transform-es2015-arrow-functions "^6.5.0" 486 | babel-plugin-transform-es2015-block-scoping "^6.5.0" 487 | babel-plugin-transform-es2015-classes "^6.5.0" 488 | babel-plugin-transform-es2015-computed-properties "^6.5.0" 489 | babel-plugin-transform-es2015-destructuring "^6.5.0" 490 | babel-plugin-transform-es2015-for-of "^6.5.0" 491 | babel-plugin-transform-es2015-function-name "^6.5.0" 492 | babel-plugin-transform-es2015-literals "^6.5.0" 493 | babel-plugin-transform-es2015-modules-commonjs "^6.5.0" 494 | babel-plugin-transform-es2015-parameters "^6.5.0" 495 | babel-plugin-transform-es2015-shorthand-properties "^6.5.0" 496 | babel-plugin-transform-es2015-spread "^6.5.0" 497 | babel-plugin-transform-es2015-template-literals "^6.5.0" 498 | babel-plugin-transform-flow-strip-types "^6.5.0" 499 | babel-plugin-transform-object-assign "^6.5.0" 500 | babel-plugin-transform-object-rest-spread "^6.5.0" 501 | babel-plugin-transform-react-display-name "^6.5.0" 502 | babel-plugin-transform-react-jsx "^6.5.0" 503 | babel-plugin-transform-react-jsx-source "^6.5.0" 504 | babel-plugin-transform-regenerator "^6.5.0" 505 | react-transform-hmr "^1.0.4" 506 | 507 | babel-runtime@^6.0.0, babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: 508 | version "6.26.0" 509 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 510 | dependencies: 511 | core-js "^2.4.0" 512 | regenerator-runtime "^0.11.0" 513 | 514 | babel-template@^6.24.1, babel-template@^6.26.0, babel-template@^6.3.0: 515 | version "6.26.0" 516 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" 517 | dependencies: 518 | babel-runtime "^6.26.0" 519 | babel-traverse "^6.26.0" 520 | babel-types "^6.26.0" 521 | babylon "^6.18.0" 522 | lodash "^4.17.4" 523 | 524 | babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: 525 | version "6.26.0" 526 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" 527 | dependencies: 528 | babel-code-frame "^6.26.0" 529 | babel-messages "^6.23.0" 530 | babel-runtime "^6.26.0" 531 | babel-types "^6.26.0" 532 | babylon "^6.18.0" 533 | debug "^2.6.8" 534 | globals "^9.18.0" 535 | invariant "^2.2.2" 536 | lodash "^4.17.4" 537 | 538 | babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: 539 | version "6.26.0" 540 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" 541 | dependencies: 542 | babel-runtime "^6.26.0" 543 | esutils "^2.0.2" 544 | lodash "^4.17.4" 545 | to-fast-properties "^1.0.3" 546 | 547 | babylon@^6.17.0, babylon@^6.18.0: 548 | version "6.18.0" 549 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" 550 | 551 | balanced-match@^1.0.0: 552 | version "1.0.0" 553 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 554 | 555 | brace-expansion@^1.1.7: 556 | version "1.1.8" 557 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" 558 | dependencies: 559 | balanced-match "^1.0.0" 560 | concat-map "0.0.1" 561 | 562 | caller-path@^0.1.0: 563 | version "0.1.0" 564 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 565 | dependencies: 566 | callsites "^0.2.0" 567 | 568 | callsites@^0.2.0: 569 | version "0.2.0" 570 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 571 | 572 | chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: 573 | version "1.1.3" 574 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 575 | dependencies: 576 | ansi-styles "^2.2.1" 577 | escape-string-regexp "^1.0.2" 578 | has-ansi "^2.0.0" 579 | strip-ansi "^3.0.0" 580 | supports-color "^2.0.0" 581 | 582 | circular-json@^0.3.1: 583 | version "0.3.3" 584 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" 585 | 586 | cli-cursor@^1.0.1: 587 | version "1.0.2" 588 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 589 | dependencies: 590 | restore-cursor "^1.0.1" 591 | 592 | cli-width@^2.0.0: 593 | version "2.2.0" 594 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 595 | 596 | co@^4.6.0: 597 | version "4.6.0" 598 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 599 | 600 | code-point-at@^1.0.0: 601 | version "1.1.0" 602 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 603 | 604 | concat-map@0.0.1: 605 | version "0.0.1" 606 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 607 | 608 | concat-stream@^1.5.2: 609 | version "1.6.0" 610 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" 611 | dependencies: 612 | inherits "^2.0.3" 613 | readable-stream "^2.2.2" 614 | typedarray "^0.0.6" 615 | 616 | core-js@^2.4.0: 617 | version "2.5.1" 618 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" 619 | 620 | core-util-is@~1.0.0: 621 | version "1.0.2" 622 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 623 | 624 | d@1: 625 | version "1.0.0" 626 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" 627 | dependencies: 628 | es5-ext "^0.10.9" 629 | 630 | debug@^2.1.1, debug@^2.6.8: 631 | version "2.6.9" 632 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 633 | dependencies: 634 | ms "2.0.0" 635 | 636 | deep-is@~0.1.3: 637 | version "0.1.3" 638 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 639 | 640 | define-properties@^1.1.2: 641 | version "1.1.2" 642 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" 643 | dependencies: 644 | foreach "^2.0.5" 645 | object-keys "^1.0.8" 646 | 647 | del@^2.0.2: 648 | version "2.2.2" 649 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 650 | dependencies: 651 | globby "^5.0.0" 652 | is-path-cwd "^1.0.0" 653 | is-path-in-cwd "^1.0.0" 654 | object-assign "^4.0.1" 655 | pify "^2.0.0" 656 | pinkie-promise "^2.0.0" 657 | rimraf "^2.2.8" 658 | 659 | doctrine@^1.2.2: 660 | version "1.5.0" 661 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 662 | dependencies: 663 | esutils "^2.0.2" 664 | isarray "^1.0.0" 665 | 666 | doctrine@^2.0.0: 667 | version "2.0.0" 668 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" 669 | dependencies: 670 | esutils "^2.0.2" 671 | isarray "^1.0.0" 672 | 673 | dom-walk@^0.1.0: 674 | version "0.1.1" 675 | resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" 676 | 677 | es-abstract@^1.7.0: 678 | version "1.9.0" 679 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.9.0.tgz#690829a07cae36b222e7fd9b75c0d0573eb25227" 680 | dependencies: 681 | es-to-primitive "^1.1.1" 682 | function-bind "^1.1.1" 683 | has "^1.0.1" 684 | is-callable "^1.1.3" 685 | is-regex "^1.0.4" 686 | 687 | es-to-primitive@^1.1.1: 688 | version "1.1.1" 689 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" 690 | dependencies: 691 | is-callable "^1.1.1" 692 | is-date-object "^1.0.1" 693 | is-symbol "^1.0.1" 694 | 695 | es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: 696 | version "0.10.35" 697 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.35.tgz#18ee858ce6a3c45c7d79e91c15fcca9ec568494f" 698 | dependencies: 699 | es6-iterator "~2.0.1" 700 | es6-symbol "~3.1.1" 701 | 702 | es6-iterator@^2.0.1, es6-iterator@~2.0.1: 703 | version "2.0.3" 704 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" 705 | dependencies: 706 | d "1" 707 | es5-ext "^0.10.35" 708 | es6-symbol "^3.1.1" 709 | 710 | es6-map@^0.1.3: 711 | version "0.1.5" 712 | resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" 713 | dependencies: 714 | d "1" 715 | es5-ext "~0.10.14" 716 | es6-iterator "~2.0.1" 717 | es6-set "~0.1.5" 718 | es6-symbol "~3.1.1" 719 | event-emitter "~0.3.5" 720 | 721 | es6-set@~0.1.5: 722 | version "0.1.5" 723 | resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" 724 | dependencies: 725 | d "1" 726 | es5-ext "~0.10.14" 727 | es6-iterator "~2.0.1" 728 | es6-symbol "3.1.1" 729 | event-emitter "~0.3.5" 730 | 731 | es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: 732 | version "3.1.1" 733 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" 734 | dependencies: 735 | d "1" 736 | es5-ext "~0.10.14" 737 | 738 | es6-weak-map@^2.0.1: 739 | version "2.0.2" 740 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" 741 | dependencies: 742 | d "1" 743 | es5-ext "^0.10.14" 744 | es6-iterator "^2.0.1" 745 | es6-symbol "^3.1.1" 746 | 747 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 748 | version "1.0.5" 749 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 750 | 751 | escope@^3.6.0: 752 | version "3.6.0" 753 | resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" 754 | dependencies: 755 | es6-map "^0.1.3" 756 | es6-weak-map "^2.0.1" 757 | esrecurse "^4.1.0" 758 | estraverse "^4.1.1" 759 | 760 | eslint-plugin-react@^6.6.0: 761 | version "6.10.3" 762 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78" 763 | dependencies: 764 | array.prototype.find "^2.0.1" 765 | doctrine "^1.2.2" 766 | has "^1.0.1" 767 | jsx-ast-utils "^1.3.4" 768 | object.assign "^4.0.4" 769 | 770 | eslint@^3.9.1: 771 | version "3.19.0" 772 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" 773 | dependencies: 774 | babel-code-frame "^6.16.0" 775 | chalk "^1.1.3" 776 | concat-stream "^1.5.2" 777 | debug "^2.1.1" 778 | doctrine "^2.0.0" 779 | escope "^3.6.0" 780 | espree "^3.4.0" 781 | esquery "^1.0.0" 782 | estraverse "^4.2.0" 783 | esutils "^2.0.2" 784 | file-entry-cache "^2.0.0" 785 | glob "^7.0.3" 786 | globals "^9.14.0" 787 | ignore "^3.2.0" 788 | imurmurhash "^0.1.4" 789 | inquirer "^0.12.0" 790 | is-my-json-valid "^2.10.0" 791 | is-resolvable "^1.0.0" 792 | js-yaml "^3.5.1" 793 | json-stable-stringify "^1.0.0" 794 | levn "^0.3.0" 795 | lodash "^4.0.0" 796 | mkdirp "^0.5.0" 797 | natural-compare "^1.4.0" 798 | optionator "^0.8.2" 799 | path-is-inside "^1.0.1" 800 | pluralize "^1.2.1" 801 | progress "^1.1.8" 802 | require-uncached "^1.0.2" 803 | shelljs "^0.7.5" 804 | strip-bom "^3.0.0" 805 | strip-json-comments "~2.0.1" 806 | table "^3.7.8" 807 | text-table "~0.2.0" 808 | user-home "^2.0.0" 809 | 810 | espree@^3.4.0: 811 | version "3.5.1" 812 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.1.tgz#0c988b8ab46db53100a1954ae4ba995ddd27d87e" 813 | dependencies: 814 | acorn "^5.1.1" 815 | acorn-jsx "^3.0.0" 816 | 817 | esprima@^4.0.0: 818 | version "4.0.0" 819 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 820 | 821 | esquery@^1.0.0: 822 | version "1.0.0" 823 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" 824 | dependencies: 825 | estraverse "^4.0.0" 826 | 827 | esrecurse@^4.1.0: 828 | version "4.2.0" 829 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" 830 | dependencies: 831 | estraverse "^4.1.0" 832 | object-assign "^4.0.1" 833 | 834 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: 835 | version "4.2.0" 836 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 837 | 838 | esutils@^2.0.2: 839 | version "2.0.2" 840 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 841 | 842 | event-emitter@~0.3.5: 843 | version "0.3.5" 844 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" 845 | dependencies: 846 | d "1" 847 | es5-ext "~0.10.14" 848 | 849 | exit-hook@^1.0.0: 850 | version "1.1.1" 851 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 852 | 853 | fast-levenshtein@~2.0.4: 854 | version "2.0.6" 855 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 856 | 857 | figures@^1.3.5: 858 | version "1.7.0" 859 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 860 | dependencies: 861 | escape-string-regexp "^1.0.5" 862 | object-assign "^4.1.0" 863 | 864 | file-entry-cache@^2.0.0: 865 | version "2.0.0" 866 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 867 | dependencies: 868 | flat-cache "^1.2.1" 869 | object-assign "^4.0.1" 870 | 871 | flat-cache@^1.2.1: 872 | version "1.3.0" 873 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" 874 | dependencies: 875 | circular-json "^0.3.1" 876 | del "^2.0.2" 877 | graceful-fs "^4.1.2" 878 | write "^0.2.1" 879 | 880 | foreach@^2.0.5: 881 | version "2.0.5" 882 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 883 | 884 | fs.realpath@^1.0.0: 885 | version "1.0.0" 886 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 887 | 888 | function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: 889 | version "1.1.1" 890 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 891 | 892 | generate-function@^2.0.0: 893 | version "2.0.0" 894 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" 895 | 896 | generate-object-property@^1.1.0: 897 | version "1.2.0" 898 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" 899 | dependencies: 900 | is-property "^1.0.0" 901 | 902 | glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: 903 | version "7.1.2" 904 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 905 | dependencies: 906 | fs.realpath "^1.0.0" 907 | inflight "^1.0.4" 908 | inherits "2" 909 | minimatch "^3.0.4" 910 | once "^1.3.0" 911 | path-is-absolute "^1.0.0" 912 | 913 | global@^4.3.0: 914 | version "4.3.2" 915 | resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" 916 | dependencies: 917 | min-document "^2.19.0" 918 | process "~0.5.1" 919 | 920 | globals@^9.14.0, globals@^9.18.0: 921 | version "9.18.0" 922 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" 923 | 924 | globby@^5.0.0: 925 | version "5.0.0" 926 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 927 | dependencies: 928 | array-union "^1.0.1" 929 | arrify "^1.0.0" 930 | glob "^7.0.3" 931 | object-assign "^4.0.1" 932 | pify "^2.0.0" 933 | pinkie-promise "^2.0.0" 934 | 935 | graceful-fs@^4.1.2: 936 | version "4.1.11" 937 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 938 | 939 | has-ansi@^2.0.0: 940 | version "2.0.0" 941 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 942 | dependencies: 943 | ansi-regex "^2.0.0" 944 | 945 | has@^1.0.1: 946 | version "1.0.1" 947 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" 948 | dependencies: 949 | function-bind "^1.0.2" 950 | 951 | ignore@^3.2.0: 952 | version "3.3.7" 953 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" 954 | 955 | imurmurhash@^0.1.4: 956 | version "0.1.4" 957 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 958 | 959 | inflight@^1.0.4: 960 | version "1.0.6" 961 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 962 | dependencies: 963 | once "^1.3.0" 964 | wrappy "1" 965 | 966 | inherits@2, inherits@^2.0.3, inherits@~2.0.3: 967 | version "2.0.3" 968 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 969 | 970 | inquirer@^0.12.0: 971 | version "0.12.0" 972 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" 973 | dependencies: 974 | ansi-escapes "^1.1.0" 975 | ansi-regex "^2.0.0" 976 | chalk "^1.0.0" 977 | cli-cursor "^1.0.1" 978 | cli-width "^2.0.0" 979 | figures "^1.3.5" 980 | lodash "^4.3.0" 981 | readline2 "^1.0.1" 982 | run-async "^0.1.0" 983 | rx-lite "^3.1.2" 984 | string-width "^1.0.1" 985 | strip-ansi "^3.0.0" 986 | through "^2.3.6" 987 | 988 | interpret@^1.0.0: 989 | version "1.0.4" 990 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0" 991 | 992 | invariant@^2.2.2: 993 | version "2.2.2" 994 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" 995 | dependencies: 996 | loose-envify "^1.0.0" 997 | 998 | is-callable@^1.1.1, is-callable@^1.1.3: 999 | version "1.1.3" 1000 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" 1001 | 1002 | is-date-object@^1.0.1: 1003 | version "1.0.1" 1004 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 1005 | 1006 | is-fullwidth-code-point@^1.0.0: 1007 | version "1.0.0" 1008 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1009 | dependencies: 1010 | number-is-nan "^1.0.0" 1011 | 1012 | is-fullwidth-code-point@^2.0.0: 1013 | version "2.0.0" 1014 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1015 | 1016 | is-my-json-valid@^2.10.0: 1017 | version "2.16.1" 1018 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz#5a846777e2c2620d1e69104e5d3a03b1f6088f11" 1019 | dependencies: 1020 | generate-function "^2.0.0" 1021 | generate-object-property "^1.1.0" 1022 | jsonpointer "^4.0.0" 1023 | xtend "^4.0.0" 1024 | 1025 | is-path-cwd@^1.0.0: 1026 | version "1.0.0" 1027 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 1028 | 1029 | is-path-in-cwd@^1.0.0: 1030 | version "1.0.0" 1031 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" 1032 | dependencies: 1033 | is-path-inside "^1.0.0" 1034 | 1035 | is-path-inside@^1.0.0: 1036 | version "1.0.0" 1037 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" 1038 | dependencies: 1039 | path-is-inside "^1.0.1" 1040 | 1041 | is-property@^1.0.0: 1042 | version "1.0.2" 1043 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 1044 | 1045 | is-regex@^1.0.4: 1046 | version "1.0.4" 1047 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 1048 | dependencies: 1049 | has "^1.0.1" 1050 | 1051 | is-resolvable@^1.0.0: 1052 | version "1.0.0" 1053 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" 1054 | dependencies: 1055 | tryit "^1.0.1" 1056 | 1057 | is-symbol@^1.0.1: 1058 | version "1.0.1" 1059 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" 1060 | 1061 | isarray@^1.0.0, isarray@~1.0.0: 1062 | version "1.0.0" 1063 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1064 | 1065 | js-tokens@^3.0.0, js-tokens@^3.0.2: 1066 | version "3.0.2" 1067 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 1068 | 1069 | js-yaml@^3.5.1: 1070 | version "3.10.0" 1071 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" 1072 | dependencies: 1073 | argparse "^1.0.7" 1074 | esprima "^4.0.0" 1075 | 1076 | json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: 1077 | version "1.0.1" 1078 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 1079 | dependencies: 1080 | jsonify "~0.0.0" 1081 | 1082 | jsonify@~0.0.0: 1083 | version "0.0.0" 1084 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 1085 | 1086 | jsonpointer@^4.0.0: 1087 | version "4.0.1" 1088 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" 1089 | 1090 | jsx-ast-utils@^1.3.4: 1091 | version "1.4.1" 1092 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" 1093 | 1094 | levn@^0.3.0, levn@~0.3.0: 1095 | version "0.3.0" 1096 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1097 | dependencies: 1098 | prelude-ls "~1.1.2" 1099 | type-check "~0.3.2" 1100 | 1101 | lodash@^4.0.0, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.6.1: 1102 | version "4.17.4" 1103 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 1104 | 1105 | loose-envify@^1.0.0: 1106 | version "1.3.1" 1107 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 1108 | dependencies: 1109 | js-tokens "^3.0.0" 1110 | 1111 | min-document@^2.19.0: 1112 | version "2.19.0" 1113 | resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" 1114 | dependencies: 1115 | dom-walk "^0.1.0" 1116 | 1117 | minimatch@^3.0.4: 1118 | version "3.0.4" 1119 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1120 | dependencies: 1121 | brace-expansion "^1.1.7" 1122 | 1123 | minimist@0.0.8: 1124 | version "0.0.8" 1125 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1126 | 1127 | mkdirp@^0.5.0, mkdirp@^0.5.1: 1128 | version "0.5.1" 1129 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1130 | dependencies: 1131 | minimist "0.0.8" 1132 | 1133 | ms@2.0.0: 1134 | version "2.0.0" 1135 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1136 | 1137 | mute-stream@0.0.5: 1138 | version "0.0.5" 1139 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" 1140 | 1141 | natural-compare@^1.4.0: 1142 | version "1.4.0" 1143 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1144 | 1145 | number-is-nan@^1.0.0: 1146 | version "1.0.1" 1147 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1148 | 1149 | object-assign@^4.0.1, object-assign@^4.1.0: 1150 | version "4.1.1" 1151 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1152 | 1153 | object-keys@^1.0.10, object-keys@^1.0.8: 1154 | version "1.0.11" 1155 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" 1156 | 1157 | object.assign@^4.0.4: 1158 | version "4.0.4" 1159 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" 1160 | dependencies: 1161 | define-properties "^1.1.2" 1162 | function-bind "^1.1.0" 1163 | object-keys "^1.0.10" 1164 | 1165 | once@^1.3.0: 1166 | version "1.4.0" 1167 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1168 | dependencies: 1169 | wrappy "1" 1170 | 1171 | onetime@^1.0.0: 1172 | version "1.1.0" 1173 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 1174 | 1175 | optionator@^0.8.2: 1176 | version "0.8.2" 1177 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 1178 | dependencies: 1179 | deep-is "~0.1.3" 1180 | fast-levenshtein "~2.0.4" 1181 | levn "~0.3.0" 1182 | prelude-ls "~1.1.2" 1183 | type-check "~0.3.2" 1184 | wordwrap "~1.0.0" 1185 | 1186 | os-homedir@^1.0.0: 1187 | version "1.0.2" 1188 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1189 | 1190 | path-is-absolute@^1.0.0: 1191 | version "1.0.1" 1192 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1193 | 1194 | path-is-inside@^1.0.1: 1195 | version "1.0.2" 1196 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1197 | 1198 | path-parse@^1.0.5: 1199 | version "1.0.5" 1200 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 1201 | 1202 | pify@^2.0.0: 1203 | version "2.3.0" 1204 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1205 | 1206 | pinkie-promise@^2.0.0: 1207 | version "2.0.1" 1208 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1209 | dependencies: 1210 | pinkie "^2.0.0" 1211 | 1212 | pinkie@^2.0.0: 1213 | version "2.0.4" 1214 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1215 | 1216 | pluralize@^1.2.1: 1217 | version "1.2.1" 1218 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" 1219 | 1220 | prelude-ls@~1.1.2: 1221 | version "1.1.2" 1222 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 1223 | 1224 | private@^0.1.6: 1225 | version "0.1.8" 1226 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" 1227 | 1228 | process-nextick-args@~1.0.6: 1229 | version "1.0.7" 1230 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 1231 | 1232 | process@~0.5.1: 1233 | version "0.5.2" 1234 | resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" 1235 | 1236 | progress@^1.1.8: 1237 | version "1.1.8" 1238 | resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" 1239 | 1240 | react-deep-force-update@^1.0.0: 1241 | version "1.1.1" 1242 | resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.1.1.tgz#bcd31478027b64b3339f108921ab520b4313dc2c" 1243 | 1244 | react-proxy@^1.1.7: 1245 | version "1.1.8" 1246 | resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a" 1247 | dependencies: 1248 | lodash "^4.6.1" 1249 | react-deep-force-update "^1.0.0" 1250 | 1251 | react-transform-hmr@^1.0.4: 1252 | version "1.0.4" 1253 | resolved "https://registry.yarnpkg.com/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz#e1a40bd0aaefc72e8dfd7a7cda09af85066397bb" 1254 | dependencies: 1255 | global "^4.3.0" 1256 | react-proxy "^1.1.7" 1257 | 1258 | readable-stream@^2.2.2: 1259 | version "2.3.3" 1260 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" 1261 | dependencies: 1262 | core-util-is "~1.0.0" 1263 | inherits "~2.0.3" 1264 | isarray "~1.0.0" 1265 | process-nextick-args "~1.0.6" 1266 | safe-buffer "~5.1.1" 1267 | string_decoder "~1.0.3" 1268 | util-deprecate "~1.0.1" 1269 | 1270 | readline2@^1.0.1: 1271 | version "1.0.1" 1272 | resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" 1273 | dependencies: 1274 | code-point-at "^1.0.0" 1275 | is-fullwidth-code-point "^1.0.0" 1276 | mute-stream "0.0.5" 1277 | 1278 | rechoir@^0.6.2: 1279 | version "0.6.2" 1280 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" 1281 | dependencies: 1282 | resolve "^1.1.6" 1283 | 1284 | regenerator-runtime@^0.11.0: 1285 | version "0.11.0" 1286 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" 1287 | 1288 | regenerator-transform@^0.10.0: 1289 | version "0.10.1" 1290 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" 1291 | dependencies: 1292 | babel-runtime "^6.18.0" 1293 | babel-types "^6.19.0" 1294 | private "^0.1.6" 1295 | 1296 | require-uncached@^1.0.2: 1297 | version "1.0.3" 1298 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 1299 | dependencies: 1300 | caller-path "^0.1.0" 1301 | resolve-from "^1.0.0" 1302 | 1303 | resolve-from@^1.0.0: 1304 | version "1.0.1" 1305 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 1306 | 1307 | resolve@^1.1.6: 1308 | version "1.5.0" 1309 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" 1310 | dependencies: 1311 | path-parse "^1.0.5" 1312 | 1313 | restore-cursor@^1.0.1: 1314 | version "1.0.1" 1315 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 1316 | dependencies: 1317 | exit-hook "^1.0.0" 1318 | onetime "^1.0.0" 1319 | 1320 | rimraf@^2.2.8: 1321 | version "2.6.2" 1322 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1323 | dependencies: 1324 | glob "^7.0.5" 1325 | 1326 | run-async@^0.1.0: 1327 | version "0.1.0" 1328 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" 1329 | dependencies: 1330 | once "^1.3.0" 1331 | 1332 | rx-lite@^3.1.2: 1333 | version "3.1.2" 1334 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" 1335 | 1336 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1337 | version "5.1.1" 1338 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 1339 | 1340 | shelljs@^0.7.5: 1341 | version "0.7.8" 1342 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" 1343 | dependencies: 1344 | glob "^7.0.0" 1345 | interpret "^1.0.0" 1346 | rechoir "^0.6.2" 1347 | 1348 | slice-ansi@0.0.4: 1349 | version "0.0.4" 1350 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" 1351 | 1352 | sprintf-js@~1.0.2: 1353 | version "1.0.3" 1354 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1355 | 1356 | string-width@^1.0.1: 1357 | version "1.0.2" 1358 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1359 | dependencies: 1360 | code-point-at "^1.0.0" 1361 | is-fullwidth-code-point "^1.0.0" 1362 | strip-ansi "^3.0.0" 1363 | 1364 | string-width@^2.0.0: 1365 | version "2.1.1" 1366 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1367 | dependencies: 1368 | is-fullwidth-code-point "^2.0.0" 1369 | strip-ansi "^4.0.0" 1370 | 1371 | string_decoder@~1.0.3: 1372 | version "1.0.3" 1373 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" 1374 | dependencies: 1375 | safe-buffer "~5.1.0" 1376 | 1377 | strip-ansi@^3.0.0: 1378 | version "3.0.1" 1379 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1380 | dependencies: 1381 | ansi-regex "^2.0.0" 1382 | 1383 | strip-ansi@^4.0.0: 1384 | version "4.0.0" 1385 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1386 | dependencies: 1387 | ansi-regex "^3.0.0" 1388 | 1389 | strip-bom@^3.0.0: 1390 | version "3.0.0" 1391 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1392 | 1393 | strip-json-comments@~2.0.1: 1394 | version "2.0.1" 1395 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1396 | 1397 | supports-color@^2.0.0: 1398 | version "2.0.0" 1399 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1400 | 1401 | table@^3.7.8: 1402 | version "3.8.3" 1403 | resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" 1404 | dependencies: 1405 | ajv "^4.7.0" 1406 | ajv-keywords "^1.0.0" 1407 | chalk "^1.1.1" 1408 | lodash "^4.0.0" 1409 | slice-ansi "0.0.4" 1410 | string-width "^2.0.0" 1411 | 1412 | text-table@~0.2.0: 1413 | version "0.2.0" 1414 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1415 | 1416 | through@^2.3.6: 1417 | version "2.3.8" 1418 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1419 | 1420 | to-fast-properties@^1.0.3: 1421 | version "1.0.3" 1422 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 1423 | 1424 | tryit@^1.0.1: 1425 | version "1.0.3" 1426 | resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" 1427 | 1428 | type-check@~0.3.2: 1429 | version "0.3.2" 1430 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1431 | dependencies: 1432 | prelude-ls "~1.1.2" 1433 | 1434 | typedarray@^0.0.6: 1435 | version "0.0.6" 1436 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 1437 | 1438 | user-home@^2.0.0: 1439 | version "2.0.0" 1440 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" 1441 | dependencies: 1442 | os-homedir "^1.0.0" 1443 | 1444 | util-deprecate@~1.0.1: 1445 | version "1.0.2" 1446 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1447 | 1448 | wordwrap@~1.0.0: 1449 | version "1.0.0" 1450 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1451 | 1452 | wrappy@1: 1453 | version "1.0.2" 1454 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1455 | 1456 | write@^0.2.1: 1457 | version "0.2.1" 1458 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 1459 | dependencies: 1460 | mkdirp "^0.5.1" 1461 | 1462 | xtend@^4.0.0: 1463 | version "4.0.1" 1464 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 1465 | --------------------------------------------------------------------------------