protected applyDataToCurrentSeries()

in src/converter/data/dataConverter.ts [523:681]


    protected applyDataToCurrentSeries(data: ICurrentSeriesData): void {
        if (!data) {
            return;
        }

        const {
            dataRepresentation,
            series,
            series: { settings },
            axisValue,
            currentValue,
            currentFormat,
            currentValueColumnName,
            comparisonValue,
            comparisonFormat,
            comparisonValueColumnName,
            isComparisonValueSpecified,
            kpiIndicatorIndex,
            isKPIIndicatorIndexSpecified,
            kpiIndicatorValue,
            kpiIndicatorValueFormat,
            isKPIIndicatorValueSpecified,
            secondComparisonValue,
            secondComparisonValueFormat,
            isSecondComparisonValueSpecified,
            isSecondKPIIndicatorValueSpecified,
            secondComparisonValueColumnName,
            secondKPIIndicatorValue,
            secondKPIIndicatorValueFormat,
        } = data;

        const isCurrentValueValid: boolean = settings.currentValue.shouldTreatZeroValuesAsNulls
            ? NumericValueUtils.isValueValid(currentValue)
            : NumericValueUtils.isValueFinite(currentValue);

        if (axisValue !== undefined && axisValue !== null && isCurrentValueValid) {
            this.applyXArguments(series, axisValue, dataRepresentation.type);

            series.axisValue = axisValue;
            series.axisValues.push(axisValue);

            series.currentValue = currentValue;

            series.points[0] = this.updatePointSet(
                series.points[0],
                currentValueColumnName,
                series.settings.currentValue,
                settings.sparklineSettings.isActualVisible,
                axisValue,
                currentValue,
                series.settings.sparklineSettings.actualColor,
                series.settings.sparklineSettings.actualThickness,
                series.settings.sparklineSettings.actualLineStyle,
                dataRepresentation.y,
            );

            series.comparisonValue = NumericValueUtils.isValueValid(comparisonValue)
                ? comparisonValue
                : NaN;

            if (isComparisonValueSpecified) {
                series.points[1] = this.updatePointSet(
                    series.points[1],
                    comparisonValueColumnName,
                    series.settings.comparisonValue,
                    settings.sparklineSettings.isTargetVisible,
                    axisValue,
                    series.comparisonValue,
                    series.settings.sparklineSettings.targetColor,
                    series.settings.sparklineSettings.targetThickness,
                    series.settings.sparklineSettings.targetLineStyle,
                    dataRepresentation.y,
                );
            }

            series.secondComparisonValue = NumericValueUtils.isValueValid(secondComparisonValue)
                ? secondComparisonValue
                : NaN;

            if (isSecondComparisonValueSpecified) {
                series.points[2] = this.updatePointSet(
                    series.points[2],
                    secondComparisonValueColumnName,
                    series.settings.secondComparisonValue,
                    settings.sparklineSettings.isSecondComparisonValueVisible,
                    axisValue,
                    series.secondComparisonValue,
                    series.settings.sparklineSettings.secondComparisonValueColor,
                    series.settings.sparklineSettings.secondComparisonValueThickness,
                    series.settings.sparklineSettings.secondComparisonValueLineStyle,
                    dataRepresentation.y,
                );
            }

            if (settings.sparklineSettings.isActualVisible) {
                DataConverter.applyYArguments(series.y, series.currentValue);
            }

            if (settings.sparklineSettings.isTargetVisible) {
                DataConverter.applyYArguments(series.y, series.comparisonValue);
            }

            if (settings.sparklineSettings.isSecondComparisonValueVisible) {
                DataConverter.applyYArguments(series.y, series.secondComparisonValue);
            }

            series.kpiIndicatorIndex = NumericValueUtils.isValueFinite(kpiIndicatorIndex)
                ? kpiIndicatorIndex
                : NaN;

            if (isKPIIndicatorIndexSpecified) {
                series.points[0].kpiIndicatorIndexes.push(kpiIndicatorIndex);

                if (series.settings.sparklineSettings.isActualVisible
                    && series.settings.sparklineSettings.shouldActualUseKPIColors
                    && series.points[0]
                ) {
                    const currentKPI: IKPIIndicatorSettings = settings
                        .kpiIndicator
                        .getCurrentKPI(kpiIndicatorIndex);

                    const color: string = currentKPI && currentKPI.color
                        || series.points[0].color;

                    series.points[0].colors.push(color);
                }
            }

            series.kpiIndicatorValue = this.getVariance(
                isKPIIndicatorValueSpecified,
                kpiIndicatorValue,
                series.currentValue,
                series.comparisonValue,
            );

            series.secondKPIIndicatorValue = this.getVariance(
                isSecondKPIIndicatorValueSpecified,
                secondKPIIndicatorValue,
                series.currentValue,
                series.secondComparisonValue,
            );

            series.varianceSet[0] = this.updateVariance(
                series.varianceSet[0],
                series.kpiIndicatorValue,
            );

            series.varianceSet[1] = this.updateVariance(
                series.varianceSet[1],
                series.secondKPIIndicatorValue,
            );
        }

        settings.currentValue.setColumnFormat(currentFormat);
        settings.comparisonValue.setColumnFormat(comparisonFormat);
        settings.kpiIndicatorValue.setColumnFormat(kpiIndicatorValueFormat);
        settings.secondComparisonValue.setColumnFormat(secondComparisonValueFormat);
        settings.secondKPIIndicatorValue.setColumnFormat(secondKPIIndicatorValueFormat);
    }