@grapecity/gcpdfviewer
Version:
GcDocs PDF Viewer
94 lines (93 loc) • 4.62 kB
TypeScript
/// <reference path="../vendor/react/react.d.ts" />
//@ts-ignore
import React, { Component, KeyboardEvent } from 'react';
import { AnnotationBase, TextAnnotation } from "../Annotations/AnnotationTypes";
import PdfReportPlugin from '../plugin';
/// <reference path="../vendor/i18next.d.ts" />
//@ts-ignore
import { i18n } from 'i18next';
import { ReplyToolModel } from './types';
import { GcEditableTextBehavior } from '../Utils/GcEditableTextBehavior';
export type ReplyToolProps = {
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) => Promise<{
pageIndex: number;
annotation: AnnotationBase;
}>;
updateAnnotations: (pageIndex: number, annotations: AnnotationBase[]) => Promise<{
pageIndex: number;
annotations: AnnotationBase[];
}>;
removeAnnotation: (pageIndex: number, id: string) => void;
};
export declare class ReplyTool extends Component<ReplyToolProps, ReplyToolModel> {
_outerElement: HTMLElement;
in17n: i18n;
_editableTextBehavior?: GcEditableTextBehavior;
private _initialized;
private _mounted;
private _onAfterAddAnnotationUnreg;
private _activateInlineEditorAnnotationId?;
constructor(props: any);
componentDidMount(): void;
componentWillUnmount(): void;
get viewer(): import("..").GcPdfViewer;
get eventBus(): import("../Models/ViewerTypes").IGCEventBus;
initialize(): void;
uninitialize(): void;
scrollItemContentIntoView(annotationId: string | HTMLElement, focus?: boolean): void;
focusAndClickNoteContent(elem: HTMLElement): void;
render(): React.JSX.Element;
private _hideReplyEditor;
canEditAuthor(node: TextAnnotation): boolean;
canAddReply(node: TextAnnotation): boolean;
canDeleteReply(node: TextAnnotation): boolean;
canStatusReply(node: TextAnnotation): boolean;
canEditText(node: AnnotationBase): boolean;
private get replyToolSettings();
protected _renderComments(pageIndex: number, annotations: AnnotationBase[], expandedPageIndex: number, selectedAnnotationId: string): JSX.Element | null;
onTextLabelRendered(text: string, safeText: string, placeholder: string, isRichContents: boolean, span: HTMLSpanElement | null | undefined, pageIndex: number, node: TextAnnotation): void;
getNodeContents(node: TextAnnotation, annotations: AnnotationBase[]): {
text: string;
safeText: string;
isRichContents: boolean;
isEmpty: boolean;
emptyLabel: string;
placeholder: string;
};
renderNoteItemMenu(pageIndex: number, node: TextAnnotation): JSX.Element;
onAuthorLabelClick: (pageIndex: number, node: TextAnnotation, isSelected: boolean) => () => void;
_onNoteTextLabelClick: (pageIndex: number, node: TextAnnotation, isSelected: boolean) => () => void;
_showInlineTextEditor(textLabel: HTMLElement, pageIndex: number, node: TextAnnotation, propertyKey: 'contents' | 'title'): void;
forceUpdateInternal(): void;
_disposeEditableTextBehavior(): void;
_onNoteItemClick: (pageIndex: number, node: AnnotationBase) => () => boolean;
selectItemInternal(pageIndex: number, node: AnnotationBase): void;
unselectItemInternal(pageIndex: number, node: AnnotationBase): void;
_onPageButtonClick(pageIndex: number): void;
_onReplyPlaceholderClick(pageIndex: number, node: AnnotationBase): boolean;
_onCancelReplyClick(): boolean;
_onPostReplyClick(pageIndex: number, node: TextAnnotation): boolean;
getSelectedNode(): {
pageIndex: number;
annotation: AnnotationBase;
} | null;
_onItemKeyDown(event: KeyboardEvent<any>, pageIndex: number, node: AnnotationBase): Promise<void>;
findNextSibling(forward: boolean, fallbackToFirst?: boolean): void;
selectNextItem(forward: boolean, fallbackToFirst?: boolean): boolean;
activateElement(firstChildToFocus: HTMLElement): void;
execDeleteAction(pageIndex: number, node: AnnotationBase): Promise<void>;
private _cancelReplyInternal;
private _postReplyInternal;
}