Problem
With the new Grid Multi-Body architecture, cells (GridRow) were suffering from massive duplication, generating O(TotalColumns) DOM nodes for every row regardless of their assigned sub-grid container.
This occurred because src/grid/Row.mjs was retrieving its column configuration array (mountedColumns) correctly from its localized columnPositions, but indexed those positions directly into the global gridContainer.columns collection.
For instance, the bodyEnd sub-grid processing [0, 0] would query globalColumns.getAt(0), forcefully rendering the locked: 'start' activity field in its own body and triggering missing event listener target errors (target node not found: neo-sparkline-78__wrapper).
Solution
- Rewired
GridRow logic across all rendering passes (pooling and permanent cells) to safely extract the contextual dataField from the localized columnPositions.
- Extracted the true column reference via
columns.get(columnPosition.dataField) mapping.
- This completely bounds column generation strictly to the explicit assignment rules for each respective sub-grid section (Start, Center, End).
Problem
With the new Grid Multi-Body architecture, cells (
GridRow) were suffering from massive duplication, generating O(TotalColumns) DOM nodes for every row regardless of their assigned sub-grid container.This occurred because
src/grid/Row.mjswas retrieving its column configuration array (mountedColumns) correctly from its localizedcolumnPositions, but indexed those positions directly into the globalgridContainer.columnscollection.For instance, the
bodyEndsub-grid processing[0, 0]would queryglobalColumns.getAt(0), forcefully rendering thelocked: 'start'activityfield in its own body and triggering missing event listener target errors (target node not found: neo-sparkline-78__wrapper).Solution
GridRowlogic across all rendering passes (pooling and permanent cells) to safely extract the contextualdataFieldfrom the localizedcolumnPositions.columns.get(columnPosition.dataField)mapping.