in src/converter/data/columnBasedModel/columnBasedModelConverter.ts [83:237]
protected converterStep(options: IConverterStepOptions): void {
const {
dataRepresentation,
columnValues,
identities,
identityQueryName,
columnMapping,
rows,
settings,
settingsState,
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) || undefined;
}
if (NumericValueUtils.isValueDefined(axisValue)) {
if (columnValues[actualValueColumn.name]) {
Object.keys(columnValues[actualValueColumn.name]).forEach((columnName: string, columnIndex: number) => {
if (columnMapping[columnName]) {
const series: IDataRepresentationSeries
= this.getSeriesByDisplayName(
dataRepresentation.series,
dataRepresentation.seriesArray,
[columnName],
columnName,
identities,
columnIndex,
identityQueryName,
rows,
settings,
settingsState,
dataRepresentation.type,
viewMode,
this.createSelectionIdBuilder,
);
const columnValue: IColumnValue = columnValues[actualValueColumn.name][columnName];
const currentValue: number = columnValue && columnValue.value;
const currentFormat: string = columnValue && columnValue.format;
const currentValueColumnName: string = columnName;
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;
Object.keys(columnMapping[columnName]).forEach((roleName: string) => {
const mappedColumnName: string = columnMapping[columnName][roleName];
if (mappedColumnName !== undefined && mappedColumnName !== null && columnValues[roleName]) {
const currentColumnValue: IColumnValue = columnValues[roleName][mappedColumnName];
const value: any = currentColumnValue && currentColumnValue.value;
const format: string = currentColumnValue && currentColumnValue.format;
switch (roleName) {
case comparisonValueColumn.name: {
comparisonValue = value;
comparisonFormat = format;
comparisonValueColumnName = mappedColumnName;
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 = mappedColumnName;
isSecondComparisonValueSpecified = true;
break;
}
case secondKPIIndicatorValueColumn.name: {
secondKPIIndicatorValue = value;
secondKPIIndicatorValueFormat = format;
isSecondKPIIndicatorValueSpecified = true;
break;
}
}
}
});
this.applyDataToCurrentSeries({
axisValue,
comparisonFormat,
comparisonValue,
comparisonValueColumnName,
currentFormat,
currentValue,
currentValueColumnName,
dataRepresentation,
isComparisonValueSpecified,
isKPIIndicatorIndexSpecified,
isKPIIndicatorValueSpecified,
isSecondComparisonValueSpecified,
isSecondKPIIndicatorValueSpecified,
kpiIndicatorIndex,
kpiIndicatorValue,
kpiIndicatorValueFormat,
secondComparisonValue,
secondComparisonValueColumnName,
secondComparisonValueFormat,
secondKPIIndicatorValue,
secondKPIIndicatorValueFormat,
series,
});
}
});
}
}
}