@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,46 +0,0 @@
1
- /**
2
- * Renderer for shape annotations: line, square, circle, polygon, polyline, ink, redact.
3
- */
4
- import type { LineAnnotation, SquareAnnotation, CircleAnnotation, PolygonAnnotation, PolyLineAnnotation, InkAnnotation, RedactAnnotation } from '../../core/types';
5
- export type ShapeAnnotation = LineAnnotation | SquareAnnotation | CircleAnnotation | PolygonAnnotation | PolyLineAnnotation | InkAnnotation | RedactAnnotation;
6
- /**
7
- * Renders shape annotations (line, square, circle, polygon, polyline, ink, redact).
8
- */
9
- export declare class ShapeRenderer {
10
- private zoom;
11
- constructor(zoom: number);
12
- setZoom(zoom: number): void;
13
- /**
14
- * Render a line annotation with optional line endings.
15
- */
16
- renderLine(overlay: HTMLDivElement, annotation: LineAnnotation): void;
17
- /**
18
- * Draw a line ending at a point.
19
- */
20
- private drawLineEnding;
21
- /**
22
- * Render a square/rectangle annotation.
23
- */
24
- renderSquare(overlay: HTMLDivElement, annotation: SquareAnnotation): void;
25
- /**
26
- * Render a circle/ellipse annotation.
27
- */
28
- renderCircle(overlay: HTMLDivElement, annotation: CircleAnnotation): void;
29
- /**
30
- * Render a polygon annotation (closed shape).
31
- */
32
- renderPolygon(overlay: HTMLDivElement, annotation: PolygonAnnotation): void;
33
- /**
34
- * Render a polyline annotation (open path).
35
- */
36
- renderPolyLine(overlay: HTMLDivElement, annotation: PolyLineAnnotation): void;
37
- /**
38
- * Render an ink (freehand) annotation.
39
- */
40
- renderInk(overlay: HTMLDivElement, annotation: InkAnnotation): void;
41
- /**
42
- * Render a redact annotation (marks content for removal).
43
- */
44
- renderRedact(overlay: HTMLDivElement, annotation: RedactAnnotation): void;
45
- }
46
- //# sourceMappingURL=ShapeRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShapeRenderer.d.ts","sourceRoot":"","sources":["../../../src/ui/annotation/ShapeRenderer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EACR,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAEnB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,MAAM,eAAe,GACrB,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,GAClB,aAAa,GACb,gBAAgB,CAAC;AAEvB;;GAEG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,IAAI,CAAS;gBAET,IAAI,EAAE,MAAM;IAIxB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI;IAoCrE;;OAEG;IACH,OAAO,CAAC,cAAc;IA4ItB;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI;IA8BzE;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAmCzE;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,GAAG,IAAI;IA2B3E;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,GAAG,IAAI;IAwB7E;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,GAAG,IAAI;IAoCnE;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI;CAuD5E"}
@@ -1,376 +0,0 @@
1
- import { colorToRgb, createSvgOverlay, scaleBounds, scaleQuadPoints, POINTS_TO_CSS_PIXELS } from './utils';
2
- /**
3
- * Renders shape annotations (line, square, circle, polygon, polyline, ink, redact).
4
- */
5
- export class ShapeRenderer {
6
- zoom;
7
- constructor(zoom) {
8
- this.zoom = zoom;
9
- }
10
- setZoom(zoom) {
11
- this.zoom = zoom;
12
- }
13
- /**
14
- * Render a line annotation with optional line endings.
15
- */
16
- renderLine(overlay, annotation) {
17
- const svg = createSvgOverlay();
18
- const color = colorToRgb(annotation.color, 'rgb(0, 0, 0)');
19
- const interiorColor = colorToRgb(annotation.interiorColor, color);
20
- const strokeWidth = (annotation.borderWidth ?? 1) * this.zoom;
21
- const opacity = annotation.opacity ?? 1;
22
- // Scale coordinates
23
- const startX = annotation.start.x * POINTS_TO_CSS_PIXELS * this.zoom;
24
- const startY = annotation.start.y * POINTS_TO_CSS_PIXELS * this.zoom;
25
- const endX = annotation.end.x * POINTS_TO_CSS_PIXELS * this.zoom;
26
- const endY = annotation.end.y * POINTS_TO_CSS_PIXELS * this.zoom;
27
- // Create group for line and endings
28
- const g = document.createElementNS('http://www.w3.org/2000/svg', 'g');
29
- g.setAttribute('opacity', String(opacity));
30
- // Draw main line
31
- const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');
32
- line.setAttribute('x1', String(startX));
33
- line.setAttribute('y1', String(startY));
34
- line.setAttribute('x2', String(endX));
35
- line.setAttribute('y2', String(endY));
36
- line.setAttribute('stroke', color);
37
- line.setAttribute('stroke-width', String(strokeWidth));
38
- g.appendChild(line);
39
- // Draw line endings
40
- const angle = Math.atan2(endY - startY, endX - startX);
41
- this.drawLineEnding(g, startX, startY, annotation.startEnding, angle + Math.PI, strokeWidth, color, interiorColor);
42
- this.drawLineEnding(g, endX, endY, annotation.endEnding, angle, strokeWidth, color, interiorColor);
43
- svg.appendChild(g);
44
- overlay.appendChild(svg);
45
- }
46
- /**
47
- * Draw a line ending at a point.
48
- */
49
- drawLineEnding(g, x, y, ending, angle, strokeWidth, color, interiorColor) {
50
- if (ending === 'None')
51
- return;
52
- const size = strokeWidth * 4;
53
- switch (ending) {
54
- case 'OpenArrow': {
55
- const p1x = x - size * Math.cos(angle - Math.PI / 6);
56
- const p1y = y - size * Math.sin(angle - Math.PI / 6);
57
- const p2x = x - size * Math.cos(angle + Math.PI / 6);
58
- const p2y = y - size * Math.sin(angle + Math.PI / 6);
59
- const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
60
- path.setAttribute('d', `M ${p1x} ${p1y} L ${x} ${y} L ${p2x} ${p2y}`);
61
- path.setAttribute('stroke', color);
62
- path.setAttribute('stroke-width', String(strokeWidth));
63
- path.setAttribute('fill', 'none');
64
- g.appendChild(path);
65
- break;
66
- }
67
- case 'ClosedArrow': {
68
- const p1x = x - size * Math.cos(angle - Math.PI / 6);
69
- const p1y = y - size * Math.sin(angle - Math.PI / 6);
70
- const p2x = x - size * Math.cos(angle + Math.PI / 6);
71
- const p2y = y - size * Math.sin(angle + Math.PI / 6);
72
- const polygon = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');
73
- polygon.setAttribute('points', `${x},${y} ${p1x},${p1y} ${p2x},${p2y}`);
74
- polygon.setAttribute('fill', interiorColor);
75
- polygon.setAttribute('stroke', color);
76
- polygon.setAttribute('stroke-width', String(strokeWidth * 0.5));
77
- g.appendChild(polygon);
78
- break;
79
- }
80
- case 'Circle': {
81
- const circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
82
- circle.setAttribute('cx', String(x));
83
- circle.setAttribute('cy', String(y));
84
- circle.setAttribute('r', String(size / 2));
85
- circle.setAttribute('fill', interiorColor);
86
- circle.setAttribute('stroke', color);
87
- circle.setAttribute('stroke-width', String(strokeWidth * 0.5));
88
- g.appendChild(circle);
89
- break;
90
- }
91
- case 'Square': {
92
- const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
93
- rect.setAttribute('x', String(x - size / 2));
94
- rect.setAttribute('y', String(y - size / 2));
95
- rect.setAttribute('width', String(size));
96
- rect.setAttribute('height', String(size));
97
- rect.setAttribute('fill', interiorColor);
98
- rect.setAttribute('stroke', color);
99
- rect.setAttribute('stroke-width', String(strokeWidth * 0.5));
100
- g.appendChild(rect);
101
- break;
102
- }
103
- case 'Diamond': {
104
- const dx = size / 2;
105
- const points = `${x},${y - dx} ${x + dx},${y} ${x},${y + dx} ${x - dx},${y}`;
106
- const polygon = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');
107
- polygon.setAttribute('points', points);
108
- polygon.setAttribute('fill', interiorColor);
109
- polygon.setAttribute('stroke', color);
110
- polygon.setAttribute('stroke-width', String(strokeWidth * 0.5));
111
- g.appendChild(polygon);
112
- break;
113
- }
114
- case 'Butt': {
115
- // Perpendicular line
116
- const perpAngle = angle + Math.PI / 2;
117
- const p1x = x + (size / 2) * Math.cos(perpAngle);
118
- const p1y = y + (size / 2) * Math.sin(perpAngle);
119
- const p2x = x - (size / 2) * Math.cos(perpAngle);
120
- const p2y = y - (size / 2) * Math.sin(perpAngle);
121
- const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');
122
- line.setAttribute('x1', String(p1x));
123
- line.setAttribute('y1', String(p1y));
124
- line.setAttribute('x2', String(p2x));
125
- line.setAttribute('y2', String(p2y));
126
- line.setAttribute('stroke', color);
127
- line.setAttribute('stroke-width', String(strokeWidth));
128
- g.appendChild(line);
129
- break;
130
- }
131
- case 'ROpenArrow': {
132
- // Reversed open arrow (pointing away from line)
133
- const p1x = x + size * Math.cos(angle - Math.PI / 6);
134
- const p1y = y + size * Math.sin(angle - Math.PI / 6);
135
- const p2x = x + size * Math.cos(angle + Math.PI / 6);
136
- const p2y = y + size * Math.sin(angle + Math.PI / 6);
137
- const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
138
- path.setAttribute('d', `M ${p1x} ${p1y} L ${x} ${y} L ${p2x} ${p2y}`);
139
- path.setAttribute('stroke', color);
140
- path.setAttribute('stroke-width', String(strokeWidth));
141
- path.setAttribute('fill', 'none');
142
- g.appendChild(path);
143
- break;
144
- }
145
- case 'RClosedArrow': {
146
- // Reversed closed arrow
147
- const p1x = x + size * Math.cos(angle - Math.PI / 6);
148
- const p1y = y + size * Math.sin(angle - Math.PI / 6);
149
- const p2x = x + size * Math.cos(angle + Math.PI / 6);
150
- const p2y = y + size * Math.sin(angle + Math.PI / 6);
151
- const polygon = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');
152
- polygon.setAttribute('points', `${x},${y} ${p1x},${p1y} ${p2x},${p2y}`);
153
- polygon.setAttribute('fill', interiorColor);
154
- polygon.setAttribute('stroke', color);
155
- polygon.setAttribute('stroke-width', String(strokeWidth * 0.5));
156
- g.appendChild(polygon);
157
- break;
158
- }
159
- case 'Slash': {
160
- // Slash line
161
- const slashAngle = angle + Math.PI / 4;
162
- const p1x = x + (size / 2) * Math.cos(slashAngle);
163
- const p1y = y + (size / 2) * Math.sin(slashAngle);
164
- const p2x = x - (size / 2) * Math.cos(slashAngle);
165
- const p2y = y - (size / 2) * Math.sin(slashAngle);
166
- const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');
167
- line.setAttribute('x1', String(p1x));
168
- line.setAttribute('y1', String(p1y));
169
- line.setAttribute('x2', String(p2x));
170
- line.setAttribute('y2', String(p2y));
171
- line.setAttribute('stroke', color);
172
- line.setAttribute('stroke-width', String(strokeWidth));
173
- g.appendChild(line);
174
- break;
175
- }
176
- }
177
- }
178
- /**
179
- * Render a square/rectangle annotation.
180
- */
181
- renderSquare(overlay, annotation) {
182
- const svg = createSvgOverlay();
183
- const color = colorToRgb(annotation.color, 'rgb(0, 0, 0)');
184
- const interiorColor = annotation.interiorColor
185
- ? colorToRgb(annotation.interiorColor, 'none')
186
- : 'none';
187
- const strokeWidth = (annotation.borderWidth ?? 1) * this.zoom;
188
- const opacity = annotation.opacity ?? 1;
189
- const scaled = scaleBounds(annotation.bounds, this.zoom);
190
- const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
191
- rect.setAttribute('x', String(scaled.x + strokeWidth / 2));
192
- rect.setAttribute('y', String(scaled.y + strokeWidth / 2));
193
- rect.setAttribute('width', String(Math.max(0, scaled.width - strokeWidth)));
194
- rect.setAttribute('height', String(Math.max(0, scaled.height - strokeWidth)));
195
- rect.setAttribute('fill', interiorColor);
196
- rect.setAttribute('stroke', color);
197
- rect.setAttribute('stroke-width', String(strokeWidth));
198
- rect.setAttribute('opacity', String(opacity));
199
- // Apply dash pattern for dashed style
200
- if (annotation.borderStyle === 'dashed') {
201
- rect.setAttribute('stroke-dasharray', `${strokeWidth * 3} ${strokeWidth * 2}`);
202
- }
203
- svg.appendChild(rect);
204
- overlay.appendChild(svg);
205
- }
206
- /**
207
- * Render a circle/ellipse annotation.
208
- */
209
- renderCircle(overlay, annotation) {
210
- const svg = createSvgOverlay();
211
- const color = colorToRgb(annotation.color, 'rgb(0, 0, 0)');
212
- const interiorColor = annotation.interiorColor
213
- ? colorToRgb(annotation.interiorColor, 'none')
214
- : 'none';
215
- const strokeWidth = (annotation.borderWidth ?? 1) * this.zoom;
216
- const opacity = annotation.opacity ?? 1;
217
- const scaled = scaleBounds(annotation.bounds, this.zoom);
218
- const cx = scaled.x + scaled.width / 2;
219
- const cy = scaled.y + scaled.height / 2;
220
- const rx = (scaled.width - strokeWidth) / 2;
221
- const ry = (scaled.height - strokeWidth) / 2;
222
- const ellipse = document.createElementNS('http://www.w3.org/2000/svg', 'ellipse');
223
- ellipse.setAttribute('cx', String(cx));
224
- ellipse.setAttribute('cy', String(cy));
225
- ellipse.setAttribute('rx', String(Math.max(0, rx)));
226
- ellipse.setAttribute('ry', String(Math.max(0, ry)));
227
- ellipse.setAttribute('fill', interiorColor);
228
- ellipse.setAttribute('stroke', color);
229
- ellipse.setAttribute('stroke-width', String(strokeWidth));
230
- ellipse.setAttribute('opacity', String(opacity));
231
- // Apply dash pattern for dashed style
232
- if (annotation.borderStyle === 'dashed') {
233
- ellipse.setAttribute('stroke-dasharray', `${strokeWidth * 3} ${strokeWidth * 2}`);
234
- }
235
- svg.appendChild(ellipse);
236
- overlay.appendChild(svg);
237
- }
238
- /**
239
- * Render a polygon annotation (closed shape).
240
- */
241
- renderPolygon(overlay, annotation) {
242
- if (!annotation.vertices || annotation.vertices.length < 3)
243
- return;
244
- const svg = createSvgOverlay();
245
- const color = colorToRgb(annotation.color, 'rgb(0, 0, 0)');
246
- const interiorColor = annotation.interiorColor
247
- ? colorToRgb(annotation.interiorColor, 'none')
248
- : 'none';
249
- const strokeWidth = (annotation.borderWidth ?? 1) * this.zoom;
250
- const opacity = annotation.opacity ?? 1;
251
- const scaledPoints = annotation.vertices.map((p) => ({
252
- x: p.x * POINTS_TO_CSS_PIXELS * this.zoom,
253
- y: p.y * POINTS_TO_CSS_PIXELS * this.zoom,
254
- }));
255
- const polygon = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');
256
- polygon.setAttribute('points', scaledPoints.map((p) => `${p.x},${p.y}`).join(' '));
257
- polygon.setAttribute('fill', interiorColor);
258
- polygon.setAttribute('stroke', color);
259
- polygon.setAttribute('stroke-width', String(strokeWidth));
260
- polygon.setAttribute('opacity', String(opacity));
261
- svg.appendChild(polygon);
262
- overlay.appendChild(svg);
263
- }
264
- /**
265
- * Render a polyline annotation (open path).
266
- */
267
- renderPolyLine(overlay, annotation) {
268
- if (!annotation.vertices || annotation.vertices.length < 2)
269
- return;
270
- const svg = createSvgOverlay();
271
- const color = colorToRgb(annotation.color, 'rgb(0, 0, 0)');
272
- const strokeWidth = (annotation.borderWidth ?? 1) * this.zoom;
273
- const opacity = annotation.opacity ?? 1;
274
- const scaledPoints = annotation.vertices.map((p) => ({
275
- x: p.x * POINTS_TO_CSS_PIXELS * this.zoom,
276
- y: p.y * POINTS_TO_CSS_PIXELS * this.zoom,
277
- }));
278
- const polyline = document.createElementNS('http://www.w3.org/2000/svg', 'polyline');
279
- polyline.setAttribute('points', scaledPoints.map((p) => `${p.x},${p.y}`).join(' '));
280
- polyline.setAttribute('fill', 'none');
281
- polyline.setAttribute('stroke', color);
282
- polyline.setAttribute('stroke-width', String(strokeWidth));
283
- polyline.setAttribute('opacity', String(opacity));
284
- svg.appendChild(polyline);
285
- overlay.appendChild(svg);
286
- }
287
- /**
288
- * Render an ink (freehand) annotation.
289
- */
290
- renderInk(overlay, annotation) {
291
- if (!annotation.inkList || annotation.inkList.length === 0)
292
- return;
293
- const svg = createSvgOverlay();
294
- const color = colorToRgb(annotation.color, 'rgb(0, 0, 0)');
295
- const strokeWidth = (annotation.borderWidth ?? 1) * this.zoom;
296
- const opacity = annotation.opacity ?? 1;
297
- const g = document.createElementNS('http://www.w3.org/2000/svg', 'g');
298
- g.setAttribute('opacity', String(opacity));
299
- for (const stroke of annotation.inkList) {
300
- if (stroke.length < 2)
301
- continue;
302
- const pathData = stroke
303
- .map((p, i) => {
304
- const x = p.x * POINTS_TO_CSS_PIXELS * this.zoom;
305
- const y = p.y * POINTS_TO_CSS_PIXELS * this.zoom;
306
- return `${i === 0 ? 'M' : 'L'} ${x} ${y}`;
307
- })
308
- .join(' ');
309
- const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
310
- path.setAttribute('d', pathData);
311
- path.setAttribute('fill', 'none');
312
- path.setAttribute('stroke', color);
313
- path.setAttribute('stroke-width', String(strokeWidth));
314
- path.setAttribute('stroke-linecap', 'round');
315
- path.setAttribute('stroke-linejoin', 'round');
316
- g.appendChild(path);
317
- }
318
- svg.appendChild(g);
319
- overlay.appendChild(svg);
320
- }
321
- /**
322
- * Render a redact annotation (marks content for removal).
323
- */
324
- renderRedact(overlay, annotation) {
325
- const svg = createSvgOverlay();
326
- const borderColor = colorToRgb(annotation.color, 'rgb(255, 0, 0)'); // Default red border
327
- const fillColor = colorToRgb(annotation.interiorColor, 'rgb(0, 0, 0)'); // Default black fill
328
- const opacity = annotation.opacity ?? 1;
329
- const g = document.createElementNS('http://www.w3.org/2000/svg', 'g');
330
- g.setAttribute('opacity', String(opacity));
331
- // If we have quads, draw each quad region
332
- if (annotation.quads && annotation.quads.length > 0) {
333
- for (const quad of annotation.quads) {
334
- const scaledPoints = scaleQuadPoints(quad.points, this.zoom);
335
- const polygon = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');
336
- polygon.setAttribute('points', scaledPoints.map((p) => `${p.x},${p.y}`).join(' '));
337
- polygon.setAttribute('fill', fillColor);
338
- polygon.setAttribute('fill-opacity', '0.3');
339
- polygon.setAttribute('stroke', borderColor);
340
- polygon.setAttribute('stroke-width', String(2 * this.zoom));
341
- polygon.setAttribute('stroke-dasharray', `${4 * this.zoom} ${2 * this.zoom}`);
342
- g.appendChild(polygon);
343
- }
344
- }
345
- else {
346
- // Draw the entire bounds as a redaction area
347
- const scaled = scaleBounds(annotation.bounds, this.zoom);
348
- const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
349
- rect.setAttribute('x', String(scaled.x));
350
- rect.setAttribute('y', String(scaled.y));
351
- rect.setAttribute('width', String(scaled.width));
352
- rect.setAttribute('height', String(scaled.height));
353
- rect.setAttribute('fill', fillColor);
354
- rect.setAttribute('fill-opacity', '0.3');
355
- rect.setAttribute('stroke', borderColor);
356
- rect.setAttribute('stroke-width', String(2 * this.zoom));
357
- rect.setAttribute('stroke-dasharray', `${4 * this.zoom} ${2 * this.zoom}`);
358
- g.appendChild(rect);
359
- // Add overlay text if present
360
- if (annotation.overlayText) {
361
- const text = document.createElementNS('http://www.w3.org/2000/svg', 'text');
362
- text.setAttribute('x', String(scaled.x + scaled.width / 2));
363
- text.setAttribute('y', String(scaled.y + scaled.height / 2));
364
- text.setAttribute('fill', borderColor);
365
- text.setAttribute('font-size', String(Math.min(scaled.height * 0.6, 14 * this.zoom)));
366
- text.setAttribute('text-anchor', 'middle');
367
- text.setAttribute('dominant-baseline', 'middle');
368
- text.textContent = annotation.overlayText;
369
- g.appendChild(text);
370
- }
371
- }
372
- svg.appendChild(g);
373
- overlay.appendChild(svg);
374
- }
375
- }
376
- //# sourceMappingURL=ShapeRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShapeRenderer.js","sourceRoot":"","sources":["../../../src/ui/annotation/ShapeRenderer.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- /**
2
- * Renderer for text annotations: text (sticky note), freeText, stamp, caret.
3
- */
4
- import type { TextAnnotation, FreeTextAnnotation, StampAnnotation, CaretAnnotation, MarkupMetadata } from '../../core/types';
5
- export type TextAnnotationType = TextAnnotation | FreeTextAnnotation | StampAnnotation | CaretAnnotation;
6
- /**
7
- * Callback type for showing popup with annotation metadata.
8
- */
9
- export type ShowPopupCallback = (anchor: HTMLElement, metadata: MarkupMetadata, color: string) => void;
10
- /**
11
- * Renders text-related annotations (text, freeText, stamp, caret).
12
- */
13
- export declare class TextRenderer {
14
- private zoom;
15
- private onShowPopup?;
16
- constructor(zoom: number, onShowPopup?: ShowPopupCallback);
17
- setZoom(zoom: number): void;
18
- setShowPopupCallback(callback: ShowPopupCallback): void;
19
- /**
20
- * Render a text (sticky note) annotation as an icon.
21
- */
22
- renderText(overlay: HTMLDivElement, annotation: TextAnnotation): void;
23
- /**
24
- * Render a free text (typewriter/text box) annotation.
25
- */
26
- renderFreeText(overlay: HTMLDivElement, annotation: FreeTextAnnotation): void;
27
- /**
28
- * Render a stamp annotation as a bordered text label.
29
- */
30
- renderStamp(overlay: HTMLDivElement, annotation: StampAnnotation): void;
31
- /**
32
- * Render a caret (text insertion point) annotation.
33
- */
34
- renderCaret(overlay: HTMLDivElement, annotation: CaretAnnotation): void;
35
- }
36
- //# sourceMappingURL=TextRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextRenderer.d.ts","sourceRoot":"","sources":["../../../src/ui/annotation/TextRenderer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EACR,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,cAAc,EACjB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,MAAM,kBAAkB,GACxB,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,eAAe,CAAC;AAEtB;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC5B,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,MAAM,KACZ,IAAI,CAAC;AAEV;;GAEG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,WAAW,CAAC,CAAoB;gBAE5B,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,iBAAiB;IAKzD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIvD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI;IAwDrE;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,GAAG,IAAI;IAyD7E;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;IA0CvE;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;CA4C1E"}