UNPKG

@grapecity/activereports-vue

Version:

ActiveReportsJS components for Vue

141 lines (140 loc) 6.53 kB
import { Rdl, rdlxParams } from '@grapecity/activereports/core'; import * as ArViewerNs from '@grapecity/activereports/reportviewer'; import { LoadResult, SearchOptions, CancellationToken, SearchStatus, SearchResult, ExportResult, FontDescriptor } from '@grapecity/activereports/reportviewer'; declare type UnregisterHandler = () => any; export declare type IReport = Rdl.Report | string; export declare type OpenReportInfo = { /** Report URI to be loaded into viewer. */ Uri?: string; /** Report parameters */ Params?: { [name: string]: rdlxParams.ParameterVariant[]; }; }; export interface ViewerProps { availableExports: string[]; mouseMode?: ArViewerNs.ViewerMouseMode; renderMode?: ArViewerNs.ViewerRenderMode; viewMode?: ArViewerNs.ViewerViewMode | ArViewerNs.ViewMode; zoom?: ArViewerNs.ViewerZoomMode; fullscreen?: boolean; toolbarVisible?: boolean; sidebarVisible?: boolean; language?: string; exportsSettings?: Record<string, ArViewerNs.ExportSettings>; /** * @deprecated Use panelsLayout instead. * * Location of panels. Cannot be changed on the fly. */ panelsLocation?: ArViewerNs.PanelsLocation; /** Layout of panels bar. Cannot be changed on the fly. */ panelsLayout?: ArViewerNs.PanelsLocation; /** Parameters panel location. */ parameterPanelLocation?: ArViewerNs.ParameterPanelLocation; /** Parameters panel behaviour. */ showParametersOnOpen?: ArViewerNs.ShowParametersOnOpen; /** Enables report data memoization if set to "true". */ memoizeData?: boolean; toolbarLayout?: ArViewerNs.ToolbarLayout; errorHandler?: ArViewerNs.Viewer['errorHandler']; /** Sets the report to open on component load. * * ```javascript * <Viewer report={{ Uri: "data-handlers/products" }} /> * ``` */ report?: OpenReportInfo; } export interface ViewerMethods extends Record<string, Function> { /** * Opens report from file or as definition (json string)). * * ```javascript * <Viewer ref = "viewer" ... > * viewer.open('report.json'); * ``` * * @param report The report template. Can be report URI, or report definition, or instance of PageReport class. * @param settings Additional settings for report (name, parameters). */ open(report: IReport, settings?: Partial<ArViewerNs.ReportSettings>): Promise<LoadResult>; /** * Exports currently displayed report to specified output format. Returns object which contains result data as blob object | string and download function. So you could either use this blob object or download file immediately. Please note that you can specify settings in PDF export as plain list (like **{title: 'Title', author: 'Author Name', ownerPassword: '1'}** etc... * * ```javascript * var options = {filename:"Invoice List"}; * var cancelCallback = function(){ * return false; // continue export. Return true to cancel export process * } * viewer.export('pdf', options, {cancel: cancelCallback }).then(result => doSmthWithBlob(result.data)); * //or you can download file * viewer.export('pdf', options, {cancel: cancelCallback }).then(result => result.download('Invoice List')); * ``` * * @param format Export format identifier. One of 'pdf', 'xlsx', 'html', 'tabular-data'. * @param settings Format specific export settings. * @param params Additional export customization. */ export(format: string, settings: Record<string, string | boolean | number>, params?: { cancel?: () => boolean; }): Promise<ExportResult>; /** * Resets current viewer document */ resetDocument(): Promise<void>; /** * Prints currently displayed report. */ print(): void; /** Gets the viewer component instance. */ Viewer(): ArViewerNs.Viewer; /** Gets current page number (1-based). Returns 0 if no document loaded. */ currentPage(): number; /** Gets the total number of pages available in report. */ pageCount(): number; /** Provides access to the "history" API. */ history(): ArViewerNs.HistoryApi; /** Gets the toolbar API */ toolbar(): ArViewerNs.Toolbar; /** Navigates to the first page. */ goToFirstPage(): void; /** Navigates to the previous page. */ goToPrevPage(): void; /** Navigates to the next page. */ goToNextPage(): void; /** Navigates to the last page. */ goToLastPage(): void; /** Navigates to the specified page (starting from 1). */ goToPage(pageNumber: number): void; /** Performs backToParent action which will return user to parent report. */ backToParent(): void; /** Performs refresh operation in report (re-render report). */ refresh(): void; /** Gets **true** if backToParent command is applicable to current document. */ canBackToParent(): boolean; /** * Register specified fonts in CSS and pdf export. Helps display export correctly on machines where fonts can be missed. */ registerFont(...fonts: FontDescriptor[]): void; /** * Performs search operation in currently rendered report. Allows you to create your own custom search pane. */ search(options: SearchOptions, resultFn: (result: SearchResult) => void, progressFn?: (progress: { pageIndex: number; pageCount: number | null; }) => void, cancel?: CancellationToken): Promise<SearchStatus>; /** * Highlights the search result returned by a search method. */ highlight(result: SearchResult | null): Promise<void>; } export declare type ViewerType = ViewerProps & ViewerMethods; declare type InstanceVars = { control: ArViewerNs.Viewer; disposables: UnregisterHandler[]; }; export declare const Viewer: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{}> & InstanceVars, ViewerMethods, {}, import("@vue/composition-api").ComponentPropsOptions<import("@vue/composition-api").Data>, import("@vue/composition-api").ExtractPropTypes<import("@vue/composition-api").ComponentPropsOptions<import("@vue/composition-api").Data>>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{} & {}, import("@vue/composition-api").ShallowUnwrapRef<{}>, InstanceVars, {}, ViewerMethods, {}, {}, {}, {} & {}, { [x: number]: string; } | {}, true>); export {};