@nativescript-community/ui-chart 1.2.36 → 2.0.1

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 (365) hide show
  1. package/README.md +6 -0
  2. package/animation/ChartAnimator.d.ts +47 -4
  3. package/animation/ChartAnimator.js +49 -11
  4. package/animation/ChartAnimator.js.map +1 -1
  5. package/animation/Tween.d.ts +1 -1
  6. package/animation/Tween.js +4 -2
  7. package/animation/Tween.js.map +1 -1
  8. package/buffer/AbstractBuffer.d.ts +28 -3
  9. package/buffer/AbstractBuffer.js +22 -3
  10. package/buffer/AbstractBuffer.js.map +1 -1
  11. package/buffer/BarBuffer.d.ts +8 -12
  12. package/buffer/BarBuffer.js +33 -36
  13. package/buffer/BarBuffer.js.map +1 -1
  14. package/buffer/HorizontalBarBuffer.js +13 -10
  15. package/buffer/HorizontalBarBuffer.js.map +1 -1
  16. package/charts/BarChart.d.ts +70 -15
  17. package/charts/BarChart.js +92 -63
  18. package/charts/BarChart.js.map +1 -1
  19. package/charts/BarLineChartBase.d.ts +494 -73
  20. package/charts/BarLineChartBase.js +788 -407
  21. package/charts/BarLineChartBase.js.map +1 -1
  22. package/charts/BubbleChart.d.ts +11 -5
  23. package/charts/BubbleChart.js +10 -8
  24. package/charts/BubbleChart.js.map +1 -1
  25. package/charts/CandleStickChart.d.ts +8 -5
  26. package/charts/CandleStickChart.js +9 -10
  27. package/charts/CandleStickChart.js.map +1 -1
  28. package/charts/Chart.d.ts +420 -91
  29. package/charts/Chart.js +590 -290
  30. package/charts/Chart.js.map +1 -1
  31. package/charts/CombinedChart.d.ts +59 -29
  32. package/charts/CombinedChart.js +74 -67
  33. package/charts/CombinedChart.js.map +1 -1
  34. package/charts/HorizontalBarChart.d.ts +37 -7
  35. package/charts/HorizontalBarChart.js +97 -59
  36. package/charts/HorizontalBarChart.js.map +1 -1
  37. package/charts/LineChart.d.ts +3 -5
  38. package/charts/LineChart.js +6 -10
  39. package/charts/LineChart.js.map +1 -1
  40. package/charts/PieChart.d.ts +218 -64
  41. package/charts/PieChart.js +278 -168
  42. package/charts/PieChart.js.map +1 -1
  43. package/charts/PieRadarChartBase.d.ts +107 -18
  44. package/charts/PieRadarChartBase.js +156 -73
  45. package/charts/PieRadarChartBase.js.map +1 -1
  46. package/charts/RadarChart.d.ts +75 -35
  47. package/charts/RadarChart.js +114 -103
  48. package/charts/RadarChart.js.map +1 -1
  49. package/charts/ScatterChart.d.ts +10 -5
  50. package/charts/ScatterChart.js +11 -10
  51. package/charts/ScatterChart.js.map +1 -1
  52. package/components/AxisBase.d.ts +271 -101
  53. package/components/AxisBase.js +264 -254
  54. package/components/AxisBase.js.map +1 -1
  55. package/components/ComponentBase.d.ts +54 -19
  56. package/components/ComponentBase.js +60 -48
  57. package/components/ComponentBase.js.map +1 -1
  58. package/components/Description.d.ts +18 -9
  59. package/components/Description.js +12 -26
  60. package/components/Description.js.map +1 -1
  61. package/components/IMarker.d.ts +30 -1
  62. package/components/IMarker.js.map +1 -1
  63. package/components/Legend.d.ts +155 -58
  64. package/components/Legend.js +208 -172
  65. package/components/Legend.js.map +1 -1
  66. package/components/LegendEntry.d.ts +38 -0
  67. package/components/LegendEntry.js +34 -0
  68. package/components/LegendEntry.js.map +1 -1
  69. package/components/LimitLine.d.ts +40 -22
  70. package/components/LimitLine.js +44 -56
  71. package/components/LimitLine.js.map +1 -1
  72. package/components/MarkerImage.d.ts +1 -0
  73. package/components/MarkerImage.js +97 -0
  74. package/components/MarkerImage.js.map +1 -0
  75. package/components/XAxis.d.ts +41 -10
  76. package/components/XAxis.js +42 -24
  77. package/components/XAxis.js.map +1 -1
  78. package/components/YAxis.d.ts +114 -37
  79. package/components/YAxis.js +138 -106
  80. package/components/YAxis.js.map +1 -1
  81. package/data/BarData.d.ts +32 -4
  82. package/data/BarData.js +92 -24
  83. package/data/BarData.js.map +1 -1
  84. package/data/BarDataSet.d.ts +35 -18
  85. package/data/BarDataSet.js +42 -47
  86. package/data/BarDataSet.js.map +1 -1
  87. package/data/BarEntry.d.ts +3 -0
  88. package/data/BarEntry.js.map +1 -1
  89. package/data/BarLineScatterCandleBubbleData.d.ts +5 -0
  90. package/data/BarLineScatterCandleBubbleData.js +5 -0
  91. package/data/BarLineScatterCandleBubbleData.js.map +1 -1
  92. package/data/BarLineScatterCandleBubbleDataSet.d.ts +11 -3
  93. package/data/BarLineScatterCandleBubbleDataSet.js +11 -7
  94. package/data/BarLineScatterCandleBubbleDataSet.js.map +1 -1
  95. package/data/BaseDataSet.d.ts +129 -71
  96. package/data/BaseDataSet.js +146 -169
  97. package/data/BaseDataSet.js.map +1 -1
  98. package/data/BaseEntry.d.ts +3 -0
  99. package/data/BaseEntry.js.map +1 -1
  100. package/data/BubbleData.d.ts +7 -1
  101. package/data/BubbleData.js +8 -2
  102. package/data/BubbleData.js.map +1 -1
  103. package/data/BubbleDataSet.d.ts +7 -7
  104. package/data/BubbleDataSet.js +8 -15
  105. package/data/BubbleDataSet.js.map +1 -1
  106. package/data/BubbleEntry.d.ts +1 -0
  107. package/data/BubbleEntry.js.map +1 -1
  108. package/data/CandleData.js.map +1 -1
  109. package/data/CandleDataSet.d.ts +64 -30
  110. package/data/CandleDataSet.js +67 -74
  111. package/data/CandleDataSet.js.map +1 -1
  112. package/data/CandleEntry.d.ts +4 -0
  113. package/data/CandleEntry.js.map +1 -1
  114. package/data/ChartData.d.ts +275 -20
  115. package/data/ChartData.js +400 -95
  116. package/data/ChartData.js.map +1 -1
  117. package/data/CombinedData.d.ts +39 -12
  118. package/data/CombinedData.js +87 -71
  119. package/data/CombinedData.js.map +1 -1
  120. package/data/DataSet.d.ts +59 -8
  121. package/data/DataSet.js +114 -26
  122. package/data/DataSet.js.map +1 -1
  123. package/data/Entry.js.map +1 -1
  124. package/data/LineData.d.ts +5 -0
  125. package/data/LineData.js +5 -0
  126. package/data/LineData.js.map +1 -1
  127. package/data/LineDataSet.d.ts +84 -49
  128. package/data/LineDataSet.js +94 -135
  129. package/data/LineDataSet.js.map +1 -1
  130. package/data/LineRadarDataSet.d.ts +27 -17
  131. package/data/LineRadarDataSet.js +22 -35
  132. package/data/LineRadarDataSet.js.map +1 -1
  133. package/data/LineScatterCandleRadarDataSet.d.ts +30 -15
  134. package/data/LineScatterCandleRadarDataSet.js +36 -39
  135. package/data/LineScatterCandleRadarDataSet.js.map +1 -1
  136. package/data/PieData.d.ts +26 -0
  137. package/data/PieData.js +28 -2
  138. package/data/PieData.js.map +1 -1
  139. package/data/PieDataSet.d.ts +40 -36
  140. package/data/PieDataSet.js +36 -88
  141. package/data/PieDataSet.js.map +1 -1
  142. package/data/PieEntry.d.ts +3 -0
  143. package/data/PieEntry.js.map +1 -1
  144. package/data/RadarData.d.ts +10 -4
  145. package/data/RadarData.js +5 -6
  146. package/data/RadarData.js.map +1 -1
  147. package/data/RadarDataSet.d.ts +7 -21
  148. package/data/RadarDataSet.js +10 -49
  149. package/data/RadarDataSet.js.map +1 -1
  150. package/data/RadarEntry.js.map +1 -1
  151. package/data/ScatterData.d.ts +4 -1
  152. package/data/ScatterData.js +5 -2
  153. package/data/ScatterData.js.map +1 -1
  154. package/data/ScatterDataSet.d.ts +24 -14
  155. package/data/ScatterDataSet.js +26 -31
  156. package/data/ScatterDataSet.js.map +1 -1
  157. package/formatter/DefaultAxisValueFormatter.d.ts +17 -3
  158. package/formatter/DefaultAxisValueFormatter.js +12 -5
  159. package/formatter/DefaultAxisValueFormatter.js.map +1 -1
  160. package/formatter/DefaultFillFormatter.js +7 -7
  161. package/formatter/DefaultFillFormatter.js.map +1 -1
  162. package/formatter/DefaultValueFormatter.js.map +1 -1
  163. package/formatter/IAxisValueFormatter.d.ts +20 -2
  164. package/formatter/IAxisValueFormatter.js.map +1 -1
  165. package/formatter/IFillFormatter.d.ts +25 -0
  166. package/formatter/IFillFormatter.js.map +1 -1
  167. package/formatter/IValueFormatter.d.ts +21 -0
  168. package/formatter/IValueFormatter.js.map +1 -1
  169. package/formatter/ValueFormatter.d.ts +60 -0
  170. package/formatter/ValueFormatter.js +60 -0
  171. package/formatter/ValueFormatter.js.map +1 -1
  172. package/highlight/BarHighlighter.d.ts +22 -2
  173. package/highlight/BarHighlighter.js +43 -17
  174. package/highlight/BarHighlighter.js.map +1 -1
  175. package/highlight/ChartHighlighter.d.ts +87 -5
  176. package/highlight/ChartHighlighter.js +129 -25
  177. package/highlight/ChartHighlighter.js.map +1 -1
  178. package/highlight/CombinedHighlighter.d.ts +6 -0
  179. package/highlight/CombinedHighlighter.js +31 -16
  180. package/highlight/CombinedHighlighter.js.map +1 -1
  181. package/highlight/Highlight.d.ts +54 -1
  182. package/highlight/Highlight.js +5 -0
  183. package/highlight/Highlight.js.map +1 -1
  184. package/highlight/HorizontalBarHighlighter.d.ts +1 -1
  185. package/highlight/HorizontalBarHighlighter.js +14 -13
  186. package/highlight/HorizontalBarHighlighter.js.map +1 -1
  187. package/highlight/IHighlighter.d.ts +11 -1
  188. package/highlight/IHighlighter.js.map +1 -1
  189. package/highlight/PieHighlighter.js +2 -2
  190. package/highlight/PieHighlighter.js.map +1 -1
  191. package/highlight/PieRadarHighlighter.d.ts +12 -1
  192. package/highlight/PieRadarHighlighter.js +12 -4
  193. package/highlight/PieRadarHighlighter.js.map +1 -1
  194. package/highlight/RadarHighlighter.d.ts +12 -0
  195. package/highlight/RadarHighlighter.js +24 -10
  196. package/highlight/RadarHighlighter.js.map +1 -1
  197. package/index.d.ts +11 -0
  198. package/index.js +15 -0
  199. package/index.js.map +1 -0
  200. package/interfaces/dataprovider/BarDataProvider.d.ts +4 -4
  201. package/interfaces/dataprovider/BarLineScatterCandleBubbleDataProvider.d.ts +8 -3
  202. package/interfaces/dataprovider/BubbleDataProvider.d.ts +1 -1
  203. package/interfaces/dataprovider/CandleDataProvider.d.ts +1 -1
  204. package/interfaces/dataprovider/ChartInterface.d.ts +17 -22
  205. package/interfaces/dataprovider/CombinedDataProvider.d.ts +1 -1
  206. package/interfaces/dataprovider/LineDataProvider.d.ts +1 -1
  207. package/interfaces/dataprovider/ScatterDataProvider.d.ts +1 -1
  208. package/interfaces/datasets/IBarDataSet.d.ts +8 -22
  209. package/interfaces/datasets/IBarLineScatterCandleBubbleDataSet.d.ts +1 -3
  210. package/interfaces/datasets/IBubbleDataSet.d.ts +3 -9
  211. package/interfaces/datasets/ICandleDataSet.d.ts +44 -41
  212. package/interfaces/datasets/IDataSet.d.ts +35 -151
  213. package/interfaces/datasets/ILineDataSet.d.ts +15 -54
  214. package/interfaces/datasets/ILineRadarDataSet.d.ts +7 -28
  215. package/interfaces/datasets/ILineScatterCandleRadarDataSet.d.ts +5 -4
  216. package/interfaces/datasets/IPieDataSet.d.ts +22 -40
  217. package/interfaces/datasets/IRadarDataSet.d.ts +7 -13
  218. package/interfaces/datasets/IScatterDataSet.d.ts +17 -16
  219. package/jobs/AnimatedMoveViewJob.d.ts +3 -0
  220. package/jobs/AnimatedMoveViewJob.js +12 -8
  221. package/jobs/AnimatedMoveViewJob.js.map +1 -1
  222. package/jobs/AnimatedViewPortJob.d.ts +7 -8
  223. package/jobs/AnimatedViewPortJob.js +16 -23
  224. package/jobs/AnimatedViewPortJob.js.map +1 -1
  225. package/jobs/AnimatedZoomJob.d.ts +8 -5
  226. package/jobs/AnimatedZoomJob.js +30 -26
  227. package/jobs/AnimatedZoomJob.js.map +1 -1
  228. package/jobs/MoveViewJob.d.ts +3 -0
  229. package/jobs/MoveViewJob.js +10 -7
  230. package/jobs/MoveViewJob.js.map +1 -1
  231. package/jobs/ViewPortJob.d.ts +3 -5
  232. package/jobs/ViewPortJob.js +5 -11
  233. package/jobs/ViewPortJob.js.map +1 -1
  234. package/jobs/ZoomJob.js +14 -14
  235. package/jobs/ZoomJob.js.map +1 -1
  236. package/listener/BarLineChartTouchListener.d.ts +82 -1
  237. package/listener/BarLineChartTouchListener.js +169 -67
  238. package/listener/BarLineChartTouchListener.js.map +1 -1
  239. package/listener/ChartTouchListener.d.ts +39 -5
  240. package/listener/ChartTouchListener.js +38 -11
  241. package/listener/ChartTouchListener.js.map +1 -1
  242. package/listener/PieRadarChartTouchListener.d.ts +56 -1
  243. package/listener/PieRadarChartTouchListener.js +201 -17
  244. package/listener/PieRadarChartTouchListener.js.map +1 -1
  245. package/model/GradientColor.js.map +1 -1
  246. package/package.json +23 -15
  247. package/renderer/AxisRenderer.d.ts +66 -7
  248. package/renderer/AxisRenderer.js +69 -21
  249. package/renderer/AxisRenderer.js.map +1 -1
  250. package/renderer/BarChartRenderer.d.ts +11 -0
  251. package/renderer/BarChartRenderer.js +99 -71
  252. package/renderer/BarChartRenderer.js.map +1 -1
  253. package/renderer/BarLineScatterCandleBubbleRenderer.d.ts +37 -0
  254. package/renderer/BarLineScatterCandleBubbleRenderer.js +36 -8
  255. package/renderer/BarLineScatterCandleBubbleRenderer.js.map +1 -1
  256. package/renderer/BubbleChartRenderer.d.ts +6 -2
  257. package/renderer/BubbleChartRenderer.js +51 -40
  258. package/renderer/BubbleChartRenderer.js.map +1 -1
  259. package/renderer/CandleStickChartRenderer.d.ts +1 -1
  260. package/renderer/CandleStickChartRenderer.js +64 -50
  261. package/renderer/CandleStickChartRenderer.js.map +1 -1
  262. package/renderer/CombinedChartRenderer.d.ts +20 -1
  263. package/renderer/CombinedChartRenderer.js +72 -42
  264. package/renderer/CombinedChartRenderer.js.map +1 -1
  265. package/renderer/DataRenderer.d.ts +78 -4
  266. package/renderer/DataRenderer.js +65 -6
  267. package/renderer/DataRenderer.js.map +1 -1
  268. package/renderer/HorizontalBarChartRenderer.d.ts +5 -2
  269. package/renderer/HorizontalBarChartRenderer.js +87 -66
  270. package/renderer/HorizontalBarChartRenderer.js.map +1 -1
  271. package/renderer/LegendRenderer.d.ts +32 -0
  272. package/renderer/LegendRenderer.js +98 -59
  273. package/renderer/LegendRenderer.js.map +1 -1
  274. package/renderer/LineChartRenderer.d.ts +38 -1
  275. package/renderer/LineChartRenderer.js +198 -113
  276. package/renderer/LineChartRenderer.js.map +1 -1
  277. package/renderer/LineRadarRenderer.d.ts +19 -0
  278. package/renderer/LineRadarRenderer.js +25 -1
  279. package/renderer/LineRadarRenderer.js.map +1 -1
  280. package/renderer/LineScatterCandleRadarRenderer.d.ts +11 -0
  281. package/renderer/LineScatterCandleRadarRenderer.js +26 -9
  282. package/renderer/LineScatterCandleRadarRenderer.js.map +1 -1
  283. package/renderer/PieChartRenderer.d.ts +45 -1
  284. package/renderer/PieChartRenderer.js +195 -122
  285. package/renderer/PieChartRenderer.js.map +1 -1
  286. package/renderer/RadarChartRenderer.d.ts +10 -0
  287. package/renderer/RadarChartRenderer.js +119 -77
  288. package/renderer/RadarChartRenderer.js.map +1 -1
  289. package/renderer/Renderer.d.ts +8 -0
  290. package/renderer/Renderer.js +5 -0
  291. package/renderer/Renderer.js.map +1 -1
  292. package/renderer/ScatterChartRenderer.d.ts +5 -5
  293. package/renderer/ScatterChartRenderer.js +51 -37
  294. package/renderer/ScatterChartRenderer.js.map +1 -1
  295. package/renderer/XAxisRenderer.d.ts +29 -4
  296. package/renderer/XAxisRenderer.js +128 -95
  297. package/renderer/XAxisRenderer.js.map +1 -1
  298. package/renderer/XAxisRendererHorizontalBarChart.d.ts +11 -0
  299. package/renderer/XAxisRendererHorizontalBarChart.js +75 -57
  300. package/renderer/XAxisRendererHorizontalBarChart.js.map +1 -1
  301. package/renderer/XAxisRendererRadarChart.d.ts +5 -0
  302. package/renderer/XAxisRendererRadarChart.js +26 -13
  303. package/renderer/XAxisRendererRadarChart.js.map +1 -1
  304. package/renderer/YAxisRenderer.d.ts +42 -5
  305. package/renderer/YAxisRenderer.js +126 -69
  306. package/renderer/YAxisRenderer.js.map +1 -1
  307. package/renderer/YAxisRendererHorizontalBarChart.d.ts +22 -1
  308. package/renderer/YAxisRendererHorizontalBarChart.js +80 -58
  309. package/renderer/YAxisRendererHorizontalBarChart.js.map +1 -1
  310. package/renderer/YAxisRendererRadarChart.js +62 -32
  311. package/renderer/YAxisRendererRadarChart.js.map +1 -1
  312. package/renderer/scatter/ChevronDownShapeRenderer.d.ts +4 -0
  313. package/renderer/scatter/ChevronDownShapeRenderer.js +5 -1
  314. package/renderer/scatter/ChevronDownShapeRenderer.js.map +1 -1
  315. package/renderer/scatter/ChevronUpShapeRenderer.d.ts +4 -0
  316. package/renderer/scatter/ChevronUpShapeRenderer.js +5 -1
  317. package/renderer/scatter/ChevronUpShapeRenderer.js.map +1 -1
  318. package/renderer/scatter/CircleShapeRenderer.d.ts +4 -0
  319. package/renderer/scatter/CircleShapeRenderer.js +8 -5
  320. package/renderer/scatter/CircleShapeRenderer.js.map +1 -1
  321. package/renderer/scatter/CrossShapeRenderer.d.ts +4 -0
  322. package/renderer/scatter/CrossShapeRenderer.js +5 -1
  323. package/renderer/scatter/CrossShapeRenderer.js.map +1 -1
  324. package/renderer/scatter/IShapeRenderer.d.ts +14 -0
  325. package/renderer/scatter/IShapeRenderer.js.map +1 -1
  326. package/renderer/scatter/SquareShapeRenderer.d.ts +4 -0
  327. package/renderer/scatter/SquareShapeRenderer.js +8 -5
  328. package/renderer/scatter/SquareShapeRenderer.js.map +1 -1
  329. package/renderer/scatter/TriangleShapeRenderer.d.ts +4 -0
  330. package/renderer/scatter/TriangleShapeRenderer.js +9 -5
  331. package/renderer/scatter/TriangleShapeRenderer.js.map +1 -1
  332. package/renderer/scatter/XShapeRenderer.d.ts +4 -0
  333. package/renderer/scatter/XShapeRenderer.js +5 -1
  334. package/renderer/scatter/XShapeRenderer.js.map +1 -1
  335. package/utils/ColorTemplate.d.ts +21 -1
  336. package/utils/ColorTemplate.js +21 -3
  337. package/utils/ColorTemplate.js.map +1 -1
  338. package/utils/HorizontalViewPortHandler.d.ts +3 -0
  339. package/utils/HorizontalViewPortHandler.js +3 -0
  340. package/utils/HorizontalViewPortHandler.js.map +1 -1
  341. package/utils/MPSize.d.ts +7 -0
  342. package/utils/ObjectPool.d.ts +56 -0
  343. package/utils/ObjectPool.js +66 -8
  344. package/utils/ObjectPool.js.map +1 -1
  345. package/utils/Transformer.d.ts +118 -0
  346. package/utils/Transformer.js +141 -7
  347. package/utils/Transformer.js.map +1 -1
  348. package/utils/TransformerHorizontalBarChart.d.ts +10 -0
  349. package/utils/TransformerHorizontalBarChart.js +18 -2
  350. package/utils/TransformerHorizontalBarChart.js.map +1 -1
  351. package/utils/Utils.d.ts +139 -17
  352. package/utils/Utils.js +185 -60
  353. package/utils/Utils.js.map +1 -1
  354. package/utils/ViewPortHandler.d.ts +234 -19
  355. package/utils/ViewPortHandler.js +306 -63
  356. package/utils/ViewPortHandler.js.map +1 -1
  357. package/utils/colors/colorful.js.map +1 -1
  358. package/utils/colors/joyful.js.map +1 -1
  359. package/utils/colors/liberty.js.map +1 -1
  360. package/utils/colors/material.js.map +1 -1
  361. package/utils/colors/pastel.js.map +1 -1
  362. package/utils/colors/vordiplom.js.map +1 -1
  363. package/charts/index.d.ts +0 -11
  364. package/charts/index.js +0 -15
  365. package/charts/index.js.map +0 -1
@@ -1,31 +1,65 @@
1
1
  import { AxisDependency } from '../components/YAxis';
2
2
  import { Rounding } from '../data/DataSet';
3
+ import { LineDataSet } from '../data/LineDataSet';
3
4
  export class ChartHighlighter {
4
5
  constructor(chart) {
6
+ /**
7
+ * buffer for storing previously highlighted values
8
+ */
5
9
  this.mHighlightBuffer = [];
6
10
  this.mChart = chart;
7
11
  }
8
12
  getHighlight(x, y) {
9
13
  const pos = this.getValsForTouch(x, y);
10
14
  const xVal = pos.x;
11
- const high = this.getHighlightForX(xVal, x, y);
12
- return high;
15
+ return this.getHighlightForX(xVal, x, y);
13
16
  }
17
+ /**
18
+ * Returns a recyclable MPPointD instance.
19
+ * Returns the corresponding xPos for a given touch-position in pixels.
20
+ *
21
+ * @param x
22
+ * @param y
23
+ * @return
24
+ */
14
25
  getValsForTouch(x, y) {
15
- const pos = this.mChart.getTransformer().getValuesByTouchPoint(x, y);
26
+ // take any transformer to determine the x-axis value
27
+ const pos = this.mChart.transformer.getValuesByTouchPoint(x, y);
16
28
  return pos;
17
29
  }
30
+ /**
31
+ * Returns the corresponding Highlight for a given xVal and x- and y-touch position in pixels.
32
+ *
33
+ * @param xVal
34
+ * @param x
35
+ * @param y
36
+ * @return
37
+ */
18
38
  getHighlightForX(xVal, x, y) {
19
39
  const closestValues = this.getHighlightsAtXValue(xVal, x, y);
20
40
  if (closestValues.length <= 1) {
21
- return closestValues[0];
41
+ return closestValues;
22
42
  }
23
- const leftAxisMinDist = this.getMinimumDistance(closestValues, y, AxisDependency.LEFT);
24
- const rightAxisMinDist = this.getMinimumDistance(closestValues, y, AxisDependency.RIGHT);
25
- const axis = leftAxisMinDist < rightAxisMinDist ? AxisDependency.LEFT : AxisDependency.RIGHT;
26
- const detail = this.getClosestHighlightByPixel(closestValues, x, y, axis, this.mChart.getMaxHighlightDistance());
27
- return detail;
43
+ const chart = this.mChart;
44
+ let axis;
45
+ if (chart.highlightsFilterByAxis) {
46
+ const leftAxisMinDist = this.getMinimumDistance(closestValues, y, AxisDependency.LEFT);
47
+ const rightAxisMinDist = this.getMinimumDistance(closestValues, y, AxisDependency.RIGHT);
48
+ axis = leftAxisMinDist < rightAxisMinDist ? AxisDependency.LEFT : AxisDependency.RIGHT;
49
+ }
50
+ // const detail = this.getClosestHighlightByPixel(closestValues, x, y, chart.maxHighlightDistance, axis);
51
+ // return [detail];
52
+ return this.sortedHighlights(closestValues, x, y, chart.maxHighlightDistance, axis);
28
53
  }
54
+ /**
55
+ * Returns the minimum distance from a touch value (in pixels) to the
56
+ * closest value (in pixels) that is displayed in the chart.
57
+ *
58
+ * @param closestValues
59
+ * @param pos
60
+ * @param axis
61
+ * @return
62
+ */
29
63
  getMinimumDistance(closestValues, pos, axis) {
30
64
  let distance = Infinity;
31
65
  for (let i = 0; i < closestValues.length; i++) {
@@ -42,29 +76,52 @@ export class ChartHighlighter {
42
76
  getHighlightPos(h) {
43
77
  return h.yPx;
44
78
  }
79
+ getChartData() {
80
+ return this.mChart.data;
81
+ }
82
+ /**
83
+ * Returns a list of Highlight objects representing the entries closest to the given xVal.
84
+ * The returned list contains two objects per DataSet (closest rounding up, closest rounding down).
85
+ *
86
+ * @param xVal the transformed x-value of the x-touch position
87
+ * @return
88
+ */
45
89
  getHighlightsAtXValue(xVal, x, y) {
46
90
  this.mHighlightBuffer = [];
47
- const data = this.getData();
48
- if (data == null)
91
+ const data = this.getChartData();
92
+ if (!data)
49
93
  return this.mHighlightBuffer;
50
- for (let i = 0, dataSetCount = data.getDataSetCount(); i < dataSetCount; i++) {
94
+ for (let i = 0, dataSetCount = data.dataSetCount; i < dataSetCount; i++) {
51
95
  const dataSet = data.getDataSetByIndex(i);
52
- if (!dataSet.isHighlightEnabled())
96
+ // don't include DataSets that cannot be highlighted
97
+ if (!dataSet.highlightEnabled)
53
98
  continue;
54
- this.mHighlightBuffer.push(...this.buildHighlights(dataSet, i, xVal, Rounding.CLOSEST));
99
+ this.mHighlightBuffer.push(...this.buildHighlights(dataSet, i, x, y, xVal, Rounding.CLOSEST));
55
100
  }
56
101
  return this.mHighlightBuffer;
57
102
  }
58
- buildHighlights(set, dataSetIndex, xVal, rounding) {
103
+ /**
104
+ * An array of `Highlight` objects corresponding to the selected xValue and dataSetIndex.
105
+ *
106
+ * @param set
107
+ * @param dataSetIndex
108
+ * @param xVal
109
+ * @param rounding
110
+ * @return
111
+ */
112
+ buildHighlights(set, dataSetIndex, touchX, touchY, xVal, rounding) {
59
113
  const yKey = set.yProperty;
60
114
  const highlights = [];
61
- if (set['setIgnoreFiltered']) {
62
- set.setIgnoreFiltered(true);
115
+ if (set instanceof LineDataSet) {
116
+ set.ignoreFiltered = true;
63
117
  }
118
+ //noinspection unchecked
64
119
  let entries = set.getEntriesAndIndexesForXValue(xVal);
65
120
  if (entries.length === 0) {
121
+ // Try to find closest x-value and take all entries for that x-value
66
122
  const closest = set.getEntryAndIndexForXValue(xVal, NaN, rounding);
67
- if (closest !== null) {
123
+ if (closest) {
124
+ //noinspection unchecked
68
125
  entries = set.getEntriesAndIndexesForXValue(set.getEntryXValue(closest.entry, closest.index));
69
126
  }
70
127
  }
@@ -74,29 +131,44 @@ export class ChartHighlighter {
74
131
  const e = r.entry;
75
132
  const index = r.index;
76
133
  const xVal = set.getEntryXValue(e, index);
77
- const pixels = this.mChart.getTransformer(set.getAxisDependency()).getPixelForValues(xVal, e[yKey]);
134
+ // const pixels = this.mChart.getTransformer(set.axisDependency).getPixelForValues(xVal, e[yKey]);
135
+ const pixels = this.mChart.getPixelForEntry(set, e, index);
78
136
  highlights.push({
79
137
  entry: e,
80
138
  entryIndex: index,
81
139
  x: xVal,
82
140
  y: e[yKey],
141
+ xTouchPx: touchX,
142
+ yTouchPx: touchY,
83
143
  xPx: pixels.x,
84
144
  yPx: pixels.y,
85
145
  dataSetIndex,
86
- axis: set.getAxisDependency()
146
+ axis: set.axisDependency
87
147
  });
88
148
  }
89
- if (set['setIgnoreFiltered']) {
90
- set.setIgnoreFiltered(false);
149
+ if (set instanceof LineDataSet) {
150
+ set.ignoreFiltered = false;
91
151
  }
92
152
  return highlights;
93
153
  }
94
- getClosestHighlightByPixel(closestValues, x, y, axis, minSelectionDistance) {
154
+ /**
155
+ * Returns the Highlight of the DataSet that contains the closest value on the
156
+ * y-axis.
157
+ *
158
+ * @param closestValues contains two Highlight objects per DataSet closest to the selected x-position (determined by
159
+ * rounding up an down)
160
+ * @param x
161
+ * @param y
162
+ * @param minSelectionDistance
163
+ * @param axis the closest axis
164
+ * @return
165
+ */
166
+ getClosestHighlightByPixel(closestValues, x, y, minSelectionDistance, axis) {
95
167
  let closest = null;
96
168
  let distance = minSelectionDistance;
97
169
  for (let i = 0; i < closestValues.length; i++) {
98
170
  const high = closestValues[i];
99
- if (axis == null || high.axis === axis) {
171
+ if (axis !== undefined || high.axis === axis) {
100
172
  const cDistance = this.getDistance(x, y, high.xPx, high.yPx);
101
173
  if (cDistance < distance) {
102
174
  closest = high;
@@ -106,11 +178,43 @@ export class ChartHighlighter {
106
178
  }
107
179
  return closest;
108
180
  }
181
+ /**
182
+ * Returns sorted highlights based on distance to touch x,y
183
+ *
184
+ * @param closestValues contains two Highlight objects per DataSet closest to the selected x-position (determined by
185
+ * rounding up an down)
186
+ * @param x
187
+ * @param y
188
+ * @param minSelectionDistance
189
+ * @param axis the closest axis
190
+ * @return
191
+ */
192
+ sortedHighlights(closestValues, x, y, minSelectionDistance, axis) {
193
+ if (axis !== undefined) {
194
+ closestValues = closestValues.filter((h) => h.axis === axis);
195
+ }
196
+ return closestValues
197
+ .map((h) => ({ h, d: this.getDistance(x, y, h.xPx, h.yPx) }))
198
+ .sort((h1, h2) => h1.d - h2.d)
199
+ .filter((v) => v.d < minSelectionDistance)
200
+ .map((v) => v.h);
201
+ }
202
+ /**
203
+ * Calculates the distance between the two given points.
204
+ *
205
+ * @param x1
206
+ * @param y1
207
+ * @param x2
208
+ * @param y2
209
+ * @return
210
+ */
109
211
  getDistance(x1, y1, x2, y2) {
212
+ //return Math.abs(y1 - y2);
213
+ //return Math.abs(x1 - x2);
110
214
  return Math.hypot(x1 - x2, y1 - y2);
111
215
  }
112
216
  getData() {
113
- return this.mChart.getData();
217
+ return this.mChart.data;
114
218
  }
115
219
  }
116
220
  //# sourceMappingURL=ChartHighlighter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartHighlighter.js","sourceRoot":"../src/","sources":["highlight/ChartHighlighter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChartHighlighter.js","sourceRoot":"","sources":["../../../src/ui-chart/highlight/ChartHighlighter.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,13 @@ import { BarHighlighter } from './BarHighlighter';
3
3
  import { IHighlighter } from './IHighlighter';
4
4
  import { CombinedDataProvider } from '../interfaces/dataprovider/CombinedDataProvider';
5
5
  import { BarDataProvider } from '../interfaces/dataprovider/BarDataProvider';
6
+ /**
7
+ * Created by Philipp Jahoda on 12/09/15.
8
+ */
6
9
  export declare class CombinedHighlighter extends ChartHighlighter<CombinedDataProvider> implements IHighlighter {
10
+ /**
11
+ * bar highlighter for supporting stacked highlighting
12
+ */
7
13
  protected barHighlighter: BarHighlighter;
8
14
  constructor(chart: CombinedDataProvider, barChart: BarDataProvider);
9
15
  getHighlightsAtXValue(xVal: any, x?: any, y?: any): import("./Highlight").Highlight<import("../data/Entry").Entry>[];
@@ -2,33 +2,48 @@ import { ChartHighlighter } from './ChartHighlighter';
2
2
  import { BarHighlighter } from './BarHighlighter';
3
3
  import { BarData } from '../data/BarData';
4
4
  import { Rounding } from '../data/DataSet';
5
+ /**
6
+ * Created by Philipp Jahoda on 12/09/15.
7
+ */
5
8
  export class CombinedHighlighter extends ChartHighlighter {
6
9
  constructor(chart, barChart) {
7
10
  super(chart);
8
- this.barHighlighter = barChart.getBarData() == null ? null : new BarHighlighter(barChart);
11
+ // if there is BarData, create a BarHighlighter
12
+ this.barHighlighter = !barChart.barData ? null : new BarHighlighter(barChart);
9
13
  }
10
14
  getHighlightsAtXValue(xVal, x, y) {
11
15
  this.mHighlightBuffer = [];
12
- const dataObjects = this.mChart.getCombinedData().getAllData();
13
- for (let i = 0; i < dataObjects.length; i++) {
14
- const dataObject = dataObjects[i];
15
- if (this.barHighlighter != null && dataObject instanceof BarData && x !== undefined) {
16
+ const dataObjects = this.mChart.combinedData.datas;
17
+ const datasArray = this.mChart.combinedData.datasArray;
18
+ const keys = Object.keys(dataObjects);
19
+ for (let i = 0; i < keys.length; i++) {
20
+ const key = keys[i];
21
+ const dataObject = dataObjects[key];
22
+ if (!dataObject) {
23
+ continue;
24
+ }
25
+ // in case of BarData, let the BarHighlighter take over
26
+ if (this.barHighlighter && dataObject instanceof BarData && x !== undefined) {
16
27
  const high = this.barHighlighter.getHighlight(x, y);
17
- if (high != null) {
18
- high.dataIndex = i;
19
- this.mHighlightBuffer.push(high);
28
+ if (high) {
29
+ this.mHighlightBuffer.push(...this.barHighlighter.getHighlight(x, y).map((h) => {
30
+ h.dataIndex = datasArray.indexOf(dataObject);
31
+ h.dataType = key;
32
+ return h;
33
+ }));
20
34
  }
21
35
  }
22
36
  else {
23
- for (let j = 0, dataSetCount = dataObject.getDataSetCount(); j < dataSetCount; j++) {
24
- const dataSet = dataObjects[i].getDataSetByIndex(j);
25
- if (!dataSet.isHighlightEnabled())
37
+ for (let j = 0, dataSetCount = dataObject.dataSetCount; j < dataSetCount; j++) {
38
+ const dataSet = dataObject.getDataSetByIndex(j);
39
+ // don't include datasets that cannot be highlighted
40
+ if (!dataSet.highlightEnabled)
26
41
  continue;
27
- const highs = this.buildHighlights(dataSet, j, xVal, Rounding.CLOSEST);
28
- for (const high of highs) {
29
- high.dataIndex = i;
30
- this.mHighlightBuffer.push(high);
31
- }
42
+ this.mHighlightBuffer.push(...this.buildHighlights(dataSet, j, x, y, xVal, Rounding.CLOSEST).map((h) => {
43
+ h.dataIndex = datasArray.indexOf(dataObject);
44
+ h.dataType = key;
45
+ return h;
46
+ }));
32
47
  }
33
48
  }
34
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CombinedHighlighter.js","sourceRoot":"../src/","sources":["highlight/CombinedHighlighter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3C,MAAM,OAAO,mBAAoB,SAAQ,gBAAsC;IAM3E,YAAY,KAA2B,EAAE,QAAyB;QAC9D,KAAK,CAAC,KAAK,CAAC,CAAC;QAGb,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9F,CAAC;IAEM,qBAAqB,CAAC,IAAI,EAAE,CAAE,EAAE,CAAE;QACrC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,UAAU,EAAE,CAAC;QAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAGlC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,UAAU,YAAY,OAAO,IAAI,CAAC,KAAK,SAAS,EAAE;gBACjF,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEpD,IAAI,IAAI,IAAI,IAAI,EAAE;oBACd,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;oBACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACpC;aACJ;iBAAM;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;oBAChF,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBAGpD,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;wBAAE,SAAS;oBAE5C,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACvE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;wBACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;wBACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACpC;iBACJ;aACJ;SACJ;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;CAsBJ"}
1
+ {"version":3,"file":"CombinedHighlighter.js","sourceRoot":"","sources":["../../../src/ui-chart/highlight/CombinedHighlighter.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,69 @@
1
1
  import { AxisDependency } from '../components/YAxis';
2
2
  import { Entry } from '../data/Entry';
3
+ /**
4
+ * Contains information needed to determine the highlighted value.
5
+ *
6
+
7
+ */
3
8
  export declare class Highlight<T extends Entry = Entry> {
9
+ /**
10
+ * the x-value of the highlighted value
11
+ */
4
12
  x: number;
13
+ /**
14
+ * the y-value of the highlighted value
15
+ */
5
16
  y: number;
17
+ /**
18
+ * the x-pixel of the highlight
19
+ */
6
20
  xPx?: number;
21
+ /**
22
+ * the y-pixel of the highlight
23
+ */
7
24
  yPx?: number;
25
+ /**
26
+ * the x-pixel of the touch corresponding to the highlight
27
+ */
28
+ xTouchPx?: number;
29
+ /**
30
+ * the y-pixel of the touch corresponding to the highlight
31
+ */
32
+ yTouchPx?: number;
33
+ /**
34
+ * the index of the data object - in case it refers to more than one
35
+ */
8
36
  dataIndex?: number;
9
- dataSetIndex?: number;
37
+ /**
38
+ * the type of the data object if within CombinedChart (lineData, barData, scatterData, bubbleData, candleData)
39
+ */
40
+ dataType?: string;
41
+ /**
42
+ * the index of the dataset the highlighted value is in
43
+ */
44
+ dataSetIndex: number;
45
+ /**
46
+ * index which value of a stacked bar entry is highlighted, default -1
47
+ */
10
48
  stackIndex?: number;
49
+ /**
50
+ * the axis the highlighted value belongs to
51
+ */
11
52
  axis?: AxisDependency;
53
+ /**
54
+ * the x-position (pixels) on which this highlight object was last drawn
55
+ */
12
56
  drawX?: number;
57
+ /**
58
+ * the y-position (pixels) on which this highlight object was last drawn
59
+ */
13
60
  drawY?: number;
61
+ /**
62
+ * the associated entry
63
+ */
14
64
  entry?: T;
65
+ /**
66
+ * the index of the dataset the highlighted value is in
67
+ */
15
68
  entryIndex?: number;
16
69
  }
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Contains information needed to determine the highlighted value.
3
+ *
4
+
5
+ */
1
6
  export class Highlight {
2
7
  }
3
8
  //# sourceMappingURL=Highlight.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Highlight.js","sourceRoot":"../src/","sources":["highlight/Highlight.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,SAAS;CA4DrB"}
1
+ {"version":3,"file":"Highlight.js","sourceRoot":"","sources":["../../../src/ui-chart/highlight/Highlight.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,OAAO,SAAS;CA2ErB"}
@@ -4,7 +4,7 @@ import { BarDataProvider } from '../interfaces/dataprovider/BarDataProvider';
4
4
  import { IBarDataSet } from '../interfaces/datasets/IBarDataSet';
5
5
  export declare class HorizontalBarHighlighter extends BarHighlighter {
6
6
  constructor(chart: BarDataProvider);
7
- getHighlight(x: number, y: number): Highlight;
7
+ getHighlight(x: number, y: number): Highlight<import("../data/Entry").Entry>[];
8
8
  protected buildHighlights(set: IBarDataSet, dataSetIndex: any, xVal: any, rounding: any): Highlight<import("../data/Entry").Entry>[];
9
9
  protected getDistance(x1: any, y1: any, x2: any, y2: any): number;
10
10
  }
@@ -5,24 +5,25 @@ export class HorizontalBarHighlighter extends BarHighlighter {
5
5
  }
6
6
  getHighlight(x, y) {
7
7
  const pos = this.getValsForTouch(x, y);
8
- const high = this.getHighlightForX(pos.y, y, x);
9
- if (high === null) {
10
- return null;
11
- }
12
- const barData = this.mChart.getBarData();
13
- const set = barData.getDataSetByIndex(high.dataSetIndex);
14
- if (set.isStacked()) {
15
- return this.getStackedHighlight(high, set, pos.y, pos.x);
16
- }
17
- return high;
8
+ const barData = this.mChart.barData;
9
+ return this.getHighlightForX(pos.y, y, x).map((h) => {
10
+ const set = barData.getDataSetByIndex(h.dataSetIndex);
11
+ if (set.stacked) {
12
+ return this.getStackedHighlight(h, set, x, y, pos.y, pos.x);
13
+ }
14
+ return h;
15
+ });
18
16
  }
19
17
  buildHighlights(set, dataSetIndex, xVal, rounding) {
20
18
  const yKey = set.yProperty;
21
19
  const highlights = [];
20
+ //noinspection unchecked
22
21
  let entries = set.getEntriesAndIndexesForXValue(xVal);
23
22
  if (entries.length === 0) {
23
+ // Try to find closest x-value and take all entries for that x-value
24
24
  const closest = set.getEntryAndIndexForXValue(xVal, NaN, rounding);
25
- if (closest !== null) {
25
+ if (closest) {
26
+ //noinspection unchecked
26
27
  entries = set.getEntriesAndIndexesForXValue(set.getEntryXValue(closest.entry, closest.index));
27
28
  }
28
29
  }
@@ -32,7 +33,7 @@ export class HorizontalBarHighlighter extends BarHighlighter {
32
33
  for (const r of entries) {
33
34
  const e = r.entry;
34
35
  const xVal = set.getEntryXValue(e, r.index);
35
- const pixels = this.mChart.getTransformer(set.getAxisDependency()).getPixelForValues(e[yKey], xVal);
36
+ const pixels = this.mChart.getTransformer(set.axisDependency).getPixelForValues(e[yKey], xVal);
36
37
  highlights.push({
37
38
  entry: e,
38
39
  entryIndex: r.index,
@@ -41,7 +42,7 @@ export class HorizontalBarHighlighter extends BarHighlighter {
41
42
  xPx: pixels.x,
42
43
  yPx: pixels.y,
43
44
  dataSetIndex,
44
- axis: set.getAxisDependency()
45
+ axis: set.axisDependency
45
46
  });
46
47
  }
47
48
  return highlights;
@@ -1 +1 @@
1
- {"version":3,"file":"HorizontalBarHighlighter.js","sourceRoot":"../src/","sources":["highlight/HorizontalBarHighlighter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IACxD,YAAY,KAAsB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAEM,YAAY,CAAC,CAAS,EAAE,CAAS;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,IAAI,KAAK,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACf;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,GAAG,CAAC,SAAS,EAAE,EAAE;YACjB,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;SAC5D;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,eAAe,CAAC,GAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ;QACpE,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC;QAC3B,MAAM,UAAU,GAAgB,EAAE,CAAC;QAGnC,IAAI,OAAO,GAAG,GAAG,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAEtB,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACnE,IAAI,OAAO,KAAK,IAAI,EAAE;gBAElB,OAAO,GAAG,GAAG,CAAC,6BAA6B,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;aACjG;SACJ;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO,UAAU,CAAC;SACrB;QAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;YACrB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAClB,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YAEpG,UAAU,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,CAAC;gBACR,UAAU,EAAE,CAAC,CAAC,KAAK;gBACnB,CAAC,EAAE,IAAI;gBACP,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,MAAM,CAAC,CAAC;gBACb,GAAG,EAAE,MAAM,CAAC,CAAC;gBACb,YAAY;gBACZ,IAAI,EAAE,GAAG,CAAC,iBAAiB,EAAE;aAChC,CAAC,CAAC;SACN;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAES,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,CAAC;CACJ"}
1
+ {"version":3,"file":"HorizontalBarHighlighter.js","sourceRoot":"","sources":["../../../src/ui-chart/highlight/HorizontalBarHighlighter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IACxD,YAAY,KAAsB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAEM,YAAY,CAAC,CAAS,EAAE,CAAS;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACpC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAChD,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACtD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACP,CAAC;IAES,eAAe,CAAC,GAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ;QACpE,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC;QAC3B,MAAM,UAAU,GAAgB,EAAE,CAAC;QAEnC,wBAAwB;QACxB,IAAI,OAAO,GAAG,GAAG,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,oEAAoE;YACpE,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACnE,IAAI,OAAO,EAAE,CAAC;gBACV,wBAAwB;gBACxB,OAAO,GAAG,GAAG,CAAC,6BAA6B,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAClG,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAClB,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YAE/F,UAAU,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,CAAC;gBACR,UAAU,EAAE,CAAC,CAAC,KAAK;gBACnB,CAAC,EAAE,IAAI;gBACP,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,MAAM,CAAC,CAAC;gBACb,GAAG,EAAE,MAAM,CAAC,CAAC;gBACb,YAAY;gBACZ,IAAI,EAAE,GAAG,CAAC,cAAc;aAC3B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAES,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,CAAC;CACJ"}
@@ -1,5 +1,15 @@
1
1
  import { Highlight } from './Highlight';
2
+ /**
3
+ * Created by philipp on 10/06/16.
4
+ */
2
5
  export interface IHighlighter {
3
- getHighlight(x: any, y: any): Highlight;
6
+ /**
7
+ * Returns a Highlight object corresponding to the given x- and y- touch positions in pixels.
8
+ *
9
+ * @param x
10
+ * @param y
11
+ * @return
12
+ */
13
+ getHighlight(x: any, y: any): Highlight[];
4
14
  getHighlightsAtXValue(xVal: any, x?: any, y?: any): Highlight[];
5
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IHighlighter.js","sourceRoot":"../src/","sources":["highlight/IHighlighter.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"IHighlighter.js","sourceRoot":"","sources":["../../../src/ui-chart/highlight/IHighlighter.ts"],"names":[],"mappings":""}
@@ -4,7 +4,7 @@ export class PieHighlighter extends PieRadarHighlighter {
4
4
  super(chart);
5
5
  }
6
6
  getClosestHighlight(index, x, y) {
7
- const set = this.mChart.getData().getDataSet();
7
+ const set = this.mChart.data.getDataSet();
8
8
  const entry = set.getEntryForIndex(index);
9
9
  const yProperty = set.yProperty;
10
10
  return {
@@ -14,7 +14,7 @@ export class PieHighlighter extends PieRadarHighlighter {
14
14
  xPx: x,
15
15
  yPx: y,
16
16
  dataSetIndex: 0,
17
- axis: set.getAxisDependency()
17
+ axis: set.axisDependency
18
18
  };
19
19
  }
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PieHighlighter.js","sourceRoot":"../src/","sources":["highlight/PieHighlighter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,OAAO,cAAe,SAAQ,mBAAmD;IACnF,YAAY,KAAe;QACvB,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAES,mBAAmB,CAAC,KAAK,EAAE,CAAS,EAAE,CAAS;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAEhC,OAAO;YACH,KAAK;YACL,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;YACnB,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,YAAY,EAAE,CAAC;YACf,IAAI,EAAE,GAAG,CAAC,iBAAiB,EAAE;SAChC,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"PieHighlighter.js","sourceRoot":"","sources":["../../../src/ui-chart/highlight/PieHighlighter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,OAAO,cAAe,SAAQ,mBAAmD;IACnF,YAAY,KAAe;QACvB,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAES,mBAAmB,CAAC,KAAK,EAAE,CAAS,EAAE,CAAS;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAEhC,OAAO;YACH,KAAK;YACL,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;YACnB,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,YAAY,EAAE,CAAC;YACf,IAAI,EAAE,GAAG,CAAC,cAAc;SAC3B,CAAC;IACN,CAAC;CACJ"}
@@ -6,9 +6,20 @@ import { DataSet } from '../data/DataSet';
6
6
  import { ChartData } from '../data/ChartData';
7
7
  export declare abstract class PieRadarHighlighter<E extends Entry, D extends DataSet<E>, T extends PieRadarChartBase<E, DataSet<E>, ChartData<E, D>>> implements IHighlighter {
8
8
  protected mChart: T;
9
+ /**
10
+ * buffer for storing previously highlighted values
11
+ */
9
12
  protected mHighlightBuffer: Highlight[];
10
13
  constructor(chart: T);
11
14
  getHighlightsAtXValue(xVal: any, x?: any, y?: any): Highlight[];
12
- getHighlight(x: number, y: number): Highlight;
15
+ getHighlight(x: number, y: number): Highlight<Entry>[];
16
+ /**
17
+ * Returns the closest Highlight object of the given objects based on the touch position inside the chart.
18
+ *
19
+ * @param index
20
+ * @param x
21
+ * @param y
22
+ * @return
23
+ */
13
24
  protected abstract getClosestHighlight(index: any, x: number, y: number): Highlight;
14
25
  }
@@ -1,25 +1,33 @@
1
1
  export class PieRadarHighlighter {
2
2
  constructor(chart) {
3
+ /**
4
+ * buffer for storing previously highlighted values
5
+ */
3
6
  this.mHighlightBuffer = [];
4
7
  this.mChart = chart;
5
8
  }
6
9
  getHighlightsAtXValue(xVal, x, y) {
10
+ // not implemented
7
11
  return null;
8
12
  }
9
13
  getHighlight(x, y) {
10
14
  const touchDistanceToCenter = this.mChart.distanceToCenter(x, y);
11
- if (touchDistanceToCenter > this.mChart.getRadius()) {
15
+ // Check if a slice was touched
16
+ if (touchDistanceToCenter > this.mChart.radius) {
17
+ // if no slice was touched, highlight nothing
12
18
  return null;
13
19
  }
14
20
  let angle = this.mChart.getAngleForPoint(x, y);
21
+ // detect PieChart while preventing circular dep
15
22
  if (!this.mChart['mCircleBox']) {
16
- angle /= this.mChart.getAnimator().getPhaseY();
23
+ angle /= this.mChart.animator.phaseY;
17
24
  }
18
25
  const index = this.mChart.getIndexForAngle(angle);
19
- if (index < 0 || index >= this.mChart.getData().getMaxEntryCountSet().getEntryCount()) {
26
+ // check if the index could be found
27
+ if (index < 0 || index >= this.mChart.data.maxEntryCountSet.entryCount) {
20
28
  return null;
21
29
  }
22
- return this.getClosestHighlight(index, x, y);
30
+ return [this.getClosestHighlight(index, x, y)];
23
31
  }
24
32
  }
25
33
  //# sourceMappingURL=PieRadarHighlighter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PieRadarHighlighter.js","sourceRoot":"../src/","sources":["highlight/PieRadarHighlighter.ts"],"names":[],"mappings":"AAOA,MAAM,OAAgB,mBAAmB;IAQrC,YAAY,KAAQ;QAFV,qBAAgB,GAAgB,EAAE,CAAC;QAGzC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,qBAAqB,CAAC,IAAI,EAAE,CAAE,EAAE,CAAE;QAE9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,YAAY,CAAC,CAAS,EAAE,CAAS;QACpC,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAGjE,IAAI,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE;YAEjD,OAAO,IAAI,CAAC;SACf;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAG/C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;YAC5B,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC;SAClD;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAGlD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,mBAAmB,EAAE,CAAC,aAAa,EAAE,EAAE;YACnF,OAAO,IAAI,CAAC;SACf;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;CAWJ"}
1
+ {"version":3,"file":"PieRadarHighlighter.js","sourceRoot":"","sources":["../../../src/ui-chart/highlight/PieRadarHighlighter.ts"],"names":[],"mappings":"AAOA,MAAM,OAAgB,mBAAmB;IAQrC,YAAY,KAAQ;QALpB;;WAEG;QACO,qBAAgB,GAAgB,EAAE,CAAC;QAGzC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,qBAAqB,CAAC,IAAI,EAAE,CAAE,EAAE,CAAE;QAC9B,kBAAkB;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,YAAY,CAAC,CAAS,EAAE,CAAS;QACpC,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjE,+BAA+B;QAC/B,IAAI,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC7C,6CAA6C;YAC7C,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE/C,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAElD,oCAAoC;QACpC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;CAWJ"}