@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,136 @@
1
+ import { ContentPanel } from './content-panel';
2
+ /**
3
+ * Tab position options
4
+ */
5
+ export type TabPosition = "top" | "left" | "right" | "bottom";
6
+ /**
7
+ * Container panel options
8
+ */
9
+ export interface ContainerPanelOptions {
10
+ /** Panel position in layout (affects CSS class and resize direction) */
11
+ position: "left" | "right";
12
+ /** Tab strip position */
13
+ tabPosition: TabPosition;
14
+ /** Enable resize handle */
15
+ resizable?: boolean;
16
+ /** Initial width in pixels */
17
+ initialWidth?: number;
18
+ /** Minimum width for resize */
19
+ minWidth?: number;
20
+ /** Maximum width for resize */
21
+ maxWidth?: number;
22
+ }
23
+ /**
24
+ * Container Panel
25
+ *
26
+ * Manages a collection of content panels with a tab interface.
27
+ */
28
+ export declare class ContainerPanel {
29
+ readonly element: HTMLDivElement;
30
+ private readonly options;
31
+ private readonly tabStrip;
32
+ private readonly contentArea;
33
+ private readonly resizeHandle;
34
+ private readonly panels;
35
+ private readonly tabs;
36
+ private readonly panelTabMeta;
37
+ private readonly panelTabMetaListeners;
38
+ private readonly activePanels;
39
+ private readonly visiblePanels;
40
+ private open;
41
+ private resizePointerId?;
42
+ private resizeStartX;
43
+ private resizeStartWidth;
44
+ constructor(options: ContainerPanelOptions);
45
+ /**
46
+ * Add a content panel to the container
47
+ */
48
+ addPanel(panel: ContentPanel): void;
49
+ /**
50
+ * Remove a content panel from the container
51
+ */
52
+ removePanel(key: string): void;
53
+ /**
54
+ * Activate a content panel (make visible)
55
+ */
56
+ activatePanel(key: string): void;
57
+ /**
58
+ * Deactivate a content panel (hide)
59
+ */
60
+ deactivatePanel(key: string): void;
61
+ /**
62
+ * Toggle a panel's active state
63
+ */
64
+ togglePanel(key: string): void;
65
+ /**
66
+ * Check if any panel is active
67
+ */
68
+ hasActivePanel(): boolean;
69
+ /**
70
+ * Get list of active panel keys
71
+ */
72
+ getActivePanelKeys(): string[];
73
+ /**
74
+ * Get list of active panels
75
+ */
76
+ getActivePanels(): ContentPanel[];
77
+ /**
78
+ * Get a panel by key
79
+ */
80
+ getPanel(key: string): ContentPanel | undefined;
81
+ /**
82
+ * Check if panel exists
83
+ */
84
+ hasPanel(key: string): boolean;
85
+ /**
86
+ * Check if a specific panel is active
87
+ */
88
+ isPanelActive(key: string): boolean;
89
+ /**
90
+ * Set panel visibility (tab + content availability)
91
+ */
92
+ setPanelVisible(key: string, visible: boolean): void;
93
+ /**
94
+ * Check if panel is visible
95
+ */
96
+ isPanelVisible(key: string): boolean;
97
+ /**
98
+ * Set container open/closed state
99
+ */
100
+ setOpen(open: boolean): void;
101
+ /**
102
+ * Check if container is open
103
+ */
104
+ isOpen(): boolean;
105
+ /**
106
+ * Get the position of this container
107
+ */
108
+ getPosition(): "left" | "right";
109
+ /**
110
+ * Get the resize handle element (for external event binding)
111
+ */
112
+ getResizeHandle(): HTMLDivElement | null;
113
+ /**
114
+ * Destroy all panels and cleanup
115
+ */
116
+ destroy(): void;
117
+ private createContainer;
118
+ private createTabStrip;
119
+ private createContentArea;
120
+ private createResizeHandle;
121
+ private createTab;
122
+ private assembleElement;
123
+ private updateOpenState;
124
+ private registerTabMetaListener;
125
+ private unregisterTabMetaListener;
126
+ private updateTabMeta;
127
+ private renderTabMeta;
128
+ private updateTabLabel;
129
+ private updateTabActions;
130
+ private onResizeStart;
131
+ private onResizeMove;
132
+ private onResizeEnd;
133
+ private getIconSvg;
134
+ private updateLayoutWidth;
135
+ }
136
+ //# sourceMappingURL=container-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-panel.d.ts","sourceRoot":"","sources":["../../src/panels/container-panel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Content Panel Interface
3
+ *
4
+ * Base interface for all content panels that can be added to container panels.
5
+ * Each content panel represents a specific functionality like thumbnails, outline,
6
+ * document properties, watermarks, annotations, etc.
7
+ */
8
+ /**
9
+ * Content panel interface
10
+ * All content panels must implement this interface
11
+ */
12
+ export interface ContentPanelTabAction {
13
+ /** Action unique key */
14
+ key: string;
15
+ /** SVG icon markup */
16
+ icon: string;
17
+ /** Accessible label / tooltip */
18
+ label: string;
19
+ /** Active UI state */
20
+ active?: boolean;
21
+ /** Disabled UI state */
22
+ disabled?: boolean;
23
+ /** Click handler */
24
+ onClick?: () => void;
25
+ }
26
+ export interface ContentPanelTabMeta {
27
+ /** Dynamic tab label override */
28
+ label?: string;
29
+ /** Optional tab actions (horizontal tabs only) */
30
+ actions?: ContentPanelTabAction[];
31
+ }
32
+ export interface ContentPanel {
33
+ /** Panel unique key */
34
+ readonly key: string;
35
+ /** Panel display name */
36
+ readonly name: string;
37
+ /** Optional i18n key for name auto-update */
38
+ readonly nameKey?: string;
39
+ /** Panel icon name */
40
+ readonly icon: string;
41
+ /** DOM element */
42
+ readonly element: HTMLElement;
43
+ /** Optional dynamic tab metadata (title/actions) */
44
+ getTabMeta?(): ContentPanelTabMeta | undefined;
45
+ /** Activate/deactivate panel */
46
+ setActive(active: boolean): void;
47
+ /** Destroy panel and cleanup resources */
48
+ destroy?(): void;
49
+ /** Update UI text when locale changes */
50
+ updateLocale?(): void;
51
+ }
52
+ /**
53
+ * Content panel factory interface
54
+ * Used to create content panels dynamically
55
+ */
56
+ export interface ContentPanelFactory {
57
+ /**
58
+ * Create a content panel by key
59
+ * @param key Panel key
60
+ * @param handlers Event handlers for the panel
61
+ * @returns Content panel instance or undefined if key is not recognized
62
+ */
63
+ create(key: string, handlers: unknown): ContentPanel | undefined;
64
+ }
65
+ /**
66
+ * Base class for content panels
67
+ * Provides common functionality for all content panels
68
+ */
69
+ export declare abstract class BaseContentPanel implements ContentPanel {
70
+ abstract readonly key: string;
71
+ abstract readonly name: string;
72
+ abstract readonly icon: string;
73
+ readonly element: HTMLElement;
74
+ protected active: boolean;
75
+ constructor();
76
+ /**
77
+ * Create the panel DOM element
78
+ * Subclasses should override this to create their specific UI
79
+ */
80
+ protected abstract createElement(): HTMLElement;
81
+ /**
82
+ * Set panel active state
83
+ */
84
+ setActive(active: boolean): void;
85
+ /**
86
+ * Called when active state changes
87
+ * Subclasses can override this to handle activation/deactivation
88
+ */
89
+ protected onActiveChange(_active: boolean): void;
90
+ /**
91
+ * Destroy panel and cleanup resources
92
+ */
93
+ destroy(): void;
94
+ }
95
+ //# sourceMappingURL=content-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-panel.d.ts","sourceRoot":"","sources":["../../src/panels/content-panel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,oDAAoD;IACpD,UAAU,CAAC,IAAI,mBAAmB,GAAG,SAAS,CAAC;IAC/C,gCAAgC;IAChC,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,0CAA0C;IAC1C,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB,yCAAyC;IACzC,YAAY,CAAC,IAAI,IAAI,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;CAClE;AAED;;;GAGG;AACH,8BAAsB,gBAAiB,YAAW,YAAY;IAC5D,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAE9B,SAAS,CAAC,MAAM,UAAS;;IAMzB;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,WAAW;IAE/C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMhC;;;OAGG;IACH,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIhD;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,54 @@
1
+ import { ViewerState, PdfMetadata } from '@jacktea/pdf-viewer-core';
2
+ import { ContentPanel } from './content-panel';
3
+ /**
4
+ * Document info passed to this panel
5
+ */
6
+ export interface DocumentInfo {
7
+ fileName: string;
8
+ fileSize: number;
9
+ pageCount: number;
10
+ pageWidth: number;
11
+ pageHeight: number;
12
+ metadata?: PdfMetadata;
13
+ }
14
+ export declare class DocumentPropertiesPanel implements ContentPanel {
15
+ readonly key: string;
16
+ readonly name: string;
17
+ readonly nameKey?: string;
18
+ readonly icon: string;
19
+ readonly element: HTMLDivElement;
20
+ private active;
21
+ private docPropsFileName;
22
+ private docPropsFileMeta;
23
+ private docPropsPages;
24
+ private docPropsSize;
25
+ private docPropsTitle;
26
+ private docPropsAuthor;
27
+ private docPropsSubject;
28
+ private docPropsKeywords;
29
+ private docPropsCreated;
30
+ private docPropsModified;
31
+ private docPropsApplication;
32
+ private labelElements;
33
+ constructor(options?: {
34
+ key?: string;
35
+ name?: string;
36
+ nameKey?: string;
37
+ icon?: string;
38
+ });
39
+ setActive(active: boolean): void;
40
+ destroy(): void;
41
+ setState(state: ViewerState, documentName: string | null): void;
42
+ setDocumentInfo(info: DocumentInfo): void;
43
+ private buildPanel;
44
+ private buildStatCard;
45
+ private buildMetadataField;
46
+ private buildDateRow;
47
+ private updateAuthorDisplay;
48
+ private updateKeywordsDisplay;
49
+ private getInitials;
50
+ private formatFileSize;
51
+ private formatDate;
52
+ private getPageSizeName;
53
+ }
54
+ //# sourceMappingURL=document-properties-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-properties-panel.d.ts","sourceRoot":"","sources":["../../src/panels/document-properties-panel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAIpD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,qBAAa,uBAAwB,YAAW,YAAY;IAE1D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,gBAAgB,CAAiB;IACzC,OAAO,CAAC,gBAAgB,CAAiB;IACzC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,gBAAgB,CAAiB;IACzC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,mBAAmB,CAAkB;IAG7C,OAAO,CAAC,aAAa,CAAuC;gBAGhD,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAgCtF,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMhC,OAAO,IAAI,IAAI;IAKf,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAK/D,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAuBzC,OAAO,CAAC,UAAU;IAiGlB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,UAAU;IA6BlB,OAAO,CAAC,eAAe;CAqBxB"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Panels Module Export
3
+ *
4
+ * Central export point for all panel-related components.
5
+ */
6
+ export type { ContentPanel, ContentPanelFactory } from './content-panel';
7
+ export { BaseContentPanel } from './content-panel';
8
+ export { ContainerPanel } from './container-panel';
9
+ export type { ContainerPanelOptions, TabPosition } from './container-panel';
10
+ export { PanelManager } from './panel-manager';
11
+ export type { PanelManagerOptions } from './panel-manager';
12
+ export { DefaultPanelFactory } from './panel-factory';
13
+ export type { PanelHandlers } from './panel-factory';
14
+ export { ThumbnailPanel } from './thumbnail-panel';
15
+ export type { ThumbnailPanelHandlers } from './thumbnail-panel';
16
+ export { OutlinePanel } from './outline-panel';
17
+ export type { OutlinePanelHandlers } from './outline-panel';
18
+ export { DocumentPropertiesPanel } from './document-properties-panel';
19
+ export type { DocumentInfo } from './document-properties-panel';
20
+ export { AnnotationSettingsPanel } from './annotation-settings-panel';
21
+ export type { AnnotationSettingsHandlers } from './annotation-settings-panel';
22
+ export { AnnotationCommentsPanel } from './annotation-comments-panel';
23
+ export type { AnnotationCommentsHandlers } from './annotation-comments-panel';
24
+ export { WatermarkSettingsPanel } from '../watermark/watermark-settings';
25
+ export type { WatermarkPanelHandlers } from '../watermark/watermark-settings';
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/panels/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG5E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAG9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,YAAY,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { ViewerState } from '@jacktea/pdf-viewer-core';
2
+ import { ContentPanel } from './content-panel';
3
+ export interface OutlinePanelHandlers {
4
+ onSelect?: (pageIndex: number) => void;
5
+ }
6
+ export declare class OutlinePanel implements ContentPanel {
7
+ private handlers;
8
+ readonly key: string;
9
+ readonly name: string;
10
+ readonly nameKey?: string;
11
+ readonly icon: string;
12
+ readonly element: HTMLDivElement;
13
+ private list;
14
+ private empty;
15
+ private outline?;
16
+ private items;
17
+ private collapsedKeys;
18
+ private active;
19
+ constructor(handlers: OutlinePanelHandlers, options?: {
20
+ key?: string;
21
+ name?: string;
22
+ nameKey?: string;
23
+ icon?: string;
24
+ });
25
+ setActive(active: boolean): void;
26
+ destroy(): void;
27
+ setState(state: ViewerState): void;
28
+ private renderOutline;
29
+ private appendNodes;
30
+ private updateActive;
31
+ }
32
+ //# sourceMappingURL=outline-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outline-panel.d.ts","sourceRoot":"","sources":["../../src/panels/outline-panel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAIpD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,qBAAa,YAAa,YAAW,YAAY;IAenC,OAAO,CAAC,QAAQ;IAb5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,KAAK,CAA2D;IACxE,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,MAAM,CAAS;gBAEH,QAAQ,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAyB9H,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMhC,OAAO,IAAI,IAAI;IAIf,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IASlC,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,WAAW;IA6FnB,OAAO,CAAC,YAAY;CAQrB"}
@@ -0,0 +1,37 @@
1
+ import { ContentPanel, ContentPanelFactory } from './content-panel';
2
+ import { ThumbnailPanelHandlers } from './thumbnail-panel';
3
+ import { OutlinePanelHandlers } from './outline-panel';
4
+ import { AnnotationSettingsHandlers } from './annotation-settings-panel';
5
+ import { AnnotationSummaryHandlers } from './annotation-summary-panel';
6
+ import { TemplateFieldPanelHandlers } from './template-field-panel';
7
+ import { TemplatePropertyPanelHandlers } from './template-property-panel';
8
+ import { WatermarkPanelHandlers } from '../watermark/watermark-settings';
9
+ /**
10
+ * Panel handlers registry
11
+ */
12
+ export interface PanelHandlers {
13
+ thumbnails?: ThumbnailPanelHandlers;
14
+ outline?: OutlinePanelHandlers;
15
+ properties?: Record<string, unknown>;
16
+ annotationSettings?: AnnotationSettingsHandlers;
17
+ annotationComments?: AnnotationSummaryHandlers;
18
+ templateFields?: TemplateFieldPanelHandlers;
19
+ templateProperties?: TemplatePropertyPanelHandlers;
20
+ watermark?: WatermarkPanelHandlers;
21
+ }
22
+ /**
23
+ * Default panel factory implementation
24
+ */
25
+ export declare class DefaultPanelFactory implements ContentPanelFactory {
26
+ private handlers;
27
+ constructor(handlers?: PanelHandlers);
28
+ /**
29
+ * Create a content panel by key
30
+ */
31
+ create(key: string, _handlers?: unknown): ContentPanel | undefined;
32
+ /**
33
+ * Update handlers for creating new panels
34
+ */
35
+ setHandlers(handlers: Partial<PanelHandlers>): void;
36
+ }
37
+ //# sourceMappingURL=panel-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-factory.d.ts","sourceRoot":"","sources":["../../src/panels/panel-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAkB,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAgB,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,OAAO,EAA2B,KAAK,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,EAA0B,KAAK,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAsB,KAAK,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAyB,KAAK,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAItG;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IAChD,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAC/C,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAC5C,kBAAkB,CAAC,EAAE,6BAA6B,CAAC;IACnD,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,mBAAmB;IACjD,OAAO,CAAC,QAAQ;gBAAR,QAAQ,GAAE,aAAkB;IAEhD;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS;IAiGlE;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;CAGpD"}
@@ -0,0 +1,49 @@
1
+ import { ContainerPanel } from './container-panel';
2
+ import { PanelManager } from './panel-manager';
3
+ import { DefaultPanelFactory, PanelHandlers } from './panel-factory';
4
+ /**
5
+ * Create the new panel system
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const { leftContainer, rightContainer, manager } = createPanelSystem({
10
+ * thumbnails: {
11
+ * onSelect: (pageIndex) => controller.setPage(pageIndex + 1),
12
+ * },
13
+ * outline: {
14
+ * onSelect: (pageIndex) => controller.setPage(pageIndex + 1),
15
+ * },
16
+ * });
17
+ *
18
+ * // Add containers to DOM
19
+ * leftPanelHost.appendChild(leftContainer.element);
20
+ * rightPanelHost.appendChild(rightContainer.element);
21
+ *
22
+ * // Wire up button clicks
23
+ * sidebarButton.addEventListener("click", () => {
24
+ * manager.toggleButton("sidebar");
25
+ * });
26
+ * ```
27
+ */
28
+ export declare function createPanelSystem(handlers: PanelHandlers): {
29
+ leftContainer: ContainerPanel;
30
+ rightContainer: ContainerPanel;
31
+ manager: PanelManager;
32
+ panelFactory: DefaultPanelFactory;
33
+ };
34
+ /**
35
+ * Example: Integration with the new PanelCoordinatorV2
36
+ *
37
+ * Migration is complete:
38
+ * 1. The new panel system is now the default.
39
+ * 2. PanelManager handles button activation/deactivation.
40
+ * 3. Old LeftPanel/RightPanel and legacy PanelCoordinator have been removed.
41
+ */
42
+ export interface PanelCoordinatorWithNewArchitecture {
43
+ togglePanel(): void;
44
+ toggleInspector(): void;
45
+ getPanelManager(): PanelManager | undefined;
46
+ getLeftContainer(): ContainerPanel | undefined;
47
+ getRightContainer(): ContainerPanel | undefined;
48
+ }
49
+ //# sourceMappingURL=panel-integration-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-integration-example.d.ts","sourceRoot":"","sources":["../../src/panels/panel-integration-example.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG1E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa;;;;;EA0DxD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mCAAmC;IAElD,WAAW,IAAI,IAAI,CAAC;IACpB,eAAe,IAAI,IAAI,CAAC;IAGxB,eAAe,IAAI,YAAY,GAAG,SAAS,CAAC;IAC5C,gBAAgB,IAAI,cAAc,GAAG,SAAS,CAAC;IAC/C,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAAC;CACjD"}
@@ -0,0 +1,98 @@
1
+ import { ContainerPanel } from './container-panel';
2
+ import { ContentPanel, ContentPanelFactory } from './content-panel';
3
+ import { PanelDefinition, ToggleTargetConfig } from '../viewer/config';
4
+ /**
5
+ * Panel Manager Options
6
+ */
7
+ export interface PanelManagerOptions {
8
+ /** Left container panel */
9
+ leftContainer: ContainerPanel;
10
+ /** Right container panel */
11
+ rightContainer: ContainerPanel;
12
+ /** Panel definitions */
13
+ panels: PanelDefinition[];
14
+ /** Factory for creating content panels */
15
+ panelFactory: ContentPanelFactory;
16
+ }
17
+ /**
18
+ * Panel Manager
19
+ *
20
+ * Manages the relationship between toolbar buttons and content panels.
21
+ */
22
+ export declare class PanelManager {
23
+ private readonly leftContainer;
24
+ private readonly rightContainer;
25
+ private readonly panelDefinitions;
26
+ private readonly panelInstances;
27
+ private readonly buttonStates;
28
+ private readonly panelFactory;
29
+ private readonly lastActivatedByContainer;
30
+ constructor(options: PanelManagerOptions);
31
+ /**
32
+ * Register a button's panel mapping
33
+ */
34
+ registerButtonMapping(buttonKey: string, config: ToggleTargetConfig, options?: {
35
+ exclusive?: boolean;
36
+ exclusiveGroup?: string;
37
+ }): void;
38
+ /**
39
+ * Activate a button
40
+ * This activates the associated panels
41
+ */
42
+ onButtonActivate(buttonKey: string): void;
43
+ /**
44
+ * Deactivate a button
45
+ * This deactivates the associated panels (unless another button keeps them active)
46
+ */
47
+ onButtonDeactivate(buttonKey: string): void;
48
+ /**
49
+ * Toggle a button's active state
50
+ */
51
+ toggleButton(buttonKey: string): boolean;
52
+ /**
53
+ * Check if a button is currently active
54
+ */
55
+ isButtonActive(buttonKey: string): boolean;
56
+ /**
57
+ * Check if any panels from this button are currently active
58
+ */
59
+ hasActivePanelsForButton(buttonKey: string): boolean;
60
+ /**
61
+ * Check if a container should be visible (has active panels)
62
+ */
63
+ shouldShowContainer(position: "left" | "right"): boolean;
64
+ /**
65
+ * Get a panel instance by key
66
+ */
67
+ getPanel(key: string): ContentPanel | undefined;
68
+ /**
69
+ * Get left container
70
+ */
71
+ getLeftContainer(): ContainerPanel;
72
+ /**
73
+ * Get right container
74
+ */
75
+ getRightContainer(): ContainerPanel;
76
+ /**
77
+ * Destroy and cleanup
78
+ */
79
+ destroy(): void;
80
+ /**
81
+ * Update locale for all panels
82
+ * Called when locale changes at runtime
83
+ */
84
+ updateLocale(): void;
85
+ /**
86
+ * Clear all button active states
87
+ * Used when switching modes to reset panel visibility
88
+ */
89
+ clearAllButtonStates(): void;
90
+ private ensurePanelCreated;
91
+ private syncPanels;
92
+ private setPanelVisibility;
93
+ private activateDefaultsForButton;
94
+ private ensureActivePanel;
95
+ private markLastActivated;
96
+ private deactivateExclusiveGroup;
97
+ }
98
+ //# sourceMappingURL=panel-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-manager.d.ts","sourceRoot":"","sources":["../../src/panels/panel-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,aAAa,EAAE,cAAc,CAAC;IAC9B,4BAA4B;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,wBAAwB;IACxB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,0CAA0C;IAC1C,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAoBD;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+B;IAChE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA4C;gBAEzE,OAAO,EAAE,mBAAmB;IAUxC;;OAEG;IACH,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GACzD,IAAI;IAiBP;;;OAGG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAiBzC;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAW3C;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAgBxC;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI1C;;OAEG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAgBpD;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO;IAKxD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI/C;;OAEG;IACH,gBAAgB,IAAI,cAAc;IAIlC;;OAEG;IACH,iBAAiB,IAAI,cAAc;IAInC;;OAEG;IACH,OAAO,IAAI,IAAI;IAOf;;;OAGG;IACH,YAAY,IAAI,IAAI;IAQpB;;;OAGG;IACH,oBAAoB,IAAI,IAAI;IAW5B,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,wBAAwB;CAQjC"}
@@ -0,0 +1,27 @@
1
+ import { BaseContentPanel } from './content-panel';
2
+ import { BusinessField } from '@jacktea/pdf-viewer-core';
3
+ export interface TemplateFieldPanelHandlers {
4
+ getFields?: () => BusinessField[];
5
+ onLoadSchema?: () => void;
6
+ onTogglePreviewMode?: (preview: boolean) => void;
7
+ }
8
+ interface TemplateFieldPanelOptions {
9
+ key: string;
10
+ name: string;
11
+ nameKey: string;
12
+ icon: string;
13
+ }
14
+ export declare class TemplateFieldPanel extends BaseContentPanel {
15
+ private handlers;
16
+ readonly key: string;
17
+ readonly name: string;
18
+ readonly nameKey: string;
19
+ readonly icon: string;
20
+ private isPreview;
21
+ constructor(handlers: TemplateFieldPanelHandlers, options: TemplateFieldPanelOptions);
22
+ protected createElement(): HTMLElement;
23
+ refresh(): void;
24
+ private renderFields;
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=template-field-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-field-panel.d.ts","sourceRoot":"","sources":["../../src/panels/template-field-panel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,MAAM,aAAa,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AAED,UAAU,yBAAyB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,kBAAmB,SAAQ,gBAAgB;IAQpD,OAAO,CAAC,QAAQ;IAPlB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,SAAS,CAAS;gBAGhB,QAAQ,EAAE,0BAA0B,EAC5C,OAAO,EAAE,yBAAyB;IAYpC,SAAS,CAAC,aAAa,IAAI,WAAW;IAyEtC,OAAO;IAOP,OAAO,CAAC,YAAY;CA0CrB"}
@@ -0,0 +1,30 @@
1
+ import { BaseContentPanel } from './content-panel';
2
+ import { TemplateElement } from '@jacktea/pdf-viewer-core';
3
+ export interface TemplatePropertyPanelHandlers {
4
+ onUpdateElement?: (element: TemplateElement) => void;
5
+ onDeleteElement?: (elementId: string) => void;
6
+ }
7
+ interface TemplatePropertyPanelOptions {
8
+ key: string;
9
+ name: string;
10
+ nameKey: string;
11
+ icon: string;
12
+ }
13
+ export declare class TemplatePropertyPanel extends BaseContentPanel {
14
+ private handlers;
15
+ readonly key: string;
16
+ readonly name: string;
17
+ readonly nameKey: string;
18
+ readonly icon: string;
19
+ private currentElement;
20
+ private formContainer;
21
+ private pageWidth;
22
+ private pageHeight;
23
+ constructor(handlers: TemplatePropertyPanelHandlers, options: TemplatePropertyPanelOptions);
24
+ protected createElement(): HTMLElement;
25
+ setElement(element: TemplateElement | null, pageWidth?: number, pageHeight?: number): void;
26
+ private renderForm;
27
+ private updateElement;
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=template-property-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-property-panel.d.ts","sourceRoot":"","sources":["../../src/panels/template-property-panel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EACV,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAalC,MAAM,WAAW,6BAA6B;IAC5C,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACrD,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,UAAU,4BAA4B;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,qBAAsB,SAAQ,gBAAgB;IAYvD,OAAO,CAAC,QAAQ;IAXlB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAK;gBAGb,QAAQ,EAAE,6BAA6B,EAC/C,OAAO,EAAE,4BAA4B;IASvC,SAAS,CAAC,aAAa,IAAI,WAAW;IAgBtC,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAOnF,OAAO,CAAC,UAAU;IAkRlB,OAAO,CAAC,aAAa;CAStB"}