import { FilterGroup } from '@luzmo/dashboard-contents-types'; import { DashboardExportType } from '../methods/export-dashboard'; import { SendExportEmailType } from '../methods/send-export-email'; import { AccessibleDashboard, AddFilters, BrowserCheckKey, DashboardContentParams, DashboardDimensions, DashboardEditMode, DashboardInputs, DashboardPromises, ExportDashboard, ItemData, PartialRecord, ScreenMode, SetEditMode, SetPreview, SetSelectedData } from './common.model'; import { IframeStyles } from './styles.model'; import { SupportedLanguage } from './translation.model'; import { CombinedSelectedDataInput } from './viz-items'; export interface CommonLuzmoDashboard extends DashboardInputs { libVersion?: string; promises?: DashboardPromises; params?: DashboardContentParams; iframeLoaded?: boolean; loaderSize?: number; borderWidth?: number; minHeight?: number; iframeWidth?: string; iframeHeight?: string; error?: boolean; browserNotSupported?: BrowserCheckKey[]; dimensions?: DashboardDimensions; currentScreenMode?: ScreenMode; iframeStyle?: IframeStyles; currentAuthKey?: string; currentAuthToken?: string; updateComplete?: Promise; } export interface NgxLuzmoDashboard extends CommonLuzmoDashboard { dashboardReference?: HTMLElement; } /** * @deprecated Will be removed in next major release. Use "WebComponentLuzmoDashboard" instead. */ export interface ES6LuzmoDashboard extends CommonLuzmoDashboard { } export interface WebComponentLuzmoDashboard extends CommonLuzmoDashboard { } export interface VueLuzmoDashboard extends CommonLuzmoDashboard { } export type LuzmoDashboard = NgxLuzmoDashboard | WebComponentLuzmoDashboard | VueLuzmoDashboard; export interface LuzmoElement extends HTMLElement { exportDashboard(format?: DashboardExportType): Promise; getAccessibleDashboards(): Promise; getDashboards(): Promise; getData(itemId: string): Promise; getFilters(): Promise; refreshData(itemId?: string): Promise; reloadDashboard(): Promise; sendExportEmail(type: SendExportEmailType, subject?: PartialRecord, message?: PartialRecord): Promise; setAuthorization(key: string, token: string): Promise; setEditMode(editMode: DashboardEditMode): Promise; setPreview(preview: boolean): Promise; addFilters(itemId: string, filters: FilterGroup[]): Promise; setSelectedData(itemId: string, filters: K): Promise; }