The Client components manage the main resources and constructs used in Revgrid. Each component maintains its state and exposes methods which allow dependent components or behaviors to update its state. The diagram below shows the dependency between components. Components are dependent on components below them where linked.
Canvas
Handles interactions with the grid's canvas HTML element.
Columns Manager
Manages the structure, visibility, sizing, and settings of columns in the grid, ensuring that the grid view and data schema remain synchronized.
Subgrids Manager
Manages all subgrids within the grid component.
View Layout
Responsible for managing the visual layout of the grid, including the arrangement and sizing of rows and columns, scroll positions, and mapping between data and view coordinates.
Focus
Manages cell focus and cell editing within a grid component.
Mouse
Manages mouse interactions for the grid component.
Scroller (Horizontal & Vertical)
Maintains scroll state, dimensions, and input synchronization between view layout and visual scroll affordances.
Selection
Manages selection logic for a grid component.
Renderer
Consumes view/layout state and painters to draw visible cells efficiently onto the canvas.