@mescius/dsimageviewer
Version:
Document Solutions Image Viewer
335 lines (334 loc) • 14.5 kB
TypeScript
import { ImageFormatCode, ImageFormatName, LogLevel, OpenParameters, SaveOptions } from './Models/Types';
//@ts-ignore
import { EventFan, PluginModel, ReportViewer, Toolbar, ToolbarLayout, ViewerStatus, ZoomMode } from '@grapecity/viewer-core';
import { ViewerOptions } from './ViewerOptions';
import { GcMeasurement } from './Utils/GcMeasurement';
//@ts-ignore
import { PanelHandle } from '@grapecity/viewer-core/types/api/PluginModel';
import ImageReportPlugin from './plugin';
/// <reference path="../vendor/react/react-dom.d.ts" />
//@ts-ignore
import ReactDOM from 'react-dom';
/// <reference path="../vendor/react/react.d.ts" />
//@ts-ignore
import React, { Component, LegacyRef } from 'react';
import { LeftSidebar } from './LeftSidebar';
import { DataStorage } from './DataStorage/DataStorage';
import { ImageToolbarLayout } from './Toolbar/ImageToolbarLayout';
import { SecondToolbar } from './Toolbar/SecondToolbar/SecondToolbar';
import { AfterOpenEventArgs, BeforeOpenEventArgs, ErrorEventArgs, EventArgs, EventName, ImagePaintEventArgs } from './Models/EventArgs';
import { ImagePaneView } from './ImageDocumentViewer/ImagePaneView';
import { IViewerPlugin } from './Models/IViewerPlugin';
import { IGcSelectionBox, PointLocation } from './Models/SelectionBoxTypes';
import { SvgIconKey } from './Styles/svgIcons';
import { imageDataToCanvas } from './Utils/ImageUtils';
import { DomActivityIndicator } from './Utils/DomActivityIndicator';
import { UndoStorage } from './Undo/UndoStorage';
import { UndoCommandSupport } from './Undo/Commands';
import { GcPanSupport } from './Utils/GcPanSupport';
import { ShortcutsConfig } from './Keyboard/ShortcutsConfig';
import { IViewerTransactionSupport } from './Models/IViewerTransactionSupport';
import { IEventBus, IImageViewer, SecondToolbarType, WindowKeyboardListener } from './Models/IImageViewer';
import { ConfirmButton } from './Dialogs/Types';
import { IImageLayer } from './Layers/types';
//@ts-ignore
import { Color, Dropdown } from '@grapecity/core-ui';
import { ColorEditorLocalization } from './Tools/ColorEditor/types';
/// <reference path="../vendor/i18next.d.ts" />
//@ts-ignore
import { i18n } from 'i18next';
export declare class GcImageViewer extends ReportViewer implements IImageViewer {
private static _i18n;
static _instanceCounter: number;
static instances: any;
static focusedInstance?: GcImageViewer | null;
private _plugin;
private _isUpdating;
private _viewerInstanceId;
readonly in17n: i18n;
private _disposed;
private _eventsDef;
private _fileStorage;
private _plugins;
private _secondToolbarLayout;
private _secondToolbar;
private _toolbarLayout;
private _eventBus;
private _selectionBox;
private _layers;
private _activeLayerIndex;
constructor(element: HTMLElement | string, options?: Partial<ViewerOptions>);
pluginPanels: {
[key: string]: {
handle: PluginModel.PanelHandle;
panel: Component<any> | null;
};
};
get actualZoomFactor(): number;
get instanceId(): string;
set instanceId(id: string);
get imagePaneView(): ImagePaneView;
get imageFormat(): ImageFormatCode;
set imageFormat(imageFormat: ImageFormatCode);
get hasImage(): boolean;
get adaptiveNaturalSize(): {
width: number;
height: number;
};
get actualSize(): {
width: number;
height: number;
};
get isReady(): boolean;
get language(): string;
set language(lng: string);
ensurePaintLayer(): IImageLayer;
removeLayer(layerOrIndex: IImageLayer | number | string): void;
removeLayers(): void;
get layers(): IImageLayer[];
get activeLayerIndex(): number;
set activeLayerIndex(ind: number);
get activeLayer(): IImageLayer | undefined;
get maxImageSize(): {
width: number;
height: number;
};
get naturalSize(): {
width: number;
height: number;
};
get openParameters(): OpenParameters | undefined;
get options(): Partial<ViewerOptions>;
set options(options: Partial<ViewerOptions>);
get panSupport(): GcPanSupport | undefined;
get selectionBox(): IGcSelectionBox;
get toolbarLayout(): ImageToolbarLayout;
set toolbarLayout(toolbarLayout: ImageToolbarLayout);
get undoStorage(): UndoStorage;
get hasUndo(): boolean;
get hasRedo(): boolean;
get undoIndex(): number;
get undoCount(): number;
get version(): string;
static get i18n(): i18n;
get frameIndex(): number;
set frameIndex(val: number);
get framesCount(): number;
set zoomValue(val: number);
get zoomValue(): number;
set zoomMode(val: ZoomMode);
get zoomMode(): ZoomMode;
get eventBus(): IEventBus;
get onAfterOpen(): EventFan<AfterOpenEventArgs>;
get onBeforeOpen(): EventFan<BeforeOpenEventArgs>;
get onError(): EventFan<ErrorEventArgs>;
get onImagePaint(): EventFan<ImagePaintEventArgs>;
static updateSvgIcon(iconKey: SvgIconKey, svgIcon: Element | string): void;
static getSvgIcon(iconKey: SvgIconKey): Element;
applyOptions(): void;
applyToolbarLayout(): void;
addPlugin(plugin: IViewerPlugin): boolean;
private _keyboardListeners;
private _onWindowKeydownHandler?;
private _onWindowKeyupHandler?;
altPressed: boolean;
ctrlPressed: boolean;
shiftPressed: boolean;
spacePressed: boolean;
addKeyboardListener(uniqueKey: string, handler: WindowKeyboardListener): void;
private onWindowKeyDown;
private onWindowKeyUp;
removeKeyboardListener(uniqueKey: string): void;
raiseKeyDown(event: KeyboardEvent): void;
raiseKeyUp(event: KeyboardEvent): void;
configurePluginMainToolbar(pos: number | boolean | undefined, buttonsToInsert: string[]): void;
getEventCanvasPoint(event: PointerEvent | MouseEvent): PointLocation;
renderColorDropdown(colorValue: Color | null | undefined, onSelect: (color: Color) => void, localization: ColorEditorLocalization, refCallback: LegacyRef<Dropdown>, settings?: {
size?: 'small' | 'default' | 'large';
includeOpacity?: boolean;
disabled?: boolean;
}): JSX.Element;
dataUrlToImageData(dataUrl: string, destinationSize?: {
width: number;
height: number;
}): Promise<ImageData>;
confirm(confirmationText?: string | JSX.Element, level?: "info" | "warning" | "error", title?: string, buttons?: ConfirmButton[]): Promise<boolean | ConfirmButton>;
onFocus(): void;
onBlur(): void;
removePlugin(pluginId: string | IViewerPlugin): void;
showAbout(): void;
findPlugin(pluginId: string): IViewerPlugin | null;
removePlugins(): void;
clearUndo(): void;
executeCommand(command: UndoCommandSupport): Promise<void>;
newImage(options?: {
width?: number;
height?: number;
} & OpenParameters): Promise<any>;
canvasToDataURL(canvas: HTMLCanvasElement): string;
get imageFormatSupportsTransparency(): boolean;
performTransparencyConversionCheck(message: string): Promise<boolean>;
open(file?: any | string | URL | Uint8Array | Array<number>, openParameters?: OpenParameters | ImageFormatName | ImageFormatCode): Promise<any>;
dispose(): void;
playAnimation(): void;
showActivitySpinner(container?: HTMLElement): void;
hideActivitySpinner(): void;
startAnimation(): void;
stopAnimation(): void;
toggleAnimation(): void;
undo(): Promise<void>;
redo(): Promise<void>;
getEvent(eventName: EventName): EventFan<any>;
triggerEvent(eventName: EventName, args?: EventArgs | BeforeOpenEventArgs | AfterOpenEventArgs | ImagePaintEventArgs | any): void;
transaction?: IViewerTransactionSupport;
setTransaction(transaction: IViewerTransactionSupport): void;
confirmChanges(): Promise<void>;
cancelChanges(): Promise<void | boolean>;
clearTransaction(transaction: IViewerTransactionSupport): void;
static findControl(selector: string | HTMLElement): GcImageViewer | undefined;
getOriginalImageDataUrl(): string;
getImageDataUrl(): string;
setImageDataUrl(dataUrl: any): Promise<void>;
get secondToolbar(): SecondToolbar;
get secondToolbarMode(): SecondToolbarType;
invalidate(): void;
showSecondToolbar(toolbarKey: SecondToolbarType): Promise<void>;
hideSecondToolbar(toolbarKey?: SecondToolbarType): Promise<void>;
activateEditorMode(caller: "SecondBar" | "FormEditor" | "AnnotationEdtor"): void;
deactivateEditorMode(caller: "SecondBar" | "ViewerLayout"): void;
logError(method: string, message: string): void;
logDebug(method: string, message: string): void;
close(): Promise<void>;
openLocalFile(): any;
print(): void;
download(fileName?: string, original?: boolean): void;
save(options?: string | SaveOptions, original?: boolean): void;
raiseStateChanged(): void;
get scrollViewElement(): HTMLElement;
setTheme(theme?: string): void;
beginUpdate(): void;
endUpdate(): void;
get isUpdating(): boolean;
get isAnimationStarted(): boolean;
static LicenseKey: string;
get currentUserName(): string;
set currentUserName(userName: string);
get fileData(): Uint8Array | null;
get fileName(): string;
get fileUrl(): string;
get leftSidebar(): LeftSidebar;
get storage(): DataStorage;
get hasDocument(): boolean;
get logLevel(): LogLevel;
set logLevel(logLvel: LogLevel);
getType(typeName: string): typeof GcImageViewer | typeof React | typeof ImageReportPlugin | typeof ZoomMode | typeof ViewerStatus | typeof ReactDOM | typeof ViewerOptions | typeof Toolbar | typeof GcMeasurement | {
cropImage: typeof import("./Utils/ImageUtils").cropImage;
resizeImage: typeof import("./Utils/ImageUtils").resizeImage;
resizeImageDataUrl: typeof import("./Utils/ImageUtils").resizeImageDataUrl;
currentDisplayPxPerInch: typeof import("./Utils/ImageUtils").currentDisplayPxPerInch;
getImageNaturalSize: typeof import("./Utils/ImageUtils").getImageNaturalSize;
imageDataToCanvas: typeof imageDataToCanvas;
setDpiAdaptiveSize: typeof import("./Utils/ImageUtils").setDpiAdaptiveSize;
getDpiAdaptiveSize: typeof import("./Utils/ImageUtils").getDpiAdaptiveSize;
copyImageCanvasToClipboard: typeof import("./Utils/ImageUtils").copyImageCanvasToClipboard;
getImageCanvasFromClipboard: typeof import("./Utils/ImageUtils").getImageCanvasFromClipboard;
} | {
about: JSX.Element;
'severity-info': JSX.Element;
'severity-warning': JSX.Element;
'severity-error': JSX.Element;
save: JSX.Element;
rotate: JSX.Element;
'flip-horizontal': JSX.Element;
'flip-vertical': JSX.Element;
'crop-image': JSX.Element;
'resize-image': JSX.Element;
'magnify-minus-outline': JSX.Element;
'magnify-plus-outline': JSX.Element;
magnify: JSX.Element;
open: JSX.Element;
'page-tools': JSX.Element;
'paint-tools': JSX.Element;
'text-tools': JSX.Element;
effects: JSX.Element;
'paint-undo': JSX.Element;
'paint-redo': JSX.Element;
'select-region': JSX.Element;
QuickSelection: JSX.Element;
FreeSelection: JSX.Element;
RectangularSelection: JSX.Element;
EllipticalSelection: JSX.Element;
PolygonalSelection: JSX.Element;
ColorSelection: JSX.Element;
SubjectSelection: JSX.Element;
pencil: JSX.Element;
brush: JSX.Element;
eraser: JSX.Element;
text: JSX.Element;
'font-bold': JSX.Element;
'font-italic': JSX.Element;
'clone-stamp': JSX.Element;
'foreground-color': JSX.Element;
'image-filter-tools': JSX.Element;
'filter-blur': JSX.Element;
'filter-pixelate': JSX.Element;
'filter-brightness': JSX.Element;
'filter-contrast': JSX.Element;
'filter-vibrance': JSX.Element;
'filter-brightness-contrast': JSX.Element;
print: JSX.Element;
'edit-undo': JSX.Element;
'edit-redo': JSX.Element;
'aspect-ratio': JSX.Element;
chevron: JSX.Element;
'chevron-accent': JSX.Element;
'animated-spinner': JSX.Element;
'drag-handle': JSX.Element;
keyboard: JSX.Element;
image: JSX.Element;
'theme-change': JSX.Element;
'new-document': JSX.Element;
'new-page': JSX.Element;
'delete-page': JSX.Element;
pan: JSX.Element;
'doc-properties': JSX.Element;
'context-copy': JSX.Element;
'context-paste': JSX.Element;
'context-cut': JSX.Element;
'context-delete': JSX.Element;
'arrow-expand-horizontal': JSX.Element;
'arrow-expand-all': JSX.Element;
'resize-handle-h': JSX.Element;
close: JSX.Element;
'reset-values': JSX.Element;
done: JSX.Element;
'file-png': JSX.Element;
'file-jpeg': JSX.Element;
'file-tiff': JSX.Element;
'file-gif': JSX.Element;
'file-bmp': JSX.Element;
'file-webp': JSX.Element;
} | null;
get plugin(): ImageReportPlugin;
get secondToolbarLayout(): {
[toolbarKey: string]: string[];
};
set secondToolbarLayout(layout: {
[toolbarKey: string]: string[];
});
get shortcutsConfig(): ShortcutsConfig;
get onThemeChanged(): EventFan<AfterOpenEventArgs>;
openPanel(panelHandleOrId: PanelHandle | string): void;
closePanel(panelHandleOrId?: PanelHandle | string): void;
get beforeUnloadConfirmation(): boolean;
set beforeUnloadConfirmation(enable: boolean);
updateLayout(layout: ToolbarLayout): void;
showMessage(message: string, details?: string, severity?: "error" | "warn" | "info" | "debug"): void;
raiseError(message: string): void;
clearMessages(): void;
_domActivityIndicator: DomActivityIndicator;
onLoadProgress(percent?: number): void;
get domActivityIndicator(): DomActivityIndicator;
private _getEventFan;
private static _init_i18n;
}