@grapecity/gcpdfviewer
Version:
GcDocs PDF Viewer
326 lines (325 loc) • 11.9 kB
TypeScript
import { WidgetAnnotation, GcProps, LineAnnotation, CircleAnnotation, SquareAnnotation, RedactAnnotation, TextAnnotation, InkAnnotation, PolyLineAnnotation, PolygonAnnotation, FreeTextAnnotation, FileAttachmentAnnotation, SoundAnnotation, ButtonWidget, ChoiceWidget, TextWidget, StampAnnotation, AnnotationBase, SignatureAnnotation, LinkAnnotation, PopupAnnotation, HighlightAnnotation, UnderlineAnnotation, SquigglyAnnotation, StrikeOutAnnotation, AnnotationTypeName } from "./Annotations/AnnotationTypes";
import { RichMediaAnnotation } from "./Annotations/RichMediaAnnotation";
import { ValidationCallerType } from "./FormFiller/types";
import { DocumentListItem, FieldAppearanceRenderingType, JsExecutionConfig, KeyboardShortcutDefinition, OpenParameters, OptionalContentConfig, SaveSettings, StampCategory, ViewerFeatureName } from "./Models/ViewerTypes";
import { LogLevel } from "./SharedDocuments/types";
import { ISupportApiBase } from "./SupportApi/ISupportApiBase";
import { PageDisplayType, SaveAsOptions, SaveAsFormat } from "./Toolbar/controls/types";
export type ReplyToolSettings = {
readOnly?: boolean;
allowAddNote?: boolean;
allowChangeUserName?: boolean;
allowAddReply?: boolean;
allowDelete?: boolean;
allowStatus?: boolean;
allowChangeOtherUser?: boolean;
allowDeleteOtherUser?: boolean;
allowStatusOtherUser?: boolean;
allowAddReplyOtherUser?: boolean;
autoExpandOnCommentAdd?: boolean;
annotationFocusColor?: string;
useColoredIcons?: boolean;
};
export type SupportApiSettings = {
apiUrl: string;
implementation: ISupportApiBase;
token?: string;
legacyServer?: boolean;
requestInit?: RequestInit;
webSocketUrl?: string | false;
reconnectInterval?: number;
suppressInfoMessages?: boolean;
suppressErrorMessages?: boolean;
docBaseUrl?: string;
};
export type TextMarkupContextMenuSettings = {
colors: {
value: string;
displayName: string;
}[] | {
"highlight": {
value: string;
displayName: string;
}[];
"underline": {
value: string;
displayName: string;
}[];
"strikeout": {
value: string;
displayName: string;
}[];
"squiggly": {
value: string;
displayName: string;
}[];
} | false;
};
export declare class ViewerOptions {
constructor(options?: Partial<ViewerOptions>);
customIcons?: {
[iconKey: string]: Element | string;
};
disableHistory: boolean;
editorDefaults: {
fontNames?: {
value: string;
name: string;
}[];
hideFloatingBar?: boolean;
rememberLastValues?: boolean;
lastValueKeys?: string[];
printResolution?: number;
resizeHandleSize?: number;
moveHandleSize?: number;
dotHandleSize?: number;
standardFontDataUrl?: string;
stickyNote?: {
color?: string;
contents?: string;
};
lineAnnotation?: Partial<LineAnnotation>;
circleAnnotation?: Partial<CircleAnnotation>;
squareAnnotation?: Partial<SquareAnnotation>;
linkAnnotation?: Partial<LinkAnnotation>;
redactAnnotation?: Partial<RedactAnnotation>;
inkAnnotation?: Partial<InkAnnotation>;
polyLineAnnotation?: Partial<PolyLineAnnotation>;
polygonAnnotation?: Partial<PolygonAnnotation>;
textAnnotation?: Partial<TextAnnotation>;
freeTextAnnotation?: Partial<FreeTextAnnotation>;
fileAttachmentAnnotation?: Partial<FileAttachmentAnnotation>;
richMediaAnnotation?: Partial<RichMediaAnnotation>;
soundAnnotation?: Partial<SoundAnnotation>;
stampAnnotation?: Partial<StampAnnotation>;
highlightAnnotation?: Partial<HighlightAnnotation>;
underlineAnnotation?: Partial<UnderlineAnnotation>;
squigglyAnnotation?: Partial<SquigglyAnnotation>;
strikeOutAnnotation?: Partial<StrikeOutAnnotation>;
popupAnnotation?: Partial<PopupAnnotation>;
checkBoxButton?: Partial<ButtonWidget>;
radioButton?: Partial<ButtonWidget>;
pushButton?: Partial<ButtonWidget>;
resetButton?: Partial<ButtonWidget>;
submitButton?: Partial<ButtonWidget>;
comboChoice?: Partial<ChoiceWidget>;
listBoxChoice?: Partial<ChoiceWidget>;
passwordField?: Partial<TextWidget>;
textArea?: Partial<TextWidget>;
textField?: Partial<TextWidget>;
signatureField?: Partial<SignatureAnnotation>;
combTextField?: Partial<TextWidget>;
};
allowedTools: {
viewer?: 'all' | 'annotations' | 'fields' | string[];
annotationEditor?: 'all' | 'annotations' | 'fields' | string[];
formEditor?: 'all' | 'annotations' | 'fields' | string[];
};
fieldsAppearance: {
radioButton?: FieldAppearanceRenderingType;
checkBoxButton?: FieldAppearanceRenderingType;
pushButton?: FieldAppearanceRenderingType;
};
lockOpenTimeout: number;
newDocumentFileName?: string;
pageDisplay?: PageDisplayType;
saveSettings: SaveSettings;
saveAsOptions?: SaveAsOptions | SaveAsFormat;
snapAlignment: true | false | {
tolerance: number | {
horizontal: number | false;
vertical: number | false;
};
margin: false | true | number | {
horizontal: number | boolean;
vertical: number | boolean;
};
center: false | true | {
horizontal: boolean;
vertical: boolean;
};
};
useNativeContextMenu: boolean;
onBeforeOpenContextMenu?: Function;
onBeforeCloseContextMenu?: Function;
showContextMenuOnSelection?: "Auto" | "On" | "Off" | boolean;
textMarkupContextMenu?: TextMarkupContextMenuSettings | false;
optionalContentConfig?: OptionalContentConfig;
replyTool?: ReplyToolSettings;
userName?: string;
baseUrl?: string;
buttons?: string[] | "all" | 'none';
caret?: true | false | {
caretBlinkTime: number;
caretStopBlinkTime: number;
color: string;
width: number;
allowForPan: boolean;
};
sharing?: {
disallowUnknownUsers?: boolean;
knownUserNames?: string[];
presenceColors?: {
[userName: string]: string;
};
presenceMode: 'on' | 'others' | 'off' | true | false;
};
coordinatesPrecision: number;
coordinatesOrigin?: 'TopLeft' | 'BottomLeft';
disableFeatures?: ViewerFeatureName[];
ignoreInitialView?: boolean;
disablePageLabels?: boolean;
externalLinkTarget?: 'blank' | 'self' | 'parent' | 'top' | 'none';
formFiller?: FormFillerSettings;
jsExecutionConfig?: JsExecutionConfig;
pdfOrganizer?: PdfOrganizerSettings;
replaceText?: ReplaceTextSettings;
enableXfa?: boolean;
secondToolbar?: {
render?: (toolbarKey: string) => any[] | null;
};
signTool?: SignToolSettings;
language?: 'en' | string;
maxCanvasPixels?: number;
userData: any;
useFloatingSearchBar: boolean;
useCanvasForSelection: any;
renderInteractiveForms: boolean;
keepFileData: boolean;
renderer: 'canvas' | 'svg';
friendlyFileName?: string;
file?: string | any;
onInitialized?: (viewer: any) => void;
openParameters?: OpenParameters;
password: string;
supportApiPassword?: string;
restoreViewStateOnLoad?: false | true | {
trackViewMode?: boolean;
trackMouseMode?: boolean;
trackScale?: boolean;
trackPageRotation?: boolean;
trackFullScreen?: boolean;
trackTheme?: boolean;
trackSidebar?: boolean;
trackSidebarWidth?: boolean;
trackFile?: boolean;
};
documentListUrl: string | DocumentListItem[];
workerSrc: string;
zoomOptions?: {
minZoom?: number;
maxZoom?: number;
dropdownZoomFactorValues?: number[];
};
zoomByMouseWheel: {
always: boolean;
ctrlKey: boolean;
metaKey: boolean;
};
theme: string | false;
themes: string[];
requireTheme?: "light" | "dark" | "viewer" | "light-blue" | "themes/dark-yellow" | "gc-blue" | null;
hideAnnotationPopups?: AnnotationTypeName | 'All' | 'None' | boolean;
hideAnnotationTypes?: AnnotationTypeName[] | 'All' | 'None' | boolean;
cMapUrl?: string;
cMapPacked?: boolean;
stamp: {
dpi?: number;
stampCategories?: StampCategory[] | boolean;
selectedImageUrl?: string;
};
supportApi?: string | SupportApiSettings;
logLevel?: LogLevel;
shortcuts: {
[keyCode: string]: KeyboardShortcutDefinition | KeyboardShortcutDefinition[];
};
}
export type RulerLine = {
color?: string;
position?: number;
size?: number;
type?: 'solid' | 'dashed';
};
export type InputFieldMapping = {
hidden?: boolean;
nolabel?: boolean;
orderindex?: number;
rowcustomcss?: string;
validator?: (fieldValue: string | string[], field: WidgetAnnotation, args: {
caller: ValidationCallerType;
}) => boolean | string;
};
export type FormFieldMapping = InputFieldMapping & GcProps;
export type SignToolSettings = {
dialogLocation?: 'Center' | 'Top' | 'Right' | 'Bottom' | 'Left' | {
x: number;
y: number;
};
hideTabs?: boolean;
hideToolbar?: boolean;
hideDialogTitle?: boolean;
hideSaveSignature?: boolean;
hideDialogFooter?: boolean;
tabs?: ('Type' | 'Draw' | 'Image')[];
selectedTab?: 'Type' | 'Draw' | 'Image';
title?: string;
penColor?: string;
penWidth?: number;
text?: string;
textColor?: string;
fontSize?: number;
fontName?: string;
fontNames?: string[];
italic?: boolean;
bold?: boolean;
hasImage?: boolean;
saveSignature?: boolean;
annotationType?: 'stamp' | 'signature';
convertToContent?: boolean;
subject?: string;
pageIndex?: number;
canvasSize?: {
width: number;
height: number;
};
autoResizeCanvas?: boolean;
location?: 'Center' | 'Top' | 'Right' | 'Bottom' | 'Left' | 'TopLeft' | 'TopRight' | 'BottomRight' | 'BottomLeft' | {
x: number;
y: number;
};
destinationScale?: number;
ruler?: {
Draw: RulerLine[] | false;
Type: RulerLine[] | false;
Image: RulerLine[] | false;
} | false;
beforeShow?: (signatureDialog: any) => boolean;
afterShow?: (signatureDialog: any) => void;
beforeAdd?: (activeTool: any, signatureDialog: any) => boolean;
afterAdd?: (result: {
pageIndex: number;
annotation: AnnotationBase;
}) => void;
beforeHide?: (signatureDialog: any) => boolean;
};
export type FormFillerSettings = {
applyAfterFailedValidation?: 'confirm' | 'reject' | 'apply' | Function;
layout?: 'Auto' | 'OneColumn' | 'TwoColumns';
title?: string;
validator?: (fieldValue: string | string[], field: WidgetAnnotation, args: {
caller: ValidationCallerType;
}) => boolean | string;
onInitialize?: (formFiller: any) => void;
beforeApplyChanges?: (formFiller: any) => boolean;
beforeFieldChange?: (field: WidgetAnnotation, formFiller: any) => boolean;
mappings: {
[fieldName: string]: FormFieldMapping;
};
};
export type PdfOrganizerSettings = {
layout?: 'Auto' | 'OneColumn' | 'TwoColumns';
title?: string;
};
export type ReplaceTextSettings = {
title?: string;
};