@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.
- package/CHANGELOG.md +46 -0
- package/animation/ChartAnimator.d.ts +6 -60
- package/animation/ChartAnimator.js +31 -45
- package/animation/ChartAnimator.js.map +1 -1
- package/animation/ChartAnimator2.d.ts +18 -0
- package/animation/ChartAnimator2.js +69 -0
- package/animation/ChartAnimator2.js.map +1 -0
- package/animation/Tween.d.ts +4 -0
- package/animation/Tween.js +14 -0
- package/animation/Tween.js.map +1 -0
- package/buffer/AbstractBuffer.js +1 -1
- package/charts/BarChart.d.ts +4 -4
- package/charts/BarChart.js +0 -3
- package/charts/BarChart.js.map +1 -1
- package/charts/BarLineChartBase.d.ts +5 -5
- package/charts/BarLineChartBase.js +10 -27
- package/charts/BarLineChartBase.js.map +1 -1
- package/charts/CandleStickChart.d.ts +3 -3
- package/charts/Chart.d.ts +19 -23
- package/charts/Chart.js +12 -31
- package/charts/Chart.js.map +1 -1
- package/charts/CombinedChart.d.ts +4 -4
- package/charts/CombinedChart.js +0 -2
- package/charts/CombinedChart.js.map +1 -1
- package/charts/HorizontalBarChart.d.ts +0 -1
- package/charts/HorizontalBarChart.js +6 -10
- package/charts/HorizontalBarChart.js.map +1 -1
- package/charts/LineChart.d.ts +5 -5
- package/charts/LineChart.js +1 -1
- package/charts/LineChart.js.map +1 -1
- package/charts/PieChart.js +0 -3
- package/charts/PieChart.js.map +1 -1
- package/charts/RadarChart.d.ts +2 -2
- package/charts/RadarChart.js +6 -6
- package/charts/RadarChart.js.map +1 -1
- package/components/Legend.js +1 -1
- package/components/Legend.js.map +1 -1
- package/data/BaseDataSet.js.map +1 -1
- package/highlight/ChartHighlighter.js +1 -1
- package/highlight/ChartHighlighter.js.map +1 -1
- package/jobs/AnimatedMoveViewJob.js +11 -9
- package/jobs/AnimatedMoveViewJob.js.map +1 -1
- package/jobs/AnimatedViewPortJob.d.ts +8 -9
- package/jobs/AnimatedViewPortJob.js +18 -19
- package/jobs/AnimatedViewPortJob.js.map +1 -1
- package/jobs/AnimatedZoomJob.d.ts +8 -10
- package/jobs/AnimatedZoomJob.js +34 -33
- package/jobs/AnimatedZoomJob.js.map +1 -1
- package/jobs/MoveViewJob.js +10 -8
- package/jobs/MoveViewJob.js.map +1 -1
- package/jobs/ViewPortJob.d.ts +3 -4
- package/jobs/ViewPortJob.js +7 -9
- package/jobs/ViewPortJob.js.map +1 -1
- package/jobs/ZoomJob.d.ts +3 -5
- package/jobs/ZoomJob.js +24 -23
- package/jobs/ZoomJob.js.map +1 -1
- package/package.json +5 -5
- package/renderer/AxisRenderer.d.ts +4 -4
- package/renderer/AxisRenderer.js +8 -21
- package/renderer/AxisRenderer.js.map +1 -1
- package/renderer/BarChartRenderer.d.ts +4 -7
- package/renderer/BarChartRenderer.js +17 -35
- package/renderer/BarChartRenderer.js.map +1 -1
- package/renderer/BarLineScatterCandleBubbleRenderer.d.ts +5 -5
- package/renderer/BarLineScatterCandleBubbleRenderer.js +1 -1
- package/renderer/BarLineScatterCandleBubbleRenderer.js.map +1 -1
- package/renderer/BubbleChartRenderer.d.ts +4 -7
- package/renderer/BubbleChartRenderer.js +38 -40
- package/renderer/BubbleChartRenderer.js.map +1 -1
- package/renderer/CandleStickChartRenderer.d.ts +5 -11
- package/renderer/CandleStickChartRenderer.js +56 -57
- package/renderer/CandleStickChartRenderer.js.map +1 -1
- package/renderer/CombinedChartRenderer.d.ts +1 -1
- package/renderer/CombinedChartRenderer.js.map +1 -1
- package/renderer/DataRenderer.d.ts +1 -1
- package/renderer/DataRenderer.js +6 -12
- package/renderer/DataRenderer.js.map +1 -1
- package/renderer/HorizontalBarChartRenderer.d.ts +3 -3
- package/renderer/HorizontalBarChartRenderer.js +12 -12
- package/renderer/HorizontalBarChartRenderer.js.map +1 -1
- package/renderer/LegendRenderer.js +4 -7
- package/renderer/LegendRenderer.js.map +1 -1
- package/renderer/LineChartRenderer.d.ts +6 -13
- package/renderer/LineChartRenderer.js +19 -33
- package/renderer/LineChartRenderer.js.map +1 -1
- package/renderer/LineRadarRenderer.d.ts +0 -1
- package/renderer/LineRadarRenderer.js +2 -5
- package/renderer/LineRadarRenderer.js.map +1 -1
- package/renderer/LineScatterCandleRadarRenderer.d.ts +3 -5
- package/renderer/LineScatterCandleRadarRenderer.js +3 -8
- package/renderer/LineScatterCandleRadarRenderer.js.map +1 -1
- package/renderer/PieChartRenderer.d.ts +3 -16
- package/renderer/PieChartRenderer.js +24 -73
- package/renderer/PieChartRenderer.js.map +1 -1
- package/renderer/RadarChartRenderer.d.ts +1 -7
- package/renderer/RadarChartRenderer.js +19 -33
- package/renderer/RadarChartRenderer.js.map +1 -1
- package/renderer/ScatterChartRenderer.d.ts +0 -3
- package/renderer/ScatterChartRenderer.js +1 -8
- package/renderer/ScatterChartRenderer.js.map +1 -1
- package/renderer/XAxisRenderer.d.ts +7 -12
- package/renderer/XAxisRenderer.js +21 -34
- package/renderer/XAxisRenderer.js.map +1 -1
- package/renderer/XAxisRendererHorizontalBarChart.d.ts +4 -7
- package/renderer/XAxisRendererHorizontalBarChart.js +11 -23
- package/renderer/XAxisRendererHorizontalBarChart.js.map +1 -1
- package/renderer/YAxisRenderer.d.ts +3 -13
- package/renderer/YAxisRenderer.js +10 -42
- package/renderer/YAxisRenderer.js.map +1 -1
- package/renderer/YAxisRendererHorizontalBarChart.d.ts +2 -5
- package/renderer/YAxisRendererHorizontalBarChart.js +16 -24
- package/renderer/YAxisRendererHorizontalBarChart.js.map +1 -1
- package/renderer/YAxisRendererRadarChart.js +3 -1
- package/renderer/YAxisRendererRadarChart.js.map +1 -1
- package/utils/ColorTemplate.d.ts +0 -7
- package/utils/ColorTemplate.js +0 -9
- package/utils/ColorTemplate.js.map +1 -1
- package/utils/ObjectPool.d.ts +9 -9
- package/utils/ObjectPool.js +49 -47
- package/utils/ObjectPool.js.map +1 -1
- package/utils/Transformer.d.ts +19 -20
- package/utils/Transformer.js +18 -21
- package/utils/Transformer.js.map +1 -1
- package/utils/Utils.d.ts +17 -13
- package/utils/Utils.js +104 -132
- package/utils/Utils.js.map +1 -1
- package/utils/ViewPortHandler.d.ts +3 -7
- package/utils/ViewPortHandler.js +20 -25
- 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":"
|
|
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,
|
|
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
|
|
19
|
-
protected
|
|
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,
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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
|
-
|
|
333
|
-
|
|
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
|
-
|
|
351
|
+
valueLinePaint.setColor(dataSet.getColor(j));
|
|
401
352
|
}
|
|
402
|
-
c.drawLine(pt0x, pt0y, pt1x, pt1y,
|
|
403
|
-
c.drawLine(pt1x, pt1y, pt2x, pt2y,
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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
|
|
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,
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
241
|
-
innerRadius = innerRadius;
|
|
227
|
+
const paint = Utils.getTempPaint();
|
|
242
228
|
if (fillColor && fillColor !== ColorTemplate.COLOR_NONE) {
|
|
243
|
-
const p =
|
|
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
|
-
|
|
250
|
-
|
|
251
|
-
c.drawPath(p,
|
|
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
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
c.drawCircle(point.x, point.y, outerRadius,
|
|
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
|
}
|