UNPKG

@looker/extension-sdk

Version:
90 lines (89 loc) 2.34 kB
import type { IQuery } from '@looker/sdk'; export type TileHostDataChangedCallback = (tileHostData: Partial<TileHostData>) => void; export declare enum DashboardRunState { UNKNOWN = "UNKNOWN", RUNNING = "RUNNING", NOT_RUNNING = "NOT_RUNNING" } export interface TileHostData { isExploring?: boolean; dashboardId?: string; elementId?: string; queryId?: string; querySlug?: string; dashboardFilters?: Filters; dashboardRunState?: DashboardRunState; isDashboardEditing?: boolean; isDashboardCrossFilteringEnabled?: boolean; filteredQuery?: IQuery; lastRunSourceElementId?: string; lastRunStartTime?: number; lastRunEndTime?: number; lastRunSuccess?: boolean; } export interface Pivot { key: string; is_total: boolean; data: { [key: string]: string; }; metadata: { [key: string]: { [key: string]: string | Link[]; }; }; labels: { [key: string]: string; }; sort_values?: { [key: string]: string; }; } export interface Cell { [key: string]: any; value: any; rendered?: string; html?: string; links?: Link[]; } export interface Link { label: string; type: string; type_label: string; url: string; } export interface PivotCell { [pivotKey: string]: Cell; } export interface Row { [fieldName: string]: PivotCell | Cell; } export interface TileError { title: string; message: string; group: string; } export interface CrossFilterOptions { pivot: Pivot; row: Row; } export type DrillMenuOptions = any; export interface Filters { [key: string]: string; } export interface TileSDKInternal extends TileSDK { tileHostDataChanged: (hostData: Partial<TileHostData>) => void; } export interface TileSDK { tileHostData: TileHostData; addError: (error: TileError) => void; clearError: () => void; addErrors: (...errors: TileError[]) => void; clearErrors: (group?: string) => void; openDrillMenu: (options: DrillMenuOptions, event?: MouseEvent) => void; toggleCrossFilter: (options: CrossFilterOptions, event?: MouseEvent) => void; runDashboard: () => void; stopDashboard: () => void; updateFilters: (filters: Filters, run?: boolean) => void; openScheduleDialog: () => Promise<void>; }