UNPKG

@grapecity/activereports-react

Version:

ActiveReportsJS components for React

107 lines (106 loc) 4.3 kB
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; }