@@ -10,26 +10,23 @@ import { normalizeV9 } from "./legacy_tools";
10
10
import { WEEK_START } from "./locale" ;
11
11
12
12
export interface MigrationStep {
13
- versionFrom : string ;
14
13
migrate : ( data : any ) => any ;
15
14
}
16
15
17
16
export const migrationStepRegistry = new Registry < MigrationStep > ( ) ;
18
17
19
18
migrationStepRegistry
20
- . add ( "migration_1 " , {
19
+ . add ( "0.1 " , {
21
20
// add the `activeSheet` field on data
22
- versionFrom : "1" ,
23
21
migrate ( data : any ) : any {
24
22
if ( data . sheets && data . sheets [ 0 ] ) {
25
23
data . activeSheet = data . sheets [ 0 ] . name ;
26
24
}
27
25
return data ;
28
26
} ,
29
27
} )
30
- . add ( "migration_2 " , {
28
+ . add ( "0.2 " , {
31
29
// add an id field in each sheet
32
- versionFrom : "2" ,
33
30
migrate ( data : any ) : any {
34
31
if ( data . sheets && data . sheets . length ) {
35
32
for ( let sheet of data . sheets ) {
@@ -39,9 +36,8 @@ migrationStepRegistry
39
36
return data ;
40
37
} ,
41
38
} )
42
- . add ( "migration_3 " , {
39
+ . add ( "0.3 " , {
43
40
// activeSheet is now an id, not the name of a sheet
44
- versionFrom : "3" ,
45
41
migrate ( data : any ) : any {
46
42
if ( data . sheets && data . activeSheet ) {
47
43
const activeSheet = data . sheets . find ( ( s ) => s . name === data . activeSheet ) ;
@@ -50,19 +46,17 @@ migrationStepRegistry
50
46
return data ;
51
47
} ,
52
48
} )
53
- . add ( "migration_4 " , {
49
+ . add ( "0.4 " , {
54
50
// add figures object in each sheets
55
- versionFrom : "4" ,
56
51
migrate ( data : any ) : any {
57
52
for ( let sheet of data . sheets || [ ] ) {
58
53
sheet . figures = sheet . figures || [ ] ;
59
54
}
60
55
return data ;
61
56
} ,
62
57
} )
63
- . add ( "migration_5 " , {
58
+ . add ( "0.5 " , {
64
59
// normalize the content of the cell if it is a formula to avoid parsing all the formula that vary only by the cells they use
65
- versionFrom : "5" ,
66
60
migrate ( data : any ) : any {
67
61
for ( let sheet of data . sheets || [ ] ) {
68
62
for ( let xc in sheet . cells || [ ] ) {
@@ -75,9 +69,8 @@ migrationStepRegistry
75
69
return data ;
76
70
} ,
77
71
} )
78
- . add ( "migration_6 " , {
72
+ . add ( "0.6 " , {
79
73
// transform chart data structure
80
- versionFrom : "6" ,
81
74
migrate ( data : any ) : any {
82
75
for ( let sheet of data . sheets || [ ] ) {
83
76
for ( let f in sheet . figures || [ ] ) {
@@ -100,9 +93,8 @@ migrationStepRegistry
100
93
return data ;
101
94
} ,
102
95
} )
103
- . add ( "migration_7 " , {
96
+ . add ( "0.7 " , {
104
97
// remove single quotes in sheet names
105
- versionFrom : "7" ,
106
98
migrate ( data : any ) : any {
107
99
const namesTaken : string [ ] = [ ] ;
108
100
for ( let sheet of data . sheets || [ ] ) {
@@ -165,9 +157,8 @@ migrationStepRegistry
165
157
return data ;
166
158
} ,
167
159
} )
168
- . add ( "migration_8 " , {
160
+ . add ( "0.8 " , {
169
161
// transform chart data structure with design attributes
170
- versionFrom : "8" ,
171
162
migrate ( data : any ) : any {
172
163
for ( const sheet of data . sheets || [ ] ) {
173
164
for ( const chart of sheet . figures || [ ] ) {
@@ -180,9 +171,8 @@ migrationStepRegistry
180
171
return data ;
181
172
} ,
182
173
} )
183
- . add ( "migration_9 " , {
174
+ . add ( "0.9 " , {
184
175
// de-normalize formula to reduce exported json size (~30%)
185
- versionFrom : "9" ,
186
176
migrate ( data : any ) : any {
187
177
for ( let sheet of data . sheets || [ ] ) {
188
178
for ( let xc in sheet . cells || [ ] ) {
@@ -201,9 +191,8 @@ migrationStepRegistry
201
191
return data ;
202
192
} ,
203
193
} )
204
- . add ( "migration_10 " , {
194
+ . add ( "0.10 " , {
205
195
// normalize the formats of the cells
206
- versionFrom : "10" ,
207
196
migrate ( data : any ) : any {
208
197
const formats : { [ formatId : number ] : Format } = { } ;
209
198
for ( let sheet of data . sheets || [ ] ) {
@@ -218,26 +207,23 @@ migrationStepRegistry
218
207
return data ;
219
208
} ,
220
209
} )
221
- . add ( "migration_11 " , {
210
+ . add ( "15.4 " , {
222
211
// Add isVisible to sheets
223
- versionFrom : "11" ,
224
212
migrate ( data : any ) : any {
225
213
for ( let sheet of data . sheets || [ ] ) {
226
214
sheet . isVisible = true ;
227
215
}
228
216
return data ;
229
217
} ,
230
218
} )
231
- . add ( "migration_12 " , {
219
+ . add ( "15.4.1 " , {
232
220
// Fix data filter duplication
233
- versionFrom : "12" ,
234
221
migrate ( data : any ) : any {
235
222
return fixOverlappingFilters ( data ) ;
236
223
} ,
237
224
} )
238
- . add ( "migration_12_5 " , {
225
+ . add ( "16.3 " , {
239
226
// Change Border description structure
240
- versionFrom : "12.5" ,
241
227
migrate ( data : any ) : any {
242
228
for ( const borderId in data . borders ) {
243
229
const border = data . borders [ borderId ] ;
@@ -253,9 +239,8 @@ migrationStepRegistry
253
239
return data ;
254
240
} ,
255
241
} )
256
- . add ( "migration_13 " , {
242
+ . add ( "16.4 " , {
257
243
// Add locale to spreadsheet settings
258
- versionFrom : "13" ,
259
244
migrate ( data : any ) : any {
260
245
if ( ! data . settings ) {
261
246
data . settings = { } ;
@@ -266,16 +251,14 @@ migrationStepRegistry
266
251
return data ;
267
252
} ,
268
253
} )
269
- . add ( "migration_14 " , {
254
+ . add ( "16.4.1 " , {
270
255
// Fix datafilter duplication (post saas-17.1)
271
- versionFrom : "14" ,
272
256
migrate ( data : any ) : any {
273
257
return fixOverlappingFilters ( data ) ;
274
258
} ,
275
259
} )
276
- . add ( "migration_14_5 " , {
260
+ . add ( "17.2 " , {
277
261
// Rename filterTable to tables
278
- versionFrom : "14.5" ,
279
262
migrate ( data : any ) : any {
280
263
for ( const sheetData of data . sheets || [ ] ) {
281
264
sheetData . tables = sheetData . tables || sheetData . filterTables || [ ] ;
@@ -284,9 +267,8 @@ migrationStepRegistry
284
267
return data ;
285
268
} ,
286
269
} )
287
- . add ( "migration_15 " , {
270
+ . add ( "17.3 " , {
288
271
// Add pivots
289
- versionFrom : "15" ,
290
272
migrate ( data : any ) : any {
291
273
if ( ! data . pivots ) {
292
274
data . pivots = { } ;
@@ -297,9 +279,8 @@ migrationStepRegistry
297
279
return data ;
298
280
} ,
299
281
} )
300
- . add ( "migration_16 " , {
282
+ . add ( "17.4 " , {
301
283
// transform chart data structure (2)
302
- versionFrom : "16" ,
303
284
migrate ( data : any ) : any {
304
285
for ( const sheet of data . sheets || [ ] ) {
305
286
for ( const f in sheet . figures || [ ] ) {
@@ -320,18 +301,16 @@ migrationStepRegistry
320
301
return data ;
321
302
} ,
322
303
} )
323
- . add ( "migration_17 " , {
304
+ . add ( "18.0 " , {
324
305
// Empty migration to allow external modules to add their own migration steps
325
306
// before this version
326
- versionFrom : "17" ,
327
307
migrate ( data : any ) : any {
328
308
return data ;
329
309
} ,
330
310
} )
331
- . add ( "migration_18 " , {
311
+ . add ( "18.0.1 " , {
332
312
// Change measures and dimensions `name` to `fieldName`
333
313
// Add id to measures
334
- versionFrom : "18" ,
335
314
migrate ( data : any ) : any {
336
315
interface PivotCoreMeasureV17 {
337
316
name : string ;
@@ -362,9 +341,8 @@ migrationStepRegistry
362
341
return data ;
363
342
} ,
364
343
} )
365
- . add ( "migration_19 " , {
344
+ . add ( "18.0.2 " , {
366
345
// "Add weekStart to locale",
367
- versionFrom : "19" ,
368
346
migrate ( data : any ) : any {
369
347
const locale = data . settings ?. locale ;
370
348
if ( locale ) {
@@ -374,9 +352,8 @@ migrationStepRegistry
374
352
return data ;
375
353
} ,
376
354
} )
377
- . add ( "migration_20 " , {
355
+ . add ( "18.0.3 " , {
378
356
// group style and format into zones,
379
- versionFrom : "20" ,
380
357
migrate ( data : any ) : any {
381
358
for ( const sheet of data . sheets || [ ] ) {
382
359
sheet . styles = { } ;
@@ -394,9 +371,8 @@ migrationStepRegistry
394
371
return data ;
395
372
} ,
396
373
} )
397
- . add ( "migration_21 " , {
374
+ . add ( "18.0.4 " , {
398
375
// "Add operator in gauge inflection points",
399
- versionFrom : "21" ,
400
376
migrate ( data : WorkbookData ) : any {
401
377
for ( const sheet of data . sheets || [ ] ) {
402
378
for ( const figure of sheet . figures || [ ] ) {
@@ -415,9 +391,8 @@ migrationStepRegistry
415
391
return data ;
416
392
} ,
417
393
} )
418
- . add ( "migration_22 " , {
394
+ . add ( "18.1 " , {
419
395
// "tables are no longer inserted with filters by default",
420
- versionFrom : "22" ,
421
396
migrate ( data : WorkbookData ) : any {
422
397
for ( const sheet of data . sheets || [ ] ) {
423
398
for ( const table of sheet . tables || [ ] ) {
@@ -429,9 +404,8 @@ migrationStepRegistry
429
404
return data ;
430
405
} ,
431
406
} )
432
- . add ( "migration_23 " , {
407
+ . add ( "18.1.1 " , {
433
408
// Flatten cell content: { content: "value" } -> "value"
434
- versionFrom : "23" ,
435
409
migrate ( data : WorkbookData ) : any {
436
410
for ( const sheet of data . sheets || [ ] ) {
437
411
for ( const xc in sheet . cells ) {
@@ -444,12 +418,16 @@ migrationStepRegistry
444
418
return data ;
445
419
} ,
446
420
} )
447
- . add ( "migration_24 " , {
421
+ . add ( "18.2 " , {
448
422
// Empty migration to allow odoo migrate pivot custom sorting.
449
- versionFrom : "24" ,
450
423
migrate ( data : WorkbookData ) : any {
451
424
return data ;
452
425
} ,
426
+ } )
427
+ . add ( "18.3" , {
428
+ migrate ( data ) {
429
+ return data ;
430
+ } ,
453
431
} ) ;
454
432
455
433
function fixOverlappingFilters ( data : any ) : any {
0 commit comments