diff --git a/android/app/src/main/assets/fonts/SF-Pro-Rounded-Black.otf b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Black.otf new file mode 100644 index 00000000000..4a5b7f87db9 Binary files /dev/null and b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Black.otf differ diff --git a/android/app/src/main/assets/fonts/SF-Pro-Rounded-Bold.otf b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Bold.otf new file mode 100644 index 00000000000..d430eeee825 Binary files /dev/null and b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Bold.otf differ diff --git a/android/app/src/main/assets/fonts/SF-Pro-Rounded-Heavy.otf b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Heavy.otf new file mode 100644 index 00000000000..01d360c50ab Binary files /dev/null and b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Heavy.otf differ diff --git a/android/app/src/main/assets/fonts/SF-Pro-Rounded-Light.otf b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Light.otf new file mode 100644 index 00000000000..6a587bfb905 Binary files /dev/null and b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Light.otf differ diff --git a/android/app/src/main/assets/fonts/SF-Pro-Rounded-Medium.otf b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Medium.otf new file mode 100644 index 00000000000..649fe53c45c Binary files /dev/null and b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Medium.otf differ diff --git a/android/app/src/main/assets/fonts/SF-Pro-Rounded-Regular.otf b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Regular.otf new file mode 100644 index 00000000000..b0014e301c0 Binary files /dev/null and b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Regular.otf differ diff --git a/android/app/src/main/assets/fonts/SF-Pro-Rounded-Semibold.otf b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Semibold.otf new file mode 100644 index 00000000000..2c0a596acc9 Binary files /dev/null and b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Semibold.otf differ diff --git a/android/app/src/main/assets/fonts/SF-Pro-Rounded-Thin.otf b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Thin.otf new file mode 100644 index 00000000000..802413aefb7 Binary files /dev/null and b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Thin.otf differ diff --git a/android/app/src/main/assets/fonts/SF-Pro-Rounded-Ultralight.otf b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Ultralight.otf new file mode 100644 index 00000000000..730742c0301 Binary files /dev/null and b/android/app/src/main/assets/fonts/SF-Pro-Rounded-Ultralight.otf differ diff --git a/android/app/src/main/debug/res/values/strings.xml b/android/app/src/main/debug/res/values/strings.xml index 92ec981ac2d..e5011b8688a 100644 --- a/android/app/src/main/debug/res/values/strings.xml +++ b/android/app/src/main/debug/res/values/strings.xml @@ -1,4 +1,3 @@ - deployment-key-here Rainbow Debug diff --git a/ios/Podfile.lock b/ios/Podfile.lock index e2aca8d83a1..89023b90245 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -421,7 +421,7 @@ PODS: - Sentry (~> 4.4.0) - RNStoreReview (0.1.5): - React - - RNSVG (11.0.1): + - RNSVG (11.0.0): - React - SDWebImage (5.4.1): - SDWebImage/Core (= 5.4.1) @@ -745,14 +745,14 @@ SPEC CHECKSUMS: RNScreens: 031d10e2b648afc9546f16b6a786d2efc6870310 RNSentry: 9cfa3717b1e6bf9ad4b124683e78e3b98b01d3af RNStoreReview: 62d6afd7c37db711a594bbffca6b0ea3a812b7a8 - RNSVG: 67f1f12dae2cef6ed59a42cae74a6b8f5a9e7b46 + RNSVG: 82d44baa568873faae1a9929dd30d29db8f06732 SDWebImage: 29c340dbdcef342bb13125553f4e19ce056b07a7 SDWebImageWebPCoder: 947093edd1349d820c40afbd9f42acb6cdecd987 Sentry: 14bdd673870e8cf64932b149fad5bbbf39a9b390 SRSRadialGradient: 8fdf3adb76320500bc792390ecebc1b82aac54ec SSZipArchive: fa16b8cc4cdeceb698e5e5d9f67e9558532fbf23 TcpSockets: 14306fb79f9750ea7d2ddd02d8bed182abb01797 - ToolTipMenu: 8ac61aded0fbc4acfe7e84a7d0c9479d15a9a382 + ToolTipMenu: ad9f45c5ef375418275c81a667c2805bcac8692a Yoga: b9a1f7189009fa4b6266ee0a63235547326295d2 PODFILE CHECKSUM: 4e11b438fd6bb2763be24d82eeafc6f69c49a2f4 diff --git a/ios/Rainbow.xcodeproj/project.pbxproj b/ios/Rainbow.xcodeproj/project.pbxproj index 0151cec693e..6691c9655f6 100644 --- a/ios/Rainbow.xcodeproj/project.pbxproj +++ b/ios/Rainbow.xcodeproj/project.pbxproj @@ -84,6 +84,15 @@ F9EB9219ED9A4C72826A5908 /* Graphik-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = A6EEFE6EA9354456B0DB4520 /* Graphik-Regular.otf */; }; F9EF1D44351840B8A380BD3E /* SF-Pro-Display-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = BA31E8CEDBCC417CA50BC57B /* SF-Pro-Display-Bold.otf */; }; FBDF4EF177284CF4826D7BF9 /* SF-Pro-Display-HeavyItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = D7BFD847B72D414D9BE734A0 /* SF-Pro-Display-HeavyItalic.otf */; }; + 041ED9A91C634D62B70DD2A0 /* SF-Pro-Rounded-Black.otf in Resources */ = {isa = PBXBuildFile; fileRef = B809485D25CC4982B166E287 /* SF-Pro-Rounded-Black.otf */; }; + 830AB06937A24F36A5A233E4 /* SF-Pro-Rounded-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 12778C645D644BCC8744A30F /* SF-Pro-Rounded-Bold.otf */; }; + 5F1FC886FDBF4E50875905D8 /* SF-Pro-Rounded-Heavy.otf in Resources */ = {isa = PBXBuildFile; fileRef = 6B6183D1BB01462A8EC6971D /* SF-Pro-Rounded-Heavy.otf */; }; + 788C192F52404F80BC99C83E /* SF-Pro-Rounded-Light.otf in Resources */ = {isa = PBXBuildFile; fileRef = CC103294F38D49DEBB00C234 /* SF-Pro-Rounded-Light.otf */; }; + 45537F942F2B45A2AE0F6E97 /* SF-Pro-Rounded-Medium.otf in Resources */ = {isa = PBXBuildFile; fileRef = C71A958627CB4BF6B7085E7B /* SF-Pro-Rounded-Medium.otf */; }; + 888BD587381C4F859E34255C /* SF-Pro-Rounded-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 6F593D06488648D6B4082A13 /* SF-Pro-Rounded-Regular.otf */; }; + 9DF9D782A0E8467FAA079A68 /* SF-Pro-Rounded-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = C2BA36ED122C4932A09957E5 /* SF-Pro-Rounded-Semibold.otf */; }; + EEDAF090F37B4DD9905C3AA1 /* SF-Pro-Rounded-Thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2508987EAA5746B799931646 /* SF-Pro-Rounded-Thin.otf */; }; + 7DE5483C7F3043379686F961 /* SF-Pro-Rounded-Ultralight.otf in Resources */ = {isa = PBXBuildFile; fileRef = E10B4784EF2A4C569A43746A /* SF-Pro-Rounded-Ultralight.otf */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -205,6 +214,15 @@ ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; F62BBE10D6534F74B2180711 /* SF-Pro-Text-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "SF-Pro-Text-Bold.otf"; path = "../src/assets/fonts/SF-Pro-Text-Bold.otf"; sourceTree = ""; }; FA887652F27F43869229AD50 /* SF-Pro-Text-SemiboldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "SF-Pro-Text-SemiboldItalic.otf"; path = "../src/assets/fonts/SF-Pro-Text-SemiboldItalic.otf"; sourceTree = ""; }; + B809485D25CC4982B166E287 /* SF-Pro-Rounded-Black.otf */ = {isa = PBXFileReference; name = "SF-Pro-Rounded-Black.otf"; path = "../src/assets/fonts/SF-Pro-Rounded-Black.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 12778C645D644BCC8744A30F /* SF-Pro-Rounded-Bold.otf */ = {isa = PBXFileReference; name = "SF-Pro-Rounded-Bold.otf"; path = "../src/assets/fonts/SF-Pro-Rounded-Bold.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 6B6183D1BB01462A8EC6971D /* SF-Pro-Rounded-Heavy.otf */ = {isa = PBXFileReference; name = "SF-Pro-Rounded-Heavy.otf"; path = "../src/assets/fonts/SF-Pro-Rounded-Heavy.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + CC103294F38D49DEBB00C234 /* SF-Pro-Rounded-Light.otf */ = {isa = PBXFileReference; name = "SF-Pro-Rounded-Light.otf"; path = "../src/assets/fonts/SF-Pro-Rounded-Light.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + C71A958627CB4BF6B7085E7B /* SF-Pro-Rounded-Medium.otf */ = {isa = PBXFileReference; name = "SF-Pro-Rounded-Medium.otf"; path = "../src/assets/fonts/SF-Pro-Rounded-Medium.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 6F593D06488648D6B4082A13 /* SF-Pro-Rounded-Regular.otf */ = {isa = PBXFileReference; name = "SF-Pro-Rounded-Regular.otf"; path = "../src/assets/fonts/SF-Pro-Rounded-Regular.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + C2BA36ED122C4932A09957E5 /* SF-Pro-Rounded-Semibold.otf */ = {isa = PBXFileReference; name = "SF-Pro-Rounded-Semibold.otf"; path = "../src/assets/fonts/SF-Pro-Rounded-Semibold.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + 2508987EAA5746B799931646 /* SF-Pro-Rounded-Thin.otf */ = {isa = PBXFileReference; name = "SF-Pro-Rounded-Thin.otf"; path = "../src/assets/fonts/SF-Pro-Rounded-Thin.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; + E10B4784EF2A4C569A43746A /* SF-Pro-Rounded-Ultralight.otf */ = {isa = PBXFileReference; name = "SF-Pro-Rounded-Ultralight.otf"; path = "../src/assets/fonts/SF-Pro-Rounded-Ultralight.otf"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = unknown; explicitFileType = undefined; includeInIndex = 0; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -432,6 +450,15 @@ 668A9E253DAF444A90ECB997 /* SFMono-Medium.otf */, 95F2888C850F40C8A26E083B /* SFMono-Regular.otf */, B1089F835D6A4F578009B47F /* SFMono-Semibold.otf */, + B809485D25CC4982B166E287 /* SF-Pro-Rounded-Black.otf */, + 12778C645D644BCC8744A30F /* SF-Pro-Rounded-Bold.otf */, + 6B6183D1BB01462A8EC6971D /* SF-Pro-Rounded-Heavy.otf */, + CC103294F38D49DEBB00C234 /* SF-Pro-Rounded-Light.otf */, + C71A958627CB4BF6B7085E7B /* SF-Pro-Rounded-Medium.otf */, + 6F593D06488648D6B4082A13 /* SF-Pro-Rounded-Regular.otf */, + C2BA36ED122C4932A09957E5 /* SF-Pro-Rounded-Semibold.otf */, + 2508987EAA5746B799931646 /* SF-Pro-Rounded-Thin.otf */, + E10B4784EF2A4C569A43746A /* SF-Pro-Rounded-Ultralight.otf */, ); name = Resources; sourceTree = ""; @@ -572,6 +599,15 @@ 7287CE1EC33B4913AEE1F4B6 /* SFMono-Medium.otf in Resources */, B7A3E82A4C4449F4A18EB5C2 /* SFMono-Regular.otf in Resources */, 92D7BFC8AFDA4E649EA6FF08 /* SFMono-Semibold.otf in Resources */, + 041ED9A91C634D62B70DD2A0 /* SF-Pro-Rounded-Black.otf in Resources */, + 830AB06937A24F36A5A233E4 /* SF-Pro-Rounded-Bold.otf in Resources */, + 5F1FC886FDBF4E50875905D8 /* SF-Pro-Rounded-Heavy.otf in Resources */, + 788C192F52404F80BC99C83E /* SF-Pro-Rounded-Light.otf in Resources */, + 45537F942F2B45A2AE0F6E97 /* SF-Pro-Rounded-Medium.otf in Resources */, + 888BD587381C4F859E34255C /* SF-Pro-Rounded-Regular.otf in Resources */, + 9DF9D782A0E8467FAA079A68 /* SF-Pro-Rounded-Semibold.otf in Resources */, + EEDAF090F37B4DD9905C3AA1 /* SF-Pro-Rounded-Thin.otf in Resources */, + 7DE5483C7F3043379686F961 /* SF-Pro-Rounded-Ultralight.otf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ios/Rainbow/AppDelegate.m b/ios/Rainbow/AppDelegate.m index a2f9d328e6e..172d907d606 100644 --- a/ios/Rainbow/AppDelegate.m +++ b/ios/Rainbow/AppDelegate.m @@ -7,7 +7,6 @@ @import Firebase; #import "AppDelegate.h" -#import #import #import #import @@ -46,7 +45,7 @@ - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge #if DEBUG return [NSURL URLWithString:[[[[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil] absoluteString] stringByAppendingString:@"&inlineSourceMap=true" ]]; #else - return [CodePush bundleURL]; + return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; #endif } diff --git a/ios/Rainbow/Info.plist b/ios/Rainbow/Info.plist index abc00b1dea4..5756d71e448 100644 --- a/ios/Rainbow/Info.plist +++ b/ios/Rainbow/Info.plist @@ -140,6 +140,15 @@ SFMono-Medium.otf SFMono-Regular.otf SFMono-Semibold.otf + SF-Pro-Rounded-Black.otf + SF-Pro-Rounded-Bold.otf + SF-Pro-Rounded-Heavy.otf + SF-Pro-Rounded-Light.otf + SF-Pro-Rounded-Medium.otf + SF-Pro-Rounded-Regular.otf + SF-Pro-Rounded-Semibold.otf + SF-Pro-Rounded-Thin.otf + SF-Pro-Rounded-Ultralight.otf UIBackgroundModes diff --git a/package.json b/package.json index 30bf4b748e0..bf6259c3468 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "react-native-splash-screen": "^3.2.0", "react-native-storage": "^1.0.1", "react-native-store-review": "^0.1.5", - "react-native-svg": "^11.0.1", + "react-native-svg": "11.0.0", "react-native-tab-view-viewpager-adapter": "^1.0.7", "react-native-tab-view": "^2.12.0", "react-native-tcp": "^3.3.2", diff --git a/src/App.js b/src/App.js index acfd66b6b78..5d57cefcfc9 100644 --- a/src/App.js +++ b/src/App.js @@ -1,4 +1,3 @@ -// eslint-disable-next-line import/default import PushNotificationIOS from '@react-native-community/push-notification-ios'; import analytics from '@segment/analytics-react-native'; import { init as initSentry, setRelease } from '@sentry/react-native'; diff --git a/src/assets/fonts/SF-Pro-Rounded-Black.otf b/src/assets/fonts/SF-Pro-Rounded-Black.otf new file mode 100644 index 00000000000..4a5b7f87db9 Binary files /dev/null and b/src/assets/fonts/SF-Pro-Rounded-Black.otf differ diff --git a/src/assets/fonts/SF-Pro-Rounded-Bold.otf b/src/assets/fonts/SF-Pro-Rounded-Bold.otf new file mode 100644 index 00000000000..d430eeee825 Binary files /dev/null and b/src/assets/fonts/SF-Pro-Rounded-Bold.otf differ diff --git a/src/assets/fonts/SF-Pro-Rounded-Heavy.otf b/src/assets/fonts/SF-Pro-Rounded-Heavy.otf new file mode 100644 index 00000000000..01d360c50ab Binary files /dev/null and b/src/assets/fonts/SF-Pro-Rounded-Heavy.otf differ diff --git a/src/assets/fonts/SF-Pro-Rounded-Light.otf b/src/assets/fonts/SF-Pro-Rounded-Light.otf new file mode 100644 index 00000000000..6a587bfb905 Binary files /dev/null and b/src/assets/fonts/SF-Pro-Rounded-Light.otf differ diff --git a/src/assets/fonts/SF-Pro-Rounded-Medium.otf b/src/assets/fonts/SF-Pro-Rounded-Medium.otf new file mode 100644 index 00000000000..649fe53c45c Binary files /dev/null and b/src/assets/fonts/SF-Pro-Rounded-Medium.otf differ diff --git a/src/assets/fonts/SF-Pro-Rounded-Regular.otf b/src/assets/fonts/SF-Pro-Rounded-Regular.otf new file mode 100644 index 00000000000..b0014e301c0 Binary files /dev/null and b/src/assets/fonts/SF-Pro-Rounded-Regular.otf differ diff --git a/src/assets/fonts/SF-Pro-Rounded-Semibold.otf b/src/assets/fonts/SF-Pro-Rounded-Semibold.otf new file mode 100644 index 00000000000..2c0a596acc9 Binary files /dev/null and b/src/assets/fonts/SF-Pro-Rounded-Semibold.otf differ diff --git a/src/assets/fonts/SF-Pro-Rounded-Thin.otf b/src/assets/fonts/SF-Pro-Rounded-Thin.otf new file mode 100644 index 00000000000..802413aefb7 Binary files /dev/null and b/src/assets/fonts/SF-Pro-Rounded-Thin.otf differ diff --git a/src/assets/fonts/SF-Pro-Rounded-Ultralight.otf b/src/assets/fonts/SF-Pro-Rounded-Ultralight.otf new file mode 100644 index 00000000000..730742c0301 Binary files /dev/null and b/src/assets/fonts/SF-Pro-Rounded-Ultralight.otf differ diff --git a/src/components/asset-list/RecyclerAssetList.js b/src/components/asset-list/RecyclerAssetList.js index 24c06214c1f..2a0c1646871 100644 --- a/src/components/asset-list/RecyclerAssetList.js +++ b/src/components/asset-list/RecyclerAssetList.js @@ -714,13 +714,13 @@ class RecyclerAssetList extends Component { } if ( - (contentSize.height - layoutMeasurement.height >= offsetY && + ((contentSize.height - layoutMeasurement.height >= offsetY && offsetY >= 0) || - (offsetY < reloadHeightOffsetTop && offsetY > reloadHeightOffsetBottom) + (offsetY < reloadHeightOffsetTop && + offsetY > reloadHeightOffsetBottom)) && + this.props.scrollViewTracker ) { - if (this.props.scrollViewTracker) { - this.props.scrollViewTracker.setValue(offsetY); - } + this.props.scrollViewTracker.setValue(offsetY); } }; diff --git a/src/components/expanded-state/ChartExpandedState.js b/src/components/expanded-state/ChartExpandedState.js index fdbc18d5443..bc8d0c561c6 100644 --- a/src/components/expanded-state/ChartExpandedState.js +++ b/src/components/expanded-state/ChartExpandedState.js @@ -12,7 +12,7 @@ import { import styled from 'styled-components/primitives'; import { withAccountData, withAccountSettings } from '../../hoc'; import { ethereumUtils, deviceUtils } from '../../utils'; -import ValueChart from '../value-chart/ValueChart'; +import Chart from '../value-chart/Chart'; import { BalanceCoinRow } from '../coin-row'; import BottomSendButtons from '../value-chart/BottomSendButtons'; import { colors } from '../../styles'; @@ -50,25 +50,24 @@ const Container = styled.View` align-items: center; `; -const TokenExpandedState = ({ - onPressSend, - onPressSwap, - change, - changeDirection, - selectedAsset, -}) => ( - - - - - - - - - - - -); +const TokenExpandedState = ({ onPressSend, onPressSwap, selectedAsset }) => { + return ( + + + + + + + + + + + + ); +}; TokenExpandedState.propTypes = { change: PropTypes.string, diff --git a/src/components/send/SendAssetList.js b/src/components/send/SendAssetList.js index b7cfbb93ceb..48c6b1b7750 100644 --- a/src/components/send/SendAssetList.js +++ b/src/components/send/SendAssetList.js @@ -206,9 +206,8 @@ class SendAssetList extends React.Component { return this.collectiblesRenderItem(data); } else if (type === 'COLLECTIBLE_ROW_CLOSED') { return this.collectiblesRenderItem(data); - } else { - return null; } + return null; } render() { diff --git a/src/components/value-chart/Chart.js b/src/components/value-chart/Chart.js new file mode 100644 index 00000000000..c89b019fd3d --- /dev/null +++ b/src/components/value-chart/Chart.js @@ -0,0 +1,100 @@ +import React, { useMemo, useState, useRef } from 'react'; +import ValueChart from './ValueChart'; +import ValueText from './ValueText'; +import { + // data1, + // data2, + // data3, + data4, + dataColored1, + dataColored2, + dataColored3, +} from './data'; +import TimespanSelector from './TimespanSelector'; +import { colors } from '../../styles'; + +const dataColored = [dataColored1, dataColored2, dataColored3]; +const dataSwitching = [ + dataColored, + [dataColored1, dataColored2], + [dataColored2, dataColored3], + [data4], +]; + +const colorsArray = [ + colors.red, + colors.grey, + colors.green, + colors.purple, + colors.red, + colors.green, + colors.red, + colors.purple, + colors.green, + colors.grey, + colors.green, + colors.purple, +]; + +let colorIndex = 0; + +export default function Chart() { + const textInputRef = useRef(null); + const data = useMemo(() => { + colorIndex = 0; + return dataSwitching.map((sectionsData, index) => { + return { + name: index, + segments: sectionsData.map((data, i) => { + return { + color: colorsArray[colorIndex++], + line: i * 5, + points: data.map(values => { + return { x: values.timestamp, y: values.value }; + }), + renderStartSeparator: + colorIndex % 2 !== 0 + ? { + fill: colorsArray[colorIndex], + r: 7, + stroke: 'white', + strokeWidth: colorIndex + 2, + } + : undefined, + }; + }), + }; + }); + }, []); + + const [currentChart, setCurrentChart] = useState(0); + const change = currentChart % 2 === 0 ? 20 : -20; // placeholder + + return ( + <> + 0} + change={change.toFixed(2)} + ref={textInputRef} + /> + { + textInputRef.current.updateValue(value); + }} + currentDataSource={currentChart} + amountOfPathPoints={100} // amount of points for switch between charts + data={data} + barColor={change > 0 ? colors.chartGreen : colors.red} + stroke={{ detailed: 1.5, simplified: 3 }} + /> + 0 ? colors.chartGreen : colors.red} + isLoading={false} + /> + + ); +} diff --git a/src/components/value-chart/GestureWrapper.js b/src/components/value-chart/GestureWrapper.js new file mode 100644 index 00000000000..2bb9f8dc028 --- /dev/null +++ b/src/components/value-chart/GestureWrapper.js @@ -0,0 +1,38 @@ +import PropTypes from 'prop-types'; +import React from 'react'; +import Animated from 'react-native-reanimated'; +import { + PanGestureHandler, + TapGestureHandler, +} from 'react-native-gesture-handler'; + +const TimestampText = ({ + children, + enabled, + onTapGestureEvent, + onPanGestureEvent, + onHandlerStateChange, +}) => + enabled ? ( + + + + {children} + + + + ) : ( + children + ); + +TimestampText.propTypes = { + children: PropTypes.string, +}; + +export default TimestampText; diff --git a/src/components/value-chart/TimespanSelector.js b/src/components/value-chart/TimespanSelector.js index 5a503443d02..2e74a7f5153 100644 --- a/src/components/value-chart/TimespanSelector.js +++ b/src/components/value-chart/TimespanSelector.js @@ -5,7 +5,6 @@ import Animated from 'react-native-reanimated'; import { deviceUtils } from '../../utils'; import { ButtonPressAnimation } from '../animations'; import ValueTime from './ValueTime'; -import { colors } from '../../styles'; const springConfig = { damping: 38, @@ -29,7 +28,7 @@ const bottomSpaceWidth = deviceUtils.dimensions.width / (4 * 2); class TimespanSelector extends React.Component { propTypes = { - direction: PropTypes.bool, + color: PropTypes.string, isLoading: PropTypes.bool, reloadChart: PropTypes.func, }; @@ -86,7 +85,7 @@ class TimespanSelector extends React.Component { render() { let color = 'gray'; if (!this.props.isLoading) { - color = this.props.direction ? colors.chartGreen : colors.red; + color = this.props.color; } return ( <> diff --git a/src/components/value-chart/TrendIndicatorText.js b/src/components/value-chart/TrendIndicatorText.js index 19d07136cac..3af4f95d236 100644 --- a/src/components/value-chart/TrendIndicatorText.js +++ b/src/components/value-chart/TrendIndicatorText.js @@ -24,8 +24,7 @@ const TrendIndicatorText = ({ children, direction }) => ( { - if (data.length > destinatedNumberOfPoints) { - let destMul = data.length / destinatedNumberOfPoints; - const maxValue = maxBy(data, 'value'); - const minValue = minBy(data, 'value'); +let allSegmentDividers = []; - const timestampMul = Math.floor( - (data[data.length - 1].timestamp - data[0].timestamp) / data.length +const simplifyChartData = (data, destinatedNumberOfPoints) => { + let allSegmentsPoints = []; + let colors = []; + let lines = []; + let dividers = []; + let lastPoints = []; + let createdLastPoints = []; + if (data.segments.length > 0) { + for (let i = 0; i < data.segments.length; i++) { + allSegmentsPoints = allSegmentsPoints.concat(data.segments[i].points); + allSegmentsPoints[allSegmentsPoints.length - 1] = { + ...allSegmentsPoints[allSegmentsPoints.length - 1], + lastPoint: true, + }; + lastPoints.push(allSegmentsPoints.length - 1); + colors.push(data.segments[i].color); + lines.push(data.segments[i].line); + dividers.push(data.segments[i].renderStartSeparator); + } + } + if (allSegmentsPoints.length > destinatedNumberOfPoints) { + let destMul = allSegmentsPoints.length / destinatedNumberOfPoints; + const maxValue = maxBy(allSegmentsPoints, 'y'); + const minValue = minBy(allSegmentsPoints, 'y'); + + const xMul = Math.floor( + (allSegmentsPoints[allSegmentsPoints.length - 1].x - + allSegmentsPoints[0].x) / + allSegmentsPoints.length ); let newData = []; newData.push({ - timestamp: data[0].timestamp - timestampMul * 10, - value: data[0].value, + x: allSegmentsPoints[0].x - xMul * 10, + y: allSegmentsPoints[0].y, }); newData.push({ - timestamp: data[0].timestamp, - value: data[0].value, + x: allSegmentsPoints[0].x, + y: allSegmentsPoints[0].y, }); for (let i = 2; i < destinatedNumberOfPoints - 2; i++) { const indexPlace = i * destMul; const r = indexPlace % 1; const f = Math.floor(indexPlace); - const firstValue = data[f].value * r; - const secondValue = data[f + 1].value * (1 - r); + const firstValue = allSegmentsPoints[f].y * r; + const secondValue = allSegmentsPoints[f + 1].y * (1 - r); let finalValue; if (firstValue === maxValue) { @@ -78,32 +95,49 @@ const simplifyChartData = (data, destinatedNumberOfPoints) => { } else { finalValue = firstValue + secondValue; } + if (i * destMul > lastPoints[createdLastPoints.length]) { + createdLastPoints.push(newData.length); + } newData.push({ - timestamp: data[0].timestamp + i * timestampMul, - value: finalValue, + x: allSegmentsPoints[0].x + i * xMul, + y: finalValue, }); } newData.push({ - timestamp: data[0].timestamp + destinatedNumberOfPoints * timestampMul, - value: data[data.length - 1].value, + x: allSegmentsPoints[0].x + destinatedNumberOfPoints * xMul, + y: allSegmentsPoints[allSegmentsPoints.length - 1].y, }); newData.push({ - timestamp: - data[0].timestamp + - destinatedNumberOfPoints * timestampMul + - timestampMul * 10, - value: data[data.length - 1].value, + x: allSegmentsPoints[0].x + destinatedNumberOfPoints * xMul + xMul * 10, + y: allSegmentsPoints[allSegmentsPoints.length - 1].y, }); - return newData; + + allSegmentDividers = allSegmentDividers.concat(createdLastPoints); + + let data = { + allPointsForData: allSegmentsPoints, + colors, + lastPoints: createdLastPoints, + lines, + points: newData, + startSeparatator: dividers, + }; + + return data; } }; -const usableData = [ - simplifyChartData(data1, amountOfPathPoints), - simplifyChartData(data4, amountOfPathPoints), - simplifyChartData(data3, amountOfPathPoints), - simplifyChartData(data2, amountOfPathPoints), -]; +const hexToRgb = hex => { + // result contain table of [r, g, b] from given hex string + let result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); + return result + ? [ + parseInt(result[1], 16), + parseInt(result[2], 16), + parseInt(result[3], 16), + ] + : null; +}; const { BEGAN, ACTIVE, CANCELLED, END, FAILED, UNDETERMINED } = State; @@ -111,9 +145,6 @@ const width = deviceUtils.dimensions.width; const height = 170; const chartPadding = 16; -const strokeWidth = 1.5; -const thickStrokeWidthDifference = 1.5; - const flipY = { transform: [{ scaleX: 1 }, { scaleY: -1 }] }; const indexInterval = 10; @@ -144,15 +175,38 @@ const pickImportantPoints = array => { return { xs, ys }; }; -export default class ValueChart extends PureComponent { +export default class Chart extends PureComponent { + static propTypes = { + amountOfPathPoints: PropTypes.number, + barColor: PropTypes.string, + currentDataSource: PropTypes.number, + data: PropTypes.array, + enableSelect: PropTypes.bool, + mode: PropTypes.oneOf(['gesture-managed', 'detailed', 'simplified']), + onValueUpdate: PropTypes.func, + stroke: PropTypes.object, + }; + + static defaultProps = { + enableSelect: true, + mode: 'gesture-managed', + stroke: { detailed: 1.5, simplified: 3 }, + }; + constructor(props) { super(props); + allSegmentDividers = []; + this.data = this.props.data.map(data => + simplifyChartData(data, this.props.amountOfPathPoints) + ); + this.state = { - allData: [[], [], [], []], - currentData: [], + chartData: this.data, + + currentData: this.data[0], hideLoadingBar: false, - isLoading: false, + isLoading: true, shouldRenderChart: true, }; @@ -160,18 +214,20 @@ export default class ValueChart extends PureComponent { this.clockReversed = new Clock(); this.opacityClock = new Clock(); this.opacityClockReversed = new Clock(); - this.loadingClock = new Clock(); this.loadingValue = new Value(1); this.gestureState = new Value(UNDETERMINED); this.panGestureState = new Value(UNDETERMINED); - this.handle = undefined; - this.value = new Value(1); + this.value = new Value(this.props.mode === 'detailed' ? 0 : 1); this.opacity = new Value(0); this.shouldSpring = new Value(0); this.chartDay = new Value(1); this.chartWeek = new Value(0); this.chartMonth = new Value(0); this.chartYear = new Value(0); + this.shouldReactToGestures = new Value( + this.props.mode === 'gesture-managed' ? 1 : 0 + ); + this.currentChart = new Value(0); this.currentInterval = 1; @@ -200,7 +256,11 @@ export default class ValueChart extends PureComponent { nativeEvent: { state: state => cond( - or(eq(state, State.BEGAN), eq(state, State.END)), + or( + eq(state, State.BEGAN), + eq(state, State.END), + eq(state, State.CANCELLED) + ), set(this.gestureState, state), delay( cond( @@ -236,9 +296,16 @@ export default class ValueChart extends PureComponent { } componentDidMount = () => { - this.reloadChart(0); + this.reloadChart(0, true); }; + getSnapshotBeforeUpdate() { + if (this.currentInterval !== this.props.currentDataSource) { + this.currentChart.setValue(this.props.currentDataSource); + this.touchX.setValue(deviceUtils.dimensions.width - 1); + this.reloadChart(this.props.currentDataSource); + } + } touchX = new Value(0); lastTouchX = new Value(0); @@ -261,16 +328,16 @@ export default class ValueChart extends PureComponent { { useNativeDriver: true } ); - reloadChart = async currentInterval => { + reloadChart = async (currentInterval, isInitial = false) => { if (currentInterval !== this.currentInterval) { - let data = this.state.allData; - if (this.state.allData[currentInterval].length === 0) { - data[currentInterval] = usableData[currentInterval]; + if (isInitial) { await this.setState({ isLoading: true, }); - this.animatedPath = this.createAnimatedPath(); + const createdSVG = this.createAnimatedPath(); + this.animatedPath = createdSVG.paths; + this.animatedDividers = createdSVG.points; } setTimeout(async () => { Animated.timing( @@ -282,36 +349,78 @@ export default class ValueChart extends PureComponent { this._configUp ).start(); this.currentInterval = currentInterval; - this._text.updateValue( - usableData[currentInterval][usableData[currentInterval].length - 1] - .value - ); - await this.setState({ - currentData: usableData[currentInterval], + await this.setState(prevState => ({ + currentData: prevState.chartData[currentInterval], isLoading: false, - }); + })); + this.props.onValueUpdate( + this.state.chartData[currentInterval].points[ + this.state.chartData[currentInterval].points.length - 1 + ].y + ); }); } }; + createSegmentColorsArray = (segments, data) => { + let segmentColors = []; + let segmentSwitch = []; + for (let i = 0; i < segments.length + 1; i++) { + segmentColors.push([]); + segmentSwitch.push([]); + } + for (let i = 0; i < data.length; i++) { + let dataIndex = 0; + for (let j = 0; j < segments.length + 1; j++) { + segmentColors[j].push(dataIndex); + if (segments[j] === data[i].lastPoints[dataIndex]) { + segmentSwitch[j].push(i); + dataIndex++; + } + } + } + segmentSwitch.pop(); + return { colors: segmentColors, dividers: segmentSwitch }; + }; + createAnimatedPath = () => { + let sectionEndPoints = []; + const { chartData } = this.state; + allSegmentDividers.sort(function(a, b) { + return a - b; + }); + let segmentsWithDeletedDuplicates = []; + + allSegmentDividers.forEach(function(x) { + if ( + segmentsWithDeletedDuplicates.length === 0 || + segmentsWithDeletedDuplicates.slice(-1)[0] !== x + ) + segmentsWithDeletedDuplicates.push(x); + }); + allSegmentDividers = segmentsWithDeletedDuplicates; + + const segments = this.createSegmentColorsArray( + allSegmentDividers, + chartData + ); let splinePoints = []; - for (let i = 0; i < this.state.allData.length; i++) { - if (this.state.allData[i].length > 0) { - const maxValue = maxBy(this.state.allData[i], 'value'); - const minValue = minBy(this.state.allData[i], 'value'); + for (let i = 0; i < chartData.length; i++) { + if (chartData[i].points.length > 0) { + const maxValue = maxBy(chartData[i].points, 'y'); + const minValue = minBy(chartData[i].points, 'y'); const timestampLength = - this.state.allData[i][this.state.allData[i].length - 1].timestamp - - this.state.allData[i][0].timestamp; - const xMultiply = width / timestampLength; + chartData[i].points[chartData[i].points.length - 1].x - + chartData[i].points[0].x; - const yMultiply = height / (maxValue.value - minValue.value); + const xMultiply = width / timestampLength; - const points = this.state.allData[i].map(({ timestamp, value }) => ({ - x: (timestamp - this.state.allData[i][0].timestamp) * xMultiply, - y: (value - minValue.value) * yMultiply, + const yMultiply = height / (maxValue.y - minValue.y); + const points = chartData[i].points.map(({ x, y }) => ({ + x: (x - chartData[i].points[0].x) * xMultiply, + y: (y - minValue.y) * yMultiply, })); const importantPoints = pickImportantPoints(points); @@ -324,7 +433,7 @@ export default class ValueChart extends PureComponent { .filter(Boolean) ); } else { - let emptyArray = new Array(amountOfPathPoints); + let emptyArray = new Array(this.props.amountOfPathPoints); for (let j = 0; j < emptyArray.length; j++) { emptyArray[j] = { x: 0, y1: 0, y2: 0 }; } @@ -332,58 +441,148 @@ export default class ValueChart extends PureComponent { } } - const animatedPath = concat( - 'M -20 0', - ...splinePoints[0].flatMap(({ x }, index) => [ - 'L', - x, - ' ', + let chartNode = (multiplyNode, index, chartIndex) => + multiply( + multiplyNode, add( + splinePoints[chartIndex][index].y1, multiply( - this.chartDay, - add( - splinePoints[0][index].y1, - multiply( - this.value, - sub(splinePoints[0][index].y2, splinePoints[0][index].y1) - ) + this.value, + sub( + splinePoints[chartIndex][index].y2, + splinePoints[chartIndex][index].y1 ) - ), - multiply( - this.chartWeek, - add( - splinePoints[1][index].y1, - multiply( - this.value, - sub(splinePoints[1][index].y2, splinePoints[1][index].y1) - ) + ) + ) + ); + + const allNodes = index => { + return chartData.map((_, i) => { + return chartNode(this.chartsMulti[i], index, i); + }); + }; + + let returnPaths = []; + let returnPoints = []; + for (let i = 0; i <= allSegmentDividers.length; i++) { + const animatedPath = concat( + 'M 0 0', + ...splinePoints[0].flatMap(({ x }, index) => { + if (i === 0) { + if (index <= allSegmentDividers[i]) { + return ['L', x, ' ', add(...allNodes(index))]; + } + } else { + if (index === allSegmentDividers[i - 1]) { + sectionEndPoints.push({ + index: segments.dividers[i - 1], + opacity: this.chartsMulti[segments.dividers[i - 1]], + x, + y: add(...allNodes(index)), + }); + return ['M', x, ' ', add(...allNodes(index))]; + } + if (i === allSegmentDividers.length) { + if (index >= allSegmentDividers[i - 1]) { + return ['L', x, ' ', add(...allNodes(index))]; + } + } else { + if ( + index >= allSegmentDividers[i - 1] && + index <= allSegmentDividers[i] + ) { + return ['L', x, ' ', add(...allNodes(index))]; + } + } + } + }) + ); + + const colorMatrix = index => { + return index < chartData.length - 1 + ? cond( + eq(this.currentChart, index), + Animated.color( + ...hexToRgb(chartData[index].colors[segments.colors[i][index]]) + ), + colorMatrix(index + 1) ) - ), - multiply( - this.chartMonth, - add( - splinePoints[2][index].y1, - multiply( - this.value, - sub(splinePoints[2][index].y2, splinePoints[2][index].y1) + : cond( + eq(this.currentChart, index), + Animated.color( + ...hexToRgb(chartData[index].colors[segments.colors[i][index]]) ) + ); + }; + + const lineMatrix = index => { + return index < chartData.length - 1 + ? cond( + eq(this.currentChart, index), + chartData[index].lines[segments.colors[i][index]], + lineMatrix(index + 1) ) - ), - multiply( - this.chartYear, - add( - splinePoints[3][index].y1, - multiply( - this.value, - sub(splinePoints[3][index].y2, splinePoints[3][index].y1) - ) + : cond( + eq(this.currentChart, index), + chartData[index].lines[segments.colors[i][index]] + ); + }; + + returnPaths.push( + + ); + } - return animatedPath; + let something = [0, 0, 0, 0]; + sectionEndPoints.forEach(element => { + if (chartData[element.index].startSeparatator[something[element.index]]) { + returnPoints.push( + + ); + } + }); + + return { paths: returnPaths, points: returnPoints }; }; checkValueBoundaries = value => { @@ -392,153 +591,115 @@ export default class ValueChart extends PureComponent { } return value; }; - render() { + const { amountOfPathPoints } = this.props; + const { currentData } = this.state; let maxValue = 0, minValue = 0, - change = 0, timePeriod = 0, maxValueDistance = 999, - minValueDistance = 999, - isLoading = true; - - if (this.state.currentData.length > 0) { - isLoading = false; - maxValue = maxBy(this.state.currentData, 'value'); - minValue = minBy(this.state.currentData, 'value'); - change = - ((this.state.currentData[this.state.currentData.length - 1].value - - this.state.currentData[0].value) / - this.state.currentData[0].value) * - 100; + minValueDistance = 999; + + if (currentData.points.length > 0) { + maxValue = maxBy(currentData.points, 'y'); + minValue = minBy(currentData.points, 'y'); timePeriod = - this.state.currentData[this.state.currentData.length - 1].timestamp - - this.state.currentData[0].timestamp; + currentData.points[currentData.points.length - 1].x - + currentData.points[0].x; maxValueDistance = this.checkValueBoundaries( - ((maxValue.timestamp - this.state.currentData[0].timestamp) / - timePeriod) * - width - + ((maxValue.x - currentData.points[0].x) / timePeriod) * width - width / 2 ); minValueDistance = this.checkValueBoundaries( - ((minValue.timestamp - this.state.currentData[0].timestamp) / - timePeriod) * - width - + ((minValue.x - currentData.points[0].x) / timePeriod) * width - width / 2 ); } return ( - 0} - change={change.toFixed(2)} - ref={component => { - this._text = component; - }} - /> - - - + - + ${Number(maxValue.y).toFixed(2)} + + + + - - - ${Number(maxValue.value).toFixed(2)} - - - - - - 0 ? colors.chartGreen : colors.red} - strokeWidth={add( - strokeWidth, - multiply(this.value, thickStrokeWidthDifference) - )} - strokeLinejoin="round" - strokeLinecap="round" - d={this.animatedPath} - /> - - - 0 ? colors.chartGreen : colors.red, - borderRadius: 2, - height: 180, - position: 'absolute', - top: 10, - width: 2, - zIndex: 10, - }, + {this.animatedPath} + {this.animatedDividers} + + + - - - - ${Number(minValue.value).toFixed(2)} - - - - + ], + }, + ]} + /> + + + + ${Number(minValue.y).toFixed(2)} + + - + {this.state.isLoading && ( )} - 0} - isLoading={isLoading} - /> { - this._text.updateValue( - this.state.currentData[this.state.currentData.length - 1] - .value + this.props.onValueUpdate( + currentData.points[currentData.points.length - 1].y ); }), ]), @@ -596,46 +751,48 @@ export default class ValueChart extends PureComponent { const calculatedIndex = Math.floor( curX / ((width - (width / (amountOfPathPoints + 20)) * 10) / - this.state.currentData.length) + currentData.points.length) ); - this._text.updateValue( - this.state.currentData[calculatedIndex].value + this.props.onValueUpdate( + currentData.points[calculatedIndex].y ); }) ) ), - cond( - and(greaterThan(this.value, 0), eq(this.shouldSpring, 1)), - block([ - stopClock(this.clockReversed), - set( - this.value, - timing({ - clock: this.clock, - duration: 350, - easing: Easing.bezier(0.25, 0.46, 0.45, 0.94), - from: this.value, - to: 0, - }) - ), - ]) - ), - cond( - and(lessThan(this.value, 1), eq(this.shouldSpring, 0)), - block([ - stopClock(this.clock), - set( - this.value, - timing({ - clock: this.clockReversed, - duration: 350, - easing: Easing.bezier(0.25, 0.46, 0.45, 0.94), - from: this.value, - to: 1, - }) - ), - ]) - ), + cond(this.shouldReactToGestures, [ + cond( + and(greaterThan(this.value, 0), eq(this.shouldSpring, 1)), + block([ + stopClock(this.clockReversed), + set( + this.value, + timing({ + clock: this.clock, + duration: 350, + easing: Easing.bezier(0.25, 0.46, 0.45, 0.94), + from: this.value, + to: 0, + }) + ), + ]) + ), + cond( + and(lessThan(this.value, 1), eq(this.shouldSpring, 0)), + block([ + stopClock(this.clock), + set( + this.value, + timing({ + clock: this.clockReversed, + duration: 350, + easing: Easing.bezier(0.25, 0.46, 0.45, 0.94), + from: this.value, + to: 1, + }) + ), + ]) + ), + ]), cond( and(lessThan(this.opacity, 1), eq(this.shouldSpring, 1)), block([ diff --git a/src/components/value-chart/ValueText.js b/src/components/value-chart/ValueText.js index 8ccc38c9dc9..ebb86b71ee1 100644 --- a/src/components/value-chart/ValueText.js +++ b/src/components/value-chart/ValueText.js @@ -10,8 +10,7 @@ import { Transition, Transitioning } from 'react-native-reanimated'; const HeadingTextStyles = { color: colors.dark, - // FIXME @osdnk add font - //family: 'SFProRounded', + family: 'SFProRounded', weight: 'bold', }; diff --git a/src/components/value-chart/data.js b/src/components/value-chart/data.js index 54adf087767..26d697409bb 100644 --- a/src/components/value-chart/data.js +++ b/src/components/value-chart/data.js @@ -1659,949 +1659,6 @@ export const data4 = [ ]; export default [ - // { timestamp: 1438214400, value: 0 }, - // { timestamp: 1438300800, value: 0 }, - // { timestamp: 1438387200, value: 0 }, - // { timestamp: 1438473600, value: 0 }, - // { timestamp: 1438560000, value: 0 }, - // { timestamp: 1438646400, value: 0 }, - // { timestamp: 1438732800, value: 0 }, - // { timestamp: 1438819200, value: 0 }, - // { timestamp: 1438905600, value: 2.77 }, - // { timestamp: 1438992000, value: 0.81 }, - // { timestamp: 1439078400, value: 0.74 }, - // { timestamp: 1439164800, value: 0.68 }, - // { timestamp: 1439251200, value: 1.06 }, - // { timestamp: 1439337600, value: 1.25 }, - // { timestamp: 1439424000, value: 1.78 }, - // { timestamp: 1439510400, value: 1.8 }, - // { timestamp: 1439596800, value: 1.79 }, - // { timestamp: 1439683200, value: 1.37 }, - // { timestamp: 1439769600, value: 1.2 }, - // { timestamp: 1439856000, value: 1.27 }, - // { timestamp: 1439942400, value: 1.26 }, - // { timestamp: 1440028800, value: 1.48 }, - // { timestamp: 1440115200, value: 1.44 }, - // { timestamp: 1440201600, value: 1.39 }, - // { timestamp: 1440288000, value: 1.35 }, - // { timestamp: 1440374400, value: 1.24 }, - // { timestamp: 1440460800, value: 1.17 }, - // { timestamp: 1440547200, value: 1.16 }, - // { timestamp: 1440633600, value: 1.13 }, - // { timestamp: 1440720000, value: 1.3 }, - // { timestamp: 1440806400, value: 1.18 }, - // { timestamp: 1440892800, value: 1.32 }, - // { timestamp: 1440979200, value: 1.35 }, - // { timestamp: 1441065600, value: 1.35 }, - // { timestamp: 1441152000, value: 1.29 }, - // { timestamp: 1441238400, value: 1.26 }, - // { timestamp: 1441324800, value: 1.27 }, - // { timestamp: 1441411200, value: 1.37 }, - // { timestamp: 1441497600, value: 1.3 }, - // { timestamp: 1441584000, value: 1.24 }, - // { timestamp: 1441670400, value: 1.23 }, - // { timestamp: 1441756800, value: 1.21 }, - // { timestamp: 1441843200, value: 1.16 }, - // { timestamp: 1441929600, value: 0.98 }, - // { timestamp: 1442016000, value: 1.04 }, - // { timestamp: 1442102400, value: 0.94 }, - // { timestamp: 1442188800, value: 0.87 }, - // { timestamp: 1442275200, value: 0.94 }, - // { timestamp: 1442361600, value: 0.9 }, - // { timestamp: 1442448000, value: 0.89 }, - // { timestamp: 1442534400, value: 0.85 }, - // { timestamp: 1442620800, value: 0.89 }, - // { timestamp: 1442707200, value: 0.94 }, - // { timestamp: 1442793600, value: 0.9 }, - // { timestamp: 1442880000, value: 0.9 }, - // { timestamp: 1442966400, value: 0.9 }, - // { timestamp: 1443052800, value: 0.81 }, - // { timestamp: 1443139200, value: 0.74 }, - // { timestamp: 1443225600, value: 0.78 }, - // { timestamp: 1443312000, value: 0.72 }, - // { timestamp: 1443398400, value: 0.59 }, - // { timestamp: 1443484800, value: 0.68 }, - // { timestamp: 1443571200, value: 0.72 }, - // { timestamp: 1443657600, value: 0.68 }, - // { timestamp: 1443744000, value: 0.68 }, - // { timestamp: 1443830400, value: 0.69 }, - // { timestamp: 1443916800, value: 0.67 }, - // { timestamp: 1444003200, value: 0.63 }, - // { timestamp: 1444089600, value: 0.66 }, - // { timestamp: 1444176000, value: 0.61 }, - // { timestamp: 1444262400, value: 0.62 }, - // { timestamp: 1444348800, value: 0.65 }, - // { timestamp: 1444435200, value: 0.63 }, - // { timestamp: 1444521600, value: 0.63 }, - // { timestamp: 1444608000, value: 0.63 }, - // { timestamp: 1444694400, value: 0.6 }, - // { timestamp: 1444780800, value: 0.51 }, - // { timestamp: 1444867200, value: 0.56 }, - // { timestamp: 1444953600, value: 0.53 }, - // { timestamp: 1445040000, value: 0.55 }, - // { timestamp: 1445126400, value: 0.52 }, - // { timestamp: 1445212800, value: 0.49 }, - // { timestamp: 1445299200, value: 0.44 }, - // { timestamp: 1445385600, value: 0.44 }, - // { timestamp: 1445472000, value: 0.59 }, - // { timestamp: 1445558400, value: 0.52 }, - // { timestamp: 1445644800, value: 0.57 }, - // { timestamp: 1445731200, value: 0.65 }, - // { timestamp: 1445817600, value: 0.74 }, - // { timestamp: 1445904000, value: 0.87 }, - // { timestamp: 1445990400, value: 1.01 }, - // { timestamp: 1446076800, value: 1.16 }, - // { timestamp: 1446163200, value: 1.04 }, - // { timestamp: 1446249600, value: 0.89 }, - // { timestamp: 1446336000, value: 1.05 }, - // { timestamp: 1446422400, value: 0.96 }, - // { timestamp: 1446508800, value: 1 }, - // { timestamp: 1446595200, value: 0.87 }, - // { timestamp: 1446681600, value: 0.89 }, - // { timestamp: 1446768000, value: 0.92 }, - // { timestamp: 1446854400, value: 0.92 }, - // { timestamp: 1446940800, value: 1.02 }, - // { timestamp: 1447027200, value: 1 }, - // { timestamp: 1447113600, value: 0.92 }, - // { timestamp: 1447200000, value: 0.78 }, - // { timestamp: 1447286400, value: 0.89 }, - // { timestamp: 1447372800, value: 0.89 }, - // { timestamp: 1447459200, value: 0.89 }, - // { timestamp: 1447545600, value: 0.9 }, - // { timestamp: 1447632000, value: 0.94 }, - // { timestamp: 1447718400, value: 1 }, - // { timestamp: 1447804800, value: 0.99 }, - // { timestamp: 1447891200, value: 0.95 }, - // { timestamp: 1447977600, value: 0.93 }, - // { timestamp: 1448064000, value: 0.97 }, - // { timestamp: 1448150400, value: 0.96 }, - // { timestamp: 1448236800, value: 0.94 }, - // { timestamp: 1448323200, value: 0.91 }, - // { timestamp: 1448409600, value: 0.86 }, - // { timestamp: 1448496000, value: 0.88 }, - // { timestamp: 1448582400, value: 0.87 }, - // { timestamp: 1448668800, value: 0.91 }, - // { timestamp: 1448755200, value: 0.87 }, - // { timestamp: 1448841600, value: 0.88 }, - // { timestamp: 1448928000, value: 0.87 }, - // { timestamp: 1449014400, value: 0.83 }, - // { timestamp: 1449100800, value: 0.82 }, - // { timestamp: 1449187200, value: 0.84 }, - // { timestamp: 1449273600, value: 0.85 }, - // { timestamp: 1449360000, value: 0.84 }, - // { timestamp: 1449446400, value: 0.8 }, - // { timestamp: 1449532800, value: 0.83 }, - // { timestamp: 1449619200, value: 0.79 }, - // { timestamp: 1449705600, value: 0.84 }, - // { timestamp: 1449792000, value: 0.91 }, - // { timestamp: 1449878400, value: 0.97 }, - // { timestamp: 1449964800, value: 0.96 }, - // { timestamp: 1450051200, value: 0.99 }, - // { timestamp: 1450137600, value: 1.01 }, - // { timestamp: 1450224000, value: 0.99 }, - // { timestamp: 1450310400, value: 0.94 }, - // { timestamp: 1450396800, value: 0.91 }, - // { timestamp: 1450483200, value: 0.9 }, - // { timestamp: 1450569600, value: 0.9 }, - // { timestamp: 1450656000, value: 0.89 }, - // { timestamp: 1450742400, value: 0.87 }, - // { timestamp: 1450828800, value: 0.85 }, - // { timestamp: 1450915200, value: 0.85 }, - // { timestamp: 1451001600, value: 0.87 }, - // { timestamp: 1451088000, value: 0.85 }, - // { timestamp: 1451174400, value: 0.85 }, - // { timestamp: 1451260800, value: 0.84 }, - // { timestamp: 1451347200, value: 0.87 }, - // { timestamp: 1451433600, value: 0.9 }, - // { timestamp: 1451520000, value: 0.93 }, - // { timestamp: 1451606400, value: 0.93 }, - // { timestamp: 1451692800, value: 0.93 }, - // { timestamp: 1451779200, value: 0.97 }, - // { timestamp: 1451865600, value: 0.95 }, - // { timestamp: 1451952000, value: 0.95 }, - // { timestamp: 1452038400, value: 0.96 }, - // { timestamp: 1452124800, value: 0.95 }, - // { timestamp: 1452211200, value: 0.99 }, - // { timestamp: 1452297600, value: 0.99 }, - // { timestamp: 1452384000, value: 0.99 }, - // { timestamp: 1452470400, value: 1.05 }, - // { timestamp: 1452556800, value: 1.23 }, - // { timestamp: 1452643200, value: 1.13 }, - // { timestamp: 1452729600, value: 1.16 }, - // { timestamp: 1452816000, value: 1.22 }, - // { timestamp: 1452902400, value: 1.22 }, - // { timestamp: 1452988800, value: 1.31 }, - // { timestamp: 1453075200, value: 1.47 }, - // { timestamp: 1453161600, value: 1.37 }, - // { timestamp: 1453248000, value: 1.53 }, - // { timestamp: 1453334400, value: 1.54 }, - // { timestamp: 1453420800, value: 1.52 }, - // { timestamp: 1453507200, value: 2.03 }, - // { timestamp: 1453593600, value: 2.1 }, - // { timestamp: 1453680000, value: 2.5 }, - // { timestamp: 1453766400, value: 2.3 }, - // { timestamp: 1453852800, value: 2.42 }, - // { timestamp: 1453939200, value: 2.55 }, - // { timestamp: 1454025600, value: 2.41 }, - // { timestamp: 1454112000, value: 2.43 }, - // { timestamp: 1454198400, value: 2.2 }, - // { timestamp: 1454284800, value: 2.17 }, - // { timestamp: 1454371200, value: 2.45 }, - // { timestamp: 1454457600, value: 2.53 }, - // { timestamp: 1454544000, value: 2.57 }, - // { timestamp: 1454630400, value: 2.57 }, - // { timestamp: 1454716800, value: 2.53 }, - // { timestamp: 1454803200, value: 3 }, - // { timestamp: 1454889600, value: 3.16 }, - // { timestamp: 1454976000, value: 3.76 }, - // { timestamp: 1455062400, value: 4.35 }, - // { timestamp: 1455148800, value: 6.38 }, - // { timestamp: 1455235200, value: 5.27 }, - // { timestamp: 1455321600, value: 5.22 }, - // { timestamp: 1455408000, value: 5.2 }, - // { timestamp: 1455494400, value: 5.22 }, - // { timestamp: 1455580800, value: 4.25 }, - // { timestamp: 1455667200, value: 3.86 }, - // { timestamp: 1455753600, value: 4.36 }, - // { timestamp: 1455840000, value: 4.45 }, - // { timestamp: 1455926400, value: 4.37 }, - // { timestamp: 1456012800, value: 4.63 }, - // { timestamp: 1456099200, value: 5.6 }, - // { timestamp: 1456185600, value: 5.7 }, - // { timestamp: 1456272000, value: 6.23 }, - // { timestamp: 1456358400, value: 5.93 }, - // { timestamp: 1456444800, value: 6.03 }, - // { timestamp: 1456531200, value: 6.31 }, - // { timestamp: 1456617600, value: 6.5 }, - // { timestamp: 1456704000, value: 6.35 }, - // { timestamp: 1456790400, value: 7.59 }, - // { timestamp: 1456876800, value: 8.7 }, - // { timestamp: 1456963200, value: 9.35 }, - // { timestamp: 1457049600, value: 9.96 }, - // { timestamp: 1457136000, value: 11 }, - // { timestamp: 1457222400, value: 10.98 }, - // { timestamp: 1457308800, value: 9.5 }, - // { timestamp: 1457395200, value: 9.88 }, - // { timestamp: 1457481600, value: 11.55 }, - // { timestamp: 1457568000, value: 11.11 }, - // { timestamp: 1457654400, value: 11.25 }, - // { timestamp: 1457740800, value: 13.25 }, - // { timestamp: 1457827200, value: 15 }, - // { timestamp: 1457913600, value: 12.5 }, - // { timestamp: 1458000000, value: 13.09 }, - // { timestamp: 1458086400, value: 12.92 }, - // { timestamp: 1458172800, value: 11.14 }, - // { timestamp: 1458259200, value: 10.75 }, - // { timestamp: 1458345600, value: 10.55 }, - // { timestamp: 1458432000, value: 10.06 }, - // { timestamp: 1458518400, value: 11.97 }, - // { timestamp: 1458604800, value: 10.96 }, - // { timestamp: 1458691200, value: 12.29 }, - // { timestamp: 1458777600, value: 11.13 }, - // { timestamp: 1458864000, value: 10.69 }, - // { timestamp: 1458950400, value: 11 }, - // { timestamp: 1459036800, value: 10.5 }, - // { timestamp: 1459123200, value: 11.58 }, - // { timestamp: 1459209600, value: 11.73 }, - // { timestamp: 1459296000, value: 11.88 }, - // { timestamp: 1459382400, value: 11.41 }, - // { timestamp: 1459468800, value: 11.63 }, - // { timestamp: 1459555200, value: 11.61 }, - // { timestamp: 1459641600, value: 11.58 }, - // { timestamp: 1459728000, value: 11.1 }, - // { timestamp: 1459814400, value: 10.39 }, - // { timestamp: 1459900800, value: 10.79 }, - // { timestamp: 1459987200, value: 10.08 }, - // { timestamp: 1460073600, value: 9.74 }, - // { timestamp: 1460160000, value: 9.16 }, - // { timestamp: 1460246400, value: 8.8 }, - // { timestamp: 1460332800, value: 8.72 }, - // { timestamp: 1460419200, value: 7.54 }, - // { timestamp: 1460505600, value: 8.02 }, - // { timestamp: 1460592000, value: 8.48 }, - // { timestamp: 1460678400, value: 8.22 }, - // { timestamp: 1460764800, value: 8.48 }, - // { timestamp: 1460851200, value: 9.45 }, - // { timestamp: 1460937600, value: 8.92 }, - // { timestamp: 1461024000, value: 8.77 }, - // { timestamp: 1461110400, value: 8.54 }, - // { timestamp: 1461196800, value: 8.16 }, - // { timestamp: 1461283200, value: 7.83 }, - // { timestamp: 1461369600, value: 8.31 }, - // { timestamp: 1461456000, value: 8 }, - // { timestamp: 1461542400, value: 7.43 }, - // { timestamp: 1461628800, value: 7.5 }, - // { timestamp: 1461715200, value: 7.77 }, - // { timestamp: 1461801600, value: 7.3 }, - // { timestamp: 1461888000, value: 7.52 }, - // { timestamp: 1461974400, value: 8.83 }, - // { timestamp: 1462060800, value: 8.76 }, - // { timestamp: 1462147200, value: 10.03 }, - // { timestamp: 1462233600, value: 9.37 }, - // { timestamp: 1462320000, value: 9.43 }, - // { timestamp: 1462406400, value: 9.79 }, - // { timestamp: 1462492800, value: 9.27 }, - // { timestamp: 1462579200, value: 9.3 }, - // { timestamp: 1462665600, value: 9.44 }, - // { timestamp: 1462752000, value: 9.32 }, - // { timestamp: 1462838400, value: 9.39 }, - // { timestamp: 1462924800, value: 9.97 }, - // { timestamp: 1463011200, value: 10.1 }, - // { timestamp: 1463097600, value: 10.48 }, - // { timestamp: 1463184000, value: 10.14 }, - // { timestamp: 1463270400, value: 9.94 }, - // { timestamp: 1463356800, value: 11.04 }, - // { timestamp: 1463443200, value: 12.26 }, - // { timestamp: 1463529600, value: 13.29 }, - // { timestamp: 1463616000, value: 14.49 }, - // { timestamp: 1463702400, value: 13.73 }, - // { timestamp: 1463788800, value: 13.95 }, - // { timestamp: 1463875200, value: 14.21 }, - // { timestamp: 1463961600, value: 13.45 }, - // { timestamp: 1464048000, value: 12.62 }, - // { timestamp: 1464134400, value: 12.53 }, - // { timestamp: 1464220800, value: 12.37 }, - // { timestamp: 1464307200, value: 11.11 }, - // { timestamp: 1464393600, value: 11.56 }, - // { timestamp: 1464480000, value: 12.28 }, - // { timestamp: 1464566400, value: 12.48 }, - // { timestamp: 1464652800, value: 13.85 }, - // { timestamp: 1464739200, value: 13.83 }, - // { timestamp: 1464825600, value: 13.78 }, - // { timestamp: 1464912000, value: 13.78 }, - // { timestamp: 1464998400, value: 13.66 }, - // { timestamp: 1465084800, value: 13.85 }, - // { timestamp: 1465171200, value: 13.96 }, - // { timestamp: 1465257600, value: 14.41 }, - // { timestamp: 1465344000, value: 14.44 }, - // { timestamp: 1465430400, value: 14.49 }, - // { timestamp: 1465516800, value: 13.97 }, - // { timestamp: 1465603200, value: 14.01 }, - // { timestamp: 1465689600, value: 15.57 }, - // { timestamp: 1465776000, value: 17.55 }, - // { timestamp: 1465862400, value: 18.7 }, - // { timestamp: 1465948800, value: 18.3 }, - // { timestamp: 1466035200, value: 20.61 }, - // { timestamp: 1466121600, value: 15.49 }, - // { timestamp: 1466208000, value: 11.36 }, - // { timestamp: 1466294400, value: 12.33 }, - // { timestamp: 1466380800, value: 11.7 }, - // { timestamp: 1466467200, value: 12.71 }, - // { timestamp: 1466553600, value: 13.21 }, - // { timestamp: 1466640000, value: 13.58 }, - // { timestamp: 1466726400, value: 14.25 }, - // { timestamp: 1466812800, value: 14.28 }, - // { timestamp: 1466899200, value: 13.82 }, - // { timestamp: 1466985600, value: 14.04 }, - // { timestamp: 1467072000, value: 12.15 }, - // { timestamp: 1467158400, value: 12.76 }, - // { timestamp: 1467244800, value: 12.4 }, - // { timestamp: 1467331200, value: 12.23 }, - // { timestamp: 1467417600, value: 12.04 }, - // { timestamp: 1467504000, value: 11.85 }, - // { timestamp: 1467590400, value: 11.34 }, - // { timestamp: 1467676800, value: 10.45 }, - // { timestamp: 1467763200, value: 10.51 }, - // { timestamp: 1467849600, value: 10.07 }, - // { timestamp: 1467936000, value: 11.3 }, - // { timestamp: 1468022400, value: 10.92 }, - // { timestamp: 1468108800, value: 10.97 }, - // { timestamp: 1468195200, value: 10.58 }, - // { timestamp: 1468281600, value: 10.54 }, - // { timestamp: 1468368000, value: 10.44 }, - // { timestamp: 1468454400, value: 11.55 }, - // { timestamp: 1468540800, value: 11.88 }, - // { timestamp: 1468627200, value: 11.59 }, - // { timestamp: 1468713600, value: 11.19 }, - // { timestamp: 1468800000, value: 11.03 }, - // { timestamp: 1468886400, value: 11.63 }, - // { timestamp: 1468972800, value: 12.54 }, - // { timestamp: 1469059200, value: 12.66 }, - // { timestamp: 1469145600, value: 14.82 }, - // { timestamp: 1469232000, value: 14.4 }, - // { timestamp: 1469318400, value: 12.63 }, - // { timestamp: 1469404800, value: 13.84 }, - // { timestamp: 1469491200, value: 12.08 }, - // { timestamp: 1469577600, value: 13.05 }, - // { timestamp: 1469664000, value: 12.87 }, - // { timestamp: 1469750400, value: 12.87 }, - // { timestamp: 1469836800, value: 12.57 }, - // { timestamp: 1469923200, value: 11.86 }, - // { timestamp: 1470009600, value: 11.04 }, - // { timestamp: 1470096000, value: 8.3 }, - // { timestamp: 1470182400, value: 10.42 }, - // { timestamp: 1470268800, value: 11.21 }, - // { timestamp: 1470355200, value: 11.05 }, - // { timestamp: 1470441600, value: 10.95 }, - // { timestamp: 1470528000, value: 10.98 }, - // { timestamp: 1470614400, value: 11.29 }, - // { timestamp: 1470700800, value: 12.22 }, - // { timestamp: 1470787200, value: 12.22 }, - // { timestamp: 1470873600, value: 11.68 }, - // { timestamp: 1470960000, value: 11.78 }, - // { timestamp: 1471046400, value: 11.56 }, - // { timestamp: 1471132800, value: 11.21 }, - // { timestamp: 1471219200, value: 11.21 }, - // { timestamp: 1471305600, value: 11.17 }, - // { timestamp: 1471392000, value: 10.77 }, - // { timestamp: 1471478400, value: 10.77 }, - // { timestamp: 1471564800, value: 10.71 }, - // { timestamp: 1471651200, value: 11.28 }, - // { timestamp: 1471737600, value: 11.14 }, - // { timestamp: 1471824000, value: 11.07 }, - // { timestamp: 1471910400, value: 11.01 }, - // { timestamp: 1471996800, value: 11.01 }, - // { timestamp: 1472083200, value: 11.35 }, - // { timestamp: 1472169600, value: 11.26 }, - // { timestamp: 1472256000, value: 11.19 }, - // { timestamp: 1472342400, value: 10.99 }, - // { timestamp: 1472428800, value: 10.95 }, - // { timestamp: 1472515200, value: 11.21 }, - // { timestamp: 1472601600, value: 11.55 }, - // { timestamp: 1472688000, value: 12.21 }, - // { timestamp: 1472774400, value: 12.08 }, - // { timestamp: 1472860800, value: 11.85 }, - // { timestamp: 1472947200, value: 11.71 }, - // { timestamp: 1473033600, value: 11.75 }, - // { timestamp: 1473120000, value: 11.7 }, - // { timestamp: 1473206400, value: 11.59 }, - // { timestamp: 1473292800, value: 11.39 }, - // { timestamp: 1473379200, value: 11.72 }, - // { timestamp: 1473465600, value: 12.05 }, - // { timestamp: 1473552000, value: 11.64 }, - // { timestamp: 1473638400, value: 11.89 }, - // { timestamp: 1473724800, value: 11.92 }, - // { timestamp: 1473811200, value: 11.97 }, - // { timestamp: 1473897600, value: 11.96 }, - // { timestamp: 1473984000, value: 12.61 }, - // { timestamp: 1474070400, value: 12.83 }, - // { timestamp: 1474156800, value: 12.39 }, - // { timestamp: 1474243200, value: 12.93 }, - // { timestamp: 1474329600, value: 14.72 }, - // { timestamp: 1474416000, value: 13.72 }, - // { timestamp: 1474502400, value: 13.11 }, - // { timestamp: 1474588800, value: 13.36 }, - // { timestamp: 1474675200, value: 12.91 }, - // { timestamp: 1474761600, value: 13.05 }, - // { timestamp: 1474848000, value: 12.89 }, - // { timestamp: 1474934400, value: 13.09 }, - // { timestamp: 1475020800, value: 13.3 }, - // { timestamp: 1475107200, value: 13.17 }, - // { timestamp: 1475193600, value: 13.24 }, - // { timestamp: 1475280000, value: 13.21 }, - // { timestamp: 1475366400, value: 13.23 }, - // { timestamp: 1475452800, value: 13.45 }, - // { timestamp: 1475539200, value: 13.32 }, - // { timestamp: 1475625600, value: 13.09 }, - // { timestamp: 1475712000, value: 12.87 }, - // { timestamp: 1475798400, value: 12.68 }, - // { timestamp: 1475884800, value: 12.24 }, - // { timestamp: 1475971200, value: 12.06 }, - // { timestamp: 1476057600, value: 11.74 }, - // { timestamp: 1476144000, value: 11.75 }, - // { timestamp: 1476230400, value: 11.77 }, - // { timestamp: 1476316800, value: 12.02 }, - // { timestamp: 1476403200, value: 11.9 }, - // { timestamp: 1476489600, value: 11.96 }, - // { timestamp: 1476576000, value: 11.93 }, - // { timestamp: 1476662400, value: 11.98 }, - // { timestamp: 1476748800, value: 12.5 }, - // { timestamp: 1476835200, value: 11.98 }, - // { timestamp: 1476921600, value: 12.05 }, - // { timestamp: 1477008000, value: 12.07 }, - // { timestamp: 1477094400, value: 12.06 }, - // { timestamp: 1477180800, value: 11.95 }, - // { timestamp: 1477267200, value: 11.93 }, - // { timestamp: 1477353600, value: 11.38 }, - // { timestamp: 1477440000, value: 11.5 }, - // { timestamp: 1477526400, value: 11.43 }, - // { timestamp: 1477612800, value: 11.08 }, - // { timestamp: 1477699200, value: 10.39 }, - // { timestamp: 1477785600, value: 11.22 }, - // { timestamp: 1477872000, value: 10.91 }, - // { timestamp: 1477958400, value: 10.75 }, - // { timestamp: 1478044800, value: 10.82 }, - // { timestamp: 1478131200, value: 10.86 }, - // { timestamp: 1478217600, value: 11.13 }, - // { timestamp: 1478304000, value: 11.11 }, - // { timestamp: 1478390400, value: 10.97 }, - // { timestamp: 1478476800, value: 10.9 }, - // { timestamp: 1478563200, value: 10.86 }, - // { timestamp: 1478649600, value: 10.64 }, - // { timestamp: 1478736000, value: 10.52 }, - // { timestamp: 1478822400, value: 10.29 }, - // { timestamp: 1478908800, value: 9.96 }, - // { timestamp: 1478995200, value: 10.13 }, - // { timestamp: 1479081600, value: 10 }, - // { timestamp: 1479168000, value: 10.22 }, - // { timestamp: 1479254400, value: 10.01 }, - // { timestamp: 1479340800, value: 9.95 }, - // { timestamp: 1479427200, value: 9.53 }, - // { timestamp: 1479513600, value: 9.7 }, - // { timestamp: 1479600000, value: 9.57 }, - // { timestamp: 1479686400, value: 9.56 }, - // { timestamp: 1479772800, value: 9.84 }, - // { timestamp: 1479859200, value: 9.78 }, - // { timestamp: 1479945600, value: 9.22 }, - // { timestamp: 1480032000, value: 9.39 }, - // { timestamp: 1480118400, value: 9.34 }, - // { timestamp: 1480204800, value: 8.91 }, - // { timestamp: 1480291200, value: 8.67 }, - // { timestamp: 1480377600, value: 8.18 }, - // { timestamp: 1480464000, value: 8.59 }, - // { timestamp: 1480550400, value: 8.44 }, - // { timestamp: 1480636800, value: 7.65 }, - // { timestamp: 1480723200, value: 7.9 }, - // { timestamp: 1480809600, value: 7.54 }, - // { timestamp: 1480896000, value: 6.69 }, - // { timestamp: 1480982400, value: 7.61 }, - // { timestamp: 1481068800, value: 8.35 }, - // { timestamp: 1481155200, value: 8.3 }, - // { timestamp: 1481241600, value: 8.52 }, - // { timestamp: 1481328000, value: 8.09 }, - // { timestamp: 1481414400, value: 8.2 }, - // { timestamp: 1481500800, value: 8.45 }, - // { timestamp: 1481587200, value: 8.4 }, - // { timestamp: 1481673600, value: 8.23 }, - // { timestamp: 1481760000, value: 7.76 }, - // { timestamp: 1481846400, value: 7.85 }, - // { timestamp: 1481932800, value: 7.66 }, - // { timestamp: 1482019200, value: 7.89 }, - // { timestamp: 1482105600, value: 7.61 }, - // { timestamp: 1482192000, value: 7.59 }, - // { timestamp: 1482278400, value: 7.87 }, - // { timestamp: 1482364800, value: 7.64 }, - // { timestamp: 1482451200, value: 7.16 }, - // { timestamp: 1482537600, value: 7.23 }, - // { timestamp: 1482624000, value: 7.19 }, - // { timestamp: 1482710400, value: 7.21 }, - // { timestamp: 1482796800, value: 7.15 }, - // { timestamp: 1482883200, value: 7.57 }, - // { timestamp: 1482969600, value: 8.21 }, - // { timestamp: 1483056000, value: 8.16 }, - // { timestamp: 1483142400, value: 8.05 }, - // { timestamp: 1483228800, value: 8.14 }, - // { timestamp: 1483315200, value: 8.34 }, - // { timestamp: 1483401600, value: 9.6 }, - // { timestamp: 1483488000, value: 10.88 }, - // { timestamp: 1483574400, value: 10.2 }, - // { timestamp: 1483660800, value: 10.07 }, - // { timestamp: 1483747200, value: 9.79 }, - // { timestamp: 1483833600, value: 10.27 }, - // { timestamp: 1483920000, value: 10.2 }, - // { timestamp: 1484006400, value: 10.55 }, - // { timestamp: 1484092800, value: 9.83 }, - // { timestamp: 1484179200, value: 9.81 }, - // { timestamp: 1484265600, value: 9.78 }, - // { timestamp: 1484352000, value: 9.78 }, - // { timestamp: 1484438400, value: 9.88 }, - // { timestamp: 1484524800, value: 9.59 }, - // { timestamp: 1484611200, value: 10.14 }, - // { timestamp: 1484697600, value: 10.19 }, - // { timestamp: 1484784000, value: 10.43 }, - // { timestamp: 1484870400, value: 10.6 }, - // { timestamp: 1484956800, value: 10.91 }, - // { timestamp: 1485043200, value: 10.71 }, - // { timestamp: 1485129600, value: 10.78 }, - // { timestamp: 1485216000, value: 10.51 }, - // { timestamp: 1485302400, value: 10.51 }, - // { timestamp: 1485388800, value: 10.65 }, - // { timestamp: 1485475200, value: 10.51 }, - // { timestamp: 1485561600, value: 10.54 }, - // { timestamp: 1485648000, value: 10.47 }, - // { timestamp: 1485734400, value: 10.62 }, - // { timestamp: 1485820800, value: 10.71 }, - // { timestamp: 1485907200, value: 10.71 }, - // { timestamp: 1485993600, value: 10.78 }, - // { timestamp: 1486080000, value: 10.95 }, - // { timestamp: 1486166400, value: 11.32 }, - // { timestamp: 1486252800, value: 11.22 }, - // { timestamp: 1486339200, value: 11.32 }, - // { timestamp: 1486425600, value: 11.45 }, - // { timestamp: 1486512000, value: 11.39 }, - // { timestamp: 1486598400, value: 10.94 }, - // { timestamp: 1486684800, value: 11.34 }, - // { timestamp: 1486771200, value: 11.43 }, - // { timestamp: 1486857600, value: 11.42 }, - // { timestamp: 1486944000, value: 11.39 }, - // { timestamp: 1487030400, value: 13 }, - // { timestamp: 1487116800, value: 12.97 }, - // { timestamp: 1487203200, value: 12.95 }, - // { timestamp: 1487289600, value: 12.72 }, - // { timestamp: 1487376000, value: 12.83 }, - // { timestamp: 1487462400, value: 12.82 }, - // { timestamp: 1487548800, value: 12.52 }, - // { timestamp: 1487635200, value: 12.77 }, - // { timestamp: 1487721600, value: 12.69 }, - // { timestamp: 1487808000, value: 13.13 }, - // { timestamp: 1487894400, value: 13.11 }, - // { timestamp: 1487980800, value: 13.57 }, - // { timestamp: 1488067200, value: 14.59 }, - // { timestamp: 1488153600, value: 15.55 }, - // { timestamp: 1488240000, value: 16.07 }, - // { timestamp: 1488326400, value: 17.55 }, - // { timestamp: 1488412800, value: 19.08 }, - // { timestamp: 1488499200, value: 19.48 }, - // { timestamp: 1488585600, value: 18.61 }, - // { timestamp: 1488672000, value: 19.22 }, - // { timestamp: 1488758400, value: 19.75 }, - // { timestamp: 1488844800, value: 18.91 }, - // { timestamp: 1488931200, value: 16.54 }, - // { timestamp: 1489017600, value: 17.71 }, - // { timestamp: 1489104000, value: 19.13 }, - // { timestamp: 1489190400, value: 21.45 }, - // { timestamp: 1489276800, value: 23.31 }, - // { timestamp: 1489363200, value: 28.45 }, - // { timestamp: 1489449600, value: 28.58 }, - // { timestamp: 1489536000, value: 35.18 }, - // { timestamp: 1489622400, value: 45.51 }, - // { timestamp: 1489708800, value: 44.48 }, - // { timestamp: 1489795200, value: 34 }, - // { timestamp: 1489881600, value: 43.12 }, - // { timestamp: 1489968000, value: 42.51 }, - // { timestamp: 1490054400, value: 42.67 }, - // { timestamp: 1490140800, value: 41.65 }, - // { timestamp: 1490227200, value: 43.2 }, - // { timestamp: 1490313600, value: 53.19 }, - // { timestamp: 1490400000, value: 50.62 }, - // { timestamp: 1490486400, value: 50.63 }, - // { timestamp: 1490572800, value: 49.06 }, - // { timestamp: 1490659200, value: 50.25 }, - // { timestamp: 1490745600, value: 53.07 }, - // { timestamp: 1490832000, value: 51.91 }, - // { timestamp: 1490918400, value: 49.91 }, - // { timestamp: 1491004800, value: 50.6 }, - // { timestamp: 1491091200, value: 48.55 }, - // { timestamp: 1491177600, value: 44.13 }, - // { timestamp: 1491264000, value: 44.43 }, - // { timestamp: 1491350400, value: 44.9 }, - // { timestamp: 1491436800, value: 43.23 }, - // { timestamp: 1491523200, value: 42.31 }, - // { timestamp: 1491609600, value: 44.37 }, - // { timestamp: 1491696000, value: 43.72 }, - // { timestamp: 1491782400, value: 43.74 }, - // { timestamp: 1491868800, value: 43.74 }, - // { timestamp: 1491955200, value: 46.38 }, - // { timestamp: 1492041600, value: 49.97 }, - // { timestamp: 1492128000, value: 47.32 }, - // { timestamp: 1492214400, value: 48.89 }, - // { timestamp: 1492300800, value: 48.22 }, - // { timestamp: 1492387200, value: 47.94 }, - // { timestamp: 1492473600, value: 49.88 }, - // { timestamp: 1492560000, value: 47.88 }, - // { timestamp: 1492646400, value: 49.36 }, - // { timestamp: 1492732800, value: 48.27 }, - // { timestamp: 1492819200, value: 48.41 }, - // { timestamp: 1492905600, value: 48.75 }, - // { timestamp: 1492992000, value: 49.94 }, - // { timestamp: 1493078400, value: 50.09 }, - // { timestamp: 1493164800, value: 53.28 }, - // { timestamp: 1493251200, value: 63.14 }, - // { timestamp: 1493337600, value: 72.42 }, - // { timestamp: 1493424000, value: 69.83 }, - // { timestamp: 1493510400, value: 79.83 }, - // { timestamp: 1493596800, value: 77.53 }, - // { timestamp: 1493683200, value: 77.25 }, - // { timestamp: 1493769600, value: 80.37 }, - // { timestamp: 1493856000, value: 94.55 }, - // { timestamp: 1493942400, value: 90.79 }, - // { timestamp: 1494028800, value: 94.82 }, - // { timestamp: 1494115200, value: 90.46 }, - // { timestamp: 1494201600, value: 88.39 }, - // { timestamp: 1494288000, value: 86.27 }, - // { timestamp: 1494374400, value: 87.83 }, - // { timestamp: 1494460800, value: 88.2 }, - // { timestamp: 1494547200, value: 85.15 }, - // { timestamp: 1494633600, value: 87.96 }, - // { timestamp: 1494720000, value: 88.72 }, - // { timestamp: 1494806400, value: 90.32 }, - // { timestamp: 1494892800, value: 87.8 }, - // { timestamp: 1494979200, value: 86.98 }, - // { timestamp: 1495065600, value: 95.88 }, - // { timestamp: 1495152000, value: 124.38 }, - // { timestamp: 1495238400, value: 123.06 }, - // { timestamp: 1495324800, value: 148 }, - // { timestamp: 1495411200, value: 160.39 }, - // { timestamp: 1495497600, value: 169.5 }, - // { timestamp: 1495584000, value: 193.03 }, - // { timestamp: 1495670400, value: 177.33 }, - // { timestamp: 1495756800, value: 162.83 }, - // { timestamp: 1495843200, value: 156.63 }, - // { timestamp: 1495929600, value: 172.86 }, - // { timestamp: 1496016000, value: 194.17 }, - // { timestamp: 1496102400, value: 228.58 }, - // { timestamp: 1496188800, value: 228.64 }, - // { timestamp: 1496275200, value: 220.7 }, - // { timestamp: 1496361600, value: 222.04 }, - // { timestamp: 1496448000, value: 224.3 }, - // { timestamp: 1496534400, value: 244.96 }, - // { timestamp: 1496620800, value: 247.75 }, - // { timestamp: 1496707200, value: 264.26 }, - // { timestamp: 1496793600, value: 255.77 }, - // { timestamp: 1496880000, value: 259.41 }, - // { timestamp: 1496966400, value: 279.11 }, - // { timestamp: 1497052800, value: 335.95 }, - // { timestamp: 1497139200, value: 339.68 }, - // { timestamp: 1497225600, value: 394.66 }, - // { timestamp: 1497312000, value: 388.09 }, - // { timestamp: 1497398400, value: 343.84 }, - // { timestamp: 1497484800, value: 344.68 }, - // { timestamp: 1497571200, value: 353.61 }, - // { timestamp: 1497657600, value: 368.1 }, - // { timestamp: 1497744000, value: 351.53 }, - // { timestamp: 1497830400, value: 358.2 }, - // { timestamp: 1497916800, value: 350.53 }, - // { timestamp: 1498003200, value: 325.3 }, - // { timestamp: 1498089600, value: 320.97 }, - // { timestamp: 1498176000, value: 326.85 }, - // { timestamp: 1498262400, value: 304.54 }, - // { timestamp: 1498348800, value: 279.36 }, - // { timestamp: 1498435200, value: 253.68 }, - // { timestamp: 1498521600, value: 286.14 }, - // { timestamp: 1498608000, value: 315.86 }, - // { timestamp: 1498694400, value: 292.9 }, - // { timestamp: 1498780800, value: 280.68 }, - // { timestamp: 1498867200, value: 261 }, - // { timestamp: 1498953600, value: 283.99 }, - // { timestamp: 1499040000, value: 276.41 }, - // { timestamp: 1499126400, value: 269.05 }, - // { timestamp: 1499212800, value: 266 }, - // { timestamp: 1499299200, value: 265.88 }, - // { timestamp: 1499385600, value: 240.94 }, - // { timestamp: 1499472000, value: 245.67 }, - // { timestamp: 1499558400, value: 237.72 }, - // { timestamp: 1499644800, value: 205.76 }, - // { timestamp: 1499731200, value: 190.55 }, - // { timestamp: 1499817600, value: 224.15 }, - // { timestamp: 1499904000, value: 205.41 }, - // { timestamp: 1499990400, value: 197.14 }, - // { timestamp: 1500076800, value: 169.1 }, - // { timestamp: 1500163200, value: 155.42 }, - // { timestamp: 1500249600, value: 189.97 }, - // { timestamp: 1500336000, value: 227.09 }, - // { timestamp: 1500422400, value: 194.41 }, - // { timestamp: 1500508800, value: 226.33 }, - // { timestamp: 1500595200, value: 216.33 }, - // { timestamp: 1500681600, value: 230.47 }, - // { timestamp: 1500768000, value: 228.32 }, - // { timestamp: 1500854400, value: 225.48 }, - // { timestamp: 1500940800, value: 203.59 }, - // { timestamp: 1501027200, value: 202.88 }, - // { timestamp: 1501113600, value: 202.93 }, - // { timestamp: 1501200000, value: 191.21 }, - // { timestamp: 1501286400, value: 206.14 }, - // { timestamp: 1501372800, value: 196.78 }, - // { timestamp: 1501459200, value: 201.33 }, - // { timestamp: 1501545600, value: 225.9 }, - // { timestamp: 1501632000, value: 218.12 }, - // { timestamp: 1501718400, value: 224.39 }, - // { timestamp: 1501804800, value: 220.6 }, - // { timestamp: 1501891200, value: 253.09 }, - // { timestamp: 1501977600, value: 264.56 }, - // { timestamp: 1502064000, value: 269.94 }, - // { timestamp: 1502150400, value: 296.51 }, - // { timestamp: 1502236800, value: 295.28 }, - // { timestamp: 1502323200, value: 298.28 }, - // { timestamp: 1502409600, value: 309.32 }, - // { timestamp: 1502496000, value: 308.02 }, - // { timestamp: 1502582400, value: 296.62 }, - // { timestamp: 1502668800, value: 299.16 }, - // { timestamp: 1502755200, value: 286.52 }, - // { timestamp: 1502841600, value: 301.38 }, - // { timestamp: 1502928000, value: 300.3 }, - // { timestamp: 1503014400, value: 292.62 }, - // { timestamp: 1503100800, value: 293.02 }, - // { timestamp: 1503187200, value: 298.2 }, - // { timestamp: 1503273600, value: 321.85 }, - // { timestamp: 1503360000, value: 313.37 }, - // { timestamp: 1503446400, value: 317.4 }, - // { timestamp: 1503532800, value: 325.28 }, - // { timestamp: 1503619200, value: 330.06 }, - // { timestamp: 1503705600, value: 332.86 }, - // { timestamp: 1503792000, value: 347.88 }, - // { timestamp: 1503878400, value: 347.66 }, - // { timestamp: 1503964800, value: 372.35 }, - // { timestamp: 1504051200, value: 383.86 }, - // { timestamp: 1504137600, value: 388.33 }, - // { timestamp: 1504224000, value: 391.42 }, - // { timestamp: 1504310400, value: 351.03 }, - // { timestamp: 1504396800, value: 352.45 }, - // { timestamp: 1504483200, value: 303.7 }, - // { timestamp: 1504569600, value: 317.94 }, - // { timestamp: 1504656000, value: 338.92 }, - // { timestamp: 1504742400, value: 335.37 }, - // { timestamp: 1504828800, value: 306.72 }, - // { timestamp: 1504915200, value: 303.79 }, - // { timestamp: 1505001600, value: 299.21 }, - // { timestamp: 1505088000, value: 297.95 }, - // { timestamp: 1505174400, value: 294.1 }, - // { timestamp: 1505260800, value: 275.84 }, - // { timestamp: 1505347200, value: 223.14 }, - // { timestamp: 1505433600, value: 259.57 }, - // { timestamp: 1505520000, value: 254.49 }, - // { timestamp: 1505606400, value: 258.4 }, - // { timestamp: 1505692800, value: 297.53 }, - // { timestamp: 1505779200, value: 283 }, - // { timestamp: 1505865600, value: 283.56 }, - // { timestamp: 1505952000, value: 257.77 }, - // { timestamp: 1506038400, value: 262.94 }, - // { timestamp: 1506124800, value: 286.14 }, - // { timestamp: 1506211200, value: 282.6 }, - // { timestamp: 1506297600, value: 294.89 }, - // { timestamp: 1506384000, value: 288.64 }, - // { timestamp: 1506470400, value: 309.97 }, - // { timestamp: 1506556800, value: 302.77 }, - // { timestamp: 1506643200, value: 292.58 }, - // { timestamp: 1506729600, value: 302.77 }, - // { timestamp: 1506816000, value: 303.95 }, - // { timestamp: 1506902400, value: 296.81 }, - // { timestamp: 1506988800, value: 291.81 }, - // { timestamp: 1507075200, value: 291.68 }, - // { timestamp: 1507161600, value: 294.99 }, - // { timestamp: 1507248000, value: 308.33 }, - // { timestamp: 1507334400, value: 311.26 }, - // { timestamp: 1507420800, value: 309.49 }, - // { timestamp: 1507507200, value: 296.95 }, - // { timestamp: 1507593600, value: 298.46 }, - // { timestamp: 1507680000, value: 302.86 }, - // { timestamp: 1507766400, value: 302.89 }, - // { timestamp: 1507852800, value: 336.83 }, - // { timestamp: 1507939200, value: 338.81 }, - // { timestamp: 1508025600, value: 336.58 }, - // { timestamp: 1508112000, value: 334.23 }, - // { timestamp: 1508198400, value: 316.14 }, - // { timestamp: 1508284800, value: 313.54 }, - // { timestamp: 1508371200, value: 307.41 }, - // { timestamp: 1508457600, value: 303.08 }, - // { timestamp: 1508544000, value: 299.55 }, - // { timestamp: 1508630400, value: 294.03 }, - // { timestamp: 1508716800, value: 285.27 }, - // { timestamp: 1508803200, value: 296.5 }, - // { timestamp: 1508889600, value: 296.35 }, - // { timestamp: 1508976000, value: 295.54 }, - // { timestamp: 1509062400, value: 296.36 }, - // { timestamp: 1509148800, value: 293.35 }, - // { timestamp: 1509235200, value: 304.04 }, - // { timestamp: 1509321600, value: 306.8 }, - // { timestamp: 1509408000, value: 303.64 }, - // { timestamp: 1509494400, value: 289.42 }, - // { timestamp: 1509580800, value: 284.92 }, - // { timestamp: 1509667200, value: 304.51 }, - // { timestamp: 1509753600, value: 300.04 }, - // { timestamp: 1509840000, value: 296.23 }, - // { timestamp: 1509926400, value: 296.82 }, - // { timestamp: 1510012800, value: 291.84 }, - // { timestamp: 1510099200, value: 307.35 }, - // { timestamp: 1510185600, value: 319.66 }, - // { timestamp: 1510272000, value: 296.86 }, - // { timestamp: 1510358400, value: 314.23 }, - // { timestamp: 1510444800, value: 306.02 }, - // { timestamp: 1510531200, value: 314.6 }, - // { timestamp: 1510617600, value: 334.72 }, - // { timestamp: 1510704000, value: 331.2 }, - // { timestamp: 1510790400, value: 330.32 }, - // { timestamp: 1510876800, value: 331.72 }, - // { timestamp: 1510963200, value: 346.65 }, - // { timestamp: 1511049600, value: 354.6 }, - // { timestamp: 1511136000, value: 367.71 }, - // { timestamp: 1511222400, value: 360.52 }, - // { timestamp: 1511308800, value: 380.84 }, - // { timestamp: 1511395200, value: 406.57 }, - // { timestamp: 1511481600, value: 470.43 }, - // { timestamp: 1511568000, value: 464.61 }, - // { timestamp: 1511654400, value: 470.54 }, - // { timestamp: 1511740800, value: 475.24 }, - // { timestamp: 1511827200, value: 466.27 }, - // { timestamp: 1511913600, value: 427.42 }, - // { timestamp: 1512000000, value: 434.85 }, - // { timestamp: 1512086400, value: 461.58 }, - // { timestamp: 1512172800, value: 457.96 }, - // { timestamp: 1512259200, value: 462.81 }, - // { timestamp: 1512345600, value: 466.93 }, - // { timestamp: 1512432000, value: 453.96 }, - // { timestamp: 1512518400, value: 422.48 }, - // { timestamp: 1512604800, value: 421.15 }, - // { timestamp: 1512691200, value: 451.74 }, - // { timestamp: 1512777600, value: 472.86 }, - // { timestamp: 1512864000, value: 436.49 }, - // { timestamp: 1512950400, value: 513.29 }, - // { timestamp: 1513036800, value: 656.52 }, - // { timestamp: 1513123200, value: 699.09 }, - // { timestamp: 1513209600, value: 693.58 }, - // { timestamp: 1513296000, value: 684.27 }, - // { timestamp: 1513382400, value: 692.83 }, - // { timestamp: 1513468800, value: 717.71 }, - // { timestamp: 1513555200, value: 785.99 }, - // { timestamp: 1513641600, value: 812.5 }, - // { timestamp: 1513728000, value: 799.17 }, - // { timestamp: 1513814400, value: 789.39 }, - // { timestamp: 1513900800, value: 657.83 }, - // { timestamp: 1513987200, value: 700.44 }, - // { timestamp: 1514073600, value: 675.91 }, - // { timestamp: 1514160000, value: 723.14 }, - // { timestamp: 1514246400, value: 753.4 }, - // { timestamp: 1514332800, value: 739.94 }, - // { timestamp: 1514419200, value: 716.69 }, - // { timestamp: 1514505600, value: 739.6 }, - // { timestamp: 1514592000, value: 692.99 }, - // { timestamp: 1514678400, value: 741.13 }, - // { timestamp: 1514764800, value: 756.2 }, - // { timestamp: 1514851200, value: 861.97 }, - // { timestamp: 1514937600, value: 941.1 }, - // { timestamp: 1515024000, value: 944.83 }, - // { timestamp: 1515110400, value: 967.13 }, - // { timestamp: 1515196800, value: 1006.41 }, - // { timestamp: 1515283200, value: 1117.75 }, - // { timestamp: 1515369600, value: 1136.11 }, - // { timestamp: 1515456000, value: 1289.24 }, - // { timestamp: 1515542400, value: 1248.99 }, - // { timestamp: 1515628800, value: 1139.32 }, - // { timestamp: 1515715200, value: 1261.03 }, - // { timestamp: 1515801600, value: 1385.02 }, - // { timestamp: 1515888000, value: 1359.48 }, - // { timestamp: 1515974400, value: 1278.69 }, - // { timestamp: 1516060800, value: 1050.26 }, - // { timestamp: 1516147200, value: 1024.69 }, - // { timestamp: 1516233600, value: 1012.97 }, - // { timestamp: 1516320000, value: 1037.36 }, - // { timestamp: 1516406400, value: 1150.5 }, - // { timestamp: 1516492800, value: 1049.09 }, - // { timestamp: 1516579200, value: 999.64 }, - // { timestamp: 1516665600, value: 984.47 }, - // { timestamp: 1516752000, value: 1061.78 }, - // { timestamp: 1516838400, value: 1046.37 }, - // { timestamp: 1516924800, value: 1048.58 }, - // { timestamp: 1517011200, value: 1109.08 }, - // { timestamp: 1517097600, value: 1231.58 }, - // { timestamp: 1517184000, value: 1169.96 }, - // { timestamp: 1517270400, value: 1063.75 }, - // { timestamp: 1517356800, value: 1111.31 }, - // { timestamp: 1517443200, value: 1026.19 }, - // { timestamp: 1517529600, value: 917.47 }, - // { timestamp: 1517616000, value: 970.87 }, - // { timestamp: 1517702400, value: 827.59 }, - // { timestamp: 1517788800, value: 695.08 }, - // { timestamp: 1517875200, value: 785.01 }, - // { timestamp: 1517961600, value: 751.81 }, - // { timestamp: 1518048000, value: 813.55 }, - // { timestamp: 1518134400, value: 877.88 }, - // { timestamp: 1518220800, value: 850.75 }, - // { timestamp: 1518307200, value: 811.24 }, - // { timestamp: 1518393600, value: 865.27 }, - // { timestamp: 1518480000, value: 840.98 }, - // { timestamp: 1518566400, value: 920.11 }, - // { timestamp: 1518652800, value: 927.95 }, - // { timestamp: 1518739200, value: 938.02 }, - // { timestamp: 1518825600, value: 974.77 }, - // { timestamp: 1518912000, value: 913.9 }, - // { timestamp: 1518998400, value: 939.79 }, - // { timestamp: 1519084800, value: 885.52 }, - // { timestamp: 1519171200, value: 840.1 }, - // { timestamp: 1519257600, value: 804.63 }, - // { timestamp: 1519344000, value: 854.7 }, - // { timestamp: 1519430400, value: 833.49 }, - // { timestamp: 1519516800, value: 840.28 }, - // { timestamp: 1519603200, value: 867.62 }, { timestamp: 1519689600, value: 871.58 }, { timestamp: 1519776000, value: 851.5 }, { timestamp: 1519862400, value: 869.87 }, @@ -3023,107 +2080,364 @@ export default [ { timestamp: 1555804800, value: 170.3 }, { timestamp: 1555891200, value: 171.9 }, { timestamp: 1555977600, value: 170.66 }, - // { timestamp: 1556064000, value: 166.05 }, - // { timestamp: 1556150400, value: 152.99 }, - // { timestamp: 1556236800, value: 156.45 }, - // { timestamp: 1556323200, value: 158.36 }, - // { timestamp: 1556409600, value: 158.05 }, - // { timestamp: 1556496000, value: 156.69 }, - // { timestamp: 1556582400, value: 164.39 }, - // { timestamp: 1556668800, value: 161.42 }, - // { timestamp: 1556755200, value: 161.29 }, - // { timestamp: 1556841600, value: 168.24 }, - // { timestamp: 1556928000, value: 163.61 }, - // { timestamp: 1557014400, value: 163.94 }, - // { timestamp: 1557100800, value: 173.7 }, - // { timestamp: 1557187200, value: 168.59 }, - // { timestamp: 1557273600, value: 171.42 }, - // { timestamp: 1557360000, value: 170.86 }, - // { timestamp: 1557446400, value: 172.5 }, - // { timestamp: 1557532800, value: 192.44 }, - // { timestamp: 1557619200, value: 188.14 }, - // { timestamp: 1557705600, value: 195.83 }, - // { timestamp: 1557792000, value: 217.16 }, - // { timestamp: 1557878400, value: 248.64 }, - // { timestamp: 1557964800, value: 264.47 }, - // { timestamp: 1558051200, value: 244.84 }, - // { timestamp: 1558137600, value: 233.96 }, - // { timestamp: 1558224000, value: 260.9 }, - // { timestamp: 1558310400, value: 252.1 }, - // { timestamp: 1558396800, value: 254.94 }, - // { timestamp: 1558483200, value: 243.46 }, - // { timestamp: 1558569600, value: 245.6 }, - // { timestamp: 1558656000, value: 249.61 }, - // { timestamp: 1558742400, value: 251.49 }, - // { timestamp: 1558828800, value: 268.26 }, - // { timestamp: 1558915200, value: 271.83 }, - // { timestamp: 1559001600, value: 271.45 }, - // { timestamp: 1559088000, value: 269.6 }, - // { timestamp: 1559174400, value: 254.45 }, - // { timestamp: 1559260800, value: 267.42 }, - // { timestamp: 1559347200, value: 264.71 }, - // { timestamp: 1559433600, value: 269.31 }, - // { timestamp: 1559520000, value: 249.61 }, - // { timestamp: 1559606400, value: 241.1 }, - // { timestamp: 1559692800, value: 246.16 }, - // { timestamp: 1559779200, value: 249.43 }, - // { timestamp: 1559865600, value: 249.54 }, - // { timestamp: 1559952000, value: 244.4 }, - // { timestamp: 1560038400, value: 231.43 }, - // { timestamp: 1560124800, value: 247.96 }, - // { timestamp: 1560211200, value: 245.16 }, - // { timestamp: 1560297600, value: 263.05 }, - // { timestamp: 1560384000, value: 255.09 }, - // { timestamp: 1560470400, value: 263.76 }, - // { timestamp: 1560556800, value: 269.22 }, - // { timestamp: 1560643200, value: 268.53 }, - // { timestamp: 1560729600, value: 273.92 }, - // { timestamp: 1560816000, value: 264.51 }, - // { timestamp: 1560902400, value: 269.01 }, - // { timestamp: 1560988800, value: 272.21 }, - // { timestamp: 1561075200, value: 296.03 }, - // { timestamp: 1561161600, value: 309.41 }, - // { timestamp: 1561248000, value: 307.37 }, - // { timestamp: 1561334400, value: 311.22 }, - // { timestamp: 1561420800, value: 316.53 }, - // { timestamp: 1561507200, value: 333.76 }, - // { timestamp: 1561593600, value: 294.07 }, - // { timestamp: 1561680000, value: 309.37 }, - // { timestamp: 1561766400, value: 317.32 }, - // { timestamp: 1561852800, value: 290.15 }, - // { timestamp: 1561939200, value: 294.17 }, - // { timestamp: 1562025600, value: 291.61 }, - // { timestamp: 1562112000, value: 302.17 }, - // { timestamp: 1562198400, value: 283.1 }, - // { timestamp: 1562284800, value: 287.9 }, - // { timestamp: 1562371200, value: 287.98 }, - // { timestamp: 1562457600, value: 306.43 }, - // { timestamp: 1562544000, value: 313.34 }, - // { timestamp: 1562630400, value: 307.89 }, - // { timestamp: 1562716800, value: 288.64 }, - // { timestamp: 1562803200, value: 268.56 }, - // { timestamp: 1562889600, value: 275.41 }, - // { timestamp: 1562976000, value: 268.94 }, - // { timestamp: 1563062400, value: 226.16 }, - // { timestamp: 1563148800, value: 228.14 }, - // { timestamp: 1563235200, value: 198.71 }, - // { timestamp: 1563321600, value: 211.29 }, - // { timestamp: 1563408000, value: 226.09 }, - // { timestamp: 1563494400, value: 221.28 }, - // { timestamp: 1563580800, value: 228.71 }, - // { timestamp: 1563667200, value: 225.4 }, - // { timestamp: 1563753600, value: 217.22 }, - // { timestamp: 1563840000, value: 212.21 }, - // { timestamp: 1563926400, value: 216.66 }, - // { timestamp: 1564012800, value: 219.41 }, - // { timestamp: 1564099200, value: 219.23 }, - // { timestamp: 1564185600, value: 219.85 }, - // { timestamp: 1564272000, value: 211.15 }, - // { timestamp: 1564358400, value: 211.52 }, - // { timestamp: 1564444800, value: 209.82 }, - // { timestamp: 1564531200, value: 218.7 }, - // { timestamp: 1564617600, value: 217.51 }, - // { timestamp: 1564704000, value: 217.7 }, - // { timestamp: 1564790400, value: 217.73 }, - // { timestamp: 1564876800, value: 221.72 }, +]; + +export const dataColored1 = [ + { timestamp: 1451865600, value: 0.95 }, + { timestamp: 1451952000, value: 0.95 }, + { timestamp: 1452038400, value: 0.96 }, + { timestamp: 1452124800, value: 0.95 }, + { timestamp: 1452211200, value: 0.99 }, + { timestamp: 1452297600, value: 0.99 }, + { timestamp: 1452384000, value: 0.99 }, + { timestamp: 1452470400, value: 1.05 }, + { timestamp: 1452556800, value: 1.23 }, + { timestamp: 1452643200, value: 1.13 }, + { timestamp: 1452729600, value: 1.16 }, + { timestamp: 1452816000, value: 1.22 }, + { timestamp: 1452902400, value: 1.22 }, + { timestamp: 1452988800, value: 1.31 }, + { timestamp: 1453075200, value: 1.47 }, + { timestamp: 1453161600, value: 1.37 }, + { timestamp: 1453248000, value: 1.53 }, + { timestamp: 1453334400, value: 1.54 }, + { timestamp: 1453420800, value: 1.52 }, + { timestamp: 1453507200, value: 2.03 }, + { timestamp: 1453593600, value: 2.1 }, + { timestamp: 1453680000, value: 2.5 }, + { timestamp: 1453766400, value: 2.3 }, + { timestamp: 1453852800, value: 2.42 }, + { timestamp: 1453939200, value: 2.55 }, + { timestamp: 1454025600, value: 2.41 }, + { timestamp: 1454112000, value: 2.43 }, + { timestamp: 1454198400, value: 2.2 }, + { timestamp: 1454284800, value: 2.17 }, + { timestamp: 1454371200, value: 2.45 }, + { timestamp: 1454457600, value: 2.53 }, + { timestamp: 1454544000, value: 2.57 }, + { timestamp: 1454630400, value: 2.57 }, + { timestamp: 1454716800, value: 2.53 }, + { timestamp: 1454803200, value: 3 }, + { timestamp: 1454889600, value: 3.16 }, + { timestamp: 1454976000, value: 3.76 }, + { timestamp: 1455062400, value: 4.35 }, + { timestamp: 1455148800, value: 6.38 }, + { timestamp: 1455235200, value: 5.27 }, + { timestamp: 1455321600, value: 5.22 }, + { timestamp: 1455408000, value: 5.2 }, + { timestamp: 1455494400, value: 5.22 }, + { timestamp: 1455580800, value: 4.25 }, + { timestamp: 1455667200, value: 3.86 }, + { timestamp: 1455753600, value: 4.36 }, + { timestamp: 1455840000, value: 4.45 }, + { timestamp: 1455926400, value: 4.37 }, + { timestamp: 1456012800, value: 4.63 }, + { timestamp: 1456099200, value: 5.6 }, + { timestamp: 1456185600, value: 5.7 }, + { timestamp: 1456272000, value: 6.23 }, + { timestamp: 1456358400, value: 5.93 }, + { timestamp: 1456444800, value: 6.03 }, + { timestamp: 1456531200, value: 6.31 }, + { timestamp: 1456617600, value: 6.5 }, + { timestamp: 1456704000, value: 6.35 }, + { timestamp: 1456790400, value: 7.59 }, + { timestamp: 1456876800, value: 8.7 }, + { timestamp: 1456963200, value: 9.35 }, + { timestamp: 1457049600, value: 9.96 }, + { timestamp: 1457136000, value: 11 }, + { timestamp: 1457222400, value: 10.98 }, + { timestamp: 1457308800, value: 9.5 }, + { timestamp: 1457395200, value: 9.88 }, + { timestamp: 1457481600, value: 11.55 }, + { timestamp: 1457568000, value: 11.11 }, + { timestamp: 1457654400, value: 11.25 }, + { timestamp: 1457740800, value: 13.25 }, + { timestamp: 1457827200, value: 15 }, + { timestamp: 1457913600, value: 12.5 }, + { timestamp: 1458000000, value: 13.09 }, + { timestamp: 1458086400, value: 12.92 }, + { timestamp: 1458172800, value: 11.14 }, + { timestamp: 1458259200, value: 10.75 }, + { timestamp: 1458345600, value: 10.55 }, + { timestamp: 1458432000, value: 10.06 }, + { timestamp: 1458518400, value: 11.97 }, + { timestamp: 1458604800, value: 10.96 }, + { timestamp: 1458691200, value: 12.29 }, +]; +export const dataColored2 = [ + { timestamp: 1458777600, value: 11.13 }, + { timestamp: 1458864000, value: 10.69 }, + { timestamp: 1458950400, value: 11 }, + { timestamp: 1459036800, value: 10.5 }, + { timestamp: 1459123200, value: 11.58 }, + { timestamp: 1459209600, value: 11.73 }, + { timestamp: 1459296000, value: 11.88 }, + { timestamp: 1459382400, value: 11.41 }, + { timestamp: 1459468800, value: 11.63 }, + { timestamp: 1459555200, value: 11.61 }, + { timestamp: 1459641600, value: 11.58 }, + { timestamp: 1459728000, value: 11.1 }, + { timestamp: 1459814400, value: 10.39 }, + { timestamp: 1459900800, value: 10.79 }, + { timestamp: 1459987200, value: 10.08 }, + { timestamp: 1460073600, value: 9.74 }, + { timestamp: 1460160000, value: 9.16 }, + { timestamp: 1460246400, value: 8.8 }, + { timestamp: 1460332800, value: 8.72 }, + { timestamp: 1460419200, value: 7.54 }, + { timestamp: 1460505600, value: 8.02 }, + { timestamp: 1460592000, value: 8.48 }, + { timestamp: 1460678400, value: 8.22 }, + { timestamp: 1460764800, value: 8.48 }, + { timestamp: 1460851200, value: 9.45 }, + { timestamp: 1460937600, value: 8.92 }, + { timestamp: 1461024000, value: 8.77 }, + { timestamp: 1461110400, value: 8.54 }, + { timestamp: 1461196800, value: 8.16 }, + { timestamp: 1461283200, value: 7.83 }, + { timestamp: 1461369600, value: 8.31 }, + { timestamp: 1461456000, value: 8 }, + { timestamp: 1461542400, value: 7.43 }, + { timestamp: 1461628800, value: 7.5 }, + { timestamp: 1461715200, value: 7.77 }, + { timestamp: 1461801600, value: 7.3 }, + { timestamp: 1461888000, value: 7.52 }, + { timestamp: 1461974400, value: 8.83 }, + { timestamp: 1462060800, value: 8.76 }, + { timestamp: 1462147200, value: 10.03 }, + { timestamp: 1462233600, value: 9.37 }, + { timestamp: 1462320000, value: 9.43 }, + { timestamp: 1462406400, value: 9.79 }, + { timestamp: 1462492800, value: 9.27 }, + { timestamp: 1462579200, value: 9.3 }, + { timestamp: 1462665600, value: 9.44 }, + { timestamp: 1462752000, value: 9.32 }, + { timestamp: 1462838400, value: 9.39 }, + { timestamp: 1462924800, value: 9.97 }, + { timestamp: 1463011200, value: 10.1 }, + { timestamp: 1463097600, value: 10.48 }, + { timestamp: 1463184000, value: 10.14 }, + { timestamp: 1463270400, value: 9.94 }, + { timestamp: 1463356800, value: 11.04 }, + { timestamp: 1463443200, value: 12.26 }, + { timestamp: 1463529600, value: 13.29 }, + { timestamp: 1463616000, value: 14.49 }, + { timestamp: 1463702400, value: 13.73 }, + { timestamp: 1463788800, value: 13.95 }, + { timestamp: 1463875200, value: 14.21 }, + { timestamp: 1463961600, value: 13.45 }, + { timestamp: 1464048000, value: 12.62 }, + { timestamp: 1464134400, value: 12.53 }, + { timestamp: 1464220800, value: 12.37 }, + { timestamp: 1464307200, value: 11.11 }, + { timestamp: 1464393600, value: 11.56 }, + { timestamp: 1464480000, value: 12.28 }, + { timestamp: 1464566400, value: 12.48 }, + { timestamp: 1464652800, value: 13.85 }, + { timestamp: 1464739200, value: 13.83 }, + { timestamp: 1464825600, value: 13.78 }, + { timestamp: 1464912000, value: 13.78 }, + { timestamp: 1464998400, value: 13.66 }, + { timestamp: 1465084800, value: 13.85 }, + { timestamp: 1465171200, value: 13.96 }, + { timestamp: 1465257600, value: 14.41 }, + { timestamp: 1465344000, value: 14.44 }, + { timestamp: 1465430400, value: 14.49 }, + { timestamp: 1465516800, value: 13.97 }, + { timestamp: 1465603200, value: 14.01 }, + { timestamp: 1465689600, value: 15.57 }, + { timestamp: 1465776000, value: 17.55 }, + { timestamp: 1465862400, value: 18.7 }, + { timestamp: 1465948800, value: 18.3 }, + { timestamp: 1466035200, value: 20.61 }, + { timestamp: 1466121600, value: 15.49 }, + { timestamp: 1466208000, value: 11.36 }, + { timestamp: 1466294400, value: 12.33 }, + { timestamp: 1466380800, value: 11.7 }, + { timestamp: 1466467200, value: 12.71 }, + { timestamp: 1466553600, value: 13.21 }, + { timestamp: 1466640000, value: 13.58 }, + { timestamp: 1466726400, value: 14.25 }, + { timestamp: 1466812800, value: 14.28 }, + { timestamp: 1466899200, value: 13.82 }, + { timestamp: 1466985600, value: 14.04 }, + { timestamp: 1467072000, value: 12.15 }, + { timestamp: 1467158400, value: 12.76 }, + { timestamp: 1467244800, value: 12.4 }, + { timestamp: 1467331200, value: 12.23 }, + { timestamp: 1467417600, value: 12.04 }, + { timestamp: 1467504000, value: 11.85 }, + { timestamp: 1467590400, value: 11.34 }, + { timestamp: 1467676800, value: 10.45 }, + { timestamp: 1467763200, value: 10.51 }, + { timestamp: 1467849600, value: 10.07 }, + { timestamp: 1467936000, value: 11.3 }, + { timestamp: 1468022400, value: 10.92 }, + { timestamp: 1468108800, value: 10.97 }, + { timestamp: 1468195200, value: 10.58 }, + { timestamp: 1468281600, value: 10.54 }, + { timestamp: 1468368000, value: 10.44 }, + { timestamp: 1468454400, value: 11.55 }, + { timestamp: 1468540800, value: 11.88 }, + { timestamp: 1468627200, value: 11.59 }, + { timestamp: 1468713600, value: 11.19 }, + { timestamp: 1468800000, value: 11.03 }, + { timestamp: 1468886400, value: 11.63 }, + { timestamp: 1468972800, value: 12.54 }, + { timestamp: 1469059200, value: 12.66 }, + { timestamp: 1469145600, value: 14.82 }, + { timestamp: 1469232000, value: 14.4 }, + { timestamp: 1469318400, value: 12.63 }, + { timestamp: 1469404800, value: 13.84 }, + { timestamp: 1469491200, value: 12.08 }, + { timestamp: 1469577600, value: 13.05 }, + { timestamp: 1469664000, value: 12.87 }, + { timestamp: 1469750400, value: 12.87 }, + { timestamp: 1469836800, value: 12.57 }, + { timestamp: 1469923200, value: 11.86 }, + { timestamp: 1470009600, value: 11.04 }, + { timestamp: 1470096000, value: 8.3 }, +]; +export const dataColored3 = [ + { timestamp: 1470182400, value: 10.42 }, + { timestamp: 1470268800, value: 11.21 }, + { timestamp: 1470355200, value: 11.05 }, + { timestamp: 1470441600, value: 10.95 }, + { timestamp: 1470528000, value: 10.98 }, + { timestamp: 1470614400, value: 11.29 }, + { timestamp: 1470700800, value: 12.22 }, + { timestamp: 1470787200, value: 12.22 }, + { timestamp: 1470873600, value: 11.68 }, + { timestamp: 1470960000, value: 11.78 }, + { timestamp: 1471046400, value: 11.56 }, + { timestamp: 1471132800, value: 11.21 }, + { timestamp: 1471219200, value: 11.21 }, + { timestamp: 1471305600, value: 11.17 }, + { timestamp: 1471392000, value: 10.77 }, + { timestamp: 1471478400, value: 10.77 }, + { timestamp: 1471564800, value: 10.71 }, + { timestamp: 1471651200, value: 11.28 }, + { timestamp: 1471737600, value: 11.14 }, + { timestamp: 1471824000, value: 11.07 }, + { timestamp: 1471910400, value: 11.01 }, + { timestamp: 1471996800, value: 11.01 }, + { timestamp: 1472083200, value: 11.35 }, + { timestamp: 1472169600, value: 11.26 }, + { timestamp: 1472256000, value: 11.19 }, + { timestamp: 1472342400, value: 10.99 }, + { timestamp: 1472428800, value: 10.95 }, + { timestamp: 1472515200, value: 11.21 }, + { timestamp: 1472601600, value: 11.55 }, + { timestamp: 1472688000, value: 12.21 }, + { timestamp: 1472774400, value: 12.08 }, + { timestamp: 1472860800, value: 11.85 }, + { timestamp: 1472947200, value: 11.71 }, + { timestamp: 1473033600, value: 11.75 }, + { timestamp: 1473120000, value: 11.7 }, + { timestamp: 1473206400, value: 11.59 }, + { timestamp: 1473292800, value: 11.39 }, + { timestamp: 1473379200, value: 11.72 }, + { timestamp: 1473465600, value: 12.05 }, + { timestamp: 1473552000, value: 11.64 }, + { timestamp: 1473638400, value: 11.89 }, + { timestamp: 1473724800, value: 11.92 }, + { timestamp: 1473811200, value: 11.97 }, + { timestamp: 1473897600, value: 11.96 }, + { timestamp: 1473984000, value: 12.61 }, + { timestamp: 1474070400, value: 12.83 }, + { timestamp: 1474156800, value: 12.39 }, + { timestamp: 1474243200, value: 12.93 }, + { timestamp: 1474329600, value: 14.72 }, + { timestamp: 1474416000, value: 13.72 }, + { timestamp: 1474502400, value: 13.11 }, + { timestamp: 1474588800, value: 13.36 }, + { timestamp: 1474675200, value: 12.91 }, + { timestamp: 1474761600, value: 13.05 }, + { timestamp: 1474848000, value: 12.89 }, + { timestamp: 1474934400, value: 13.09 }, + { timestamp: 1475020800, value: 13.3 }, + { timestamp: 1475107200, value: 13.17 }, + { timestamp: 1475193600, value: 13.24 }, + { timestamp: 1475280000, value: 13.21 }, + { timestamp: 1475366400, value: 13.23 }, + { timestamp: 1475452800, value: 13.45 }, + { timestamp: 1475539200, value: 13.32 }, + { timestamp: 1475625600, value: 13.09 }, + { timestamp: 1475712000, value: 12.87 }, + { timestamp: 1475798400, value: 12.68 }, + { timestamp: 1475884800, value: 12.24 }, + { timestamp: 1475971200, value: 12.06 }, + { timestamp: 1476057600, value: 11.74 }, + { timestamp: 1476144000, value: 11.75 }, + { timestamp: 1476230400, value: 11.77 }, + { timestamp: 1476316800, value: 12.02 }, + { timestamp: 1476403200, value: 11.9 }, + { timestamp: 1476489600, value: 11.96 }, + { timestamp: 1476576000, value: 11.93 }, + { timestamp: 1476662400, value: 11.98 }, + { timestamp: 1476748800, value: 12.5 }, + { timestamp: 1476835200, value: 11.98 }, + { timestamp: 1476921600, value: 12.05 }, + { timestamp: 1477008000, value: 12.07 }, + { timestamp: 1477094400, value: 12.06 }, + { timestamp: 1477180800, value: 11.95 }, + { timestamp: 1477267200, value: 11.93 }, + { timestamp: 1477353600, value: 11.38 }, + { timestamp: 1477440000, value: 11.5 }, + { timestamp: 1477526400, value: 11.43 }, + { timestamp: 1477612800, value: 11.08 }, + { timestamp: 1477699200, value: 10.39 }, + { timestamp: 1477785600, value: 11.22 }, + { timestamp: 1477872000, value: 10.91 }, + { timestamp: 1477958400, value: 10.75 }, + { timestamp: 1478044800, value: 10.82 }, + { timestamp: 1478131200, value: 10.86 }, + { timestamp: 1478217600, value: 11.13 }, + { timestamp: 1478304000, value: 11.11 }, + { timestamp: 1478390400, value: 10.97 }, + { timestamp: 1478476800, value: 10.9 }, + { timestamp: 1478563200, value: 10.86 }, + { timestamp: 1478649600, value: 10.64 }, + { timestamp: 1478736000, value: 10.52 }, + { timestamp: 1478822400, value: 10.29 }, + { timestamp: 1478908800, value: 9.96 }, + { timestamp: 1478995200, value: 10.13 }, + { timestamp: 1479081600, value: 10 }, + { timestamp: 1479168000, value: 10.22 }, + { timestamp: 1479254400, value: 10.01 }, + { timestamp: 1479340800, value: 9.95 }, + { timestamp: 1479427200, value: 9.53 }, + { timestamp: 1479513600, value: 9.7 }, + { timestamp: 1479600000, value: 9.57 }, + { timestamp: 1479686400, value: 9.56 }, + { timestamp: 1479772800, value: 9.84 }, + { timestamp: 1479859200, value: 9.78 }, + { timestamp: 1479945600, value: 9.22 }, + { timestamp: 1480032000, value: 9.39 }, + { timestamp: 1480118400, value: 9.34 }, + { timestamp: 1480204800, value: 8.91 }, + { timestamp: 1480291200, value: 8.67 }, + { timestamp: 1480377600, value: 8.18 }, + { timestamp: 1480464000, value: 8.59 }, + { timestamp: 1480550400, value: 8.44 }, + { timestamp: 1480636800, value: 7.65 }, + { timestamp: 1480723200, value: 7.9 }, + { timestamp: 1480809600, value: 7.54 }, + { timestamp: 1480896000, value: 6.69 }, + { timestamp: 1480982400, value: 7.61 }, + { timestamp: 1481068800, value: 8.35 }, + { timestamp: 1481155200, value: 8.3 }, + { timestamp: 1481241600, value: 8.52 }, + { timestamp: 1481328000, value: 8.09 }, + { timestamp: 1481414400, value: 8.2 }, + { timestamp: 1481500800, value: 8.45 }, + { timestamp: 1481587200, value: 8.4 }, + { timestamp: 1481673600, value: 8.23 }, + { timestamp: 1481760000, value: 7.76 }, + { timestamp: 1481846400, value: 7.85 }, + { timestamp: 1481932800, value: 7.66 }, + { timestamp: 1482019200, value: 7.89 }, + { timestamp: 1482105600, value: 7.61 }, + { timestamp: 1482192000, value: 7.59 }, + { timestamp: 1482278400, value: 7.87 }, ]; diff --git a/src/styles/fonts.js b/src/styles/fonts.js index 72d97c29fa5..463b436911f 100644 --- a/src/styles/fonts.js +++ b/src/styles/fonts.js @@ -6,6 +6,7 @@ font.family = { SFMono: 'SFMono-Regular', SFProDisplay: 'SF Pro Display', SFProText: 'SF Pro Text', + SFProRounded: 'SF Pro Rounded', }; font.letterSpacing = { diff --git a/src/utils/deviceUtils.js b/src/utils/deviceUtils.js index c79d9a9197c..8a435363c79 100644 --- a/src/utils/deviceUtils.js +++ b/src/utils/deviceUtils.js @@ -4,6 +4,7 @@ const { height, width } = Dimensions.get('window'); const deviceUtils = {}; +deviceUtils.iPhoneXHeight = 812; deviceUtils.iPhoneXWidth = 375; deviceUtils.iPhone6Height = 667; @@ -11,6 +12,8 @@ deviceUtils.isNarrowPhone = width < deviceUtils.iPhoneXWidth; deviceUtils.isSmallPhone = height <= deviceUtils.iPhone6Height; deviceUtils.isLargePhone = width >= deviceUtils.iPhoneXWidth; +deviceUtils.isTallPhone = height >= deviceUtils.iPhoneXHeight; + deviceUtils.dimensions = { height, width, diff --git a/yarn.lock b/yarn.lock index 62c34a5acc3..29858b501c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9325,10 +9325,10 @@ react-native-store-review@^0.1.5: resolved "https://registry.yarnpkg.com/react-native-store-review/-/react-native-store-review-0.1.5.tgz#9df69786a137580748e368641698d2104519e4cf" integrity sha512-vVx7NYaQva3bGU5MdqXn4yEB+o+GPdmjqAuj7PnkepfeCS6Bi3sqniiKoXmKOKDgRTfIobBZjUkHzWeHli1+3A== -react-native-svg@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-11.0.1.tgz#e92e7e9f9cb2604333fd5014fd4edcf62fea6496" - integrity sha512-XriIwSoe9eTtKyqxpNC6POSOqmXAB9mZQOm5tMoaimEqQOMfzgYrBoF9nY6VPGmaH5dRlWBqnnBf389APiZFcQ== +react-native-svg@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-11.0.0.tgz#8ed1abf90d9732c07ed316934af9cad659238687" + integrity sha512-EoLP14WnD8igJ8Uiw2oiFWrr0LRpl7eGeHetUxODyo08FoIO3cecL4gR8Ooyt5qPULN15KarQbDrQ7MH9MXtkg== dependencies: css-select "^2.1.0" css-tree "^1.0.0-alpha.39"