@mescius/dsimageviewer
Version:
Document Solutions Image Viewer
291 lines (290 loc) • 11.5 kB
TypeScript
/// <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;