UNPKG

@mescius/dsimageviewer

Version:

Document Solutions Image Viewer

291 lines (290 loc) 11.5 kB
/// <reference types="react" /> import { PluginModel, DocumentMoniker, /*ToolbarItem, ViewMode,*/ SearchFeature, EventFan, ZoomSettings } from '@dt/core-viewer'; import { ContextMenuProvider } from "@dt/core-ui"; import { ParameterInfo } from './GcImageDocument'; import { ViewerOptions } from './ViewerOptions'; import { GcImageViewer } from './GcImageViewer'; import { ShortcutsConfig } from './Keyboard/ShortcutsConfig'; /// <reference path="../vendor/i18next.d.ts" /> //@ts-ignore import { i18n } from 'i18next'; import { AfterOpenEventArgs, BeforeOpenEventArgs, ErrorEventArgs } from './Models/EventArgs'; import { GcImageViewerStateStorage } from './GcImageViewerStateStorage'; import { LogLevel, OpenParameters } from './Models/Types'; import { LeftSidebar } from './LeftSidebar'; import { FloatingBar } from './FloatingBar/FloatingBar'; import { ReportAction, ReportEvent } from './Models/PluginTypes'; import { GcSelectionPoint } from './Models/GcMeasurementTypes'; import { ImagePaneView } from './ImageDocumentViewer/ImagePaneView'; import { UndoStorage } from './Undo/UndoStorage'; import { GcRightSidebar } from './RightSidebar/GcRightSidebar'; import { GcRightSidebarState } from './RightSidebar/types'; import { IEventBus } from './Models/IImageViewer'; import { ConfirmationDialog } from './Dialogs/ConfirmationDialog'; export declare class ReportDocumentMoniker implements DocumentMoniker { readonly uri: string; readonly params: ParameterInfo[]; readonly pluginKey = "image"; constructor(uri: string, params: ParameterInfo[]); } /** * js-viewer-core plugin module, implements support for Image document type. * @ignore exclude from docs **/ export declare class ImageReportPlugin implements PluginModel.IPluginModule<ReportEvent, ReportAction> { readonly _viewer: GcImageViewer; readonly pluginKey = "image"; in17n: i18n; private disableFeaturesHash; private _shortcutsConfig; private _document?; private _titleToolbarItem; private _titleToolbarItemRemoved; private readonly _errorEvent; /** * Image viewer options. * */ _options: ViewerOptions; _documentTitle: string; _panelsUpdateKey: any; _pendingBinaryFiles: any; private _gcimagedocumentviewer; private imageUrl; _initialViewStateSetFlag: boolean; _stateStorage: GcImageViewerStateStorage; _loadDocViewerPromise: Promise<ImagePaneView>; _cancelledInternal: boolean; private _constructed; _documentListPanel: PluginModel.PanelHandle; private _availablePanelsHash; _licenseErrorShown: boolean; _pingSupportApiServerTimer: any; private _updatingPanelFlag; _sidebarOpened: boolean; private _lastErrorReport; private _lastErrorReportTime; private _documentAssemblyFlag; _allowPrintFlag: boolean; afterOpenPromiseCapability: { promise: Promise<any>; resolve: Function; reject: Function; }; private _onWindowResizeTimeout; private _windowResize?; private _logLevel?; private _leftSidebar; docViewerId: string; private _disposed; private _dropFileAreaHelper; private _floatingBar; private _documentKeydownHandler?; private _documentKeyupHandler?; private _keyboardWorker?; private _shiftDown; private _titleToolbarItemTextChanged; private _openParameters; loadingThemeFlag: boolean; private _gcImageDocument; private _lastViewerState; private _undoStateStorage; private _loadingFlag; private _rightSidebar; confirmationDialog: ConfirmationDialog; constructor(_viewer: GcImageViewer, options: Partial<ViewerOptions>, i18n: i18n); onFileDrop(file: File, insertPoint: GcSelectionPoint): void; onImageUrlDrop(url: string, insertPoint: GcSelectionPoint, force?: boolean): void; get eventBus(): IEventBus; onZoomChange(zoom: ZoomSettings, prevZoom: ZoomSettings, caller?: "statechange" | "zoomcontrol"): void; onZoomChangeInternal(zoom: ZoomSettings, scaleToCursor?: boolean): void; /** * * @param img * @param insertPoint Global point relative to browser window (event.pageX, event.pageY). Origin is top-left. * @param force */ onImageDrop(img: HTMLImageElement, insertPoint: GcSelectionPoint, force?: boolean): Promise<void>; applyOptions(): void; private _applyOptionsInternal; get options(): ViewerOptions; set options(options: ViewerOptions); get shortcutsConfig(): ShortcutsConfig; get docViewer(): ImagePaneView; get imagePaneView(): ImagePaneView; dispose(): void; onWindowResize(): void; onWindowResizeInternal(): void; addEvents(): void; removeEvents(): void; reportError(params: PluginModel.IErrorParams, allowJsxContent?: boolean): void; /** * Show Notification Dialog. Allows JSX content for message. **/ showNotificationDialog(params: PluginModel.IErrorParams): void; /** * Indicates whether document is loaded into view. **/ get hasDocument(): boolean; /** * Indicates whether any image is opened. **/ get hasImage(): boolean; get documentListPanelId(): string | null; _onError(event: any): void; raiseError(message: string): void; _onDocumentClosed(): void; onAfterDocumentOpen(): void; get activePanelId(): string | null; set activePanelId(id: string | null); pluginReady(): boolean; onPanelChange: (panelId: string | null) => void; prepareToolbarLayout(layout?: string[]): string[] | undefined; applyToolbarLayout(): void; toggleSidebar(panelId: string, pin?: boolean): void; private _ensureNarrowScreenDisabled; updateSecondToolbarPosition(): void; initialFrameIndex?: number; private _onStateChange; /** * Return true if panel is available for current document view. * @param panelId */ isPanelAvailable(panelId: string): boolean; /** * Add title toolbar item. * */ addDocumentTitleTool(): void; get uniqueId(): string; logError(method: string, message: string): void; logDebug(method: string, message: string): void; get pageIndex(): number; /** * Gets the file data. Available when keepFileData option is set to true. * */ get fileData(): Uint8Array | null; renderPage(page: PluginModel.IPageData): PluginModel.PageView; renderHighlightPage(page: PluginModel.IPageData, results: SearchFeature.SearchResult[]): PluginModel.PageView; /** * Fires when ESCAPE key pressed. * */ onEscapePressed(): void; onOpenDocument(document: PluginModel.IDocument | null): void; onOpenDocumentView(view: PluginModel.IDocumentView): void; loadDocumentTitle(): Promise<void>; resolveAction(_: any, event: any): PluginModel.ViewerAction | ReportAction | null; processAction(context: PluginModel.ActionContext<ReportEvent>, action: ReportAction): boolean; get fileUrl(): string; get fileName(): string; /** * Available only when document is opened locally or when * file name is passed to newDocument method. * */ get localFileName(): string; _formatLinkP(textToFormat: string, url: string): JSX.Element | null; private _formatLinkLi; _formatLink(textToFormat: string, url: string): JSX.Element | null; /** * Show about dialog. **/ showAbout(): void; processEvent(context: PluginModel.ActionContext<ReportEvent>, event: ReportEvent, direction: PluginModel.TimeDirection): void; /** * Show the file open dialog where the user can select the Image file. * */ openLocalFile(): void; get scrollViewElement(): HTMLDivElement; get hostElement(): HTMLElement; cleanupDocument(): Promise<void>; get loadingFlag(): boolean; set loadingFlag(val: boolean); openDocument: (moniker: ReportDocumentMoniker) => Promise<PluginModel.IDocument>; endUpdate(): void; _ensureInitialViewState(): void; onBeforeOpenFile(file: any, openParameters?: OpenParameters): { file: string; promise: Promise<any>; openParameters?: OpenParameters; }; open(file: any, openParameters?: OpenParameters): void; print(): void; close(): Promise<void>; language: string; currentPageNumber: number; updateVisiblePages(): void; raiseStateChanged(): void; get owner(): GcImageViewer; get rightSidebar(): GcRightSidebar; addLayersPanel(sidebarState?: GcRightSidebarState): void; removeLayersPanel(): void; get logLevel(): LogLevel; set logLevel(logLvel: LogLevel); get openParameters(): OpenParameters | undefined; get undoStorage(): UndoStorage; get hasUndo(): boolean; get hasRedo(): boolean; get undoIndex(): number; get undoCount(): number; /** * The current zoom percentage level. **/ set zoomValue(val: number); /** * The current zoom percentage level. **/ get zoomValue(): number; /** * Returns Image viewer version. * */ get version(): string; showSecondToolbar(toolbarKey: string): Promise<void>; get floatingBar(): Promise<FloatingBar>; _activatedEditorMode?: "SecondBar" | "FormEditor" | "AnnotationEdtor" | "Any" | ""; get isAnyEditorMode(): boolean; get activatedEditorMode(): "SecondBar" | "FormEditor" | "AnnotationEdtor" | "Any" | "" | undefined; /** * Error event. * */ get onError(): EventFan<ErrorEventArgs>; get onBeforeOpen(): EventFan<BeforeOpenEventArgs>; get onAfterOpen(): EventFan<AfterOpenEventArgs>; get onThemeChanged(): EventFan<AfterOpenEventArgs>; /** * Set active viewer theme. Use by theme-change button. * @param theme theme name, specified in themes option. * @ignore exclude from docs */ setTheme(theme: string | undefined): Promise<boolean>; undo(): Promise<void>; redo(): Promise<void>; private _leftSidebarWidths; private _leftSideBarResizedHandler; private _setInitialLeftSidebarWidth; private _loadDocViewer; _convertMsgToContent(msg: string): JSX.Element[]; get sidebarPinned(): boolean; get leftSidebar(): LeftSidebar; execSidebarPanel(methodName: 'pin' | 'open' | 'unpin' | 'close' | 'toggle' | 'collapse' | 'expand', panelId?: string): void; beginPanelUpdate(doNotLock?: boolean): boolean; endPanelUpdate(): void; get currentUserName(): string; set currentUserName(userName: string); private _updateDocumentTitle; private _ensureDocTitleClass; /** * Indicates whether opened document can be edited using SupportApi. * */ get canEditDocument(): boolean; /** * Indicates whether opened document can be printed. * */ get canPrintDocument(): boolean; _additionalLocalizationMessages(): void; showMessage(message: string, details?: string, severity?: "error" | "warn" | "info" | "debug", allowJsxContent?: boolean): void; private getLicenseKey; private checkLicense; private _showLicenseError; contextMenuProvider: ContextMenuProvider; renderDialogRoots(): void; disposeDialogRoots(): void; } export default ImageReportPlugin;