Configuration Components Table Widget

The widget’s configuration schema is defined in src/index.ts and exposed via the widget SDK. Below are the available options, their purpose, and defaults.

Options

  • Font Size: CSS font size for the table text.

    • Key: fontSize

    • Type: string

    • Default: "0.8em"

  • Devices (rows): Full Tango device paths with an optional Tango DB selector per row.

    • Key: devices

    • Type: Array<{ endpoint: TANGO_DB, attribute: string }>

    • Default: predefined LOW devices

    • Example: { "endpoint": "", "attribute": "low-tmc/central-node/0" }

  • Attributes (columns): Attribute names to display as columns (e.g., AdminMode, State, ObsState, HealthState).

    • Key: attributes

    • Type: string[]

    • Default: []

  • Column Names (optional): Optional display names aligned with attributes by position. Empty entries fallback to the matching attribute name.

    • Key: columnNames

    • Type: string[]

    • Default: []

    • Example: if attributes=["State","HealthState"] and columnNames=["Lifecycle",""], headers are Lifecycle and HealthState.

  • Row Labels (optional): Optional display labels aligned with the devices list.

    • Key: labels

    • Type: string[]

    • Default: []

    • If omitted, the widget derives a label from the device name (last path segment).

  • Use Live Data (subscribe): If enabled, uses WebSocket subscriptions for real-time updates. If disabled, uses HTTP queries at the dashboard refresh rate.

    • Key: useLiveData

    • Type: boolean

    • Default: true

  • Show Enum Labels: Translate numeric enum values to labels using GraphQL metadata. When disabled, shows raw values.

    • Key: useEnumLabels

    • Type: boolean

    • Default: true

  • Show Timestamp Column: Show a per-row timestamp column (latest timestamp across visible attributes).

    • Key: showTimestamp

    • Type: boolean

    • Default: false

  • Time column format: Select a common display format for the Timestamp column.

    • Key: timeColumnFormat

    • Type: string (dropdown)

    • Allowed values: "{24h}", "{time}", "{timefull}", "{iso}"

    • Default: "{24h}"

  • Column widths: Persisted per-column widths managed automatically when resizing headers.

    • Key: columnWidths

    • Type: Record<string, number>

    • Default: {}

    • Managed automatically and hidden from the standard settings form.

  • Brush Value Match: Controls how advanced brush expressions such as value: "ON" are matched in this widget.

    • Key: brushMatchMode

    • Type: "partial" | "full"

    • Default: "partial"

    • partial: substring match (ON matches RUNNING because it contains on)

    • full: exact match for value: terms (ON matches only ON)

  • Hover Attributes (positional): For each attributes[i], optionally show another attribute’s value when hovering that cell. These can be attributes not present in the visible columns.

    • Key: hoverAttrs

    • Type: string[]

    • Default: []

    • Example: ["Status", "Status", "Status", "Status"]

Notes

  • You can mix default and endpoint-prefixed devices in the same table.

  • Enum label translation is best-effort; when metadata is unavailable or useEnumLabels is false, raw values are shown.

  • Known state-like labels render as colored chips for readability.

  • Column auto-fit is driven by the shared widget layout measurement, so the table fills the available width before falling back to horizontal scrolling.

  • Auto-fit uses the available layout width without enforcing header-label minimums; persisted manual column widths still override auto-fit.