@grapecity/gcpdfviewer
Version:
GcDocs PDF Viewer
136 lines (135 loc) • 3.99 kB
TypeScript
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;
}[][];
};