@mescius/dspdfviewer
Version:
Document Solutions PDF Viewer
166 lines (164 loc) • 8.11 kB
TypeScript
//@ts-ignore
import React from 'react';
import { AnnotationsModel, LayoutMode } from './types';
import { AnnotationBase } from './AnnotationTypes';
//@ts-ignore
import { PropertyDescriptor, BoolEditorLocalization, PlainTextEditorLocalization, CollectionEditorLocalization } from '@grapecity/core-ui';
import { ColorEditorLocalization } from './Editors/ColorEditor/types';
import { CalloutLineEditorLocalization } from './Editors/CalloutLineEditor';
import PdfReportPlugin from '../plugin';
import { ParentIdEditorLocalization } from './Editors/ParentIdEditor';
/// <reference path="../vendor/i18next.d.ts" />
//@ts-ignore
import { i18n } from 'i18next';
import { KeyValuePairEditorLocalization } from './Editors/KeyValuePairEditor';
import { ViewerFeatureName } from '../Models/ViewerTypes';
import { DateTimeEditorLocalization } from './Editors/DateTimeEditor/types';
export declare type GcPdfViewerEditorsLocalization = {
plainTextEditor: PlainTextEditorLocalization;
numberEditor: PlainTextEditorLocalization;
nullableNumberEditor: PlainTextEditorLocalization;
floatEditor: PlainTextEditorLocalization;
calloutLineEditor: CalloutLineEditorLocalization;
keyValuePairEditor: KeyValuePairEditorLocalization;
collectionEditor: CollectionEditorLocalization;
parentIdEditor: ParentIdEditorLocalization;
colorEditor: ColorEditorLocalization;
dateTimeEditor: DateTimeEditorLocalization;
boolEditor: BoolEditorLocalization;
textAreaEditor?: {
typeTextHere: string;
cancelBtn: string;
resetBtn: string;
okBtn: string;
applyBtn: string;
cancelBtnTitle: string;
resetBtnTitle: string;
okBtnTitle: string;
applyBtnTitle: string;
editBtn: string;
};
jsCodeAreaEditor?: {
typeCodeHere: string;
cancelBtn: string;
resetBtn: string;
okBtn: string;
applyBtn: string;
cancelBtnTitle: string;
resetBtnTitle: string;
okBtnTitle: string;
applyBtnTitle: string;
editBtn: string;
};
};
export type AnnotationProps = {
coordinatesOrigin: 'TopLeft' | 'BottomLeft';
plugin: PdfReportPlugin;
navigatePage: (pageIndex: number) => void;
navigateAnnotation: (pageIndex: number, annotation: AnnotationBase, params?: {
preserveExpanded?: boolean;
preserveFocused?: boolean;
toggle?: boolean;
}) => void;
addAnnotation: (pageIndex: number, annotation: AnnotationBase) => Promise<{
pageIndex: number;
annotation: AnnotationBase;
}>;
updateAnnotation: (pageIndex: number, annotation: AnnotationBase, skipExpand: boolean, args?: any) => Promise<{
pageIndex: number;
annotation: AnnotationBase;
}>;
updateAnnotations: (pageIndex: number, annotations: AnnotationBase[]) => Promise<{
pageIndex: number;
annotations: AnnotationBase[];
}>;
removeAnnotation: (pageIndex: number, id: string) => void;
};
//@ts-ignore
export declare class Annotations extends React.Component<AnnotationProps, AnnotationsModel> {
private static _pendingScrollAnnotationId?;
private static _pendingScrollAnnotationTime?;
_outerElement: HTMLElement;
protected in17n: i18n;
private _focusedEdtorElement?;
private _needRememberFocusedElement?;
private _onWindowMouseMoveHandler;
private _onWindowMouseUpHandler;
private _isMounted;
private _modernUpdatingInternal;
constructor(props: any, context: any);
shouldComponentUpdate(_nextProps: any, _nextState: any, _nextContext: any): boolean;
getSnapshotBeforeUpdate(prevProps: Readonly<any>, prevState: Readonly<any>): null;
componentDidUpdate(): void;
componentDidMount(): void;
componentWillUnmount(): void;
get isMounted(): boolean;
//@ts-ignore
//@ts-ignore
render(): React.JSX.Element;
get disableFeaturesHash(): {
[key in ViewerFeatureName]?: boolean;
};
get plugin(): PdfReportPlugin;
onChildStateChanged(): void;
//@ts-ignore
protected _renderAnnotations(pageIndex: number, pageAnnotations: AnnotationBase[], expandedPageIndex: number, expandedAnnotationIds: any, selectedAnnotationId: string, layoutMode: LayoutMode): JSX.Element | null;
//@ts-ignore
_renderPropertiesPanel(pageIndex: number, node: AnnotationBase, nodes: AnnotationBase[], isSelectedAnnotation: boolean, annotationButton: JSX.Element, deleteBtn: JSX.Element, cloneBtn: JSX.Element, resetContentBtn: JSX.Element | null, isReadOnly: boolean): JSX.Element;
checkCannotEdit(node: AnnotationBase, editType: "Any" | "EditProperty" | "Delete" | "Clone" | "EditContents", showErrorMessageAndRefresh?: boolean): boolean;
setProperties(pageIndex: number, node: AnnotationBase, descriptors: PropertyDescriptor[], values: any[]): Promise<void>;
setProperty(pageIndex: number, node: AnnotationBase, descriptor: PropertyDescriptor, value: any, skipUpdate?: boolean): Promise<void>;
private _isModernStateEditor;
private _switchToCustomAppearanceIfNeeded;
_updateWithPopupIfAny(pageIndex: number, node: AnnotationBase, descriptor: PropertyDescriptor, updatedValue: any): Promise<boolean>;
protected _onCloneClick: (event: Event | undefined, pageIndex: number, node: AnnotationBase) => () => true | undefined;
protected _onDeleteClick: (event: any, pageIndex: number, node: AnnotationBase) => () => true | undefined;
protected _onResetRedactClick: (event: Event | undefined, pageIndex: number, node: AnnotationBase) => () => boolean;
protected _onApplyRedactClick: (event: Event | undefined, pageIndex: number, node: AnnotationBase) => () => boolean;
protected _onResetRedactedAnnotationClick: (event: Event | undefined, pageIndex: number, node: AnnotationBase) => () => boolean;
protected _onResetConvertToContentClick: (event: Event | undefined, pageIndex: number, node: AnnotationBase) => () => boolean;
protected _onApplyConvertToContentClick: (event: Event | undefined, pageIndex: number, node: AnnotationBase) => () => boolean;
protected _onPageButtonClick: (pageIndex: number) => () => void;
protected _onPageChevronButtonClick: (pageIndex: number) => () => void;
protected _onPropertiesPanelClick: (pageIndex: number, node: AnnotationBase) => () => void;
protected _onAnnotationClick: (pageIndex: number, node: AnnotationBase) => () => void;
protected _onAnnotationChevronClick: (pageIndex: number, node: AnnotationBase) => () => void;
protected static _dragStartInfo?: DragInfo;
private _onItemButtonMouseDown;
protected _onAnnotationsOuterMouseMove(event: MouseEvent | TouchEvent): void;
private _removeDragSourceClass;
private _onAnnotationsOuterMouseUp;
ensureHighlightClass(): void;
private _unbindDragEvents;
private _resetDragPositions;
private _consumedClickTime;
consumeClickEvent(): void;
get isClickEventConsumed(): boolean;
forceUpdateInternal(): void;
static blurActiveInput(keepAnnotationId?: string | null): void;
static setScrollAnnotationIntoViewOnRender(id: string): void;
private _getPendingScrollAnnotationId;
private _invertCoords;
private _invertBounds;
private _coordsToRect;
private _prepareAnnotationProperties;
protected _getAnnotationButtonTitle(node: AnnotationBase): string;
protected _getAnnotationButtonLabel(node: AnnotationBase): string;
private _rememberFocusedElement;
private _restoreFocusedElement;
private _forgetFocusedElement;
}
declare class DragInfo {
owner: Annotations;
pageIndex: number;
node: AnnotationBase;
nodes: AnnotationBase[];
resultOrder: any;
resultOrderChanged: boolean;
constructor(owner: Annotations, pageIndex: number, node: AnnotationBase, nodes: AnnotationBase[]);
get elem(): HTMLElement;
startDragging(): void;
finish(): void;
pageY?: number;
dragging: boolean;
}
export {};