UNPKG

@mescius/dspdfviewer

Version:
87 lines (85 loc) 3.89 kB
/// <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; }