Showing
11 changed files
with
592 additions
and
76 deletions
... | @@ -4920,6 +4920,12 @@ | ... | @@ -4920,6 +4920,12 @@ |
4920 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.413.tgz", | 4920 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.413.tgz", |
4921 | "integrity": "sha512-Jm1Rrd3siqYHO3jftZwDljL2LYQafj3Kki5r+udqE58d0i91SkjItVJ5RwlJn9yko8i7MOcoidVKjQlgSdd1hg==" | 4921 | "integrity": "sha512-Jm1Rrd3siqYHO3jftZwDljL2LYQafj3Kki5r+udqE58d0i91SkjItVJ5RwlJn9yko8i7MOcoidVKjQlgSdd1hg==" |
4922 | }, | 4922 | }, |
4923 | + "element-resize-event": { | ||
4924 | + "version": "2.0.9", | ||
4925 | + "resolved": "https://registry.npmjs.org/element-resize-event/-/element-resize-event-2.0.9.tgz", | ||
4926 | + "integrity": "sha1-L14VgaKW61J1IQwUG8VjQuIY+HY=", | ||
4927 | + "dev": true | ||
4928 | + }, | ||
4923 | "elliptic": { | 4929 | "elliptic": { |
4924 | "version": "6.5.2", | 4930 | "version": "6.5.2", |
4925 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", | 4931 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", |
... | @@ -9774,6 +9780,11 @@ | ... | @@ -9774,6 +9780,11 @@ |
9774 | "minimist": "^1.2.5" | 9780 | "minimist": "^1.2.5" |
9775 | } | 9781 | } |
9776 | }, | 9782 | }, |
9783 | + "moment": { | ||
9784 | + "version": "2.26.0", | ||
9785 | + "resolved": "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz", | ||
9786 | + "integrity": "sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw==" | ||
9787 | + }, | ||
9777 | "move-concurrently": { | 9788 | "move-concurrently": { |
9778 | "version": "1.0.1", | 9789 | "version": "1.0.1", |
9779 | "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", | 9790 | "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", |
... | @@ -12017,6 +12028,15 @@ | ... | @@ -12017,6 +12028,15 @@ |
12017 | } | 12028 | } |
12018 | } | 12029 | } |
12019 | }, | 12030 | }, |
12031 | + "react-dimensions": { | ||
12032 | + "version": "1.3.1", | ||
12033 | + "resolved": "https://registry.npmjs.org/react-dimensions/-/react-dimensions-1.3.1.tgz", | ||
12034 | + "integrity": "sha512-go5vMuGUxaB5PiTSIk+ZfAxLbHwcIgIfLhkBZ2SIMQjaCgnpttxa30z5ijEzfDjeOCTGRpxvkzcmE4Vt4Ppvyw==", | ||
12035 | + "dev": true, | ||
12036 | + "requires": { | ||
12037 | + "element-resize-event": "^2.0.4" | ||
12038 | + } | ||
12039 | + }, | ||
12020 | "react-dom": { | 12040 | "react-dom": { |
12021 | "version": "16.8.6", | 12041 | "version": "16.8.6", |
12022 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.6.tgz", | 12042 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.6.tgz", |
... | @@ -12061,6 +12081,11 @@ | ... | @@ -12061,6 +12081,11 @@ |
12061 | "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", | 12081 | "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", |
12062 | "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" | 12082 | "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" |
12063 | }, | 12083 | }, |
12084 | + "react-moment": { | ||
12085 | + "version": "0.9.7", | ||
12086 | + "resolved": "https://registry.npmjs.org/react-moment/-/react-moment-0.9.7.tgz", | ||
12087 | + "integrity": "sha512-ifzUrUGF6KRsUN2pRG5k56kO0mJBr8kRkWb0wNvtFIsBIxOuPxhUpL1YlXwpbQCbHq23hUu6A0VEk64HsFxk9g==" | ||
12088 | + }, | ||
12064 | "react-notification-system": { | 12089 | "react-notification-system": { |
12065 | "version": "0.2.17", | 12090 | "version": "0.2.17", |
12066 | "resolved": "https://registry.npmjs.org/react-notification-system/-/react-notification-system-0.2.17.tgz", | 12091 | "resolved": "https://registry.npmjs.org/react-notification-system/-/react-notification-system-0.2.17.tgz", | ... | ... |
... | @@ -5,12 +5,14 @@ | ... | @@ -5,12 +5,14 @@ |
5 | "dependencies": { | 5 | "dependencies": { |
6 | "bootstrap": "3.3.7", | 6 | "bootstrap": "3.3.7", |
7 | "chartist": "0.10.1", | 7 | "chartist": "0.10.1", |
8 | + "moment": "^2.26.0", | ||
8 | "node-sass": "4.12.0", | 9 | "node-sass": "4.12.0", |
9 | "react": "16.8.6", | 10 | "react": "16.8.6", |
10 | "react-bootstrap": "0.32.4", | 11 | "react-bootstrap": "0.32.4", |
11 | "react-chartist": "0.13.3", | 12 | "react-chartist": "0.13.3", |
12 | "react-dom": "16.8.6", | 13 | "react-dom": "16.8.6", |
13 | "react-google-maps": "9.4.5", | 14 | "react-google-maps": "9.4.5", |
15 | + "react-moment": "^0.9.7", | ||
14 | "react-notification-system": "0.2.17", | 16 | "react-notification-system": "0.2.17", |
15 | "react-router": "5.0.0", | 17 | "react-router": "5.0.0", |
16 | "react-router-dom": "5.0.0", | 18 | "react-router-dom": "5.0.0", |
... | @@ -21,6 +23,7 @@ | ... | @@ -21,6 +23,7 @@ |
21 | "@types/googlemaps": "3.30.19", | 23 | "@types/googlemaps": "3.30.19", |
22 | "@types/markerclustererplus": "2.1.33", | 24 | "@types/markerclustererplus": "2.1.33", |
23 | "@types/react": "16.8.13", | 25 | "@types/react": "16.8.13", |
26 | + "react-dimensions": "^1.3.1", | ||
24 | "typescript": "3.4.3" | 27 | "typescript": "3.4.3" |
25 | }, | 28 | }, |
26 | "scripts": { | 29 | "scripts": { | ... | ... |
1 | +import React, {useEffect} from "react"; | ||
2 | +import Dimensions from "react-dimensions"; | ||
3 | + | ||
4 | +let map, infoWindow; | ||
5 | + | ||
6 | +const GoogleMap = (props) => { | ||
7 | + useEffect(() => { | ||
8 | + console.log('mount'); | ||
9 | + const { google } = window; | ||
10 | + | ||
11 | + infoWindow = new window.google.maps.InfoWindow({}); | ||
12 | + | ||
13 | + map = new google.maps.Map(document.getElementById("map"), { | ||
14 | + zoom: 11, | ||
15 | + center: {lat: -34.397, lng: 150.644}, | ||
16 | + disableDefaultUI: true, | ||
17 | + zoomControl: true | ||
18 | + }); | ||
19 | + }, []); | ||
20 | + | ||
21 | + return ( | ||
22 | + <div id="map" style={{height:props.containerWidth, backgroundColor:'pink'}}> | ||
23 | + </div> | ||
24 | + ) | ||
25 | +}; | ||
26 | + | ||
27 | +export default Dimensions()(GoogleMap) // Enhanced component | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +import React from "react"; | ||
2 | +import { Card } from "components/Card/Card.jsx"; | ||
3 | +import Dimensions from 'react-dimensions' | ||
4 | +import moment from 'moment'; | ||
5 | +import GoogleMap from './GoogleMap'; | ||
6 | + | ||
7 | +const GoogleMapCard = (props) => { | ||
8 | + const getStats = `마지막 업데이트 ${moment().format("YYYY/MM/DD hh:mm")}`; | ||
9 | + | ||
10 | + return ( | ||
11 | + <Card | ||
12 | + id="chartActivity" | ||
13 | + title="서비스 현황" | ||
14 | + category="All products including Taxes" | ||
15 | + stats={getStats} | ||
16 | + statsIcon="fa fa-history" | ||
17 | + content={ | ||
18 | + <GoogleMap/> | ||
19 | + } | ||
20 | + /> | ||
21 | + ); | ||
22 | +}; | ||
23 | + | ||
24 | +export default GoogleMapCard // Enhanced component | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +import React from "react"; | ||
2 | +import {Table} from "react-bootstrap"; | ||
3 | +import { Card } from "components/Card/Card.jsx"; | ||
4 | + | ||
5 | +import { tdArray } from "variables/Variables.jsx"; | ||
6 | + | ||
7 | +const thArray = ['유저ID', '대여 시각', '반납 시각', '대여 시간', '이동 거리', '대여 금액']; | ||
8 | + | ||
9 | +const KickboardHistoryTable = () => { | ||
10 | + | ||
11 | + return ( | ||
12 | + <Card | ||
13 | + title="Striped Table with Hover" | ||
14 | + category="Here is a subtitle for this table" | ||
15 | + ctTableFullWidth | ||
16 | + ctTableResponsive | ||
17 | + content={ | ||
18 | + <Table striped hover> | ||
19 | + <thead> | ||
20 | + <tr> | ||
21 | + {thArray.map((prop, key) => { | ||
22 | + return <th key={key}>{prop}</th>; | ||
23 | + })} | ||
24 | + </tr> | ||
25 | + </thead> | ||
26 | + <tbody> | ||
27 | + {tdArray.map((prop, key) => { | ||
28 | + return ( | ||
29 | + <tr key={key}> | ||
30 | + {prop.map((prop, key) => { | ||
31 | + return <td key={key}>{prop}</td>; | ||
32 | + })} | ||
33 | + </tr> | ||
34 | + ); | ||
35 | + })} | ||
36 | + </tbody> | ||
37 | + </Table> | ||
38 | + } | ||
39 | + /> | ||
40 | + ) | ||
41 | +}; | ||
42 | + | ||
43 | +export default KickboardHistoryTable; | ||
44 | + |
1 | +import React from "react"; | ||
2 | +import { Card } from "components/Card/Card.jsx"; | ||
3 | +import {Col, Row} from "react-bootstrap"; | ||
4 | +import styled from "styled-components" | ||
5 | +import moment from "moment"; | ||
6 | + | ||
7 | +// border: 1px solid #E3E3E3; | ||
8 | +const KickboardButton = styled.div` | ||
9 | + background-color: #e7e7e7; | ||
10 | + border-radius: 4px; | ||
11 | + color: #565656; | ||
12 | + padding: 8px 12px; | ||
13 | + height: 40px; | ||
14 | + box-shadow: none; | ||
15 | + margin: 0 auto; | ||
16 | + text-align: center; | ||
17 | + margin-bottom: 10px; | ||
18 | + | ||
19 | + &:hover { | ||
20 | + background-color: #565656; | ||
21 | + color: white; | ||
22 | + cursor: pointer; | ||
23 | + } | ||
24 | +`; | ||
25 | + | ||
26 | +const KickboardDataList = styled.ul` | ||
27 | + font-size: 16px; | ||
28 | +`; | ||
29 | + | ||
30 | +const KickboardData = styled.li` | ||
31 | + padding: 3px 0; | ||
32 | +`; | ||
33 | + | ||
34 | +const kickboardDataKey = { | ||
35 | + a: '배터리', | ||
36 | + b: '킥보드 위치', | ||
37 | + c: '킥보드 상태', | ||
38 | + d: '킥보드 자세 여부', | ||
39 | + e: '총 누적 이동 거리', | ||
40 | + f: '총 누적 대여 시간', | ||
41 | + g: '신호 양호 여부', | ||
42 | + h: '현재 네트워크 연결 여부', | ||
43 | + i: '최근 gps 업데이트 시각', | ||
44 | + j: '최근 연결 업데이트 시각', | ||
45 | + k: '모델명', | ||
46 | + l: '최근 업데이트 시각', | ||
47 | +}; | ||
48 | + | ||
49 | +const KickboardStatusCard = () => { | ||
50 | + const getStats = `마지막 업데이트 ${moment().format("YYYY/MM/DD hh:mm")}`; | ||
51 | + | ||
52 | + return ( | ||
53 | + <Card | ||
54 | + title={'000000번 킥보드'} | ||
55 | + stats={getStats} | ||
56 | + statsIcon="fa fa-history" | ||
57 | + content={ | ||
58 | + <Row> | ||
59 | + <Col md={4} sm={4} xs={4}> | ||
60 | + <KickboardButton>경적 울리기</KickboardButton> | ||
61 | + </Col> | ||
62 | + <Col md={4} sm={4} xs={4}> | ||
63 | + <KickboardButton>반납하기</KickboardButton> | ||
64 | + </Col> | ||
65 | + <Col md={4} sm={4} xs={4}> | ||
66 | + <KickboardButton>운행 종료하기</KickboardButton> | ||
67 | + </Col> | ||
68 | + <KickboardDataList> | ||
69 | + { | ||
70 | + Object.keys(kickboardDataKey).map(key => { | ||
71 | + return <KickboardData>{kickboardDataKey[key]} : {key}</KickboardData> | ||
72 | + }) | ||
73 | + } | ||
74 | + </KickboardDataList> | ||
75 | + </Row> | ||
76 | + } | ||
77 | + > | ||
78 | + </Card> | ||
79 | + ); | ||
80 | +}; | ||
81 | + | ||
82 | +export default KickboardStatusCard; | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +import React from "react"; | ||
2 | +import styled from "styled-components"; | ||
3 | + | ||
4 | +const SearchButtonWrapper = styled.div` | ||
5 | + display: flex; | ||
6 | + flex-direction: row; | ||
7 | + justify-content: space-between; | ||
8 | +`; | ||
9 | + | ||
10 | +const SearchInput = styled.input` | ||
11 | + width: 80%; | ||
12 | +`; | ||
13 | + | ||
14 | +const ApplyButton = styled.div` | ||
15 | + width: 17%; | ||
16 | + background-color: #e7e7e7; | ||
17 | + border-radius: 4px; | ||
18 | + color: #565656; | ||
19 | + text-align: center; | ||
20 | + | ||
21 | + display: flex; | ||
22 | + justify-content: center; | ||
23 | + align-items: center; | ||
24 | + | ||
25 | + &:hover { | ||
26 | + background-color: #565656; | ||
27 | + color: white; | ||
28 | + cursor: pointer; | ||
29 | +`; | ||
30 | + | ||
31 | + | ||
32 | + | ||
33 | +const SearchButton = () => { | ||
34 | + return ( | ||
35 | + <SearchButtonWrapper> | ||
36 | + <SearchInput type="text" className="form-control" placeholder={"킥보드 번호로 검색하기"}/> | ||
37 | + <ApplyButton><span>검색</span></ApplyButton> | ||
38 | + </SearchButtonWrapper> | ||
39 | + ); | ||
40 | +}; | ||
41 | + | ||
42 | +export default SearchButton; | ||
43 | + | ||
44 | + |
... | @@ -268,12 +268,12 @@ var style = { | ... | @@ -268,12 +268,12 @@ var style = { |
268 | // | 268 | // |
269 | const thArray = ["ID", "Name", "Salary", "Country", "City"]; | 269 | const thArray = ["ID", "Name", "Salary", "Country", "City"]; |
270 | const tdArray = [ | 270 | const tdArray = [ |
271 | - ["1", "Dakota Rice", "$36,738", "Niger", "Oud-Turnhout"], | 271 | + ["1", "Dakota Rice", "$36,738", "Niger", "Oud-Turnhout", '1'], |
272 | - ["2", "Minerva Hooper", "$23,789", "Curaçao", "Sinaai-Waas"], | 272 | + ["2", "Minerva Hooper", "$23,789", "Curaçao", "Sinaai-Waas", '1'], |
273 | - ["3", "Sage Rodriguez", "$56,142", "Netherlands", "Baileux"], | 273 | + ["3", "Sage Rodriguez", "$56,142", "Netherlands", "Baileux", '1'], |
274 | - ["4", "Philip Chaney", "$38,735", "Korea, South", "Overland Park"], | 274 | + ["4", "Philip Chaney", "$38,735", "Korea, South", "Overland Park", '1'], |
275 | - ["5", "Doris Greene", "$63,542", "Malawi", "Feldkirchen in Kärnten"], | 275 | + ["5", "Doris Greene", "$63,542", "Malawi", "Feldkirchen in Kärnten", '1'], |
276 | - ["6", "Mason Porter", "$78,615", "Chile", "Gloucester"] | 276 | + ["6", "Mason Porter", "$78,615", "Chile", "Gloucester", '1'] |
277 | ]; | 277 | ]; |
278 | 278 | ||
279 | // | 279 | // | ... | ... |
1 | import React from "react"; | 1 | import React from "react"; |
2 | -import ChartistGraph from "react-chartist"; | 2 | +import {Grid, Row, Col} from "react-bootstrap"; |
3 | -import {Grid, Row, Col, Table} from "react-bootstrap"; | 3 | + |
4 | -import { Card } from "components/Card/Card.jsx"; | 4 | +import GoogleMapCard from '../components/Kickboard/GoogleMapCard'; |
5 | -import { Tasks } from "components/Tasks/Tasks.jsx"; | 5 | +import KickboardStatusCard from '../components/Kickboard/KickboardStatusCard'; |
6 | -import { | 6 | +import KickboardHistoryTable from '../components/Kickboard/KickboardHistoryTable'; |
7 | - dataBar, | 7 | +import SearchButton from '../components/Kickboard/SearchButton'; |
8 | - optionsBar, | ||
9 | - responsiveBar, | ||
10 | -} from "variables/Variables.jsx"; | ||
11 | -import { thArray, tdArray } from "variables/Variables.jsx"; | ||
12 | 8 | ||
13 | const Kickboard = () => { | 9 | const Kickboard = () => { |
10 | + // 여기 API 요청 | ||
14 | return ( | 11 | return ( |
15 | <div className="content"> | 12 | <div className="content"> |
16 | <Grid fluid> | 13 | <Grid fluid> |
17 | <Row> | 14 | <Row> |
18 | - <Col md={3} mdOffset={9} sm={3} smOffset={9} style={{marginBottom:15}}> | 15 | + <Col md={4} mdOffset={8} sm={3} smOffset={9} style={{marginBottom:15}}> |
19 | - <input type="text" className="form-control" placeholder={"킥보드 번호로 검색하기"}/> | 16 | + <SearchButton/> |
20 | </Col> | 17 | </Col> |
21 | </Row> | 18 | </Row> |
22 | <Row> | 19 | <Row> |
23 | <Col md={6}> | 20 | <Col md={6}> |
24 | - <Card | 21 | + <GoogleMapCard/> |
25 | - id="chartActivity" | ||
26 | - title="2014 Sales" | ||
27 | - category="All products including Taxes" | ||
28 | - stats="마지막 업데이트 2020/04/20 17:23" | ||
29 | - statsIcon="fa fa-check" | ||
30 | - content={ | ||
31 | - <div className="ct-chart"> | ||
32 | - <ChartistGraph | ||
33 | - data={dataBar} | ||
34 | - type="Bar" | ||
35 | - options={optionsBar} | ||
36 | - responsiveOptions={responsiveBar} | ||
37 | - /> | ||
38 | - </div> | ||
39 | - } | ||
40 | - /> | ||
41 | </Col> | 22 | </Col> |
42 | <Col md={6}> | 23 | <Col md={6}> |
43 | - <Card | 24 | + <KickboardStatusCard/> |
44 | - title="Tasks" | ||
45 | - category="Backend development" | ||
46 | - stats="Updated 3 minutes ago" | ||
47 | - statsIcon="fa fa-history" | ||
48 | - content={ | ||
49 | - <div className="table-full-width"> | ||
50 | - <table className="table"> | ||
51 | - <Tasks /> | ||
52 | - </table> | ||
53 | - </div> | ||
54 | - } | ||
55 | - /> | ||
56 | </Col> | 25 | </Col> |
57 | </Row> | 26 | </Row> |
58 | <Row> | 27 | <Row> |
59 | <Col md={12}> | 28 | <Col md={12}> |
60 | - <Card | 29 | + <KickboardHistoryTable/> |
61 | - title="Striped Table with Hover" | ||
62 | - category="Here is a subtitle for this table" | ||
63 | - ctTableFullWidth | ||
64 | - ctTableResponsive | ||
65 | - content={ | ||
66 | - <Table striped> | ||
67 | - <thead> | ||
68 | - <tr> | ||
69 | - {thArray.map((prop, key) => { | ||
70 | - return <th key={key}>{prop}</th>; | ||
71 | - })} | ||
72 | - </tr> | ||
73 | - </thead> | ||
74 | - <tbody> | ||
75 | - {tdArray.map((prop, key) => { | ||
76 | - return ( | ||
77 | - <tr key={key}> | ||
78 | - {prop.map((prop, key) => { | ||
79 | - return <td key={key}>{prop}</td>; | ||
80 | - })} | ||
81 | - </tr> | ||
82 | - ); | ||
83 | - })} | ||
84 | - </tbody> | ||
85 | - </Table> | ||
86 | - } | ||
87 | - /> | ||
88 | </Col> | 30 | </Col> |
89 | </Row> | 31 | </Row> |
90 | </Grid> | 32 | </Grid> | ... | ... |
... | @@ -21,6 +21,11 @@ import { Grid, Row, Col, Alert } from "react-bootstrap"; | ... | @@ -21,6 +21,11 @@ import { Grid, Row, Col, Alert } from "react-bootstrap"; |
21 | import Button from "components/CustomButton/CustomButton.jsx"; | 21 | import Button from "components/CustomButton/CustomButton.jsx"; |
22 | 22 | ||
23 | class Notifications extends Component { | 23 | class Notifications extends Component { |
24 | + constructor(props) { | ||
25 | + super(props); | ||
26 | + console.log(this.props); | ||
27 | + } | ||
28 | + | ||
24 | render() { | 29 | render() { |
25 | return ( | 30 | return ( |
26 | <div className="content"> | 31 | <div className="content"> | ... | ... |
package-lock.json
0 → 100644
1 | +{ | ||
2 | + "requires": true, | ||
3 | + "lockfileVersion": 1, | ||
4 | + "dependencies": { | ||
5 | + "@babel/code-frame": { | ||
6 | + "version": "7.8.3", | ||
7 | + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", | ||
8 | + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", | ||
9 | + "requires": { | ||
10 | + "@babel/highlight": "^7.8.3" | ||
11 | + } | ||
12 | + }, | ||
13 | + "@babel/generator": { | ||
14 | + "version": "7.9.6", | ||
15 | + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", | ||
16 | + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", | ||
17 | + "requires": { | ||
18 | + "@babel/types": "^7.9.6", | ||
19 | + "jsesc": "^2.5.1", | ||
20 | + "lodash": "^4.17.13", | ||
21 | + "source-map": "^0.5.0" | ||
22 | + } | ||
23 | + }, | ||
24 | + "@babel/helper-annotate-as-pure": { | ||
25 | + "version": "7.8.3", | ||
26 | + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", | ||
27 | + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", | ||
28 | + "requires": { | ||
29 | + "@babel/types": "^7.8.3" | ||
30 | + } | ||
31 | + }, | ||
32 | + "@babel/helper-function-name": { | ||
33 | + "version": "7.9.5", | ||
34 | + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", | ||
35 | + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", | ||
36 | + "requires": { | ||
37 | + "@babel/helper-get-function-arity": "^7.8.3", | ||
38 | + "@babel/template": "^7.8.3", | ||
39 | + "@babel/types": "^7.9.5" | ||
40 | + } | ||
41 | + }, | ||
42 | + "@babel/helper-get-function-arity": { | ||
43 | + "version": "7.8.3", | ||
44 | + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", | ||
45 | + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", | ||
46 | + "requires": { | ||
47 | + "@babel/types": "^7.8.3" | ||
48 | + } | ||
49 | + }, | ||
50 | + "@babel/helper-module-imports": { | ||
51 | + "version": "7.8.3", | ||
52 | + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", | ||
53 | + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", | ||
54 | + "requires": { | ||
55 | + "@babel/types": "^7.8.3" | ||
56 | + } | ||
57 | + }, | ||
58 | + "@babel/helper-split-export-declaration": { | ||
59 | + "version": "7.8.3", | ||
60 | + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", | ||
61 | + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", | ||
62 | + "requires": { | ||
63 | + "@babel/types": "^7.8.3" | ||
64 | + } | ||
65 | + }, | ||
66 | + "@babel/helper-validator-identifier": { | ||
67 | + "version": "7.9.5", | ||
68 | + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", | ||
69 | + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==" | ||
70 | + }, | ||
71 | + "@babel/highlight": { | ||
72 | + "version": "7.9.0", | ||
73 | + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", | ||
74 | + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", | ||
75 | + "requires": { | ||
76 | + "@babel/helper-validator-identifier": "^7.9.0", | ||
77 | + "chalk": "^2.0.0", | ||
78 | + "js-tokens": "^4.0.0" | ||
79 | + } | ||
80 | + }, | ||
81 | + "@babel/parser": { | ||
82 | + "version": "7.9.6", | ||
83 | + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", | ||
84 | + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==" | ||
85 | + }, | ||
86 | + "@babel/template": { | ||
87 | + "version": "7.8.6", | ||
88 | + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", | ||
89 | + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", | ||
90 | + "requires": { | ||
91 | + "@babel/code-frame": "^7.8.3", | ||
92 | + "@babel/parser": "^7.8.6", | ||
93 | + "@babel/types": "^7.8.6" | ||
94 | + } | ||
95 | + }, | ||
96 | + "@babel/traverse": { | ||
97 | + "version": "7.9.6", | ||
98 | + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", | ||
99 | + "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", | ||
100 | + "requires": { | ||
101 | + "@babel/code-frame": "^7.8.3", | ||
102 | + "@babel/generator": "^7.9.6", | ||
103 | + "@babel/helper-function-name": "^7.9.5", | ||
104 | + "@babel/helper-split-export-declaration": "^7.8.3", | ||
105 | + "@babel/parser": "^7.9.6", | ||
106 | + "@babel/types": "^7.9.6", | ||
107 | + "debug": "^4.1.0", | ||
108 | + "globals": "^11.1.0", | ||
109 | + "lodash": "^4.17.13" | ||
110 | + } | ||
111 | + }, | ||
112 | + "@babel/types": { | ||
113 | + "version": "7.9.6", | ||
114 | + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", | ||
115 | + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", | ||
116 | + "requires": { | ||
117 | + "@babel/helper-validator-identifier": "^7.9.5", | ||
118 | + "lodash": "^4.17.13", | ||
119 | + "to-fast-properties": "^2.0.0" | ||
120 | + } | ||
121 | + }, | ||
122 | + "@emotion/is-prop-valid": { | ||
123 | + "version": "0.8.8", | ||
124 | + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", | ||
125 | + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", | ||
126 | + "requires": { | ||
127 | + "@emotion/memoize": "0.7.4" | ||
128 | + } | ||
129 | + }, | ||
130 | + "@emotion/memoize": { | ||
131 | + "version": "0.7.4", | ||
132 | + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", | ||
133 | + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" | ||
134 | + }, | ||
135 | + "@emotion/stylis": { | ||
136 | + "version": "0.8.5", | ||
137 | + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", | ||
138 | + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" | ||
139 | + }, | ||
140 | + "@emotion/unitless": { | ||
141 | + "version": "0.7.5", | ||
142 | + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", | ||
143 | + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" | ||
144 | + }, | ||
145 | + "ansi-styles": { | ||
146 | + "version": "3.2.1", | ||
147 | + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", | ||
148 | + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", | ||
149 | + "requires": { | ||
150 | + "color-convert": "^1.9.0" | ||
151 | + } | ||
152 | + }, | ||
153 | + "babel-plugin-styled-components": { | ||
154 | + "version": "1.10.7", | ||
155 | + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.7.tgz", | ||
156 | + "integrity": "sha512-MBMHGcIA22996n9hZRf/UJLVVgkEOITuR2SvjHLb5dSTUyR4ZRGn+ngITapes36FI3WLxZHfRhkA1ffHxihOrg==", | ||
157 | + "requires": { | ||
158 | + "@babel/helper-annotate-as-pure": "^7.0.0", | ||
159 | + "@babel/helper-module-imports": "^7.0.0", | ||
160 | + "babel-plugin-syntax-jsx": "^6.18.0", | ||
161 | + "lodash": "^4.17.11" | ||
162 | + } | ||
163 | + }, | ||
164 | + "babel-plugin-syntax-jsx": { | ||
165 | + "version": "6.18.0", | ||
166 | + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", | ||
167 | + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" | ||
168 | + }, | ||
169 | + "camelize": { | ||
170 | + "version": "1.0.0", | ||
171 | + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", | ||
172 | + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" | ||
173 | + }, | ||
174 | + "chalk": { | ||
175 | + "version": "2.4.2", | ||
176 | + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", | ||
177 | + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", | ||
178 | + "requires": { | ||
179 | + "ansi-styles": "^3.2.1", | ||
180 | + "escape-string-regexp": "^1.0.5", | ||
181 | + "supports-color": "^5.3.0" | ||
182 | + } | ||
183 | + }, | ||
184 | + "color-convert": { | ||
185 | + "version": "1.9.3", | ||
186 | + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", | ||
187 | + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", | ||
188 | + "requires": { | ||
189 | + "color-name": "1.1.3" | ||
190 | + } | ||
191 | + }, | ||
192 | + "color-name": { | ||
193 | + "version": "1.1.3", | ||
194 | + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", | ||
195 | + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" | ||
196 | + }, | ||
197 | + "css-color-keywords": { | ||
198 | + "version": "1.0.0", | ||
199 | + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", | ||
200 | + "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" | ||
201 | + }, | ||
202 | + "css-to-react-native": { | ||
203 | + "version": "3.0.0", | ||
204 | + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", | ||
205 | + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", | ||
206 | + "requires": { | ||
207 | + "camelize": "^1.0.0", | ||
208 | + "css-color-keywords": "^1.0.0", | ||
209 | + "postcss-value-parser": "^4.0.2" | ||
210 | + } | ||
211 | + }, | ||
212 | + "debug": { | ||
213 | + "version": "4.1.1", | ||
214 | + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", | ||
215 | + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", | ||
216 | + "requires": { | ||
217 | + "ms": "^2.1.1" | ||
218 | + } | ||
219 | + }, | ||
220 | + "escape-string-regexp": { | ||
221 | + "version": "1.0.5", | ||
222 | + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", | ||
223 | + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" | ||
224 | + }, | ||
225 | + "globals": { | ||
226 | + "version": "11.12.0", | ||
227 | + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", | ||
228 | + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" | ||
229 | + }, | ||
230 | + "has-flag": { | ||
231 | + "version": "3.0.0", | ||
232 | + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", | ||
233 | + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" | ||
234 | + }, | ||
235 | + "hoist-non-react-statics": { | ||
236 | + "version": "3.3.2", | ||
237 | + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", | ||
238 | + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", | ||
239 | + "requires": { | ||
240 | + "react-is": "^16.7.0" | ||
241 | + } | ||
242 | + }, | ||
243 | + "js-tokens": { | ||
244 | + "version": "4.0.0", | ||
245 | + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", | ||
246 | + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" | ||
247 | + }, | ||
248 | + "jsesc": { | ||
249 | + "version": "2.5.2", | ||
250 | + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", | ||
251 | + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" | ||
252 | + }, | ||
253 | + "lodash": { | ||
254 | + "version": "4.17.15", | ||
255 | + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", | ||
256 | + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" | ||
257 | + }, | ||
258 | + "ms": { | ||
259 | + "version": "2.1.2", | ||
260 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||
261 | + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||
262 | + }, | ||
263 | + "postcss-value-parser": { | ||
264 | + "version": "4.1.0", | ||
265 | + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", | ||
266 | + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" | ||
267 | + }, | ||
268 | + "react-is": { | ||
269 | + "version": "16.13.1", | ||
270 | + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", | ||
271 | + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" | ||
272 | + }, | ||
273 | + "react-moment": { | ||
274 | + "version": "0.9.7", | ||
275 | + "resolved": "https://registry.npmjs.org/react-moment/-/react-moment-0.9.7.tgz", | ||
276 | + "integrity": "sha512-ifzUrUGF6KRsUN2pRG5k56kO0mJBr8kRkWb0wNvtFIsBIxOuPxhUpL1YlXwpbQCbHq23hUu6A0VEk64HsFxk9g==", | ||
277 | + "dev": true | ||
278 | + }, | ||
279 | + "shallowequal": { | ||
280 | + "version": "1.1.0", | ||
281 | + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", | ||
282 | + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" | ||
283 | + }, | ||
284 | + "source-map": { | ||
285 | + "version": "0.5.7", | ||
286 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | ||
287 | + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" | ||
288 | + }, | ||
289 | + "styled-components": { | ||
290 | + "version": "5.1.0", | ||
291 | + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.1.0.tgz", | ||
292 | + "integrity": "sha512-0Qs2wEkFBXHFlysz6CV831VG6HedcrFUwChjnWylNivsx14MtmqQsohi21rMHZxzuTba063dEyoe/SR6VGJI7Q==", | ||
293 | + "requires": { | ||
294 | + "@babel/helper-module-imports": "^7.0.0", | ||
295 | + "@babel/traverse": "^7.4.5", | ||
296 | + "@emotion/is-prop-valid": "^0.8.8", | ||
297 | + "@emotion/stylis": "^0.8.4", | ||
298 | + "@emotion/unitless": "^0.7.4", | ||
299 | + "babel-plugin-styled-components": ">= 1", | ||
300 | + "css-to-react-native": "^3.0.0", | ||
301 | + "hoist-non-react-statics": "^3.0.0", | ||
302 | + "shallowequal": "^1.1.0", | ||
303 | + "supports-color": "^5.5.0" | ||
304 | + } | ||
305 | + }, | ||
306 | + "supports-color": { | ||
307 | + "version": "5.5.0", | ||
308 | + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", | ||
309 | + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", | ||
310 | + "requires": { | ||
311 | + "has-flag": "^3.0.0" | ||
312 | + } | ||
313 | + }, | ||
314 | + "to-fast-properties": { | ||
315 | + "version": "2.0.0", | ||
316 | + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", | ||
317 | + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" | ||
318 | + } | ||
319 | + } | ||
320 | +} |
-
Please register or login to post a comment