@nativescript-community/ui-chart 2.0.5 → 2.0.7

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 (404) hide show
  1. package/package.json +3 -3
  2. package/animation/ChartAnimator.d.ts +0 -61
  3. package/animation/ChartAnimator.js +0 -95
  4. package/animation/ChartAnimator.js.map +0 -1
  5. package/animation/Tween.d.ts +0 -4
  6. package/animation/Tween.js +0 -25
  7. package/animation/Tween.js.map +0 -1
  8. package/buffer/AbstractBuffer.d.ts +0 -40
  9. package/buffer/AbstractBuffer.js +0 -49
  10. package/buffer/AbstractBuffer.js.map +0 -1
  11. package/buffer/BarBuffer.d.ts +0 -15
  12. package/buffer/BarBuffer.js +0 -109
  13. package/buffer/BarBuffer.js.map +0 -1
  14. package/buffer/HorizontalBarBuffer.d.ts +0 -6
  15. package/buffer/HorizontalBarBuffer.js +0 -81
  16. package/buffer/HorizontalBarBuffer.js.map +0 -1
  17. package/charts/BarChart.d.ts +0 -94
  18. package/charts/BarChart.js +0 -141
  19. package/charts/BarChart.js.map +0 -1
  20. package/charts/BarLineChartBase.d.ts +0 -592
  21. package/charts/BarLineChartBase.js +0 -1253
  22. package/charts/BarLineChartBase.js.map +0 -1
  23. package/charts/BubbleChart.d.ts +0 -27
  24. package/charts/BubbleChart.js +0 -20
  25. package/charts/BubbleChart.js.map +0 -1
  26. package/charts/CandleStickChart.d.ts +0 -29
  27. package/charts/CandleStickChart.js +0 -19
  28. package/charts/CandleStickChart.js.map +0 -1
  29. package/charts/Chart.d.ts +0 -491
  30. package/charts/Chart.js +0 -778
  31. package/charts/Chart.js.map +0 -1
  32. package/charts/CombinedChart.d.ts +0 -78
  33. package/charts/CombinedChart.js +0 -119
  34. package/charts/CombinedChart.js.map +0 -1
  35. package/charts/HorizontalBarChart.d.ts +0 -54
  36. package/charts/HorizontalBarChart.js +0 -180
  37. package/charts/HorizontalBarChart.js.map +0 -1
  38. package/charts/LineChart.d.ts +0 -20
  39. package/charts/LineChart.js +0 -19
  40. package/charts/LineChart.js.map +0 -1
  41. package/charts/PieChart.d.ts +0 -249
  42. package/charts/PieChart.js +0 -468
  43. package/charts/PieChart.js.map +0 -1
  44. package/charts/PieRadarChartBase.d.ts +0 -130
  45. package/charts/PieRadarChartBase.js +0 -360
  46. package/charts/PieRadarChartBase.js.map +0 -1
  47. package/charts/RadarChart.d.ts +0 -101
  48. package/charts/RadarChart.js +0 -181
  49. package/charts/RadarChart.js.map +0 -1
  50. package/charts/ScatterChart.d.ts +0 -36
  51. package/charts/ScatterChart.js +0 -31
  52. package/charts/ScatterChart.js.map +0 -1
  53. package/charts/index.d.ts +0 -9
  54. package/charts/index.js +0 -10
  55. package/charts/index.js.map +0 -1
  56. package/components/AxisBase.d.ts +0 -299
  57. package/components/AxisBase.js +0 -351
  58. package/components/AxisBase.js.map +0 -1
  59. package/components/ComponentBase.d.ts +0 -60
  60. package/components/ComponentBase.js +0 -77
  61. package/components/ComponentBase.js.map +0 -1
  62. package/components/Description.d.ts +0 -22
  63. package/components/Description.js +0 -21
  64. package/components/Description.js.map +0 -1
  65. package/components/IMarker.d.ts +0 -39
  66. package/components/IMarker.js +0 -2
  67. package/components/IMarker.js.map +0 -1
  68. package/components/Legend.d.ts +0 -198
  69. package/components/Legend.js +0 -386
  70. package/components/Legend.js.map +0 -1
  71. package/components/LegendEntry.d.ts +0 -50
  72. package/components/LegendEntry.js +0 -51
  73. package/components/LegendEntry.js.map +0 -1
  74. package/components/LimitLine.d.ts +0 -55
  75. package/components/LimitLine.js +0 -62
  76. package/components/LimitLine.js.map +0 -1
  77. package/components/MarkerImage.d.ts +0 -1
  78. package/components/MarkerImage.js +0 -97
  79. package/components/MarkerImage.js.map +0 -1
  80. package/components/XAxis.d.ts +0 -55
  81. package/components/XAxis.js +0 -59
  82. package/components/XAxis.js.map +0 -1
  83. package/components/YAxis.d.ts +0 -135
  84. package/components/YAxis.js +0 -205
  85. package/components/YAxis.js.map +0 -1
  86. package/data/BarData.d.ts +0 -38
  87. package/data/BarData.js +0 -122
  88. package/data/BarData.js.map +0 -1
  89. package/data/BarDataSet.d.ts +0 -47
  90. package/data/BarDataSet.js +0 -109
  91. package/data/BarDataSet.js.map +0 -1
  92. package/data/BarEntry.d.ts +0 -11
  93. package/data/BarEntry.js +0 -2
  94. package/data/BarEntry.js.map +0 -1
  95. package/data/BarLineScatterCandleBubbleData.d.ts +0 -10
  96. package/data/BarLineScatterCandleBubbleData.js +0 -9
  97. package/data/BarLineScatterCandleBubbleData.js.map +0 -1
  98. package/data/BarLineScatterCandleBubbleDataSet.d.ts +0 -17
  99. package/data/BarLineScatterCandleBubbleDataSet.js +0 -18
  100. package/data/BarLineScatterCandleBubbleDataSet.js.map +0 -1
  101. package/data/BaseDataSet.d.ts +0 -180
  102. package/data/BaseDataSet.js +0 -220
  103. package/data/BaseDataSet.js.map +0 -1
  104. package/data/BaseEntry.d.ts +0 -10
  105. package/data/BaseEntry.js +0 -2
  106. package/data/BaseEntry.js.map +0 -1
  107. package/data/BubbleData.d.ts +0 -12
  108. package/data/BubbleData.js +0 -15
  109. package/data/BubbleData.js.map +0 -1
  110. package/data/BubbleDataSet.d.ts +0 -18
  111. package/data/BubbleDataSet.js +0 -36
  112. package/data/BubbleDataSet.js.map +0 -1
  113. package/data/BubbleEntry.d.ts +0 -5
  114. package/data/BubbleEntry.js +0 -2
  115. package/data/BubbleEntry.js.map +0 -1
  116. package/data/CandleData.d.ts +0 -5
  117. package/data/CandleData.js +0 -4
  118. package/data/CandleData.js.map +0 -1
  119. package/data/CandleDataSet.d.ts +0 -76
  120. package/data/CandleDataSet.js +0 -116
  121. package/data/CandleDataSet.js.map +0 -1
  122. package/data/CandleEntry.d.ts +0 -11
  123. package/data/CandleEntry.js +0 -2
  124. package/data/CandleEntry.js.map +0 -1
  125. package/data/ChartData.d.ts +0 -320
  126. package/data/ChartData.js +0 -702
  127. package/data/ChartData.js.map +0 -1
  128. package/data/CombinedData.d.ts +0 -61
  129. package/data/CombinedData.js +0 -153
  130. package/data/CombinedData.js.map +0 -1
  131. package/data/DataSet.d.ts +0 -98
  132. package/data/DataSet.js +0 -424
  133. package/data/DataSet.js.map +0 -1
  134. package/data/Entry.d.ts +0 -3
  135. package/data/Entry.js +0 -2
  136. package/data/Entry.js.map +0 -1
  137. package/data/LineData.d.ts +0 -10
  138. package/data/LineData.js +0 -9
  139. package/data/LineData.js.map +0 -1
  140. package/data/LineDataSet.d.ts +0 -106
  141. package/data/LineDataSet.js +0 -153
  142. package/data/LineDataSet.js.map +0 -1
  143. package/data/LineRadarDataSet.d.ts +0 -32
  144. package/data/LineRadarDataSet.js +0 -29
  145. package/data/LineRadarDataSet.js.map +0 -1
  146. package/data/LineScatterCandleRadarDataSet.d.ts +0 -36
  147. package/data/LineScatterCandleRadarDataSet.js +0 -44
  148. package/data/LineScatterCandleRadarDataSet.js.map +0 -1
  149. package/data/PieData.d.ts +0 -39
  150. package/data/PieData.js +0 -55
  151. package/data/PieData.js.map +0 -1
  152. package/data/PieDataSet.d.ts +0 -52
  153. package/data/PieDataSet.js +0 -54
  154. package/data/PieDataSet.js.map +0 -1
  155. package/data/PieEntry.d.ts +0 -7
  156. package/data/PieEntry.js +0 -2
  157. package/data/PieEntry.js.map +0 -1
  158. package/data/RadarData.d.ts +0 -17
  159. package/data/RadarData.js +0 -15
  160. package/data/RadarData.js.map +0 -1
  161. package/data/RadarDataSet.d.ts +0 -14
  162. package/data/RadarDataSet.js +0 -20
  163. package/data/RadarDataSet.js.map +0 -1
  164. package/data/RadarEntry.d.ts +0 -3
  165. package/data/RadarEntry.js +0 -2
  166. package/data/RadarEntry.js.map +0 -1
  167. package/data/ScatterData.d.ts +0 -9
  168. package/data/ScatterData.js +0 -17
  169. package/data/ScatterData.js.map +0 -1
  170. package/data/ScatterDataSet.d.ts +0 -40
  171. package/data/ScatterDataSet.js +0 -61
  172. package/data/ScatterDataSet.js.map +0 -1
  173. package/formatter/DefaultAxisValueFormatter.d.ts +0 -23
  174. package/formatter/DefaultAxisValueFormatter.js +0 -30
  175. package/formatter/DefaultAxisValueFormatter.js.map +0 -1
  176. package/formatter/DefaultFillFormatter.d.ts +0 -6
  177. package/formatter/DefaultFillFormatter.js +0 -29
  178. package/formatter/DefaultFillFormatter.js.map +0 -1
  179. package/formatter/DefaultValueFormatter.d.ts +0 -3
  180. package/formatter/DefaultValueFormatter.js +0 -4
  181. package/formatter/DefaultValueFormatter.js.map +0 -1
  182. package/formatter/IAxisValueFormatter.d.ts +0 -23
  183. package/formatter/IAxisValueFormatter.js +0 -2
  184. package/formatter/IAxisValueFormatter.js.map +0 -1
  185. package/formatter/IFillFormatter.d.ts +0 -30
  186. package/formatter/IFillFormatter.js +0 -2
  187. package/formatter/IFillFormatter.js.map +0 -1
  188. package/formatter/IValueFormatter.d.ts +0 -25
  189. package/formatter/IValueFormatter.js +0 -2
  190. package/formatter/IValueFormatter.js.map +0 -1
  191. package/formatter/ValueFormatter.d.ts +0 -81
  192. package/formatter/ValueFormatter.js +0 -90
  193. package/formatter/ValueFormatter.js.map +0 -1
  194. package/highlight/BarHighlighter.d.ts +0 -33
  195. package/highlight/BarHighlighter.js +0 -89
  196. package/highlight/BarHighlighter.js.map +0 -1
  197. package/highlight/ChartHighlighter.d.ts +0 -102
  198. package/highlight/ChartHighlighter.js +0 -220
  199. package/highlight/ChartHighlighter.js.map +0 -1
  200. package/highlight/CombinedHighlighter.d.ts +0 -17
  201. package/highlight/CombinedHighlighter.js +0 -59
  202. package/highlight/CombinedHighlighter.js.map +0 -1
  203. package/highlight/Highlight.d.ts +0 -69
  204. package/highlight/Highlight.js +0 -8
  205. package/highlight/Highlight.js.map +0 -1
  206. package/highlight/HorizontalBarHighlighter.d.ts +0 -10
  207. package/highlight/HorizontalBarHighlighter.js +0 -54
  208. package/highlight/HorizontalBarHighlighter.js.map +0 -1
  209. package/highlight/IHighlighter.d.ts +0 -15
  210. package/highlight/IHighlighter.js +0 -2
  211. package/highlight/IHighlighter.js.map +0 -1
  212. package/highlight/PieHighlighter.d.ts +0 -9
  213. package/highlight/PieHighlighter.js +0 -21
  214. package/highlight/PieHighlighter.js.map +0 -1
  215. package/highlight/PieRadarHighlighter.d.ts +0 -25
  216. package/highlight/PieRadarHighlighter.js +0 -33
  217. package/highlight/PieRadarHighlighter.js.map +0 -1
  218. package/highlight/RadarHighlighter.d.ts +0 -20
  219. package/highlight/RadarHighlighter.js +0 -59
  220. package/highlight/RadarHighlighter.js.map +0 -1
  221. package/index.d.ts +0 -11
  222. package/index.js +0 -15
  223. package/index.js.map +0 -1
  224. package/interfaces/dataprovider/BarDataProvider.d.ts +0 -9
  225. package/interfaces/dataprovider/BarLineScatterCandleBubbleDataProvider.d.ts +0 -19
  226. package/interfaces/dataprovider/BubbleDataProvider.d.ts +0 -6
  227. package/interfaces/dataprovider/CandleDataProvider.d.ts +0 -6
  228. package/interfaces/dataprovider/ChartInterface.d.ts +0 -60
  229. package/interfaces/dataprovider/CombinedDataProvider.d.ts +0 -13
  230. package/interfaces/dataprovider/LineDataProvider.d.ts +0 -9
  231. package/interfaces/dataprovider/ScatterDataProvider.d.ts +0 -6
  232. package/interfaces/datasets/IBarDataSet.d.ts +0 -47
  233. package/interfaces/datasets/IBarLineScatterCandleBubbleDataSet.d.ts +0 -12
  234. package/interfaces/datasets/IBubbleDataSet.d.ts +0 -19
  235. package/interfaces/datasets/ICandleDataSet.d.ts +0 -81
  236. package/interfaces/datasets/IDataSet.d.ts +0 -385
  237. package/interfaces/datasets/ILineDataSet.d.ts +0 -67
  238. package/interfaces/datasets/ILineRadarDataSet.d.ts +0 -35
  239. package/interfaces/datasets/ILineScatterCandleRadarDataSet.d.ts +0 -32
  240. package/interfaces/datasets/IPieDataSet.d.ts +0 -49
  241. package/interfaces/datasets/IRadarDataSet.d.ts +0 -21
  242. package/interfaces/datasets/IScatterDataSet.d.ts +0 -37
  243. package/jobs/AnimatedMoveViewJob.d.ts +0 -15
  244. package/jobs/AnimatedMoveViewJob.js +0 -42
  245. package/jobs/AnimatedMoveViewJob.js.map +0 -1
  246. package/jobs/AnimatedViewPortJob.d.ts +0 -31
  247. package/jobs/AnimatedViewPortJob.js +0 -52
  248. package/jobs/AnimatedViewPortJob.js.map +0 -1
  249. package/jobs/AnimatedZoomJob.d.ts +0 -23
  250. package/jobs/AnimatedZoomJob.js +0 -63
  251. package/jobs/AnimatedZoomJob.js.map +0 -1
  252. package/jobs/MoveViewJob.d.ts +0 -14
  253. package/jobs/MoveViewJob.js +0 -36
  254. package/jobs/MoveViewJob.js.map +0 -1
  255. package/jobs/ViewPortJob.d.ts +0 -13
  256. package/jobs/ViewPortJob.js +0 -14
  257. package/jobs/ViewPortJob.js.map +0 -1
  258. package/jobs/ZoomJob.d.ts +0 -15
  259. package/jobs/ZoomJob.js +0 -48
  260. package/jobs/ZoomJob.js.map +0 -1
  261. package/listener/BarLineChartTouchListener.d.ts +0 -187
  262. package/listener/BarLineChartTouchListener.js +0 -544
  263. package/listener/BarLineChartTouchListener.js.map +0 -1
  264. package/listener/ChartTouchListener.d.ts +0 -69
  265. package/listener/ChartTouchListener.js +0 -81
  266. package/listener/ChartTouchListener.js.map +0 -1
  267. package/listener/PieRadarChartTouchListener.d.ts +0 -100
  268. package/listener/PieRadarChartTouchListener.js +0 -282
  269. package/listener/PieRadarChartTouchListener.js.map +0 -1
  270. package/model/GradientColor.d.ts +0 -9
  271. package/model/GradientColor.js +0 -19
  272. package/model/GradientColor.js.map +0 -1
  273. package/renderer/AxisRenderer.d.ts +0 -101
  274. package/renderer/AxisRenderer.js +0 -219
  275. package/renderer/AxisRenderer.js.map +0 -1
  276. package/renderer/BarChartRenderer.d.ts +0 -40
  277. package/renderer/BarChartRenderer.js +0 -366
  278. package/renderer/BarChartRenderer.js.map +0 -1
  279. package/renderer/BarLineScatterCandleBubbleRenderer.d.ts +0 -57
  280. package/renderer/BarLineScatterCandleBubbleRenderer.js +0 -63
  281. package/renderer/BarLineScatterCandleBubbleRenderer.js.map +0 -1
  282. package/renderer/BubbleChartRenderer.d.ts +0 -22
  283. package/renderer/BubbleChartRenderer.js +0 -204
  284. package/renderer/BubbleChartRenderer.js.map +0 -1
  285. package/renderer/CandleStickChartRenderer.d.ts +0 -18
  286. package/renderer/CandleStickChartRenderer.js +0 -268
  287. package/renderer/CandleStickChartRenderer.js.map +0 -1
  288. package/renderer/CombinedChartRenderer.d.ts +0 -40
  289. package/renderer/CombinedChartRenderer.js +0 -133
  290. package/renderer/CombinedChartRenderer.js.map +0 -1
  291. package/renderer/DataRenderer.d.ts +0 -103
  292. package/renderer/DataRenderer.js +0 -110
  293. package/renderer/DataRenderer.js.map +0 -1
  294. package/renderer/HorizontalBarChartRenderer.d.ts +0 -20
  295. package/renderer/HorizontalBarChartRenderer.js +0 -303
  296. package/renderer/HorizontalBarChartRenderer.js.map +0 -1
  297. package/renderer/LegendRenderer.d.ts +0 -54
  298. package/renderer/LegendRenderer.js +0 -340
  299. package/renderer/LegendRenderer.js.map +0 -1
  300. package/renderer/LineChartRenderer.d.ts +0 -100
  301. package/renderer/LineChartRenderer.js +0 -766
  302. package/renderer/LineChartRenderer.js.map +0 -1
  303. package/renderer/LineRadarRenderer.d.ts +0 -30
  304. package/renderer/LineRadarRenderer.js +0 -85
  305. package/renderer/LineRadarRenderer.js.map +0 -1
  306. package/renderer/LineScatterCandleRadarRenderer.d.ts +0 -20
  307. package/renderer/LineScatterCandleRadarRenderer.js +0 -45
  308. package/renderer/LineScatterCandleRadarRenderer.js.map +0 -1
  309. package/renderer/PieChartRenderer.d.ts +0 -86
  310. package/renderer/PieChartRenderer.js +0 -718
  311. package/renderer/PieChartRenderer.js.map +0 -1
  312. package/renderer/RadarChartRenderer.d.ts +0 -33
  313. package/renderer/RadarChartRenderer.js +0 -290
  314. package/renderer/RadarChartRenderer.js.map +0 -1
  315. package/renderer/Renderer.d.ts +0 -13
  316. package/renderer/Renderer.js +0 -11
  317. package/renderer/Renderer.js.map +0 -1
  318. package/renderer/ScatterChartRenderer.d.ts +0 -16
  319. package/renderer/ScatterChartRenderer.js +0 -147
  320. package/renderer/ScatterChartRenderer.js.map +0 -1
  321. package/renderer/XAxisRenderer.d.ts +0 -58
  322. package/renderer/XAxisRenderer.js +0 -458
  323. package/renderer/XAxisRenderer.js.map +0 -1
  324. package/renderer/XAxisRendererHorizontalBarChart.d.ts +0 -31
  325. package/renderer/XAxisRendererHorizontalBarChart.js +0 -271
  326. package/renderer/XAxisRendererHorizontalBarChart.js.map +0 -1
  327. package/renderer/XAxisRendererRadarChart.d.ts +0 -17
  328. package/renderer/XAxisRendererRadarChart.js +0 -51
  329. package/renderer/XAxisRendererRadarChart.js.map +0 -1
  330. package/renderer/YAxisRenderer.d.ts +0 -60
  331. package/renderer/YAxisRenderer.js +0 -379
  332. package/renderer/YAxisRenderer.js.map +0 -1
  333. package/renderer/YAxisRendererHorizontalBarChart.d.ts +0 -33
  334. package/renderer/YAxisRendererHorizontalBarChart.js +0 -250
  335. package/renderer/YAxisRendererHorizontalBarChart.js.map +0 -1
  336. package/renderer/YAxisRendererRadarChart.d.ts +0 -14
  337. package/renderer/YAxisRendererRadarChart.js +0 -180
  338. package/renderer/YAxisRendererRadarChart.js.map +0 -1
  339. package/renderer/scatter/ChevronDownShapeRenderer.d.ts +0 -11
  340. package/renderer/scatter/ChevronDownShapeRenderer.js +0 -15
  341. package/renderer/scatter/ChevronDownShapeRenderer.js.map +0 -1
  342. package/renderer/scatter/ChevronUpShapeRenderer.d.ts +0 -11
  343. package/renderer/scatter/ChevronUpShapeRenderer.js +0 -15
  344. package/renderer/scatter/ChevronUpShapeRenderer.js.map +0 -1
  345. package/renderer/scatter/CircleShapeRenderer.d.ts +0 -11
  346. package/renderer/scatter/CircleShapeRenderer.js +0 -31
  347. package/renderer/scatter/CircleShapeRenderer.js.map +0 -1
  348. package/renderer/scatter/CrossShapeRenderer.d.ts +0 -11
  349. package/renderer/scatter/CrossShapeRenderer.js +0 -15
  350. package/renderer/scatter/CrossShapeRenderer.js.map +0 -1
  351. package/renderer/scatter/IShapeRenderer.d.ts +0 -20
  352. package/renderer/scatter/IShapeRenderer.js +0 -2
  353. package/renderer/scatter/IShapeRenderer.js.map +0 -1
  354. package/renderer/scatter/SquareShapeRenderer.d.ts +0 -11
  355. package/renderer/scatter/SquareShapeRenderer.js +0 -31
  356. package/renderer/scatter/SquareShapeRenderer.js.map +0 -1
  357. package/renderer/scatter/TriangleShapeRenderer.d.ts +0 -12
  358. package/renderer/scatter/TriangleShapeRenderer.js +0 -43
  359. package/renderer/scatter/TriangleShapeRenderer.js.map +0 -1
  360. package/renderer/scatter/XShapeRenderer.d.ts +0 -11
  361. package/renderer/scatter/XShapeRenderer.js +0 -15
  362. package/renderer/scatter/XShapeRenderer.js.map +0 -1
  363. package/utils/ColorTemplate.d.ts +0 -34
  364. package/utils/ColorTemplate.js +0 -51
  365. package/utils/ColorTemplate.js.map +0 -1
  366. package/utils/HorizontalViewPortHandler.d.ts +0 -6
  367. package/utils/HorizontalViewPortHandler.js +0 -7
  368. package/utils/HorizontalViewPortHandler.js.map +0 -1
  369. package/utils/MPPointD.d.ts +0 -5
  370. package/utils/MPPointF.d.ts +0 -7
  371. package/utils/MPSize.d.ts +0 -7
  372. package/utils/ObjectPool.d.ts +0 -81
  373. package/utils/ObjectPool.js +0 -183
  374. package/utils/ObjectPool.js.map +0 -1
  375. package/utils/Transformer.d.ts +0 -175
  376. package/utils/Transformer.js +0 -356
  377. package/utils/Transformer.js.map +0 -1
  378. package/utils/TransformerHorizontalBarChart.d.ts +0 -14
  379. package/utils/TransformerHorizontalBarChart.js +0 -30
  380. package/utils/TransformerHorizontalBarChart.js.map +0 -1
  381. package/utils/Utils.d.ts +0 -203
  382. package/utils/Utils.js +0 -653
  383. package/utils/Utils.js.map +0 -1
  384. package/utils/ViewPortHandler.d.ts +0 -299
  385. package/utils/ViewPortHandler.js +0 -580
  386. package/utils/ViewPortHandler.js.map +0 -1
  387. package/utils/colors/colorful.d.ts +0 -1
  388. package/utils/colors/colorful.js +0 -2
  389. package/utils/colors/colorful.js.map +0 -1
  390. package/utils/colors/joyful.d.ts +0 -1
  391. package/utils/colors/joyful.js +0 -2
  392. package/utils/colors/joyful.js.map +0 -1
  393. package/utils/colors/liberty.d.ts +0 -1
  394. package/utils/colors/liberty.js +0 -2
  395. package/utils/colors/liberty.js.map +0 -1
  396. package/utils/colors/material.d.ts +0 -1
  397. package/utils/colors/material.js +0 -2
  398. package/utils/colors/material.js.map +0 -1
  399. package/utils/colors/pastel.d.ts +0 -1
  400. package/utils/colors/pastel.js +0 -2
  401. package/utils/colors/pastel.js.map +0 -1
  402. package/utils/colors/vordiplom.d.ts +0 -1
  403. package/utils/colors/vordiplom.js +0 -2
  404. package/utils/colors/vordiplom.js.map +0 -1
@@ -1,718 +0,0 @@
1
- import { profile } from '@nativescript/core';
2
- import { Align, Canvas, Direction, LayoutAlignment, RectF, StaticLayout, Style, releaseImage } from '@nativescript-community/ui-canvas';
3
- import { DataRenderer } from './DataRenderer';
4
- import { ValuePosition } from '../data/PieDataSet';
5
- import { ColorTemplate } from '../utils/ColorTemplate';
6
- import { Utils } from '../utils/Utils';
7
- export class PieChartRenderer extends DataRenderer {
8
- get centerTextLastBounds() {
9
- if (!this.mCenterTextLastBounds) {
10
- this.mCenterTextLastBounds = new RectF(0, 0, 0, 0);
11
- }
12
- return this.mCenterTextLastBounds;
13
- }
14
- get rectBuffer() {
15
- if (!this.mRectBuffer) {
16
- this.mRectBuffer = [new RectF(0, 0, 0, 0), new RectF(0, 0, 0, 0)];
17
- }
18
- return this.mRectBuffer;
19
- }
20
- constructor(chart, animator, viewPortHandler) {
21
- super(animator, viewPortHandler);
22
- this.mChart = chart;
23
- }
24
- get centerTextPaint() {
25
- if (!this.mCenterTextPaint) {
26
- this.mCenterTextPaint = Utils.getTemplatePaint('black-fill');
27
- this.mCenterTextPaint.setTextSize(12);
28
- }
29
- return this.mCenterTextPaint;
30
- }
31
- get entryLabelsPaint() {
32
- if (!this.mEntryLabelsPaint) {
33
- this.mEntryLabelsPaint = Utils.getTemplatePaint('white-fill');
34
- this.mEntryLabelsPaint.setTextAlign(Align.CENTER);
35
- this.mEntryLabelsPaint.setTextSize(13);
36
- }
37
- return this.mEntryLabelsPaint;
38
- }
39
- get transparentCirclePaint() {
40
- if (!this.mTransparentCirclePaint) {
41
- this.mTransparentCirclePaint = Utils.getTemplatePaint('white-fill');
42
- this.mTransparentCirclePaint.setAlpha(105);
43
- }
44
- return this.mTransparentCirclePaint;
45
- }
46
- get holePaint() {
47
- if (!this.mHolePaint) {
48
- this.mHolePaint = Utils.getTemplatePaint('white-fill');
49
- }
50
- return this.mHolePaint;
51
- }
52
- get valuePaint() {
53
- if (!this.mValuePaint) {
54
- this.mValuePaint = Utils.getTemplatePaint('value');
55
- this.mValuePaint.setColor('white');
56
- this.mValuePaint.setTextSize(13);
57
- }
58
- return this.mValuePaint;
59
- }
60
- drawData(c) {
61
- const width = this.mViewPortHandler.chartWidth;
62
- const height = this.mViewPortHandler.chartHeight;
63
- let drawBitmap = this.mDrawBitmap?.get();
64
- if (!drawBitmap || drawBitmap.width !== width || drawBitmap.height !== height) {
65
- if (width > 0 && height > 0) {
66
- this.mBitmapCanvas = new Canvas(width, height);
67
- drawBitmap = this.mBitmapCanvas.getImage();
68
- this.mDrawBitmap = new WeakRef(drawBitmap);
69
- }
70
- else {
71
- return;
72
- }
73
- }
74
- else {
75
- this.mBitmapCanvas.clear();
76
- }
77
- let needsBitmapDrawing = false;
78
- const pieData = this.mChart.data;
79
- for (const set of pieData.dataSets) {
80
- needsBitmapDrawing = this.drawDataSet(c, set) || needsBitmapDrawing;
81
- }
82
- if (needsBitmapDrawing) {
83
- const renderPaint = this.renderPaint;
84
- c.drawBitmap(drawBitmap, 0, 0, renderPaint);
85
- }
86
- }
87
- calculateMinimumRadiusForSpacedSlice(center, radius, angle, arcStartPointX, arcStartPointY, startAngle, sweepAngle) {
88
- const angleMiddle = startAngle + sweepAngle / 2;
89
- // Other polet of the arc
90
- const arcEndPointX = center.x + radius * Math.cos((startAngle + sweepAngle) * Utils.DEG2RAD);
91
- const arcEndPointY = center.y + radius * Math.sin((startAngle + sweepAngle) * Utils.DEG2RAD);
92
- // Middle polet on the arc
93
- const arcMidPointX = center.x + radius * Math.cos(angleMiddle * Utils.DEG2RAD);
94
- const arcMidPointY = center.y + radius * Math.sin(angleMiddle * Utils.DEG2RAD);
95
- // This is the base of the contained triangle
96
- const basePointsDistance = Math.sqrt(Math.pow(arcEndPointX - arcStartPointX, 2) + Math.pow(arcEndPointY - arcStartPointY, 2));
97
- // After reducing space from both sides of the "slice",
98
- // the angle of the contained triangle should stay the same.
99
- // So let's find out the height of that triangle.
100
- const containedTriangleHeight = (basePointsDistance / 2.0) * Math.tan(((180.0 - angle) / 2.0) * Utils.DEG2RAD);
101
- // Now we subtract that from the radius
102
- let spacedRadius = radius - containedTriangleHeight;
103
- // And now subtract the height of the arc that's between the triangle and the outer circle
104
- spacedRadius -= Math.sqrt(Math.pow(arcMidPointX - (arcEndPointX + arcStartPointX) / 2, 2) + Math.pow(arcMidPointY - (arcEndPointY + arcStartPointY) / 2, 2));
105
- return spacedRadius;
106
- }
107
- /**
108
- * Calculates the sliceSpace to use based on visible values and their size compared to the set sliceSpace.
109
- *
110
- * @param dataSet
111
- * @return
112
- */
113
- getSliceSpace(dataSet) {
114
- if (!dataSet.automaticallyDisableSliceSpacing) {
115
- return dataSet.sliceSpace;
116
- }
117
- const spaceSizeRatio = dataSet.sliceSpace / this.mViewPortHandler.smallestContentExtension;
118
- const minValueRatio = (dataSet.yMin / this.mChart.data.getYValueSum()) * 2;
119
- const sliceSpace = spaceSizeRatio > minValueRatio ? 0 : dataSet.sliceSpace;
120
- return sliceSpace;
121
- }
122
- drawDataSet(c, dataSet) {
123
- const chart = this.mChart;
124
- const result = false;
125
- let angle = 0;
126
- const yKey = dataSet.yProperty;
127
- const rotationAngle = chart.rotationAngle;
128
- const phaseX = this.animator.phaseX;
129
- const phaseY = this.animator.phaseY;
130
- const circleBox = chart.circleBox;
131
- const entryCount = dataSet.entryCount;
132
- const drawAngles = chart.drawAngles;
133
- const center = chart.centerCircleBox;
134
- const radius = chart.radius;
135
- const drawInnerArc = chart.drawHoleEnabled && !chart.drawSlicesUnderHoleEnabled;
136
- const userInnerRadius = drawInnerArc ? radius * (chart.holeRadius / 100) : 0;
137
- const roundedRadius = (radius - (radius * chart.holeRadius) / 100) / 2;
138
- const roundedCircleBox = new RectF(0, 0, 0, 0);
139
- const drawRoundedSlices = drawInnerArc && chart.drawRoundedSlices;
140
- let visibleAngleCount = 0;
141
- for (let j = 0; j < entryCount; j++) {
142
- // draw only if the value is greater than zero
143
- if (Math.abs(dataSet.getEntryForIndex(j)[yKey]) > Utils.NUMBER_EPSILON) {
144
- visibleAngleCount++;
145
- }
146
- }
147
- const sliceSpace = visibleAngleCount <= 1 ? 0 : this.getSliceSpace(dataSet);
148
- const customRender = chart.customRenderer;
149
- const renderPaint = this.renderPaint;
150
- const pathBuffer = Utils.getTempPath();
151
- const previousShader = renderPaint.getShader();
152
- const shader = dataSet.fillShader;
153
- if (shader) {
154
- renderPaint.setShader(shader);
155
- }
156
- for (let j = 0; j < entryCount; j++) {
157
- const sliceAngle = drawAngles[j];
158
- let innerRadius = userInnerRadius;
159
- const e = dataSet.getEntryForIndex(j);
160
- // draw only if the value is greater than zero
161
- if (!(Math.abs(e[yKey]) > Utils.NUMBER_EPSILON)) {
162
- angle += sliceAngle * phaseX;
163
- continue;
164
- }
165
- // Don't draw if it's highlighted, unless the chart uses rounded slices
166
- if (chart.needsHighlight(j) && !drawRoundedSlices) {
167
- angle += sliceAngle * phaseX;
168
- continue;
169
- }
170
- const accountForSliceSpacing = sliceSpace > 0 && sliceAngle <= 180;
171
- renderPaint.setColor(dataSet.getColor(j));
172
- const sliceSpaceAngleOuter = visibleAngleCount === 1 ? 0 : sliceSpace / (Utils.DEG2RAD * radius);
173
- const startAngleOuter = rotationAngle + (angle + sliceSpaceAngleOuter / 2) * phaseY;
174
- let sweepAngleOuter = (sliceAngle - sliceSpaceAngleOuter) * phaseY;
175
- if (sweepAngleOuter < 0) {
176
- sweepAngleOuter = 0;
177
- }
178
- pathBuffer.reset();
179
- if (drawRoundedSlices) {
180
- const x = center.x + (radius - roundedRadius) * Math.cos(startAngleOuter * Utils.DEG2RAD);
181
- const y = center.y + (radius - roundedRadius) * Math.sin(startAngleOuter * Utils.DEG2RAD);
182
- roundedCircleBox.set(x - roundedRadius, y - roundedRadius, x + roundedRadius, y + roundedRadius);
183
- }
184
- const arcStartPointX = center.x + radius * Math.cos(startAngleOuter * Utils.DEG2RAD);
185
- const arcStartPointY = center.y + radius * Math.sin(startAngleOuter * Utils.DEG2RAD);
186
- if (sweepAngleOuter >= 360 && sweepAngleOuter % 360 <= Utils.NUMBER_EPSILON) {
187
- // Android is doing "mod 360"
188
- pathBuffer.addCircle(center.x, center.y, radius, Direction.CW);
189
- }
190
- else {
191
- if (drawRoundedSlices) {
192
- pathBuffer.arcTo(roundedCircleBox, startAngleOuter + 180, -180);
193
- }
194
- pathBuffer.arcTo(circleBox, startAngleOuter, sweepAngleOuter);
195
- }
196
- // Android API < 21 does not receive floats in addArc, but a RectF
197
- if (drawInnerArc && (innerRadius > 0 || accountForSliceSpacing)) {
198
- const innerRectBuffer = Utils.getTempRectF();
199
- innerRectBuffer.set(center.x - innerRadius, center.y - innerRadius, center.x + innerRadius, center.y + innerRadius);
200
- if (accountForSliceSpacing) {
201
- let minSpacedRadius = this.calculateMinimumRadiusForSpacedSlice(center, radius, sliceAngle * phaseY, arcStartPointX, arcStartPointY, startAngleOuter, sweepAngleOuter);
202
- if (minSpacedRadius < 0) {
203
- minSpacedRadius = -minSpacedRadius;
204
- }
205
- innerRadius = Math.max(innerRadius, minSpacedRadius);
206
- }
207
- const sliceSpaceAngleInner = visibleAngleCount === 1 || innerRadius === 0 ? 0 : sliceSpace / (Utils.DEG2RAD * innerRadius);
208
- const startAngleInner = rotationAngle + (angle + sliceSpaceAngleInner / 2) * phaseY;
209
- let sweepAngleInner = (sliceAngle - sliceSpaceAngleInner) * phaseY;
210
- if (sweepAngleInner < 0) {
211
- sweepAngleInner = 0;
212
- }
213
- const endAngleInner = startAngleInner + sweepAngleInner;
214
- if (sweepAngleOuter >= 360 && sweepAngleOuter % 360 <= Utils.NUMBER_EPSILON) {
215
- // Android is doing "mod 360"
216
- pathBuffer.addCircle(center.x, center.y, innerRadius, Direction.CCW);
217
- }
218
- else {
219
- if (drawRoundedSlices) {
220
- const x = center.x + (radius - roundedRadius) * Math.cos(endAngleInner * Utils.DEG2RAD);
221
- const y = center.y + (radius - roundedRadius) * Math.sin(endAngleInner * Utils.DEG2RAD);
222
- roundedCircleBox.set(x - roundedRadius, y - roundedRadius, x + roundedRadius, y + roundedRadius);
223
- pathBuffer.arcTo(roundedCircleBox, endAngleInner, 180);
224
- }
225
- else {
226
- pathBuffer.lineTo(center.x + innerRadius * Math.cos(endAngleInner * Utils.DEG2RAD), center.y + innerRadius * Math.sin(endAngleInner * Utils.DEG2RAD));
227
- }
228
- pathBuffer.arcTo(innerRectBuffer, endAngleInner, -sweepAngleInner);
229
- }
230
- }
231
- else {
232
- if (sweepAngleOuter % 360 > Utils.NUMBER_EPSILON) {
233
- if (accountForSliceSpacing) {
234
- const angleMiddle = startAngleOuter + sweepAngleOuter / 2;
235
- const sliceSpaceOffset = this.calculateMinimumRadiusForSpacedSlice(center, radius, sliceAngle * phaseY, arcStartPointX, arcStartPointY, startAngleOuter, sweepAngleOuter);
236
- const arcEndPointX = center.x + sliceSpaceOffset * Math.cos(angleMiddle * Utils.DEG2RAD);
237
- const arcEndPointY = center.y + sliceSpaceOffset * Math.sin(angleMiddle * Utils.DEG2RAD);
238
- pathBuffer.lineTo(arcEndPointX, arcEndPointY);
239
- }
240
- else {
241
- pathBuffer.lineTo(center.x, center.y);
242
- }
243
- }
244
- }
245
- pathBuffer.close();
246
- if (customRender && customRender.drawSlice) {
247
- customRender.drawSlice(c, e, pathBuffer, renderPaint);
248
- }
249
- else {
250
- c.drawPath(pathBuffer, renderPaint);
251
- }
252
- angle += sliceAngle * phaseX;
253
- }
254
- renderPaint.setShader(previousShader);
255
- return result;
256
- }
257
- drawValues(c) {
258
- const chart = this.mChart;
259
- const drawEntryLabels = chart.drawEntryLabels;
260
- const data = chart.data;
261
- const dataSets = data.dataSets;
262
- if (!drawEntryLabels || dataSets.some((d) => d.drawValuesEnabled || d.drawIconsEnabled) === false) {
263
- return;
264
- }
265
- const center = chart.centerCircleBox;
266
- // Get whole the radius
267
- const radius = chart.radius;
268
- let rotationAngle = chart.rotationAngle;
269
- const drawAngles = chart.drawAngles;
270
- const absoluteAngles = chart.absoluteAngles;
271
- const phaseX = this.animator.phaseX;
272
- const phaseY = this.animator.phaseY;
273
- const roundedRadius = (radius - (radius * chart.holeRadius) / 100) / 2;
274
- const holeRadiusPercent = chart.holeRadius / 100;
275
- let labelRadiusOffset = (radius / 10) * 3.6;
276
- if (chart.drawHoleEnabled) {
277
- labelRadiusOffset = (radius - radius * holeRadiusPercent) / 2;
278
- if (!chart.drawSlicesUnderHoleEnabled && chart.drawRoundedSlices) {
279
- // Add curved circle slice and spacing to rotation angle, so that it sits nicely inside
280
- rotationAngle += (roundedRadius * 360) / (Math.PI * 2 * radius);
281
- }
282
- }
283
- const labelRadius = radius - labelRadiusOffset;
284
- const yValueSum = data.getYValueSum();
285
- let angle;
286
- let xIndex = 0;
287
- c.save();
288
- const offset = 5;
289
- const paint = this.valuePaint;
290
- const entryLabelsPaint = drawEntryLabels ? this.entryLabelsPaint : undefined;
291
- const customRender = chart.customRenderer;
292
- const valueLinePaint = Utils.getTempPaint();
293
- valueLinePaint.setStyle(Style.STROKE);
294
- for (let i = 0; i < dataSets.length; i++) {
295
- const dataSet = dataSets[i];
296
- const drawValues = dataSet.drawValuesEnabled;
297
- if (!drawValues) {
298
- continue;
299
- }
300
- const yKey = dataSet.yProperty;
301
- const xValuePosition = dataSet.xValuePosition;
302
- const yValuePosition = dataSet.yValuePosition;
303
- // Apply the text-styling defined by the DataSet
304
- this.applyValueTextStyle(dataSet);
305
- const lineHeight = Utils.calcTextHeight(paint, 'Q') + 4;
306
- const formatter = dataSet.valueFormatter;
307
- const entryCount = dataSet.entryCount;
308
- valueLinePaint.setColor(dataSet.valueLineColor);
309
- valueLinePaint.setStrokeWidth(dataSet.valueLineWidth);
310
- const sliceSpace = this.getSliceSpace(dataSet);
311
- const iconsOffset = dataSet.iconsOffset;
312
- const valuesOffset = dataSet.valuesOffset;
313
- const isDrawIconsEnabled = dataSet.drawIconsEnabled;
314
- for (let j = 0; j < entryCount; j++) {
315
- const entry = dataSet.getEntryForIndex(j);
316
- if (xIndex === 0) {
317
- angle = 0;
318
- }
319
- else {
320
- angle = absoluteAngles[xIndex - 1] * phaseX;
321
- }
322
- const sliceAngle = drawAngles[xIndex];
323
- const sliceSpaceMiddleAngle = sliceSpace / (Utils.DEG2RAD * labelRadius);
324
- // offset needed to center the drawn text in the slice
325
- const angleOffset = (sliceAngle - sliceSpaceMiddleAngle / 2) / 2;
326
- angle = angle + angleOffset;
327
- const transformedAngle = rotationAngle + angle * phaseY;
328
- const value = chart.usePercentValues ? (entry[yKey] / yValueSum) * 100 : entry[yKey];
329
- const formattedValue = (formatter.getPieLabel || formatter.getFormattedValue)(value, entry);
330
- const entryLabel = entry.label;
331
- const sliceXBase = Math.cos(transformedAngle * Utils.DEG2RAD);
332
- const sliceYBase = Math.sin(transformedAngle * Utils.DEG2RAD);
333
- const drawXOutside = drawEntryLabels && xValuePosition === ValuePosition.OUTSIDE_SLICE;
334
- const drawYOutside = drawValues && yValuePosition === ValuePosition.OUTSIDE_SLICE;
335
- const drawXInside = drawEntryLabels && xValuePosition === ValuePosition.INSIDE_SLICE;
336
- const drawYInside = drawValues && yValuePosition === ValuePosition.INSIDE_SLICE;
337
- if (drawXOutside || drawYOutside) {
338
- const valueLineLength1 = dataSet.valueLinePart1Length;
339
- const valueLineLength2 = dataSet.valueLinePart2Length;
340
- const valueLinePart1OffsetPercentage = dataSet.valueLinePart1OffsetPercentage / 100;
341
- let pt2x, pt2y;
342
- let labelPtx, labelPty;
343
- let line1Radius;
344
- if (chart.drawHoleEnabled) {
345
- line1Radius = (radius - radius * holeRadiusPercent) * valueLinePart1OffsetPercentage + radius * holeRadiusPercent;
346
- }
347
- else {
348
- line1Radius = radius * valueLinePart1OffsetPercentage;
349
- }
350
- const polyline2Width = dataSet.valueLineVariableLength ? labelRadius * valueLineLength2 * Math.abs(Math.sin(transformedAngle * Utils.DEG2RAD)) : labelRadius * valueLineLength2;
351
- const pt0x = line1Radius * sliceXBase + center.x;
352
- const pt0y = line1Radius * sliceYBase + center.y;
353
- const pt1x = labelRadius * (1 + valueLineLength1) * sliceXBase + center.x;
354
- const pt1y = labelRadius * (1 + valueLineLength1) * sliceYBase + center.y;
355
- if (transformedAngle % 360.0 >= 90.0 && transformedAngle % 360.0 <= 270.0) {
356
- pt2x = pt1x - polyline2Width;
357
- pt2y = pt1y;
358
- paint.setTextAlign(Align.RIGHT);
359
- if (drawXOutside) {
360
- entryLabelsPaint.setTextAlign(Align.RIGHT);
361
- }
362
- labelPtx = pt2x - offset;
363
- labelPty = pt2y;
364
- }
365
- else {
366
- pt2x = pt1x + polyline2Width;
367
- pt2y = pt1y;
368
- paint.setTextAlign(Align.LEFT);
369
- if (drawXOutside) {
370
- entryLabelsPaint.setTextAlign(Align.LEFT);
371
- }
372
- labelPtx = pt2x + offset;
373
- labelPty = pt2y;
374
- }
375
- if (dataSet.valueLineColor !== ColorTemplate.COLOR_NONE) {
376
- if (dataSet.usingSliceColorAsValueLineColor) {
377
- valueLinePaint.setColor(dataSet.getColor(j));
378
- }
379
- c.drawLine(pt0x, pt0y, pt1x, pt1y, valueLinePaint);
380
- c.drawLine(pt1x, pt1y, pt2x, pt2y, valueLinePaint);
381
- }
382
- // draw everything, depending on settings
383
- if (drawXOutside && drawYOutside) {
384
- this.drawValue(c, chart, dataSet, i, entry, j, formattedValue, labelPtx + valuesOffset.x, labelPty + valuesOffset.y, dataSet.getValueTextColor(j), paint, customRender);
385
- if (j < data.entryCount && entryLabel) {
386
- this.drawEntryLabel(c, entryLabel, labelPtx, labelPty + lineHeight, entryLabelsPaint);
387
- }
388
- }
389
- else if (drawXOutside) {
390
- if (j < data.entryCount && entryLabel) {
391
- this.drawEntryLabel(c, entryLabel, labelPtx, labelPty + lineHeight / 2, entryLabelsPaint);
392
- }
393
- }
394
- else if (drawYOutside) {
395
- this.drawValue(c, chart, dataSet, i, entry, j, formattedValue, labelPtx + valuesOffset.x, labelPty + valuesOffset.y + lineHeight / 2, dataSet.getValueTextColor(j), paint, customRender);
396
- }
397
- }
398
- if (drawXInside || drawYInside) {
399
- // calculate the text position
400
- const x = labelRadius * sliceXBase + center.x;
401
- const y = labelRadius * sliceYBase + center.y;
402
- paint.setTextAlign(Align.CENTER);
403
- // draw everything, depending on settings
404
- if (drawXInside && drawYInside) {
405
- this.drawValue(c, chart, dataSet, i, entry, j, formattedValue, x + valuesOffset.x, y + valuesOffset.y, dataSet.getValueTextColor(j), paint, customRender);
406
- if (j < data.entryCount && entryLabel) {
407
- this.drawEntryLabel(c, entryLabel, x, y + lineHeight, entryLabelsPaint);
408
- }
409
- }
410
- else if (drawXInside) {
411
- if (j < data.entryCount && entryLabel) {
412
- this.drawEntryLabel(c, entryLabel, x, y + lineHeight / 2, entryLabelsPaint);
413
- }
414
- }
415
- else if (drawYInside) {
416
- this.drawValue(c, chart, dataSet, i, entry, j, formattedValue, x + valuesOffset.x, y + valuesOffset.y + lineHeight / 2, dataSet.getValueTextColor(j), paint, customRender);
417
- }
418
- }
419
- if (isDrawIconsEnabled) {
420
- const x = (labelRadius + iconsOffset.y) * sliceXBase + center.x;
421
- let y = (labelRadius + iconsOffset.y) * sliceYBase + center.y;
422
- y += iconsOffset.x;
423
- this.drawIcon(c, chart, dataSet, i, entry, j, dataSet.getEntryIcon(entry), x, y, customRender);
424
- }
425
- xIndex++;
426
- }
427
- }
428
- c.restore();
429
- }
430
- /**
431
- * Draws an entry label at the specified position.
432
- *
433
- * @param c
434
- * @param label
435
- * @param x
436
- * @param y
437
- */
438
- drawEntryLabel(c, label, x, y, paint) {
439
- c.drawText(label.toString(), x, y, paint);
440
- }
441
- drawExtras(c) {
442
- this.drawHole(c);
443
- if (this.mDrawBitmap.get()) {
444
- c.drawBitmap(this.mDrawBitmap.get(), 0, 0, null);
445
- }
446
- this.drawCenterText(c);
447
- }
448
- /**
449
- * Draws the hole in the center of the chart and the transparent circle /
450
- * hole.
451
- */
452
- drawHole(c) {
453
- const chart = this.mChart;
454
- if (chart.drawHoleEnabled) {
455
- const radius = chart.radius;
456
- const holeRadius = radius * (chart.holeRadius / 100);
457
- const center = chart.centerCircleBox;
458
- const paint = this.holePaint;
459
- if (ColorTemplate.getColorInstance(paint.getColor()).a > 0) {
460
- // draw the hole-circle
461
- c.drawCircle(center.x, center.y, holeRadius, paint);
462
- }
463
- const transparentCirclePaint = this.transparentCirclePaint;
464
- // only draw the circle if it can be seen (not covered by the hole)
465
- if (ColorTemplate.getColorInstance(transparentCirclePaint.getColor()).a > 0 && chart.transparentCircleRadiusPercent > chart.holeRadius) {
466
- const alpha = transparentCirclePaint.getAlpha();
467
- const secondHoleRadius = radius * (chart.transparentCircleRadiusPercent / 100);
468
- transparentCirclePaint.setAlpha(alpha * this.animator.phaseX * this.animator.phaseY);
469
- // draw the transparent-circle
470
- const path = Utils.getTempPath();
471
- path.reset();
472
- path.addCircle(center.x, center.y, secondHoleRadius, Direction.CW);
473
- path.addCircle(center.x, center.y, holeRadius, Direction.CCW);
474
- c.drawPath(path, transparentCirclePaint);
475
- // reset alpha
476
- transparentCirclePaint.setAlpha(alpha);
477
- }
478
- }
479
- }
480
- /**
481
- * Draws the description text in the center of the pie chart makes most
482
- * sense when center-hole is enabled.
483
- */
484
- drawCenterText(c) {
485
- const chart = this.mChart;
486
- const centerText = chart.centerText;
487
- if (centerText && chart.drawCenterText) {
488
- const center = chart.centerCircleBox;
489
- const offset = chart.centerTextOffset;
490
- const x = center.x + offset.x;
491
- const y = center.y + offset.y;
492
- const innerRadius = chart.drawHoleEnabled && !chart.drawSlicesUnderHoleEnabled ? chart.radius * (chart.holeRadius / 100) : chart.radius;
493
- const rectBuffer = this.rectBuffer;
494
- const holeRect = rectBuffer[0];
495
- holeRect.left = x - innerRadius;
496
- holeRect.top = y - innerRadius;
497
- holeRect.right = x + innerRadius;
498
- holeRect.bottom = y + innerRadius;
499
- const boundingRect = rectBuffer[1];
500
- boundingRect.set(holeRect);
501
- const radiusPercent = chart.centerTextRadiusPercent / 100;
502
- if (radiusPercent > 0.0) {
503
- boundingRect.inset((boundingRect.width() - boundingRect.width() * radiusPercent) / 2, (boundingRect.height() - boundingRect.height() * radiusPercent) / 2);
504
- }
505
- const centerTextLastBounds = this.centerTextLastBounds;
506
- if (!this.mCenterTextLayout || centerText !== this.mCenterTextLastValue || boundingRect !== centerTextLastBounds) {
507
- // Next time we won't recalculate StaticLayout...
508
- centerTextLastBounds.set(boundingRect);
509
- this.mCenterTextLastValue = centerText;
510
- const width = centerTextLastBounds.width();
511
- // If width is 0, it will crash. Always have a minimum of 1
512
- this.mCenterTextLayout = new StaticLayout(centerText, this.centerTextPaint, Math.max(Math.ceil(width), 1), LayoutAlignment.ALIGN_CENTER, 1, 0, false);
513
- }
514
- //let layoutWidth = Utils.getStaticLayoutMaxWidth(mCenterTextLayout);
515
- const layoutHeight = this.mCenterTextLayout.getHeight();
516
- c.save();
517
- if (__ANDROID__) {
518
- if (android.os.Build.VERSION.SDK_INT >= 18) {
519
- const path = Utils.getTempPath();
520
- path.reset();
521
- path.addOval(holeRect, Direction.CW);
522
- c.clipPath(path);
523
- }
524
- }
525
- c.translate(boundingRect.left, boundingRect.top + (boundingRect.height() - layoutHeight) / 2);
526
- this.mCenterTextLayout.draw(c);
527
- c.restore();
528
- }
529
- }
530
- drawHighlighted(c, indices) {
531
- /* Skip entirely if using rounded circle slices, because it doesn't make sense to highlight
532
- * in this way.
533
- * TODO: add support for changing slice color with highlighting rather than only shifting the slice
534
- */
535
- const chart = this.mChart;
536
- const drawInnerArc = chart.drawHoleEnabled && !chart.drawSlicesUnderHoleEnabled;
537
- if (drawInnerArc && chart.drawRoundedSlices) {
538
- return;
539
- }
540
- const phaseX = this.animator.phaseX;
541
- const phaseY = this.animator.phaseY;
542
- let angle;
543
- const rotationAngle = chart.rotationAngle;
544
- const drawAngles = chart.drawAngles;
545
- const absoluteAngles = chart.absoluteAngles;
546
- const center = chart.centerCircleBox;
547
- const radius = chart.radius;
548
- const userInnerRadius = drawInnerArc ? radius * (chart.holeRadius / 100) : 0;
549
- const highlightedCircleBox = Utils.getTempRectF();
550
- const customRender = chart.customRenderer;
551
- const renderPaint = this.renderPaint;
552
- const pathBuffer = Utils.getTempPath();
553
- for (let i = 0; i < indices.length; i++) {
554
- // get the index to highlight
555
- const high = indices[i];
556
- const index = high.x;
557
- if (index >= drawAngles.length) {
558
- continue;
559
- }
560
- const set = chart.data.getDataSetByIndex(high.dataSetIndex);
561
- if (!set || !set.highlightEnabled) {
562
- continue;
563
- }
564
- const yKey = set.yProperty;
565
- const entryCount = set.entryCount;
566
- let visibleAngleCount = 0;
567
- for (let j = 0; j < entryCount; j++) {
568
- // draw only if the value is greater than zero
569
- if (Math.abs(set.getEntryForIndex(j)[yKey]) > Utils.NUMBER_EPSILON) {
570
- visibleAngleCount++;
571
- }
572
- }
573
- if (index === 0) {
574
- angle = 0;
575
- }
576
- else {
577
- angle = absoluteAngles[index - 1] * phaseX;
578
- }
579
- const sliceSpace = visibleAngleCount <= 1 ? 0 : set.sliceSpace;
580
- const sliceAngle = drawAngles[index];
581
- let innerRadius = userInnerRadius;
582
- const shift = set.selectionShift;
583
- const highlightedRadius = radius + shift;
584
- highlightedCircleBox.set(chart.circleBox);
585
- highlightedCircleBox.inset(-shift, -shift);
586
- const accountForSliceSpacing = sliceSpace > 0 && sliceAngle <= 180;
587
- renderPaint.setColor(set.getColor(index));
588
- const sliceSpaceAngleOuter = visibleAngleCount === 1 ? 0 : sliceSpace / (Utils.DEG2RAD * radius);
589
- const sliceSpaceAngleShifted = visibleAngleCount === 1 ? 0 : sliceSpace / (Utils.DEG2RAD * highlightedRadius);
590
- const startAngleOuter = rotationAngle + (angle + sliceSpaceAngleOuter / 2) * phaseY;
591
- let sweepAngleOuter = (sliceAngle - sliceSpaceAngleOuter) * phaseY;
592
- if (sweepAngleOuter < 0) {
593
- sweepAngleOuter = 0;
594
- }
595
- const startAngleShifted = rotationAngle + (angle + sliceSpaceAngleShifted / 2) * phaseY;
596
- let sweepAngleShifted = (sliceAngle - sliceSpaceAngleShifted) * phaseY;
597
- if (sweepAngleShifted < 0) {
598
- sweepAngleShifted = 0;
599
- }
600
- pathBuffer.reset();
601
- if (sweepAngleOuter >= 360 && sweepAngleOuter % 360 <= Utils.NUMBER_EPSILON) {
602
- // Android is doing "mod 360"
603
- pathBuffer.addCircle(center.x, center.y, highlightedRadius, Direction.CW);
604
- }
605
- else {
606
- pathBuffer.moveTo(center.x + highlightedRadius * Math.cos(startAngleShifted * Utils.DEG2RAD), center.y + highlightedRadius * Math.sin(startAngleShifted * Utils.DEG2RAD));
607
- pathBuffer.arcTo(highlightedCircleBox, startAngleShifted, sweepAngleShifted);
608
- }
609
- let sliceSpaceRadius = 0;
610
- if (accountForSliceSpacing) {
611
- sliceSpaceRadius = this.calculateMinimumRadiusForSpacedSlice(center, radius, sliceAngle * phaseY, center.x + radius * Math.cos(startAngleOuter * Utils.DEG2RAD), center.y + radius * Math.sin(startAngleOuter * Utils.DEG2RAD), startAngleOuter, sweepAngleOuter);
612
- }
613
- if (drawInnerArc && (innerRadius > 0 || accountForSliceSpacing)) {
614
- // Android API < 21 does not receive floats in addArc, but a RectF
615
- const innerRectBuffer = Utils.getTempRectF();
616
- innerRectBuffer.set(center.x - innerRadius, center.y - innerRadius, center.x + innerRadius, center.y + innerRadius);
617
- if (accountForSliceSpacing) {
618
- let minSpacedRadius = sliceSpaceRadius;
619
- if (minSpacedRadius < 0)
620
- minSpacedRadius = -minSpacedRadius;
621
- innerRadius = Math.max(innerRadius, minSpacedRadius);
622
- }
623
- const sliceSpaceAngleInner = visibleAngleCount === 1 || innerRadius === 0 ? 0 : sliceSpace / (Utils.DEG2RAD * innerRadius);
624
- const startAngleInner = rotationAngle + (angle + sliceSpaceAngleInner / 2) * phaseY;
625
- let sweepAngleInner = (sliceAngle - sliceSpaceAngleInner) * phaseY;
626
- if (sweepAngleInner < 0) {
627
- sweepAngleInner = 0;
628
- }
629
- const endAngleInner = startAngleInner + sweepAngleInner;
630
- if (sweepAngleOuter >= 360 && sweepAngleOuter % 360 <= Utils.NUMBER_EPSILON) {
631
- // Android is doing "mod 360"
632
- pathBuffer.addCircle(center.x, center.y, innerRadius, Direction.CCW);
633
- }
634
- else {
635
- pathBuffer.lineTo(center.x + innerRadius * Math.cos(endAngleInner * Utils.DEG2RAD), center.y + innerRadius * Math.sin(endAngleInner * Utils.DEG2RAD));
636
- pathBuffer.arcTo(innerRectBuffer, endAngleInner, -sweepAngleInner);
637
- }
638
- }
639
- else {
640
- if (sweepAngleOuter % 360 > Utils.NUMBER_EPSILON) {
641
- if (accountForSliceSpacing) {
642
- const angleMiddle = startAngleOuter + sweepAngleOuter / 2;
643
- const arcEndPointX = center.x + sliceSpaceRadius * Math.cos(angleMiddle * Utils.DEG2RAD);
644
- const arcEndPointY = center.y + sliceSpaceRadius * Math.sin(angleMiddle * Utils.DEG2RAD);
645
- pathBuffer.lineTo(arcEndPointX, arcEndPointY);
646
- }
647
- else {
648
- pathBuffer.lineTo(center.x, center.y);
649
- }
650
- }
651
- }
652
- pathBuffer.close();
653
- if (customRender && customRender.drawHighlight) {
654
- customRender.drawHighlight(c, high, pathBuffer, renderPaint);
655
- }
656
- else {
657
- c.drawPath(pathBuffer, renderPaint);
658
- }
659
- }
660
- }
661
- /**
662
- * This gives all pie-slices a rounded edge.
663
- *
664
- * @param c
665
- */
666
- drawRoundedSlices(c) {
667
- const chart = this.mChart;
668
- if (!chart.drawRoundedSlices) {
669
- return;
670
- }
671
- const dataSet = chart.data.getDataSet();
672
- if (!dataSet.visible) {
673
- return;
674
- }
675
- const yKey = dataSet.yProperty;
676
- const phaseX = this.animator.phaseX;
677
- const phaseY = this.animator.phaseY;
678
- const center = chart.centerCircleBox;
679
- const r = chart.radius;
680
- // calculate the radius of the "slice-circle"
681
- const circleRadius = (r - (r * chart.holeRadius) / 100) / 2;
682
- const drawAngles = chart.drawAngles;
683
- let angle = chart.rotationAngle;
684
- const renderPaint = this.renderPaint;
685
- for (let j = 0; j < dataSet.entryCount; j++) {
686
- const sliceAngle = drawAngles[j];
687
- const e = dataSet.getEntryForIndex(j);
688
- // draw only if the value is greater than zero
689
- if (Math.abs(e[yKey]) > Utils.NUMBER_EPSILON) {
690
- const x = (r - circleRadius) * Math.cos((angle + sliceAngle) * phaseY * Utils.DEG2RAD) + center.x;
691
- const y = (r - circleRadius) * Math.sin((angle + sliceAngle) * phaseY * Utils.DEG2RAD) + center.y;
692
- renderPaint.setColor(dataSet.getColor(j));
693
- c.drawCircle(x, y, circleRadius, renderPaint);
694
- }
695
- angle += sliceAngle * phaseX;
696
- }
697
- }
698
- /**
699
- * Releases the drawing bitmap.
700
- */
701
- releaseBitmap() {
702
- if (this.mBitmapCanvas) {
703
- this.mBitmapCanvas.setBitmap(null);
704
- this.mBitmapCanvas = null;
705
- }
706
- if (this.mDrawBitmap) {
707
- const drawBitmap = this.mDrawBitmap.get();
708
- if (drawBitmap) {
709
- releaseImage(drawBitmap);
710
- }
711
- this.mDrawBitmap = null;
712
- }
713
- }
714
- }
715
- __decorate([
716
- profile
717
- ], PieChartRenderer.prototype, "drawData", null);
718
- //# sourceMappingURL=PieChartRenderer.js.map