UNPKG

@grapecity/gcpdfviewer

Version:
68 lines (67 loc) 3.46 kB
/** @hidden */ /** */ /// <reference path="../../../vendor/react/react.d.ts" /> //@ts-ignore import { MouseEvent } from 'react'; import { PluginModel, ReportViewerCmd, ReportViewerCommandStatus, DocumentMoniker } from '../api'; import { DocumentViewer } from "../components"; import { SearchResult } from '../features/search'; import { CancellationToken } from './CancellationToken'; import { ViewerAction } from '../api/PluginModel'; import { LoadResult } from './SessionState'; export declare type ViewerMouseEvent = MouseEvent; /** Encapsulates viewer state and isolates it from main control. */ export declare class ViewerState { readonly raiseChangedEvent: (model: DocumentViewer.Model) => void; readonly raiseOpenDocumentEvent: (document: PluginModel.IDocument | null) => void; readonly raiseOpenDocumentViewEvent: (document: PluginModel.IDocumentView | null) => void; readonly onDocumentProgress: (view: PluginModel.ProgressMessage) => void; readonly errorSink: PluginModel.IReportError; readonly viewerState: PluginModel.IStateBinder<DocumentViewer.Model>; constructor(raiseChangedEvent: (model: DocumentViewer.Model) => void, raiseOpenDocumentEvent: (document: PluginModel.IDocument | null) => void, raiseOpenDocumentViewEvent: (document: PluginModel.IDocumentView | null) => void, onDocumentProgress: (view: PluginModel.ProgressMessage) => void, errorSink: PluginModel.IReportError, viewerState: PluginModel.IStateBinder<DocumentViewer.Model>); private _plugin; private _session; private readonly _settingsStore; private readonly _viewerStore; /** Gets the view settings */ get viewState(): DocumentViewer.Model; get viewSettings(): DocumentViewer.ViewSettings; get isDocumentOpened(): boolean; get documentView(): PluginModel.IDocumentView | null; updateUi: (msg: DocumentViewer.SettingsMsg) => void; toggleNarrowScreen: (isNarrow?: boolean | undefined) => void; highlight: (result: SearchResult | null) => Promise<void>; setPlugin(plugin: PluginModel.IPluginModule<PluginModel.ViewerEvent, any>): void; private onChangeDocument; private onChangeDocumentView; private getContext; resolveAction: (event: ViewerMouseEvent) => any; processAction: (action: ViewerAction) => boolean; private processEvent; /** Seamless report change: 1) create new session, but don't put it to viewer state yet 2) load document into newSession to get newSession.document 3) execute newSession.run() to generate newSession.documentView 4) set newSession to viewerState */ private loadDocumentAndSwapSession; handleViewerCmd: (cmd: ReportViewerCmd) => void; get commandStatus(): ReportViewerCommandStatus; resetDocument: () => Promise<void>; load: (doc: DocumentMoniker, parentToken?: CancellationToken | undefined) => Promise<LoadResult>; open: (doc: DocumentMoniker) => Promise<LoadResult>; private processLoadFailure; private cancelSession; private setSession; private createSession; /** history store implementation. Consider moving it out */ private readonly _history; private _historyPosition; pushEvent: (event: PluginModel.ViewerEvent) => void; private historyGoBack; private historyGoParent; private historyGoForward; private historyReset; private historyResetNavigation; }