@@ -20,7 +20,7 @@ import SwiftUI
20
20
internal struct ColourBar < CD: CTBarChartDataProtocol & GetDataProtocol ,
21
21
DP: CTStandardDataPointProtocol & CTBarDataPointBaseProtocol > : View {
22
22
23
- private let chartData : CD
23
+ @ ObservedObject private var chartData : CD
24
24
private let colour : Color
25
25
private let dataPoint : DP
26
26
@@ -42,6 +42,7 @@ internal struct ColourBar<CD: CTBarChartDataProtocol & GetDataProtocol,
42
42
. scaleEffect ( y: startAnimation ? divideByZeroProtection ( CGFloat . self, dataPoint. value, chartData. maxValue) : 0 , anchor: . bottom)
43
43
. scaleEffect ( x: chartData. barStyle. barWidth, anchor: . center)
44
44
. background ( Color ( . gray) . opacity ( 0.000000001 ) )
45
+ . animation ( . default, value: chartData. dataSets)
45
46
. animateOnAppear ( using: chartData. chartStyle. globalAnimation) {
46
47
self . startAnimation = true
47
48
}
@@ -62,7 +63,7 @@ internal struct ColourBar<CD: CTBarChartDataProtocol & GetDataProtocol,
62
63
internal struct GradientColoursBar < CD: CTBarChartDataProtocol & GetDataProtocol ,
63
64
DP: CTStandardDataPointProtocol & CTBarDataPointBaseProtocol > : View {
64
65
65
- private let chartData : CD
66
+ @ ObservedObject private var chartData : CD
66
67
private let dataPoint : DP
67
68
private let colours : [ Color ]
68
69
private let startPoint : UnitPoint
@@ -91,6 +92,7 @@ internal struct GradientColoursBar<CD: CTBarChartDataProtocol & GetDataProtocol,
91
92
endPoint: endPoint) )
92
93
. scaleEffect ( y: startAnimation ? divideByZeroProtection ( CGFloat . self, dataPoint. value, chartData. maxValue) : 0 , anchor: . bottom)
93
94
. scaleEffect ( x: chartData. barStyle. barWidth, anchor: . center)
95
+ . animation ( . default, value: chartData. dataSets)
94
96
. background ( Color ( . gray) . opacity ( 0.000000001 ) )
95
97
. animateOnAppear ( using: chartData. chartStyle. globalAnimation) {
96
98
self . startAnimation = true
@@ -113,7 +115,7 @@ internal struct GradientColoursBar<CD: CTBarChartDataProtocol & GetDataProtocol,
113
115
internal struct GradientStopsBar < CD: CTBarChartDataProtocol & GetDataProtocol ,
114
116
DP: CTStandardDataPointProtocol & CTBarDataPointBaseProtocol > : View {
115
117
116
- private let chartData : CD
118
+ @ ObservedObject private var chartData : CD
117
119
private let dataPoint : DP
118
120
private let stops : [ Gradient . Stop ]
119
121
private let startPoint : UnitPoint
@@ -142,6 +144,7 @@ internal struct GradientStopsBar<CD: CTBarChartDataProtocol & GetDataProtocol,
142
144
endPoint: endPoint) )
143
145
. scaleEffect ( y: startAnimation ? divideByZeroProtection ( CGFloat . self, dataPoint. value, chartData. maxValue) : 0 , anchor: . bottom)
144
146
. scaleEffect ( x: chartData. barStyle. barWidth, anchor: . center)
147
+ . animation ( . default, value: chartData. dataSets)
145
148
. background ( Color ( . gray) . opacity ( 0.000000001 ) )
146
149
. animateOnAppear ( using: chartData. chartStyle. globalAnimation) {
147
150
self . startAnimation = true
@@ -160,7 +163,7 @@ internal struct GradientStopsBar<CD: CTBarChartDataProtocol & GetDataProtocol,
160
163
*/
161
164
internal struct StackElementSubView : View {
162
165
163
- private let dataSet : StackedBarDataSet
166
+ private var dataSet : StackedBarDataSet
164
167
private let specifier : String
165
168
private let formatter : NumberFormatter ?
166
169
@@ -176,7 +179,6 @@ internal struct StackElementSubView: View {
176
179
177
180
internal var body : some View {
178
181
GeometryReader { geo in
179
-
180
182
VStack ( spacing: 0 ) {
181
183
ForEach ( dataSet. dataPoints. reversed ( ) ) { dataPoint in
182
184
if dataPoint. group. colour. colourType == . colour,
@@ -334,7 +336,7 @@ internal struct GradientStopsPartBar: View {
334
336
// MARK: Colour
335
337
internal struct RangedBarChartColourCell < CD: RangedBarChartData > : View {
336
338
337
- private let chartData : CD
339
+ @ ObservedObject private var chartData : CD
338
340
private let dataPoint : CD . SetType . DataPoint
339
341
private let colour : Color
340
342
private let barSize : CGRect
@@ -360,6 +362,7 @@ internal struct RangedBarChartColourCell<CD:RangedBarChartData>: View {
360
362
. scaleEffect ( x: chartData. barStyle. barWidth, anchor: . center)
361
363
. position ( x: barSize. midX,
362
364
y: chartData. getBarPositionX ( dataPoint: dataPoint, height: barSize. height) )
365
+ . animation ( . default, value: chartData. dataSets)
363
366
. background ( Color ( . gray) . opacity ( 0.000000001 ) )
364
367
. animateOnAppear ( using: chartData. chartStyle. globalAnimation) {
365
368
self . startAnimation = true
@@ -375,7 +378,7 @@ internal struct RangedBarChartColourCell<CD:RangedBarChartData>: View {
375
378
// MARK: Gradient
376
379
internal struct RangedBarChartColoursCell < CD: RangedBarChartData > : View {
377
380
378
- private let chartData : CD
381
+ @ ObservedObject private var chartData : CD
379
382
private let dataPoint : CD . SetType . DataPoint
380
383
private let colours : [ Color ]
381
384
private let startPoint : UnitPoint
@@ -409,6 +412,7 @@ internal struct RangedBarChartColoursCell<CD:RangedBarChartData>: View {
409
412
. scaleEffect ( x: chartData. barStyle. barWidth, anchor: . center)
410
413
. position ( x: barSize. midX,
411
414
y: chartData. getBarPositionX ( dataPoint: dataPoint, height: barSize. height) )
415
+ . animation ( . default, value: chartData. dataSets)
412
416
. background ( Color ( . gray) . opacity ( 0.000000001 ) )
413
417
. animateOnAppear ( using: chartData. chartStyle. globalAnimation) {
414
418
self . startAnimation = true
@@ -424,7 +428,7 @@ internal struct RangedBarChartColoursCell<CD:RangedBarChartData>: View {
424
428
// MARK: Gradient Stops
425
429
internal struct RangedBarChartStopsCell < CD: RangedBarChartData > : View {
426
430
427
- private let chartData : CD
431
+ @ ObservedObject private var chartData : CD
428
432
private let dataPoint : CD . SetType . DataPoint
429
433
private let stops : [ Gradient . Stop ]
430
434
private let startPoint : UnitPoint
@@ -458,6 +462,7 @@ internal struct RangedBarChartStopsCell<CD:RangedBarChartData>: View {
458
462
. scaleEffect ( x: chartData. barStyle. barWidth, anchor: . center)
459
463
. position ( x: barSize. midX,
460
464
y: chartData. getBarPositionX ( dataPoint: dataPoint, height: barSize. height) )
465
+ . animation ( . default, value: chartData. dataSets)
461
466
. background ( Color ( . gray) . opacity ( 0.000000001 ) )
462
467
. animateOnAppear ( using: chartData. chartStyle. globalAnimation) {
463
468
self . startAnimation = true
@@ -483,7 +488,7 @@ internal struct RangedBarChartStopsCell<CD:RangedBarChartData>: View {
483
488
internal struct HorizontalColourBar < CD: CTBarChartDataProtocol & GetDataProtocol ,
484
489
DP: CTStandardDataPointProtocol & CTBarDataPointBaseProtocol > : View {
485
490
486
- private let chartData : CD
491
+ @ ObservedObject private var chartData : CD
487
492
private let colour : Color
488
493
private let dataPoint : DP
489
494
@@ -504,6 +509,7 @@ internal struct HorizontalColourBar<CD: CTBarChartDataProtocol & GetDataProtocol
504
509
. fill ( colour)
505
510
. scaleEffect ( x: startAnimation ? divideByZeroProtection ( CGFloat . self, dataPoint. value, chartData. maxValue) : 0 , anchor: . leading)
506
511
. scaleEffect ( y: chartData. barStyle. barWidth, anchor: . center)
512
+ . animation ( . default, value: chartData. dataSets)
507
513
. background ( Color ( . gray) . opacity ( 0.000000001 ) )
508
514
. animateOnAppear ( using: chartData. chartStyle. globalAnimation) {
509
515
self . startAnimation = true
@@ -526,7 +532,7 @@ internal struct HorizontalColourBar<CD: CTBarChartDataProtocol & GetDataProtocol
526
532
internal struct HorizontalGradientColoursBar < CD: CTBarChartDataProtocol & GetDataProtocol ,
527
533
DP: CTStandardDataPointProtocol & CTBarDataPointBaseProtocol > : View {
528
534
529
- private let chartData : CD
535
+ @ ObservedObject private var chartData : CD
530
536
private let dataPoint : DP
531
537
private let colours : [ Color ]
532
538
private let startPoint : UnitPoint
@@ -555,6 +561,7 @@ internal struct HorizontalGradientColoursBar<CD: CTBarChartDataProtocol & GetDat
555
561
endPoint: endPoint) )
556
562
. scaleEffect ( x: startAnimation ? divideByZeroProtection ( CGFloat . self, dataPoint. value, chartData. maxValue) : 0 , anchor: . leading)
557
563
. scaleEffect ( y: chartData. barStyle. barWidth, anchor: . center)
564
+ . animation ( . default, value: chartData. dataSets)
558
565
. background ( Color ( . gray) . opacity ( 0.000000001 ) )
559
566
. animateOnAppear ( using: chartData. chartStyle. globalAnimation) {
560
567
self . startAnimation = true
@@ -577,7 +584,7 @@ internal struct HorizontalGradientColoursBar<CD: CTBarChartDataProtocol & GetDat
577
584
internal struct HorizontalGradientStopsBar < CD: CTBarChartDataProtocol & GetDataProtocol ,
578
585
DP: CTStandardDataPointProtocol & CTBarDataPointBaseProtocol > : View {
579
586
580
- private let chartData : CD
587
+ @ ObservedObject private var chartData : CD
581
588
private let dataPoint : DP
582
589
private let stops : [ Gradient . Stop ]
583
590
private let startPoint : UnitPoint
@@ -606,6 +613,7 @@ internal struct HorizontalGradientStopsBar<CD: CTBarChartDataProtocol & GetDataP
606
613
endPoint: endPoint) )
607
614
. scaleEffect ( x: startAnimation ? divideByZeroProtection ( CGFloat . self, dataPoint. value, chartData. maxValue) : 0 , anchor: . leading)
608
615
. scaleEffect ( y: chartData. barStyle. barWidth, anchor: . center)
616
+ . animation ( . default, value: chartData. dataSets)
609
617
. background ( Color ( . gray) . opacity ( 0.000000001 ) )
610
618
. animateOnAppear ( using: chartData. chartStyle. globalAnimation) {
611
619
self . startAnimation = true
0 commit comments