For the complete documentation index, see llms.txt. This page is also available as Markdown.

Dynamic Grid

Field Configuration & Background Color Guide

The Wave Dynamic Grid lets a single grid adapt its columns per record. Instead of building a separate grid for every field requirement, you define one grid and then drive what it shows using a JSON configuration stored on the parent record.

How It Works

1

Define your JSON config on the parent record

Include a 'fields' array that lists every column you want to show, with its rules and settings.

2

Grid loads and reads the config

When the grid component renders, it reads the JSON and builds the columns on the fly.

3

Users see the right fields

Only the configured columns appear in the right order, with the right access rules applied.

Field Access Types

Each field in the configuration is assigned one of the following access types:

Access Type
Behavior

Mandatory

Field must be filled in. Displayed with a red cell background when empty.

Read-Only

Field is visible but cannot be edited in the grid.

Read/Write

Field is fully editable.

Good to know

If a user makes changes (like filters or rules) after a config is applied, a personal copy is created to preserve those. When the parent record config is updated and a hard refresh is done, the grid honours the latest JSON.

Error handling

Field Configuration JSON

The config is a JSON object with two required properties: mode and at least one entry in the fields array with a valid id. The mode property controls how the grid handles existing fields. All other field properties are optional. If omitted, the existing configuration is used; if included with an invalid value, the entire field is dropped.

Append Mode vs Replace Mode

Set the mode property to control whether the JSON adds on top of the existing grid or fully replaces it.

➕ "mode": "append"
🔄 "mode": "replace"

Existing fields stay. Any field in the JSON that matches an existing one gets updated; any new field gets added.

Use when you want to add or tweak a few columns without touching the rest.

Removes all existing fields. Only the fields in the JSON are shown.

Use when you want to define the exact set of columns; no more, no less.

➕ Append mode
🔄 Replace mode

What happens to existing fields

All existing fields are kept. The JSON either updates a matching field (by ID) or adds a new one.

All existing fields are removed. Only the fields defined in the JSON are shown.

New field in JSON (not in grid yet)

Added to the grid.

Added to the grid.

Field in JSON that already exists

Updated with the properties defined in the JSON.

Replaced with the properties defined in the JSON.

Field in grid but not in JSON

Kept — untouched.

Removed.

Sequence / ordering

JSON sequence is honored. Fields without a sequence are placed last by JSON order.

JSON sequence is honored. Fields without a sequence are placed last by JSON order.

Typical use case

Add or update a few columns without disturbing the rest of the grid.

Define the exact set of columns to show; no more, no less.

Append Mode — Example

Append mode adds and updates fields in an existing grid while preserving the current configuration. It allows you to add new fields, modify existing field settings, and reorder fields without recreating the entire grid.

Result: The existing grid fields are retained. The Name fields are updated, Quantity is added as a new field, and the Product field is hidden. The field order is updated according to the specified sequence values.

Before Append
After Append

Replace Mode — Example

Replace mode replaces the existing grid configuration with the fields specified in the configuration. Any existing fields that are not included in the configuration are removed, and the grid is rebuilt based on the provided field definitions and settings.

Result: All original fields are removed and replaced with the fields defined in the configuration. The grid displays four fields because the Product field is configured as hidden. The field order is updated according to the specified sequence values.

Before Replace
After Replace

Property Reference

id

String · Required — Must match the Salesforce field API name, case-sensitive. Fields with a missing or empty id is dropped.

label

String · Optional — Overrides the column header text. If invalid, the field is dropped.

isReadOnly

Boolean · Optional — Show the field but block editing. If invalid, the field is dropped.

isRequired

Boolean · Optional — Require a value before the row saves. If invalid, the field is dropped.

isHidden

Boolean · Optional — Hide the field from the grid entirely. If invalid, the field is dropped.

sequence

Integer > 0 · Optional — Column position. If provided, it is honored; if omitted, the field is placed last based on its order in the JSON

backgroundColor

Hex string · Optional — Column background color. Snaps to the nearest theme color if exact match not found.

JSON Format

The first object below is a minimal configuration (inherits all settings); the second specifies every property explicitly. When passed to the component, this object must be serialised as a JSON string.

Background Color Support

The backgroundColor property lets you set a column background using any hex code. If the hex doesn't match a theme color exactly, Wave automatically snaps it to the closest match.

Before
After

Rule Precedence

If a background color and a conditional formatting rule are both applied to the same column, the rule takes precedence and the background color is overridden for rows where the rule condition is met.

Rules always take precedence over backgroundColor. The configured background color remains visible for rows where no rule condition is triggered.

Setting a Background Color

Set the backgroundColor property to any valid hex code:

If #FFD700 isn't in the theme palette, Wave picks the nearest available color automatically — you don't need to do anything.

Supported Theme Colors

These are the exact hex codes that are honoured without snapping. Editable and read-only fields use separate palettes.

If the specified hex code does not exactly match a color in the available palette, the closest matching color from the palette is applied automatically. Exact hex codes are honored only for Valorx theme colors.

Coral

#FFD8DE

#FFD1D7

#FFCDE8

#FFB8DE

#FFA8CC

Pink

#FFD6FA

#FFC7F3

#FFBDF8

#FBCCFF

#F5B8FF

Sunset

#F5DDD6

#F9C8BE

#FFC2BC

#F0C4C4

#FFADA6

Yellow

#FEEDBF

#FFF0B3

#FFE8A0

#FFE091

#FFD4AE

Lime

#EEF5C4

#F0F9A8

#FAFFBE

#E4EEAA

#E6FFC7

Green

#DDE5CC

#D5E5CC

#D4EBCA

#C8F0C4

#C7EFAF

Teal

#BEE8D6

#CFEFE1

#D6F5DF

#C7FFE1

#AEFFD4

Mint

#D6F7F7

#C5F0F0

#C4F0F0

#AFEFEF

#9FE8E8

Aqua

#D6F0F8

#C8EBFC

#C4E8F0

#B8E4F2

#ADE0EE

Blue

#E2EDFF

#D6E1F5

#CFDEFA

#D1DEFF

#BDD4FF

Purple

#E9EAFF

#D5DAFF

#C7CDFF

#B4BCFF

#A8B2FF

Violet

#E7DAFC

#EBD6F5

#E0C7FF

#D2B8FD

#C3C4F0

Cool Tan

#F5EFE0

#F2EAD2

#EDE4C5

#E8DCBA

#E0D7B8

Warm Tan

#F7EDD0

#F3E5BF

#EEDCAC

#E8D49A

#F0D090

Cool Gray

#D9DBE0

#E8E9F4

#DCDDED

#CDD0E4

#C4C7DA

Warm Gray

#E4E1DC

#D8D6D2

#CECAC4

#C9C9C9

#BFBCB8

Gray (Read-only)

#F2F2F2

#ECEFEC

#E5E5E5

#D8D8D8

#C9CACE

Cool Gray (Read-only)

#F2EFF0

#EFF3ED

#E3E7E5

#DEE5E9

#A8B4BC

Warm Gray (Read-only)

#EEEBF1

#E5E3E5

#DEDBD3

#C8C0B4

#A09080

Passing Configuration to the Valorx Grid Component

Both the Aura grid and the LWC grid accept the configuration through the gridConfig property. Bind it to an attribute or property that holds your serialized JSON string. The grid re-renders automatically when the value changes.

Aura Grid

Component name: (valorxwave:ValorxRapidGrid)

LWC Grid (valorxGrid)

Component name (managed package, subscriber org): c-valorxwave-valorx-grid

If a previously saved configuration is loaded on init and assigned to gridConfig, the grid applies it automatically when the component renders.

Runtime Updates via Lightning Message Service (LMS)

If a previously saved configuration is loaded on init and assigned to gridConfig, the grid applies it automatically when the component renders.

Chanel Name: valorxwave__callbackMessageChannel__c

Message Payload

Property
Type
Description

value

String

Serialised JSON configuration.

status

String

SUCCESS or ERROR.

data

String

Set to RowActionCompleted to trigger a grid update.

Example

Important

Last updated

Was this helpful?