@@ -8,92 +8,106 @@ import {
88 ChartSeries ,
99} from '../types/chart-types' ;
1010
11- export const setChartData = ( data : ChartData ) => (
12- element : XMLDocument ,
13- chart : Document ,
14- workbook : Workbook ,
15- ) : void => {
16- const slots = [ ] as ChartSlot [ ] ;
17- data . series . forEach ( ( series : ChartSeries , s : number ) => {
18- slots . push ( {
19- index : s ,
20- series : series ,
21- targetCol : s + 1 ,
22- type : 'defaultSeries' ,
11+ export default class ModifyChartHelper {
12+ /**
13+ * Set chart data to modify default chart types.
14+ * See `__tests__/modify-existing-chart.test.js`
15+ */
16+ static setChartData = ( data : ChartData ) => (
17+ element : XMLDocument ,
18+ chart : Document ,
19+ workbook : Workbook ,
20+ ) : void => {
21+ const slots = [ ] as ChartSlot [ ] ;
22+ data . series . forEach ( ( series : ChartSeries , s : number ) => {
23+ slots . push ( {
24+ index : s ,
25+ series : series ,
26+ targetCol : s + 1 ,
27+ type : 'defaultSeries' ,
28+ } ) ;
2329 } ) ;
24- } ) ;
25-
26- new ModifyChart ( chart , workbook , data , slots ) . modify ( ) ;
2730
28- // XmlHelper.dump(chart)
29- // XmlHelper.dump(workbook.table)
30- } ;
31+ new ModifyChart ( chart , workbook , data , slots ) . modify ( ) ;
3132
32- export const setChartVerticalLines = ( data : ChartData ) => (
33- element : XMLDocument ,
34- chart : Document ,
35- workbook : Workbook ,
36- ) : void => {
37- const slots = [ ] as ChartSlot [ ] ;
33+ // XmlHelper.dump(chart)
34+ // XmlHelper.dump(workbook.table)
35+ } ;
3836
39- slots . push ( {
40- label : `Y-Values` ,
41- mapData : ( point : number , category : ChartCategory ) => category . y ,
42- targetCol : 1 ,
43- } ) ;
37+ /**
38+ * Set chart data to modify vertical line charts.
39+ * See `__tests__/modify-chart-vertical-lines.test.js`
40+ */
41+ static setChartVerticalLines = ( data : ChartData ) => (
42+ element : XMLDocument ,
43+ chart : Document ,
44+ workbook : Workbook ,
45+ ) : void => {
46+ const slots = [ ] as ChartSlot [ ] ;
4447
45- data . series . forEach ( ( series : ChartSeries , s : number ) => {
4648 slots . push ( {
47- index : s ,
48- series : series ,
49- targetCol : s + 2 ,
50- type : 'xySeries' ,
49+ label : `Y-Values` ,
50+ mapData : ( point : number , category : ChartCategory ) => category . y ,
51+ targetCol : 1 ,
5152 } ) ;
52- } ) ;
5353
54- new ModifyChart ( chart , workbook , data , slots ) . modify ( ) ;
55- } ;
54+ data . series . forEach ( ( series : ChartSeries , s : number ) => {
55+ slots . push ( {
56+ index : s ,
57+ series : series ,
58+ targetCol : s + 2 ,
59+ type : 'xySeries' ,
60+ } ) ;
61+ } ) ;
5662
57- export const setChartBubbles = ( data : ChartData ) => (
58- element : XMLDocument ,
59- chart : Document ,
60- workbook : Workbook ,
61- ) : void => {
62- const slots = [ ] as ChartSlot [ ] ;
63+ new ModifyChart ( chart , workbook , data , slots ) . modify ( ) ;
64+ } ;
6365
64- data . series . forEach ( ( series : ChartSeries , s : number ) => {
65- const colId = s * 3 ;
66- slots . push ( {
67- index : s ,
68- series : series ,
69- targetCol : colId + 1 ,
70- type : 'customSeries' ,
71- tag : 'c:xVal' ,
72- mapData : ( point : ChartBubble ) : number => point . x ,
73- } ) ;
74- slots . push ( {
75- label : `${ series . label } -Y-Value` ,
76- index : s ,
77- series : series ,
78- targetCol : colId + 2 ,
79- type : 'customSeries' ,
80- tag : 'c:yVal' ,
81- mapData : ( point : ChartBubble ) : number => point . y ,
82- isStrRef : false ,
83- } ) ;
84- slots . push ( {
85- label : `${ series . label } -Size` ,
86- index : s ,
87- series : series ,
88- targetCol : colId + 3 ,
89- type : 'customSeries' ,
90- tag : 'c:bubbleSize' ,
91- mapData : ( point : ChartBubble ) : number => point . size ,
92- isStrRef : false ,
66+ /**
67+ * Set chart data to modify bubble charts.
68+ * See `__tests__/modify-chart-bubbles.test.js`
69+ */
70+ static setChartBubbles = ( data : ChartData ) => (
71+ element : XMLDocument ,
72+ chart : Document ,
73+ workbook : Workbook ,
74+ ) : void => {
75+ const slots = [ ] as ChartSlot [ ] ;
76+
77+ data . series . forEach ( ( series : ChartSeries , s : number ) => {
78+ const colId = s * 3 ;
79+ slots . push ( {
80+ index : s ,
81+ series : series ,
82+ targetCol : colId + 1 ,
83+ type : 'customSeries' ,
84+ tag : 'c:xVal' ,
85+ mapData : ( point : ChartBubble ) : number => point . x ,
86+ } ) ;
87+ slots . push ( {
88+ label : `${ series . label } -Y-Value` ,
89+ index : s ,
90+ series : series ,
91+ targetCol : colId + 2 ,
92+ type : 'customSeries' ,
93+ tag : 'c:yVal' ,
94+ mapData : ( point : ChartBubble ) : number => point . y ,
95+ isStrRef : false ,
96+ } ) ;
97+ slots . push ( {
98+ label : `${ series . label } -Size` ,
99+ index : s ,
100+ series : series ,
101+ targetCol : colId + 3 ,
102+ type : 'customSeries' ,
103+ tag : 'c:bubbleSize' ,
104+ mapData : ( point : ChartBubble ) : number => point . size ,
105+ isStrRef : false ,
106+ } ) ;
93107 } ) ;
94- } ) ;
95108
96- new ModifyChart ( chart , workbook , data , slots ) . modify ( ) ;
109+ new ModifyChart ( chart , workbook , data , slots ) . modify ( ) ;
97110
98- // XmlHelper.dump(chart)
99- } ;
111+ // XmlHelper.dump(chart)
112+ } ;
113+ }
0 commit comments