/// import { ILicenseInfoOptions } from '@devexpress/analytics-core/analytics-internal'; import { Dashboard } from '../model/dashboard'; import { AjaxRemoteServiceOptions, FetchRemoteServiceOptions, IExtension } from './common-interfaces'; import { DashboardControl } from './dashboard-control'; export type ExtensionCreator = (dashboardControl: DashboardControl, extensionOptions?: { [index: string]: {}; }) => IExtension; export type ExtensionDictionary = { [index: string]: ExtensionCreator; }; export type ExtensionOptions = { [index: string]: Object | false | ExtensionCreator; }; export declare var defaultExtensions: ExtensionDictionary; export declare var designerExtensions: ExtensionDictionary; export declare var extensionNameMap: { [key: string]: string; }; export type WorkingMode = 'Designer' | 'Viewer' | 'ViewerOnly'; export type LimitVisibleDataMode = 'Designer' | 'DesignerAndViewer' | 'None'; export interface DashboardControlOptions { workingMode?: WorkingMode; initialDashboardId?: string; dashboardId?: string; initialDashboardState?: string; loadDefaultDashboard?: boolean; encodeHtml?: boolean; useNeutralFilterMode?: boolean; limitVisibleDataMode?: LimitVisibleDataMode; showConfirmationOnBrowserClosing?: boolean; resizeByTimer?: boolean; allowMaximizeItems?: boolean; endpoint?: string; ajaxRemoteService?: AjaxRemoteServiceOptions; fetchRemoteService?: FetchRemoteServiceOptions; onInitializing?: (args: DashboardControlArgs) => void; onBeforeRender?: (args: DashboardControlArgs) => void; onDashboardInitializing?: (args: DashboardInitializingArgs) => void; onDashboardInitialized?: (args: DashboardInitializedArgs) => void; onDashboardStateChanged?: (args: DashboardStateChangedArgs) => void; onItemBeginUpdate?: (args: DashboardItemUpdateArgs) => void; onItemEndUpdate?: (args: DashboardItemUpdateArgs) => void; onDashboardBeginUpdate?: (args: DashboardUpdateArgs) => void; onDashboardEndUpdate?: (args: DashboardUpdateArgs) => void; onOptionChanged?: (args: DashboardOptionChangedArgs) => void; dataRequestOptions?: DataRequestOptions; useCardLegacyLayout?: boolean; extensions?: ExtensionOptions | false; nonce?: string; _licenseOptions?: ILicenseInfoOptions; } export interface DashboardOptionChangedArgs { name: keyof T; fullName: string; value: any; } export type DashboardControlEvents = { initializing: DashboardControlArgs; beforeRender: DashboardControlArgs; dashboardInitializing: DashboardInitializingArgs; dashboardInitialized: DashboardInitializedArgs; dashboardStateChanged: DashboardStateChangedArgs; itemBeginUpdate: DashboardItemUpdateArgs; itemEndUpdate: DashboardItemUpdateArgs; dashboardBeginUpdate: DashboardUpdateArgs; dashboardEndUpdate: DashboardUpdateArgs; optionChanged: DashboardOptionChangedArgs; }; export interface DataRequestOptions { itemDataRequestMode?: ItemDataRequestMode; itemDataLoadingMode?: ItemDataLoadingMode; } export type ItemDataLoadingMode = 'Always' | 'OnDemand'; export type ItemDataRequestMode = 'SeparateRequests' | 'BatchRequests'; export type RefreshItemsArgs = string | Array; export type DashboardControlArgs = { component: DashboardControl; }; export type DashboardUpdateArgs = { component: DashboardControl; dashboardId: string; }; export type DashboardItemUpdateArgs = { component: DashboardControl; dashboardId: string; itemName: string; }; export type DashboardInitializedArgs = { component: DashboardControl; dashboardId: string; dashboard: Dashboard; }; export type DashboardStateChangedArgs = { component: DashboardControl; dashboardId: string; dashboard: Dashboard; stateString: string; }; export type DashboardInitializingArgs = { component: DashboardControl; dashboardId: string; dashboard: Dashboard; ready: JQueryPromise; };