@nativescript-community/ui-chart 1.1.43 → 1.2.3

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 (129) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/animation/ChartAnimator.d.ts +6 -60
  3. package/animation/ChartAnimator.js +31 -45
  4. package/animation/ChartAnimator.js.map +1 -1
  5. package/animation/ChartAnimator2.d.ts +18 -0
  6. package/animation/ChartAnimator2.js +69 -0
  7. package/animation/ChartAnimator2.js.map +1 -0
  8. package/animation/Tween.d.ts +4 -0
  9. package/animation/Tween.js +14 -0
  10. package/animation/Tween.js.map +1 -0
  11. package/buffer/AbstractBuffer.js +1 -1
  12. package/charts/BarChart.d.ts +4 -4
  13. package/charts/BarChart.js +0 -3
  14. package/charts/BarChart.js.map +1 -1
  15. package/charts/BarLineChartBase.d.ts +5 -5
  16. package/charts/BarLineChartBase.js +10 -27
  17. package/charts/BarLineChartBase.js.map +1 -1
  18. package/charts/CandleStickChart.d.ts +3 -3
  19. package/charts/Chart.d.ts +19 -23
  20. package/charts/Chart.js +12 -31
  21. package/charts/Chart.js.map +1 -1
  22. package/charts/CombinedChart.d.ts +4 -4
  23. package/charts/CombinedChart.js +0 -2
  24. package/charts/CombinedChart.js.map +1 -1
  25. package/charts/HorizontalBarChart.d.ts +0 -1
  26. package/charts/HorizontalBarChart.js +6 -10
  27. package/charts/HorizontalBarChart.js.map +1 -1
  28. package/charts/LineChart.d.ts +5 -5
  29. package/charts/LineChart.js +1 -1
  30. package/charts/LineChart.js.map +1 -1
  31. package/charts/PieChart.js +0 -3
  32. package/charts/PieChart.js.map +1 -1
  33. package/charts/RadarChart.d.ts +2 -2
  34. package/charts/RadarChart.js +6 -6
  35. package/charts/RadarChart.js.map +1 -1
  36. package/components/Legend.js +1 -1
  37. package/components/Legend.js.map +1 -1
  38. package/data/BaseDataSet.js.map +1 -1
  39. package/highlight/ChartHighlighter.js +1 -1
  40. package/highlight/ChartHighlighter.js.map +1 -1
  41. package/jobs/AnimatedMoveViewJob.js +11 -9
  42. package/jobs/AnimatedMoveViewJob.js.map +1 -1
  43. package/jobs/AnimatedViewPortJob.d.ts +8 -9
  44. package/jobs/AnimatedViewPortJob.js +18 -19
  45. package/jobs/AnimatedViewPortJob.js.map +1 -1
  46. package/jobs/AnimatedZoomJob.d.ts +8 -10
  47. package/jobs/AnimatedZoomJob.js +34 -33
  48. package/jobs/AnimatedZoomJob.js.map +1 -1
  49. package/jobs/MoveViewJob.js +10 -8
  50. package/jobs/MoveViewJob.js.map +1 -1
  51. package/jobs/ViewPortJob.d.ts +3 -4
  52. package/jobs/ViewPortJob.js +7 -9
  53. package/jobs/ViewPortJob.js.map +1 -1
  54. package/jobs/ZoomJob.d.ts +3 -5
  55. package/jobs/ZoomJob.js +24 -23
  56. package/jobs/ZoomJob.js.map +1 -1
  57. package/package.json +5 -5
  58. package/renderer/AxisRenderer.d.ts +4 -4
  59. package/renderer/AxisRenderer.js +8 -21
  60. package/renderer/AxisRenderer.js.map +1 -1
  61. package/renderer/BarChartRenderer.d.ts +4 -7
  62. package/renderer/BarChartRenderer.js +17 -35
  63. package/renderer/BarChartRenderer.js.map +1 -1
  64. package/renderer/BarLineScatterCandleBubbleRenderer.d.ts +5 -5
  65. package/renderer/BarLineScatterCandleBubbleRenderer.js +1 -1
  66. package/renderer/BarLineScatterCandleBubbleRenderer.js.map +1 -1
  67. package/renderer/BubbleChartRenderer.d.ts +4 -7
  68. package/renderer/BubbleChartRenderer.js +38 -40
  69. package/renderer/BubbleChartRenderer.js.map +1 -1
  70. package/renderer/CandleStickChartRenderer.d.ts +5 -11
  71. package/renderer/CandleStickChartRenderer.js +56 -57
  72. package/renderer/CandleStickChartRenderer.js.map +1 -1
  73. package/renderer/CombinedChartRenderer.d.ts +1 -1
  74. package/renderer/CombinedChartRenderer.js.map +1 -1
  75. package/renderer/DataRenderer.d.ts +1 -1
  76. package/renderer/DataRenderer.js +6 -12
  77. package/renderer/DataRenderer.js.map +1 -1
  78. package/renderer/HorizontalBarChartRenderer.d.ts +3 -3
  79. package/renderer/HorizontalBarChartRenderer.js +12 -12
  80. package/renderer/HorizontalBarChartRenderer.js.map +1 -1
  81. package/renderer/LegendRenderer.js +4 -7
  82. package/renderer/LegendRenderer.js.map +1 -1
  83. package/renderer/LineChartRenderer.d.ts +6 -13
  84. package/renderer/LineChartRenderer.js +19 -33
  85. package/renderer/LineChartRenderer.js.map +1 -1
  86. package/renderer/LineRadarRenderer.d.ts +0 -1
  87. package/renderer/LineRadarRenderer.js +2 -5
  88. package/renderer/LineRadarRenderer.js.map +1 -1
  89. package/renderer/LineScatterCandleRadarRenderer.d.ts +3 -5
  90. package/renderer/LineScatterCandleRadarRenderer.js +3 -8
  91. package/renderer/LineScatterCandleRadarRenderer.js.map +1 -1
  92. package/renderer/PieChartRenderer.d.ts +3 -16
  93. package/renderer/PieChartRenderer.js +24 -73
  94. package/renderer/PieChartRenderer.js.map +1 -1
  95. package/renderer/RadarChartRenderer.d.ts +1 -7
  96. package/renderer/RadarChartRenderer.js +19 -33
  97. package/renderer/RadarChartRenderer.js.map +1 -1
  98. package/renderer/ScatterChartRenderer.d.ts +0 -3
  99. package/renderer/ScatterChartRenderer.js +1 -8
  100. package/renderer/ScatterChartRenderer.js.map +1 -1
  101. package/renderer/XAxisRenderer.d.ts +7 -12
  102. package/renderer/XAxisRenderer.js +21 -34
  103. package/renderer/XAxisRenderer.js.map +1 -1
  104. package/renderer/XAxisRendererHorizontalBarChart.d.ts +4 -7
  105. package/renderer/XAxisRendererHorizontalBarChart.js +11 -23
  106. package/renderer/XAxisRendererHorizontalBarChart.js.map +1 -1
  107. package/renderer/YAxisRenderer.d.ts +3 -13
  108. package/renderer/YAxisRenderer.js +10 -42
  109. package/renderer/YAxisRenderer.js.map +1 -1
  110. package/renderer/YAxisRendererHorizontalBarChart.d.ts +2 -5
  111. package/renderer/YAxisRendererHorizontalBarChart.js +16 -24
  112. package/renderer/YAxisRendererHorizontalBarChart.js.map +1 -1
  113. package/renderer/YAxisRendererRadarChart.js +3 -1
  114. package/renderer/YAxisRendererRadarChart.js.map +1 -1
  115. package/utils/ColorTemplate.d.ts +0 -7
  116. package/utils/ColorTemplate.js +0 -9
  117. package/utils/ColorTemplate.js.map +1 -1
  118. package/utils/ObjectPool.d.ts +9 -9
  119. package/utils/ObjectPool.js +49 -47
  120. package/utils/ObjectPool.js.map +1 -1
  121. package/utils/Transformer.d.ts +19 -20
  122. package/utils/Transformer.js +18 -21
  123. package/utils/Transformer.js.map +1 -1
  124. package/utils/Utils.d.ts +17 -13
  125. package/utils/Utils.js +104 -132
  126. package/utils/Utils.js.map +1 -1
  127. package/utils/ViewPortHandler.d.ts +3 -7
  128. package/utils/ViewPortHandler.js +20 -25
  129. package/utils/ViewPortHandler.js.map +1 -1
@@ -1,28 +1,23 @@
1
+ import { Utils } from '../utils/Utils';
1
2
  import { BarLineScatterCandleBubbleRenderer } from './BarLineScatterCandleBubbleRenderer';
2
- import { Path } from '@nativescript-community/ui-canvas';
3
3
  export class LineScatterCandleRadarRenderer extends BarLineScatterCandleBubbleRenderer {
4
4
  constructor(animator, viewPortHandler) {
5
5
  super(animator, viewPortHandler);
6
6
  }
7
- get highlightLinePath() {
8
- if (!this.mHighlightLinePath) {
9
- this.mHighlightLinePath = new Path();
10
- }
11
- return this.mHighlightLinePath;
12
- }
13
7
  drawHighlightLines(c, x, y, set) {
14
8
  const paint = this.highlightPaint;
15
9
  paint.setColor(set.getHighLightColor());
16
10
  paint.setStrokeWidth(set.getHighlightLineWidth());
17
11
  paint.setPathEffect(set.getDashPathEffectHighlight());
18
- const path = this.highlightLinePath;
19
12
  if (set.isVerticalHighlightIndicatorEnabled()) {
13
+ const path = Utils.getTempPath();
20
14
  path.reset();
21
15
  path.moveTo(x, this.mViewPortHandler.contentTop());
22
16
  path.lineTo(x, this.mViewPortHandler.contentBottom());
23
17
  c.drawPath(path, paint);
24
18
  }
25
19
  if (set.isHorizontalHighlightIndicatorEnabled()) {
20
+ const path = Utils.getTempPath();
26
21
  path.reset();
27
22
  path.moveTo(this.mViewPortHandler.contentLeft(), y);
28
23
  path.lineTo(this.mViewPortHandler.contentRight(), y);
@@ -1 +1 @@
1
- {"version":3,"file":"LineScatterCandleRadarRenderer.js","sourceRoot":"../src/","sources":["renderer/LineScatterCandleRadarRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAI1F,OAAO,EAAU,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAMjE,MAAM,OAAgB,8BAA+B,SAAQ,kCAAkC;IAY3F,YAAY,QAAuB,EAAE,eAAgC;QACjE,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACrC,CAAC;IATD,IAAc,iBAAiB;QAC3B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,IAAI,CAAC,kBAAkB,GAAG,IAAI,IAAI,EAAE,CAAC;SACxC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAcS,kBAAkB,CAAC,CAAS,EAAE,CAAC,EAAE,CAAC,EAAE,GAAwC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;QAElC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACxC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAGlD,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEpC,IAAI,GAAG,CAAC,mCAAmC,EAAE,EAAE;YAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC;YAEtD,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC3B;QAGD,IAAI,GAAG,CAAC,qCAAqC,EAAE,EAAE;YAE7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;YAErD,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC3B;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"LineScatterCandleRadarRenderer.js","sourceRoot":"../src/","sources":["renderer/LineScatterCandleRadarRenderer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAK1F,MAAM,OAAgB,8BAA+B,SAAQ,kCAAkC;IAE3F,YAAY,QAAuB,EAAE,eAAgC;QACjE,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACrC,CAAC;IAUS,kBAAkB,CAAC,CAAS,EAAE,CAAC,EAAE,CAAC,EAAE,GAAwC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;QAElC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACxC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAGlD,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC;QAEtD,IAAI,GAAG,CAAC,mCAAmC,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAEjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC;YAEtD,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC3B;QAGD,IAAI,GAAG,CAAC,qCAAqC,EAAE,EAAE;YAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAEjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;YAErD,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC3B;IACL,CAAC;CACJ"}
@@ -1,5 +1,5 @@
1
1
  import { ImageSource } from '@nativescript/core';
2
- import { Canvas, Paint, Path, RectF } from '@nativescript-community/ui-canvas';
2
+ import { Canvas, Paint, RectF } from '@nativescript-community/ui-canvas';
3
3
  import { DataRenderer } from './DataRenderer';
4
4
  import { ChartAnimator } from '../animation/ChartAnimator';
5
5
  import { PieChart } from '../charts/PieChart';
@@ -9,16 +9,10 @@ import { MPPointF } from '../utils/MPPointF';
9
9
  import { ViewPortHandler } from '../utils/ViewPortHandler';
10
10
  export declare class PieChartRenderer extends DataRenderer {
11
11
  protected mChart: PieChart;
12
- protected mHolePaint: Paint;
13
- protected mTransparentCirclePaint: Paint;
14
- protected mValueLinePaint: Paint;
15
- get valueLinePaint(): Paint;
16
12
  protected mDrawBitmap: WeakRef<ImageSource>;
17
13
  protected mBitmapCanvas: Canvas;
18
- protected mDrawCenterTextPathBuffer: Path;
19
- protected get drawCenterTextPathBuffer(): Path;
20
- protected mDrawHighlightedRectF: RectF;
21
- protected get drawHighlightedRectF(): RectF;
14
+ protected mHolePaint: Paint;
15
+ protected mTransparentCirclePaint: Paint;
22
16
  private mCenterTextPaint;
23
17
  private mEntryLabelsPaint;
24
18
  private mCenterTextLayout;
@@ -27,19 +21,12 @@ export declare class PieChartRenderer extends DataRenderer {
27
21
  protected get centerTextLastBounds(): RectF;
28
22
  private mRectBuffer;
29
23
  protected get rectBuffer(): RectF[];
30
- private mPathBuffer;
31
- protected get pathBuffer(): Path;
32
- private mInnerRectBuffer;
33
- protected get innerRectBuffer(): RectF;
34
- private mHoleCirclePath;
35
- protected get holeCirclePath(): Path;
36
24
  constructor(chart: PieChart, animator: ChartAnimator, viewPortHandler: ViewPortHandler);
37
25
  get centerTextPaint(): Paint;
38
26
  get entryLabelsPaint(): Paint;
39
27
  get transparentCirclePaint(): Paint;
40
28
  get holePaint(): Paint;
41
29
  get valuePaint(): Paint;
42
- initBuffers(): void;
43
30
  drawData(c: Canvas): void;
44
31
  protected calculateMinimumRadiusForSpacedSlice(center: MPPointF, radius: any, angle: any, arcStartPointX: any, arcStartPointY: any, startAngle: any, sweepAngle: any): number;
45
32
  protected getSliceSpace(dataSet: IPieDataSet): any;
@@ -1,5 +1,5 @@
1
1
  import { profile } from '@nativescript/core';
2
- import { Align, Canvas, Direction, LayoutAlignment, Paint, Path, RectF, StaticLayout, Style, releaseImage } from '@nativescript-community/ui-canvas';
2
+ import { Align, Canvas, Direction, LayoutAlignment, RectF, StaticLayout, Style, releaseImage } from '@nativescript-community/ui-canvas';
3
3
  import { DataRenderer } from './DataRenderer';
4
4
  import { ValuePosition } from '../data/PieDataSet';
5
5
  import { ColorTemplate } from '../utils/ColorTemplate';
@@ -9,26 +9,6 @@ export class PieChartRenderer extends DataRenderer {
9
9
  super(animator, viewPortHandler);
10
10
  this.mChart = chart;
11
11
  }
12
- get valueLinePaint() {
13
- if (!this.mValueLinePaint) {
14
- this.mValueLinePaint = new Paint();
15
- this.mValueLinePaint.setAntiAlias(true);
16
- this.mValueLinePaint.setStyle(Style.STROKE);
17
- }
18
- return this.mValueLinePaint;
19
- }
20
- get drawCenterTextPathBuffer() {
21
- if (!this.mDrawCenterTextPathBuffer) {
22
- this.mDrawCenterTextPathBuffer = new Path();
23
- }
24
- return this.mDrawCenterTextPathBuffer;
25
- }
26
- get drawHighlightedRectF() {
27
- if (!this.mDrawHighlightedRectF) {
28
- this.mDrawHighlightedRectF = new RectF(0, 0, 0, 0);
29
- }
30
- return this.mDrawHighlightedRectF;
31
- }
32
12
  get centerTextLastBounds() {
33
13
  if (!this.mCenterTextLastBounds) {
34
14
  this.mCenterTextLastBounds = new RectF(0, 0, 0, 0);
@@ -41,37 +21,16 @@ export class PieChartRenderer extends DataRenderer {
41
21
  }
42
22
  return this.mRectBuffer;
43
23
  }
44
- get pathBuffer() {
45
- if (!this.mPathBuffer) {
46
- this.mPathBuffer = new Path();
47
- }
48
- return this.mPathBuffer;
49
- }
50
- get innerRectBuffer() {
51
- if (!this.mInnerRectBuffer) {
52
- this.mInnerRectBuffer = new RectF(0, 0, 0, 0);
53
- }
54
- return this.mInnerRectBuffer;
55
- }
56
- get holeCirclePath() {
57
- if (!this.mHoleCirclePath) {
58
- this.mHoleCirclePath = new Path();
59
- }
60
- return this.mHoleCirclePath;
61
- }
62
24
  get centerTextPaint() {
63
25
  if (!this.mCenterTextPaint) {
64
- this.mCenterTextPaint = new Paint();
65
- this.mCenterTextPaint.setColor('black');
26
+ this.mCenterTextPaint = Utils.getTemplatePaint('black-fill');
66
27
  this.mCenterTextPaint.setTextSize(12);
67
28
  }
68
29
  return this.mCenterTextPaint;
69
30
  }
70
31
  get entryLabelsPaint() {
71
32
  if (!this.mEntryLabelsPaint) {
72
- this.mEntryLabelsPaint = new Paint();
73
- this.mEntryLabelsPaint.setAntiAlias(true);
74
- this.mEntryLabelsPaint.setColor('white');
33
+ this.mEntryLabelsPaint = Utils.getTemplatePaint('white-fill');
75
34
  this.mEntryLabelsPaint.setTextAlign(Align.CENTER);
76
35
  this.mEntryLabelsPaint.setTextSize(13);
77
36
  }
@@ -79,36 +38,25 @@ export class PieChartRenderer extends DataRenderer {
79
38
  }
80
39
  get transparentCirclePaint() {
81
40
  if (!this.mTransparentCirclePaint) {
82
- this.mTransparentCirclePaint = new Paint();
83
- this.mTransparentCirclePaint.setAntiAlias(true);
84
- this.mTransparentCirclePaint.setColor('white');
85
- this.mTransparentCirclePaint.setStyle(Style.FILL);
41
+ this.mTransparentCirclePaint = Utils.getTemplatePaint('white-fill');
86
42
  this.mTransparentCirclePaint.setAlpha(105);
87
43
  }
88
44
  return this.mTransparentCirclePaint;
89
45
  }
90
46
  get holePaint() {
91
47
  if (!this.mHolePaint) {
92
- this.mHolePaint = new Paint();
93
- this.mHolePaint.setAntiAlias(true);
94
- this.mHolePaint.setColor('white');
95
- this.mHolePaint.setStyle(Style.FILL);
48
+ this.mHolePaint = Utils.getTemplatePaint('white-fill');
96
49
  }
97
50
  return this.mHolePaint;
98
51
  }
99
52
  get valuePaint() {
100
53
  if (!this.mValuePaint) {
101
- this.mValuePaint = new Paint();
102
- this.mValuePaint.setAntiAlias(true);
103
- this.mValuePaint.setStyle(Style.STROKE);
54
+ this.mValuePaint = Utils.getTemplatePaint('value');
104
55
  this.mValuePaint.setColor('white');
105
- this.mValuePaint.setTextAlign(Align.CENTER);
106
56
  this.mValuePaint.setTextSize(13);
107
57
  }
108
58
  return this.mValuePaint;
109
59
  }
110
- initBuffers() {
111
- }
112
60
  drawData(c) {
113
61
  const width = this.mViewPortHandler.getChartWidth();
114
62
  const height = this.mViewPortHandler.getChartHeight();
@@ -183,7 +131,7 @@ export class PieChartRenderer extends DataRenderer {
183
131
  const sliceSpace = visibleAngleCount <= 1 ? 0 : this.getSliceSpace(dataSet);
184
132
  const customRender = this.mChart.getCustomRenderer();
185
133
  const renderPaint = this.renderPaint;
186
- const pathBuffer = this.pathBuffer;
134
+ const pathBuffer = Utils.getTempPath();
187
135
  const previousShader = renderPaint.getShader();
188
136
  const shader = dataSet.getFillShader();
189
137
  if (shader) {
@@ -226,8 +174,9 @@ export class PieChartRenderer extends DataRenderer {
226
174
  }
227
175
  pathBuffer.arcTo(circleBox, startAngleOuter, sweepAngleOuter);
228
176
  }
229
- this.innerRectBuffer.set(center.x - innerRadius, center.y - innerRadius, center.x + innerRadius, center.y + innerRadius);
230
177
  if (drawInnerArc && (innerRadius > 0 || accountForSliceSpacing)) {
178
+ const innerRectBuffer = Utils.getTempRectF();
179
+ innerRectBuffer.set(center.x - innerRadius, center.y - innerRadius, center.x + innerRadius, center.y + innerRadius);
231
180
  if (accountForSliceSpacing) {
232
181
  let minSpacedRadius = this.calculateMinimumRadiusForSpacedSlice(center, radius, sliceAngle * phaseY, arcStartPointX, arcStartPointY, startAngleOuter, sweepAngleOuter);
233
182
  if (minSpacedRadius < 0) {
@@ -255,7 +204,7 @@ export class PieChartRenderer extends DataRenderer {
255
204
  else {
256
205
  pathBuffer.lineTo(center.x + innerRadius * Math.cos(endAngleInner * Utils.DEG2RAD), center.y + innerRadius * Math.sin(endAngleInner * Utils.DEG2RAD));
257
206
  }
258
- pathBuffer.arcTo(this.innerRectBuffer, endAngleInner, -sweepAngleInner);
207
+ pathBuffer.arcTo(innerRectBuffer, endAngleInner, -sweepAngleInner);
259
208
  }
260
209
  }
261
210
  else {
@@ -316,6 +265,8 @@ export class PieChartRenderer extends DataRenderer {
316
265
  const paint = this.valuePaint;
317
266
  const entryLabelsPaint = drawEntryLabels ? this.entryLabelsPaint : undefined;
318
267
  const customRender = this.mChart.getCustomRenderer();
268
+ const valueLinePaint = Utils.getTempPaint();
269
+ valueLinePaint.setStyle(Style.STROKE);
319
270
  for (let i = 0; i < dataSets.length; i++) {
320
271
  const dataSet = dataSets[i];
321
272
  const drawValues = dataSet.isDrawValuesEnabled();
@@ -329,8 +280,8 @@ export class PieChartRenderer extends DataRenderer {
329
280
  const lineHeight = Utils.calcTextHeight(paint, 'Q') + 4;
330
281
  const formatter = dataSet.getValueFormatter();
331
282
  const entryCount = dataSet.getEntryCount();
332
- this.valueLinePaint.setColor(dataSet.getValueLineColor());
333
- this.valueLinePaint.setStrokeWidth(dataSet.getValueLineWidth());
283
+ valueLinePaint.setColor(dataSet.getValueLineColor());
284
+ valueLinePaint.setStrokeWidth(dataSet.getValueLineWidth());
334
285
  const sliceSpace = this.getSliceSpace(dataSet);
335
286
  const iconsOffset = dataSet.getIconsOffset();
336
287
  const valuesOffset = dataSet.getValuesOffset();
@@ -397,10 +348,10 @@ export class PieChartRenderer extends DataRenderer {
397
348
  }
398
349
  if (dataSet.getValueLineColor() !== ColorTemplate.COLOR_NONE) {
399
350
  if (dataSet.isUsingSliceColorAsValueLineColor()) {
400
- this.valueLinePaint.setColor(dataSet.getColor(j));
351
+ valueLinePaint.setColor(dataSet.getColor(j));
401
352
  }
402
- c.drawLine(pt0x, pt0y, pt1x, pt1y, this.valueLinePaint);
403
- c.drawLine(pt1x, pt1y, pt2x, pt2y, this.valueLinePaint);
353
+ c.drawLine(pt0x, pt0y, pt1x, pt1y, valueLinePaint);
354
+ c.drawLine(pt1x, pt1y, pt2x, pt2y, valueLinePaint);
404
355
  }
405
356
  if (drawXOutside && drawYOutside) {
406
357
  this.drawValue(c, formattedValue, labelPtx + valuesOffset.x, labelPty + valuesOffset.y, dataSet.getValueTextColor(j), paint, customRender);
@@ -472,7 +423,7 @@ export class PieChartRenderer extends DataRenderer {
472
423
  const alpha = transparentCirclePaint.getAlpha();
473
424
  const secondHoleRadius = radius * (this.mChart.getTransparentCircleRadius() / 100);
474
425
  transparentCirclePaint.setAlpha(alpha * this.mAnimator.getPhaseX() * this.mAnimator.getPhaseY());
475
- const path = this.holeCirclePath;
426
+ const path = Utils.getTempPath();
476
427
  path.reset();
477
428
  path.addCircle(center.x, center.y, secondHoleRadius, Direction.CW);
478
429
  path.addCircle(center.x, center.y, holeRadius, Direction.CCW);
@@ -512,7 +463,7 @@ export class PieChartRenderer extends DataRenderer {
512
463
  c.save();
513
464
  if (global.isAndroid) {
514
465
  if (android.os.Build.VERSION.SDK_INT >= 18) {
515
- const path = this.drawCenterTextPathBuffer;
466
+ const path = Utils.getTempPath();
516
467
  path.reset();
517
468
  path.addOval(holeRect, Direction.CW);
518
469
  c.clipPath(path);
@@ -537,11 +488,10 @@ export class PieChartRenderer extends DataRenderer {
537
488
  const center = this.mChart.getCenterCircleBox();
538
489
  const radius = this.mChart.getRadius();
539
490
  const userInnerRadius = drawInnerArc ? radius * (this.mChart.getHoleRadius() / 100) : 0;
540
- const highlightedCircleBox = this.drawHighlightedRectF;
541
- highlightedCircleBox.set(0, 0, 0, 0);
491
+ const highlightedCircleBox = Utils.getTempRectF();
542
492
  const customRender = this.mChart.getCustomRenderer();
543
493
  const renderPaint = this.renderPaint;
544
- const pathBuffer = this.pathBuffer;
494
+ const pathBuffer = Utils.getTempPath();
545
495
  for (let i = 0; i < indices.length; i++) {
546
496
  const high = indices[i];
547
497
  const index = high.x;
@@ -599,8 +549,9 @@ export class PieChartRenderer extends DataRenderer {
599
549
  if (accountForSliceSpacing) {
600
550
  sliceSpaceRadius = this.calculateMinimumRadiusForSpacedSlice(center, radius, sliceAngle * phaseY, center.x + radius * Math.cos(startAngleOuter * Utils.DEG2RAD), center.y + radius * Math.sin(startAngleOuter * Utils.DEG2RAD), startAngleOuter, sweepAngleOuter);
601
551
  }
602
- this.innerRectBuffer.set(center.x - innerRadius, center.y - innerRadius, center.x + innerRadius, center.y + innerRadius);
603
552
  if (drawInnerArc && (innerRadius > 0 || accountForSliceSpacing)) {
553
+ const innerRectBuffer = Utils.getTempRectF();
554
+ innerRectBuffer.set(center.x - innerRadius, center.y - innerRadius, center.x + innerRadius, center.y + innerRadius);
604
555
  if (accountForSliceSpacing) {
605
556
  let minSpacedRadius = sliceSpaceRadius;
606
557
  if (minSpacedRadius < 0)
@@ -619,7 +570,7 @@ export class PieChartRenderer extends DataRenderer {
619
570
  }
620
571
  else {
621
572
  pathBuffer.lineTo(center.x + innerRadius * Math.cos(endAngleInner * Utils.DEG2RAD), center.y + innerRadius * Math.sin(endAngleInner * Utils.DEG2RAD));
622
- pathBuffer.arcTo(this.innerRectBuffer, endAngleInner, -sweepAngleInner);
573
+ pathBuffer.arcTo(innerRectBuffer, endAngleInner, -sweepAngleInner);
623
574
  }
624
575
  }
625
576
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"PieChartRenderer.js","sourceRoot":"../src/","sources":["renderer/PieChartRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PieChartRenderer.js","sourceRoot":"../src/","sources":["renderer/PieChartRenderer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Canvas, Paint, Path } from '@nativescript-community/ui-canvas';
1
+ import { Canvas, Paint } from '@nativescript-community/ui-canvas';
2
2
  import { ChartAnimator } from '../animation/ChartAnimator';
3
3
  import { RadarChart } from '../charts/RadarChart';
4
4
  import { Highlight } from '../highlight/Highlight';
@@ -9,16 +9,10 @@ import { LineRadarRenderer } from './LineRadarRenderer';
9
9
  export declare class RadarChartRenderer extends LineRadarRenderer {
10
10
  protected mChart: RadarChart;
11
11
  protected mWebPaint: Paint;
12
- protected mHighlightCirclePaint: Paint;
13
- protected mDrawDataSetSurfacePathBuffer: Path;
14
- protected get drawDataSetSurfacePathBuffer(): Path;
15
12
  private mLineBuffer;
16
- protected mDrawHighlightCirclePathBuffer: Path;
17
- protected get drawHighlightCirclePathBuffer(): Path;
18
13
  constructor(chart: RadarChart, animator: ChartAnimator, viewPortHandler: ViewPortHandler);
19
14
  get highlightPaint(): Paint;
20
15
  get webPaint(): Paint;
21
- initBuffers(): void;
22
16
  drawData(c: Canvas): void;
23
17
  protected drawDataSet(c: Canvas, dataSet: IRadarDataSet, mostEntries: any): void;
24
18
  drawValues(c: Canvas): void;
@@ -1,4 +1,4 @@
1
- import { Direction, Paint, Path, Style } from '@nativescript-community/ui-canvas';
1
+ import { Direction, Style } from '@nativescript-community/ui-canvas';
2
2
  import { Color } from '@nativescript/core';
3
3
  import { ColorTemplate } from '../utils/ColorTemplate';
4
4
  import { Utils } from '../utils/Utils';
@@ -8,23 +8,9 @@ export class RadarChartRenderer extends LineRadarRenderer {
8
8
  super(animator, viewPortHandler);
9
9
  this.mChart = chart;
10
10
  }
11
- get drawDataSetSurfacePathBuffer() {
12
- if (!this.mDrawDataSetSurfacePathBuffer) {
13
- this.mDrawDataSetSurfacePathBuffer = new Path();
14
- }
15
- return this.mDrawDataSetSurfacePathBuffer;
16
- }
17
- get drawHighlightCirclePathBuffer() {
18
- if (!this.mDrawHighlightCirclePathBuffer) {
19
- this.mDrawHighlightCirclePathBuffer = new Path();
20
- }
21
- return this.mDrawHighlightCirclePathBuffer;
22
- }
23
11
  get highlightPaint() {
24
12
  if (!this.mHighlightPaint) {
25
- this.mHighlightPaint = new Paint();
26
- this.mHighlightPaint.setAntiAlias(true);
27
- this.mHighlightPaint.setStyle(Style.STROKE);
13
+ this.mHighlightPaint = Utils.getTemplatePaint('black-stroke');
28
14
  this.mHighlightPaint.setStrokeWidth(2);
29
15
  this.mHighlightPaint.setColor(new Color(255, 255, 187, 115));
30
16
  }
@@ -32,14 +18,10 @@ export class RadarChartRenderer extends LineRadarRenderer {
32
18
  }
33
19
  get webPaint() {
34
20
  if (!this.mWebPaint) {
35
- this.mWebPaint = new Paint();
36
- this.mWebPaint.setAntiAlias(true);
37
- this.mWebPaint.setStyle(Style.STROKE);
21
+ this.mWebPaint = Utils.getTemplatePaint('black-stroke');
38
22
  }
39
23
  return this.mWebPaint;
40
24
  }
41
- initBuffers() {
42
- }
43
25
  drawData(c) {
44
26
  const radarData = this.mChart.getData();
45
27
  const mostEntries = radarData.getMaxEntryCountSet().getEntryCount();
@@ -56,7 +38,7 @@ export class RadarChartRenderer extends LineRadarRenderer {
56
38
  const factor = this.mChart.getFactor();
57
39
  const center = this.mChart.getCenterOffsets();
58
40
  const pOut = { x: 0, y: 0 };
59
- const surface = this.drawDataSetSurfacePathBuffer;
41
+ const surface = Utils.getTempPath();
60
42
  surface.reset();
61
43
  let hasMovedToPoint = false;
62
44
  const minVal = this.mChart.getYChartMin();
@@ -88,7 +70,12 @@ export class RadarChartRenderer extends LineRadarRenderer {
88
70
  float32arr[index++] = float32arr[0];
89
71
  float32arr[index++] = float32arr[1];
90
72
  const points = Utils.pointsFromBuffer(float32arr);
91
- surface.setLines(points, 0, index);
73
+ if (global.isAndroid && Utils.supportsDirectArrayBuffers()) {
74
+ surface['setLinesBuffer'](points, 0, index);
75
+ }
76
+ else {
77
+ surface.setLines(points, 0, index);
78
+ }
92
79
  if (dataSet.isDrawFilledEnabled()) {
93
80
  const renderPaint = this.renderPaint;
94
81
  const previousShader = renderPaint.getShader();
@@ -237,24 +224,23 @@ export class RadarChartRenderer extends LineRadarRenderer {
237
224
  }
238
225
  drawHighlightCircle(c, point, innerRadius, outerRadius, fillColor, strokeColor, strokeWidth) {
239
226
  c.save();
240
- outerRadius = outerRadius;
241
- innerRadius = innerRadius;
227
+ const paint = Utils.getTempPaint();
242
228
  if (fillColor && fillColor !== ColorTemplate.COLOR_NONE) {
243
- const p = this.drawHighlightCirclePathBuffer;
229
+ const p = Utils.getTempPath();
244
230
  p.reset();
245
231
  p.addCircle(point.x, point.y, outerRadius, Direction.CW);
246
232
  if (innerRadius > 0) {
247
233
  p.addCircle(point.x, point.y, innerRadius, Direction.CCW);
248
234
  }
249
- this.mHighlightCirclePaint.setColor(fillColor);
250
- this.mHighlightCirclePaint.setStyle(Style.FILL);
251
- c.drawPath(p, this.mHighlightCirclePaint);
235
+ paint.setColor(fillColor);
236
+ paint.setStyle(Style.FILL);
237
+ c.drawPath(p, paint);
252
238
  }
253
239
  if (strokeColor && strokeColor !== ColorTemplate.COLOR_NONE) {
254
- this.mHighlightCirclePaint.setColor(strokeColor);
255
- this.mHighlightCirclePaint.setStyle(Style.STROKE);
256
- this.mHighlightCirclePaint.setStrokeWidth(strokeWidth);
257
- c.drawCircle(point.x, point.y, outerRadius, this.mHighlightCirclePaint);
240
+ paint.setColor(strokeColor);
241
+ paint.setStyle(Style.STROKE);
242
+ paint.setStrokeWidth(strokeWidth);
243
+ c.drawCircle(point.x, point.y, outerRadius, paint);
258
244
  }
259
245
  c.restore();
260
246
  }