public render()

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();
    }