in src/visualComponent/table/tableComponent.ts [102:168]
public render(options: IVisualComponentRenderOptions): void {
const {
settings,
settings: {
table: {
type,
},
},
data: {
seriesDeep,
},
} = options;
if (this.tableType !== type) {
this.components.forEach((component: IVisualComponent) => {
if (component && component.resetScroll) {
component.resetScroll();
}
});
}
this.tableType = type;
const extendedOptions: IHeaderRowRenderOptions = options as IHeaderRowRenderOptions;
const columnNames: string[] = [];
const columnOrders: number[] = [];
const visibilities: boolean[] = [];
for (let index: number = 0; index < seriesDeep - 1; index++) {
const category: IGeneratedCategory = SettingsBase.getCategoryByIndex(index);
const categorySettings: FontSettings = settings[category.name];
if (categorySettings) {
columnNames.push(categorySettings.label);
visibilities.push(categorySettings.show);
columnOrders.push(categorySettings.order);
}
}
[
settings.asOfDate,
settings.metricName,
settings.currentValue,
settings.kpiIndicatorValue,
settings.comparisonValue,
settings.sparklineSettings,
settings.secondComparisonValue,
settings.secondKPIIndicatorValue,
].forEach((particularSettings: LabelSettings) => {
visibilities.push(particularSettings.show);
columnNames.push(particularSettings.label);
columnOrders.push(particularSettings.order);
});
extendedOptions.columnNames = columnNames;
extendedOptions.columnOrders = columnOrders;
this.updateTableType();
super.render(extendedOptions);
this.updateVisibility(visibilities);
this.synchronizeCellWidth();
}