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