Showing
19 changed files
with
1286 additions
and
0 deletions
.gitignore
0 → 100644
소스코드/.gitignore
0 → 100644
소스코드/PME/.expo-shared/assets.json
0 → 100644
소스코드/PME/.gitignore
0 → 100644
소스코드/PME/App.js
0 → 100644
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/Mainscreen'; | ||
6 | +import React from 'react' | ||
7 | + | ||
8 | +const AppStackNavigator = createStackNavigator({ | ||
9 | + Main:{ | ||
10 | + screen: MainScreen | ||
11 | + } | ||
12 | +}); | ||
13 | + | ||
14 | +export default createAppContainer(AppStackNavigator); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
소스코드/PME/app.json
0 → 100644
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
0 → 100644

642 Bytes
소스코드/PME/assets/splash.png
0 → 100644

9.09 KB
소스코드/PME/babel.config.js
0 → 100644
소스코드/PME/components/ClusteredMapView.js
0 → 100644
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); |
소스코드/PME/components/ClusteredMarker.js
0 → 100644
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/Mainscreen.js
0 → 100644
1 | +import { Component } from 'react'; | ||
2 | +import { StyleSheet, Text, View } 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 | + <MapView | ||
48 | + style={{ flex: 1 }} | ||
49 | + initialRegion={ { latitude: this.state.location.coords.latitude, longitude: this.state.location.coords.longitude | ||
50 | + ,latitudeDelta: 0.0922, longitudeDelta: 0.0421}} | ||
51 | + zoomEnabled={true} | ||
52 | + pitchEnabled={true} | ||
53 | + showsUserLocation={true} | ||
54 | + followsUserLocation={true} | ||
55 | + showsCompass={true} | ||
56 | + showsBuildings={true} | ||
57 | + showsTraffic={true} | ||
58 | + showsIndoors={true} | ||
59 | + extent={512}> | ||
60 | + <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.1, longitude: this.state.location.coords.longitude }} /> | ||
61 | + <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.5, longitude: this.state.location.coords.longitude }} /> | ||
62 | + <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.0001, longitude: this.state.location.coords.longitude }} /> | ||
63 | + <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.0003, longitude: this.state.location.coords.longitude }} /> | ||
64 | + <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.03, longitude: this.state.location.coords.longitude }} /> | ||
65 | + <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.05, longitude: this.state.location.coords.longitude }} /> | ||
66 | + <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.01, longitude: this.state.location.coords.longitude }} /> | ||
67 | + <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.2, longitude: this.state.location.coords.longitude }} /> | ||
68 | + <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.3, longitude: this.state.location.coords.longitude }} /> | ||
69 | + <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.7, longitude: this.state.location.coords.longitude }} /> | ||
70 | + | ||
71 | + </MapView>:<Text>Loading..</Text> | ||
72 | + ); | ||
73 | + } | ||
74 | +} | ||
75 | + | ||
76 | +const styles = StyleSheet.create({ | ||
77 | + container: { | ||
78 | + flex: 1, | ||
79 | + alignItems: 'center', | ||
80 | + justifyContent: 'center', | ||
81 | + }, | ||
82 | +}); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
소스코드/PME/components/helpers.js
0 → 100644
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: 54, | ||
121 | + height: 54, | ||
122 | + size: 40, | ||
123 | + fontSize: 16 | ||
124 | + }; | ||
125 | + } | ||
126 | + | ||
127 | + return { | ||
128 | + width: 48, | ||
129 | + height: 48, | ||
130 | + size: 36, | ||
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
0 → 100644
This diff could not be displayed because it is too large.
소스코드/PME/package.json
0 → 100644
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-location": "^8.1.0", | ||
16 | + "native-base": "^2.13.12", | ||
17 | + "react": "~16.9.0", | ||
18 | + "react-dom": "~16.9.0", | ||
19 | + "react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz", | ||
20 | + "react-native-gesture-handler": "^1.6.1", | ||
21 | + "react-native-map-clustering": "^3.1.2", | ||
22 | + "react-native-maps": "^0.27.1", | ||
23 | + "react-native-safe-area-context": "^0.7.3", | ||
24 | + "react-native-screens": "^2.7.0", | ||
25 | + "react-native-web": "~0.11.7", | ||
26 | + "react-navigation": "^4.3.8", | ||
27 | + "react-navigation-stack": "^2.3.13" | ||
28 | + }, | ||
29 | + "devDependencies": { | ||
30 | + "@babel/core": "^7.8.6", | ||
31 | + "babel-preset-expo": "~8.1.0" | ||
32 | + }, | ||
33 | + "private": true | ||
34 | +} |
소스코드/PME/yarn.lock
0 → 100644
This diff could not be displayed because it is too large.
소스코드/package.json
0 → 100644
소스코드/yarn.lock
0 → 100644
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" |
주제보고서/중간보고서.hwp
0 → 100644
No preview for this file type
-
Please register or login to post a comment