@mescius/dspdfviewer
Version:
Document Solutions PDF Viewer
94 lines (92 loc) • 3.78 kB
TypeScript
//@ts-ignore
import React, { Component, KeyboardEvent } from 'react';
import GcPdfViewer from "..";
/// <reference path="../vendor/i18next.d.ts" />
//@ts-ignore
import { i18n } from 'i18next';
import { PdfOrganizerDialogProps, PdfOrganizerModel, RangeInfo } from './types';
import { SaveSettings } from '../Models/ViewerTypes';
import { ExternalPdfManager } from '../Core/ExternalPdfManager';
import { RangeDragDropHelper } from './RangeDragDropHelper';
/**
* PDF Organizer dialog.
**/
export declare class PdfOrganizerDialog extends Component<PdfOrganizerDialogProps, PdfOrganizerModel> {
/**
* The root DOM element identifier prefix.
* The resulting DOM element ID will be `#${ROOT_ID_PREFIX}_${viewer.instanceId}`.
**/
static readonly ROOT_ID_PREFIX: string;
static readonly MAX_RANGE_EMPTY_PAGES_COUNT: number;
private _hidePromise?;
private _resolve?;
private _thumbsPromiseQueue;
private _viewer;
state: {
enabled: boolean;
showModal: boolean;
isChanged: boolean;
ranges: RangeInfo[];
workInProgress: boolean;
};
private _fileInput?;
private _externalPdfManager;
private _dialogContentElem;
private _addRangeDropdown;
private _mounted;
private _rangeDragDropHelper;
componentDidMount(): void;
componentWillUnmount(): void;
get externalPdfManager(): ExternalPdfManager;
get fileInput(): HTMLInputElement;
get ranges(): RangeInfo[];
selectPdfFileForMerge(): void;
addRange(startIndex: number, endIndex: number, fileId: string, fileName: string, filePagesCount: number, angle?: number): void;
removeRange(rangeIndex: number): void;
cloneRange(rangeIndex: number): void;
splitRangeByPages(rangeIndex: number): void;
movePagesRange(sourceRangeIndex: number, moveIndex: number): void;
rotateRange(rangeIndex: number, angleDeg: number): void;
getSaveSettings(downloadOnly?: boolean): SaveSettings;
/**
* Shows the 'PDF Organizer' dialog box.
* @param viewer
*/
show(viewer: GcPdfViewer): Promise<void>;
fillRangesByPageSizeOrOrient(ranges: RangeInfo[], startIndex?: number): RangeInfo[];
/**
* Apply changes, reload document and close dialog.
**/
applyChanges(closeDialog?: boolean): Promise<boolean>;
downloadChangedDocument(): Promise<void>;
/**
* Hides the dialog
* */
hide(): void;
setDirtyValue(rangeIndex: number, dirtyValue: string): void;
resetDirtyValue(rangeIndex: number): void;
applyDirtyValue(rangeIndex: number, resetOnError?: boolean): void;
//@ts-ignore
//@ts-ignore
render(): React.JSX.Element | null;
get isDirty(): boolean;
getRangeInfoTitle(range: RangeInfo): string;
get rangeDragDropHelper(): RangeDragDropHelper;
//@ts-ignore
renderRanges(): JSX.Element | null;
confirmRanges(ranges: RangeInfo[], newRangesCount: number): boolean;
addRanges(type: "PageSizeOrOrient" | "AllPages" | "SinglePages" | "EmptyPage" | "Odd" | "Even" | "Custom", customPages?: string): void;
getAddRangeDDItems(): any[];
findCustomRangeInput(event: any): HTMLInputElement;
onCustomRangeInputKeyDown(event: KeyboardEvent<HTMLInputElement>): void;
onRangeInputKeyDown(event: KeyboardEvent<HTMLInputElement>, rangeIndex: number): void;
applyCustomRangeValue(event: any): void;
//@ts-ignore
renderRangeActions(): JSX.Element | null;
clearRanges(): void;
private _onPdfPicked;
private loadThumbImages;
clearThumbsQueue(): void;
enqueueThumbImage(div: HTMLElement, fileId: string, pageIndex: number, rangeAngle: number): void;
private _resolveHidePromise;
get in17n(): i18n;
}