bluejoyq

add chart

...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
2 "devToolsPort": 19002, 2 "devToolsPort": 19002,
3 "expoServerPort": 19000, 3 "expoServerPort": 19000,
4 "packagerPort": 19001, 4 "packagerPort": 19001,
5 - "packagerPid": 23132, 5 + "packagerPid": 31648,
6 "expoServerNgrokUrl": null, 6 "expoServerNgrokUrl": null,
7 "packagerNgrokUrl": null, 7 "packagerNgrokUrl": null,
8 "ngrokPid": null 8 "ngrokPid": null
......
...@@ -3,6 +3,6 @@ ...@@ -3,6 +3,6 @@
3 "lanType": "ip", 3 "lanType": "ip",
4 "dev": true, 4 "dev": true,
5 "minify": false, 5 "minify": false,
6 - "urlRandomness": "s4-47j", 6 + "urlRandomness": "83-zd2",
7 "https": false 7 "https": false
8 } 8 }
......
...@@ -13,12 +13,12 @@ const Home = ({searchResults}) => { ...@@ -13,12 +13,12 @@ const Home = ({searchResults}) => {
13 <SearchBar /> 13 <SearchBar />
14 <ScrollView> 14 <ScrollView>
15 { searchResults.length ? ( searchResults.map((searchResult, index) => ( 15 { searchResults.length ? ( searchResults.map((searchResult, index) => (
16 - <SearchCard key={index} title={searchResult.title} content={searchResult.passage} url={searchResult.url}/>))) 16 + <SearchCard key={index} title={searchResult.title} content={searchResult.passage}
17 + url={searchResult.url} metric={Math.round(searchResult.confidence * 100)} />)))
17 : <PromptSearch /> 18 : <PromptSearch />
18 } 19 }
19 </ScrollView> 20 </ScrollView>
20 </View> 21 </View>
21 -
22 ) 22 )
23 } 23 }
24 24
......
1 import React from 'react'; 1 import React from 'react';
2 import { View, Text} from 'react-native'; 2 import { View, Text} from 'react-native';
3 import Icon from 'react-native-vector-icons/FontAwesome'; 3 import Icon from 'react-native-vector-icons/FontAwesome';
4 +import RateSentence from '../RateSentence/RateSentence';
5 +import RateBar from '../RateBar/RateBar';
6 +import RateLine from '../RateLine/RateLine';
4 7
5 const Rate = () => { 8 const Rate = () => {
6 return( 9 return(
7 - <View style={{flex: 1, backgroundColor:'#eee', margin:0,padding:0}}> 10 + <View style={{flex: 1, backgroundColor:'#eee', margin:0,padding:0, justifyContent:'center',alignItems:'center'}}>
8 - <Text >평ㄴ가</Text> 11 + <RateSentence />
12 + <RateBar />
13 + <RateLine />
9 </View> 14 </View>
10 ) 15 )
11 } 16 }
......
1 +import React from 'react';
2 +import { Surface, Text } from 'react-native-paper';
3 +import { StyleSheet } from 'react-native';
4 +import { StackedBarChart } from 'react-native-svg-charts';
5 +
6 +
7 +export default RateBar = (props) => (
8 + <Surface style={styles.surface}>
9 + <StackedBarChart
10 + data={ [{keyword:20,korean:20}]}
11 + style={{height:50, width:'100%'}}
12 + keys={['keyword','korean']}
13 + colors={['#a5aa5a','#2cc3c2']}
14 + showGrid={ false }
15 + horizontal={ true }
16 + contentInset={ { top: 30, bottom: 30 } }
17 + yMax={100}
18 + />
19 + </Surface>
20 + );
21 +
22 +const styles = StyleSheet.create({
23 + surface: {
24 + padding: 8,
25 + flex: 0.3,
26 + width: '95%',
27 + alignItems: 'center',
28 + justifyContent: 'center',
29 + elevation: 2,
30 + marginTop: 10
31 + },
32 +});
...\ No newline at end of file ...\ No newline at end of file
1 +import React from 'react';
2 +import { Surface, Text } from 'react-native-paper';
3 +import { StyleSheet } from 'react-native';
4 +
5 +export default RateLine = () => (
6 + <Surface style={styles.surface}>
7 + <Text>Surface</Text>
8 + </Surface>
9 +);
10 +
11 +const styles = StyleSheet.create({
12 + surface: {
13 + padding: 8,
14 + flex: 0.4,
15 + width: '95%',
16 + alignItems: 'center',
17 + justifyContent: 'center',
18 + elevation: 2,
19 + marginTop: 10,
20 + marginBottom: 10,
21 + },
22 +});
...\ No newline at end of file ...\ No newline at end of file
1 +import React,{ useState } from 'react';
2 +import { Surface, Text } from 'react-native-paper';
3 +import { StyleSheet,View } from 'react-native';
4 +import {connect} from 'react-redux';
5 +
6 +const SentenceInfo = (props) => (
7 + <View>
8 + <Text style={[styles.infoText,{color:props.color}]} >{props.info}</Text>
9 + <Text style={[styles.Text,{color:props.color}]}>{props.Text}</Text>
10 + </View>
11 +)
12 +
13 +const RateSentence = ({originalText, fixedText, keywordText }) => {
14 + const [ count,setCount ] = useState(0);
15 +
16 + const calCount = () => {
17 + if(count > 1 || !keywordText) setCount(0);
18 + else setCount(count+1);
19 + }
20 +
21 + return (
22 + <Surface style={styles.surface} onTouchStart={calCount} >
23 + { keywordText ?
24 + <View>
25 + {count == 0 && ( <SentenceInfo Text={originalText} info={'원래 검색 문장'} color={'#B71C1C'} />) }
26 + {count == 1 && ( <SentenceInfo Text={fixedText} info={'맞춤법 교정 문장'} color={'#2196F3'} />) }
27 + {count == 2 && ( <SentenceInfo Text={keywordText} info={'키워드 교정 문장'} color={'#00a676'} />) }
28 + </View>
29 + : <View style={{alignItems:'center'}}>
30 + <Text style={styles.Text}>아직 검색</Text>
31 + <Text style={styles.Text}>결과가 없습니다!</Text>
32 + </View>
33 + }
34 +
35 + </Surface>
36 + )
37 +}
38 +
39 + const styles = StyleSheet.create({
40 + surface: {
41 + padding: 8,
42 + flex: 0.3,
43 + width: '95%',
44 + alignItems: 'center',
45 + justifyContent: 'center',
46 + elevation: 2,
47 + marginTop: 10
48 + },
49 + Text:{
50 + fontSize: 25,
51 + },
52 + infoText:{
53 + fontSize: 20,
54 + }
55 +});
56 +
57 +
58 +const RateSentenceContainer = ( {originalText, fixedText, keywordText } ) => (
59 + <RateSentence originalText={originalText} fixedText={fixedText} keywordText={keywordText} />
60 +);
61 +
62 +export default connect(
63 + ({search})=>({
64 + originalText: search.result.return_data.originalText,
65 + fixedText: search.result.return_data.fixedText,
66 + keywordText: search.result.return_data.keywordText
67 + })
68 +)(RateSentenceContainer);
...\ No newline at end of file ...\ No newline at end of file
1 import React from 'react'; 1 import React from 'react';
2 import { DARK_MAIN,LIGHT_MAIN, WHITE_MAIN} from 'react-native-dotenv'; 2 import { DARK_MAIN,LIGHT_MAIN, WHITE_MAIN} from 'react-native-dotenv';
3 -import { Avatar, Button, Card, Title, Paragraph } from 'react-native-paper'; 3 +import { Avatar, Button, Card, Title, Paragraph, Text } from 'react-native-paper';
4 import {Linking } from 'react-native'; 4 import {Linking } from 'react-native';
5 5
6 const SearchCard = (props) => ( 6 const SearchCard = (props) => (
7 - <Card style={{margin:10}}> 7 + <Card style={{marginTop:10, marginLeft:10, marginRight:10}}>
8 <Card.Title title={props.title} 8 <Card.Title title={props.title}
9 left={ (props) => ( <Avatar.Icon {...props} icon="folder" color={WHITE_MAIN}style={{backgroundColor:LIGHT_MAIN}} /> ) } /> 9 left={ (props) => ( <Avatar.Icon {...props} icon="folder" color={WHITE_MAIN}style={{backgroundColor:LIGHT_MAIN}} /> ) } />
10 <Card.Content> 10 <Card.Content>
11 <Paragraph>{props.content}</Paragraph> 11 <Paragraph>{props.content}</Paragraph>
12 </Card.Content> 12 </Card.Content>
13 - <Card.Actions style={{flexDirection:'row-reverse'}}> 13 + <Card.Actions style={{flexDirection:'row', justifyContent:'space-between'}}>
14 + <Text style={{marginTop:7, fontStyle:'italic'}}>정확도 : {props.metric}%</Text>
14 <Button mode='contained' color= {LIGHT_MAIN} labelStyle={{color:WHITE_MAIN}} onPress={()=>{Linking.openURL(props.url)}}> 15 <Button mode='contained' color= {LIGHT_MAIN} labelStyle={{color:WHITE_MAIN}} onPress={()=>{Linking.openURL(props.url)}}>
15 자세히보기 16 자세히보기
16 </Button> 17 </Button>
......
...@@ -1794,6 +1794,11 @@ ...@@ -1794,6 +1794,11 @@
1794 "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.12.0.tgz", 1794 "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.12.0.tgz",
1795 "integrity": "sha512-zo+HIdIhzojv6F1siQPqPFROyVy7C50KzHv/k/Iz+BtvtVzSHXiMXOpq2wCfNkeBqdCv+V8XOV96tsEt2W/3rQ==" 1795 "integrity": "sha512-zo+HIdIhzojv6F1siQPqPFROyVy7C50KzHv/k/Iz+BtvtVzSHXiMXOpq2wCfNkeBqdCv+V8XOV96tsEt2W/3rQ=="
1796 }, 1796 },
1797 + "boolbase": {
1798 + "version": "1.0.0",
1799 + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
1800 + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
1801 + },
1797 "bplist-creator": { 1802 "bplist-creator": {
1798 "version": "0.0.8", 1803 "version": "0.0.8",
1799 "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz", 1804 "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz",
...@@ -2264,6 +2269,114 @@ ...@@ -2264,6 +2269,114 @@
2264 } 2269 }
2265 } 2270 }
2266 }, 2271 },
2272 + "css-select": {
2273 + "version": "2.1.0",
2274 + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
2275 + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
2276 + "requires": {
2277 + "boolbase": "^1.0.0",
2278 + "css-what": "^3.2.1",
2279 + "domutils": "^1.7.0",
2280 + "nth-check": "^1.0.2"
2281 + }
2282 + },
2283 + "css-tree": {
2284 + "version": "1.0.0-alpha.37",
2285 + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
2286 + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==",
2287 + "requires": {
2288 + "mdn-data": "2.0.4",
2289 + "source-map": "^0.6.1"
2290 + },
2291 + "dependencies": {
2292 + "source-map": {
2293 + "version": "0.6.1",
2294 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2295 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
2296 + }
2297 + }
2298 + },
2299 + "css-what": {
2300 + "version": "3.2.1",
2301 + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz",
2302 + "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw=="
2303 + },
2304 + "d3-array": {
2305 + "version": "1.2.4",
2306 + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz",
2307 + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw=="
2308 + },
2309 + "d3-collection": {
2310 + "version": "1.0.7",
2311 + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz",
2312 + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A=="
2313 + },
2314 + "d3-color": {
2315 + "version": "1.4.0",
2316 + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.0.tgz",
2317 + "integrity": "sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg=="
2318 + },
2319 + "d3-format": {
2320 + "version": "1.4.2",
2321 + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.2.tgz",
2322 + "integrity": "sha512-gco1Ih54PgMsyIXgttLxEhNy/mXxq8+rLnCb5shQk+P5TsiySrwWU5gpB4zen626J4LIwBxHvDChyA8qDm57ww=="
2323 + },
2324 + "d3-interpolate": {
2325 + "version": "1.3.3",
2326 + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.3.3.tgz",
2327 + "integrity": "sha512-wTsi4AqnC2raZ3Q9eqFxiZGUf5r6YiEdi23vXjjKSWXFYLCQNUtBVMk6uk2tg4cOY6YrjRdmSmI/Mf0ze1zPzQ==",
2328 + "requires": {
2329 + "d3-color": "1"
2330 + }
2331 + },
2332 + "d3-interpolate-path": {
2333 + "version": "2.0.0",
2334 + "resolved": "https://registry.npmjs.org/d3-interpolate-path/-/d3-interpolate-path-2.0.0.tgz",
2335 + "integrity": "sha1-ywMnMU/tsU5uoXiat+CVoWwvirI=",
2336 + "requires": {
2337 + "d3-interpolate": "^1.1.1"
2338 + }
2339 + },
2340 + "d3-path": {
2341 + "version": "1.0.9",
2342 + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz",
2343 + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg=="
2344 + },
2345 + "d3-scale": {
2346 + "version": "1.0.7",
2347 + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-1.0.7.tgz",
2348 + "integrity": "sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw==",
2349 + "requires": {
2350 + "d3-array": "^1.2.0",
2351 + "d3-collection": "1",
2352 + "d3-color": "1",
2353 + "d3-format": "1",
2354 + "d3-interpolate": "1",
2355 + "d3-time": "1",
2356 + "d3-time-format": "2"
2357 + }
2358 + },
2359 + "d3-shape": {
2360 + "version": "1.3.7",
2361 + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz",
2362 + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==",
2363 + "requires": {
2364 + "d3-path": "1"
2365 + }
2366 + },
2367 + "d3-time": {
2368 + "version": "1.1.0",
2369 + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz",
2370 + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA=="
2371 + },
2372 + "d3-time-format": {
2373 + "version": "2.2.2",
2374 + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.2.2.tgz",
2375 + "integrity": "sha512-pweL2Ri2wqMY+wlW/wpkl8T3CUzKAha8S9nmiQlMABab8r5MJN0PD1V4YyRNVaKQfeh4Z0+VO70TLw6ESVOYzw==",
2376 + "requires": {
2377 + "d3-time": "1"
2378 + }
2379 + },
2267 "debounce": { 2380 "debounce": {
2268 "version": "1.2.0", 2381 "version": "1.2.0",
2269 "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", 2382 "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz",
...@@ -2375,11 +2488,41 @@ ...@@ -2375,11 +2488,41 @@
2375 "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 2488 "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
2376 "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 2489 "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
2377 }, 2490 },
2491 + "dom-serializer": {
2492 + "version": "0.2.2",
2493 + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
2494 + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
2495 + "requires": {
2496 + "domelementtype": "^2.0.1",
2497 + "entities": "^2.0.0"
2498 + },
2499 + "dependencies": {
2500 + "domelementtype": {
2501 + "version": "2.0.1",
2502 + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
2503 + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ=="
2504 + }
2505 + }
2506 + },
2378 "dom-walk": { 2507 "dom-walk": {
2379 "version": "0.1.1", 2508 "version": "0.1.1",
2380 "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", 2509 "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
2381 "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" 2510 "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg="
2382 }, 2511 },
2512 + "domelementtype": {
2513 + "version": "1.3.1",
2514 + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
2515 + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
2516 + },
2517 + "domutils": {
2518 + "version": "1.7.0",
2519 + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
2520 + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
2521 + "requires": {
2522 + "dom-serializer": "0",
2523 + "domelementtype": "1"
2524 + }
2525 + },
2383 "dotenv": { 2526 "dotenv": {
2384 "version": "2.0.0", 2527 "version": "2.0.0",
2385 "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-2.0.0.tgz", 2528 "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-2.0.0.tgz",
...@@ -2417,6 +2560,11 @@ ...@@ -2417,6 +2560,11 @@
2417 "once": "^1.4.0" 2560 "once": "^1.4.0"
2418 } 2561 }
2419 }, 2562 },
2563 + "entities": {
2564 + "version": "2.0.0",
2565 + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz",
2566 + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw=="
2567 + },
2420 "envinfo": { 2568 "envinfo": {
2421 "version": "5.12.1", 2569 "version": "5.12.1",
2422 "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-5.12.1.tgz", 2570 "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-5.12.1.tgz",
...@@ -4111,6 +4259,11 @@ ...@@ -4111,6 +4259,11 @@
4111 "buffer-alloc": "^1.1.0" 4259 "buffer-alloc": "^1.1.0"
4112 } 4260 }
4113 }, 4261 },
4262 + "mdn-data": {
4263 + "version": "2.0.4",
4264 + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
4265 + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA=="
4266 + },
4114 "mem": { 4267 "mem": {
4115 "version": "1.1.0", 4268 "version": "1.1.0",
4116 "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", 4269 "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
...@@ -4814,6 +4967,14 @@ ...@@ -4814,6 +4967,14 @@
4814 "gauge": "~1.2.5" 4967 "gauge": "~1.2.5"
4815 } 4968 }
4816 }, 4969 },
4970 + "nth-check": {
4971 + "version": "1.0.2",
4972 + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
4973 + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
4974 + "requires": {
4975 + "boolbase": "~1.0.0"
4976 + }
4977 + },
4817 "nullthrows": { 4978 "nullthrows": {
4818 "version": "1.1.1", 4979 "version": "1.1.1",
4819 "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", 4980 "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
...@@ -5633,6 +5794,27 @@ ...@@ -5633,6 +5794,27 @@
5633 "debounce": "^1.2.0" 5794 "debounce": "^1.2.0"
5634 } 5795 }
5635 }, 5796 },
5797 + "react-native-svg": {
5798 + "version": "9.13.3",
5799 + "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-9.13.3.tgz",
5800 + "integrity": "sha512-H50b2m4jvrQ7KxKs8uYSuWecr6e5XC7BDfS7DaA96+0Owjh0C9DksI5l8SRyHnmE+emiYMPu6Qqfr9dCyKkaJQ==",
5801 + "requires": {
5802 + "css-select": "^2.0.2",
5803 + "css-tree": "^1.0.0-alpha.37"
5804 + }
5805 + },
5806 + "react-native-svg-charts": {
5807 + "version": "5.3.0",
5808 + "resolved": "https://registry.npmjs.org/react-native-svg-charts/-/react-native-svg-charts-5.3.0.tgz",
5809 + "integrity": "sha512-XxKDqMdOl8EhQGhLAzWtmfhhiTuPeeRrLvLQ5+BzaRoCgdBO1CGGKeLvEor8OU8QUi3IXSdbbTi+fVrFq5hqaQ==",
5810 + "requires": {
5811 + "d3-array": "^1.2.0",
5812 + "d3-interpolate-path": "2.0.0",
5813 + "d3-scale": "^1.0.6",
5814 + "d3-shape": "^1.0.6",
5815 + "prop-types": "^15.6.0"
5816 + }
5817 + },
5636 "react-native-tab-view": { 5818 "react-native-tab-view": {
5637 "version": "2.10.0", 5819 "version": "2.10.0",
5638 "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-2.10.0.tgz", 5820 "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-2.10.0.tgz",
......
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
21 "react-native-navigation": "^3.6.0", 21 "react-native-navigation": "^3.6.0",
22 "react-native-paper": "^3.2.1", 22 "react-native-paper": "^3.2.1",
23 "react-native-reanimated": "^1.4.0", 23 "react-native-reanimated": "^1.4.0",
24 + "react-native-svg": "^9.13.3",
25 + "react-native-svg-charts": "^5.3.0",
24 "react-native-voice": "^0.3.0", 26 "react-native-voice": "^0.3.0",
25 "react-native-web": "^0.11.7", 27 "react-native-web": "^0.11.7",
26 "react-navigation": "^4.0.10", 28 "react-navigation": "^4.0.10",
......