protected converterStep()

in src/converter/data/rowBasedModel/rowBasedModelConverter.ts [76:238]


    protected converterStep(options: IConverterStepOptions): void {
        const {
            dataRepresentation,
            columnValues,
            identities,
            identityQueryName,
            rows,
            rowIndex,
            settings,
            settingsState,
            levels,
            viewMode,
        } = options;

        let axisValue: DataRepresentationAxisValueType;

        if (columnValues[dateColumn.name]) {
            const dateColumnName: string = Object.keys(columnValues[dateColumn.name])[0];

            axisValue =
                dateColumnName
                && columnValues[dateColumn.name][dateColumnName]
                && columnValues[dateColumn.name][dateColumnName].value;
        }

        if (NumericValueUtils.isValueDefined(axisValue)) {
            const seriesColumnName: string = columnValues[rowBasedMetricNameColumn.name]
                && Object.keys(columnValues[rowBasedMetricNameColumn.name])[0];

            const seriesName: string = seriesColumnName
                && columnValues[rowBasedMetricNameColumn.name][seriesColumnName]
                && columnValues[rowBasedMetricNameColumn.name][seriesColumnName].value
                || undefined;

            if (seriesName) {
                const series: IDataRepresentationSeries
                    = this.getSeriesByDisplayName(
                        dataRepresentation.series,
                        dataRepresentation.seriesArray,
                        levels,
                        seriesName,
                        identities,
                        rowIndex,
                        identityQueryName,
                        rows,
                        settings,
                        settingsState,
                        dataRepresentation.type,
                        viewMode,
                        this.createSelectionIdBuilder,
                    );

                let currentValue: number;
                let currentFormat: string;

                let comparisonValue: number = NaN;
                let comparisonFormat: string;
                let isComparisonValueSpecified: boolean = false;
                let comparisonValueColumnName: string;

                let kpiIndicatorIndex: number = NaN;
                let isKPIIndicatorIndexSpecified: boolean = false;

                let kpiIndicatorValue: number = NaN;
                let kpiIndicatorValueFormat: string;
                let isKPIIndicatorValueSpecified: boolean = false;

                let secondComparisonValue: number = NaN;
                let secondComparisonValueFormat: string;
                let isSecondComparisonValueSpecified: boolean = false;
                let secondComparisonValueColumnName: string;

                let secondKPIIndicatorValue: number = NaN;
                let secondKPIIndicatorValueFormat: string;
                let isSecondKPIIndicatorValueSpecified: boolean = false;

                for (const columnName in columnValues) {
                    if (columnValues[columnName]) {
                        const currentColumnName: string = Object.keys(columnValues[columnName])[0];

                        const columnValue: IColumnValue = columnValues[columnName][currentColumnName];
                        const value = columnValue && columnValue.value;
                        const format: string = columnValue && columnValue.format;

                        switch (columnName) {
                            case actualValueColumn.name: {
                                currentValue = value;
                                currentFormat = format;

                                break;
                            }
                            case comparisonValueColumn.name: {
                                comparisonValue = value;
                                comparisonFormat = format;
                                comparisonValueColumnName = currentColumnName;

                                isComparisonValueSpecified = true;

                                break;
                            }
                            case kpiIndicatorIndexColumn.name: {
                                kpiIndicatorIndex = value;

                                isKPIIndicatorIndexSpecified = true;

                                break;
                            }
                            case kpiIndicatorValueColumn.name: {
                                kpiIndicatorValue = value;
                                kpiIndicatorValueFormat = format;

                                isKPIIndicatorValueSpecified = true;

                                break;
                            }
                            case secondComparisonValueColumn.name: {
                                secondComparisonValue = value;
                                secondComparisonValueFormat = format;
                                secondComparisonValueColumnName = currentColumnName;

                                isSecondComparisonValueSpecified = true;

                                break;
                            }
                            case secondKPIIndicatorValueColumn.name: {
                                secondKPIIndicatorValue = value;
                                secondKPIIndicatorValueFormat = format;

                                isSecondKPIIndicatorValueSpecified = true;

                                break;
                            }
                        }
                    }
                }

                this.applyDataToCurrentSeries({
                    axisValue,
                    comparisonFormat,
                    comparisonValue,
                    comparisonValueColumnName,
                    currentFormat,
                    currentValue,
                    currentValueColumnName: series.name,
                    dataRepresentation,
                    isComparisonValueSpecified,
                    isKPIIndicatorIndexSpecified,
                    isKPIIndicatorValueSpecified,
                    isSecondComparisonValueSpecified,
                    isSecondKPIIndicatorValueSpecified,
                    kpiIndicatorIndex,
                    kpiIndicatorValue,
                    kpiIndicatorValueFormat,
                    secondComparisonValue,
                    secondComparisonValueColumnName,
                    secondComparisonValueFormat,
                    secondKPIIndicatorValue,
                    secondKPIIndicatorValueFormat,
                    series,
                });
            }
        }
    }