@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,192 @@
1
+ // Created by xudong wu on 24/02/2017.
2
+ // Copyright wuxudong
3
+ //
4
+
5
+ import DGCharts
6
+ import SwiftyJSON
7
+
8
+ class RNPieChartView: RNChartViewBase {
9
+ let _chart: PieChartView;
10
+ let _dataExtract : PieDataExtract;
11
+
12
+ override var chart: PieChartView {
13
+ return _chart
14
+ }
15
+
16
+ override var dataExtract: DataExtract {
17
+ return _dataExtract
18
+ }
19
+
20
+ override init(frame: CoreGraphics.CGRect) {
21
+
22
+ self._chart = PieChartView(frame: frame)
23
+ self._dataExtract = PieDataExtract()
24
+
25
+ super.init(frame: frame)
26
+
27
+ self._chart.delegate = self
28
+ self.addSubview(_chart)
29
+
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 setDrawSliceText(_ enabled: Bool) {
42
+ chart.drawEntryLabelsEnabled = enabled
43
+ }
44
+
45
+
46
+ func setUsePercentValues(_ enabled: Bool) {
47
+ chart.usePercentValuesEnabled = enabled
48
+ }
49
+
50
+
51
+ func setCenterText(_ text: String) {
52
+ chart.centerText = text
53
+ }
54
+
55
+ func setStyledCenterText(_ data: NSDictionary) {
56
+ let json = BridgeUtils.toJson(data)
57
+
58
+ var attrString: NSMutableAttributedString?
59
+ if json["text"].string == nil
60
+ {
61
+ attrString = nil
62
+ }
63
+ else
64
+ {
65
+ #if os(OSX)
66
+ let paragraphStyle = NSParagraphStyle.default().mutableCopy() as! NSMutableParagraphStyle
67
+ #else
68
+ let paragraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
69
+ #endif
70
+ paragraphStyle.lineBreakMode = NSLineBreakMode.byTruncatingTail
71
+ paragraphStyle.alignment = .center
72
+
73
+
74
+ var color : NSUIColor?
75
+ if json["color"].int != nil {
76
+ color = RCTConvert.uiColor(json["color"].intValue)
77
+ } else {
78
+ color = UIColor.black
79
+ }
80
+
81
+ let fontSize = json["size"].float != nil ? CGFloat(json["size"].floatValue) : CGFloat(12)
82
+
83
+ var font: UIFont?
84
+ if let parsedFont = FontUtils.getFont(json) {
85
+ font = RCTFont.update(parsedFont, withSize: NSNumber(value: Float(fontSize)))
86
+ } else {
87
+ font = NSUIFont.systemFont(ofSize: fontSize)
88
+ }
89
+
90
+ attrString = NSMutableAttributedString(string: json["text"].stringValue)
91
+ attrString?.setAttributes([
92
+ NSAttributedString.Key.foregroundColor: color!,
93
+ NSAttributedString.Key.font: font,
94
+ NSAttributedString.Key.paragraphStyle: paragraphStyle
95
+ ], range: NSMakeRange(0, attrString!.length))
96
+ }
97
+
98
+ chart.centerAttributedText = attrString
99
+
100
+ }
101
+
102
+ func setCenterTextRadiusPercent(_ radiusPercent: NSNumber) {
103
+ chart.centerTextRadiusPercent = CGFloat(truncating: radiusPercent) / 100.0
104
+ }
105
+
106
+
107
+ func setHoleRadius(_ percent: NSNumber) {
108
+ chart.holeRadiusPercent = CGFloat(truncating: percent) / 100.0
109
+ }
110
+
111
+
112
+ func setHoleColor(_ color: Int) {
113
+ chart.holeColor = RCTConvert.uiColor(color)
114
+ }
115
+
116
+
117
+ func setTransparentCircleRadius(_ percent: NSNumber) {
118
+ chart.transparentCircleRadiusPercent = CGFloat(truncating: percent) / 100.0
119
+ }
120
+
121
+ func setTransparentCircleColor(_ color: Int) {
122
+ chart.transparentCircleColor = RCTConvert.uiColor(color)
123
+ }
124
+
125
+ func setEntryLabelColor(_ color: Int) {
126
+ chart.entryLabelColor = RCTConvert.uiColor(color)
127
+ }
128
+
129
+ func setEntryLabelTextSize(_ size: NSNumber) {
130
+ chart.entryLabelFont = chart.entryLabelFont?.withSize(CGFloat(truncating: size))
131
+ }
132
+
133
+ func setEntryLabelFontFamily(_ fontFamily: String) {
134
+ chart.entryLabelFont = RCTFont.update(chart.entryLabelFont, withFamily: fontFamily)
135
+ }
136
+
137
+ func setExtraOffsets(_ data: NSDictionary) {
138
+ let json = BridgeUtils.toJson(data)
139
+ var leftOffset : CGFloat = 0
140
+ var topOffset : CGFloat = 0
141
+ var rightOffset : CGFloat = 0
142
+ var bottomOffset : CGFloat = 0
143
+
144
+ if json["left"].float != nil
145
+ {
146
+ leftOffset = CGFloat(json["left"].floatValue)
147
+ }
148
+ if json["top"].float != nil
149
+ {
150
+ topOffset = CGFloat(json["top"].floatValue)
151
+ }
152
+ if json["right"].float != nil
153
+ {
154
+ rightOffset = CGFloat(json["right"].floatValue)
155
+ }
156
+ if json["bottom"].float != nil
157
+ {
158
+ bottomOffset = CGFloat(json["bottom"].floatValue)
159
+ }
160
+
161
+ chart.setExtraOffsets(left: leftOffset, top: topOffset, right: rightOffset, bottom: bottomOffset)
162
+ }
163
+
164
+ func setDrawEntryLabels(_ enabled: Bool) {
165
+ chart.drawEntryLabelsEnabled = enabled
166
+ }
167
+
168
+ func setMaxAngle(_ maxAngle: NSNumber) {
169
+ chart.maxAngle = CGFloat(truncating: maxAngle)
170
+ }
171
+
172
+ func setMinOffset(_ minOffset: NSNumber) {
173
+ chart.minOffset = CGFloat(truncating: minOffset)
174
+ }
175
+
176
+ func setRotationEnabled(_ enabled: Bool) {
177
+ chart.rotationEnabled = enabled
178
+ }
179
+
180
+ func setRotationAngle(_ angle: NSNumber) {
181
+ chart.rotationAngle = CGFloat(truncating: angle)
182
+ }
183
+
184
+ override func didSetProps(_ changedProps: [String]!) {
185
+ super.didSetProps(changedProps)
186
+
187
+ let pieChartDataSet = chart.data?.dataSets[0] as? PieChartDataSet
188
+
189
+ pieChartDataSet?.entryLabelColor = chart.entryLabelColor
190
+ pieChartDataSet?.entryLabelFont = chart.entryLabelFont
191
+ }
192
+ }
@@ -0,0 +1,19 @@
1
+ // Created by xudong wu on 23/02/2017.
2
+ // Copyright wuxudong
3
+ //
4
+
5
+ import UIKit
6
+
7
+ @objc(RNRadarChartManager)
8
+ @objcMembers
9
+ open class RNRadarChartManager: RCTViewManager {
10
+ override open func view() -> UIView! {
11
+ let ins = RNRadarChartView()
12
+ return ins;
13
+ }
14
+
15
+ override public static func requiresMainQueueSetup() -> Bool {
16
+ return true;
17
+ }
18
+
19
+ }
@@ -0,0 +1,25 @@
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
+
9
+
10
+ @interface RCT_EXTERN_MODULE(RNRadarChartManager, RCTViewManager)
11
+
12
+ EXPORT_Y_AXIS_CHART_BASE_PROPERTIES
13
+ RCT_EXPORT_VIEW_PROPERTY(skipWebLineCount, NSInteger)
14
+ RCT_EXPORT_VIEW_PROPERTY(minOffset, NSNumber)
15
+ RCT_EXPORT_VIEW_PROPERTY(drawWeb, BOOL)
16
+ RCT_EXPORT_VIEW_PROPERTY(rotationEnabled, BOOL)
17
+ RCT_EXPORT_VIEW_PROPERTY(rotationAngle, NSNumber)
18
+ RCT_EXPORT_VIEW_PROPERTY(extraOffsets, NSDictionary)
19
+ RCT_EXPORT_VIEW_PROPERTY(webLineWidth, NSNumber)
20
+ RCT_EXPORT_VIEW_PROPERTY(webLineWidthInner, NSNumber)
21
+ RCT_EXPORT_VIEW_PROPERTY(webAlpha, NSNumber)
22
+ RCT_EXPORT_VIEW_PROPERTY(webColor, NSNumber)
23
+ RCT_EXPORT_VIEW_PROPERTY(webColorInner, NSNumber)
24
+
25
+ @end
@@ -0,0 +1,99 @@
1
+ // Created by xudong wu on 24/02/2017.
2
+ // Copyright wuxudong
3
+ //
4
+
5
+ import DGCharts
6
+ import SwiftyJSON
7
+
8
+ class RNRadarChartView: RNYAxisChartViewBase {
9
+
10
+ let _chart: RadarChartView;
11
+ let _dataExtract : RadarDataExtract
12
+
13
+ override var chart: RadarChartView {
14
+ return _chart
15
+ }
16
+
17
+ override var dataExtract: DataExtract {
18
+ return _dataExtract
19
+ }
20
+
21
+ override func setYAxis(_ config: NSDictionary) {
22
+ let json = BridgeUtils.toJson(config)
23
+ let yAxis = _chart.yAxis
24
+
25
+ setCommonAxisConfig(yAxis, config: json)
26
+ setYAxisConfig(yAxis, config: json)
27
+ }
28
+
29
+ override init(frame: CoreGraphics.CGRect) {
30
+
31
+ self._chart = RadarChartView(frame: frame)
32
+ self._dataExtract = RadarDataExtract()
33
+
34
+ super.init(frame: frame)
35
+
36
+ self._chart.delegate = self
37
+ self.addSubview(_chart)
38
+ }
39
+
40
+ override func layoutSubviews() {
41
+ super.layoutSubviews()
42
+ _chart.frame = self.bounds // Adjust the chart's frame to fill the entire component's bounds
43
+ }
44
+
45
+ required init?(coder aDecoder: NSCoder) {
46
+ fatalError("init(coder:) has not been implemented")
47
+ }
48
+
49
+ func setSkipWebLineCount(_ count: Int) {
50
+ chart.skipWebLineCount = count
51
+ }
52
+
53
+ func setMinOffset(_ minOffset: NSNumber) {
54
+ chart.minOffset = CGFloat(truncating: minOffset)
55
+ }
56
+
57
+ func setExtraOffsets(_ config: NSDictionary) {
58
+ let json = BridgeUtils.toJson(config)
59
+
60
+ let left = json["left"].double != nil ? CGFloat(json["left"].doubleValue) : 0
61
+ let top = json["top"].double != nil ? CGFloat(json["top"].doubleValue) : 0
62
+ let right = json["right"].double != nil ? CGFloat(json["right"].doubleValue) : 0
63
+ let bottom = json["bottom"].double != nil ? CGFloat(json["bottom"].doubleValue) : 0
64
+
65
+ chart.setExtraOffsets(left: left, top: top, right: right, bottom: bottom)
66
+ }
67
+
68
+ func setRotationEnabled(_ enabled: Bool) {
69
+ chart.rotationEnabled = enabled
70
+ }
71
+
72
+ func setRotationAngle(_ angle: NSNumber) {
73
+ chart.rotationAngle = CGFloat(truncating: angle)
74
+ }
75
+
76
+ func setDrawWeb(_ enabled: Bool) {
77
+ chart.drawWeb = enabled
78
+ }
79
+
80
+ func setWebLineWidth(_ width: NSNumber) {
81
+ chart.webLineWidth = CGFloat(truncating: width)
82
+ }
83
+
84
+ func setWebLineWidthInner(_ width: NSNumber) {
85
+ chart.innerWebLineWidth = CGFloat(truncating: width)
86
+ }
87
+
88
+ func setWebAlpha(_ alpha: NSNumber) {
89
+ chart.webAlpha = CGFloat(truncating: alpha)
90
+ }
91
+
92
+ func setWebColor(_ color: NSNumber) {
93
+ chart.webColor = RCTConvert.uiColor(color.intValue)
94
+ }
95
+
96
+ func setWebColorInner(_ color: NSNumber) {
97
+ chart.innerWebColor = RCTConvert.uiColor(color.intValue)
98
+ }
99
+ }
@@ -0,0 +1,50 @@
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 RadarDataExtract : DataExtract {
11
+ override func createData() -> ChartData {
12
+ return RadarChartData();
13
+ }
14
+
15
+ override func createDataSet(_ entries: [ChartDataEntry], label: String) -> ChartDataSetProtocol {
16
+ return RadarChartDataSet(entries : entries, label: label)
17
+ }
18
+
19
+ override func dataSetConfig(_ dataSet: ChartDataSetProtocol, config: JSON) {
20
+ let barDataSet = dataSet as! RadarChartDataSet
21
+
22
+ ChartDataSetConfigUtils.commonConfig(barDataSet, config: config);
23
+ ChartDataSetConfigUtils.commonBarLineScatterCandleBubbleConfig(barDataSet, config: config);
24
+ ChartDataSetConfigUtils.commonLineRadarConfig(barDataSet, config: config);
25
+ }
26
+
27
+ override func createEntry(_ values: [JSON], index: Int) -> RadarChartDataEntry {
28
+ var entry: RadarChartDataEntry;
29
+
30
+
31
+ let item = values[index];
32
+
33
+ if item.dictionary != nil {
34
+ let dict = item;
35
+
36
+ if dict["value"].double != nil {
37
+ entry = RadarChartDataEntry(value: dict["value"].doubleValue, data: dict as AnyObject?);
38
+ } else {
39
+ fatalError("invalid data " + values.description);
40
+ }
41
+
42
+ } else if item.double != nil {
43
+ entry = RadarChartDataEntry(value: item.doubleValue);
44
+ } else {
45
+ fatalError("invalid data " + values.description);
46
+ }
47
+
48
+ return entry;
49
+ }
50
+ }
@@ -0,0 +1,53 @@
1
+ // Created by xudong wu on 23/02/2017.
2
+ // Copyright wuxudong
3
+ //
4
+
5
+ import UIKit
6
+
7
+ @objc(RNScatterChartManager)
8
+ @objcMembers
9
+ class RNScatterChartManager: RCTViewManager, RNBarLineChartBaseManager {
10
+ var _bridge: RCTBridge? {get{return self.bridge}}
11
+
12
+ override func view() -> UIView! {
13
+ let ins = RNScatterChartView()
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
+ #import "RNChartManagerBridge.h"
7
+ #import "RNYAxisChartManagerBridge.h"
8
+ #import "RNBarLineChartManagerBridge.h"
9
+
10
+
11
+ @interface RCT_EXTERN_MODULE(RNScatterChartManager, RCTViewManager)
12
+
13
+ EXPORT_BAR_LINE_CHART_BASE_PROPERTIES
14
+
15
+ @end
@@ -0,0 +1,43 @@
1
+ // Created by xudong wu on 24/02/2017.
2
+ // Copyright wuxudong
3
+ //
4
+
5
+ import DGCharts
6
+ import SwiftyJSON
7
+
8
+ class RNScatterChartView: RNBarLineChartViewBase {
9
+ let _chart: ScatterChartView
10
+ let _dataExtract : ScatterDataExtract
11
+
12
+ override var chart: ScatterChartView {
13
+ return _chart
14
+ }
15
+
16
+ override var dataExtract: DataExtract {
17
+ return _dataExtract
18
+ }
19
+
20
+ override init(frame: CoreGraphics.CGRect) {
21
+
22
+ self._chart = ScatterChartView(frame: frame);
23
+ self._dataExtract = ScatterDataExtract()
24
+
25
+ super.init(frame: frame)
26
+
27
+ self._chart.delegate = self
28
+ self.addSubview(_chart)
29
+
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
+
42
+
43
+ }
@@ -0,0 +1,76 @@
1
+ //
2
+ // ScatterDataExtract.swift
3
+ // reactNativeCharts
4
+ //
5
+ // Created by xudong wu on 02/03/2017.
6
+ // Copyright © 2017 wuxudong. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ import SwiftyJSON
12
+ import DGCharts
13
+
14
+ class ScatterDataExtract : DataExtract {
15
+ override func createData() -> ChartData {
16
+ return ScatterChartData();
17
+ }
18
+
19
+ override func createDataSet(_ entries: [ChartDataEntry], label: String) -> ChartDataSetProtocol {
20
+ return ScatterChartDataSet(entries: entries, label: label)
21
+ }
22
+
23
+ override func dataSetConfig(_ dataSet: ChartDataSetProtocol, config: JSON) {
24
+ let scatterDataSet = dataSet as! ScatterChartDataSet;
25
+
26
+ ChartDataSetConfigUtils.commonConfig(scatterDataSet, config: config);
27
+ ChartDataSetConfigUtils.commonBarLineScatterCandleBubbleConfig(scatterDataSet, config: config);
28
+ ChartDataSetConfigUtils.commonLineScatterCandleRadarConfig(scatterDataSet, config: config);
29
+
30
+ // ScatterDataSet only config
31
+ if config["scatterShapeSize"].float != nil {
32
+ scatterDataSet.scatterShapeSize = CGFloat(config["scatterShapeSize"].floatValue)
33
+ }
34
+ if config["scatterShape"].string != nil {
35
+ scatterDataSet.setScatterShape(BridgeUtils.parseScatterShape(config["scatterShape"].stringValue))
36
+ }
37
+
38
+ if config["scatterShapeHoleColor"].int != nil {
39
+ scatterDataSet.scatterShapeHoleColor = RCTConvert.uiColor(config["scatterShapeHoleColor"].intValue);
40
+ }
41
+
42
+ if config["scatterShapeHoleRadius"].float != nil {
43
+ scatterDataSet.scatterShapeHoleRadius = CGFloat(config["scatterShapeHoleRadius"].floatValue)
44
+ }
45
+
46
+ }
47
+
48
+ override func createEntry(_ values: [JSON], index: Int) -> ChartDataEntry {
49
+ var entry: ChartDataEntry;
50
+
51
+ var x = Double(index);
52
+ let value = values[index];
53
+
54
+ if value.dictionary != nil {
55
+ let dict = value;
56
+
57
+ if dict["x"].double != nil {
58
+ x = Double((dict["x"].doubleValue));
59
+ }
60
+
61
+ if dict["y"].number != nil {
62
+ entry = ChartDataEntry(x: x, y: dict["y"].doubleValue, data: dict as AnyObject?);
63
+ } else {
64
+ fatalError("invalid data " + values.description);
65
+ }
66
+
67
+
68
+ } else if value.double != nil {
69
+ entry = ChartDataEntry(x: x, y: value.doubleValue);
70
+ } else {
71
+ fatalError("invalid data " + values.description);
72
+ }
73
+
74
+ return entry;
75
+ }
76
+ }