Fix #660 - Prevent Account subpanel actions from failing with European number format

Modified DataTypeSeriesMapper to use formatter.toInternalFormat() before parseFloat() to properly handle custom thousands/decimal separators. This resolves chart rendering failures that prevented subpanel actions from working for non-admin users.
This commit is contained in:
Moises E. Puyosa 2025-07-22 08:48:54 -05:00 committed by Jack Anderson
parent 25f7deb700
commit c40cb57def

View file

@ -29,6 +29,7 @@ import {DataTypeUnitConverter} from '../../../../unit-converters/data-type.unit-
import {SeriesVisitor} from '../series-traverser.service';
import {DataItem} from '../../../../../common/containers/chart/chart.model';
import {ObjectMap} from '../../../../../common/types/object-map';
import {DataTypeFormatter} from '../../../../formatters/data-type.formatter.service';
@Injectable({
providedIn: 'root'
@ -36,7 +37,7 @@ import {ObjectMap} from '../../../../../common/types/object-map';
export class DataTypeSeriesMapper implements SeriesVisitor {
constructor(protected converter: DataTypeUnitConverter) {
constructor(protected converter: DataTypeUnitConverter, protected formatter: DataTypeFormatter) {
}
visit(item: DataItem, options?: ObjectMap): void {
@ -48,7 +49,9 @@ export class DataTypeSeriesMapper implements SeriesVisitor {
return;
}
const numberValue = parseFloat(item.value.toString());
// Convert from user format to internal format before parsing to handle custom separators
const internalValue = this.formatter.toInternalFormat(dataType, item.value.toString());
const numberValue = parseFloat(internalValue.toString());
if (!isFinite(numberValue)) {
return;