From 2bed32980d96e4bce71f651559aa37e39eb860fa Mon Sep 17 00:00:00 2001 From: Alan Treadway Date: Fri, 11 Aug 2023 10:32:34 +0100 Subject: [PATCH] AG-9042 - Disable complex object handling for Integrated case. --- .../ag-charts-community/src/chart/chart.ts | 2 +- .../src/chart/data/dataController.ts | 4 ++-- .../ag-charts-community/src/chart/data/dataModel.ts | 12 ++++++++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/charts-community-modules/ag-charts-community/src/chart/chart.ts b/charts-community-modules/ag-charts-community/src/chart/chart.ts index 2940a5e2724..dfb50ab7719 100644 --- a/charts-community-modules/ag-charts-community/src/chart/chart.ts +++ b/charts-community-modules/ag-charts-community/src/chart/chart.ts @@ -759,7 +759,7 @@ export abstract class Chart extends Observable implements AgChartInstance { this.assignSeriesToAxes(); } - const dataController = new DataController(); + const dataController = new DataController(this.mode); const seriesPromises = this.series.map((s) => s.processData(dataController)); await dataController.execute(); await Promise.all(seriesPromises); diff --git a/charts-community-modules/ag-charts-community/src/chart/data/dataController.ts b/charts-community-modules/ag-charts-community/src/chart/data/dataController.ts index 1bf3460eaed..4010398ab15 100644 --- a/charts-community-modules/ag-charts-community/src/chart/data/dataController.ts +++ b/charts-community-modules/ag-charts-community/src/chart/data/dataController.ts @@ -41,7 +41,7 @@ export class DataController { private requested: RequestedProcessing[] = []; private status: 'setup' | 'executed' = 'setup'; - public constructor() {} + public constructor(private readonly mode: 'standalone' | 'integrated') {} public async request< D extends object, @@ -72,7 +72,7 @@ export class DataController { for (const { opts, data, resultCbs, rejects, ids } of merged) { try { - const dataModel = new DataModel(opts); + const dataModel = new DataModel({ ...opts, mode: this.mode }); const processedData = dataModel.processData(data); if (processedData && processedData.partialValidDataCount === 0) { resultCbs.forEach((cb) => cb({ dataModel, processedData })); diff --git a/charts-community-modules/ag-charts-community/src/chart/data/dataModel.ts b/charts-community-modules/ag-charts-community/src/chart/data/dataModel.ts index 1815b266082..67fa96892a9 100644 --- a/charts-community-modules/ag-charts-community/src/chart/data/dataModel.ts +++ b/charts-community-modules/ag-charts-community/src/chart/data/dataModel.ts @@ -230,9 +230,15 @@ export class DataModel< private readonly propertyProcessors: (PropertyValueProcessorDefinition & InternalDefinition)[]; private readonly reducers: (ReducerOutputPropertyDefinition & InternalDefinition)[]; private readonly processors: (ProcessorOutputPropertyDefinition & InternalDefinition)[]; + private readonly mode: 'standalone' | 'integrated'; - public constructor(opts: DataModelOptions) { - const { props } = opts; + public constructor( + opts: DataModelOptions & { + readonly mode?: 'standalone' | 'integrated'; + } + ) { + const { props, mode = 'standalone' } = opts; + this.mode = mode; // Validate that keys appear before values in the definitions, as output ordering depends // on configuration ordering, but we process keys before values. @@ -915,6 +921,8 @@ export class DataModel< buildAccessors(...defs: { property: string }[]) { const result: Record any> = {}; + if (this.mode === 'integrated') return result; + for (const def of defs) { const isPath = def.property.indexOf('.') >= 0 || def.property.indexOf('[') >= 0; if (!isPath) continue;