@sqlrooms/mosaic / DashboardToolDeps
Interface: DashboardToolDeps
Dependencies injected into dashboard tool creation functions. Provides the resources and operations needed to create dashboard panels.
Properties
resolveArtifact
resolveArtifact: (
artifactId?,createIfMissing?,context?) =>string
Resolves the dashboard artifact ID. Use this when you only need the artifact and not table information.
Parameters
| Parameter | Type |
|---|---|
artifactId? | string |
createIfMissing? | boolean |
context? | ChartToolExecutionContext |
Returns
string
resolveTable
resolveTable: (
artifactId,tableName?) =>ResolvedTable
Resolves table name and columns for a given dashboard artifact. Use this when you need table-specific information.
Parameters
| Parameter | Type |
|---|---|
artifactId | string |
tableName? | string |
Returns
ResolvedTable
addPanel
addPanel: (
dashboardId,panel) =>string
Parameters
| Parameter | Type |
|---|---|
dashboardId | string |
panel | any |
Returns
string
updatePanel
updatePanel: (
dashboardId,panelId,patch) =>void
Parameters
| Parameter | Type |
|---|---|
dashboardId | string |
panelId | string |
patch | Partial<PanelPatch> |
Returns
void
getDashboard
getDashboard: (
dashboardId) => {id:string;title:string;layoutType:"grid"|"dock";selectedTable?:string;panels: ({id:string;type:"vgplot";title:string;source?: {tableName?:string;sqlQuery?:string; };config: {chartType:"histogram";settings: {field?:string;maxBins?:number; };settingsOpen?:boolean;dataPolicy?: {disabled?: ... | ... | ...;maxRows?: ... | ...;reason?: ... | ...; }; } | {chartType:"count-plot";settings: {field?:string; };settingsOpen?:boolean;dataPolicy?: {disabled?: ... | ... | ...;maxRows?: ... | ...;reason?: ... | ...; }; } | {chartType:"line-chart";settings: {x?:string;xInterval?:"second"|"minute"|"hour"|"day"|"week"|"month"|"quarter"|"year";yFields?: ...[]; };settingsOpen?:boolean;dataPolicy?: {disabled?: ... | ... | ...;maxRows?: ... | ...;reason?: ... | ...; }; } | {chartType:"bubble-chart";settings: {x?:string;y?:string;size?:string; };settingsOpen?:boolean;dataPolicy?: {disabled?: ... | ... | ...;maxRows?: ... | ...;reason?: ... | ...; }; } | {chartType:"heatmap";settings: {x?:string;y?:string; };settingsOpen?:boolean;dataPolicy?: {disabled?: ... | ... | ...;maxRows?: ... | ...;reason?: ... | ...; }; } | {chartType:"box-plot";settings: {x:string;y:string; };settingsOpen?:boolean;dataPolicy?: {disabled?: ... | ... | ...;maxRows?: ... | ...;reason?: ... | ...; }; } | {chartType:"custom-spec";settingsOpen?:boolean;settings: {vgPlotSpec?:unknown; };dataPolicy?: {disabled?: ... | ... | ...;maxRows?: ... | ...;reason?: ... | ...; }; } | {chartType:string;settings:Record<string,unknown>;settingsOpen?:boolean;dataPolicy?: {disabled?: ... | ... | ...;maxRows?: ... | ...;reason?: ... | ...; }; }; } | {id:string;type:"profiler";title:string;source?: {tableName?:string;sqlQuery?:string; };config: {pageSize?:number; }; } | {id:string;type:"text";title:string;source?: {tableName?:string;sqlQuery?:string; };config: {content:string;toolbarOpen:boolean;sourcePanelOpen:boolean; }; } | {id:string;type:string;title:string;source?: {tableName?:string;sqlQuery?:string; };config:Record<string,unknown>; })[];layout:LayoutNode|null;updatedAt:number; } |undefined
Parameters
| Parameter | Type |
|---|---|
dashboardId | string |
Returns
{ id: string; title: string; layoutType: "grid" | "dock"; selectedTable?: string; panels: ({ id: string; type: "vgplot"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { chartType: "histogram"; settings: { field?: string; maxBins?: number; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "count-plot"; settings: { field?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "line-chart"; settings: { x?: string; xInterval?: "second" | "minute" | "hour" | "day" | "week" | "month" | "quarter" | "year"; yFields?: ...[]; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "bubble-chart"; settings: { x?: string; y?: string; size?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "heatmap"; settings: { x?: string; y?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "box-plot"; settings: { x: string; y: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "custom-spec"; settingsOpen?: boolean; settings: { vgPlotSpec?: unknown; }; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: string; settings: Record<string, unknown>; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; }; } | { id: string; type: "profiler"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { pageSize?: number; }; } | { id: string; type: "text"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { content: string; toolbarOpen: boolean; sourcePanelOpen: boolean; }; } | { id: string; type: string; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: Record<string, unknown>; })[]; layout: LayoutNode | null; updatedAt: number; } | undefined
getPanelIssue?
optionalgetPanelIssue?: (dashboardId,panelId) =>ChartRuntimeIssue|undefined
Parameters
| Parameter | Type |
|---|---|
dashboardId | string |
panelId | string |
Returns
ChartRuntimeIssue | undefined
removePanel
removePanel: (
dashboardId,panelId) =>void
Parameters
| Parameter | Type |
|---|---|
dashboardId | string |
panelId | string |
Returns
void
setCurrentArtifact
setCurrentArtifact: (
artifactId) =>void
Parameters
| Parameter | Type |
|---|---|
artifactId | string |
Returns
void
maxDataPoints
maxDataPoints:
number
