@urvish-procare/react-native-charts-wrapper 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/README.md +258 -0
  2. package/android/build.gradle +43 -0
  3. package/android/src/main/AndroidManifest.xml +4 -0
  4. package/android/src/main/java/com/github/wuxudong/rncharts/MPAndroidChartPackage.java +49 -0
  5. package/android/src/main/java/com/github/wuxudong/rncharts/charts/BarChartManager.java +46 -0
  6. package/android/src/main/java/com/github/wuxudong/rncharts/charts/BarLineChartBaseManager.java +415 -0
  7. package/android/src/main/java/com/github/wuxudong/rncharts/charts/BubbleChartManager.java +32 -0
  8. package/android/src/main/java/com/github/wuxudong/rncharts/charts/CandleStickChartManager.java +31 -0
  9. package/android/src/main/java/com/github/wuxudong/rncharts/charts/ChartBaseManager.java +605 -0
  10. package/android/src/main/java/com/github/wuxudong/rncharts/charts/ChartGroupHolder.java +80 -0
  11. package/android/src/main/java/com/github/wuxudong/rncharts/charts/CombinedChartManager.java +62 -0
  12. package/android/src/main/java/com/github/wuxudong/rncharts/charts/ConfigurableMinimumLinePositionFillFormatter.java +19 -0
  13. package/android/src/main/java/com/github/wuxudong/rncharts/charts/CustomFormatter.java +25 -0
  14. package/android/src/main/java/com/github/wuxudong/rncharts/charts/DateFormatter.java +34 -0
  15. package/android/src/main/java/com/github/wuxudong/rncharts/charts/HorizontalBarChartManager.java +23 -0
  16. package/android/src/main/java/com/github/wuxudong/rncharts/charts/IndexValueFormatter.java +102 -0
  17. package/android/src/main/java/com/github/wuxudong/rncharts/charts/LabelByXValueFormatter.java +25 -0
  18. package/android/src/main/java/com/github/wuxudong/rncharts/charts/LineChartManager.java +31 -0
  19. package/android/src/main/java/com/github/wuxudong/rncharts/charts/PieChartManager.java +147 -0
  20. package/android/src/main/java/com/github/wuxudong/rncharts/charts/RadarChartManager.java +118 -0
  21. package/android/src/main/java/com/github/wuxudong/rncharts/charts/ScatterChartManager.java +32 -0
  22. package/android/src/main/java/com/github/wuxudong/rncharts/charts/YAxisChartBase.java +51 -0
  23. package/android/src/main/java/com/github/wuxudong/rncharts/data/BarDataExtract.java +106 -0
  24. package/android/src/main/java/com/github/wuxudong/rncharts/data/BubbleDataExtract.java +74 -0
  25. package/android/src/main/java/com/github/wuxudong/rncharts/data/CandleDataExtract.java +102 -0
  26. package/android/src/main/java/com/github/wuxudong/rncharts/data/CombinedDataExtract.java +70 -0
  27. package/android/src/main/java/com/github/wuxudong/rncharts/data/DataExtract.java +77 -0
  28. package/android/src/main/java/com/github/wuxudong/rncharts/data/LineDataExtract.java +130 -0
  29. package/android/src/main/java/com/github/wuxudong/rncharts/data/PieDataExtract.java +101 -0
  30. package/android/src/main/java/com/github/wuxudong/rncharts/data/RadarDataExtract.java +58 -0
  31. package/android/src/main/java/com/github/wuxudong/rncharts/data/ScatterDataExtract.java +75 -0
  32. package/android/src/main/java/com/github/wuxudong/rncharts/listener/RNOnChartGestureListener.java +129 -0
  33. package/android/src/main/java/com/github/wuxudong/rncharts/listener/RNOnChartValueSelectedListener.java +52 -0
  34. package/android/src/main/java/com/github/wuxudong/rncharts/markers/RNCircleMarkerView.java +19 -0
  35. package/android/src/main/java/com/github/wuxudong/rncharts/markers/RNRectangleMarkerView.java +134 -0
  36. package/android/src/main/java/com/github/wuxudong/rncharts/utils/BridgeUtils.java +52 -0
  37. package/android/src/main/java/com/github/wuxudong/rncharts/utils/ChartDataSetConfigUtils.java +197 -0
  38. package/android/src/main/java/com/github/wuxudong/rncharts/utils/ConversionUtil.java +144 -0
  39. package/android/src/main/java/com/github/wuxudong/rncharts/utils/DrawableUtils.java +51 -0
  40. package/android/src/main/java/com/github/wuxudong/rncharts/utils/EasingFunctionHelper.java +128 -0
  41. package/android/src/main/java/com/github/wuxudong/rncharts/utils/EntryToWritableMapUtils.java +147 -0
  42. package/android/src/main/java/com/github/wuxudong/rncharts/utils/TypefaceUtils.java +47 -0
  43. package/android/src/main/res/drawable-nodpi/circle_marker.xml +8 -0
  44. package/android/src/main/res/drawable-nodpi/oval_marker.png +0 -0
  45. package/android/src/main/res/drawable-nodpi/rectangle_marker.9.png +0 -0
  46. package/android/src/main/res/drawable-nodpi/rectangle_marker_left.9.png +0 -0
  47. package/android/src/main/res/drawable-nodpi/rectangle_marker_right.9.png +0 -0
  48. package/android/src/main/res/drawable-nodpi/rectangle_marker_top.9.png +0 -0
  49. package/android/src/main/res/drawable-nodpi/rectangle_marker_top_left.9.png +0 -0
  50. package/android/src/main/res/drawable-nodpi/rectangle_marker_top_right.9.png +0 -0
  51. package/android/src/main/res/layout/circle_marker.xml +13 -0
  52. package/android/src/main/res/layout/oval_marker.xml +24 -0
  53. package/android/src/main/res/layout/rectangle_marker.xml +21 -0
  54. package/index.js +21 -0
  55. package/ios/ReactNativeCharts/BalloonMarker.swift +240 -0
  56. package/ios/ReactNativeCharts/ChartGroupHolder.swift +70 -0
  57. package/ios/ReactNativeCharts/CircleMarker.swift +108 -0
  58. package/ios/ReactNativeCharts/ConfigurableMinimumLinePositionFillFormatter.swift +19 -0
  59. package/ios/ReactNativeCharts/CustomChartDateFormatter.swift +64 -0
  60. package/ios/ReactNativeCharts/DataExtract.swift +80 -0
  61. package/ios/ReactNativeCharts/IndexValueFormatter.swift +49 -0
  62. package/ios/ReactNativeCharts/RNBarLineChartBaseManager.swift +115 -0
  63. package/ios/ReactNativeCharts/RNBarLineChartManagerBridge.h +40 -0
  64. package/ios/ReactNativeCharts/RNBarLineChartViewBase.swift +294 -0
  65. package/ios/ReactNativeCharts/RNChartManagerBridge.h +36 -0
  66. package/ios/ReactNativeCharts/RNChartViewBase.swift +593 -0
  67. package/ios/ReactNativeCharts/RNCharts-Bridging-Header.h +9 -0
  68. package/ios/ReactNativeCharts/RNYAxisChartManagerBridge.h +17 -0
  69. package/ios/ReactNativeCharts/RNYAxisChartViewBase.swift +53 -0
  70. package/ios/ReactNativeCharts/ReactNativeCharts.xcodeproj/project.pbxproj +376 -0
  71. package/ios/ReactNativeCharts/bar/BarDataExtract.swift +89 -0
  72. package/ios/ReactNativeCharts/bar/RNBarChartManager.swift +53 -0
  73. package/ios/ReactNativeCharts/bar/RNBarChartManagerBridge.m +17 -0
  74. package/ios/ReactNativeCharts/bar/RNBarChartView.swift +41 -0
  75. package/ios/ReactNativeCharts/bar/RNBarChartViewBase.swift +27 -0
  76. package/ios/ReactNativeCharts/bar/RNHorizontalBarChartManager.swift +45 -0
  77. package/ios/ReactNativeCharts/bar/RNHorizontalBarChartManagerBridge.m +16 -0
  78. package/ios/ReactNativeCharts/bar/RNHorizontalBarChartView.swift +41 -0
  79. package/ios/ReactNativeCharts/bubble/BubbleDataExtract.swift +61 -0
  80. package/ios/ReactNativeCharts/bubble/RNBubbleChartManager.swift +53 -0
  81. package/ios/ReactNativeCharts/bubble/RNBubbleChartManagerBridge.m +15 -0
  82. package/ios/ReactNativeCharts/bubble/RNBubbleChartView.swift +39 -0
  83. package/ios/ReactNativeCharts/candlestick/CandleDataExtract.swift +101 -0
  84. package/ios/ReactNativeCharts/candlestick/RNCandleStickChartManager.swift +53 -0
  85. package/ios/ReactNativeCharts/candlestick/RNCandleStickChartManagerBridge.m +16 -0
  86. package/ios/ReactNativeCharts/candlestick/RNCandleStickChartView.swift +44 -0
  87. package/ios/ReactNativeCharts/combine/CombinedDataExtract.swift +81 -0
  88. package/ios/ReactNativeCharts/combine/RNCombinedChartManager.swift +53 -0
  89. package/ios/ReactNativeCharts/combine/RNCombinedChartManagerBridge.m +19 -0
  90. package/ios/ReactNativeCharts/combine/RNCombinedChartView.swift +61 -0
  91. package/ios/ReactNativeCharts/formatters/ChartDateFormatter.swift +38 -0
  92. package/ios/ReactNativeCharts/formatters/LabelByXValueFormatter.swift +35 -0
  93. package/ios/ReactNativeCharts/formatters/LargeValueFormatter.swift +72 -0
  94. package/ios/ReactNativeCharts/line/LineDataExtract.swift +178 -0
  95. package/ios/ReactNativeCharts/line/RNLineChartManager.swift +53 -0
  96. package/ios/ReactNativeCharts/line/RNLineChartManagerBridge.m +14 -0
  97. package/ios/ReactNativeCharts/line/RNLineChartView.swift +41 -0
  98. package/ios/ReactNativeCharts/pie/PieDataExtract.swift +97 -0
  99. package/ios/ReactNativeCharts/pie/RNPieChartManager.swift +19 -0
  100. package/ios/ReactNativeCharts/pie/RNPieChartManagerBridge.m +30 -0
  101. package/ios/ReactNativeCharts/pie/RNPieChartView.swift +192 -0
  102. package/ios/ReactNativeCharts/radar/RNRadarChartManager.swift +19 -0
  103. package/ios/ReactNativeCharts/radar/RNRadarChartManagerBridge.m +25 -0
  104. package/ios/ReactNativeCharts/radar/RNRadarChartView.swift +99 -0
  105. package/ios/ReactNativeCharts/radar/RadarDataExtract.swift +50 -0
  106. package/ios/ReactNativeCharts/scatter/RNScatterChartManager.swift +53 -0
  107. package/ios/ReactNativeCharts/scatter/RNScatterChartManagerBridge.m +15 -0
  108. package/ios/ReactNativeCharts/scatter/RNScatterChartView.swift +43 -0
  109. package/ios/ReactNativeCharts/scatter/ScatterDataExtract.swift +76 -0
  110. package/ios/ReactNativeCharts/utils/BridgeUtils.swift +333 -0
  111. package/ios/ReactNativeCharts/utils/ChartDataSetConfigUtils.swift +147 -0
  112. package/ios/ReactNativeCharts/utils/EntryToDictionaryUtils.swift +66 -0
  113. package/ios/ReactNativeCharts/utils/FontUtils.swift +29 -0
  114. package/ios/ReactNativeCharts/utils/HighlightUtils.swift +41 -0
  115. package/lib/AxisIface.js +102 -0
  116. package/lib/BarChart.js +43 -0
  117. package/lib/BarLineChartBase.js +86 -0
  118. package/lib/BubbleChart.js +40 -0
  119. package/lib/CandleStickChart.js +40 -0
  120. package/lib/ChartBase.js +131 -0
  121. package/lib/ChartDataConfig.js +263 -0
  122. package/lib/ChartDataSetConfig.js +80 -0
  123. package/lib/CombinedChart.js +43 -0
  124. package/lib/HighlightEnhancer.js +15 -0
  125. package/lib/HorizontalBarChart.js +43 -0
  126. package/lib/LineChart.js +39 -0
  127. package/lib/MoveEnhancer.js +49 -0
  128. package/lib/PieChart.js +64 -0
  129. package/lib/PieRadarChartBase.js +18 -0
  130. package/lib/RadarChart.js +52 -0
  131. package/lib/ScaleEnhancer.js +16 -0
  132. package/lib/ScatterChart.js +38 -0
  133. package/lib/ScrollEnhancer.js +15 -0
  134. package/package.json +40 -0
  135. package/react-native-charts-wrapper.podspec +26 -0
@@ -0,0 +1,41 @@
1
+ // Created by xudong wu on 24/02/2017.
2
+ // Copyright wuxudong
3
+ //
4
+
5
+ import DGCharts
6
+ import SwiftyJSON
7
+
8
+ class RNHorizontalBarChartView: RNBarChartViewBase {
9
+
10
+ let _chart: HorizontalBarChartView
11
+ let _dataExtract : BarDataExtract
12
+
13
+ override var chart: HorizontalBarChartView {
14
+ return _chart
15
+ }
16
+
17
+ override var dataExtract: DataExtract {
18
+ return _dataExtract
19
+ }
20
+
21
+ override init(frame: CoreGraphics.CGRect) {
22
+
23
+ self._chart = HorizontalBarChartView(frame: frame)
24
+ self._dataExtract = BarDataExtract()
25
+
26
+ super.init(frame: frame)
27
+
28
+ self._chart.delegate = self
29
+ self.addSubview(_chart)
30
+ }
31
+
32
+ override func layoutSubviews() {
33
+ super.layoutSubviews()
34
+ _chart.frame = self.bounds // Adjust the chart's frame to fill the entire component's bounds
35
+ }
36
+
37
+
38
+ required init?(coder aDecoder: NSCoder) {
39
+ fatalError("init(coder:) has not been implemented")
40
+ }
41
+ }
@@ -0,0 +1,61 @@
1
+ // Created by xudong wu on 02/03/2017.
2
+ // Copyright © 2017 wuxudong. All rights reserved.
3
+ //
4
+
5
+ import Foundation
6
+
7
+ import SwiftyJSON
8
+ import DGCharts
9
+
10
+ class BubbleDataExtract : DataExtract {
11
+ override func createData() -> ChartData {
12
+ return BubbleChartData();
13
+ }
14
+
15
+ override func createDataSet(_ entries: [ChartDataEntry], label: String) -> ChartDataSetProtocol {
16
+ return BubbleChartDataSet(entries: entries, label: label)
17
+ }
18
+
19
+ override func dataSetConfig(_ dataSet: ChartDataSetProtocol, config: JSON) {
20
+ let bubbleDataSet = dataSet as! BubbleChartDataSet;
21
+
22
+ ChartDataSetConfigUtils.commonConfig(bubbleDataSet, config: config);
23
+ ChartDataSetConfigUtils.commonBarLineScatterCandleBubbleConfig(bubbleDataSet, config: config)
24
+
25
+ // BubbleDataSet only config
26
+ if config["highlightCircleWidth"].float != nil {
27
+ bubbleDataSet.highlightCircleWidth = CGFloat(config["highlightCircleWidth"].floatValue)
28
+ }
29
+ if config["normalizeSizeEnabled"].bool != nil {
30
+ bubbleDataSet.normalizeSizeEnabled = config["normalizeSizeEnabled"].boolValue
31
+ }
32
+ }
33
+
34
+ override func createEntry(_ values: [JSON], index: Int) -> ChartDataEntry {
35
+ var entry: BubbleChartDataEntry;
36
+
37
+ var x = Double(index);
38
+
39
+ let item = values[index];
40
+
41
+ if item.dictionary != nil {
42
+ let dict = item;
43
+
44
+ if dict["x"].double != nil {
45
+ x = Double((dict["x"].doubleValue));
46
+ }
47
+
48
+ if dict["y"].double != nil && dict["size"].float != nil {
49
+ entry = BubbleChartDataEntry(x: x, y: dict["y"].doubleValue,
50
+ size: CGFloat(dict["size"].floatValue), data: dict as AnyObject?);
51
+ } else {
52
+ fatalError("invalid data " + values.description);
53
+ }
54
+ } else {
55
+ fatalError("invalid data " + values.description);
56
+ }
57
+
58
+ return entry;
59
+ }
60
+
61
+ }
@@ -0,0 +1,53 @@
1
+ // Created by xudong wu on 23/02/2017.
2
+ // Copyright wuxudong
3
+ //
4
+
5
+ import UIKit
6
+
7
+ @objc(RNBubbleChartManager)
8
+ @objcMembers
9
+ open class RNBubbleChartManager: RCTViewManager, RNBarLineChartBaseManager {
10
+ var _bridge: RCTBridge? {get{return self.bridge}}
11
+
12
+ override open func view() -> UIView! {
13
+ let ins = RNBubbleChartView()
14
+ return ins;
15
+ }
16
+
17
+ override public static func requiresMainQueueSetup() -> Bool {
18
+ return true;
19
+ }
20
+
21
+ func moveViewToX(_ reactTag: NSNumber, xValue: NSNumber) {
22
+ (self as RNBarLineChartBaseManager)._moveViewToX(reactTag, xValue: xValue)
23
+ }
24
+
25
+ func moveViewTo(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString) {
26
+ (self as RNBarLineChartBaseManager)._moveViewTo(reactTag, xValue: xValue, yValue: yValue, axisDependency: axisDependency)
27
+ }
28
+
29
+ func moveViewToAnimated(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString, duration: NSNumber) {
30
+ (self as RNBarLineChartBaseManager)._moveViewToAnimated(reactTag, xValue: xValue, yValue: yValue, axisDependency: axisDependency, duration: duration)
31
+ }
32
+
33
+ func centerViewTo(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString) {
34
+ (self as RNBarLineChartBaseManager)._centerViewTo(reactTag, xValue: xValue, yValue: yValue, axisDependency: axisDependency)
35
+ }
36
+
37
+ func centerViewToAnimated(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString, duration: NSNumber) {
38
+ (self as RNBarLineChartBaseManager)._centerViewToAnimated(reactTag, xValue: xValue, yValue: yValue, axisDependency: axisDependency, duration: duration)
39
+ }
40
+
41
+ func fitScreen(_ reactTag: NSNumber) {
42
+ (self as RNBarLineChartBaseManager)._fitScreen(reactTag)
43
+ }
44
+
45
+ func highlights(_ reactTag: NSNumber, config: NSArray) {
46
+ (self as RNBarLineChartBaseManager)._highlights(reactTag, config: config)
47
+ }
48
+
49
+ func setDataAndLockIndex(_ reactTag: NSNumber, data: NSDictionary) {
50
+ (self as RNBarLineChartBaseManager)._setDataAndLockIndex(reactTag, data: data)
51
+ }
52
+
53
+ }
@@ -0,0 +1,15 @@
1
+ // Created by xudong wu on 24/02/2017.
2
+ // Copyright © 2017 Facebook. All rights reserved.
3
+ //
4
+
5
+ #import "React/RCTViewManager.h"
6
+
7
+ #import "RNChartManagerBridge.h"
8
+ #import "RNYAxisChartManagerBridge.h"
9
+ #import "RNBarLineChartManagerBridge.h"
10
+
11
+ @interface RCT_EXTERN_MODULE(RNBubbleChartManager, RCTViewManager)
12
+
13
+ EXPORT_BAR_LINE_CHART_BASE_PROPERTIES
14
+
15
+ @end
@@ -0,0 +1,39 @@
1
+ // Created by xudong wu on 24/02/2017.
2
+ // Copyright wuxudong
3
+ //
4
+
5
+ import DGCharts
6
+ import SwiftyJSON
7
+
8
+ class RNBubbleChartView: RNBarLineChartViewBase {
9
+ let _chart: BubbleChartView
10
+ let _dataExtract : BubbleDataExtract
11
+
12
+ override var chart: BubbleChartView {
13
+ return _chart
14
+ }
15
+
16
+ override var dataExtract: DataExtract {
17
+ return _dataExtract
18
+ }
19
+
20
+
21
+ override init(frame: CoreGraphics.CGRect) {
22
+
23
+ self._chart = BubbleChartView(frame: frame)
24
+ self._dataExtract = BubbleDataExtract()
25
+
26
+ super.init(frame: frame)
27
+
28
+ self._chart.delegate = self
29
+ self.addSubview(_chart)
30
+
31
+ }
32
+ override func layoutSubviews() {
33
+ super.layoutSubviews()
34
+ _chart.frame = self.bounds // Adjust the chart's frame to fill the entire component's bounds
35
+ }
36
+ required public init?(coder aDecoder: NSCoder) {
37
+ fatalError("init(coder:) has not been implemented")
38
+ }
39
+ }
@@ -0,0 +1,101 @@
1
+ // Created by xudong wu on 02/03/2017.
2
+ // Copyright © 2017 wuxudong. All rights reserved.
3
+ //
4
+
5
+ import Foundation
6
+ import SwiftyJSON
7
+ import DGCharts
8
+
9
+ class CandleDataExtract : DataExtract {
10
+ override func createData() -> ChartData {
11
+ return CandleChartData();
12
+ }
13
+
14
+ override func createDataSet(_ entries: [ChartDataEntry], label: String) -> ChartDataSetProtocol {
15
+ return CandleChartDataSet(entries: entries, label: label)
16
+ }
17
+
18
+ override func dataSetConfig(_ dataSet: ChartDataSetProtocol, config: JSON) {
19
+ let candleDataSet = dataSet as! CandleChartDataSet
20
+
21
+ ChartDataSetConfigUtils.commonConfig(candleDataSet, config: config);
22
+ ChartDataSetConfigUtils.commonBarLineScatterCandleBubbleConfig(candleDataSet, config: config);
23
+ ChartDataSetConfigUtils.commonLineScatterCandleRadarConfig(candleDataSet, config: config);
24
+
25
+
26
+ // CandleDataSet only config
27
+ if config["barSpace"].float != nil {
28
+ candleDataSet.barSpace = CGFloat(config["barSpace"].floatValue)
29
+ }
30
+
31
+
32
+ if config["shadowWidth"].float != nil {
33
+ candleDataSet.shadowWidth = CGFloat(config["shadowWidth"].floatValue)
34
+ }
35
+
36
+ if config["shadowColor"].int != nil {
37
+ candleDataSet.shadowColor = RCTConvert.uiColor(config["shadowColor"].intValue)
38
+ }
39
+
40
+ if config["shadowColorSameAsCandle"].bool != nil {
41
+ candleDataSet.shadowColorSameAsCandle = config["shadowColorSameAsCandle"].boolValue;
42
+ }
43
+
44
+ if config["neutralColor"].int != nil {
45
+ candleDataSet.neutralColor = RCTConvert.uiColor(config["neutralColor"].intValue)
46
+ }
47
+
48
+
49
+ if config["decreasingColor"].int != nil {
50
+ candleDataSet.decreasingColor = RCTConvert.uiColor(config["decreasingColor"].intValue)
51
+ }
52
+
53
+ if config["increasingColor"].int != nil {
54
+ candleDataSet.increasingColor = RCTConvert.uiColor(config["increasingColor"].intValue)
55
+ }
56
+
57
+
58
+ if config["decreasingPaintStyle"].string != nil {
59
+ if config["decreasingPaintStyle"].stringValue.lowercased() == "stroke" {
60
+ candleDataSet.decreasingFilled = false;
61
+ } else {
62
+ candleDataSet.decreasingFilled = true;
63
+ }
64
+ }
65
+
66
+
67
+ if config["increasingPaintStyle"].string != nil {
68
+ if config["increasingPaintStyle"].stringValue.lowercased() == "fill" {
69
+ candleDataSet.increasingFilled = true;
70
+ } else {
71
+ candleDataSet.increasingFilled = false;
72
+ }
73
+ }
74
+ }
75
+
76
+ override func createEntry(_ values: [JSON], index: Int) -> CandleChartDataEntry {
77
+ var entry: CandleChartDataEntry;
78
+
79
+ var x = Double(index);
80
+ let value = values[index];
81
+
82
+ if value["x"].double != nil {
83
+ x = Double(value["x"].doubleValue);
84
+ }
85
+
86
+ if value["shadowH"].double == nil || value["shadowL"].double == nil || value["open"].number == nil || value["close"].number == nil {
87
+ fatalError("invalid data " + values.description);
88
+ }
89
+
90
+
91
+ entry = CandleChartDataEntry(x: x,
92
+ shadowH: value["shadowH"].doubleValue,
93
+ shadowL: value["shadowL"].doubleValue,
94
+ open: value["open"].doubleValue,
95
+ close: value["close"].doubleValue,
96
+ data: value as AnyObject?)
97
+
98
+ return entry;
99
+ }
100
+
101
+ }
@@ -0,0 +1,53 @@
1
+ // Created by xudong wu on 23/02/2017.
2
+ // Copyright wuxudong
3
+ //
4
+
5
+ import UIKit
6
+
7
+ @objc(RNCandleStickChartManager)
8
+ @objcMembers
9
+ open class RNCandleStickChartManager: RCTViewManager, RNBarLineChartBaseManager {
10
+ var _bridge: RCTBridge? {get{return self.bridge}}
11
+
12
+ override open func view() -> UIView! {
13
+ let ins = RNCandleStickChartView()
14
+ return ins;
15
+ }
16
+
17
+ override public static func requiresMainQueueSetup() -> Bool {
18
+ return true;
19
+ }
20
+
21
+ func moveViewToX(_ reactTag: NSNumber, xValue: NSNumber) {
22
+ (self as RNBarLineChartBaseManager)._moveViewToX(reactTag, xValue: xValue)
23
+ }
24
+
25
+ func moveViewTo(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString) {
26
+ (self as RNBarLineChartBaseManager)._moveViewTo(reactTag, xValue: xValue, yValue: yValue, axisDependency: axisDependency)
27
+ }
28
+
29
+ func moveViewToAnimated(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString, duration: NSNumber) {
30
+ (self as RNBarLineChartBaseManager)._moveViewToAnimated(reactTag, xValue: xValue, yValue: yValue, axisDependency: axisDependency, duration: duration)
31
+ }
32
+
33
+ func centerViewTo(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString) {
34
+ (self as RNBarLineChartBaseManager)._centerViewTo(reactTag, xValue: xValue, yValue: yValue, axisDependency: axisDependency)
35
+ }
36
+
37
+ func centerViewToAnimated(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString, duration: NSNumber) {
38
+ (self as RNBarLineChartBaseManager)._centerViewToAnimated(reactTag, xValue: xValue, yValue: yValue, axisDependency: axisDependency, duration: duration)
39
+ }
40
+
41
+ func fitScreen(_ reactTag: NSNumber) {
42
+ (self as RNBarLineChartBaseManager)._fitScreen(reactTag)
43
+ }
44
+
45
+ func highlights(_ reactTag: NSNumber, config: NSArray) {
46
+ (self as RNBarLineChartBaseManager)._highlights(reactTag, config: config)
47
+ }
48
+
49
+ func setDataAndLockIndex(_ reactTag: NSNumber, data: NSDictionary) {
50
+ (self as RNBarLineChartBaseManager)._setDataAndLockIndex(reactTag, data: data)
51
+ }
52
+
53
+ }
@@ -0,0 +1,16 @@
1
+ // Created by xudong wu on 24/02/2017.
2
+ // Copyright © 2017 wuxudong
3
+ //
4
+
5
+ #import "React/RCTViewManager.h"
6
+ #import "React/RCTBridgeModule.h"
7
+ #import "RNChartManagerBridge.h"
8
+ #import "RNYAxisChartManagerBridge.h"
9
+ #import "RNBarLineChartManagerBridge.h"
10
+
11
+
12
+ @interface RCT_EXTERN_MODULE(RNCandleStickChartManager, RCTViewManager)
13
+
14
+ EXPORT_BAR_LINE_CHART_BASE_PROPERTIES
15
+
16
+ @end
@@ -0,0 +1,44 @@
1
+ // Created by xudong wu on 24/02/2017.
2
+ // Copyright wuxudong
3
+ //
4
+
5
+ import DGCharts
6
+ import SwiftyJSON
7
+
8
+ class RNCandleStickChartView: RNBarLineChartViewBase {
9
+
10
+ let _chart: CandleStickChartView;
11
+ let _dataExtract : CandleDataExtract;
12
+
13
+ override var chart: ChartViewBase {
14
+ return _chart
15
+ }
16
+
17
+ override var dataExtract: DataExtract {
18
+ return _dataExtract
19
+ }
20
+
21
+
22
+ override init(frame: CoreGraphics.CGRect) {
23
+
24
+ self._chart = CandleStickChartView(frame: frame)
25
+ self._dataExtract = CandleDataExtract()
26
+
27
+ super.init(frame: frame);
28
+
29
+ self._chart.delegate = self
30
+ self.addSubview(_chart);
31
+ }
32
+
33
+ override func layoutSubviews() {
34
+ super.layoutSubviews()
35
+ _chart.frame = self.bounds // Adjust the chart's frame to fill the entire component's bounds
36
+ }
37
+
38
+ required init?(coder aDecoder: NSCoder) {
39
+ fatalError("init(coder:) has not been implemented")
40
+ }
41
+
42
+
43
+
44
+ }
@@ -0,0 +1,81 @@
1
+ // Created by xudong wu on 02/03/2017.
2
+ // Copyright © 2017 wuxudong. All rights reserved.
3
+ //
4
+
5
+ import Foundation
6
+
7
+ import SwiftyJSON
8
+ import DGCharts
9
+
10
+ class CombinedDataExtract : DataExtract {
11
+ let lineDataExtract = LineDataExtract()
12
+ let barDataExtract = BarDataExtract()
13
+ let scatterDataExtract = ScatterDataExtract()
14
+ let candleDataExtract = CandleDataExtract()
15
+ let bubbleDataExtract = BubbleDataExtract()
16
+
17
+ override func extract(_ data: JSON) -> ChartData? {
18
+ let chartData = CombinedChartData();
19
+
20
+
21
+ if data["lineData"] != JSON.null {
22
+ if let lineData = lineDataExtract.extract(data["lineData"]) as? LineChartData {
23
+ chartData.lineData = lineData
24
+ }
25
+ }
26
+
27
+ if data["barData"] != JSON.null {
28
+ if let barData = barDataExtract.extract(data["barData"]) as? BarChartData {
29
+ chartData.barData = barData
30
+ }
31
+ }
32
+
33
+
34
+ if data["scatterData"] != JSON.null {
35
+ if let scatterData = scatterDataExtract.extract(data["scatterData"]) as? ScatterChartData {
36
+ chartData.scatterData = scatterData
37
+ }
38
+ }
39
+
40
+
41
+ if data["candleData"] != JSON.null {
42
+ if let candleData = candleDataExtract.extract(data["candleData"]) as? CandleChartData {
43
+ chartData.candleData = candleData
44
+ }
45
+ }
46
+
47
+
48
+ if data["bubbleData"] != JSON.null {
49
+ if let bubbleData = bubbleDataExtract.extract(data["bubbleData"]) as? BubbleChartData {
50
+ chartData.bubbleData = bubbleData
51
+ }
52
+ }
53
+ return chartData
54
+
55
+ }
56
+
57
+ override func createEntries(_ values: [JSON]) -> [ChartDataEntry] {
58
+ fatalError("not support")
59
+ }
60
+
61
+
62
+ override func createData() -> ChartData {
63
+ fatalError("not support")
64
+ }
65
+
66
+ override func createDataSet(_ entries: [ChartDataEntry], label: String) -> ChartDataSetProtocol {
67
+ fatalError("not support")
68
+ }
69
+
70
+ override func dataSetConfig(_ dataSet: ChartDataSetProtocol, config: JSON) {
71
+ fatalError("not support")
72
+ }
73
+
74
+ override func createEntry(_ values: [JSON], index: Int) -> ChartDataEntry {
75
+ fatalError("not support")
76
+ }
77
+
78
+
79
+
80
+
81
+ }
@@ -0,0 +1,53 @@
1
+ // Created by xudong wu on 23/02/2017.
2
+ // Copyright wuxudong
3
+ //
4
+
5
+ import UIKit
6
+
7
+ @objc(RNCombinedChartManager)
8
+ @objcMembers
9
+ open class RNCombinedChartManager: RCTViewManager, RNBarLineChartBaseManager {
10
+ var _bridge: RCTBridge? {get{return self.bridge}}
11
+
12
+ override open func view() -> UIView! {
13
+ let ins = RNCombinedChartView()
14
+ return ins;
15
+ }
16
+
17
+ override public static func requiresMainQueueSetup() -> Bool {
18
+ return true;
19
+ }
20
+
21
+ func moveViewToX(_ reactTag: NSNumber, xValue: NSNumber) {
22
+ (self as RNBarLineChartBaseManager)._moveViewToX(reactTag, xValue: xValue)
23
+ }
24
+
25
+ func moveViewTo(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString) {
26
+ (self as RNBarLineChartBaseManager)._moveViewTo(reactTag, xValue: xValue, yValue: yValue, axisDependency: axisDependency)
27
+ }
28
+
29
+ func moveViewToAnimated(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString, duration: NSNumber) {
30
+ (self as RNBarLineChartBaseManager)._moveViewToAnimated(reactTag, xValue: xValue, yValue: yValue, axisDependency: axisDependency, duration: duration)
31
+ }
32
+
33
+ func centerViewTo(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString) {
34
+ (self as RNBarLineChartBaseManager)._centerViewTo(reactTag, xValue: xValue, yValue: yValue, axisDependency: axisDependency)
35
+ }
36
+
37
+ func centerViewToAnimated(_ reactTag: NSNumber, xValue: NSNumber, yValue: NSNumber, axisDependency: NSString, duration: NSNumber) {
38
+ (self as RNBarLineChartBaseManager)._centerViewToAnimated(reactTag, xValue: xValue, yValue: yValue, axisDependency: axisDependency, duration: duration)
39
+ }
40
+
41
+ func fitScreen(_ reactTag: NSNumber) {
42
+ (self as RNBarLineChartBaseManager)._fitScreen(reactTag)
43
+ }
44
+
45
+ func highlights(_ reactTag: NSNumber, config: NSArray) {
46
+ (self as RNBarLineChartBaseManager)._highlights(reactTag, config: config)
47
+ }
48
+
49
+ func setDataAndLockIndex(_ reactTag: NSNumber, data: NSDictionary) {
50
+ (self as RNBarLineChartBaseManager)._setDataAndLockIndex(reactTag, data: data)
51
+ }
52
+
53
+ }
@@ -0,0 +1,19 @@
1
+ // Created by xudong wu on 24/02/2017.
2
+ // Copyright © 2017 wuxudong. All rights reserved.
3
+ //
4
+
5
+ #import "React/RCTViewManager.h"
6
+ #import "RNChartManagerBridge.h"
7
+ #import "RNYAxisChartManagerBridge.h"
8
+ #import "RNBarLineChartManagerBridge.h"
9
+
10
+ @interface RCT_EXTERN_MODULE(RNCombinedChartManager, RCTViewManager)
11
+
12
+ EXPORT_BAR_LINE_CHART_BASE_PROPERTIES
13
+ RCT_EXPORT_VIEW_PROPERTY(drawOrder, NSArray)
14
+ RCT_EXPORT_VIEW_PROPERTY(drawValueAboveBar, BOOL)
15
+ RCT_EXPORT_VIEW_PROPERTY(drawBarShadow, BOOL)
16
+ RCT_EXPORT_VIEW_PROPERTY(highlightFullBarEnabled, BOOL)
17
+
18
+
19
+ @end
@@ -0,0 +1,61 @@
1
+ // Created by xudong wu on 24/02/2017.
2
+ // Copyright wuxudong
3
+ //
4
+
5
+ import DGCharts
6
+ import SwiftyJSON
7
+
8
+ class RNCombinedChartView: RNBarLineChartViewBase {
9
+
10
+ let _chart: CombinedChartView;
11
+ let _dataExtract : CombinedDataExtract;
12
+
13
+ override var chart: CombinedChartView {
14
+ return _chart
15
+ }
16
+
17
+ override var dataExtract: DataExtract {
18
+ return _dataExtract
19
+ }
20
+
21
+ override init(frame: CoreGraphics.CGRect) {
22
+
23
+ self._chart = CombinedChartView(frame: frame)
24
+ self._dataExtract = CombinedDataExtract()
25
+
26
+ super.init(frame: frame)
27
+
28
+ self._chart.delegate = self
29
+ self.addSubview(_chart)
30
+ }
31
+
32
+ override func layoutSubviews() {
33
+ super.layoutSubviews()
34
+ _chart.frame = self.bounds // Adjust the chart's frame to fill the entire component's bounds
35
+ }
36
+
37
+ required init?(coder aDecoder: NSCoder) {
38
+ fatalError("init(coder:) has not been implemented")
39
+ }
40
+
41
+ func setDrawOrder(_ config: NSArray) {
42
+ var array : [Int] = []
43
+ for object in RCTConvert.nsStringArray(config) {
44
+ array.append(BridgeUtils.parseDrawOrder(object).rawValue)
45
+ }
46
+ _chart.drawOrder = array
47
+ }
48
+
49
+ func setDrawValueAboveBar(_ enabled: Bool) {
50
+ _chart.drawValueAboveBarEnabled = enabled
51
+ }
52
+
53
+ func setDrawBarShadow(_ enabled: Bool) {
54
+ _chart.drawBarShadowEnabled = enabled
55
+ }
56
+
57
+ func setHighlightFullBarEnabled(_ enabled: Bool) {
58
+ _chart.highlightFullBarEnabled = enabled
59
+ }
60
+
61
+ }
@@ -0,0 +1,38 @@
1
+ //
2
+ // DateFormatter.swift
3
+ // Aquasafe
4
+ //
5
+ // Created by Douglas Nassif Roma Junior on 06/09/17.
6
+ // Copyright © 2017 Facebook. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+ import DGCharts
11
+
12
+ open class ChartDateFormatter: NSObject, ValueFormatter, AxisValueFormatter {
13
+
14
+ open var dateFormatter = DateFormatter();
15
+
16
+ public override init() {
17
+
18
+ }
19
+
20
+ public init(pattern: String?) {
21
+ self.dateFormatter.dateFormat = pattern;
22
+ }
23
+
24
+ open func stringForValue(_ value: Double, axis: AxisBase?) -> String {
25
+ return format(value)
26
+ }
27
+
28
+ open func stringForValue(_ value: Double, entry: ChartDataEntry, dataSetIndex: Int, viewPortHandler: ViewPortHandler?) -> String {
29
+ return format(value)
30
+ }
31
+
32
+ fileprivate func format(_ value: Double) -> String
33
+ {
34
+ let date = Date(timeIntervalSince1970: value / 1000.0);
35
+ return self.dateFormatter.string(from: date);
36
+ }
37
+
38
+ }