@@ -16,6 +16,21 @@ function splitAngleColor(dataProps: BasicDataPropertyForAdvice[]): [ReturnField,
16
16
return [ field4Color , field4Angle ] ;
17
17
}
18
18
19
+ /**
20
+ * Process date column to new Date().
21
+ * @param field
22
+ * @param dataProps
23
+ * @returns
24
+ */
25
+ function processDateEncode ( field : string , dataProps : BasicDataPropertyForAdvice [ ] ) {
26
+ const dp = dataProps . find ( ( dataProp ) => dataProp . name === field ) ;
27
+
28
+ if ( dp ?. recommendation === 'date' ) {
29
+ return ( d ) => new Date ( d [ field ] ) ;
30
+ }
31
+ return field ;
32
+ }
33
+
19
34
function pieChart ( data : Data , dataProps : BasicDataPropertyForAdvice [ ] ) : Advice [ 'spec' ] {
20
35
const [ field4Color , field4Angle ] = splitAngleColor ( dataProps ) ;
21
36
if ( ! field4Angle || ! field4Color ) return null ;
@@ -29,6 +44,9 @@ function pieChart(data: Data, dataProps: BasicDataPropertyForAdvice[]): Advice['
29
44
} ,
30
45
transform : [ { type : 'stackY' } ] ,
31
46
coordinate : { type : 'theta' } ,
47
+ animate : {
48
+ enter : { type : 'waveIn' } ,
49
+ } ,
32
50
} ;
33
51
return spec ;
34
52
}
@@ -46,6 +64,9 @@ function donutChart(data: Data, dataProps: BasicDataPropertyForAdvice[]): Advice
46
64
} ,
47
65
transform : [ { type : 'stackY' } ] ,
48
66
coordinate : { type : 'theta' , innerRadius : 0.6 } ,
67
+ animate : {
68
+ enter : { type : 'waveIn' } ,
69
+ } ,
49
70
} ;
50
71
return spec ;
51
72
}
@@ -67,7 +88,7 @@ function lineChart(data: Data, dataProps: BasicDataPropertyForAdvice[]): Advice[
67
88
type : 'line' ,
68
89
data,
69
90
encode : {
70
- x : field4X . name ,
91
+ x : processDateEncode ( field4X . name , dataProps ) ,
71
92
y : field4Y . name ,
72
93
} ,
73
94
} ;
@@ -87,7 +108,7 @@ function stepLineChart(data: Data, dataProps: BasicDataPropertyForAdvice[]): Adv
87
108
type : 'line' ,
88
109
data,
89
110
encode : {
90
- x : field4X . name ,
111
+ x : processDateEncode ( field4X . name , dataProps ) ,
91
112
y : field4Y . name ,
92
113
shape : 'hvh' ,
93
114
} ,
@@ -120,7 +141,7 @@ function areaChart(data: Data, dataProps: BasicDataPropertyForAdvice[]): Advice[
120
141
type : 'area' ,
121
142
data,
122
143
encode : {
123
- x : field4X . name ,
144
+ x : processDateEncode ( field4X . name , dataProps ) ,
124
145
y : field4Y . name ,
125
146
} ,
126
147
} ;
@@ -136,7 +157,7 @@ function stackedAreaChart(data: Data, dataProps: BasicDataPropertyForAdvice[]):
136
157
type : 'area' ,
137
158
data,
138
159
encode : {
139
- x : field4X . name ,
160
+ x : processDateEncode ( field4X . name , dataProps ) ,
140
161
y : field4Y . name ,
141
162
color : field4Series . name ,
142
163
} ,
@@ -154,7 +175,7 @@ function percentStackedAreaChart(data: Data, dataProps: BasicDataPropertyForAdvi
154
175
type : 'area' ,
155
176
data,
156
177
encode : {
157
- x : field4X . name ,
178
+ x : processDateEncode ( field4X . name , dataProps ) ,
158
179
y : field4Y . name ,
159
180
color : field4Series . name ,
160
181
} ,
0 commit comments