@grapecity/activereports-react
Version:
ActiveReportsJS components for React
107 lines (106 loc) • 4.3 kB
TypeScript
import { Component } from 'react';
import * as ArDesignerNs from '@grapecity/activereports/reportdesigner';
import { Report, NewReportInfo, WhenDirty, DocumentChangedEventArgs } from '@grapecity/activereports/reportdesigner';
import { ResourceLocator } from '@grapecity/activereports/core';
export interface DesignerProps {
/** Sets the current report. */
report?: ArDesignerNs.Report;
/**
* Called on open report.
* @returns Promise with report info or 'undefined' if operation was cancelled.
*/
onCreate?: () => Promise<ArDesignerNs.Report | ArDesignerNs.NewReport | undefined>;
/**
* Called on opening report.
* @returns Promise with report info or 'undefined' if operation was cancelled.
*/
onOpen?: () => Promise<ArDesignerNs.Report | undefined>;
/**
* Called on saving report.
* @param options Current report info.
* @returns Promise with new report info if report was saved or 'undefined' if operation was cancelled.
*/
onSave?: (options: ArDesignerNs.SaveReportInfo) => Promise<ArDesignerNs.SaveResult | undefined>;
/**
* Called on saving report as new.
* @param options Current report info.
* @returns Promise with new report info if report was saved or 'undefined' if operation was cancelled.
*/
onSaveAs?: (options: ArDesignerNs.SaveNewReportInfo) => Promise<ArDesignerNs.SaveAsResult | undefined>;
/**
* Called on render current report.
* @param report Current report info.
* @param resourceLocator ResourceLocator instance.
*/
onRender?: (report: ArDesignerNs.ReportDefinition, resourceLocator?: Partial<ResourceLocator>) => Promise<void>;
/**
* Called on open custom file menu.
*/
onOpenFileMenu?: () => void;
/** Sets the list of available images. */
imageList?: ArDesignerNs.ImageResourceInfo[];
/** Sets the list of available reports. */
reportList?: ArDesignerNs.ReportResourceInfo[];
/** Sets the list of available master reports. */
masterReportList?: ArDesignerNs.ReportResourceInfo[];
/** Sets the list of available themes. */
themeList?: ArDesignerNs.ThemeResourceInfo[];
/** Sets the list of datasource templates. */
dataSources?: ArDesignerNs.DataSourceTemplate[];
/** Sets the handler for documentChanged event. */
documentChanged?: (args: DocumentChangedEventArgs) => void;
/**
* Called before designer initialization.
* @returns DesignerConfig to initialize designer instance.
*/
onInit?(): ArDesignerNs.DesignerConfig;
}
export type ReportInfo = ArDesignerNs.ReportInfo;
export type DesignerCommand = ArDesignerNs.DesignerCommand;
export { ColorThemes } from '@grapecity/activereports/reportdesigner';
export type ColorTheme = ArDesignerNs.ColorTheme;
export declare class Designer extends Component<DesignerProps, {}> {
private _host;
private _designer?;
private _eventsRegistry;
componentDidMount(): Promise<void>;
componentDidUpdate(prevProps: DesignerProps): Promise<void>;
private areDeepEqual;
private isReportDef;
private shouldReportUpdate;
private applyProps;
/**
* Sets report.
* @param report Report info to load.
* @param whenDirty Action to perform in case of 'dirty' report.
* @param isDirtyInitial Initial value for 'dirty' state after load.
*/
setReport(report: Report, whenDirty?: WhenDirty, isDirtyInitial?: boolean): Promise<void>;
/**
* Gets report.
* @returns Promise with current report information.
*/
getReport(): Promise<ReportInfo>;
/**
* Creates report.
* @param reportInfo Report info to load.
* @param whenDirty Action to perform in case of 'dirty' report.
*/
createReport(reportInfo: NewReportInfo, whenDirty?: WhenDirty): Promise<void>;
/**
* Process command.
* @param cmd Command name.
*/
processCommand(cmd: DesignerCommand): Promise<void>;
/**
* Returns focus to Designer.
*/
focus(): void;
/**
* Gets API to manipulate designer.
*/
getEditorAPI(): Promise<ArDesignerNs.EditorAPI>;
getPanelsAPI(): Promise<ArDesignerNs.PanelsAPI>;
getNotificationsAPI(): Promise<ArDesignerNs.NotificationsAPI>;
render(): JSX.Element;
}