@docmentis/udoc-viewer 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/dist/wasm/udoc_bg.wasm +0 -0
  2. package/dist/worker/WorkerClient.js +1 -1
  3. package/package.json +11 -3
  4. package/dist/WorkerClient.d.ts +0 -36
  5. package/dist/WorkerClient.d.ts.map +0 -1
  6. package/dist/WorkerClient.js +0 -121
  7. package/dist/WorkerClient.js.map +0 -1
  8. package/dist/annotation/AnnotationLayer.d.ts +0 -166
  9. package/dist/annotation/AnnotationLayer.d.ts.map +0 -1
  10. package/dist/annotation/AnnotationLayer.js +0 -1090
  11. package/dist/annotation/AnnotationLayer.js.map +0 -1
  12. package/dist/annotation/index.d.ts +0 -6
  13. package/dist/annotation/index.d.ts.map +0 -1
  14. package/dist/annotation/index.js +0 -6
  15. package/dist/annotation/index.js.map +0 -1
  16. package/dist/components/FloatingBar.d.ts +0 -102
  17. package/dist/components/FloatingBar.d.ts.map +0 -1
  18. package/dist/components/FloatingBar.js +0 -513
  19. package/dist/components/FloatingBar.js.map +0 -1
  20. package/dist/components/Header.d.ts +0 -46
  21. package/dist/components/Header.d.ts.map +0 -1
  22. package/dist/components/Header.js +0 -93
  23. package/dist/components/Header.js.map +0 -1
  24. package/dist/components/index.d.ts +0 -6
  25. package/dist/components/index.d.ts.map +0 -1
  26. package/dist/components/index.js +0 -4
  27. package/dist/components/index.js.map +0 -1
  28. package/dist/components/panels/CommentsPanel.d.ts +0 -33
  29. package/dist/components/panels/CommentsPanel.d.ts.map +0 -1
  30. package/dist/components/panels/CommentsPanel.js +0 -176
  31. package/dist/components/panels/CommentsPanel.js.map +0 -1
  32. package/dist/components/panels/OutlinePanel.d.ts +0 -30
  33. package/dist/components/panels/OutlinePanel.d.ts.map +0 -1
  34. package/dist/components/panels/OutlinePanel.js +0 -144
  35. package/dist/components/panels/OutlinePanel.js.map +0 -1
  36. package/dist/components/panels/ThumbnailsPanel.d.ts +0 -51
  37. package/dist/components/panels/ThumbnailsPanel.d.ts.map +0 -1
  38. package/dist/components/panels/ThumbnailsPanel.js +0 -160
  39. package/dist/components/panels/ThumbnailsPanel.js.map +0 -1
  40. package/dist/components/panels/index.d.ts +0 -7
  41. package/dist/components/panels/index.d.ts.map +0 -1
  42. package/dist/components/panels/index.js +0 -4
  43. package/dist/components/panels/index.js.map +0 -1
  44. package/dist/constants.d.ts +0 -25
  45. package/dist/constants.d.ts.map +0 -1
  46. package/dist/constants.js +0 -46
  47. package/dist/constants.js.map +0 -1
  48. package/dist/core/NavigationController.d.ts +0 -54
  49. package/dist/core/NavigationController.d.ts.map +0 -1
  50. package/dist/core/NavigationController.js +0 -145
  51. package/dist/core/NavigationController.js.map +0 -1
  52. package/dist/core/PerfTimer.d.ts +0 -12
  53. package/dist/core/PerfTimer.d.ts.map +0 -1
  54. package/dist/core/PerfTimer.js +0 -32
  55. package/dist/core/PerfTimer.js.map +0 -1
  56. package/dist/core/ViewerState.d.ts +0 -108
  57. package/dist/core/ViewerState.d.ts.map +0 -1
  58. package/dist/core/ViewerState.js +0 -179
  59. package/dist/core/ViewerState.js.map +0 -1
  60. package/dist/core/constants.d.ts +0 -24
  61. package/dist/core/constants.d.ts.map +0 -1
  62. package/dist/core/constants.js +0 -42
  63. package/dist/core/constants.js.map +0 -1
  64. package/dist/core/index.d.ts +0 -8
  65. package/dist/core/index.d.ts.map +0 -1
  66. package/dist/core/index.js +0 -11
  67. package/dist/core/index.js.map +0 -1
  68. package/dist/core/types.d.ts +0 -573
  69. package/dist/core/types.d.ts.map +0 -1
  70. package/dist/core/types.js +0 -5
  71. package/dist/core/types.js.map +0 -1
  72. package/dist/icons/icons.d.ts +0 -41
  73. package/dist/icons/icons.d.ts.map +0 -1
  74. package/dist/icons/icons.js +0 -51
  75. package/dist/icons/icons.js.map +0 -1
  76. package/dist/icons/index.d.ts +0 -3
  77. package/dist/icons/index.d.ts.map +0 -1
  78. package/dist/icons/index.js +0 -2
  79. package/dist/icons/index.js.map +0 -1
  80. package/dist/layout/BandManager.d.ts +0 -87
  81. package/dist/layout/BandManager.d.ts.map +0 -1
  82. package/dist/layout/BandManager.js +0 -185
  83. package/dist/layout/BandManager.js.map +0 -1
  84. package/dist/layout/LayoutCalculator.d.ts +0 -42
  85. package/dist/layout/LayoutCalculator.d.ts.map +0 -1
  86. package/dist/layout/LayoutCalculator.js +0 -180
  87. package/dist/layout/LayoutCalculator.js.map +0 -1
  88. package/dist/layout/LayoutState.d.ts +0 -46
  89. package/dist/layout/LayoutState.d.ts.map +0 -1
  90. package/dist/layout/LayoutState.js +0 -109
  91. package/dist/layout/LayoutState.js.map +0 -1
  92. package/dist/layout/TransitionCoordinator.d.ts +0 -11
  93. package/dist/layout/TransitionCoordinator.d.ts.map +0 -1
  94. package/dist/layout/TransitionCoordinator.js +0 -22
  95. package/dist/layout/TransitionCoordinator.js.map +0 -1
  96. package/dist/layout/index.d.ts +0 -7
  97. package/dist/layout/index.d.ts.map +0 -1
  98. package/dist/layout/index.js +0 -4
  99. package/dist/layout/index.js.map +0 -1
  100. package/dist/rendering/BandManager.d.ts +0 -87
  101. package/dist/rendering/BandManager.d.ts.map +0 -1
  102. package/dist/rendering/BandManager.js +0 -185
  103. package/dist/rendering/BandManager.js.map +0 -1
  104. package/dist/rendering/PageCache.d.ts +0 -75
  105. package/dist/rendering/PageCache.d.ts.map +0 -1
  106. package/dist/rendering/PageCache.js +0 -122
  107. package/dist/rendering/PageCache.js.map +0 -1
  108. package/dist/rendering/RenderQueue.d.ts +0 -75
  109. package/dist/rendering/RenderQueue.d.ts.map +0 -1
  110. package/dist/rendering/RenderQueue.js +0 -105
  111. package/dist/rendering/RenderQueue.js.map +0 -1
  112. package/dist/rendering/ThumbnailQueue.d.ts +0 -57
  113. package/dist/rendering/ThumbnailQueue.d.ts.map +0 -1
  114. package/dist/rendering/ThumbnailQueue.js +0 -85
  115. package/dist/rendering/ThumbnailQueue.js.map +0 -1
  116. package/dist/rendering/index.d.ts +0 -13
  117. package/dist/rendering/index.d.ts.map +0 -1
  118. package/dist/rendering/index.js +0 -10
  119. package/dist/rendering/index.js.map +0 -1
  120. package/dist/rendering/types.d.ts +0 -72
  121. package/dist/rendering/types.d.ts.map +0 -1
  122. package/dist/rendering/types.js +0 -5
  123. package/dist/rendering/types.js.map +0 -1
  124. package/dist/styles/index.d.ts +0 -6
  125. package/dist/styles/index.d.ts.map +0 -1
  126. package/dist/styles/index.js +0 -1221
  127. package/dist/styles/index.js.map +0 -1
  128. package/dist/types.d.ts +0 -6
  129. package/dist/types.d.ts.map +0 -1
  130. package/dist/types.js +0 -6
  131. package/dist/types.js.map +0 -1
  132. package/dist/ui/Component.d.ts +0 -127
  133. package/dist/ui/Component.d.ts.map +0 -1
  134. package/dist/ui/Component.js +0 -201
  135. package/dist/ui/Component.js.map +0 -1
  136. package/dist/ui/annotation/AnnotationLayer.d.ts +0 -90
  137. package/dist/ui/annotation/AnnotationLayer.d.ts.map +0 -1
  138. package/dist/ui/annotation/AnnotationLayer.js +0 -322
  139. package/dist/ui/annotation/AnnotationLayer.js.map +0 -1
  140. package/dist/ui/annotation/LinkRenderer.d.ts +0 -32
  141. package/dist/ui/annotation/LinkRenderer.d.ts.map +0 -1
  142. package/dist/ui/annotation/LinkRenderer.js +0 -74
  143. package/dist/ui/annotation/LinkRenderer.js.map +0 -1
  144. package/dist/ui/annotation/MarkupRenderer.d.ts +0 -40
  145. package/dist/ui/annotation/MarkupRenderer.d.ts.map +0 -1
  146. package/dist/ui/annotation/MarkupRenderer.js +0 -154
  147. package/dist/ui/annotation/MarkupRenderer.js.map +0 -1
  148. package/dist/ui/annotation/ShapeRenderer.d.ts +0 -46
  149. package/dist/ui/annotation/ShapeRenderer.d.ts.map +0 -1
  150. package/dist/ui/annotation/ShapeRenderer.js +0 -376
  151. package/dist/ui/annotation/ShapeRenderer.js.map +0 -1
  152. package/dist/ui/annotation/TextRenderer.d.ts +0 -36
  153. package/dist/ui/annotation/TextRenderer.d.ts.map +0 -1
  154. package/dist/ui/annotation/TextRenderer.js +0 -199
  155. package/dist/ui/annotation/TextRenderer.js.map +0 -1
  156. package/dist/ui/annotation/index.d.ts +0 -17
  157. package/dist/ui/annotation/index.d.ts.map +0 -1
  158. package/dist/ui/annotation/index.js +0 -13
  159. package/dist/ui/annotation/index.js.map +0 -1
  160. package/dist/ui/annotation/utils.d.ts +0 -40
  161. package/dist/ui/annotation/utils.d.ts.map +0 -1
  162. package/dist/ui/annotation/utils.js +0 -62
  163. package/dist/ui/annotation/utils.js.map +0 -1
  164. package/dist/ui/components/CommentsContent.d.ts +0 -35
  165. package/dist/ui/components/CommentsContent.d.ts.map +0 -1
  166. package/dist/ui/components/CommentsContent.js +0 -203
  167. package/dist/ui/components/CommentsContent.js.map +0 -1
  168. package/dist/ui/components/FloatingBar.d.ts +0 -55
  169. package/dist/ui/components/FloatingBar.d.ts.map +0 -1
  170. package/dist/ui/components/FloatingBar.js +0 -585
  171. package/dist/ui/components/FloatingBar.js.map +0 -1
  172. package/dist/ui/components/Header.d.ts +0 -29
  173. package/dist/ui/components/Header.d.ts.map +0 -1
  174. package/dist/ui/components/Header.js +0 -127
  175. package/dist/ui/components/Header.js.map +0 -1
  176. package/dist/ui/components/LeftPanel.d.ts +0 -54
  177. package/dist/ui/components/LeftPanel.d.ts.map +0 -1
  178. package/dist/ui/components/LeftPanel.js +0 -202
  179. package/dist/ui/components/LeftPanel.js.map +0 -1
  180. package/dist/ui/components/OutlineContent.d.ts +0 -34
  181. package/dist/ui/components/OutlineContent.d.ts.map +0 -1
  182. package/dist/ui/components/OutlineContent.js +0 -147
  183. package/dist/ui/components/OutlineContent.js.map +0 -1
  184. package/dist/ui/components/RightPanel.d.ts +0 -52
  185. package/dist/ui/components/RightPanel.d.ts.map +0 -1
  186. package/dist/ui/components/RightPanel.js +0 -142
  187. package/dist/ui/components/RightPanel.js.map +0 -1
  188. package/dist/ui/components/Viewport.d.ts +0 -70
  189. package/dist/ui/components/Viewport.d.ts.map +0 -1
  190. package/dist/ui/components/Viewport.js +0 -173
  191. package/dist/ui/components/Viewport.js.map +0 -1
  192. package/dist/ui/components/index.d.ts +0 -11
  193. package/dist/ui/components/index.d.ts.map +0 -1
  194. package/dist/ui/components/index.js +0 -10
  195. package/dist/ui/components/index.js.map +0 -1
  196. package/dist/ui/icons/icons.d.ts +0 -43
  197. package/dist/ui/icons/icons.d.ts.map +0 -1
  198. package/dist/ui/icons/icons.js +0 -46
  199. package/dist/ui/icons/icons.js.map +0 -1
  200. package/dist/ui/icons/index.d.ts +0 -11
  201. package/dist/ui/icons/index.d.ts.map +0 -1
  202. package/dist/ui/icons/index.js +0 -18
  203. package/dist/ui/icons/index.js.map +0 -1
  204. package/dist/ui/index.d.ts +0 -7
  205. package/dist/ui/index.d.ts.map +0 -1
  206. package/dist/ui/index.js +0 -9
  207. package/dist/ui/index.js.map +0 -1
  208. package/dist/ui/styles/base.css.d.ts +0 -5
  209. package/dist/ui/styles/base.css.d.ts.map +0 -1
  210. package/dist/ui/styles/base.css.js +0 -49
  211. package/dist/ui/styles/base.css.js.map +0 -1
  212. package/dist/ui/styles/floating-bar.css.d.ts +0 -5
  213. package/dist/ui/styles/floating-bar.css.d.ts.map +0 -1
  214. package/dist/ui/styles/floating-bar.css.js +0 -417
  215. package/dist/ui/styles/floating-bar.css.js.map +0 -1
  216. package/dist/ui/styles/header.css.d.ts +0 -5
  217. package/dist/ui/styles/header.css.d.ts.map +0 -1
  218. package/dist/ui/styles/header.css.js +0 -49
  219. package/dist/ui/styles/header.css.js.map +0 -1
  220. package/dist/ui/styles/index.d.ts +0 -21
  221. package/dist/ui/styles/index.d.ts.map +0 -1
  222. package/dist/ui/styles/index.js +0 -48
  223. package/dist/ui/styles/index.js.map +0 -1
  224. package/dist/ui/styles/panels.css.d.ts +0 -5
  225. package/dist/ui/styles/panels.css.d.ts.map +0 -1
  226. package/dist/ui/styles/panels.css.js +0 -446
  227. package/dist/ui/styles/panels.css.js.map +0 -1
  228. package/dist/ui/styles/responsive.css.d.ts +0 -5
  229. package/dist/ui/styles/responsive.css.d.ts.map +0 -1
  230. package/dist/ui/styles/responsive.css.js +0 -201
  231. package/dist/ui/styles/responsive.css.js.map +0 -1
  232. package/dist/ui/styles/variables.css.d.ts +0 -6
  233. package/dist/ui/styles/variables.css.d.ts.map +0 -1
  234. package/dist/ui/styles/variables.css.js +0 -75
  235. package/dist/ui/styles/variables.css.js.map +0 -1
  236. package/dist/ui/styles/viewport.css.d.ts +0 -5
  237. package/dist/ui/styles/viewport.css.d.ts.map +0 -1
  238. package/dist/ui/styles/viewport.css.js +0 -87
  239. package/dist/ui/styles/viewport.css.js.map +0 -1
  240. package/dist/view/LayoutCalculator.d.ts +0 -42
  241. package/dist/view/LayoutCalculator.d.ts.map +0 -1
  242. package/dist/view/LayoutCalculator.js +0 -180
  243. package/dist/view/LayoutCalculator.js.map +0 -1
  244. package/dist/view/TransitionCoordinator.d.ts +0 -11
  245. package/dist/view/TransitionCoordinator.d.ts.map +0 -1
  246. package/dist/view/TransitionCoordinator.js +0 -22
  247. package/dist/view/TransitionCoordinator.js.map +0 -1
  248. package/dist/view/ViewState.d.ts +0 -46
  249. package/dist/view/ViewState.d.ts.map +0 -1
  250. package/dist/view/ViewState.js +0 -109
  251. package/dist/view/ViewState.js.map +0 -1
  252. package/dist/view/index.d.ts +0 -7
  253. package/dist/view/index.d.ts.map +0 -1
  254. package/dist/view/index.js +0 -4
  255. package/dist/view/index.js.map +0 -1
  256. package/dist/worker/types.d.ts +0 -81
  257. package/dist/worker/types.d.ts.map +0 -1
  258. package/dist/worker/types.js +0 -6
  259. package/dist/worker/types.js.map +0 -1
  260. package/dist/worker.d.ts +0 -2
  261. package/dist/worker.d.ts.map +0 -1
  262. package/dist/worker.js +0 -205
  263. package/dist/worker.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+rC3B,CAAC"}
package/dist/types.d.ts DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Re-export all types from core/types.ts for backward compatibility.
3
- * New code should import directly from './core' or './core/types'.
4
- */
5
- export * from './core/types';
6
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,cAAc,CAAC"}
package/dist/types.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Re-export all types from core/types.ts for backward compatibility.
3
- * New code should import directly from './core' or './core/types'.
4
- */
5
- export * from './core/types';
6
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,cAAc,CAAC"}
@@ -1,127 +0,0 @@
1
- import type { ViewerStateMap, StateListener } from '../core/ViewerState';
2
- import type { UDocViewer } from '../UDocViewer';
3
- /**
4
- * Base class for all UI components in the viewer.
5
- *
6
- * Uses two-phase initialization to avoid the "virtual method call in constructor" anti-pattern.
7
- * Subclasses must call init() after construction to complete initialization.
8
- *
9
- * Provides a consistent pattern for:
10
- * - DOM element creation and management
11
- * - Event binding with automatic cleanup
12
- * - State subscription with automatic cleanup
13
- * - Component lifecycle (mount, update, destroy)
14
- *
15
- * @example
16
- * ```typescript
17
- * class MyComponent extends Component<HTMLDivElement> {
18
- * protected createElement(): HTMLDivElement {
19
- * const div = document.createElement('div');
20
- * div.className = 'my-component';
21
- * return div;
22
- * }
23
- *
24
- * protected subscribeToState(): void {
25
- * this.subscribe('zoom', (zoom) => {
26
- * this.element.style.transform = `scale(${zoom})`;
27
- * });
28
- * }
29
- * }
30
- *
31
- * // Usage:
32
- * const component = new MyComponent(viewer).init();
33
- * ```
34
- */
35
- export declare abstract class Component<T extends HTMLElement = HTMLElement> {
36
- protected element: T;
37
- protected viewer: UDocViewer;
38
- private subscriptions;
39
- private eventCleanups;
40
- private mounted;
41
- private initialized;
42
- constructor(viewer: UDocViewer);
43
- /**
44
- * Initialize the component. Must be called after construction.
45
- * This two-phase initialization allows subclass instance fields to be
46
- * initialized before createElement() is called.
47
- *
48
- * @returns this for method chaining
49
- */
50
- init(): this;
51
- /**
52
- * Create the component's DOM element.
53
- * Must be implemented by subclasses.
54
- */
55
- protected abstract createElement(): T;
56
- /**
57
- * Bind DOM event listeners.
58
- * Override in subclasses to add event handlers.
59
- * Use addEventCleanup() to register cleanup functions.
60
- */
61
- protected bindEvents(): void;
62
- /**
63
- * Subscribe to state changes.
64
- * Override in subclasses to react to state updates.
65
- * Use subscribe() helper for automatic cleanup.
66
- */
67
- protected subscribeToState(): void;
68
- /**
69
- * Subscribe to a state key with automatic cleanup.
70
- *
71
- * @param key The state key to subscribe to
72
- * @param callback Function called when state changes
73
- * @param immediate If true, call callback immediately with current value (default: true)
74
- */
75
- protected subscribe<K extends keyof ViewerStateMap>(key: K, callback: StateListener<K>, immediate?: boolean): void;
76
- /**
77
- * Register an event cleanup function.
78
- * Will be called during destroy().
79
- */
80
- protected addEventCleanup(cleanup: () => void): void;
81
- /**
82
- * Helper to add an event listener with automatic cleanup.
83
- */
84
- protected addEventListener<K extends keyof HTMLElementEventMap>(target: HTMLElement | Document | Window, type: K, listener: (ev: HTMLElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
85
- /**
86
- * Mount component to a parent element.
87
- *
88
- * @param parent The parent element to mount to
89
- * @param position Optional position (default: append at end)
90
- */
91
- mount(parent: HTMLElement, position?: 'prepend' | 'append'): void;
92
- /**
93
- * Called after the component is mounted.
94
- * Override in subclasses for post-mount initialization.
95
- */
96
- protected onMount(): void;
97
- /**
98
- * Update component state.
99
- * Override in subclasses for imperative updates.
100
- */
101
- update(): void;
102
- /**
103
- * Check if component is initialized.
104
- */
105
- isInitialized(): boolean;
106
- /**
107
- * Check if component is mounted.
108
- */
109
- isMounted(): boolean;
110
- /**
111
- * Get the underlying DOM element.
112
- * @throws Error if component is not initialized
113
- */
114
- getElement(): T;
115
- /**
116
- * Cleanup and remove component.
117
- * Removes event listeners, state subscriptions, and DOM element.
118
- * Safe to call even if init() was never called.
119
- */
120
- destroy(): void;
121
- /**
122
- * Called during destroy for subclass cleanup.
123
- * Override in subclasses for additional cleanup.
124
- */
125
- protected onDestroy(): void;
126
- }
127
- //# sourceMappingURL=Component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../src/ui/Component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,8BAAsB,SAAS,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IAC/D,SAAS,CAAC,OAAO,EAAG,CAAC,CAAC;IACtB,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;IAC7B,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,UAAU;IAI9B;;;;;;OAMG;IACH,IAAI,IAAI,IAAI;IAYZ;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC;IAErC;;;;OAIG;IACH,SAAS,CAAC,UAAU,IAAI,IAAI;IAE5B;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,cAAc,EAC9C,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,SAAS,GAAE,OAAc,GAC1B,IAAI;IAWP;;;OAGG;IACH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAIpD;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAC1D,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,MAAM,EACvC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,IAAI,EAC9C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC5C,IAAI;IAOP;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAE,SAAS,GAAG,QAAmB,GAAG,IAAI;IAmB3E;;;OAGG;IACH,SAAS,CAAC,OAAO,IAAI,IAAI;IAEzB;;;OAGG;IACH,MAAM,IAAI,IAAI;IAEd;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;;OAGG;IACH,UAAU,IAAI,CAAC;IAOf;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAgCf;;;OAGG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;CAC9B"}
@@ -1,201 +0,0 @@
1
- /**
2
- * Base class for all UI components in the viewer.
3
- *
4
- * Uses two-phase initialization to avoid the "virtual method call in constructor" anti-pattern.
5
- * Subclasses must call init() after construction to complete initialization.
6
- *
7
- * Provides a consistent pattern for:
8
- * - DOM element creation and management
9
- * - Event binding with automatic cleanup
10
- * - State subscription with automatic cleanup
11
- * - Component lifecycle (mount, update, destroy)
12
- *
13
- * @example
14
- * ```typescript
15
- * class MyComponent extends Component<HTMLDivElement> {
16
- * protected createElement(): HTMLDivElement {
17
- * const div = document.createElement('div');
18
- * div.className = 'my-component';
19
- * return div;
20
- * }
21
- *
22
- * protected subscribeToState(): void {
23
- * this.subscribe('zoom', (zoom) => {
24
- * this.element.style.transform = `scale(${zoom})`;
25
- * });
26
- * }
27
- * }
28
- *
29
- * // Usage:
30
- * const component = new MyComponent(viewer).init();
31
- * ```
32
- */
33
- export class Component {
34
- element;
35
- viewer;
36
- subscriptions = [];
37
- eventCleanups = [];
38
- mounted = false;
39
- initialized = false;
40
- constructor(viewer) {
41
- this.viewer = viewer;
42
- }
43
- /**
44
- * Initialize the component. Must be called after construction.
45
- * This two-phase initialization allows subclass instance fields to be
46
- * initialized before createElement() is called.
47
- *
48
- * @returns this for method chaining
49
- */
50
- init() {
51
- if (this.initialized) {
52
- console.warn('Component already initialized');
53
- return this;
54
- }
55
- this.element = this.createElement();
56
- this.bindEvents();
57
- this.subscribeToState();
58
- this.initialized = true;
59
- return this;
60
- }
61
- /**
62
- * Bind DOM event listeners.
63
- * Override in subclasses to add event handlers.
64
- * Use addEventCleanup() to register cleanup functions.
65
- */
66
- bindEvents() { }
67
- /**
68
- * Subscribe to state changes.
69
- * Override in subclasses to react to state updates.
70
- * Use subscribe() helper for automatic cleanup.
71
- */
72
- subscribeToState() { }
73
- /**
74
- * Subscribe to a state key with automatic cleanup.
75
- *
76
- * @param key The state key to subscribe to
77
- * @param callback Function called when state changes
78
- * @param immediate If true, call callback immediately with current value (default: true)
79
- */
80
- subscribe(key, callback, immediate = true) {
81
- const unsubscribe = this.viewer.state.subscribe(key, callback);
82
- this.subscriptions.push(unsubscribe);
83
- // Optionally call immediately with current value
84
- if (immediate) {
85
- const currentValue = this.viewer.state.get(key);
86
- callback(currentValue, currentValue);
87
- }
88
- }
89
- /**
90
- * Register an event cleanup function.
91
- * Will be called during destroy().
92
- */
93
- addEventCleanup(cleanup) {
94
- this.eventCleanups.push(cleanup);
95
- }
96
- /**
97
- * Helper to add an event listener with automatic cleanup.
98
- */
99
- addEventListener(target, type, listener, options) {
100
- target.addEventListener(type, listener, options);
101
- this.addEventCleanup(() => {
102
- target.removeEventListener(type, listener, options);
103
- });
104
- }
105
- /**
106
- * Mount component to a parent element.
107
- *
108
- * @param parent The parent element to mount to
109
- * @param position Optional position (default: append at end)
110
- */
111
- mount(parent, position = 'append') {
112
- if (!this.initialized) {
113
- throw new Error('Component must be initialized before mounting. Call init() first.');
114
- }
115
- if (this.mounted) {
116
- console.warn('Component already mounted');
117
- return;
118
- }
119
- if (position === 'prepend') {
120
- parent.prepend(this.element);
121
- }
122
- else {
123
- parent.appendChild(this.element);
124
- }
125
- this.mounted = true;
126
- this.onMount();
127
- }
128
- /**
129
- * Called after the component is mounted.
130
- * Override in subclasses for post-mount initialization.
131
- */
132
- onMount() { }
133
- /**
134
- * Update component state.
135
- * Override in subclasses for imperative updates.
136
- */
137
- update() { }
138
- /**
139
- * Check if component is initialized.
140
- */
141
- isInitialized() {
142
- return this.initialized;
143
- }
144
- /**
145
- * Check if component is mounted.
146
- */
147
- isMounted() {
148
- return this.mounted;
149
- }
150
- /**
151
- * Get the underlying DOM element.
152
- * @throws Error if component is not initialized
153
- */
154
- getElement() {
155
- if (!this.initialized) {
156
- throw new Error('Component must be initialized before accessing element. Call init() first.');
157
- }
158
- return this.element;
159
- }
160
- /**
161
- * Cleanup and remove component.
162
- * Removes event listeners, state subscriptions, and DOM element.
163
- * Safe to call even if init() was never called.
164
- */
165
- destroy() {
166
- // Cleanup event listeners
167
- for (const cleanup of this.eventCleanups) {
168
- try {
169
- cleanup();
170
- }
171
- catch (error) {
172
- console.error('Error during event cleanup:', error);
173
- }
174
- }
175
- this.eventCleanups = [];
176
- // Cleanup state subscriptions
177
- for (const unsubscribe of this.subscriptions) {
178
- try {
179
- unsubscribe();
180
- }
181
- catch (error) {
182
- console.error('Error during subscription cleanup:', error);
183
- }
184
- }
185
- this.subscriptions = [];
186
- // Remove DOM element (only if initialized)
187
- if (this.initialized && this.element) {
188
- this.element.remove();
189
- }
190
- this.mounted = false;
191
- this.initialized = false;
192
- // Hook for subclass cleanup
193
- this.onDestroy();
194
- }
195
- /**
196
- * Called during destroy for subclass cleanup.
197
- * Override in subclasses for additional cleanup.
198
- */
199
- onDestroy() { }
200
- }
201
- //# sourceMappingURL=Component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../src/ui/Component.ts"],"names":[],"mappings":"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"}
@@ -1,90 +0,0 @@
1
- /**
2
- * Manages annotation rendering and interaction for a document viewer.
3
- *
4
- * Annotations are rendered directly inside page slot elements for accurate positioning.
5
- * This class orchestrates the specialized renderers for different annotation types.
6
- */
7
- import type { Annotation, Destination } from '../../core/types';
8
- /**
9
- * Manages annotation rendering and interaction for a document viewer.
10
- */
11
- export declare class AnnotationLayer {
12
- /** Annotations indexed by page index */
13
- private pageAnnotations;
14
- /** Overlay elements indexed by page index */
15
- private overlays;
16
- /** Current zoom level */
17
- private zoom;
18
- /** Currently active popup element */
19
- private activePopup;
20
- /** Bound handler for clicking outside popup */
21
- private boundHandleDocumentClick;
22
- /** Bound handler for escape key */
23
- private boundHandleEscapeKey;
24
- private markupRenderer;
25
- private linkRenderer;
26
- private shapeRenderer;
27
- private textRenderer;
28
- constructor();
29
- /**
30
- * Set the callback for internal link navigation.
31
- */
32
- setNavigateCallback(callback: (destination: Destination) => void): void;
33
- /**
34
- * Set the callback for external URI links.
35
- */
36
- setOpenUriCallback(callback: (uri: string) => void): void;
37
- /**
38
- * Set annotations for a specific page.
39
- */
40
- setPageAnnotations(pageIndex: number, annotations: Annotation[]): void;
41
- /**
42
- * Get annotations for a specific page.
43
- */
44
- getPageAnnotations(pageIndex: number): Annotation[];
45
- /**
46
- * Get all annotations with metadata, grouped by page.
47
- * Returns only annotations that have metadata (comments).
48
- */
49
- getAllAnnotationsWithMetadata(): Map<number, Annotation[]>;
50
- /**
51
- * Clear all annotations and overlays.
52
- */
53
- clear(): void;
54
- /**
55
- * Set the current zoom level.
56
- */
57
- setZoom(zoom: number): void;
58
- /**
59
- * Show a popup for an annotation.
60
- * @param anchorElement The element to anchor the popup to
61
- * @param metadata The annotation metadata to display
62
- * @param color The annotation color for styling
63
- */
64
- private showPopup;
65
- /**
66
- * Hide the currently active popup.
67
- */
68
- private hidePopup;
69
- /**
70
- * Create or get an annotation overlay for a slot element.
71
- * The overlay is positioned absolutely within the slot.
72
- *
73
- * @param slotEl The slot element to attach the overlay to
74
- * @param pageIndex The page index for this slot
75
- * @returns The overlay element
76
- */
77
- getOrCreateOverlay(slotEl: HTMLElement, pageIndex: number): HTMLDivElement;
78
- /**
79
- * Render annotations for a specific page into its slot overlay.
80
- *
81
- * @param slotEl The slot element containing the page
82
- * @param pageIndex The page index
83
- */
84
- renderPageAnnotations(slotEl: HTMLElement, pageIndex: number): void;
85
- /**
86
- * Render a single annotation using the appropriate renderer.
87
- */
88
- private renderAnnotation;
89
- }
90
- //# sourceMappingURL=AnnotationLayer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnnotationLayer.d.ts","sourceRoot":"","sources":["../../../src/ui/annotation/AnnotationLayer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACR,UAAU,EACV,WAAW,EAiBd,MAAM,kBAAkB,CAAC;AAO1B;;GAEG;AACH,qBAAa,eAAe;IACxB,wCAAwC;IACxC,OAAO,CAAC,eAAe,CAAwC;IAE/D,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAA0C;IAE1D,yBAAyB;IACzB,OAAO,CAAC,IAAI,CAAK;IAEjB,qCAAqC;IACrC,OAAO,CAAC,WAAW,CAA+B;IAElD,+CAA+C;IAC/C,OAAO,CAAC,wBAAwB,CAA0C;IAE1E,mCAAmC;IACnC,OAAO,CAAC,oBAAoB,CAA6C;IAGzE,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;;IAWnC;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAIvE;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIzD;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAItE;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAInD;;;OAGG;IACH,6BAA6B,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAW1D;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ3B;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IA8GjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAiBjB;;;;;;;OAOG;IACH,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc;IAuB1E;;;;;OAKG;IACH,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAsBnE;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA2D3B"}