@mescius/dspdfviewer
Version:
Document Solutions PDF Viewer
87 lines (85 loc) • 3.89 kB
TypeScript
/// <reference path="../vendor/react/react.d.ts" />
//@ts-ignore
import React, { Component, KeyboardEvent } from 'react';
import GcPdfViewer from "..";
/// <reference path="../vendor/i18next.d.ts" />
//@ts-ignore
import { i18n } from 'i18next';
import { TableDataExtractionDialogProps, TableDataExtractionDialogModel, TableDataExtractionDialogMode, ClientTableExtractOptions } from './types';
import { TableDataExtractionModel } from '../Models/ViewerTypes';
import { ISupportApi } from '../SupportApi/ISupportApi';
import { ExtractedTableData, TableDataExportFormat } from '../SupportApi/types';
/**
* Extract table data dialog.
**/
export declare class TableDataExtractionDialog extends Component<TableDataExtractionDialogProps, TableDataExtractionDialogModel> {
/**
* 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 _viewer;
state: {
activatedEditorIndex: number;
enabled: boolean;
emptyResult: boolean;
showModal: boolean;
mode: TableDataExtractionDialogMode;
pages: string;
tablesData: ExtractedTableData[];
workInProgress: boolean;
};
_dialogContentElem: HTMLDivElement | null;
_mounted: boolean;
componentDidMount(): void;
componentWillUnmount(): void;
get tablesData(): ExtractedTableData[];
removeItem(replaceTextItemIndex: number): Promise<void>;
createTableDataExtractionModelFromSelection(): Promise<any | null>;
/**
* Shows the 'Extract table data' dialog box.
* @param viewer
*/
show(viewer: GcPdfViewer): Promise<void>;
/**
* Exports the extracted table data to the specified format and triggers a download of the file.
* This method handles the process of exporting the table data in various formats such as CSV, JSON, XLSX, XML, or HTML.
* It ensures the proper error handling and updates the UI state (such as disabling buttons or showing a loading indicator).
*
* @param exportFormat - The format to which the table data should be exported. This can be one of the following:
* - `"csv"`: Exports the data as a CSV file.
* - `"json"`: Exports the data as a JSON file.
* - `"xlsx"`: Exports the data as an XLSX (Excel) file.
* - `"xml"`: Exports the data as an XML file.
* - `"html"`: Exports the data as an HTML file.
*
* @throws {Error} Throws an error if the export process encounters any issues.
*/
exportToFormatAndDownload(exportFormat: TableDataExportFormat): Promise<void>;
/**
* Hides the dialog
* */
hide(): void;
render(): React.JSX.Element | null;
renderSelectTextModeContent(): (JSX.Element | null)[];
renderNormalModeContent(): (JSX.Element | null)[];
renderTableDataExtractionItems(): JSX.Element | null;
confirmTableDataExtractionItems(tablesData: TableDataExtractionModel[], newTableDataExtractionItemsCount: number): boolean;
addTableDataExtractionItem(model: any, activateEditor?: boolean): void;
onRangeInputKeyDown(event: KeyboardEvent<HTMLInputElement>, replaceTextItemIndex: number): void;
get pages(): string;
set pages(pages: string);
renderTableDataExtractionActions(): JSX.Element | null;
setInProgress(inProgress: boolean): void;
get tableExtractOptions(): ClientTableExtractOptions;
get isEmptyResult(): boolean;
get supportApi(): ISupportApi;
selectTextToReplace(): void;
get mode(): TableDataExtractionDialogMode;
set mode(val: TableDataExtractionDialogMode);
clearTableDataExtractionItems(): void;
private _resolveHidePromise;
get in17n(): i18n;
}