@nativescript-community/ui-chart 1.2.35 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) 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 +424 -92
  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 +273 -18
  115. package/data/ChartData.js +398 -93
  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 +80 -49
  128. package/data/LineDataSet.js +90 -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 +126 -23
  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 +83 -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 +81 -1
  243. package/listener/PieRadarChartTouchListener.js +212 -16
  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 +185 -110
  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/animation/ChartAnimator2.d.ts +0 -18
  364. package/animation/ChartAnimator2.js +0 -69
  365. package/animation/ChartAnimator2.js.map +0 -1
  366. package/charts/index.d.ts +0 -11
  367. package/charts/index.js +0 -15
  368. package/charts/index.js.map +0 -1
  369. package/utils/Curve.d.ts +0 -12
  370. package/utils/Curve.js +0 -156
  371. package/utils/Curve.js.map +0 -1
  372. package/utils/MPPointD.js +0 -1
  373. package/utils/MPPointD.js.map +0 -1
  374. package/utils/MPPointF.js +0 -1
  375. package/utils/MPPointF.js.map +0 -1
@@ -2,30 +2,63 @@ import { AxisDependency } from '../components/YAxis';
2
2
  import { Rounding } from '../data/DataSet';
3
3
  export class ChartHighlighter {
4
4
  constructor(chart) {
5
+ /**
6
+ * buffer for storing previously highlighted values
7
+ */
5
8
  this.mHighlightBuffer = [];
6
9
  this.mChart = chart;
7
10
  }
8
11
  getHighlight(x, y) {
9
12
  const pos = this.getValsForTouch(x, y);
10
13
  const xVal = pos.x;
11
- const high = this.getHighlightForX(xVal, x, y);
12
- return high;
14
+ return this.getHighlightForX(xVal, x, y);
13
15
  }
16
+ /**
17
+ * Returns a recyclable MPPointD instance.
18
+ * Returns the corresponding xPos for a given touch-position in pixels.
19
+ *
20
+ * @param x
21
+ * @param y
22
+ * @return
23
+ */
14
24
  getValsForTouch(x, y) {
15
- const pos = this.mChart.getTransformer().getValuesByTouchPoint(x, y);
25
+ // take any transformer to determine the x-axis value
26
+ const pos = this.mChart.transformer.getValuesByTouchPoint(x, y);
16
27
  return pos;
17
28
  }
29
+ /**
30
+ * Returns the corresponding Highlight for a given xVal and x- and y-touch position in pixels.
31
+ *
32
+ * @param xVal
33
+ * @param x
34
+ * @param y
35
+ * @return
36
+ */
18
37
  getHighlightForX(xVal, x, y) {
19
38
  const closestValues = this.getHighlightsAtXValue(xVal, x, y);
20
39
  if (closestValues.length <= 1) {
21
- return closestValues[0];
40
+ return closestValues;
22
41
  }
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;
42
+ const chart = this.mChart;
43
+ let axis;
44
+ if (chart.highlightsFilterByAxis) {
45
+ const leftAxisMinDist = this.getMinimumDistance(closestValues, y, AxisDependency.LEFT);
46
+ const rightAxisMinDist = this.getMinimumDistance(closestValues, y, AxisDependency.RIGHT);
47
+ axis = leftAxisMinDist < rightAxisMinDist ? AxisDependency.LEFT : AxisDependency.RIGHT;
48
+ }
49
+ // const detail = this.getClosestHighlightByPixel(closestValues, x, y, chart.maxHighlightDistance, axis);
50
+ // return [detail];
51
+ return this.sortedHighlights(closestValues, x, y, chart.maxHighlightDistance, axis);
28
52
  }
53
+ /**
54
+ * Returns the minimum distance from a touch value (in pixels) to the
55
+ * closest value (in pixels) that is displayed in the chart.
56
+ *
57
+ * @param closestValues
58
+ * @param pos
59
+ * @param axis
60
+ * @return
61
+ */
29
62
  getMinimumDistance(closestValues, pos, axis) {
30
63
  let distance = Infinity;
31
64
  for (let i = 0; i < closestValues.length; i++) {
@@ -42,29 +75,52 @@ export class ChartHighlighter {
42
75
  getHighlightPos(h) {
43
76
  return h.yPx;
44
77
  }
78
+ getChartData() {
79
+ return this.mChart.data;
80
+ }
81
+ /**
82
+ * Returns a list of Highlight objects representing the entries closest to the given xVal.
83
+ * The returned list contains two objects per DataSet (closest rounding up, closest rounding down).
84
+ *
85
+ * @param xVal the transformed x-value of the x-touch position
86
+ * @return
87
+ */
45
88
  getHighlightsAtXValue(xVal, x, y) {
46
89
  this.mHighlightBuffer = [];
47
- const data = this.getData();
48
- if (data == null)
90
+ const data = this.getChartData();
91
+ if (!data)
49
92
  return this.mHighlightBuffer;
50
- for (let i = 0, dataSetCount = data.getDataSetCount(); i < dataSetCount; i++) {
93
+ for (let i = 0, dataSetCount = data.dataSetCount; i < dataSetCount; i++) {
51
94
  const dataSet = data.getDataSetByIndex(i);
52
- if (!dataSet.isHighlightEnabled())
95
+ // don't include DataSets that cannot be highlighted
96
+ if (!dataSet.highlightEnabled)
53
97
  continue;
54
- this.mHighlightBuffer.push(...this.buildHighlights(dataSet, i, xVal, Rounding.CLOSEST));
98
+ this.mHighlightBuffer.push(...this.buildHighlights(dataSet, i, x, y, xVal, Rounding.CLOSEST));
55
99
  }
56
100
  return this.mHighlightBuffer;
57
101
  }
58
- buildHighlights(set, dataSetIndex, xVal, rounding) {
102
+ /**
103
+ * An array of `Highlight` objects corresponding to the selected xValue and dataSetIndex.
104
+ *
105
+ * @param set
106
+ * @param dataSetIndex
107
+ * @param xVal
108
+ * @param rounding
109
+ * @return
110
+ */
111
+ buildHighlights(set, dataSetIndex, touchX, touchY, xVal, rounding) {
59
112
  const yKey = set.yProperty;
60
113
  const highlights = [];
61
114
  if (set['setIgnoreFiltered']) {
62
- set.setIgnoreFiltered(true);
115
+ set.ignoreFiltered = true;
63
116
  }
117
+ //noinspection unchecked
64
118
  let entries = set.getEntriesAndIndexesForXValue(xVal);
65
119
  if (entries.length === 0) {
120
+ // Try to find closest x-value and take all entries for that x-value
66
121
  const closest = set.getEntryAndIndexForXValue(xVal, NaN, rounding);
67
- if (closest !== null) {
122
+ if (closest) {
123
+ //noinspection unchecked
68
124
  entries = set.getEntriesAndIndexesForXValue(set.getEntryXValue(closest.entry, closest.index));
69
125
  }
70
126
  }
@@ -74,29 +130,44 @@ export class ChartHighlighter {
74
130
  const e = r.entry;
75
131
  const index = r.index;
76
132
  const xVal = set.getEntryXValue(e, index);
77
- const pixels = this.mChart.getTransformer(set.getAxisDependency()).getPixelForValues(xVal, e[yKey]);
133
+ // const pixels = this.mChart.getTransformer(set.axisDependency).getPixelForValues(xVal, e[yKey]);
134
+ const pixels = this.mChart.getPixelForEntry(set, e, index);
78
135
  highlights.push({
79
136
  entry: e,
80
137
  entryIndex: index,
81
138
  x: xVal,
82
139
  y: e[yKey],
140
+ xTouchPx: touchX,
141
+ yTouchPx: touchY,
83
142
  xPx: pixels.x,
84
143
  yPx: pixels.y,
85
144
  dataSetIndex,
86
- axis: set.getAxisDependency()
145
+ axis: set.axisDependency
87
146
  });
88
147
  }
89
148
  if (set['setIgnoreFiltered']) {
90
- set.setIgnoreFiltered(false);
149
+ set.ignoreFiltered = false;
91
150
  }
92
151
  return highlights;
93
152
  }
94
- getClosestHighlightByPixel(closestValues, x, y, axis, minSelectionDistance) {
153
+ /**
154
+ * Returns the Highlight of the DataSet that contains the closest value on the
155
+ * y-axis.
156
+ *
157
+ * @param closestValues contains two Highlight objects per DataSet closest to the selected x-position (determined by
158
+ * rounding up an down)
159
+ * @param x
160
+ * @param y
161
+ * @param minSelectionDistance
162
+ * @param axis the closest axis
163
+ * @return
164
+ */
165
+ getClosestHighlightByPixel(closestValues, x, y, minSelectionDistance, axis) {
95
166
  let closest = null;
96
167
  let distance = minSelectionDistance;
97
168
  for (let i = 0; i < closestValues.length; i++) {
98
169
  const high = closestValues[i];
99
- if (axis == null || high.axis === axis) {
170
+ if (axis !== undefined || high.axis === axis) {
100
171
  const cDistance = this.getDistance(x, y, high.xPx, high.yPx);
101
172
  if (cDistance < distance) {
102
173
  closest = high;
@@ -106,11 +177,43 @@ export class ChartHighlighter {
106
177
  }
107
178
  return closest;
108
179
  }
180
+ /**
181
+ * Returns sorted highlights based on distance to touch x,y
182
+ *
183
+ * @param closestValues contains two Highlight objects per DataSet closest to the selected x-position (determined by
184
+ * rounding up an down)
185
+ * @param x
186
+ * @param y
187
+ * @param minSelectionDistance
188
+ * @param axis the closest axis
189
+ * @return
190
+ */
191
+ sortedHighlights(closestValues, x, y, minSelectionDistance, axis) {
192
+ if (axis !== undefined) {
193
+ closestValues = closestValues.filter((h) => h.axis === axis);
194
+ }
195
+ return closestValues
196
+ .map((h) => ({ h, d: this.getDistance(x, y, h.xPx, h.yPx) }))
197
+ .sort((h1, h2) => h1.d - h2.d)
198
+ .filter((v) => v.d < minSelectionDistance)
199
+ .map((v) => v.h);
200
+ }
201
+ /**
202
+ * Calculates the distance between the two given points.
203
+ *
204
+ * @param x1
205
+ * @param y1
206
+ * @param x2
207
+ * @param y2
208
+ * @return
209
+ */
109
210
  getDistance(x1, y1, x2, y2) {
211
+ //return Math.abs(y1 - y2);
212
+ //return Math.abs(x1 - x2);
110
213
  return Math.hypot(x1 - x2, y1 - y2);
111
214
  }
112
215
  getData() {
113
- return this.mChart.getData();
216
+ return this.mChart.data;
114
217
  }
115
218
  }
116
219
  //# sourceMappingURL=ChartHighlighter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartHighlighter.js","sourceRoot":"../src/","sources":["highlight/ChartHighlighter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAK3C,MAAM,OAAO,gBAAgB;IAWzB,YAAY,KAAQ;QAFV,qBAAgB,GAAgB,EAAE,CAAC;QAGzC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAEM,YAAY,CAAC,CAAC,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;QAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IAChB,CAAC;IAUS,eAAe,CAAC,CAAC,EAAE,CAAC;QAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,GAAG,CAAC;IACf,CAAC;IAUS,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3B,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;SAC3B;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QACvF,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;QAEzF,MAAM,IAAI,GAAG,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;QAC7F,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAEjH,OAAO,MAAM,CAAC;IAClB,CAAC;IAWS,kBAAkB,CAAC,aAA0B,EAAE,GAAG,EAAE,IAAI;QAC9D,IAAI,QAAQ,GAAG,QAAQ,CAAC;QAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAE9B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBAChE,IAAI,YAAY,GAAG,QAAQ,EAAE;oBACzB,QAAQ,GAAG,YAAY,CAAC;iBAC3B;aACJ;SACJ;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAES,eAAe,CAAC,CAAY;QAClC,OAAO,CAAC,CAAC,GAAG,CAAC;IACjB,CAAC;IASM,qBAAqB,CAAC,IAAI,EAAE,CAAE,EAAE,CAAE;QACrC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE5B,IAAI,IAAI,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;YAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAG1C,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBAAE,SAAS;YAC5C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;SAC3F;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAWS,eAAe,CAAC,GAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ;QACxE,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC;QAC3B,MAAM,UAAU,GAAgB,EAAE,CAAC;QAEnC,IAAI,GAAG,CAAC,mBAAmB,CAAC,EAAE;YACzB,GAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAChD;QAED,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;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC;QAE5C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;YACrB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAClB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YACtB,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAEpG,UAAU,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,CAAC;gBACR,UAAU,EAAE,KAAK;gBACjB,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;QACD,IAAI,GAAG,CAAC,mBAAmB,CAAC,EAAE;YACzB,GAAmB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACjD;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAcM,0BAA0B,CAAC,aAA0B,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB;QAC1F,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,QAAQ,GAAG,oBAAoB,CAAC;QAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAE9B,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE7D,IAAI,SAAS,GAAG,QAAQ,EAAE;oBACtB,OAAO,GAAG,IAAI,CAAC;oBACf,QAAQ,GAAG,SAAS,CAAC;iBACxB;aACJ;SACJ;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAWS,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAGhC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,CAAC;IAES,OAAO;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;CACJ"}
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"}