@@ -8,20 +8,22 @@ export default {
8
8
return {
9
9
/**
10
10
* Axes stores all the relevant information for each axis
11
- * @property {Object.<string, Object> } axisDefs map { [axisId]: axisDefData, ... }
11
+ * @property {Object.<string, Object> } axisDefinitions map { [axisId]: axisDefData, ... }
12
12
* @property {string } axisDefData.dimension "x", "y", "z", "angle", "radius".
13
13
* @property {string } axisDefData.type "numeric", "categorical".
14
14
* @property {string|string[] } axisDefData.datakey optional datakey or array of datakeys.
15
15
* @property {Object.<string, string> } axisDefData.datakeys a "map" of element's "uid" and their "datakeys".
16
16
* It must be a "map" to register who is requiring a datakey. It could be more than one element.
17
17
*/
18
- axisDefs : { } ,
18
+ axisDefinitions : { } ,
19
19
20
- axisDataDomains : { } ,
20
+ axisDatakeys : { } ,
21
+
22
+ axisDataDomainsByElement : { } ,
21
23
22
24
/**
23
25
* Axes stores all the relevant information for each axis
24
- * @property {Object.<string, Object> } axes map { [axisId]: axisData, ... }
26
+ * @property {Object.<string, Object> } axisInformations map { [axisId]: axisData, ... }
25
27
* @property {string } axisData.dimension "x", "y", "z", "angle", "radius".
26
28
* @property {string } axisData.type "numeric", "categorical".
27
29
* @property {string|string[] } axisData.datakey optional datakey or array of datakeys.
@@ -31,9 +33,28 @@ export default {
31
33
* @property {function } axisData.scale
32
34
* @property {number[] } axisData.ticks
33
35
*/
34
- axes : { } ,
36
+ // axisInformations: {},
37
+ axisDomains : { } ,
38
+ axisBounds : { } ,
39
+ axisScales : { } ,
40
+ axisTicks : { } ,
35
41
}
36
42
} ,
43
+ computed : {
44
+ // axes () {
45
+ // const { axisDefinitions, axisInformations } = this
46
+ // return Object.keys(axisDefinitions).reduce(
47
+ // (acc, axisId) => ({
48
+ // ...acc,
49
+ // [axisId]: {
50
+ // ...axisDefinitions[axisId],
51
+ // ...axisInformations[axisId],
52
+ // },
53
+ // }),
54
+ // {}
55
+ // )
56
+ // },
57
+ } ,
37
58
methods : {
38
59
/**
39
60
* Function that registers the axes relevant information.
@@ -45,41 +66,60 @@ export default {
45
66
* @param {string } [obj.series] optional series.
46
67
* @param {string } [obj.datakey] optional datakey.
47
68
*/
48
- registerAxis ( id , {
69
+ registerAxisDefinition ( id , {
49
70
dimension,
50
71
type,
51
72
series,
52
73
datakey,
53
74
} ) {
54
- const { axisDefs } = this
55
- const newAxisDefs = {
56
- ...axisDefs ,
75
+ debugger
76
+ const { axisDefinitions } = this
77
+ const newAxisDefinitions = {
78
+ ...axisDefinitions ,
57
79
[ id ] : {
58
80
dimension,
59
81
type,
82
+ series,
60
83
datakey,
61
- datakeys : { } ,
62
84
} ,
63
85
}
64
86
if ( datakey ) {
65
- newAxisDefs [ id ] . datakeys [ id ] = { series, datakey }
87
+ this . registerAxisDatakey ( id , { axisId : id , series, datakey } )
66
88
}
67
- this . axisDefs = newAxisDefs
89
+ this . axisDefinitions = newAxisDefinitions
90
+ // this.axisDefinitions[id] = {
91
+ // dimension,
92
+ // type,
93
+ // series,
94
+ // datakey,
95
+ // }
68
96
} ,
69
97
70
98
/**
71
99
* Function that unregisters the axes relevant information.
72
100
* @param {string } id identifier for the axis.
73
101
*/
74
102
unregisterAxis ( id ) {
75
- this . axisDefs = omit ( this . axisDefs , id )
103
+ // delete this.axisDefinitions[id]
104
+ // delete this.axisDatakeys[id]
105
+ // delete this.axisDomains[id]
106
+ // delete this.axisBounds[id]
107
+ // delete this.axisScales[id]
108
+ // delete this.axisTicks[id]
109
+ this . axisDefinitions = omit ( this . axisDefinitions , id )
110
+ this . axisDatakeys = omit ( this . axisDatakeys , id )
111
+ // this.axisInformations = omit(this.axisInformations, id)
112
+ this . axisDomains = omit ( this . axisDomains , id )
113
+ this . axisBounds = omit ( this . axisBounds , id )
114
+ this . axisScales = omit ( this . axisScales , id )
115
+ this . axisTicks = omit ( this . axisTicks , id )
76
116
} ,
77
117
78
118
/**
79
119
* Function that registers a datakey for a specific axis.
80
120
* @param {string } uid unique identifier for the component.
81
121
* @param {Object } obj object with parameters.
82
- * @param {string } [ obj.axisId] identifier for the axis.
122
+ * @param {string } obj.axisId identifier for the axis.
83
123
* @param {string } obj.series series key if needed.
84
124
* @param {string } obj.datakey datakey. It can be namespaced by a series "{series}:{datakey}"
85
125
*/
@@ -88,24 +128,28 @@ export default {
88
128
series,
89
129
datakey,
90
130
} ) {
91
- const { axisDefs } = this
131
+ debugger
132
+ const { axisDatakeys } = this
92
133
if ( series || datakey ) {
93
134
if ( uid && axisId ) {
94
- const axisData = axisDefs [ axisId ] || { }
95
- const newAxisDefs = {
96
- ...axisDefs ,
135
+ const newAxisDatakeys = {
136
+ ...axisDatakeys ,
97
137
[ axisId ] : {
98
- ...axisData ,
99
- datakeys : {
100
- ...( axisData . datakeys || { } ) ,
101
- [ uid ] : {
102
- series,
103
- datakey,
104
- } ,
138
+ ...( axisDatakeys [ axisId ] || { } ) ,
139
+ [ uid ] : {
140
+ series,
141
+ datakey,
105
142
} ,
106
143
} ,
107
144
}
108
- this . axisDefs = newAxisDefs
145
+ this . axisDatakeys = newAxisDatakeys
146
+ // this.axisDatakeys[axisId] = {
147
+ // ...(axisDatakeys[axisId] || {}),
148
+ // [uid]: {
149
+ // series,
150
+ // datakey,
151
+ // },
152
+ // }
109
153
} else {
110
154
console . warn ( 'chart.registerAxisDatakey: there is no "uid" or "axisId"' )
111
155
}
@@ -117,38 +161,99 @@ export default {
117
161
* @param {string } uid unique identifier for the component.
118
162
*/
119
163
unregisterAxisDatakey ( uid ) {
120
- const { axisDefs } = this
121
- this . axisDefs = Object . keys ( axisDefs ) . reduce (
164
+ const { axisDatakeys } = this
165
+ this . axisDatakeys = Object . keys ( axisDatakeys ) . reduce (
122
166
( acc , axisId ) => ( {
123
167
...acc ,
124
- [ axisId ] : {
125
- ...axisDefs [ axisId ] ,
126
- datakeys : omit ( axisDefs [ axisId ] . datakeys || { } , uid ) ,
127
- } ,
168
+ [ axisId ] : omit ( axisDatakeys [ axisId ] || { } , uid ) ,
128
169
} ) ,
129
170
{ }
130
171
)
131
172
} ,
132
173
133
- setAxisData ( id , {
174
+ /**
175
+ * Function that registers a datakey for a specific axis.
176
+ * @param {string } uid unique identifier for the component.
177
+ * @param {Object } obj object with parameters.
178
+ * @param {string } obj.axisId identifier for the axis.
179
+ * @param {string } obj.domain domain
180
+ */
181
+ registerAxisDataDomain ( uid , {
182
+ axisId,
134
183
domain,
135
- bounds,
136
- scale,
137
- ticks,
138
184
} ) {
139
- const { axisDefs, axes } = this
140
- const newAxes = {
141
- ...axes ,
142
- [ id ] : {
143
- ...( axisDefs [ id ] || { } ) ,
144
- ...( axes [ id ] || { } ) ,
145
- domain,
146
- bounds,
147
- scale,
148
- ticks,
149
- } ,
185
+ debugger
186
+ const { axisDataDomainsByElement } = this
187
+ if ( uid && axisId ) {
188
+ const newAxisDataDomainsByElement = {
189
+ ...axisDataDomainsByElement ,
190
+ [ axisId ] : {
191
+ ...( axisDataDomainsByElement [ axisId ] || { } ) ,
192
+ [ uid ] : domain ,
193
+ } ,
194
+ }
195
+ this . axisDataDomainsByElement = newAxisDataDomainsByElement
196
+ // this.axisDataDomainsByElement[axisId] = {
197
+ // ...(axisDataDomainsByElement[axisId] || {}),
198
+ // [uid]: domain,
199
+ // }
200
+ } else {
201
+ console . warn ( 'chart.registerAxisDataDomain: there is no "uid" or "axisId"' )
150
202
}
151
- this . axes = newAxes
152
203
} ,
204
+
205
+ /**
206
+ * Function that unregisters a datakey for a specific axis.
207
+ * @param {string } uid unique identifier for the component.
208
+ */
209
+ unregisterAxisDataDomain ( uid ) {
210
+ const { axisDataDomainsByElement } = this
211
+ this . axisDataDomainsByElement = Object . keys ( axisDataDomainsByElement ) . reduce (
212
+ ( acc , axisId ) => ( {
213
+ ...acc ,
214
+ [ axisId ] : omit ( axisDataDomainsByElement [ axisId ] || { } , uid ) ,
215
+ } ) ,
216
+ { }
217
+ )
218
+ } ,
219
+
220
+ setAxisDomain ( id , domain ) {
221
+ debugger
222
+ this . axisDomains = { ...this . axisDomains , [ id ] : domain }
223
+ // this.axisDomains[id] = domain
224
+ } ,
225
+ setAxisBound ( id , bound ) {
226
+ debugger
227
+ this . axisBounds = { ...this . axisBounds , [ id ] : bound }
228
+ // this.axisBounds[id] = bound
229
+ } ,
230
+ setAxisScale ( id , scale ) {
231
+ debugger
232
+ this . axisScales = { ...this . axisScales , [ id ] : scale }
233
+ // this.axisScales[id] = scale
234
+ } ,
235
+ setAxisTicks ( id , ticks ) {
236
+ debugger
237
+ this . axisTicks = { ...this . axisTicks , [ id ] : ticks }
238
+ // this.axisTicks[id] = ticks
239
+ } ,
240
+ // setAxisInformation (id, {
241
+ // domain,
242
+ // bounds,
243
+ // scale,
244
+ // ticks,
245
+ // }) {
246
+ // debugger
247
+ // const {
248
+ // axisDomains,
249
+ // axisBounds,
250
+ // axisScales,
251
+ // axisTicks,
252
+ // } = this
253
+ // this.axisDomains = { ...axisDomains, [id]: domain }
254
+ // this.axisBounds = { ...axisBounds, [id]: bounds }
255
+ // this.axisScales = { ...axisScales, [id]: scale }
256
+ // this.axisTicks = { ...axisTicks, [id]: ticks }
257
+ // },
153
258
} ,
154
259
}
0 commit comments