@xtctwins/tctwins-pdf-core 0.1.0 → 0.1.1

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.
@@ -15,6 +15,10 @@ export interface ZoomController {
15
15
  setScale(scale: number): Promise<void>;
16
16
  getScale(): number;
17
17
  getContainerEl(): HTMLElement | null;
18
+ /** 复位视图位置(居中内容) */
19
+ resetPosition(): void;
20
+ /** 切换背景主题(light ↔ dark) */
21
+ toggleTheme(): void;
18
22
  }
19
23
  /**
20
24
  * PDF 查看器全局管理器
@@ -58,7 +62,9 @@ export declare class PdfViewer {
58
62
  /** 获取当前缩放百分比 */
59
63
  getScalePercent(): number;
60
64
  /** 复位视图 */
61
- resetView(): void;
65
+ resetView(): Promise<void>;
66
+ /** 切换背景主题(light ↔ dark) */
67
+ toggleTheme(): void;
62
68
  /** 获取所有标注 */
63
69
  getAnnotations(): AnnotationItem[];
64
70
  /** 清空所有标注 */
@@ -1 +1 @@
1
- {"version":3,"file":"PdfViewer.d.ts","sourceRoot":"","sources":["../src/PdfViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD;;;GAGG;AACH,eAAO,MAAM,WAAW,UAA8F,CAAC;AAEvH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,CAK5E;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,QAAQ,IAAI,MAAM,CAAC;IACnB,cAAc,IAAI,WAAW,GAAG,IAAI,CAAC;CACrC;AAED;;;;;;;GAOG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,YAAY,CAAe;IAInC,6BAA6B;IAC7B,QAAQ,CAAC,WAAW,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAU7H,4CAA4C;IAC5C,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAU5H,+BAA+B;IAC/B,UAAU,IAAI,IAAI;IAUlB,mBAAmB;IACnB,cAAc,IAAI,IAAI;IAUtB,uCAAuC;IACvC,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIhD,eAAe;IACf,gBAAgB,IAAI,IAAI;IAKxB,aAAa;IACb,UAAU,IAAI,IAAI;IAUlB,eAAe;IACf,OAAO,IAAI,MAAM;IAMjB,WAAW;IACX,MAAM,IAAI,IAAI;IAQd,WAAW;IACX,OAAO,IAAI,IAAI;IAQf,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B,eAAe;IACf,QAAQ,IAAI,MAAM;IAIlB,gBAAgB;IAChB,eAAe,IAAI,MAAM;IAIzB,WAAW;IACX,SAAS,IAAI,IAAI;IAajB,aAAa;IACb,cAAc,IAAI,cAAc,EAAE;IAiBlC,aAAa;IACb,gBAAgB,IAAI,IAAI;IAMxB,cAAc;IACd,wBAAwB,IAAI,IAAI;IAKhC,WAAW;IACX,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAKzC,mBAAmB;IACnB,uBAAuB,IAAI,MAAM,GAAG,IAAI;IAMxC,6BAA6B;IAC7B,cAAc,IAAI,WAAW,GAAG,IAAI;IAIpC,aAAa;IACb,cAAc;IAMd,oBAAoB;IACpB,QAAQ,IAAI,IAAI;IAOhB,cAAc;IACd,cAAc,IAAI,MAAM,GAAG,IAAI;CAG/B"}
1
+ {"version":3,"file":"PdfViewer.d.ts","sourceRoot":"","sources":["../src/PdfViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD;;;GAGG;AACH,eAAO,MAAM,WAAW,UAA0G,CAAC;AAEnI,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,CAK5E;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,QAAQ,IAAI,MAAM,CAAC;IACnB,cAAc,IAAI,WAAW,GAAG,IAAI,CAAC;IACrC,mBAAmB;IACnB,aAAa,IAAI,IAAI,CAAC;IACtB,2BAA2B;IAC3B,WAAW,IAAI,IAAI,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,YAAY,CAAe;IAInC,6BAA6B;IAC7B,QAAQ,CAAC,WAAW,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAU7H,4CAA4C;IAC5C,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAU5H,+BAA+B;IAC/B,UAAU,IAAI,IAAI;IAUlB,mBAAmB;IACnB,cAAc,IAAI,IAAI;IAUtB,uCAAuC;IACvC,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIhD,eAAe;IACf,gBAAgB,IAAI,IAAI;IAKxB,aAAa;IACb,UAAU,IAAI,IAAI;IAUlB,eAAe;IACf,OAAO,IAAI,MAAM;IAMjB,WAAW;IACX,MAAM,IAAI,IAAI;IAQd,WAAW;IACX,OAAO,IAAI,IAAI;IAQf,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B,eAAe;IACf,QAAQ,IAAI,MAAM;IAIlB,gBAAgB;IAChB,eAAe,IAAI,MAAM;IAIzB,WAAW;IACL,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAOhC,2BAA2B;IAC3B,WAAW,IAAI,IAAI;IAMnB,aAAa;IACb,cAAc,IAAI,cAAc,EAAE;IAiBlC,aAAa;IACb,gBAAgB,IAAI,IAAI;IAMxB,cAAc;IACd,wBAAwB,IAAI,IAAI;IAKhC,WAAW;IACX,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAKzC,mBAAmB;IACnB,uBAAuB,IAAI,MAAM,GAAG,IAAI;IAMxC,6BAA6B;IAC7B,cAAc,IAAI,WAAW,GAAG,IAAI;IAIpC,aAAa;IACb,cAAc;IAMd,oBAAoB;IACpB,QAAQ,IAAI,IAAI;IAOhB,cAAc;IACd,cAAc,IAAI,MAAM,GAAG,IAAI;CAG/B"}
@@ -0,0 +1,13 @@
1
+ type __VLS_Props = {
2
+ /** 是否显示面板 */
3
+ visible?: boolean;
4
+ /** 最大保留日志条数 */
5
+ maxLogs?: number;
6
+ };
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
8
+ visible: boolean;
9
+ maxLogs: number;
10
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
13
+ //# sourceMappingURL=MobileConsole.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MobileConsole.vue.d.ts","sourceRoot":"","sources":["../../src/components/MobileConsole.vue"],"names":[],"mappings":"AA+RA,KAAK,WAAW,GAAG;IACjB,aAAa;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAkPF,QAAA,MAAM,YAAY;aArPN,OAAO;aAEP,MAAM;6EAsPhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -51,15 +51,15 @@ export declare const PdfViewerComponent: import("vue").DefineComponent<import("v
51
51
  default: boolean;
52
52
  };
53
53
  }>> & Readonly<{
54
- onLoaded?: ((...args: any[]) => any) | undefined;
55
54
  onError?: ((...args: any[]) => any) | undefined;
55
+ onLoaded?: ((...args: any[]) => any) | undefined;
56
56
  "onAnnotation-added"?: ((...args: any[]) => any) | undefined;
57
57
  }>, {
58
58
  scale: number;
59
59
  theme: string;
60
- modelValue: any;
61
- width: string | number;
62
60
  height: string | number;
61
+ width: string | number;
62
+ modelValue: any;
63
63
  toolbar: boolean;
64
64
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
65
65
  //# sourceMappingURL=PdfViewer.d.ts.map
@@ -34,10 +34,11 @@ declare const __VLS_export: import("vue").DefineComponent<PdfViewerProps, {
34
34
  scale: number;
35
35
  zoomSpeed: number;
36
36
  theme: "light" | "dark";
37
- modelValue: ArrayBuffer | null;
38
- width: string | number;
39
37
  height: string | number;
38
+ width: string | number;
39
+ modelValue: ArrayBuffer | null;
40
40
  toolbar: boolean;
41
+ showConsole: boolean;
41
42
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
42
43
  declare const _default: typeof __VLS_export;
43
44
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"PdfViewer.vue.d.ts","sourceRoot":"","sources":["../../src/components/PdfViewer.vue"],"names":[],"mappings":"AAwQA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,qBAAqB,CAAC;AA2Q1E,QAAA,MAAM,YAAY;mBAlJU,IAAI,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAuJ5C,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"PdfViewer.vue.d.ts","sourceRoot":"","sources":["../../src/components/PdfViewer.vue"],"names":[],"mappings":"AAgTA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,qBAAqB,CAAC;AAkU1E,QAAA,MAAM,YAAY;mBApKU,IAAI,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAyK5C,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -3,8 +3,10 @@ import type { ViewerInteractionController } from "./interaction";
3
3
  export interface UseAnnotationCanvasOptions {
4
4
  /** 标注 canvas 元素引用 */
5
5
  annotationCanvas: Ref<HTMLCanvasElement | null>;
6
- /** wrapper 元素引用(用于同步 canvas 尺寸) */
6
+ /** wrapper 元素引用(现在用于跟随 pdfLayer 对齐) */
7
7
  rootRef: Ref<HTMLElement | null>;
8
+ /** PDF 内容层引用(canvas 尺寸对齐到这里) */
9
+ pdfLayerRef?: Ref<HTMLElement | null>;
8
10
  /** 交互控制器 */
9
11
  interaction: ViewerInteractionController;
10
12
  /** 预览点(拖拽过程中跟随鼠标的点) */
@@ -15,7 +17,12 @@ export interface UseAnnotationCanvasOptions {
15
17
  }
16
18
  /**
17
19
  * Canvas 标注渲染 Composable
18
- * 负责在 overlay canvas 上绘制测量线、矩形标注及其预览
20
+ *
21
+ * 变更说明(配合 useViewerLayout transform 方案):
22
+ * - syncCanvasSize 现在对齐 pdfLayer(PDF 内容层)的实际尺寸,
23
+ * 而不是 rootRef/viewer 的 getBoundingClientRect,
24
+ * 因为 rootRef 现在是 position:absolute + transform,
25
+ * getBoundingClientRect 会受 transform 影响导致坐标错乱。
19
26
  */
20
27
  export declare function useAnnotationCanvas(options: UseAnnotationCanvasOptions): {
21
28
  getCanvasPoint: (event: MouseEvent) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useAnnotationCanvas.d.ts","sourceRoot":"","sources":["../../src/components/useAnnotationCanvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAGjE,MAAM,WAAW,0BAA0B;IAC1C,qBAAqB;IACrB,gBAAgB,EAAE,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAChD,mCAAmC;IACnC,OAAO,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjC,YAAY;IACZ,WAAW,EAAE,2BAA2B,CAAC;IACzC,uBAAuB;IACvB,YAAY,EAAE,GAAG,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACnD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B;4BAMvC,UAAU;;;;kCASJ;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,SAAS;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,OAAO;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;+BAc3F;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,cAAc;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,CAAC;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;;;EA8IrJ"}
1
+ {"version":3,"file":"useAnnotationCanvas.d.ts","sourceRoot":"","sources":["../../src/components/useAnnotationCanvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAGjE,MAAM,WAAW,0BAA0B;IAC1C,qBAAqB;IACrB,gBAAgB,EAAE,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAChD,uCAAuC;IACvC,OAAO,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjC,gCAAgC;IAChC,WAAW,CAAC,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACtC,YAAY;IACZ,WAAW,EAAE,2BAA2B,CAAC;IACzC,uBAAuB;IACvB,YAAY,EAAE,GAAG,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B;4BAMvC,UAAU;;;;kCAWJ;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,SAAS;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,OAAO;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;+BAY3F;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,cAAc;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,CAAC;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;;;EA2JrJ"}
@@ -3,31 +3,22 @@ export interface ViewerContainerStyle {
3
3
  width: string;
4
4
  height: string;
5
5
  background: string;
6
- overflow: "auto";
6
+ overflow: "hidden";
7
7
  borderRadius: string;
8
8
  border: string;
9
9
  position: "relative";
10
- touchAction: "pan-x pan-y";
11
- display: "flex";
10
+ touchAction: "none";
11
+ display: "block";
12
12
  }
13
13
  export interface UseViewerLayoutOptions {
14
- /** 外层滚动容器 */
15
14
  viewerRef: Ref<HTMLElement | null>;
16
- /** 内层 wrapper */
17
15
  rootRef: Ref<HTMLElement | null>;
18
- /** PDF 内容层 */
19
16
  pdfLayerRef: Ref<HTMLElement | null>;
20
- /** 当前缩放比例 */
21
17
  currentScale: Ref<number>;
22
- /** 设置缩放 */
23
18
  setScale: (scale: number) => Promise<void>;
24
- /** 缩放速率 */
25
19
  zoomSpeed: number;
26
- /** 主题 */
27
- theme: "light" | "dark";
28
- /** 同步 canvas 尺寸 */
20
+ theme: Ref<"light" | "dark">;
29
21
  syncCanvasSize: () => void;
30
- /** 重绘标注 */
31
22
  drawAnnotations: () => void;
32
23
  }
33
24
  export interface UseViewerLayoutResult {
@@ -36,11 +27,25 @@ export interface UseViewerLayoutResult {
36
27
  handleWheel: (event: WheelEvent) => void;
37
28
  handleTouchStart: (event: TouchEvent) => void;
38
29
  handleTouchMove: (event: TouchEvent) => void;
39
- handleTouchEnd: () => void;
30
+ handleTouchEnd: (event: TouchEvent) => void;
31
+ handleMouseDown: (event: MouseEvent) => void;
32
+ isMouseDragging: Ref<boolean>;
33
+ cleanupMouseDrag: () => void;
40
34
  }
41
35
  /**
42
- * 缩放与布局 Composable
43
- * 包括容器样式、wrapper 尺寸调整、鼠标滚轮缩放、触屏双指缩放
36
+ * 坐标系:
37
+ * tx/ty = wrapper 左上角在 viewer 视口内的像素偏移
38
+ * 内容像素点 = (视口坐标 - tx) ← 直接像素,pdfjs 已按 scale 渲染,无需再除
39
+ *
40
+ * 两阶段缩放防闪:
41
+ * Phase-1 (同步):CSS scale() 补偿,视觉即时响应
42
+ * Phase-2 (异步):pdfjs 真实渲染完成后撤销 CSS 补偿
43
+ *
44
+ * 关键修复:
45
+ * - 维护 committedScale(最后一次 pdfjs 真实渲染的 scale),
46
+ * 所有 cssExtraScale 计算都基于它,而非 currentScale.value(可能是中间值)
47
+ * - 触屏缩放加长防抖(移动端 300ms),减少 pdfjs 重渲染频率
48
+ * - 移动端限制最大渲染 scale(MOBILE_MAX_RENDER_SCALE),超出时仅做 CSS 放大
44
49
  */
45
50
  export declare function useViewerLayout(options: UseViewerLayoutOptions): UseViewerLayoutResult;
46
51
  //# sourceMappingURL=useViewerLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useViewerLayout.d.ts","sourceRoot":"","sources":["../../src/components/useViewerLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAG3D,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,WAAW,EAAE,aAAa,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACtC,aAAa;IACb,SAAS,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACnC,iBAAiB;IACjB,OAAO,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjC,cAAc;IACd,WAAW,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACrC,aAAa;IACb,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,WAAW;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS;IACT,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,mBAAmB;IACnB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW;IACX,eAAe,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACrC,cAAc,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAClD,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC,gBAAgB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7C,cAAc,EAAE,MAAM,IAAI,CAAC;CAC3B;AAgCD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,CAqMtF"}
1
+ {"version":3,"file":"useViewerLayout.d.ts","sourceRoot":"","sources":["../../src/components/useViewerLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAKhE,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACtC,SAAS,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACnC,OAAO,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjC,WAAW,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACrC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;IAC7B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACrC,cAAc,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAClD,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC,gBAAgB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7C,cAAc,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7C,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC7B;AA8BD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,CAwdtF"}
@@ -18,6 +18,8 @@ export interface UseViewerManagerOptions {
18
18
  x: number;
19
19
  y: number;
20
20
  };
21
+ /** 切换主题(light ↔ dark) */
22
+ toggleTheme: () => void;
21
23
  }
22
24
  export interface UseViewerManagerResult {
23
25
  /** ToolManager 实例(替代旧的 ViewerInteractionController) */
@@ -1 +1 @@
1
- {"version":3,"file":"useViewerManager.d.ts","sourceRoot":"","sources":["../../src/components/useViewerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAc,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAY,cAAc,EAAqC,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,WAAW,EAA6B,MAAM,UAAU,CAAC;AAGlE,MAAM,WAAW,uBAAuB;IACvC,WAAW;IACX,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW;IACX,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,WAAW;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,aAAa;IACb,SAAS,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACnC,WAAW;IACX,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,wCAAwC;IACxC,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE;AAED,MAAM,WAAW,sBAAsB;IACtC,uDAAuD;IACvD,WAAW,EAAE,WAAW,CAAC;IACzB,mBAAmB;IACnB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClB,mCAAmC;IACnC,WAAW,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IACnC,oBAAoB;IACpB,oBAAoB,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEzC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1D,iBAAiB,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IACrD,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAE9C,4BAA4B;IAC5B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,4BAA4B;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CAwHzF"}
1
+ {"version":3,"file":"useViewerManager.d.ts","sourceRoot":"","sources":["../../src/components/useViewerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAc,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAY,cAAc,EAAqC,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,WAAW,EAA6B,MAAM,UAAU,CAAC;AAGlE,MAAM,WAAW,uBAAuB;IACvC,WAAW;IACX,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW;IACX,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,WAAW;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,aAAa;IACb,SAAS,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACnC,WAAW;IACX,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,wCAAwC;IACxC,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,yBAAyB;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACtC,uDAAuD;IACvD,WAAW,EAAE,WAAW,CAAC;IACzB,mBAAmB;IACnB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClB,mCAAmC;IACnC,WAAW,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IACnC,oBAAoB;IACpB,oBAAoB,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEzC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1D,iBAAiB,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IACrD,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAE9C,4BAA4B;IAC5B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,4BAA4B;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CA8HzF"}
@@ -4,7 +4,6 @@ export interface TileRenderOptions {
4
4
  scale?: number;
5
5
  tileSize?: number;
6
6
  cache?: TileLRUCache;
7
- /** CSS 颜色字符串,作为 PDF 页面渲染背景和 canvas CSS 背景 */
8
7
  backgroundColor?: string;
9
8
  }
10
9
  export interface Tile {
@@ -1 +1 @@
1
- {"version":3,"file":"TileRenderer.d.ts","sourceRoot":"","sources":["../../src/core/TileRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,IAAI;IACpB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACzB,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,IAAI,EAAE,CAAC;CACd;AAcD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,oBAAoB,CAAA;CAAE,CAAC,CA0GnK"}
1
+ {"version":3,"file":"TileRenderer.d.ts","sourceRoot":"","sources":["../../src/core/TileRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,IAAI;IACpB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACzB,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,IAAI,EAAE,CAAC;CACd;AAiDD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,oBAAoB,CAAA;CAAE,CAAC,CAyLnK"}