@grapecity/activereports-vue
Version:
ActiveReportsJS components for Vue
141 lines (140 loc) • 6.53 kB
TypeScript
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 {};