Link Chart
Visualizes a Knowledge Graph as a link chart of nodes and relationships, loaded from a Knowledge Graph service and an optional Open Cypher query. It supports multiple layout modes, a basemap backdrop for geographic layouts, and full theme-color customization of nodes, lines, and labels.
At a glance
| Type key | arcgis-link-chart |
| Default size | 8 × 14 (min 4 × 6) |
| Data source | A Knowledge Graph service |
| Emits | — |
| Receives | link-chart-command (apply-cypher, from a connected AI Chat — optionally with a label map) |
| Source | src/widgets/widgets/arcgis-link-chart/ |
Configuration
Core
| Field | Type | Default | Purpose |
|---|---|---|---|
knowledgeGraphItemId | string | "" | Portal item id of the Knowledge Graph (display only). |
knowledgeGraphTitle | string | "" | Display title of the KG item. |
serviceUrl | string | "" | Knowledge Graph service URL. Empty shows the placeholder. |
cypherQuery | string | "" | Optional Open Cypher query. Empty loads the full dataset. |
labelFields | object[] | [] | Starting label overrides — each { type, property } displays that property as the type's node/relationship label. A connected AI Chat can override per type at runtime. |
hideAttribution | boolean | true | Hide the attribution banner. |
mouseWheelZoom | boolean | false | Enable mouse-wheel zoom. |
controls | object | hidden | Placement of zoom, home, layerList. |
basemapSwitcher | object | hidden | placement, defaultLabel, and basemap options. |
layoutSwitcher | object | hidden | placement, appearance ("dropdown" | "menu-bar"), and an optional defaultLayout (null keeps the chart's own default). |
expands | corner[] (max 4) | [] | Corners that host expand containers. |
useThemeColors | boolean | false | Apply a theme-colored renderer to nodes and lines. |
themeRenderer | object | see below | Node/line/label styling, used when useThemeColors is true. |
Theme renderer
When useThemeColors is on, themeRenderer tunes:
- Nodes —
pointSize(1–60 px, default 12),pointFillColor,pointOutlineColor,pointOutlineWidth(0–10, default 1.5). - Lines —
lineColor,lineWidth(0–10, default 1.5),lineStyle(solid, dash, dot, …). - Node labels —
nodeLabelSize(6–48 px),nodeLabelColor,nodeLabelHaloColor,nodeLabelHaloSize(0–6),nodeLabelOffsetX/Y(−50–50). - Relationship labels — the same set of options prefixed
relationshipLabel….
Config panel
- Data — pick the Knowledge Graph item (which fetches its service URL), enter an optional Cypher query, and trigger Load Data. The selected item shows a preview card (thumbnail, title, summary, and an open-in-portal link); see Picking an ArcGIS data source. Below the query, Labels lets you add one row per graph type, pairing an entity or relationship type name with the property to display as its label. These are the starting labels and apply live; a connected AI Chat can override them per type. Empty rows and types without a row keep the chart's default label.
- Appearance — place controls (Zoom, Home, Layers, Basemaps, Layouts), choose the layout switcher style, set a default layout applied on load, edit basemap options, and toggle/tune theme colors.
Cross-widget actions
The Link Chart can receive an apply-cypher command on the
link-chart-command effect from a connected AI Chat widget.
When the chat is connected to this chart's Knowledge Graph, the backend
translates a question into an openCypher query and pushes it back as
apply-cypher; the chart re-seeds its base-cypher-query and regenerates from
the matching subgraph. The command may also carry a label map (entity or
relationship type → property), derived by the analyst from the graph's authoring
metadata; the chart then labels each matching node and relationship by that
property (via an Arcade $feature expression) instead of its default field,
independent of the useThemeColors styling. These updates merge over the
labelFields starting labels from config — the AI's per-type values win, while
types it doesn't mention keep their configured label. It emits no actions of its
own. See Cross-widget actions.
Notable behavior
- Unconfigured by default — it prompts for a Knowledge Graph item and a Load Data action before rendering.
- The Cypher query runs when the chart is generated; later config changes don't re-query live data.
- The basemap switcher is only meaningful in a geographic layout.
- Theme colors default to the app's dark surface palette.