public render()

in src/visualComponent/table/body/bodyRowComponent.ts [108:180]


    public render(options: IBodyRowRenderOptions): void {
        const {
            series,
            settings,
            rowStateSet,
            originRowStateSet,
        } = options;

        this.name = series.name;
        this.level = series.level;
        this.tableType = settings.table.type;

        const rowState: IRowState =
            (rowStateSet && rowStateSet[this.name])
            ||
            (originRowStateSet && originRowStateSet[this.name]);

        if (series.children && series.children.length) {
            const isContainerShown: boolean = rowState
                ? rowState.isShown === true || rowState.isShown === undefined
                : true;

            this.setViewMode(BodyRowComponentViewMode.tabular);

            this.renderContainer(
                options,
                this.tabularViewCellConstructors,
                isContainerShown,
                rowState,
                0,
                0,
            );

            this.verticalDraggableComponents.forEach((component: DraggableComponent) => {
                this.updateComponentOrder(component, 0);
            });

            this.updateContainerGrid(this.tableType === TableType.RowBasedKPIS
                ? settings.horizontalGrid
                : settings.verticalGrid,
            );

            this.changeContainerState(isContainerShown);

            this.bindClickEventToOpenModalWindow(null);
        } else if (series.hasBeenFilled) {
            this.setViewMode(BodyRowComponentViewMode.common);

            if (!this.components.length) {
                this.initCells(
                    this.cellConstructors,
                    this.bodyOptions,
                    this.cellOptions);

                this.initHorizontalDraggableComponent(this.options);
            }

            this.applyContainerClassName(false);

            this.renderCells(options);

            this.updateContainerGrid(null);
            this.updateAlignment(this.containerElement, undefined, undefined);
        }

        this.updateClassNamesBasedOnViewMode(this.viewMode);

        this.updateGrid(settings.horizontalGrid, settings.verticalGrid);

        this.applyState(rowState);

        this.postRender();
    }