@jacktea/pdf-viewer-component 0.1.5

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.
Files changed (285) hide show
  1. package/README.md +45 -0
  2. package/dist/annotations/annotation-layer.d.ts +40 -0
  3. package/dist/annotations/annotation-layer.d.ts.map +1 -0
  4. package/dist/annotations/annotation-layer.test.d.ts +2 -0
  5. package/dist/annotations/annotation-layer.test.d.ts.map +1 -0
  6. package/dist/annotations/interaction/annotation-interaction-controller.d.ts +59 -0
  7. package/dist/annotations/interaction/annotation-interaction-controller.d.ts.map +1 -0
  8. package/dist/annotations/interaction/tool-utils.d.ts +11 -0
  9. package/dist/annotations/interaction/tool-utils.d.ts.map +1 -0
  10. package/dist/annotations/rendering/annotation-svg-renderer.d.ts +28 -0
  11. package/dist/annotations/rendering/annotation-svg-renderer.d.ts.map +1 -0
  12. package/dist/annotations/rendering/annotation-svg-renderer.test.d.ts +2 -0
  13. package/dist/annotations/rendering/annotation-svg-renderer.test.d.ts.map +1 -0
  14. package/dist/annotations/rendering/geometry-utils.d.ts +6 -0
  15. package/dist/annotations/rendering/geometry-utils.d.ts.map +1 -0
  16. package/dist/annotations/rendering/hit-testing.d.ts +10 -0
  17. package/dist/annotations/rendering/hit-testing.d.ts.map +1 -0
  18. package/dist/annotations/rendering/index.d.ts +3 -0
  19. package/dist/annotations/rendering/index.d.ts.map +1 -0
  20. package/dist/annotations/settings.d.ts +46 -0
  21. package/dist/annotations/settings.d.ts.map +1 -0
  22. package/dist/annotations/types.d.ts +3 -0
  23. package/dist/annotations/types.d.ts.map +1 -0
  24. package/dist/annotations/ui/annotation-metadata.d.ts +12 -0
  25. package/dist/annotations/ui/annotation-metadata.d.ts.map +1 -0
  26. package/dist/annotations/ui/appearance-editor.d.ts +16 -0
  27. package/dist/annotations/ui/appearance-editor.d.ts.map +1 -0
  28. package/dist/annotations/ui/arrow-style-editor.d.ts +17 -0
  29. package/dist/annotations/ui/arrow-style-editor.d.ts.map +1 -0
  30. package/dist/annotations/ui/header-card.d.ts +4 -0
  31. package/dist/annotations/ui/header-card.d.ts.map +1 -0
  32. package/dist/annotations/ui/index.d.ts +8 -0
  33. package/dist/annotations/ui/index.d.ts.map +1 -0
  34. package/dist/annotations/ui/popup-toolbar.d.ts +53 -0
  35. package/dist/annotations/ui/popup-toolbar.d.ts.map +1 -0
  36. package/dist/annotations/ui/popup-toolbar.test.d.ts +2 -0
  37. package/dist/annotations/ui/popup-toolbar.test.d.ts.map +1 -0
  38. package/dist/annotations/ui/stroke-style-editor.d.ts +16 -0
  39. package/dist/annotations/ui/stroke-style-editor.d.ts.map +1 -0
  40. package/dist/annotations/ui/style-pickers.d.ts +82 -0
  41. package/dist/annotations/ui/style-pickers.d.ts.map +1 -0
  42. package/dist/annotations/ui/text-style-editor.d.ts +22 -0
  43. package/dist/annotations/ui/text-style-editor.d.ts.map +1 -0
  44. package/dist/annotations/ui/tool-selector.d.ts +8 -0
  45. package/dist/annotations/ui/tool-selector.d.ts.map +1 -0
  46. package/dist/components/popover.d.ts +25 -0
  47. package/dist/components/popover.d.ts.map +1 -0
  48. package/dist/components/tooltip.d.ts +28 -0
  49. package/dist/components/tooltip.d.ts.map +1 -0
  50. package/dist/coordinators/annotation-coordinator.d.ts +281 -0
  51. package/dist/coordinators/annotation-coordinator.d.ts.map +1 -0
  52. package/dist/coordinators/annotation-coordinator.test.d.ts +2 -0
  53. package/dist/coordinators/annotation-coordinator.test.d.ts.map +1 -0
  54. package/dist/coordinators/event-dispatcher.d.ts +93 -0
  55. package/dist/coordinators/event-dispatcher.d.ts.map +1 -0
  56. package/dist/coordinators/index.d.ts +20 -0
  57. package/dist/coordinators/index.d.ts.map +1 -0
  58. package/dist/coordinators/mode-coordinator.d.ts +74 -0
  59. package/dist/coordinators/mode-coordinator.d.ts.map +1 -0
  60. package/dist/coordinators/panel-coordinator-v2.d.ts +138 -0
  61. package/dist/coordinators/panel-coordinator-v2.d.ts.map +1 -0
  62. package/dist/coordinators/state-sync-manager.d.ts +37 -0
  63. package/dist/coordinators/state-sync-manager.d.ts.map +1 -0
  64. package/dist/coordinators/state-tracker.d.ts +48 -0
  65. package/dist/coordinators/state-tracker.d.ts.map +1 -0
  66. package/dist/coordinators/state-types.d.ts +56 -0
  67. package/dist/coordinators/state-types.d.ts.map +1 -0
  68. package/dist/coordinators/ui-initializer.d.ts +130 -0
  69. package/dist/coordinators/ui-initializer.d.ts.map +1 -0
  70. package/dist/di/container.d.ts +77 -0
  71. package/dist/di/container.d.ts.map +1 -0
  72. package/dist/di/container.test.d.ts +5 -0
  73. package/dist/di/container.test.d.ts.map +1 -0
  74. package/dist/di/index.d.ts +11 -0
  75. package/dist/di/index.d.ts.map +1 -0
  76. package/dist/di/tokens.d.ts +88 -0
  77. package/dist/di/tokens.d.ts.map +1 -0
  78. package/dist/domains/annotation/index.d.ts +9 -0
  79. package/dist/domains/annotation/index.d.ts.map +1 -0
  80. package/dist/domains/annotation/styles.d.ts +23 -0
  81. package/dist/domains/annotation/styles.d.ts.map +1 -0
  82. package/dist/domains/annotation/sync.d.ts +68 -0
  83. package/dist/domains/annotation/sync.d.ts.map +1 -0
  84. package/dist/domains/annotation/sync.test.d.ts +2 -0
  85. package/dist/domains/annotation/sync.test.d.ts.map +1 -0
  86. package/dist/domains/export/index.d.ts +10 -0
  87. package/dist/domains/export/index.d.ts.map +1 -0
  88. package/dist/domains/export/metadata.d.ts +31 -0
  89. package/dist/domains/export/metadata.d.ts.map +1 -0
  90. package/dist/domains/export/metadata.test.d.ts +2 -0
  91. package/dist/domains/export/metadata.test.d.ts.map +1 -0
  92. package/dist/domains/export/pdf-export.d.ts +70 -0
  93. package/dist/domains/export/pdf-export.d.ts.map +1 -0
  94. package/dist/domains/export/pdf-export.test.d.ts +2 -0
  95. package/dist/domains/export/pdf-export.test.d.ts.map +1 -0
  96. package/dist/domains/export/watermark.d.ts +24 -0
  97. package/dist/domains/export/watermark.d.ts.map +1 -0
  98. package/dist/domains/export/watermark.test.d.ts +2 -0
  99. package/dist/domains/export/watermark.test.d.ts.map +1 -0
  100. package/dist/domains/index.d.ts +18 -0
  101. package/dist/domains/index.d.ts.map +1 -0
  102. package/dist/domains/ui/dialogs.d.ts +49 -0
  103. package/dist/domains/ui/dialogs.d.ts.map +1 -0
  104. package/dist/domains/ui/dialogs.test.d.ts +2 -0
  105. package/dist/domains/ui/dialogs.test.d.ts.map +1 -0
  106. package/dist/domains/ui/editors.d.ts +120 -0
  107. package/dist/domains/ui/editors.d.ts.map +1 -0
  108. package/dist/domains/ui/index.d.ts +9 -0
  109. package/dist/domains/ui/index.d.ts.map +1 -0
  110. package/dist/domains/viewer/actions.d.ts +90 -0
  111. package/dist/domains/viewer/actions.d.ts.map +1 -0
  112. package/dist/domains/viewer/actions.test.d.ts +2 -0
  113. package/dist/domains/viewer/actions.test.d.ts.map +1 -0
  114. package/dist/domains/viewer/index.d.ts +10 -0
  115. package/dist/domains/viewer/index.d.ts.map +1 -0
  116. package/dist/domains/viewer/persistence.d.ts +122 -0
  117. package/dist/domains/viewer/persistence.d.ts.map +1 -0
  118. package/dist/domains/viewer/persistence.test.d.ts +2 -0
  119. package/dist/domains/viewer/persistence.test.d.ts.map +1 -0
  120. package/dist/domains/viewer/types.d.ts +42 -0
  121. package/dist/domains/viewer/types.d.ts.map +1 -0
  122. package/dist/i18n/index.d.ts +77 -0
  123. package/dist/i18n/index.d.ts.map +1 -0
  124. package/dist/i18n/locales/en.d.ts +3 -0
  125. package/dist/i18n/locales/en.d.ts.map +1 -0
  126. package/dist/i18n/locales/zh-CN.d.ts +3 -0
  127. package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
  128. package/dist/i18n/types.d.ts +231 -0
  129. package/dist/i18n/types.d.ts.map +1 -0
  130. package/dist/icons/icon-registry.d.ts +69 -0
  131. package/dist/icons/icon-registry.d.ts.map +1 -0
  132. package/dist/icons/toolbar-icons.d.ts +38 -0
  133. package/dist/icons/toolbar-icons.d.ts.map +1 -0
  134. package/dist/index.d.ts +14 -0
  135. package/dist/index.d.ts.map +1 -0
  136. package/dist/index.es.js +1 -0
  137. package/dist/layers/canvas-layer.d.ts +44 -0
  138. package/dist/layers/canvas-layer.d.ts.map +1 -0
  139. package/dist/layers/canvas-layer.test.d.ts +2 -0
  140. package/dist/layers/canvas-layer.test.d.ts.map +1 -0
  141. package/dist/layers/canvas-utils.d.ts +80 -0
  142. package/dist/layers/canvas-utils.d.ts.map +1 -0
  143. package/dist/layers/template-layer.d.ts +41 -0
  144. package/dist/layers/template-layer.d.ts.map +1 -0
  145. package/dist/panels/annotation-comments-panel.d.ts +80 -0
  146. package/dist/panels/annotation-comments-panel.d.ts.map +1 -0
  147. package/dist/panels/annotation-settings-panel.d.ts +60 -0
  148. package/dist/panels/annotation-settings-panel.d.ts.map +1 -0
  149. package/dist/panels/annotation-summary-panel.d.ts +127 -0
  150. package/dist/panels/annotation-summary-panel.d.ts.map +1 -0
  151. package/dist/panels/annotation-summary-panel.test.d.ts +2 -0
  152. package/dist/panels/annotation-summary-panel.test.d.ts.map +1 -0
  153. package/dist/panels/comment-input.d.ts +34 -0
  154. package/dist/panels/comment-input.d.ts.map +1 -0
  155. package/dist/panels/comment-input.test.d.ts +2 -0
  156. package/dist/panels/comment-input.test.d.ts.map +1 -0
  157. package/dist/panels/container-panel.d.ts +136 -0
  158. package/dist/panels/container-panel.d.ts.map +1 -0
  159. package/dist/panels/content-panel.d.ts +95 -0
  160. package/dist/panels/content-panel.d.ts.map +1 -0
  161. package/dist/panels/document-properties-panel.d.ts +54 -0
  162. package/dist/panels/document-properties-panel.d.ts.map +1 -0
  163. package/dist/panels/index.d.ts +26 -0
  164. package/dist/panels/index.d.ts.map +1 -0
  165. package/dist/panels/outline-panel.d.ts +32 -0
  166. package/dist/panels/outline-panel.d.ts.map +1 -0
  167. package/dist/panels/panel-factory.d.ts +37 -0
  168. package/dist/panels/panel-factory.d.ts.map +1 -0
  169. package/dist/panels/panel-integration-example.d.ts +49 -0
  170. package/dist/panels/panel-integration-example.d.ts.map +1 -0
  171. package/dist/panels/panel-manager.d.ts +98 -0
  172. package/dist/panels/panel-manager.d.ts.map +1 -0
  173. package/dist/panels/template-field-panel.d.ts +27 -0
  174. package/dist/panels/template-field-panel.d.ts.map +1 -0
  175. package/dist/panels/template-property-panel.d.ts +30 -0
  176. package/dist/panels/template-property-panel.d.ts.map +1 -0
  177. package/dist/panels/template-ui-helpers.d.ts +32 -0
  178. package/dist/panels/template-ui-helpers.d.ts.map +1 -0
  179. package/dist/panels/thumbnail-panel.d.ts +49 -0
  180. package/dist/panels/thumbnail-panel.d.ts.map +1 -0
  181. package/dist/pdfjs.d.ts +15 -0
  182. package/dist/pdfjs.d.ts.map +1 -0
  183. package/dist/plugins/examples/custom-tool-plugin.d.ts +12 -0
  184. package/dist/plugins/examples/custom-tool-plugin.d.ts.map +1 -0
  185. package/dist/plugins/index.d.ts +9 -0
  186. package/dist/plugins/index.d.ts.map +1 -0
  187. package/dist/plugins/plugin-manager.d.ts +108 -0
  188. package/dist/plugins/plugin-manager.d.ts.map +1 -0
  189. package/dist/plugins/plugin-manager.test.d.ts +5 -0
  190. package/dist/plugins/plugin-manager.test.d.ts.map +1 -0
  191. package/dist/plugins/types.d.ts +167 -0
  192. package/dist/plugins/types.d.ts.map +1 -0
  193. package/dist/render/page-renderer.d.ts +16 -0
  194. package/dist/render/page-renderer.d.ts.map +1 -0
  195. package/dist/render/scale.d.ts +3 -0
  196. package/dist/render/scale.d.ts.map +1 -0
  197. package/dist/render/text-layer.d.ts +4 -0
  198. package/dist/render/text-layer.d.ts.map +1 -0
  199. package/dist/render/thumb-renderer.d.ts +3 -0
  200. package/dist/render/thumb-renderer.d.ts.map +1 -0
  201. package/dist/toolbar/button-registry.d.ts +56 -0
  202. package/dist/toolbar/button-registry.d.ts.map +1 -0
  203. package/dist/toolbar/toolbar-helpers.d.ts +168 -0
  204. package/dist/toolbar/toolbar-helpers.d.ts.map +1 -0
  205. package/dist/toolbar/toolbar-icons.d.ts +3 -0
  206. package/dist/toolbar/toolbar-icons.d.ts.map +1 -0
  207. package/dist/toolbar/toolbar.d.ts +116 -0
  208. package/dist/toolbar/toolbar.d.ts.map +1 -0
  209. package/dist/ui/color-picker.d.ts +72 -0
  210. package/dist/ui/color-picker.d.ts.map +1 -0
  211. package/dist/ui/slider.d.ts +25 -0
  212. package/dist/ui/slider.d.ts.map +1 -0
  213. package/dist/utils/annotation-utils.d.ts +13 -0
  214. package/dist/utils/annotation-utils.d.ts.map +1 -0
  215. package/dist/utils/color-utils.d.ts +42 -0
  216. package/dist/utils/color-utils.d.ts.map +1 -0
  217. package/dist/utils/confirm-dialog.d.ts +10 -0
  218. package/dist/utils/confirm-dialog.d.ts.map +1 -0
  219. package/dist/utils/deep-equal.d.ts +2 -0
  220. package/dist/utils/deep-equal.d.ts.map +1 -0
  221. package/dist/utils/deep-equal.test.d.ts +2 -0
  222. package/dist/utils/deep-equal.test.d.ts.map +1 -0
  223. package/dist/utils/document-utils.d.ts +63 -0
  224. package/dist/utils/document-utils.d.ts.map +1 -0
  225. package/dist/utils/id-generator.d.ts +41 -0
  226. package/dist/utils/id-generator.d.ts.map +1 -0
  227. package/dist/utils/image-preview.d.ts +7 -0
  228. package/dist/utils/image-preview.d.ts.map +1 -0
  229. package/dist/utils/timestamp.d.ts +3 -0
  230. package/dist/utils/timestamp.d.ts.map +1 -0
  231. package/dist/viewer/collaboration-runtime.d.ts +29 -0
  232. package/dist/viewer/collaboration-runtime.d.ts.map +1 -0
  233. package/dist/viewer/config.d.ts +481 -0
  234. package/dist/viewer/config.d.ts.map +1 -0
  235. package/dist/viewer/document-load-pipeline.d.ts +43 -0
  236. package/dist/viewer/document-load-pipeline.d.ts.map +1 -0
  237. package/dist/viewer/document-load-pipeline.test.d.ts +2 -0
  238. package/dist/viewer/document-load-pipeline.test.d.ts.map +1 -0
  239. package/dist/viewer/element.d.ts +174 -0
  240. package/dist/viewer/element.d.ts.map +1 -0
  241. package/dist/viewer/element.test.d.ts +2 -0
  242. package/dist/viewer/element.test.d.ts.map +1 -0
  243. package/dist/viewer/events.d.ts +212 -0
  244. package/dist/viewer/events.d.ts.map +1 -0
  245. package/dist/viewer/export-orchestrator.d.ts +9 -0
  246. package/dist/viewer/export-orchestrator.d.ts.map +1 -0
  247. package/dist/viewer/headless.d.ts +108 -0
  248. package/dist/viewer/headless.d.ts.map +1 -0
  249. package/dist/viewer/internal-event-bindings.d.ts +26 -0
  250. package/dist/viewer/internal-event-bindings.d.ts.map +1 -0
  251. package/dist/viewer/internal-event-bindings.test.d.ts +2 -0
  252. package/dist/viewer/internal-event-bindings.test.d.ts.map +1 -0
  253. package/dist/viewer/modal.d.ts +22 -0
  254. package/dist/viewer/modal.d.ts.map +1 -0
  255. package/dist/viewer/page-indicator.d.ts +56 -0
  256. package/dist/viewer/page-indicator.d.ts.map +1 -0
  257. package/dist/viewer/pdfjs-resources.d.ts +12 -0
  258. package/dist/viewer/pdfjs-resources.d.ts.map +1 -0
  259. package/dist/viewer/server-writeback.d.ts +23 -0
  260. package/dist/viewer/server-writeback.d.ts.map +1 -0
  261. package/dist/viewer/server-writeback.test.d.ts +2 -0
  262. package/dist/viewer/server-writeback.test.d.ts.map +1 -0
  263. package/dist/viewer/ui-handler-helpers.d.ts +19 -0
  264. package/dist/viewer/ui-handler-helpers.d.ts.map +1 -0
  265. package/dist/viewer/ui-handler-helpers.test.d.ts +2 -0
  266. package/dist/viewer/ui-handler-helpers.test.d.ts.map +1 -0
  267. package/dist/viewer/viewer-header.d.ts +67 -0
  268. package/dist/viewer/viewer-header.d.ts.map +1 -0
  269. package/dist/virtual/page-position-cache.d.ts +24 -0
  270. package/dist/virtual/page-position-cache.d.ts.map +1 -0
  271. package/dist/virtual/render-pool.d.ts +23 -0
  272. package/dist/virtual/render-pool.d.ts.map +1 -0
  273. package/dist/virtual/render-pool.test.d.ts +2 -0
  274. package/dist/virtual/render-pool.test.d.ts.map +1 -0
  275. package/dist/virtual/types.d.ts +16 -0
  276. package/dist/virtual/types.d.ts.map +1 -0
  277. package/dist/virtual/virtual-page-manager.d.ts +54 -0
  278. package/dist/virtual/virtual-page-manager.d.ts.map +1 -0
  279. package/dist/watermark/watermark-layer.d.ts +58 -0
  280. package/dist/watermark/watermark-layer.d.ts.map +1 -0
  281. package/dist/watermark/watermark-settings.d.ts +79 -0
  282. package/dist/watermark/watermark-settings.d.ts.map +1 -0
  283. package/dist/watermark/watermark-ui-helpers.d.ts +78 -0
  284. package/dist/watermark/watermark-ui-helpers.d.ts.map +1 -0
  285. package/package.json +29 -0
@@ -0,0 +1,12 @@
1
+ import { PdfLoaderOptions } from '@jacktea/pdf-viewer-core';
2
+ type PdfJsResourceOverrides = Pick<PdfLoaderOptions, "cMapUrl" | "cMapPacked" | "standardFontDataUrl" | "wasmUrl">;
3
+ export type PdfJsResourceOptions = PdfJsResourceOverrides;
4
+ declare global {
5
+ interface Window {
6
+ __PDF_VIEWER_PDFJS_RESOURCES__?: Partial<PdfJsResourceOverrides>;
7
+ }
8
+ }
9
+ export declare function setPdfJsResources(options: Partial<PdfJsResourceOverrides>): void;
10
+ export declare function getPdfJsResources(overrides?: Partial<PdfJsResourceOverrides>): PdfJsResourceOverrides;
11
+ export {};
12
+ //# sourceMappingURL=pdfjs-resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdfjs-resources.d.ts","sourceRoot":"","sources":["../../src/viewer/pdfjs-resources.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAWjE,KAAK,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,YAAY,GAAG,qBAAqB,GAAG,SAAS,CAAC,CAAC;AACnH,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE1D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,8BAA8B,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;KAClE;CACF;AA4BD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAKhF;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAC1C,sBAAsB,CAWxB"}
@@ -0,0 +1,23 @@
1
+ import { Annotation, CommentThread } from '@jacktea/pdf-viewer-core';
2
+ export interface AnnotationServerWriteback {
3
+ localId: string;
4
+ serverId: string;
5
+ serverCode?: string;
6
+ }
7
+ export interface CommentServerWriteback {
8
+ localId: string;
9
+ serverId: string;
10
+ serverCode?: string;
11
+ annotationId?: string;
12
+ }
13
+ export interface ServerWritebackPayload {
14
+ annotations?: AnnotationServerWriteback[];
15
+ comments?: CommentServerWriteback[];
16
+ }
17
+ export interface ServerWritebackResult {
18
+ annotations: Annotation[];
19
+ commentThreads: CommentThread[];
20
+ changed: boolean;
21
+ }
22
+ export declare function applyServerWriteback(annotations: Annotation[], commentThreads: CommentThread[], payload: ServerWritebackPayload): ServerWritebackResult;
23
+ //# sourceMappingURL=server-writeback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-writeback.d.ts","sourceRoot":"","sources":["../../src/viewer/server-writeback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAEV,aAAa,EACd,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,UAAU,EAAE,EACzB,cAAc,EAAE,aAAa,EAAE,EAC/B,OAAO,EAAE,sBAAsB,GAC9B,qBAAqB,CAiHvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=server-writeback.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-writeback.test.d.ts","sourceRoot":"","sources":["../../src/viewer/server-writeback.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { Annotation, Watermark } from '@jacktea/pdf-viewer-core';
2
+ export interface AnnotationNavigationCoordinator {
3
+ getOrderedAnnotations(): Annotation[];
4
+ getSelectedAnnotationId(): string | null | undefined;
5
+ selectAnnotation(annotationId: string | null): void;
6
+ }
7
+ export declare function navigateAnnotations(coordinator: AnnotationNavigationCoordinator | undefined, direction: "next" | "previous"): void;
8
+ export interface WatermarkApplyContext {
9
+ setCurrentWatermark: (watermark: Watermark | null) => void;
10
+ setLayerWatermark: (watermark: Watermark | null) => void;
11
+ dispatchAppliedEvent?: (watermark: Watermark | null) => void;
12
+ notifyConfigCallback?: (watermark: Watermark | null) => void;
13
+ }
14
+ export interface WatermarkApplyOptions {
15
+ dispatchAppliedEvent?: boolean;
16
+ notifyConfigCallback?: boolean;
17
+ }
18
+ export declare function applyWatermarkChange(context: WatermarkApplyContext, watermark: Watermark | null, options?: WatermarkApplyOptions): void;
19
+ //# sourceMappingURL=ui-handler-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-handler-helpers.d.ts","sourceRoot":"","sources":["../../src/viewer/ui-handler-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEtE,MAAM,WAAW,+BAA+B;IAC9C,qBAAqB,IAAI,UAAU,EAAE,CAAC;IACtC,uBAAuB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrD,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACrD;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,+BAA+B,GAAG,SAAS,EACxD,SAAS,EAAE,MAAM,GAAG,UAAU,GAC7B,IAAI,CA2BN;AAED,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3D,iBAAiB,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IACzD,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7D,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,qBAAqB;IACpC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAUN"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ui-handler-helpers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-handler-helpers.test.d.ts","sourceRoot":"","sources":["../../src/viewer/ui-handler-helpers.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,67 @@
1
+ import { HeaderConfig, ThemeMode } from './config';
2
+ import { LocaleCode } from '../i18n';
3
+ export interface HeaderHandlers {
4
+ onModeChange?: (mode: string) => void;
5
+ onThemeChange?: (theme: string) => void;
6
+ onLocaleChange?: (locale: LocaleCode) => void;
7
+ }
8
+ export declare class ViewerHeader {
9
+ private handlers;
10
+ private headerConfig?;
11
+ readonly element: HTMLDivElement;
12
+ private modeButtons;
13
+ private themeButton;
14
+ private currentTheme;
15
+ private languageButton;
16
+ private titleEl;
17
+ private subtitleEl;
18
+ private modeSwitchEl;
19
+ private configuredModes;
20
+ private avatarEl?;
21
+ constructor(handlers: HeaderHandlers, headerConfig?: HeaderConfig | undefined);
22
+ /**
23
+ * Set header visibility
24
+ */
25
+ setVisible(visible: boolean): void;
26
+ /**
27
+ * Update header configuration dynamically
28
+ */
29
+ setConfig(config: HeaderConfig): void;
30
+ /**
31
+ * Rebuild mode buttons based on current configuration
32
+ */
33
+ private rebuildModeButtons;
34
+ setMode(mode: string): void;
35
+ setTheme(theme: ThemeMode): void;
36
+ /**
37
+ * Set current locale and update UI
38
+ */
39
+ setLocale(locale: LocaleCode): void;
40
+ /**
41
+ * Update all UI text based on current locale
42
+ * Note: Most elements use data-i18n for auto-update
43
+ * Only handle special cases here
44
+ */
45
+ updateLocaleUI(): void;
46
+ setDocumentName(name: string | null): void;
47
+ private createElement;
48
+ private createBrand;
49
+ private createTitleElement;
50
+ private createSubtitleElement;
51
+ private createModeSwitch;
52
+ private setupModeButtons;
53
+ private createActions;
54
+ private createThemeButton;
55
+ private toggleThemeDropdown;
56
+ private createThemeDropdownContent;
57
+ private closeThemeDropdown;
58
+ private createLanguageButton;
59
+ /**
60
+ * Toggle between available locales
61
+ */
62
+ private toggleLocale;
63
+ private createNotifyButton;
64
+ private createAvatar;
65
+ private updateAvatar;
66
+ }
67
+ //# sourceMappingURL=viewer-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewer-header.d.ts","sourceRoot":"","sources":["../../src/viewer/viewer-header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGxD,OAAO,EAAgD,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAGxF,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CAC/C;AAeD,qBAAa,YAAY;IAarB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,YAAY,CAAC;IAbvB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAiB;gBAGxB,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,YAAY,YAAA;IAiBrC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAcrC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ3B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAYhC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC;;;;OAIG;IACH,cAAc,IAAI,IAAI;IAOtB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAK1C,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,0BAA0B;IA6ElC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IAc5B;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,YAAY;CA0CrB"}
@@ -0,0 +1,24 @@
1
+ import { PagePosition } from './types';
2
+ export declare class PagePositionCache {
3
+ private positions;
4
+ private sortedPositions;
5
+ private totalHeight;
6
+ set(visibleIndex: number, position: PagePosition): void;
7
+ get(visibleIndex: number): PagePosition | undefined;
8
+ getAll(): PagePosition[];
9
+ getTotalHeight(): number;
10
+ updatePageSize(visibleIndex: number, pageWidth: number, pageHeight: number, pageMargin: number): number;
11
+ findPageAtPosition(scrollTop: number): number;
12
+ calculateVisibleRange(scrollTop: number, viewportHeight: number, buffer?: number): {
13
+ startIndex: number;
14
+ endIndex: number;
15
+ };
16
+ clear(): void;
17
+ get size(): number;
18
+ private binarySearchPage;
19
+ private findClosestPage;
20
+ private rebuildSortedArray;
21
+ private updateTotalHeight;
22
+ private reflowPositions;
23
+ }
24
+ //# sourceMappingURL=page-position-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-position-cache.d.ts","sourceRoot":"","sources":["../../src/virtual/page-position-cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK5C,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,WAAW,CAAK;IAExB,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAMvD,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInD,MAAM,IAAI,YAAY,EAAE;IAIxB,cAAc,IAAI,MAAM;IAIxB,cAAc,CACZ,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,MAAM;IAuBT,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAS7C,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,MAAM,GAAE,MAAU,GACjB;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAgB3C,KAAK,IAAI,IAAI;IAMb,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,eAAe;CAcxB"}
@@ -0,0 +1,23 @@
1
+ import { PageRenderer } from '../render/page-renderer';
2
+ export declare class RenderPool {
3
+ private pool;
4
+ private activeRenderers;
5
+ private maxPoolSize;
6
+ acquire(visibleIndex: number, pageIndex: number): PageRenderer;
7
+ release(visibleIndex: number): void;
8
+ get(visibleIndex: number): PageRenderer | undefined;
9
+ getActiveRenderers(): Map<number, PageRenderer>;
10
+ releaseAll(): void;
11
+ getStats(): {
12
+ poolSize: number;
13
+ activeCount: number;
14
+ };
15
+ destroy(): void;
16
+ setMaxPoolSize(size: number): void;
17
+ private createRenderer;
18
+ private updateRenderer;
19
+ private cleanupRenderer;
20
+ private maybePoolRenderer;
21
+ private shrinkPoolToFit;
22
+ }
23
+ //# sourceMappingURL=render-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-pool.d.ts","sourceRoot":"","sources":["../../src/virtual/render-pool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAMvD,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY;IAO9D,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IASnC,GAAG,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInD,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAI/C,UAAU,IAAI,IAAI;IAMlB,QAAQ,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;IAOrD,OAAO,IAAI,IAAI;IAMf,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKlC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,eAAe;CAKxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=render-pool.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-pool.test.d.ts","sourceRoot":"","sources":["../../src/virtual/render-pool.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ export interface PagePosition {
2
+ visibleIndex: number;
3
+ pageIndex: number;
4
+ top: number;
5
+ height: number;
6
+ pageWidth: number;
7
+ pageHeight: number;
8
+ rendered: boolean;
9
+ renderToken: number;
10
+ }
11
+ export interface VirtualScrollConfig {
12
+ bufferSize: number;
13
+ pageMargin: number;
14
+ preloadMargin: number;
15
+ }
16
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/virtual/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,54 @@
1
+ import { ViewerState } from '@jacktea/pdf-viewer-core';
2
+ import { PDFDocumentProxy } from '../pdfjs';
3
+ import { PagePosition, VirtualScrollConfig } from './types';
4
+ import { PageRenderer } from '../render/page-renderer';
5
+ export interface VirtualPageManagerOptions {
6
+ doc: PDFDocumentProxy;
7
+ state: ViewerState;
8
+ container: HTMLElement;
9
+ config?: Partial<VirtualScrollConfig>;
10
+ onPageRender?: (renderer: PageRenderer, pos: PagePosition, renderToken: number) => void;
11
+ onPageRelease?: (visibleIndex: number) => void;
12
+ }
13
+ export declare class VirtualPageManager {
14
+ private positionCache;
15
+ private renderPool;
16
+ private container;
17
+ private doc;
18
+ private state;
19
+ private config;
20
+ private onPageRender?;
21
+ private onPageRelease?;
22
+ private placeholderElements;
23
+ private currentRange;
24
+ private renderingPages;
25
+ private renderTokenCounter;
26
+ private tailPadding;
27
+ /**
28
+ * Flag to prevent operations after destruction
29
+ */
30
+ private isDestroyed;
31
+ constructor(options: VirtualPageManagerOptions);
32
+ setState(state: ViewerState): void;
33
+ initialize(): Promise<void>;
34
+ getTotalHeight(): number;
35
+ getPageMargin(): number;
36
+ updateVisiblePages(scrollTop: number, viewportHeight: number): void;
37
+ updateRenderedPageSize(visibleIndex: number, pageWidth: number, pageHeight: number): number;
38
+ ensureHeightForPage(visibleIndex: number): void;
39
+ scrollToPage(visibleIndex: number, viewportHeight: number): number;
40
+ findPageAtPosition(scrollTop: number): number;
41
+ updateLayout(scrollTop: number, viewportHeight: number): Promise<number>;
42
+ getRenderer(visibleIndex: number): PageRenderer | undefined;
43
+ getPosition(visibleIndex: number): PagePosition | undefined;
44
+ destroy(): void;
45
+ private renderPage;
46
+ private releasePage;
47
+ private createPlaceholderElements;
48
+ private updatePlaceholderRange;
49
+ private createPlaceholder;
50
+ private ensurePlaceholder;
51
+ markRendered(visibleIndex: number, renderToken: number): void;
52
+ markRenderFailed(visibleIndex: number, renderToken: number): void;
53
+ }
54
+ //# sourceMappingURL=virtual-page-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-page-manager.d.ts","sourceRoot":"","sources":["../../src/virtual/virtual-page-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,gBAAgB,CAAA;IACrB,KAAK,EAAE,WAAW,CAAA;IAClB,SAAS,EAAE,WAAW,CAAA;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACrC,YAAY,CAAC,EAAE,CACb,QAAQ,EAAE,YAAY,EACtB,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,MAAM,KAChB,IAAI,CAAA;IACT,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,YAAY,CAAC,CAIZ;IACT,OAAO,CAAC,aAAa,CAAC,CAAgC;IAEtD,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,kBAAkB,CAAI;IAC9B,OAAO,CAAC,WAAW,CAAI;IAEvB;;OAEG;IACH,OAAO,CAAC,WAAW,CAAQ;gBAEf,OAAO,EAAE,yBAAyB;IAkB9C,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAI5B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0EjC,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,MAAM;IAIvB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAuCnE,sBAAsB,CACpB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM;IA+BT,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAa/C,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAQlE,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIvC,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC;IA2BlB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI3D,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI3D,OAAO,IAAI,IAAI;IAkCf,OAAO,CAAC,UAAU;IA4BlB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,iBAAiB;IAMzB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAa7D,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;CAQlE"}
@@ -0,0 +1,58 @@
1
+ import { Watermark } from '@jacktea/pdf-viewer-core';
2
+ export declare class WatermarkLayer {
3
+ private root;
4
+ private container;
5
+ private watermark;
6
+ private imageCache;
7
+ private imageObjectUrl;
8
+ private resizeObserver;
9
+ private renderTimeout;
10
+ private scrollListener;
11
+ constructor(root: HTMLElement);
12
+ /**
13
+ * Observe page elements for resize (triggered by zoom)
14
+ */
15
+ private observePages;
16
+ /**
17
+ * Debounced render to prevent rapid re-renders during zoom
18
+ */
19
+ private debouncedRender;
20
+ /**
21
+ * Set the watermark to display
22
+ */
23
+ setWatermark(watermark: Watermark | null): void;
24
+ /**
25
+ * Get the current watermark
26
+ */
27
+ getWatermark(): Watermark | null;
28
+ /**
29
+ * Render watermarks on all visible pages
30
+ */
31
+ render(): void;
32
+ /**
33
+ * Render watermark for a specific page using flexbox positioning
34
+ */
35
+ private renderWatermarkForPage;
36
+ /**
37
+ * Apply position using flexbox alignment with percentage-based margin
38
+ */
39
+ private applyPosition;
40
+ /**
41
+ * Render text watermark content with multi-line support
42
+ */
43
+ private renderTextWatermark;
44
+ /**
45
+ * Render image watermark content
46
+ */
47
+ private renderImageWatermark;
48
+ /**
49
+ * Load image data into cache
50
+ */
51
+ private loadImageData;
52
+ /**
53
+ * Destroy the watermark layer
54
+ */
55
+ destroy(): void;
56
+ private clearImageObjectUrl;
57
+ }
58
+ //# sourceMappingURL=watermark-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watermark-layer.d.ts","sourceRoot":"","sources":["../../src/watermark/watermark-layer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAoD,MAAM,0BAA0B,CAAC;AAE5G,qBAAa,cAAc;IASb,OAAO,CAAC,IAAI;IARxB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,cAAc,CAAa;gBAEf,IAAI,EAAE,WAAW;IA4BrC;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAa/C;;OAEG;IACH,YAAY,IAAI,SAAS,GAAG,IAAI;IAIhC;;OAEG;IACH,MAAM,IAAI,IAAI;IAmCd;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyB9B;;OAEG;IACH,OAAO,CAAC,aAAa;IAgDrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0C3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAsBrB;;OAEG;IACH,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,mBAAmB;CAM5B"}
@@ -0,0 +1,79 @@
1
+ import { Watermark } from '@jacktea/pdf-viewer-core';
2
+ import { ContentPanel } from '../panels/content-panel';
3
+ export interface WatermarkPanelHandlers {
4
+ onWatermarkChange?: (watermark: Watermark | null) => void;
5
+ onApplyToAllPages?: (watermark: Watermark) => void;
6
+ }
7
+ type WatermarkType = "text" | "image";
8
+ export declare class WatermarkSettingsPanel implements ContentPanel {
9
+ private handlers;
10
+ readonly key: string;
11
+ readonly name: string;
12
+ readonly nameKey?: string;
13
+ readonly icon: string;
14
+ readonly element: HTMLDivElement;
15
+ private activeTab;
16
+ private textSettings;
17
+ private imageSettings;
18
+ private imageData;
19
+ private imageMimeType;
20
+ private watermarkEnabled;
21
+ private tabsContainer;
22
+ private textTabBtn;
23
+ private imageTabBtn;
24
+ private textPanel;
25
+ private imagePanel;
26
+ private contentInput;
27
+ private fontSizeSlider;
28
+ private rotationSlider;
29
+ private updateTextColor?;
30
+ private imagePreview;
31
+ private imageScaleSlider;
32
+ private imageOpacitySlider;
33
+ private imageRotationSlider;
34
+ private imagePreviewUrl;
35
+ private imagePositionButtons;
36
+ private imageUploadArea?;
37
+ private applyButton;
38
+ constructor(handlers: WatermarkPanelHandlers, options?: {
39
+ key?: string;
40
+ name?: string;
41
+ nameKey?: string;
42
+ icon?: string;
43
+ });
44
+ setActive(active: boolean): void;
45
+ destroy(): void;
46
+ private build;
47
+ private buildTabs;
48
+ private buildFooter;
49
+ private buildTextPanel;
50
+ private buildContentSection;
51
+ private buildTextAppearanceSection;
52
+ private buildFontSizeRow;
53
+ private buildTextPositionSection;
54
+ private buildImagePanel;
55
+ private buildImageContentSection;
56
+ private buildImageAppearanceSection;
57
+ private buildResetButtonRow;
58
+ private buildImagePositionSection;
59
+ /**
60
+ * Set active tab from external control (header tabs)
61
+ */
62
+ setActiveTab(tab: WatermarkType): void;
63
+ private setTab;
64
+ private handleImageUpload;
65
+ private resetImageSettings;
66
+ private updateImageSliders;
67
+ private updateImagePositionButtons;
68
+ private notifyChange;
69
+ private setPreviewUrl;
70
+ private getCurrentWatermark;
71
+ private handleToggle;
72
+ private updateToggleButtonState;
73
+ /**
74
+ * Update UI from external watermark settings
75
+ */
76
+ setWatermark(watermark: Watermark | null): void;
77
+ }
78
+ export {};
79
+ //# sourceMappingURL=watermark-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watermark-settings.d.ts","sourceRoot":"","sources":["../../src/watermark/watermark-settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { WatermarkPosition, TextAlign } from '@jacktea/pdf-viewer-core';
2
+ export declare const TEXT_ALIGNS: TextAlign[];
3
+ export declare const WATERMARK_POSITIONS: WatermarkPosition[];
4
+ export declare const WATERMARK_COLORS: string[];
5
+ /**
6
+ * Create a watermark settings section with a translated label
7
+ * @param i18nKey - i18n translation key for the section title
8
+ */
9
+ export declare function createWatermarkSection(i18nKey: string): HTMLDivElement;
10
+ /**
11
+ * Create a position grid for watermark positioning
12
+ */
13
+ export interface PositionGridResult {
14
+ element: HTMLDivElement;
15
+ buttons: HTMLButtonElement[];
16
+ }
17
+ export declare function createPositionGrid(current: WatermarkPosition, onChange: (pos: WatermarkPosition) => void): PositionGridResult;
18
+ /**
19
+ * Create a color picker input with i18n support
20
+ * @param i18nKey - i18n translation key for label
21
+ */
22
+ export interface ColorInputResult {
23
+ element: HTMLDivElement;
24
+ updateColor: (color: string, opacity?: number) => void;
25
+ }
26
+ export declare function createColorPickerInput(i18nKey: string, initialColor: string, initialOpacity: number, onChange: (color: string, opacity: number) => void): ColorInputResult;
27
+ /**
28
+ * Create a text alignment button group
29
+ */
30
+ export interface TextAlignGroupResult {
31
+ element: HTMLDivElement;
32
+ buttons: HTMLButtonElement[];
33
+ labelEl: HTMLSpanElement;
34
+ }
35
+ export interface TextAlignI18nKeys {
36
+ label: string;
37
+ left: string;
38
+ center: string;
39
+ right: string;
40
+ }
41
+ export declare function createTextAlignGroup(aligns: TextAlign[], current: TextAlign, onChange: (align: TextAlign) => void, i18nKeys?: TextAlignI18nKeys): TextAlignGroupResult;
42
+ /**
43
+ * Create a row container for watermark controls
44
+ */
45
+ export declare function createWatermarkRow(): HTMLDivElement;
46
+ /**
47
+ * Create an input group wrapper
48
+ */
49
+ export declare function createWatermarkInputGroup(): HTMLDivElement;
50
+ /**
51
+ * Create a label element for watermark controls
52
+ */
53
+ export declare function createWatermarkLabel(text: string): HTMLSpanElement;
54
+ /**
55
+ * Create image upload area with drag & drop support
56
+ */
57
+ export interface ImageUploadArea {
58
+ element: HTMLDivElement;
59
+ updatePreview: (url: string) => void;
60
+ setLoadingState: () => void;
61
+ setErrorState: () => void;
62
+ }
63
+ export declare function createImageUploadArea(onFileSelected: (file: File) => void): ImageUploadArea;
64
+ /**
65
+ * Validate image file size and type
66
+ */
67
+ export declare function validateImageFile(file: File): {
68
+ valid: boolean;
69
+ error?: string;
70
+ };
71
+ /**
72
+ * Read image file as ArrayBuffer
73
+ */
74
+ export declare function readImageFile(file: File): Promise<{
75
+ data: Uint8Array;
76
+ mimeType: "image/png" | "image/jpeg";
77
+ }>;
78
+ //# sourceMappingURL=watermark-ui-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watermark-ui-helpers.d.ts","sourceRoot":"","sources":["../../src/watermark/watermark-ui-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAI7E,eAAO,MAAM,WAAW,EAAE,SAAS,EAAgC,CAAC;AAEpE,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,EAUlD,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAW5B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAWtE;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,GACzC,kBAAkB,CAsBpB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACxD;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GACjD,gBAAgB,CAelB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,EACpC,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,oBAAoB,CA4CtB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CAInD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,cAAc,CAI1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAKlE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GACnC,eAAe,CAuEjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAahF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,WAAW,GAAG,YAAY,CAAA;CAAE,CAAC,CAoB7G"}
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@jacktea/pdf-viewer-component",
3
+ "version": "0.1.5",
4
+ "private": false,
5
+ "type": "module",
6
+ "main": "./dist/index.es.js",
7
+ "module": "./dist/index.es.js",
8
+ "types": "./dist/index.d.ts",
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/index.es.js"
16
+ }
17
+ },
18
+ "dependencies": {
19
+ "pdfjs-dist": "^5.4.530",
20
+ "@jacktea/pdf-viewer-core": "0.1.5"
21
+ },
22
+ "devDependencies": {
23
+ "typescript": "^5.5.4"
24
+ },
25
+ "scripts": {
26
+ "build": "vite build",
27
+ "typecheck": "tsc -p tsconfig.json --noEmit"
28
+ }
29
+ }