UNPKG

@grapecity/gcpdfviewer

Version:
136 lines (135 loc) 3.99 kB
import GcPdfViewer from "../GcPdfViewer"; import { IGcTextRect } from '../Models/GcMeasurementTypes'; import { GcPdfSearcher } from './GcPdfSearcher'; import { SearchWorker } from './SearchWorker'; export declare const MaxSearchResultsCount = 25; export declare class Rect { constructor(left: number, top: number, width: number, height: number); left: number; top: number; width: number; height: number; } export type PdfSearcherOptions = { query: string; phraseSearch: boolean; caseSensitive: boolean; entireWord: boolean; findPrevious: boolean; startsWith: boolean; endsWith: boolean; wildcards: boolean; proximity: boolean; highlightAll: boolean; }; export type FindOptions = { Text: string; MatchCase: boolean; WholeWord: boolean; StartsWith: boolean; EndsWith: boolean; Wildcards: boolean; Proximity: boolean; SearchBackward: boolean; HighlightAll: boolean; }; export declare class Range { readonly length: number; readonly Start: number; readonly Length: number; constructor(start: number, length: number); get isEmpty(): boolean; static readonly Empty: Range; } export declare class SearchResult { readonly PageIndex: number; readonly DisplayText: string; readonly matchIndex: number; readonly searcher: GcPdfSearcher | null; readonly ItemIndex: number; readonly Range: Range; readonly UserData?: any; readonly annotationId?: string | undefined; overallIndex: number; constructor(PageIndex: number, DisplayText: string, matchIndex: number, searcher: GcPdfSearcher | null, ItemIndex: number, Range: Range, UserData?: any, annotationId?: string | undefined); get ItemArea(): Rect; get coordinates(): TextPartsQuadPoints; _collectHighlightRectangles(begin: { divIdx: number; offset: number; }, end: { divIdx: number; offset: number; }, pageContent: any): { rect: IGcTextRect; fromOffset: number; toOffset: number; }[]; static readonly MakePageStart: (pageIndex: number) => SearchResult; static readonly PastEnd: SearchResult; static readonly BeforeBegin: SearchResult; } export type ProgressModel = { pageIndex: number; pageCount: number | null; }; export type SearchPanelModel = { options: FindOptions; results: SearchResult[]; status: 'ready' | 'inprogress' | 'suspended' | 'done' | 'cancelled'; progress: ProgressModel; }; export type SearchMsg = { type: 'PushResult'; payload: SearchResult; } | { type: 'ResetResults'; } | { type: 'Started'; } | { type: 'SearchCompleted'; } | { type: 'Suspended'; } | { type: 'Cancelled'; } | { type: 'Progress'; payload: ProgressModel; } | { type: 'UpdateOption'; payload: { option: 'MatchCase' | 'WholeWord' | 'StartsWith' | 'EndsWith' | 'Wildcards' | 'Proximity' | 'HighlightAll'; value: boolean; }; } | { type: 'UpdateText'; payload: { text: string; }; }; export type SearchPanelProps = { searchWorker: SearchWorker; viewer: GcPdfViewer; }; export declare const initSearchProgress: () => ProgressModel; export declare const initSearchModel: () => SearchPanelModel; export declare const searchStateReducer: (msg: SearchMsg, model: SearchPanelModel) => SearchPanelModel; export type SearchOptionType = 'MatchCase' | 'WholeWord' | 'StartsWith' | 'EndsWith' | 'Wildcards' | 'Proximity' | 'HighlightAll'; export type PaintedBoxInfo = { pageIndex: number; x: number; y: number; w: number; h: number; angle: number; dir: "ltr" | "rtl"; vertical: boolean; }; export type TextPartsQuadPoints = { pageIndex: number; outerRect: number[]; quadPoints: { x: number; y: number; }[][]; };