Showing
26 changed files
with
9 additions
and
1568 deletions
1 | 1 | ||
2 | var SERVER_lOCAL = "f3eb38c42803.ngrok.io" | 2 | var SERVER_lOCAL = "f3eb38c42803.ngrok.io" |
3 | -var SERVER_= "311cd4338cad.ngrok.io" | 3 | +var SERVER_= "53d03390d6cb.ngrok.io" |
4 | var SERVER = SERVER_ | 4 | var SERVER = SERVER_ |
5 | export { SERVER } | 5 | export { SERVER } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -13,14 +13,15 @@ class MainPage extends Component { | ... | @@ -13,14 +13,15 @@ class MainPage extends Component { |
13 | 13 | ||
14 | super(props) | 14 | super(props) |
15 | 15 | ||
16 | - //AsyncStorage.getItem('isFirst',(err,result) => { | 16 | + AsyncStorage.getItem('isFirst',(err,result) => { |
17 | - // | 17 | + |
18 | - // JSON.parse(result)? this.props.navigation.navigate('App'): | 18 | + JSON.parse(result)? this.props.navigation.navigate('App'): |
19 | - // | 19 | + |
20 | - // this.props.navigation.navigate('Guidance') | 20 | + this.props.navigation.navigate('Guidance') |
21 | - // | 21 | + |
22 | - //}) | 22 | + }) |
23 | this.props.navigation.navigate('Guidance') | 23 | this.props.navigation.navigate('Guidance') |
24 | + | ||
24 | } | 25 | } |
25 | _onRefresh = () => { | 26 | _onRefresh = () => { |
26 | this.setState({refreshing: true}); | 27 | this.setState({refreshing: true}); | ... | ... |
소스코드/.gitignore
deleted
100644 → 0
소스코드/PME/.expo-shared/assets.json
deleted
100644 → 0
소스코드/PME/.gitignore
deleted
100644 → 0
소스코드/PME/App.js
deleted
100644 → 0
1 | -import { Component } from 'react'; | ||
2 | -import { StyleSheet, Text, View, AppRegistry } from 'react-native'; | ||
3 | -import { createAppContainer } from 'react-navigation'; | ||
4 | -import {createStackNavigator } from 'react-navigation-stack' | ||
5 | -import MainScreen from './components/Navigation/Navigation'; | ||
6 | -import React from 'react' | ||
7 | - | ||
8 | -const AppStackNavigator = createStackNavigator({ | ||
9 | - Main:{ | ||
10 | - screen: MainScreen, | ||
11 | - navigationOptions: { | ||
12 | - headerShown:false | ||
13 | - } | ||
14 | - } | ||
15 | -}); | ||
16 | - | ||
17 | -export default createAppContainer(AppStackNavigator); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
소스코드/PME/app.json
deleted
100644 → 0
1 | -{ | ||
2 | - "expo": { | ||
3 | - "name": "HelloWorld", | ||
4 | - "slug": "PME", | ||
5 | - "platforms": [ | ||
6 | - "ios", | ||
7 | - "android", | ||
8 | - "web" | ||
9 | - ], | ||
10 | - "version": "1.0.0", | ||
11 | - "orientation": "portrait", | ||
12 | - "icon": "./assets/icon.png", | ||
13 | - "splash": { | ||
14 | - "image": "./assets/splash.png", | ||
15 | - "resizeMode": "contain", | ||
16 | - "backgroundColor": "#ffffff" | ||
17 | - }, | ||
18 | - "updates": { | ||
19 | - "fallbackToCacheTimeout": 0 | ||
20 | - }, | ||
21 | - "assetBundlePatterns": [ | ||
22 | - "**/*" | ||
23 | - ], | ||
24 | - "ios": { | ||
25 | - "supportsTablet": true | ||
26 | - }, | ||
27 | - "android" : { | ||
28 | - "package" : "com.A.BLE", | ||
29 | - "config": { | ||
30 | - "googleMaps": {"apiKey":"AIzaSyCe_1-Mml2OyihnmS2oiPUj73X-Aj1j_2k"} | ||
31 | - } | ||
32 | - } | ||
33 | - } | ||
34 | -} |
소스코드/PME/assets/icon.png
deleted
100644 → 0
642 Bytes
소스코드/PME/assets/marker.png
deleted
100644 → 0
3.44 KB
소스코드/PME/assets/security.png
deleted
100644 → 0
6.19 KB
소스코드/PME/assets/splash.png
deleted
100644 → 0
9.09 KB
소스코드/PME/babel.config.js
deleted
100644 → 0
1 | -import React, { memo, useState, useEffect, useMemo, createRef } from "react"; | ||
2 | -import { Dimensions, LayoutAnimation, Platform } from "react-native"; | ||
3 | -import MapView, { Marker, Polyline } from "react-native-maps"; | ||
4 | -import SuperCluster from "supercluster"; | ||
5 | -import ClusterMarker from "./ClusteredMarker"; | ||
6 | -import { | ||
7 | - isMarker, | ||
8 | - markerToGeoJSONFeature, | ||
9 | - calculateBBox, | ||
10 | - returnMapZoom, | ||
11 | - generateSpiral | ||
12 | -} from "./helpers"; | ||
13 | - | ||
14 | -const ClusteredMapView = ({ | ||
15 | - radius, | ||
16 | - maxZoom, | ||
17 | - minZoom, | ||
18 | - extent, | ||
19 | - nodeSize, | ||
20 | - children, | ||
21 | - onClusterPress, | ||
22 | - onRegionChangeComplete, | ||
23 | - preserveClusterPressBehavior, | ||
24 | - clusteringEnabled, | ||
25 | - clusterColor, | ||
26 | - clusterTextColor, | ||
27 | - spiderLineColor, | ||
28 | - layoutAnimationConf, | ||
29 | - animationEnabled, | ||
30 | - renderCluster, | ||
31 | - ...restProps | ||
32 | -}) => { | ||
33 | - const [markers, updateMarkers] = useState([]); | ||
34 | - const [spiderMarkers, updateSpiderMarker] = useState([]); | ||
35 | - const [otherChildren, updateChildren] = useState([]); | ||
36 | - const [superCluster, setSuperCluster] = useState(null); | ||
37 | - const [currentRegion, updateRegion] = useState( | ||
38 | - restProps.region || restProps.initialRegion | ||
39 | - ); | ||
40 | - | ||
41 | - const [isSpiderfier, updateSpiderfier] = useState(false); | ||
42 | - const [spiderfierMarker, updateSpiderfierMarker] = useState(null); | ||
43 | - const [clusterChildren, updateClusterChildren] = useState(null); | ||
44 | - const mapRef = createRef(); | ||
45 | - | ||
46 | - const propsChildren = useMemo(() => React.Children.toArray(children), [ | ||
47 | - children | ||
48 | - ]); | ||
49 | - | ||
50 | - useEffect(() => { | ||
51 | - const rawData = []; | ||
52 | - const otherChildren = []; | ||
53 | - | ||
54 | - if (!clusteringEnabled) { | ||
55 | - updateChildren(propsChildren); | ||
56 | - return; | ||
57 | - } | ||
58 | - | ||
59 | - React.Children.forEach(children, (child, i) => { | ||
60 | - if (isMarker(child)) { | ||
61 | - rawData.push(markerToGeoJSONFeature(child, i)); | ||
62 | - } else { | ||
63 | - otherChildren.push(child); | ||
64 | - } | ||
65 | - }); | ||
66 | - | ||
67 | - const superCluster = new SuperCluster({ | ||
68 | - radius, | ||
69 | - maxZoom, | ||
70 | - minZoom, | ||
71 | - extent, | ||
72 | - nodeSize | ||
73 | - }); | ||
74 | - | ||
75 | - superCluster.load(rawData); | ||
76 | - | ||
77 | - const bBox = calculateBBox(currentRegion); | ||
78 | - const zoom = returnMapZoom(currentRegion, bBox, minZoom); | ||
79 | - const markers = superCluster.getClusters(bBox, zoom); | ||
80 | - | ||
81 | - updateMarkers(markers); | ||
82 | - updateChildren(otherChildren); | ||
83 | - setSuperCluster(superCluster); | ||
84 | - }, [children, restProps.region, restProps.initialRegion]); | ||
85 | - | ||
86 | - useEffect(() => { | ||
87 | - if (isSpiderfier && markers.length > 0) { | ||
88 | - let positions = generateSpiral( | ||
89 | - markers[0].properties.point_count, | ||
90 | - markers[0].geometry.coordinates, | ||
91 | - clusterChildren | ||
92 | - ); | ||
93 | - updateSpiderMarker(positions); | ||
94 | - updateSpiderfierMarker({ | ||
95 | - latitude: markers[0].geometry.coordinates[1], | ||
96 | - longitude: markers[0].geometry.coordinates[0] | ||
97 | - }); | ||
98 | - } else { | ||
99 | - updateSpiderMarker([]); | ||
100 | - } | ||
101 | - }, [isSpiderfier]); | ||
102 | - | ||
103 | - const _onRegionChangeComplete = region => { | ||
104 | - if (superCluster) { | ||
105 | - const bBox = calculateBBox(region); | ||
106 | - const zoom = returnMapZoom(region, bBox, minZoom); | ||
107 | - const markers = superCluster.getClusters(bBox, zoom); | ||
108 | - | ||
109 | - if (animationEnabled && Platform.OS === "ios") { | ||
110 | - LayoutAnimation.configureNext(layoutAnimationConf); | ||
111 | - } | ||
112 | - | ||
113 | - if (zoom >= 17 && markers.length === 1 && clusterChildren) { | ||
114 | - updateSpiderfier(true); | ||
115 | - } else { | ||
116 | - updateSpiderfier(false); | ||
117 | - } | ||
118 | - | ||
119 | - updateMarkers(markers); | ||
120 | - onRegionChangeComplete(region, markers); | ||
121 | - updateRegion(region); | ||
122 | - } | ||
123 | - }; | ||
124 | - | ||
125 | - const _onClusterPress = cluster => () => { | ||
126 | - const children = superCluster.getLeaves(cluster.id); | ||
127 | - updateClusterChildren(children); | ||
128 | - | ||
129 | - if (preserveClusterPressBehavior) { | ||
130 | - onClusterPress(cluster, children); | ||
131 | - return; | ||
132 | - } | ||
133 | - | ||
134 | - const coordinates = children.map(({ geometry }) => ({ | ||
135 | - latitude: geometry.coordinates[1], | ||
136 | - longitude: geometry.coordinates[0] | ||
137 | - })); | ||
138 | - | ||
139 | - mapRef.current.fitToCoordinates(coordinates, { | ||
140 | - edgePadding: restProps.edgePadding | ||
141 | - }); | ||
142 | - | ||
143 | - onClusterPress(cluster, children); | ||
144 | - }; | ||
145 | - | ||
146 | - return ( | ||
147 | - <MapView | ||
148 | - {...restProps} | ||
149 | - ref={map => { | ||
150 | - restProps.mapRef(map); | ||
151 | - mapRef.current = map; | ||
152 | - }} | ||
153 | - onRegionChangeComplete={_onRegionChangeComplete} | ||
154 | - > | ||
155 | - {markers.map(marker => | ||
156 | - marker.properties.point_count === 0 ? ( | ||
157 | - propsChildren[marker.properties.index] | ||
158 | - ) : !isSpiderfier ? ( | ||
159 | - renderCluster ? ( | ||
160 | - renderCluster({ | ||
161 | - onPress: _onClusterPress(marker), | ||
162 | - clusterColor, | ||
163 | - clusterTextColor, | ||
164 | - ...marker | ||
165 | - }) | ||
166 | - ) : ( | ||
167 | - <ClusterMarker | ||
168 | - key={`cluster-${marker.id}`} | ||
169 | - {...marker} | ||
170 | - onPress={_onClusterPress(marker)} | ||
171 | - clusterColor={clusterColor} | ||
172 | - clusterTextColor={clusterTextColor} | ||
173 | - /> | ||
174 | - ) | ||
175 | - ) : null | ||
176 | - )} | ||
177 | - {otherChildren} | ||
178 | - {spiderMarkers.map(marker => ( | ||
179 | - <Marker | ||
180 | - key={marker.latitude} | ||
181 | - coordinate={marker} | ||
182 | - image={marker.image} | ||
183 | - onPress={marker.onPress} | ||
184 | - ></Marker> | ||
185 | - ))} | ||
186 | - {spiderMarkers.map((marker, index) => { | ||
187 | - { | ||
188 | - return ( | ||
189 | - spiderfierMarker && ( | ||
190 | - <Polyline | ||
191 | - key={index} | ||
192 | - coordinates={[spiderfierMarker, marker, spiderfierMarker]} | ||
193 | - strokeColor={spiderLineColor} | ||
194 | - strokeWidth={1} | ||
195 | - /> | ||
196 | - ) | ||
197 | - ); | ||
198 | - } | ||
199 | - })} | ||
200 | - </MapView> | ||
201 | - ); | ||
202 | -}; | ||
203 | - | ||
204 | -ClusteredMapView.defaultProps = { | ||
205 | - clusteringEnabled: true, | ||
206 | - animationEnabled: true, | ||
207 | - preserveClusterPressBehavior: false, | ||
208 | - layoutAnimationConf: LayoutAnimation.Presets.spring, | ||
209 | - // SuperCluster parameters | ||
210 | - radius: Dimensions.get("window").width * 0.06, | ||
211 | - maxZoom: 20, | ||
212 | - minZoom: 1, | ||
213 | - extent: 512, | ||
214 | - nodeSize: 64, | ||
215 | - // Map parameters | ||
216 | - edgePadding: { top: 50, left: 50, right: 50, bottom: 50 }, | ||
217 | - // Cluster styles | ||
218 | - clusterColor: "#00B386", | ||
219 | - clusterTextColor: "#FFFFFF", | ||
220 | - spiderLineColor: "#FF0000", | ||
221 | - // Callbacks | ||
222 | - onRegionChangeComplete: () => {}, | ||
223 | - onClusterPress: () => {}, | ||
224 | - mapRef: () => {} | ||
225 | -}; | ||
226 | - | ||
227 | -export default memo(ClusteredMapView); |
1 | -import React, { memo } from "react"; | ||
2 | -import { Text, View, StyleSheet, TouchableOpacity } from "react-native"; | ||
3 | -import { Marker } from "react-native-maps"; | ||
4 | -import { returnMarkerStyle } from "./helpers"; | ||
5 | - | ||
6 | -const ClusteredMarker = ({ | ||
7 | - geometry, | ||
8 | - properties, | ||
9 | - onPress, | ||
10 | - clusterColor, | ||
11 | - clusterTextColor | ||
12 | -}) => { | ||
13 | - const points = properties.point_count; | ||
14 | - const { width, height, fontSize, size } = returnMarkerStyle(points); | ||
15 | - | ||
16 | - return ( | ||
17 | - <Marker | ||
18 | - coordinate={{ | ||
19 | - longitude: geometry.coordinates[0], | ||
20 | - latitude: geometry.coordinates[1] | ||
21 | - }} | ||
22 | - style={{ zIndex: points + 1 }} | ||
23 | - onPress={onPress} | ||
24 | - > | ||
25 | - <TouchableOpacity | ||
26 | - activeOpacity={0.5} | ||
27 | - style={[styles.container, { width, height }]} | ||
28 | - > | ||
29 | - <View | ||
30 | - style={[ | ||
31 | - styles.wrapper, | ||
32 | - { | ||
33 | - backgroundColor: clusterColor, | ||
34 | - width, | ||
35 | - height, | ||
36 | - borderRadius: width / 2 | ||
37 | - } | ||
38 | - ]} | ||
39 | - /> | ||
40 | - <View | ||
41 | - style={[ | ||
42 | - styles.cluster, | ||
43 | - { | ||
44 | - backgroundColor: clusterColor, | ||
45 | - width: size, | ||
46 | - height: size, | ||
47 | - borderRadius: size / 2 | ||
48 | - } | ||
49 | - ]} | ||
50 | - > | ||
51 | - <Text style={[styles.text, { color: clusterTextColor, fontSize }]}> | ||
52 | - {points} | ||
53 | - </Text> | ||
54 | - </View> | ||
55 | - </TouchableOpacity> | ||
56 | - </Marker> | ||
57 | - ); | ||
58 | -}; | ||
59 | - | ||
60 | -const styles = StyleSheet.create({ | ||
61 | - container: { | ||
62 | - display: "flex", | ||
63 | - justifyContent: "center", | ||
64 | - alignItems: "center" | ||
65 | - }, | ||
66 | - wrapper: { | ||
67 | - position: "absolute", | ||
68 | - opacity: 0.5, | ||
69 | - zIndex: 0 | ||
70 | - }, | ||
71 | - cluster: { | ||
72 | - display: "flex", | ||
73 | - justifyContent: "center", | ||
74 | - alignItems: "center", | ||
75 | - zIndex: 1 | ||
76 | - }, | ||
77 | - text: { | ||
78 | - fontWeight: "bold" | ||
79 | - } | ||
80 | -}); | ||
81 | - | ||
82 | -export default memo(ClusteredMarker); |
소스코드/PME/components/MainTab.js
deleted
100644 → 0
1 | -import { Component } from 'react'; | ||
2 | -import { StyleSheet, Text, View, Image, TouchableOpacity, Alert } from 'react-native'; | ||
3 | -import { Icon } from 'native-base'; // 추가된 코드 | ||
4 | -import React from 'react' | ||
5 | -import {Marker} from 'react-native-maps' | ||
6 | -import Constants from 'expo-constants'; | ||
7 | -import * as Location from 'expo-location'; | ||
8 | -import MapView from "../ClusteredMapView"; | ||
9 | - | ||
10 | - | ||
11 | -export default class MainScreen extends Component { | ||
12 | - | ||
13 | - // navigationOptions 코드 추가 | ||
14 | - static navigationOptions = { | ||
15 | - headerLeft: <Icon name='ios-camera' style={{ paddingLeft:10 }}/>, | ||
16 | - title: 'PME Service', | ||
17 | - headerRight: <Icon name='ios-send' style={{ paddingRight:10 }}/>, | ||
18 | - } | ||
19 | - constructor(props) { | ||
20 | - super(props) | ||
21 | - this.state= { | ||
22 | - location:null, | ||
23 | - errorMsg:null | ||
24 | - } | ||
25 | - } | ||
26 | - componentDidMount() { | ||
27 | - (async () => { | ||
28 | - let { status } = await Location.requestPermissionsAsync(); | ||
29 | - if (status !== 'granted') { | ||
30 | - this.setState({ | ||
31 | - errorMsg:'Permission to access location was denied' | ||
32 | - }) | ||
33 | - } | ||
34 | - | ||
35 | - let location = await Location.getCurrentPositionAsync({}); | ||
36 | - console.log(location) | ||
37 | - this.setState({ | ||
38 | - location | ||
39 | - },() => { | ||
40 | - console.log(this.state.location.coords.latitude) | ||
41 | - }) | ||
42 | - })(); | ||
43 | - } | ||
44 | - render() { | ||
45 | - return ( | ||
46 | - //this.state.location? | ||
47 | - <View style={{width:"100%",height:"100%"}}> | ||
48 | - | ||
49 | - <TouchableOpacity onPress={() => Alert.alert('OK',"주변에 의심자가 있습니까?",[{text:"OK",onPress:() =>alert("확인")},{text:'cancel'}])} style={{position:"absolute",bottom:10,right:10, width:50,height:50,backgroundColor:"red",borderRadius:100}}> | ||
50 | - <View style={{flex:1,justifyContent: 'center',alignItems: 'center'}}> | ||
51 | - <Image style={{width:22,height:22}} source={require('../assets/security.png')}/> | ||
52 | - </View> | ||
53 | - </TouchableOpacity> | ||
54 | - </View> | ||
55 | - //:<Text>Loading..</Text> | ||
56 | - | ||
57 | - ); | ||
58 | - } | ||
59 | -} | ||
60 | - | ||
61 | -const styles = StyleSheet.create({ | ||
62 | - container: { | ||
63 | - flex: 1, | ||
64 | - alignItems: 'center', | ||
65 | - justifyContent: 'center', | ||
66 | - }, | ||
67 | -}); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -import React, { Component } from 'react'; | ||
2 | -import { StyleSheet, Text, View, Image, | ||
3 | - TouchableOpacity, ScrollView, Dimensions, | ||
4 | - SafeAreaView, } from 'react-native'; | ||
5 | - | ||
6 | -import { createAppContainer} from 'react-navigation'; | ||
7 | -import {createStackNavigator } from 'react-navigation-stack'; | ||
8 | -import ReportTab from '../TabNavigator/reportTab' | ||
9 | -import MainTab from '../TabNavigator/MainTab' | ||
10 | -import { Icon } from 'native-base'; // 추가된 코드 | ||
11 | - | ||
12 | - const Stack = createStackNavigator( | ||
13 | - { | ||
14 | - MainTab: { | ||
15 | - screen: props => <MainTab {...props}/>, | ||
16 | - navigationOptions: { | ||
17 | - headerLeft: <Icon name='ios-camera' style={{ paddingLeft:10 }}/>, | ||
18 | - title: 'PME Service', | ||
19 | - headerRight: <Icon name='ios-send' style={{ paddingRight:10 }}/>, | ||
20 | - headerTitleStyle: {flex: 1, textAlign: 'center'}, | ||
21 | - headerStyle: { | ||
22 | - shadowOpacity: 0, | ||
23 | - shadowOffset: { | ||
24 | - y: 0, | ||
25 | - x:0, | ||
26 | - height:0 | ||
27 | - }, | ||
28 | - shadowRadius: 0, elevation:0 | ||
29 | - } | ||
30 | - }, | ||
31 | - } | ||
32 | - ,reportTab: { | ||
33 | - screen: props=> <ReportTab {...props}/>, | ||
34 | - navigationOptions: { | ||
35 | - headerShown:false | ||
36 | - } | ||
37 | - }, | ||
38 | - },{ | ||
39 | - | ||
40 | - | ||
41 | - | ||
42 | - } | ||
43 | - ); | ||
44 | - | ||
45 | - export default createAppContainer(Stack); | ||
46 | - | ||
47 | - /* | ||
48 | - | ||
49 | - <Text | ||
50 | - onPress={() => { | ||
51 | - props.navigation.navigate('BlueScreen'); | ||
52 | - props.navigation.closeDrawer(); | ||
53 | - }} | ||
54 | - > | ||
55 | - BlueScreen | ||
56 | - </Text> | ||
57 | - <Text | ||
58 | - onPress={() => { | ||
59 | - props.navigation.navigate('DefaultScreen'); | ||
60 | - props.navigation.closeDrawer(); | ||
61 | - }} | ||
62 | - > | ||
63 | - DefaultScreen | ||
64 | - </Text> | ||
65 | - */ | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -import { Component } from 'react'; | ||
2 | -import { StyleSheet, Text, View, Image, TouchableOpacity, Alert, Platform } from 'react-native'; | ||
3 | -import { Icon } from 'native-base'; // 추가된 코드 | ||
4 | -import React from 'react' | ||
5 | -import {Marker} from 'react-native-maps' | ||
6 | -import Constants from 'expo-constants'; | ||
7 | -import * as Location from 'expo-location'; | ||
8 | -import MapView from "../ClusteredMapView"; | ||
9 | - | ||
10 | -import Share from 'react-native-share'; | ||
11 | -const url = 'https://awesome.contents.com/'; | ||
12 | -const title = 'Awesome Contents'; | ||
13 | -const message = 'Please check this out.'; | ||
14 | -const icon = 'data:<data_type>/<file_extension>;base64,<base64_data>'; | ||
15 | -const options = Platform.select({ | ||
16 | - ios: { | ||
17 | - activityItemSources: [ | ||
18 | - { // For sharing url with custom title. | ||
19 | - placeholderItem: { type: 'url', content: url }, | ||
20 | - item: { | ||
21 | - default: { type: 'url', content: url }, | ||
22 | - }, | ||
23 | - subject: { | ||
24 | - default: title, | ||
25 | - }, | ||
26 | - linkMetadata: { originalUrl: url, url, title }, | ||
27 | - }, | ||
28 | - { // For sharing text. | ||
29 | - placeholderItem: { type: 'text', content: message }, | ||
30 | - item: { | ||
31 | - default: { type: 'text', content: message }, | ||
32 | - message: null, // Specify no text to share via Messages app. | ||
33 | - }, | ||
34 | - linkMetadata: { // For showing app icon on share preview. | ||
35 | - title: message | ||
36 | - }, | ||
37 | - }, | ||
38 | - { // For using custom icon instead of default text icon at share preview when sharing with message. | ||
39 | - placeholderItem: { | ||
40 | - type: 'url', | ||
41 | - content: icon | ||
42 | - }, | ||
43 | - item: { | ||
44 | - default: { | ||
45 | - type: 'text', | ||
46 | - content: `${message} ${url}` | ||
47 | - }, | ||
48 | - }, | ||
49 | - linkMetadata: { | ||
50 | - title: message, | ||
51 | - icon: icon | ||
52 | - } | ||
53 | - }, | ||
54 | - ], | ||
55 | - }, | ||
56 | - default: { | ||
57 | - title, | ||
58 | - subject: title, | ||
59 | - message: `${message} ${url}`, | ||
60 | - }, | ||
61 | -}); | ||
62 | - | ||
63 | -export default class MainScreen extends Component { | ||
64 | - | ||
65 | - // navigationOptions 코드 추가 | ||
66 | - static navigationOptions = { | ||
67 | - headerLeft: <Icon name='ios-camera' style={{ paddingLeft:10 }}/>, | ||
68 | - title: 'PME Service', | ||
69 | - headerRight: <Icon name='ios-send' style={{ paddingRight:10 }}/>, | ||
70 | - } | ||
71 | - constructor(props) { | ||
72 | - super(props) | ||
73 | - this.state= { | ||
74 | - location:null, | ||
75 | - errorMsg:null | ||
76 | - } | ||
77 | - } | ||
78 | - componentDidMount() { | ||
79 | - (async () => { | ||
80 | - let { status } = await Location.requestPermissionsAsync(); | ||
81 | - if (status !== 'granted') { | ||
82 | - this.setState({ | ||
83 | - errorMsg:'Permission to access location was denied' | ||
84 | - }) | ||
85 | - } | ||
86 | - | ||
87 | - let location = await Location.getCurrentPositionAsync({}); | ||
88 | - console.log(location) | ||
89 | - this.setState({ | ||
90 | - location | ||
91 | - },() => { | ||
92 | - console.log(this.state.location.coords.latitude) | ||
93 | - }) | ||
94 | - })(); | ||
95 | - } | ||
96 | - render() { | ||
97 | - return ( | ||
98 | - this.state.location? | ||
99 | - <View style={{width:"100%",height:"100%"}}> | ||
100 | - | ||
101 | - <MapView | ||
102 | - style={{ flex: 1 }} | ||
103 | - initialRegion={ { latitude: this.state.location.coords.latitude, longitude: this.state.location.coords.longitude | ||
104 | - ,latitudeDelta: 0.0922, longitudeDelta: 0.0421}} | ||
105 | - zoomEnabled={true} | ||
106 | - pitchEnabled={true} | ||
107 | - showsUserLocation={true} | ||
108 | - followsUserLocation={true} | ||
109 | - showsCompass={true} | ||
110 | - showsBuildings={true} | ||
111 | - showsTraffic={true} | ||
112 | - showsIndoors={true} | ||
113 | - extent={512}> | ||
114 | - <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.1, longitude: this.state.location.coords.longitude }} > | ||
115 | - <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
116 | - </Marker> | ||
117 | - <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.5, longitude: this.state.location.coords.longitude }}> | ||
118 | - <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
119 | - </Marker> | ||
120 | - <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.0001, longitude: this.state.location.coords.longitude }}> | ||
121 | - <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
122 | - </Marker> | ||
123 | - <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.0003, longitude: this.state.location.coords.longitude }}> | ||
124 | - <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
125 | - </Marker> | ||
126 | - <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.03, longitude: this.state.location.coords.longitude }}> | ||
127 | - <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
128 | - </Marker> | ||
129 | - <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.05, longitude: this.state.location.coords.longitude }}> | ||
130 | - <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
131 | - </Marker> | ||
132 | - <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.01, longitude: this.state.location.coords.longitude }}> | ||
133 | - <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
134 | - </Marker> | ||
135 | - <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.2, longitude: this.state.location.coords.longitude }}> | ||
136 | - <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
137 | - </Marker> | ||
138 | - <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.3, longitude: this.state.location.coords.longitude }}> | ||
139 | - <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
140 | - </Marker> | ||
141 | - <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.7, longitude: this.state.location.coords.longitude }}> | ||
142 | - <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
143 | - </Marker> | ||
144 | - | ||
145 | - </MapView> | ||
146 | - <TouchableOpacity onPress={() => Alert.alert('OK',"주변에 의심자가 있습니까?",[{text:"OK",onPress:() =>Share.open(options)},{text:'cancel'}])} style={{position:"absolute",bottom:10,right:10, width:50,height:50,backgroundColor:"red",borderRadius:100}}> | ||
147 | - <View style={{flex:1,justifyContent: 'center',alignItems: 'center'}}> | ||
148 | - <Image style={{width:22,height:22}} source={require('../../assets/security.png')}/> | ||
149 | - </View> | ||
150 | - </TouchableOpacity> | ||
151 | - </View> | ||
152 | - :<Text>Loading..</Text> | ||
153 | - | ||
154 | - ); | ||
155 | - } | ||
156 | -} | ||
157 | - | ||
158 | -const styles = StyleSheet.create({ | ||
159 | - container: { | ||
160 | - flex: 1, | ||
161 | - alignItems: 'center', | ||
162 | - justifyContent: 'center', | ||
163 | - }, | ||
164 | -}); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -import React, { Component } from 'react'; | ||
2 | -import { View, Text, StyleSheet, Button } from 'react-native'; | ||
3 | -import * as DocumentPicker from 'expo-document-picker'; | ||
4 | -import Icon from 'native-base' | ||
5 | -export default class AddTab extends Component { | ||
6 | - static navigationOptions = { | ||
7 | - headerLeft: <Icon name='ios-camera' style={{ paddingLeft:10 }}/>, | ||
8 | - title: 'PME Service', | ||
9 | - headerRight: <Icon name='ios-send' style={{ paddingRight:10 }}/>, | ||
10 | - } | ||
11 | - state = { | ||
12 | - image: null, | ||
13 | - }; | ||
14 | - _pickDocument = async () => { | ||
15 | - let result = await DocumentPicker.getDocumentAsync({}); | ||
16 | - alert(result.uri); | ||
17 | - console.log(result); | ||
18 | - } | ||
19 | - | ||
20 | - _pickImage = async () => { | ||
21 | - let result = await ImagePicker.launchImageLibraryAsync({ | ||
22 | - allowsEditing: true, | ||
23 | - aspect: [4, 3], | ||
24 | - }); | ||
25 | - | ||
26 | - alert(result.uri); | ||
27 | - console.log(result) | ||
28 | - | ||
29 | - if (!result.cancelled) { | ||
30 | - this.setState({ image: result.uri }); | ||
31 | - } | ||
32 | - }; | ||
33 | - | ||
34 | - render() { | ||
35 | - let { image } = this.state; | ||
36 | - return ( | ||
37 | - <View style={style.container}> | ||
38 | - <Button | ||
39 | - title="녹음파일을 등록해주세요." | ||
40 | - onPress={this._pickDocument} | ||
41 | - /> | ||
42 | - <Button | ||
43 | - title="접수하기" | ||
44 | - onPress={() => {alert("접수되었습니다.")}} | ||
45 | - /> | ||
46 | - </View> | ||
47 | - ); | ||
48 | - } | ||
49 | -} | ||
50 | - | ||
51 | -const style = StyleSheet.create({ | ||
52 | - container: { | ||
53 | - flex: 1, | ||
54 | - alignItems: 'center', | ||
55 | - justifyContent: 'center', | ||
56 | - } | ||
57 | -}); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
소스코드/PME/components/helpers.js
deleted
100644 → 0
1 | -import GeoViewport from "@mapbox/geo-viewport"; | ||
2 | -import { Dimensions } from "react-native"; | ||
3 | - | ||
4 | -const { width, height } = Dimensions.get("window"); | ||
5 | - | ||
6 | -export const isMarker = child => | ||
7 | - child && | ||
8 | - child.props && | ||
9 | - child.props.coordinate && | ||
10 | - child.props.cluster !== false; | ||
11 | - | ||
12 | -export const calculateBBox = region => { | ||
13 | - let lngD; | ||
14 | - if (region.longitudeDelta < 0) lngD = region.longitudeDelta + 360; | ||
15 | - else lngD = region.longitudeDelta; | ||
16 | - | ||
17 | - return [ | ||
18 | - region.longitude - lngD, // westLng - min lng | ||
19 | - region.latitude - region.latitudeDelta, // southLat - min lat | ||
20 | - region.longitude + lngD, // eastLng - max lng | ||
21 | - region.latitude + region.latitudeDelta // northLat - max lat | ||
22 | - ]; | ||
23 | -}; | ||
24 | - | ||
25 | -export const returnMapZoom = (region, bBox, minZoom) => { | ||
26 | - const viewport = | ||
27 | - region.longitudeDelta >= 40 | ||
28 | - ? { zoom: minZoom } | ||
29 | - : GeoViewport.viewport(bBox, [width, height]); | ||
30 | - | ||
31 | - return viewport.zoom; | ||
32 | -}; | ||
33 | - | ||
34 | -export const markerToGeoJSONFeature = (marker, index) => { | ||
35 | - return { | ||
36 | - type: "Feature", | ||
37 | - geometry: { | ||
38 | - coordinates: [ | ||
39 | - marker.props.coordinate.longitude, | ||
40 | - marker.props.coordinate.latitude | ||
41 | - ], | ||
42 | - type: "Point" | ||
43 | - }, | ||
44 | - properties: { | ||
45 | - point_count: 0, | ||
46 | - index, | ||
47 | - ..._removeChildrenFromProps(marker.props) | ||
48 | - } | ||
49 | - }; | ||
50 | -}; | ||
51 | - | ||
52 | -export const generateSpiral = (count, centerLocation, clusterChildren) => { | ||
53 | - let res = []; | ||
54 | - res.length = count; | ||
55 | - let angle = 0; | ||
56 | - | ||
57 | - for (let i = 0; i < count; i++) { | ||
58 | - angle = 0.25 * (i * 0.5); | ||
59 | - let latitude = centerLocation[1] + 0.0002 * angle * Math.cos(angle); | ||
60 | - let longitude = centerLocation[0] + 0.0002 * angle * Math.sin(angle); | ||
61 | - res[i] = { | ||
62 | - longitude, | ||
63 | - latitude, | ||
64 | - image: clusterChildren[i] && clusterChildren[i].properties.image, | ||
65 | - onPress: clusterChildren[i] && clusterChildren[i].properties.onPress | ||
66 | - }; | ||
67 | - } | ||
68 | - | ||
69 | - return res; | ||
70 | -}; | ||
71 | - | ||
72 | -export const returnMarkerStyle = points => { | ||
73 | - if (points >= 50) { | ||
74 | - return { | ||
75 | - width: 84, | ||
76 | - height: 84, | ||
77 | - size: 64, | ||
78 | - fontSize: 20 | ||
79 | - }; | ||
80 | - } | ||
81 | - | ||
82 | - if (points >= 25) { | ||
83 | - return { | ||
84 | - width: 78, | ||
85 | - height: 78, | ||
86 | - size: 58, | ||
87 | - fontSize: 19 | ||
88 | - }; | ||
89 | - } | ||
90 | - | ||
91 | - if (points >= 15) { | ||
92 | - return { | ||
93 | - width: 72, | ||
94 | - height: 72, | ||
95 | - size: 54, | ||
96 | - fontSize: 18 | ||
97 | - }; | ||
98 | - } | ||
99 | - | ||
100 | - if (points >= 10) { | ||
101 | - return { | ||
102 | - width: 66, | ||
103 | - height: 66, | ||
104 | - size: 50, | ||
105 | - fontSize: 17 | ||
106 | - }; | ||
107 | - } | ||
108 | - | ||
109 | - if (points >= 8) { | ||
110 | - return { | ||
111 | - width: 60, | ||
112 | - height: 60, | ||
113 | - size: 46, | ||
114 | - fontSize: 17 | ||
115 | - }; | ||
116 | - } | ||
117 | - | ||
118 | - if (points >= 4) { | ||
119 | - return { | ||
120 | - width: 84, | ||
121 | - height: 84, | ||
122 | - size: 64, | ||
123 | - fontSize: 16 | ||
124 | - }; | ||
125 | - } | ||
126 | - | ||
127 | - return { | ||
128 | - width: 84, | ||
129 | - height: 84, | ||
130 | - size: 64, | ||
131 | - fontSize: 15 | ||
132 | - }; | ||
133 | -}; | ||
134 | - | ||
135 | -const _removeChildrenFromProps = props => { | ||
136 | - const newProps = {}; | ||
137 | - Object.keys(props).forEach(key => { | ||
138 | - if (key !== "children") { | ||
139 | - newProps[key] = props[key]; | ||
140 | - } | ||
141 | - }); | ||
142 | - return newProps; | ||
143 | -}; |
소스코드/PME/package-lock.json
deleted
100644 → 0
This diff could not be displayed because it is too large.
소스코드/PME/package.json
deleted
100644 → 0
1 | -{ | ||
2 | - "main": "node_modules/expo/AppEntry.js", | ||
3 | - "scripts": { | ||
4 | - "start": "expo start", | ||
5 | - "android": "expo start --android", | ||
6 | - "ios": "expo start --ios", | ||
7 | - "web": "expo start --web", | ||
8 | - "eject": "expo eject" | ||
9 | - }, | ||
10 | - "dependencies": { | ||
11 | - "@expo/vector-icons": "^10.1.0", | ||
12 | - "@react-native-community/masked-view": "^0.1.10", | ||
13 | - "expo": "~37.0.3", | ||
14 | - "expo-constants": "^9.0.0", | ||
15 | - "expo-document-picker": "^8.1.0", | ||
16 | - "expo-location": "^8.1.0", | ||
17 | - "native-base": "^2.13.12", | ||
18 | - "react": "~16.9.0", | ||
19 | - "react-dom": "~16.9.0", | ||
20 | - "react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz", | ||
21 | - "react-native-gesture-handler": "^1.6.1", | ||
22 | - "react-native-map-clustering": "^3.1.2", | ||
23 | - "react-native-maps": "^0.27.1", | ||
24 | - "react-native-safe-area-context": "^0.7.3", | ||
25 | - "react-native-screens": "^2.7.0", | ||
26 | - "react-native-share": "^3.3.2", | ||
27 | - "react-native-web": "~0.11.7", | ||
28 | - "react-navigation": "^4.3.9", | ||
29 | - "react-navigation-stack": "^2.5.0" | ||
30 | - }, | ||
31 | - "devDependencies": { | ||
32 | - "@babel/core": "^7.8.6", | ||
33 | - "babel-preset-expo": "~8.1.0" | ||
34 | - }, | ||
35 | - "private": true | ||
36 | -} |
소스코드/PME/yarn.lock
deleted
100644 → 0
This diff could not be displayed because it is too large.
소스코드/package.json
deleted
100644 → 0
소스코드/yarn.lock
deleted
100644 → 0
1 | -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. | ||
2 | -# yarn lockfile v1 | ||
3 | - | ||
4 | - | ||
5 | -"@expo/vector-icons@^10.1.0": | ||
6 | - version "10.1.0" | ||
7 | - resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-10.1.0.tgz#3fb2517924b031c1b98f86fa51a2032a257759b0" | ||
8 | - integrity sha512-6ikFslHORJgsb8wKeSgXYfZNNXsiTb3yQf5xaNyGUCYg4zqE7VchdhnH9yZKTI3Lu16jna52pHQZl+3jcOSAbQ== | ||
9 | - dependencies: | ||
10 | - lodash "^4.17.4" | ||
11 | - | ||
12 | -"@react-navigation/core@^3.7.5": | ||
13 | - version "3.7.5" | ||
14 | - resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-3.7.5.tgz#2b8d464574edc7bcab8be226375d8227e9814ad2" | ||
15 | - integrity sha512-B8vKZhHvX+C+lD0UfU5ljCOWIDgDKrlzMuuqIftCB5lnMFvRQZJ5cGpK6u6+BEoX1myfO5j4KUEsRv4H+2f5lg== | ||
16 | - dependencies: | ||
17 | - hoist-non-react-statics "^3.3.2" | ||
18 | - path-to-regexp "^1.8.0" | ||
19 | - query-string "^6.11.1" | ||
20 | - react-is "^16.13.0" | ||
21 | - | ||
22 | -"@react-navigation/native@^3.7.12": | ||
23 | - version "3.7.12" | ||
24 | - resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-3.7.12.tgz#f1c2a1b8b2db647c239acaf966360cb72d7b71e6" | ||
25 | - integrity sha512-StECfhxtEJvFehh16Wc9jnepy5gYKovzynVW+jr/+jKa7xlKskSCvASDnIwLHoFcWom084afKbqpVoVLEsE3lg== | ||
26 | - dependencies: | ||
27 | - hoist-non-react-statics "^3.3.2" | ||
28 | - react-native-safe-area-view "^0.14.9" | ||
29 | - | ||
30 | -ansi-regex@^2.0.0: | ||
31 | - version "2.1.1" | ||
32 | - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" | ||
33 | - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= | ||
34 | - | ||
35 | -ansi-regex@^4.1.0: | ||
36 | - version "4.1.0" | ||
37 | - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" | ||
38 | - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== | ||
39 | - | ||
40 | -ansi-styles@^2.1.0: | ||
41 | - version "2.2.1" | ||
42 | - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" | ||
43 | - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= | ||
44 | - | ||
45 | -ansi-styles@^3.2.0: | ||
46 | - version "3.2.1" | ||
47 | - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" | ||
48 | - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== | ||
49 | - dependencies: | ||
50 | - color-convert "^1.9.0" | ||
51 | - | ||
52 | -asap@~2.0.3: | ||
53 | - version "2.0.6" | ||
54 | - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" | ||
55 | - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= | ||
56 | - | ||
57 | -blueimp-md5@^2.5.0: | ||
58 | - version "2.13.0" | ||
59 | - resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.13.0.tgz#07314b0c64dda0bf1733f96ce40d5af94eb28965" | ||
60 | - integrity sha512-lmp0m647R5e77ORduxLW5mISIDcvgJZa52vMBv5uVI3UmSWTQjkJsZVBfaFqQPw/QFogJwvY6e3Gl9nP+Loe+Q== | ||
61 | - | ||
62 | -camelcase@^5.0.0: | ||
63 | - version "5.3.1" | ||
64 | - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" | ||
65 | - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== | ||
66 | - | ||
67 | -chalk@1.1.1: | ||
68 | - version "1.1.1" | ||
69 | - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.1.tgz#509afb67066e7499f7eb3535c77445772ae2d019" | ||
70 | - integrity sha1-UJr7ZwZudJn36zU1x3RFdyri0Bk= | ||
71 | - dependencies: | ||
72 | - ansi-styles "^2.1.0" | ||
73 | - escape-string-regexp "^1.0.2" | ||
74 | - has-ansi "^2.0.0" | ||
75 | - strip-ansi "^3.0.0" | ||
76 | - supports-color "^2.0.0" | ||
77 | - | ||
78 | -clamp@^1.0.1: | ||
79 | - version "1.0.1" | ||
80 | - resolved "https://registry.yarnpkg.com/clamp/-/clamp-1.0.1.tgz#66a0e64011816e37196828fdc8c8c147312c8634" | ||
81 | - integrity sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ= | ||
82 | - | ||
83 | -cliui@^5.0.0: | ||
84 | - version "5.0.0" | ||
85 | - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" | ||
86 | - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== | ||
87 | - dependencies: | ||
88 | - string-width "^3.1.0" | ||
89 | - strip-ansi "^5.2.0" | ||
90 | - wrap-ansi "^5.1.0" | ||
91 | - | ||
92 | -color-convert@^1.9.0, color-convert@^1.9.1: | ||
93 | - version "1.9.3" | ||
94 | - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" | ||
95 | - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== | ||
96 | - dependencies: | ||
97 | - color-name "1.1.3" | ||
98 | - | ||
99 | -color-name@1.1.3: | ||
100 | - version "1.1.3" | ||
101 | - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" | ||
102 | - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= | ||
103 | - | ||
104 | -color-name@^1.0.0: | ||
105 | - version "1.1.4" | ||
106 | - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" | ||
107 | - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== | ||
108 | - | ||
109 | -color-string@^1.5.2: | ||
110 | - version "1.5.3" | ||
111 | - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" | ||
112 | - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== | ||
113 | - dependencies: | ||
114 | - color-name "^1.0.0" | ||
115 | - simple-swizzle "^0.2.2" | ||
116 | - | ||
117 | -color@~3.1.2: | ||
118 | - version "3.1.2" | ||
119 | - resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" | ||
120 | - integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== | ||
121 | - dependencies: | ||
122 | - color-convert "^1.9.1" | ||
123 | - color-string "^1.5.2" | ||
124 | - | ||
125 | -core-js@^1.0.0: | ||
126 | - version "1.2.7" | ||
127 | - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" | ||
128 | - integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= | ||
129 | - | ||
130 | -create-react-class@^15.6.3: | ||
131 | - version "15.6.3" | ||
132 | - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" | ||
133 | - integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== | ||
134 | - dependencies: | ||
135 | - fbjs "^0.8.9" | ||
136 | - loose-envify "^1.3.1" | ||
137 | - object-assign "^4.1.1" | ||
138 | - | ||
139 | -decamelize@^1.2.0: | ||
140 | - version "1.2.0" | ||
141 | - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" | ||
142 | - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= | ||
143 | - | ||
144 | -decode-uri-component@^0.2.0: | ||
145 | - version "0.2.0" | ||
146 | - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" | ||
147 | - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= | ||
148 | - | ||
149 | -emoji-regex@^7.0.1: | ||
150 | - version "7.0.3" | ||
151 | - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" | ||
152 | - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== | ||
153 | - | ||
154 | -encoding@^0.1.11: | ||
155 | - version "0.1.12" | ||
156 | - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" | ||
157 | - integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= | ||
158 | - dependencies: | ||
159 | - iconv-lite "~0.4.13" | ||
160 | - | ||
161 | -escape-string-regexp@^1.0.2: | ||
162 | - version "1.0.5" | ||
163 | - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" | ||
164 | - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= | ||
165 | - | ||
166 | -eslint-config-prettier@^6.0.0: | ||
167 | - version "6.11.0" | ||
168 | - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1" | ||
169 | - integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA== | ||
170 | - dependencies: | ||
171 | - get-stdin "^6.0.0" | ||
172 | - | ||
173 | -fbjs@^0.8.9: | ||
174 | - version "0.8.17" | ||
175 | - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" | ||
176 | - integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= | ||
177 | - dependencies: | ||
178 | - core-js "^1.0.0" | ||
179 | - isomorphic-fetch "^2.1.1" | ||
180 | - loose-envify "^1.0.0" | ||
181 | - object-assign "^4.1.0" | ||
182 | - promise "^7.1.1" | ||
183 | - setimmediate "^1.0.5" | ||
184 | - ua-parser-js "^0.7.18" | ||
185 | - | ||
186 | -find-up@^3.0.0: | ||
187 | - version "3.0.0" | ||
188 | - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" | ||
189 | - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== | ||
190 | - dependencies: | ||
191 | - locate-path "^3.0.0" | ||
192 | - | ||
193 | -fs-extra@^2.0.0: | ||
194 | - version "2.1.2" | ||
195 | - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" | ||
196 | - integrity sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU= | ||
197 | - dependencies: | ||
198 | - graceful-fs "^4.1.2" | ||
199 | - jsonfile "^2.1.0" | ||
200 | - | ||
201 | -get-caller-file@^2.0.1: | ||
202 | - version "2.0.5" | ||
203 | - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" | ||
204 | - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== | ||
205 | - | ||
206 | -get-stdin@^6.0.0: | ||
207 | - version "6.0.0" | ||
208 | - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" | ||
209 | - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== | ||
210 | - | ||
211 | -graceful-fs@^4.1.2, graceful-fs@^4.1.6: | ||
212 | - version "4.2.3" | ||
213 | - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" | ||
214 | - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== | ||
215 | - | ||
216 | -has-ansi@^2.0.0: | ||
217 | - version "2.0.0" | ||
218 | - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" | ||
219 | - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= | ||
220 | - dependencies: | ||
221 | - ansi-regex "^2.0.0" | ||
222 | - | ||
223 | -hoist-non-react-statics@^1.0.5: | ||
224 | - version "1.2.0" | ||
225 | - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" | ||
226 | - integrity sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs= | ||
227 | - | ||
228 | -hoist-non-react-statics@^2.3.1: | ||
229 | - version "2.5.5" | ||
230 | - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" | ||
231 | - integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw== | ||
232 | - | ||
233 | -hoist-non-react-statics@^3.3.2: | ||
234 | - version "3.3.2" | ||
235 | - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" | ||
236 | - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== | ||
237 | - dependencies: | ||
238 | - react-is "^16.7.0" | ||
239 | - | ||
240 | -iconv-lite@~0.4.13: | ||
241 | - version "0.4.24" | ||
242 | - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" | ||
243 | - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== | ||
244 | - dependencies: | ||
245 | - safer-buffer ">= 2.1.2 < 3" | ||
246 | - | ||
247 | -is-arrayish@^0.3.1: | ||
248 | - version "0.3.2" | ||
249 | - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" | ||
250 | - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== | ||
251 | - | ||
252 | -is-fullwidth-code-point@^2.0.0: | ||
253 | - version "2.0.0" | ||
254 | - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" | ||
255 | - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= | ||
256 | - | ||
257 | -is-stream@^1.0.1: | ||
258 | - version "1.1.0" | ||
259 | - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" | ||
260 | - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= | ||
261 | - | ||
262 | -isarray@0.0.1: | ||
263 | - version "0.0.1" | ||
264 | - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" | ||
265 | - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= | ||
266 | - | ||
267 | -isomorphic-fetch@^2.1.1: | ||
268 | - version "2.2.1" | ||
269 | - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" | ||
270 | - integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= | ||
271 | - dependencies: | ||
272 | - node-fetch "^1.0.1" | ||
273 | - whatwg-fetch ">=0.10.0" | ||
274 | - | ||
275 | -jest-react-native@^18.0.0: | ||
276 | - version "18.0.0" | ||
277 | - resolved "https://registry.yarnpkg.com/jest-react-native/-/jest-react-native-18.0.0.tgz#77dd909f069324599f227c58c61c2e62168726ba" | ||
278 | - integrity sha1-d92QnwaTJFmfInxYxhwuYhaHJro= | ||
279 | - | ||
280 | -"js-tokens@^3.0.0 || ^4.0.0": | ||
281 | - version "4.0.0" | ||
282 | - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" | ||
283 | - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== | ||
284 | - | ||
285 | -jsonfile@^2.1.0: | ||
286 | - version "2.4.0" | ||
287 | - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" | ||
288 | - integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= | ||
289 | - optionalDependencies: | ||
290 | - graceful-fs "^4.1.6" | ||
291 | - | ||
292 | -locate-path@^3.0.0: | ||
293 | - version "3.0.0" | ||
294 | - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" | ||
295 | - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== | ||
296 | - dependencies: | ||
297 | - p-locate "^3.0.0" | ||
298 | - path-exists "^3.0.0" | ||
299 | - | ||
300 | -lodash@^4.0.0, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4: | ||
301 | - version "4.17.15" | ||
302 | - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" | ||
303 | - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== | ||
304 | - | ||
305 | -loose-envify@^1.0.0, loose-envify@^1.3.1, loose-envify@^1.4.0: | ||
306 | - version "1.4.0" | ||
307 | - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" | ||
308 | - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== | ||
309 | - dependencies: | ||
310 | - js-tokens "^3.0.0 || ^4.0.0" | ||
311 | - | ||
312 | -native-base-shoutem-theme@0.3.1: | ||
313 | - version "0.3.1" | ||
314 | - resolved "https://registry.yarnpkg.com/native-base-shoutem-theme/-/native-base-shoutem-theme-0.3.1.tgz#f15cbd4ca74ca1c8b6a636d297b9164a5f2b3662" | ||
315 | - integrity sha512-uwEGhg6gwDuJTHuhNXRKbHtNjni1UI9qfAsVchIqfK7mQAHSNPVU1QRs9Hw6O2K/qLZaP/aJmNoZGc2h2EGSwA== | ||
316 | - dependencies: | ||
317 | - hoist-non-react-statics "^1.0.5" | ||
318 | - lodash "^4.17.14" | ||
319 | - prop-types "^15.5.10" | ||
320 | - | ||
321 | -native-base@^2.13.12: | ||
322 | - version "2.13.12" | ||
323 | - resolved "https://registry.yarnpkg.com/native-base/-/native-base-2.13.12.tgz#06020b46019964ddaef3a646ec07e72008018efc" | ||
324 | - integrity sha512-LdKGNXisbmQ0vDHG86McZKIFTlRyo+OQdJpqmQ05Yf7CGlMbBykJZCFe9rdiee5pLq20xiChe/jXbzFdWcysrg== | ||
325 | - dependencies: | ||
326 | - blueimp-md5 "^2.5.0" | ||
327 | - clamp "^1.0.1" | ||
328 | - color "~3.1.2" | ||
329 | - create-react-class "^15.6.3" | ||
330 | - eslint-config-prettier "^6.0.0" | ||
331 | - fs-extra "^2.0.0" | ||
332 | - jest-react-native "^18.0.0" | ||
333 | - lodash "^4.17.14" | ||
334 | - native-base-shoutem-theme "0.3.1" | ||
335 | - opencollective-postinstall "^2.0.2" | ||
336 | - print-message "^2.1.0" | ||
337 | - prop-types "^15.5.10" | ||
338 | - react-native-drawer "2.5.1" | ||
339 | - react-native-easy-grid "0.2.2" | ||
340 | - react-native-keyboard-aware-scroll-view "0.9.1" | ||
341 | - react-native-vector-icons "^6.6.0" | ||
342 | - react-timer-mixin "^0.13.4" | ||
343 | - react-tween-state "^0.1.5" | ||
344 | - tween-functions "^1.0.1" | ||
345 | - | ||
346 | -node-fetch@^1.0.1: | ||
347 | - version "1.7.3" | ||
348 | - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" | ||
349 | - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== | ||
350 | - dependencies: | ||
351 | - encoding "^0.1.11" | ||
352 | - is-stream "^1.0.1" | ||
353 | - | ||
354 | -object-assign@^4.1.0, object-assign@^4.1.1: | ||
355 | - version "4.1.1" | ||
356 | - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" | ||
357 | - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= | ||
358 | - | ||
359 | -opencollective-postinstall@^2.0.2: | ||
360 | - version "2.0.2" | ||
361 | - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" | ||
362 | - integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== | ||
363 | - | ||
364 | -p-limit@^2.0.0: | ||
365 | - version "2.3.0" | ||
366 | - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" | ||
367 | - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== | ||
368 | - dependencies: | ||
369 | - p-try "^2.0.0" | ||
370 | - | ||
371 | -p-locate@^3.0.0: | ||
372 | - version "3.0.0" | ||
373 | - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" | ||
374 | - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== | ||
375 | - dependencies: | ||
376 | - p-limit "^2.0.0" | ||
377 | - | ||
378 | -p-try@^2.0.0: | ||
379 | - version "2.2.0" | ||
380 | - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" | ||
381 | - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== | ||
382 | - | ||
383 | -path-exists@^3.0.0: | ||
384 | - version "3.0.0" | ||
385 | - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" | ||
386 | - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= | ||
387 | - | ||
388 | -path-to-regexp@^1.8.0: | ||
389 | - version "1.8.0" | ||
390 | - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" | ||
391 | - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== | ||
392 | - dependencies: | ||
393 | - isarray "0.0.1" | ||
394 | - | ||
395 | -performance-now@^2.1.0: | ||
396 | - version "2.1.0" | ||
397 | - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" | ||
398 | - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= | ||
399 | - | ||
400 | -print-message@^2.1.0: | ||
401 | - version "2.1.0" | ||
402 | - resolved "https://registry.yarnpkg.com/print-message/-/print-message-2.1.0.tgz#b5588ed08b0e1bf77ac7bcb5cb78004afaf9a891" | ||
403 | - integrity sha1-tViO0IsOG/d6x7y1y3gASvr5qJE= | ||
404 | - dependencies: | ||
405 | - chalk "1.1.1" | ||
406 | - | ||
407 | -promise@^7.1.1: | ||
408 | - version "7.3.1" | ||
409 | - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" | ||
410 | - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== | ||
411 | - dependencies: | ||
412 | - asap "~2.0.3" | ||
413 | - | ||
414 | -prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.2: | ||
415 | - version "15.7.2" | ||
416 | - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" | ||
417 | - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== | ||
418 | - dependencies: | ||
419 | - loose-envify "^1.4.0" | ||
420 | - object-assign "^4.1.1" | ||
421 | - react-is "^16.8.1" | ||
422 | - | ||
423 | -query-string@^6.11.1: | ||
424 | - version "6.12.1" | ||
425 | - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.12.1.tgz#2ae4d272db4fba267141665374e49a1de09e8a7c" | ||
426 | - integrity sha512-OHj+zzfRMyj3rmo/6G8a5Ifvw3AleL/EbcHMD27YA31Q+cO5lfmQxECkImuNVjcskLcvBRVHNAB3w6udMs1eAA== | ||
427 | - dependencies: | ||
428 | - decode-uri-component "^0.2.0" | ||
429 | - split-on-first "^1.0.0" | ||
430 | - strict-uri-encode "^2.0.0" | ||
431 | - | ||
432 | -raf@^3.1.0: | ||
433 | - version "3.4.1" | ||
434 | - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" | ||
435 | - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== | ||
436 | - dependencies: | ||
437 | - performance-now "^2.1.0" | ||
438 | - | ||
439 | -react-is@^16.13.0, react-is@^16.7.0, react-is@^16.8.1: | ||
440 | - version "16.13.1" | ||
441 | - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" | ||
442 | - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== | ||
443 | - | ||
444 | -react-native-drawer@2.5.1: | ||
445 | - version "2.5.1" | ||
446 | - resolved "https://registry.yarnpkg.com/react-native-drawer/-/react-native-drawer-2.5.1.tgz#08b9314184f48c724f1b467f8859797369798654" | ||
447 | - integrity sha512-cxcQNbSWy5sbGi7anSVp6EDr6JarOBMY9lbFOeLFeVYbONiudoqRKbgEsSDgSw3/LFCLvUXK5zdjXCOedeytxQ== | ||
448 | - dependencies: | ||
449 | - prop-types "^15.5.8" | ||
450 | - tween-functions "^1.0.1" | ||
451 | - | ||
452 | -react-native-easy-grid@0.2.2: | ||
453 | - version "0.2.2" | ||
454 | - resolved "https://registry.yarnpkg.com/react-native-easy-grid/-/react-native-easy-grid-0.2.2.tgz#f0be33620be1ebe2d2295918eb58b0a27e8272ab" | ||
455 | - integrity sha512-MlYrNIldnEMKn6TVatQN1P64GoVlwGIuz+8ncdfJ0Wq/xtzUkQwlil8Uksyp7MhKfENE09MQnGNcba6Mx3oSAA== | ||
456 | - dependencies: | ||
457 | - lodash "^4.17.15" | ||
458 | - | ||
459 | -react-native-iphone-x-helper@^1.0.3: | ||
460 | - version "1.2.1" | ||
461 | - resolved "https://registry.yarnpkg.com/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.2.1.tgz#645e2ffbbb49e80844bb4cbbe34a126fda1e6772" | ||
462 | - integrity sha512-/VbpIEp8tSNNHIvstuA3Swx610whci1Zpc9mqNkqn14DkMbw+ORviln2u0XyHG1kPvvwTNGZY6QpeFwxYaSdbQ== | ||
463 | - | ||
464 | -react-native-keyboard-aware-scroll-view@0.9.1: | ||
465 | - version "0.9.1" | ||
466 | - resolved "https://registry.yarnpkg.com/react-native-keyboard-aware-scroll-view/-/react-native-keyboard-aware-scroll-view-0.9.1.tgz#9e54b565a5f19b30bed12221d48921781f7630af" | ||
467 | - integrity sha512-tBZ8rmjELN0F6t5UBp5CW3NYmZXgVnJSzVCssv/OqG2t6kiB+OUTqxNvUP24K+HARX4H+XaW0aEJSFQkQCv6KA== | ||
468 | - dependencies: | ||
469 | - prop-types "^15.6.2" | ||
470 | - react-native-iphone-x-helper "^1.0.3" | ||
471 | - | ||
472 | -react-native-safe-area-view@^0.14.9: | ||
473 | - version "0.14.9" | ||
474 | - resolved "https://registry.yarnpkg.com/react-native-safe-area-view/-/react-native-safe-area-view-0.14.9.tgz#90ee8383037010d9a5055a97cf97e4c1da1f0c3d" | ||
475 | - integrity sha512-WII/ulhpVyL/qbYb7vydq7dJAfZRBcEhg4/UWt6F6nAKpLa3gAceMOxBxI914ppwSP/TdUsandFy6lkJQE0z4A== | ||
476 | - dependencies: | ||
477 | - hoist-non-react-statics "^2.3.1" | ||
478 | - | ||
479 | -react-native-vector-icons@^6.6.0: | ||
480 | - version "6.6.0" | ||
481 | - resolved "https://registry.yarnpkg.com/react-native-vector-icons/-/react-native-vector-icons-6.6.0.tgz#66cf004918eb05d90778d64bd42077c1800d481b" | ||
482 | - integrity sha512-MImKVx8JEvVVBnaShMr7/yTX4Y062JZMupht1T+IEgbqBj4aQeQ1z2SH4VHWKNtWtppk4kz9gYyUiMWqx6tNSw== | ||
483 | - dependencies: | ||
484 | - lodash "^4.0.0" | ||
485 | - prop-types "^15.6.2" | ||
486 | - yargs "^13.2.2" | ||
487 | - | ||
488 | -react-navigation@^4.3.8: | ||
489 | - version "4.3.8" | ||
490 | - resolved "https://registry.yarnpkg.com/react-navigation/-/react-navigation-4.3.8.tgz#7eacd186fbaa849355341046d9c5c95dec97d3bf" | ||
491 | - integrity sha512-Hxb6VkGu38x4r8nysAJutFkZ1yax29H6BrcdsqxlfGO2pCd821JkRL9h1Zqxn7qLm5JM6+7h0Yx3AS+YKDU5nw== | ||
492 | - dependencies: | ||
493 | - "@react-navigation/core" "^3.7.5" | ||
494 | - "@react-navigation/native" "^3.7.12" | ||
495 | - | ||
496 | -react-timer-mixin@^0.13.4: | ||
497 | - version "0.13.4" | ||
498 | - resolved "https://registry.yarnpkg.com/react-timer-mixin/-/react-timer-mixin-0.13.4.tgz#75a00c3c94c13abe29b43d63b4c65a88fc8264d3" | ||
499 | - integrity sha512-4+ow23tp/Tv7hBM5Az5/Be/eKKF7DIvJ09voz5LyHGQaqqz9WV8YMs31eFvcYQs7d451LSg7kDJV70XYN/Ug/Q== | ||
500 | - | ||
501 | -react-tween-state@^0.1.5: | ||
502 | - version "0.1.5" | ||
503 | - resolved "https://registry.yarnpkg.com/react-tween-state/-/react-tween-state-0.1.5.tgz#e98b066551efb93cb92dd1be14995c2e3deae339" | ||
504 | - integrity sha1-6YsGZVHvuTy5LdG+FJlcLj3q4zk= | ||
505 | - dependencies: | ||
506 | - raf "^3.1.0" | ||
507 | - tween-functions "^1.0.1" | ||
508 | - | ||
509 | -require-directory@^2.1.1: | ||
510 | - version "2.1.1" | ||
511 | - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" | ||
512 | - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= | ||
513 | - | ||
514 | -require-main-filename@^2.0.0: | ||
515 | - version "2.0.0" | ||
516 | - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" | ||
517 | - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== | ||
518 | - | ||
519 | -"safer-buffer@>= 2.1.2 < 3": | ||
520 | - version "2.1.2" | ||
521 | - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" | ||
522 | - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== | ||
523 | - | ||
524 | -set-blocking@^2.0.0: | ||
525 | - version "2.0.0" | ||
526 | - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" | ||
527 | - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= | ||
528 | - | ||
529 | -setimmediate@^1.0.5: | ||
530 | - version "1.0.5" | ||
531 | - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" | ||
532 | - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= | ||
533 | - | ||
534 | -simple-swizzle@^0.2.2: | ||
535 | - version "0.2.2" | ||
536 | - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" | ||
537 | - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= | ||
538 | - dependencies: | ||
539 | - is-arrayish "^0.3.1" | ||
540 | - | ||
541 | -split-on-first@^1.0.0: | ||
542 | - version "1.1.0" | ||
543 | - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" | ||
544 | - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== | ||
545 | - | ||
546 | -strict-uri-encode@^2.0.0: | ||
547 | - version "2.0.0" | ||
548 | - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" | ||
549 | - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= | ||
550 | - | ||
551 | -string-width@^3.0.0, string-width@^3.1.0: | ||
552 | - version "3.1.0" | ||
553 | - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" | ||
554 | - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== | ||
555 | - dependencies: | ||
556 | - emoji-regex "^7.0.1" | ||
557 | - is-fullwidth-code-point "^2.0.0" | ||
558 | - strip-ansi "^5.1.0" | ||
559 | - | ||
560 | -strip-ansi@^3.0.0: | ||
561 | - version "3.0.1" | ||
562 | - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" | ||
563 | - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= | ||
564 | - dependencies: | ||
565 | - ansi-regex "^2.0.0" | ||
566 | - | ||
567 | -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: | ||
568 | - version "5.2.0" | ||
569 | - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" | ||
570 | - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== | ||
571 | - dependencies: | ||
572 | - ansi-regex "^4.1.0" | ||
573 | - | ||
574 | -supports-color@^2.0.0: | ||
575 | - version "2.0.0" | ||
576 | - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" | ||
577 | - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= | ||
578 | - | ||
579 | -tween-functions@^1.0.1: | ||
580 | - version "1.2.0" | ||
581 | - resolved "https://registry.yarnpkg.com/tween-functions/-/tween-functions-1.2.0.tgz#1ae3a50e7c60bb3def774eac707acbca73bbc3ff" | ||
582 | - integrity sha1-GuOlDnxguz3vd06scHrLynO7w/8= | ||
583 | - | ||
584 | -ua-parser-js@^0.7.18: | ||
585 | - version "0.7.21" | ||
586 | - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" | ||
587 | - integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== | ||
588 | - | ||
589 | -whatwg-fetch@>=0.10.0: | ||
590 | - version "3.0.0" | ||
591 | - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" | ||
592 | - integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== | ||
593 | - | ||
594 | -which-module@^2.0.0: | ||
595 | - version "2.0.0" | ||
596 | - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" | ||
597 | - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= | ||
598 | - | ||
599 | -wrap-ansi@^5.1.0: | ||
600 | - version "5.1.0" | ||
601 | - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" | ||
602 | - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== | ||
603 | - dependencies: | ||
604 | - ansi-styles "^3.2.0" | ||
605 | - string-width "^3.0.0" | ||
606 | - strip-ansi "^5.0.0" | ||
607 | - | ||
608 | -y18n@^4.0.0: | ||
609 | - version "4.0.0" | ||
610 | - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" | ||
611 | - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== | ||
612 | - | ||
613 | -yargs-parser@^13.1.2: | ||
614 | - version "13.1.2" | ||
615 | - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" | ||
616 | - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== | ||
617 | - dependencies: | ||
618 | - camelcase "^5.0.0" | ||
619 | - decamelize "^1.2.0" | ||
620 | - | ||
621 | -yargs@^13.2.2: | ||
622 | - version "13.3.2" | ||
623 | - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" | ||
624 | - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== | ||
625 | - dependencies: | ||
626 | - cliui "^5.0.0" | ||
627 | - find-up "^3.0.0" | ||
628 | - get-caller-file "^2.0.1" | ||
629 | - require-directory "^2.1.1" | ||
630 | - require-main-filename "^2.0.0" | ||
631 | - set-blocking "^2.0.0" | ||
632 | - string-width "^3.0.0" | ||
633 | - which-module "^2.0.0" | ||
634 | - y18n "^4.0.0" | ||
635 | - yargs-parser "^13.1.2" |
No preview for this file type
주제보고서/최종보고서.hwp
0 → 100644
No preview for this file type
-
Please register or login to post a comment