| @@ -351,21 +351,16 @@ | ||
| 351 | 351 | format_data(id, table, series[i + 1].type, settings.series[i].format, i + 1); |
| 352 | 352 | } |
| 353 | 353 | break; |
| 354 | 354 | default: |
| 355 | - for (i = 0; i < settings.series.length; i++) { | |
| 356 | - if (!series[i + 1] || typeof settings.series[i] === 'undefined') { | |
| 357 | - continue; | |
| 358 | - } | |
| 359 | - var seriesIndexToUse = i + 1; | |
| 360 | - | |
| 361 | - // if an annotation "swallowed" a series, use the following one. | |
| 362 | - if(series_annotations.includes(i)){ | |
| 363 | - seriesIndexToUse++; | |
| 364 | - } | |
| 365 | - if ( series[seriesIndexToUse] ) { | |
| 366 | - format_data(id, table, series[seriesIndexToUse].type, settings.series[i].format, seriesIndexToUse); | |
| 367 | - } | |
| 355 | + // Single-pass: walk columns, skip annotation/helper roles, apply formats in order. | |
| 356 | + var k = 0; // index into settings.series (visible series) | |
| 357 | + for (var c = 1; c < series.length && k < settings.series.length; c++) { // skip label at 0 | |
| 358 | + if (table.getColumnProperty(c, 'role')) continue; // helper/annotation column | |
| 359 | + var s = settings.series[k++]; | |
| 360 | + if (!s || !s.format) continue; | |
| 361 | + if (!series[c]) continue; | |
| 362 | + format_data(id, table, series[c].type, s.format, c); | |
| 368 | 363 | } |
| 369 | 364 | break; |
| 370 | 365 | } |
| 371 | 366 | } else if (chart.type === 'pie' && settings.format && settings.format !== '') { |