@ngstarter-ui/components 21.0.32 → 21.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,393 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import { Observable } from 'rxjs';
4
+ import { PluginRegistry } from '@embedpdf/core';
5
+ import { PdfEngine } from '@embedpdf/models';
6
+
7
+ type PdfViewerSource = string | ArrayBuffer | Uint8Array | Blob | null | undefined;
8
+ interface PdfViewerAnnotationDataSourceContext {
9
+ source: PdfViewerSource;
10
+ documentName: string | null;
11
+ pageCount: number;
12
+ }
13
+ interface PdfViewerAnnotationDataSourceParams extends PdfViewerAnnotationDataSourceContext {
14
+ successCallback(annotations: PdfViewerAnnotationView[]): void;
15
+ failCallback(error?: unknown): void;
16
+ }
17
+ interface PdfViewerServerAnnotationDataSource {
18
+ getAnnotations(params: PdfViewerAnnotationDataSourceParams): void;
19
+ }
20
+ type PdfViewerAnnotationDataSourceResult = PdfViewerAnnotationView[] | Promise<PdfViewerAnnotationView[]> | Observable<PdfViewerAnnotationView[]>;
21
+ type PdfViewerAnnotationDataSource = PdfViewerAnnotationDataSourceResult | PdfViewerServerAnnotationDataSource | ((params: PdfViewerAnnotationDataSourceContext) => PdfViewerAnnotationDataSourceResult);
22
+ type PdfViewerAnnotationWhen = string | ((annotation: PdfViewerAnnotationView, index: number) => boolean);
23
+ interface PdfViewerAnnotationTemplateContext {
24
+ $implicit: PdfViewerAnnotationView;
25
+ annotation: PdfViewerAnnotationView;
26
+ index: number;
27
+ goToPage(pageNumber: number): void;
28
+ }
29
+ interface PdfViewerLoadedEvent {
30
+ pageCount: number;
31
+ }
32
+ interface PdfViewerPageRenderedEvent {
33
+ pageNumber: number;
34
+ url: string;
35
+ width?: number;
36
+ height?: number;
37
+ }
38
+ interface PdfViewerPageView {
39
+ pageNumber: number;
40
+ url: string | null;
41
+ scale: number;
42
+ renderedScale: number | null;
43
+ width: number;
44
+ height: number;
45
+ isRendering: boolean;
46
+ textGlyphs: PdfViewerTextGlyphView[];
47
+ }
48
+ interface PdfViewerThumbnailView {
49
+ pageNumber: number;
50
+ url: string;
51
+ width: number;
52
+ height: number;
53
+ }
54
+ interface PdfViewerAnnotationView {
55
+ id?: string | number;
56
+ type?: string;
57
+ label?: string;
58
+ author: string;
59
+ time?: string;
60
+ avatarUrl?: string;
61
+ avatarLabel?: string;
62
+ text: string;
63
+ pageNumber: number;
64
+ replyLabel?: string;
65
+ [key: string]: unknown;
66
+ }
67
+ interface PdfViewerSearchResultView {
68
+ id?: string | number;
69
+ pageNumber: number;
70
+ excerpt: string;
71
+ }
72
+ interface PdfViewerSearchOptions {
73
+ caseSensitive: boolean;
74
+ wholeWord: boolean;
75
+ }
76
+ interface PdfViewerTextRectView {
77
+ text: string;
78
+ left: number;
79
+ top: number;
80
+ width: number;
81
+ height: number;
82
+ }
83
+ interface PdfViewerTextGlyphView {
84
+ index: number;
85
+ left: number;
86
+ top: number;
87
+ width: number;
88
+ height: number;
89
+ lineTop: number;
90
+ lineHeight: number;
91
+ lineId: number;
92
+ }
93
+ interface PdfViewerSelectionRectView extends PdfViewerTextRectView {
94
+ pageNumber: number;
95
+ }
96
+
97
+ declare class PdfViewerAnnotationDef {
98
+ template: TemplateRef<PdfViewerAnnotationTemplateContext>;
99
+ readonly annotationWhen: _angular_core.InputSignal<PdfViewerAnnotationWhen | undefined>;
100
+ readonly defWhen: _angular_core.InputSignal<PdfViewerAnnotationWhen | undefined>;
101
+ readonly when: _angular_core.InputSignal<PdfViewerAnnotationWhen | undefined>;
102
+ constructor(template: TemplateRef<PdfViewerAnnotationTemplateContext>);
103
+ matches(annotation: PdfViewerAnnotationView, index: number, typeProperty: string): boolean;
104
+ hasWhen(): boolean;
105
+ private whenValue;
106
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PdfViewerAnnotationDef, never>;
107
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PdfViewerAnnotationDef, "[ngsPdfViewerAnnotationDef], [ngsPdfViewerAnnotation]", never, { "annotationWhen": { "alias": "ngsPdfViewerAnnotation"; "required": false; "isSignal": true; }; "defWhen": { "alias": "ngsPdfViewerAnnotationDef"; "required": false; "isSignal": true; }; "when": { "alias": "ngsPdfViewerAnnotationWhen"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
108
+ }
109
+
110
+ interface PdfViewerPageListItem {
111
+ pageNumber: number;
112
+ thumbnail: PdfViewerThumbnailView | null;
113
+ }
114
+ type PdfViewerSpreadMode = 'single' | 'two-odd' | 'two-even';
115
+ type PdfViewerScrollLayout = 'vertical' | 'horizontal';
116
+ type PdfViewerZoomMode = 'custom' | 'fit-page' | 'fit-width';
117
+ declare class PdfViewer {
118
+ private readonly textSelectionHorizontalPadding;
119
+ private readonly textSelectionLineHeight;
120
+ private readonly document;
121
+ private readonly destroyRef;
122
+ private readonly engineService;
123
+ private readonly hostElement;
124
+ private readonly platformId;
125
+ private readonly isBrowser;
126
+ private readonly viewerBody;
127
+ private readonly pageList;
128
+ protected readonly annotationDefs: _angular_core.Signal<readonly PdfViewerAnnotationDef[]>;
129
+ src: _angular_core.InputSignal<PdfViewerSource>;
130
+ documentName: _angular_core.InputSignal<string | null>;
131
+ wasmUrl: _angular_core.InputSignal<string>;
132
+ page: _angular_core.InputSignalWithTransform<number, unknown>;
133
+ scale: _angular_core.InputSignalWithTransform<number, unknown>;
134
+ minScale: _angular_core.InputSignalWithTransform<number, unknown>;
135
+ maxScale: _angular_core.InputSignalWithTransform<number, unknown>;
136
+ zoomStep: _angular_core.InputSignalWithTransform<number, unknown>;
137
+ maxRenderPixels: _angular_core.InputSignalWithTransform<number, unknown>;
138
+ maxRenderDimension: _angular_core.InputSignalWithTransform<number, unknown>;
139
+ renderAll: _angular_core.InputSignalWithTransform<boolean, unknown>;
140
+ showToolbar: _angular_core.InputSignalWithTransform<boolean, unknown>;
141
+ showPageList: _angular_core.InputSignalWithTransform<boolean, unknown>;
142
+ showSearchPanel: _angular_core.InputSignalWithTransform<boolean, unknown>;
143
+ showAnnotationsPanel: _angular_core.InputSignalWithTransform<boolean, unknown>;
144
+ annotations: _angular_core.InputSignal<PdfViewerAnnotationView[]>;
145
+ annotationsDataSource: _angular_core.InputSignal<PdfViewerAnnotationDataSource | null>;
146
+ annotationTypeProperty: _angular_core.InputSignal<string>;
147
+ searchQuery: _angular_core.InputSignal<string>;
148
+ withAnnotations: _angular_core.InputSignalWithTransform<boolean, unknown>;
149
+ withForms: _angular_core.InputSignalWithTransform<boolean, unknown>;
150
+ loaded: _angular_core.OutputEmitterRef<PdfViewerLoadedEvent>;
151
+ pageChanged: _angular_core.OutputEmitterRef<number>;
152
+ pageRendered: _angular_core.OutputEmitterRef<PdfViewerPageRenderedEvent>;
153
+ error: _angular_core.OutputEmitterRef<unknown>;
154
+ protected readonly isLoading: _angular_core.WritableSignal<boolean>;
155
+ protected readonly errorState: _angular_core.WritableSignal<unknown>;
156
+ protected readonly renderedPages: _angular_core.WritableSignal<PdfViewerPageView[]>;
157
+ protected readonly thumbnailPages: _angular_core.WritableSignal<PdfViewerThumbnailView[]>;
158
+ protected readonly pageCount: _angular_core.WritableSignal<number>;
159
+ protected readonly activePage: _angular_core.WritableSignal<number>;
160
+ protected readonly zoom: _angular_core.WritableSignal<number>;
161
+ protected readonly pageListVisible: _angular_core.WritableSignal<boolean>;
162
+ protected readonly searchPanelVisible: _angular_core.WritableSignal<boolean>;
163
+ protected readonly annotationsPanelVisible: _angular_core.WritableSignal<boolean>;
164
+ protected readonly spreadMode: _angular_core.WritableSignal<PdfViewerSpreadMode>;
165
+ protected readonly scrollLayout: _angular_core.WritableSignal<PdfViewerScrollLayout>;
166
+ protected readonly zoomMode: _angular_core.WritableSignal<PdfViewerZoomMode>;
167
+ protected readonly annotationItems: _angular_core.WritableSignal<PdfViewerAnnotationView[]>;
168
+ protected readonly activeSearchQuery: _angular_core.WritableSignal<string>;
169
+ protected readonly pdfSearchResults: _angular_core.WritableSignal<PdfViewerSearchResultView[]>;
170
+ protected readonly selectionRects: _angular_core.WritableSignal<PdfViewerSelectionRectView[]>;
171
+ protected readonly hasDocument: _angular_core.Signal<boolean>;
172
+ protected readonly isPageListVisible: _angular_core.Signal<boolean>;
173
+ protected readonly isSearchPanelVisible: _angular_core.Signal<boolean>;
174
+ protected readonly isAnnotationsPanelVisible: _angular_core.Signal<boolean>;
175
+ protected readonly thumbnailPageMap: _angular_core.Signal<Map<number, PdfViewerThumbnailView>>;
176
+ protected readonly pageItems: _angular_core.Signal<PdfViewerPageListItem[]>;
177
+ protected readonly canGoPrevious: _angular_core.Signal<boolean>;
178
+ protected readonly canGoNext: _angular_core.Signal<boolean>;
179
+ protected readonly canZoomOut: _angular_core.Signal<boolean>;
180
+ protected readonly canZoomIn: _angular_core.Signal<boolean>;
181
+ protected readonly zoomLabel: _angular_core.Signal<string>;
182
+ protected readonly displayDocumentName: _angular_core.Signal<string>;
183
+ protected readonly zoomPresets: number[];
184
+ private engine;
185
+ private pdfDocument;
186
+ private registry;
187
+ private pageIntersectionObserver;
188
+ private visiblePageRatios;
189
+ private loadToken;
190
+ private renderToken;
191
+ private searchToken;
192
+ private scrollSyncFrame;
193
+ private programmaticScrollTargetPage;
194
+ private programmaticScrollTimeout;
195
+ private pageObserverFrame;
196
+ private pageObserverTimeout;
197
+ private visiblePageRenderFrame;
198
+ private visiblePageRenderTimeout;
199
+ private pageObserverRefreshAttempts;
200
+ private selectionStart;
201
+ private isViewInitialized;
202
+ private annotationDataSourceToken;
203
+ private annotationDataSourceCleanup;
204
+ private lastZoomChangeTime;
205
+ private readonly programmaticScrollMinDuration;
206
+ private readonly programmaticScrollMaxDuration;
207
+ private readonly qualityRenderZoomIdleDelay;
208
+ constructor();
209
+ ngAfterViewInit(): void;
210
+ previousPage(): void;
211
+ nextPage(): void;
212
+ zoomIn(): void;
213
+ zoomOut(): void;
214
+ togglePageList(): void;
215
+ protected toggleSearchPanel(): void;
216
+ protected toggleAnnotationsPanel(): void;
217
+ protected closeAsidePanel(): void;
218
+ protected updatePdfSearch(event: {
219
+ query: string;
220
+ options: PdfViewerSearchOptions;
221
+ }): Promise<void>;
222
+ protected selectSearchResult(result: PdfViewerSearchResultView): void;
223
+ protected setZoomPreset(scale: number): void;
224
+ protected isZoomPresetSelected(scale: number): boolean;
225
+ protected fitToPage(): void;
226
+ protected fitToWidth(): void;
227
+ protected setSpreadMode(mode: PdfViewerSpreadMode): void;
228
+ protected setScrollLayout(layout: PdfViewerScrollLayout): void;
229
+ protected rotateClockwise(): void;
230
+ protected rotateCounterClockwise(): void;
231
+ protected toggleFullscreen(): void;
232
+ setPage(pageNumber: number): void;
233
+ protected onViewerScroll(): void;
234
+ protected onViewerWheel(event: WheelEvent): void;
235
+ protected selectionRectsForPage(pageNumber: number): PdfViewerSelectionRectView[];
236
+ protected startTextSelection(event: PointerEvent | MouseEvent, page: PdfViewerPageView): void;
237
+ protected updateTextSelection(event: PointerEvent | MouseEvent, page: PdfViewerPageView): void;
238
+ protected finishTextSelection(event: PointerEvent | MouseEvent, page: PdfViewerPageView): void;
239
+ private loadAnnotationsDataSource;
240
+ private applyAnnotationDataSourceResult;
241
+ private setAnnotationItems;
242
+ private isServerAnnotationDataSource;
243
+ private isPromiseLike;
244
+ protected cancelTextSelection(): void;
245
+ private searchPdf;
246
+ private toSearchResultView;
247
+ private loadDocument;
248
+ private initializePageShells;
249
+ private getPageNumbersToDisplay;
250
+ private scheduleVisiblePagesRender;
251
+ private queueVisiblePageRenderFrame;
252
+ private scheduleCurrentVisiblePagesRender;
253
+ private renderVisiblePages;
254
+ private setZoom;
255
+ private applyInstantZoom;
256
+ private getPriorityPageNumbers;
257
+ private getVisiblePageNumbers;
258
+ private patchRenderedPage;
259
+ private renderThumbnails;
260
+ private getPageTextGlyphs;
261
+ private assignTextGlyphLines;
262
+ private getTextLines;
263
+ private rangesOverlap;
264
+ private getCaretOffsetAtPoint;
265
+ private getSelectionPoint;
266
+ private getSelectionRects;
267
+ private openSource;
268
+ private closeDocument;
269
+ private revokeRenderedPages;
270
+ private revokeThumbnailPages;
271
+ private revokeObjectUrl;
272
+ private getSourceName;
273
+ private sanitizePage;
274
+ private sanitizeScale;
275
+ private roundZoom;
276
+ private floorFitZoom;
277
+ private clamp;
278
+ private roundCssPixel;
279
+ private parseCssPixel;
280
+ private getDevicePixelRatio;
281
+ private getPageRasterRenderOptions;
282
+ private createDocumentId;
283
+ private isRenderCurrent;
284
+ private cancelScrollSyncFrame;
285
+ private cancelPageObserverFrame;
286
+ private cancelVisiblePageRenderFrame;
287
+ private getCurrentTime;
288
+ private getQualityRenderDelay;
289
+ private getZoomAnchor;
290
+ private restoreZoomAnchor;
291
+ private disconnectPageObserver;
292
+ private schedulePageObserverRefresh;
293
+ private scheduleNextPageObserverRefresh;
294
+ private setupPageIntersectionObserver;
295
+ private getFitScale;
296
+ private getScaleBounds;
297
+ private sanitizeZoomStep;
298
+ private sanitizePositiveNumber;
299
+ private getPageDisplaySize;
300
+ private getPageBaseSize;
301
+ private scrollToPage;
302
+ private syncActivePageFromViewport;
303
+ private syncActivePageFromIntersections;
304
+ private activatePageFromScroll;
305
+ private findActivePageInViewport;
306
+ private scrollPageListToPage;
307
+ private getPageScrollTop;
308
+ private getPageScrollLeft;
309
+ private getElementScrollTop;
310
+ private getProgrammaticScrollTimeout;
311
+ private startProgrammaticScrollLock;
312
+ private isProgrammaticScrollActive;
313
+ private completeProgrammaticScrollIfSettled;
314
+ private completeProgrammaticScroll;
315
+ private clearProgrammaticScrollLock;
316
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PdfViewer, never>;
317
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PdfViewer, "ngs-pdf-viewer", ["ngsPdfViewer"], { "src": { "alias": "src"; "required": false; "isSignal": true; }; "documentName": { "alias": "documentName"; "required": false; "isSignal": true; }; "wasmUrl": { "alias": "wasmUrl"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "minScale": { "alias": "minScale"; "required": false; "isSignal": true; }; "maxScale": { "alias": "maxScale"; "required": false; "isSignal": true; }; "zoomStep": { "alias": "zoomStep"; "required": false; "isSignal": true; }; "maxRenderPixels": { "alias": "maxRenderPixels"; "required": false; "isSignal": true; }; "maxRenderDimension": { "alias": "maxRenderDimension"; "required": false; "isSignal": true; }; "renderAll": { "alias": "renderAll"; "required": false; "isSignal": true; }; "showToolbar": { "alias": "showToolbar"; "required": false; "isSignal": true; }; "showPageList": { "alias": "showPageList"; "required": false; "isSignal": true; }; "showSearchPanel": { "alias": "showSearchPanel"; "required": false; "isSignal": true; }; "showAnnotationsPanel": { "alias": "showAnnotationsPanel"; "required": false; "isSignal": true; }; "annotations": { "alias": "annotations"; "required": false; "isSignal": true; }; "annotationsDataSource": { "alias": "annotationsDataSource"; "required": false; "isSignal": true; }; "annotationTypeProperty": { "alias": "annotationTypeProperty"; "required": false; "isSignal": true; }; "searchQuery": { "alias": "searchQuery"; "required": false; "isSignal": true; }; "withAnnotations": { "alias": "withAnnotations"; "required": false; "isSignal": true; }; "withForms": { "alias": "withForms"; "required": false; "isSignal": true; }; }, { "loaded": "loaded"; "pageChanged": "pageChanged"; "pageRendered": "pageRendered"; "error": "error"; }, ["annotationDefs"], never, true, never>;
318
+ }
319
+
320
+ declare class PdfViewerAnnotations {
321
+ annotations: _angular_core.InputSignal<PdfViewerAnnotationView[]>;
322
+ annotationDefs: _angular_core.InputSignal<readonly PdfViewerAnnotationDef[]>;
323
+ annotationTypeProperty: _angular_core.InputSignal<string>;
324
+ closed: _angular_core.OutputEmitterRef<void>;
325
+ pageSelected: _angular_core.OutputEmitterRef<number>;
326
+ protected readonly filterQuery: _angular_core.WritableSignal<string>;
327
+ protected readonly filteredAnnotations: _angular_core.Signal<PdfViewerAnnotationView[]>;
328
+ protected setFilterQuery(event: Event): void;
329
+ protected clearFilterQuery(): void;
330
+ protected getAnnotationTemplate(annotation: PdfViewerAnnotationView, index: number): TemplateRef<PdfViewerAnnotationTemplateContext> | null;
331
+ protected getAnnotationTemplateContext(annotation: PdfViewerAnnotationView, index: number): PdfViewerAnnotationTemplateContext;
332
+ protected getAnnotationTypeLabel(annotation: PdfViewerAnnotationView): string;
333
+ protected getAvatarLabel(annotation: PdfViewerAnnotationView): string;
334
+ protected getAvatarImage(annotation: PdfViewerAnnotationView): string;
335
+ protected getReplyLabel(annotation: PdfViewerAnnotationView): string;
336
+ private annotationMatchesFilter;
337
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PdfViewerAnnotations, never>;
338
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PdfViewerAnnotations, "ngs-pdf-viewer-annotations", never, { "annotations": { "alias": "annotations"; "required": false; "isSignal": true; }; "annotationDefs": { "alias": "annotationDefs"; "required": false; "isSignal": true; }; "annotationTypeProperty": { "alias": "annotationTypeProperty"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "pageSelected": "pageSelected"; }, never, never, true, never>;
339
+ }
340
+
341
+ declare class PdfViewerEngineService {
342
+ private readonly engines;
343
+ getEngine(wasmUrl: string): Promise<PdfEngine<Blob>>;
344
+ createRegistry(engine: PdfEngine<Blob>, defaultScale: number): Promise<PluginRegistry>;
345
+ private createEngine;
346
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PdfViewerEngineService, never>;
347
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<PdfViewerEngineService>;
348
+ }
349
+
350
+ interface PdfViewerSearchResultPart {
351
+ text: string;
352
+ highlight: boolean;
353
+ }
354
+ interface PdfViewerSearchResultGroup {
355
+ pageNumber: number;
356
+ results: Array<{
357
+ result: PdfViewerSearchResultView;
358
+ index: number;
359
+ }>;
360
+ }
361
+ declare class PdfViewerSearch {
362
+ results: _angular_core.InputSignal<PdfViewerSearchResultView[]>;
363
+ query: _angular_core.InputSignal<string>;
364
+ closed: _angular_core.OutputEmitterRef<void>;
365
+ resultSelected: _angular_core.OutputEmitterRef<PdfViewerSearchResultView>;
366
+ searchChanged: _angular_core.OutputEmitterRef<{
367
+ query: string;
368
+ options: PdfViewerSearchOptions;
369
+ }>;
370
+ protected readonly caseSensitive: _angular_core.WritableSignal<boolean>;
371
+ protected readonly wholeWord: _angular_core.WritableSignal<boolean>;
372
+ protected readonly activeResultIndex: _angular_core.WritableSignal<number>;
373
+ protected readonly queryValue: _angular_core.WritableSignal<string>;
374
+ protected readonly hasQuery: _angular_core.Signal<boolean>;
375
+ protected readonly visibleResultGroups: _angular_core.Signal<PdfViewerSearchResultGroup[]>;
376
+ protected readonly resultCountLabel: _angular_core.Signal<string>;
377
+ constructor();
378
+ protected setQuery(event: Event): void;
379
+ protected clearQuery(): void;
380
+ protected setCaseSensitive(value: boolean): void;
381
+ protected setWholeWord(value: boolean): void;
382
+ protected previousResult(): void;
383
+ protected nextResult(): void;
384
+ protected selectResult(result: PdfViewerSearchResultView, index: number): void;
385
+ protected resultParts(result: PdfViewerSearchResultView): PdfViewerSearchResultPart[];
386
+ private emitSearchChanged;
387
+ private escapeRegExp;
388
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PdfViewerSearch, never>;
389
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PdfViewerSearch, "ngs-pdf-viewer-search", never, { "results": { "alias": "results"; "required": false; "isSignal": true; }; "query": { "alias": "query"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "resultSelected": "resultSelected"; "searchChanged": "searchChanged"; }, never, never, true, never>;
390
+ }
391
+
392
+ export { PdfViewer, PdfViewerAnnotationDef, PdfViewerAnnotations, PdfViewerEngineService, PdfViewerSearch };
393
+ export type { PdfViewerAnnotationDataSource, PdfViewerAnnotationDataSourceContext, PdfViewerAnnotationDataSourceParams, PdfViewerAnnotationDataSourceResult, PdfViewerAnnotationTemplateContext, PdfViewerAnnotationView, PdfViewerAnnotationWhen, PdfViewerLoadedEvent, PdfViewerPageRenderedEvent, PdfViewerPageView, PdfViewerSearchOptions, PdfViewerSearchResultView, PdfViewerSelectionRectView, PdfViewerServerAnnotationDataSource, PdfViewerSource, PdfViewerTextGlyphView, PdfViewerTextRectView, PdfViewerThumbnailView };