Skip to content

@sqlrooms/mosaic / DashboardAiAdapter

Type Alias: DashboardAiAdapter ​

DashboardAiAdapter = object

Dashboard adapter with full dashboard panel management capabilities. Extends BaseAiAdapter with dashboard-specific operations.

Properties ​

getPanelIssue? ​

optional getPanelIssue?: (panelId) => ChartRuntimeIssue | undefined

Parameters ​

ParameterType
panelIdstring

Returns ​

ChartRuntimeIssue | undefined


getSelectedTable? ​

optional getSelectedTable?: () => string | undefined

Returns ​

string | undefined


getPanels? ​

optional getPanels?: () => MosaicDashboardPanelConfig[]

Returns ​

MosaicDashboardPanelConfig[]


setSelectedTable ​

setSelectedTable: (tableName) => void | Promise<void>

Parameters ​

ParameterType
tableNamestring

Returns ​

void | Promise<void>

Methods ​

getPanel() ​

getPanel(panelId): { id: string; type: "vgplot"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { chartType: "histogram"; settings: { field?: string; maxBins?: number; color?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "count-plot"; settings: { field?: string; metric: "count" | "aggregate"; valueField?: string; aggregate: "sum" | "max" | "min" | "avg"; sort: "value-desc" | "value-asc" | "label-asc" | "label-desc"; maxBars: number; leftMargin?: number; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "line-chart"; settings: { metric?: "count" | "aggregate"; x?: string; xInterval?: "second" | "minute" | "hour" | "day" | "week" | "month" | "quarter" | "year"; yFields?: object[]; showLegend: boolean; }; lastAggregateYFields?: object[]; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "scatter-plot"; settings: { x?: string; y?: string; size?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "heatmap"; settings: { x?: string; y?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "box-plot"; settings: { x?: string; y?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "custom-spec"; settingsOpen?: boolean; settings: { vgPlotSpec?: unknown; }; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: string; settings: Record<string, unknown>; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; }; } | { id: string; type: "data-table-explorer"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { pageSize?: number; }; } | { id: string; type: string; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: Record<string, unknown>; } | undefined

Parameters ​

ParameterType
panelIdstring

Returns ​

{ id: string; type: "vgplot"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { chartType: "histogram"; settings: { field?: string; maxBins?: number; color?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "count-plot"; settings: { field?: string; metric: "count" | "aggregate"; valueField?: string; aggregate: "sum" | "max" | "min" | "avg"; sort: "value-desc" | "value-asc" | "label-asc" | "label-desc"; maxBars: number; leftMargin?: number; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "line-chart"; settings: { metric?: "count" | "aggregate"; x?: string; xInterval?: "second" | "minute" | "hour" | "day" | "week" | "month" | "quarter" | "year"; yFields?: object[]; showLegend: boolean; }; lastAggregateYFields?: object[]; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "scatter-plot"; settings: { x?: string; y?: string; size?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "heatmap"; settings: { x?: string; y?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "box-plot"; settings: { x?: string; y?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "custom-spec"; settingsOpen?: boolean; settings: { vgPlotSpec?: unknown; }; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: string; settings: Record<string, unknown>; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; }; } | { id: string; type: "data-table-explorer"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { pageSize?: number; }; } | { id: string; type: string; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: Record<string, unknown>; } | undefined


updatePanel() ​

updatePanel(panelId, patch): void | Promise<void>

Parameters ​

ParameterType
panelIdstring
patchPartial<PanelPatch>

Returns ​

void | Promise<void>


removePanel() ​

removePanel(panelId): void | Promise<void>

Parameters ​

ParameterType
panelIdstring

Returns ​

void | Promise<void>


addPanel() ​

addPanel(panel): string | Promise<string>

Parameters ​

ParameterType
panel{ id: string; type: "vgplot"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { chartType: "histogram"; settings: { field?: string; maxBins?: number; color?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "count-plot"; settings: { field?: string; metric: "count" | "aggregate"; valueField?: string; aggregate: "sum" | "max" | "min" | "avg"; sort: "value-desc" | "value-asc" | "label-asc" | "label-desc"; maxBars: number; leftMargin?: number; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "line-chart"; settings: { metric?: "count" | "aggregate"; x?: string; xInterval?: "second" | "minute" | "hour" | "day" | "week" | "month" | "quarter" | "year"; yFields?: object[]; showLegend: boolean; }; lastAggregateYFields?: object[]; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "scatter-plot"; settings: { x?: string; y?: string; size?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "heatmap"; settings: { x?: string; y?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "box-plot"; settings: { x?: string; y?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: "custom-spec"; settingsOpen?: boolean; settings: { vgPlotSpec?: unknown; }; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; } | { chartType: string; settings: Record<string, unknown>; settingsOpen?: boolean; dataPolicy?: { disabled?: boolean; maxRows?: number; reason?: string; }; }; } | { id: string; type: "data-table-explorer"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { pageSize?: number; }; } | { id: string; type: string; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: Record<string, unknown>; }

Returns ​

string | Promise<string>