@vue-pdf-viewer/viewer 3.5.2-rc.0 → 3.6.0-beta.0

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.
@@ -1,5 +1,5 @@
1
1
  import { ComputedRef, MaybeRef, PropType, Reactive, Ref, ShallowRef } from 'vue';
2
- import type { PageViewport } from 'pdfjs-dist';
2
+ import type { PageViewport, RenderTask } from 'pdfjs-dist';
3
3
  import type { DocumentInitParameters, OnProgressParameters, PDFDataRangeTransport, TextContent, TypedArray, PDFPageProxy, PDFDocumentProxy, RenderParameters } from 'pdfjs-dist/types/src/display/api';
4
4
  import type { Metadata } from 'pdfjs-dist/types/src/display/metadata';
5
5
  import type { Annotation } from '@vue-pdf-viewer/shared';
@@ -87,6 +87,10 @@ export interface TextLayerLoadedEventPayload {
87
87
  textContent: TextContent | undefined;
88
88
  textLayerRef?: HTMLElement;
89
89
  }
90
+ export interface CanvasRenderedEventPayload {
91
+ pageIndex: number;
92
+ canvas: HTMLCanvasElement;
93
+ }
90
94
  export interface HighlightOptions {
91
95
  matchCase?: boolean;
92
96
  wholeWords?: boolean;
@@ -238,10 +242,6 @@ export interface ViewerState {
238
242
  isEditing: Ref<boolean>;
239
243
  updateViewerState: (state: Partial<ViewerState>) => void;
240
244
  }
241
- export interface VisibilityInfo {
242
- pageIndex: number;
243
- ratio: number;
244
- }
245
245
  export interface ToolbarOptions {
246
246
  /**
247
247
  * Determines whether the toolbar includes a search functionality.
@@ -626,7 +626,10 @@ export interface DownloadControl {
626
626
  }
627
627
  export interface ZoomControl {
628
628
  scale: Ref<number>;
629
- zoom(scale: number | ZoomLevel): void;
629
+ zoom(scale: number | ZoomLevel, options?: {
630
+ immediate?: boolean;
631
+ origin?: [number, number];
632
+ }): void;
630
633
  }
631
634
  export interface UseScaleCallback {
632
635
  status: 'success' | 'error';
@@ -666,7 +669,7 @@ export interface RenderQueueItem {
666
669
  page: PDFPageProxy;
667
670
  canvasElem: HTMLCanvasElement;
668
671
  options: RenderParameters;
669
- onLoaded?: () => void;
672
+ onLoaded?: (renderTask: RenderTask) => void;
670
673
  onError?: (error: Error) => void;
671
674
  onComplete?: () => void;
672
675
  }
@@ -676,6 +679,11 @@ export type RectBox = {
676
679
  width: number;
677
680
  height: number;
678
681
  };
682
+ export interface PageLayout {
683
+ rotation: number;
684
+ width: number;
685
+ height: number;
686
+ }
679
687
  export interface AnnotationHighlight extends Annotation {
680
688
  hexColor: string;
681
689
  drawLayerId: number;
@@ -715,3 +723,24 @@ export interface AnnotationFreeText extends Annotation {
715
723
  };
716
724
  isModified?: boolean;
717
725
  }
726
+ /**
727
+ * Visible area of a page in viewport coordinates.
728
+ * Following pdf.js pattern from pdf_page_detail_view.js
729
+ */
730
+ export interface VisibleArea {
731
+ minX: number;
732
+ minY: number;
733
+ maxX: number;
734
+ maxY: number;
735
+ }
736
+ /**
737
+ * Detail canvas rendering area (visible area + overflow padding).
738
+ * Following pdf.js pattern from pdf_page_detail_view.js
739
+ */
740
+ export interface DetailArea {
741
+ minX: number;
742
+ minY: number;
743
+ width: number;
744
+ height: number;
745
+ scale: number;
746
+ }
@@ -7,6 +7,18 @@ export declare function generateUniqueCSSClassName(): string;
7
7
  export declare const attachWatermarkShadowDOM: (rootViewer: HTMLDivElement) => HTMLDivElement;
8
8
  export declare const formatDate: (date: string) => string;
9
9
  export declare const formatCommentTimestamp: (date: string | Date) => string;
10
+ /**
11
+ * Calculate scale for ZoomLevel presets based on container and page dimensions.
12
+ * Handles dual page modes by doubling effective page width.
13
+ *
14
+ * @param container - The container element
15
+ * @param pageHeight - Height of a single page
16
+ * @param pageWidth - Width of a single page
17
+ * @param scale - ZoomLevel preset (ActualSize, PageFit, PageWidth)
18
+ * @param viewMode - Current view mode
19
+ * @param numPages - Total number of pages in document
20
+ * @returns Calculated scale value
21
+ */
10
22
  export declare function calculateScale(container: HTMLElement, pageHeight: number, pageWidth: number, scale: ZoomLevel, viewMode: ViewMode, numPages: number): number;
11
23
  export declare const getTodayPdfDate: () => string;
12
24
  export declare const getPdfDate: (date: string | Date) => string | Date;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vue-pdf-viewer/viewer",
3
3
  "private": false,
4
- "version": "3.5.2-rc.0",
4
+ "version": "3.6.0-beta.0",
5
5
  "type": "module",
6
6
  "main": "./dist/index.umd.cjs",
7
7
  "module": "./dist/index.js",
@@ -1,8 +0,0 @@
1
- import { UnwrapRef } from 'vue';
2
- import { ViewerPdfPage, ViewerState } from '@/utils/types';
3
- declare function usePdfPageSizes(props: UnwrapRef<ViewerState>): {
4
- pdfPages: import("vue").ComputedRef<ViewerPdfPage[]>;
5
- estimatedPdfPages: import("vue").ShallowRef<ViewerPdfPage[], ViewerPdfPage[]>;
6
- actualPdfPages: import("vue").ShallowRef<ViewerPdfPage[], ViewerPdfPage[]>;
7
- };
8
- export default usePdfPageSizes;
@@ -1,9 +0,0 @@
1
- import { type Ref } from 'vue';
2
- import { VirtualRange, VisibilityInfo } from '@/utils/types';
3
- declare function useVisibilities(totalPages: Ref<number>): {
4
- resetVisibility: (preserveRange?: VirtualRange) => void;
5
- updateVisibility: (info: VisibilityInfo) => void;
6
- currentPage: Ref<number, number>;
7
- calculateCurrentPage: (range?: VirtualRange) => number;
8
- };
9
- export default useVisibilities;