@docmentis/udoc-viewer 0.5.2 → 0.5.3

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 (211) hide show
  1. package/package.json +1 -1
  2. package/dist/package.json +0 -56
  3. package/dist/src/UDocClient.d.ts +0 -383
  4. package/dist/src/UDocClient.d.ts.map +0 -1
  5. package/dist/src/UDocClient.js +0 -428
  6. package/dist/src/UDocClient.js.map +0 -1
  7. package/dist/src/UDocViewer.d.ts +0 -271
  8. package/dist/src/UDocViewer.d.ts.map +0 -1
  9. package/dist/src/UDocViewer.js +0 -769
  10. package/dist/src/UDocViewer.js.map +0 -1
  11. package/dist/src/fonts.d.ts +0 -29
  12. package/dist/src/fonts.d.ts.map +0 -1
  13. package/dist/src/fonts.js +0 -30
  14. package/dist/src/fonts.js.map +0 -1
  15. package/dist/src/index.d.ts +0 -9
  16. package/dist/src/index.d.ts.map +0 -1
  17. package/dist/src/index.js +0 -8
  18. package/dist/src/index.js.map +0 -1
  19. package/dist/src/performance/PerformanceCounter.d.ts +0 -132
  20. package/dist/src/performance/PerformanceCounter.d.ts.map +0 -1
  21. package/dist/src/performance/PerformanceCounter.js +0 -129
  22. package/dist/src/performance/PerformanceCounter.js.map +0 -1
  23. package/dist/src/performance/index.d.ts +0 -2
  24. package/dist/src/performance/index.d.ts.map +0 -1
  25. package/dist/src/performance/index.js +0 -2
  26. package/dist/src/performance/index.js.map +0 -1
  27. package/dist/src/ui/framework/component.d.ts +0 -68
  28. package/dist/src/ui/framework/component.d.ts.map +0 -1
  29. package/dist/src/ui/framework/component.js +0 -87
  30. package/dist/src/ui/framework/component.js.map +0 -1
  31. package/dist/src/ui/framework/dom.d.ts +0 -19
  32. package/dist/src/ui/framework/dom.d.ts.map +0 -1
  33. package/dist/src/ui/framework/dom.js +0 -29
  34. package/dist/src/ui/framework/dom.js.map +0 -1
  35. package/dist/src/ui/framework/events.d.ts +0 -18
  36. package/dist/src/ui/framework/events.d.ts.map +0 -1
  37. package/dist/src/ui/framework/events.js +0 -23
  38. package/dist/src/ui/framework/events.js.map +0 -1
  39. package/dist/src/ui/framework/index.d.ts +0 -15
  40. package/dist/src/ui/framework/index.d.ts.map +0 -1
  41. package/dist/src/ui/framework/index.js +0 -15
  42. package/dist/src/ui/framework/index.js.map +0 -1
  43. package/dist/src/ui/framework/selectors.d.ts +0 -51
  44. package/dist/src/ui/framework/selectors.d.ts.map +0 -1
  45. package/dist/src/ui/framework/selectors.js +0 -30
  46. package/dist/src/ui/framework/selectors.js.map +0 -1
  47. package/dist/src/ui/framework/store.d.ts +0 -37
  48. package/dist/src/ui/framework/store.d.ts.map +0 -1
  49. package/dist/src/ui/framework/store.js +0 -54
  50. package/dist/src/ui/framework/store.js.map +0 -1
  51. package/dist/src/ui/viewer/actions.d.ts +0 -131
  52. package/dist/src/ui/viewer/actions.d.ts.map +0 -1
  53. package/dist/src/ui/viewer/actions.js +0 -2
  54. package/dist/src/ui/viewer/actions.js.map +0 -1
  55. package/dist/src/ui/viewer/annotation/LinkRenderer.d.ts +0 -9
  56. package/dist/src/ui/viewer/annotation/LinkRenderer.d.ts.map +0 -1
  57. package/dist/src/ui/viewer/annotation/LinkRenderer.js +0 -17
  58. package/dist/src/ui/viewer/annotation/LinkRenderer.js.map +0 -1
  59. package/dist/src/ui/viewer/annotation/MarkupRenderer.d.ts +0 -21
  60. package/dist/src/ui/viewer/annotation/MarkupRenderer.d.ts.map +0 -1
  61. package/dist/src/ui/viewer/annotation/MarkupRenderer.js +0 -138
  62. package/dist/src/ui/viewer/annotation/MarkupRenderer.js.map +0 -1
  63. package/dist/src/ui/viewer/annotation/ShapeRenderer.d.ts +0 -33
  64. package/dist/src/ui/viewer/annotation/ShapeRenderer.d.ts.map +0 -1
  65. package/dist/src/ui/viewer/annotation/ShapeRenderer.js +0 -378
  66. package/dist/src/ui/viewer/annotation/ShapeRenderer.js.map +0 -1
  67. package/dist/src/ui/viewer/annotation/TextRenderer.d.ts +0 -23
  68. package/dist/src/ui/viewer/annotation/TextRenderer.d.ts.map +0 -1
  69. package/dist/src/ui/viewer/annotation/TextRenderer.js +0 -196
  70. package/dist/src/ui/viewer/annotation/TextRenderer.js.map +0 -1
  71. package/dist/src/ui/viewer/annotation/index.d.ts +0 -8
  72. package/dist/src/ui/viewer/annotation/index.d.ts.map +0 -1
  73. package/dist/src/ui/viewer/annotation/index.js +0 -8
  74. package/dist/src/ui/viewer/annotation/index.js.map +0 -1
  75. package/dist/src/ui/viewer/annotation/render.d.ts +0 -24
  76. package/dist/src/ui/viewer/annotation/render.d.ts.map +0 -1
  77. package/dist/src/ui/viewer/annotation/render.js +0 -184
  78. package/dist/src/ui/viewer/annotation/render.js.map +0 -1
  79. package/dist/src/ui/viewer/annotation/types.d.ts +0 -239
  80. package/dist/src/ui/viewer/annotation/types.d.ts.map +0 -1
  81. package/dist/src/ui/viewer/annotation/types.js +0 -7
  82. package/dist/src/ui/viewer/annotation/types.js.map +0 -1
  83. package/dist/src/ui/viewer/annotation/utils.d.ts +0 -37
  84. package/dist/src/ui/viewer/annotation/utils.d.ts.map +0 -1
  85. package/dist/src/ui/viewer/annotation/utils.js +0 -82
  86. package/dist/src/ui/viewer/annotation/utils.js.map +0 -1
  87. package/dist/src/ui/viewer/components/AnnotationPanel.d.ts +0 -19
  88. package/dist/src/ui/viewer/components/AnnotationPanel.d.ts.map +0 -1
  89. package/dist/src/ui/viewer/components/AnnotationPanel.js +0 -284
  90. package/dist/src/ui/viewer/components/AnnotationPanel.js.map +0 -1
  91. package/dist/src/ui/viewer/components/FloatingToolbar.d.ts +0 -9
  92. package/dist/src/ui/viewer/components/FloatingToolbar.d.ts.map +0 -1
  93. package/dist/src/ui/viewer/components/FloatingToolbar.js +0 -305
  94. package/dist/src/ui/viewer/components/FloatingToolbar.js.map +0 -1
  95. package/dist/src/ui/viewer/components/LeftPanel.d.ts +0 -10
  96. package/dist/src/ui/viewer/components/LeftPanel.d.ts.map +0 -1
  97. package/dist/src/ui/viewer/components/LeftPanel.js +0 -165
  98. package/dist/src/ui/viewer/components/LeftPanel.js.map +0 -1
  99. package/dist/src/ui/viewer/components/LoadingOverlay.d.ts +0 -12
  100. package/dist/src/ui/viewer/components/LoadingOverlay.d.ts.map +0 -1
  101. package/dist/src/ui/viewer/components/LoadingOverlay.js +0 -88
  102. package/dist/src/ui/viewer/components/LoadingOverlay.js.map +0 -1
  103. package/dist/src/ui/viewer/components/OutlinePanel.d.ts +0 -10
  104. package/dist/src/ui/viewer/components/OutlinePanel.d.ts.map +0 -1
  105. package/dist/src/ui/viewer/components/OutlinePanel.js +0 -169
  106. package/dist/src/ui/viewer/components/OutlinePanel.js.map +0 -1
  107. package/dist/src/ui/viewer/components/PasswordDialog.d.ts +0 -15
  108. package/dist/src/ui/viewer/components/PasswordDialog.d.ts.map +0 -1
  109. package/dist/src/ui/viewer/components/PasswordDialog.js +0 -143
  110. package/dist/src/ui/viewer/components/PasswordDialog.js.map +0 -1
  111. package/dist/src/ui/viewer/components/RightPanel.d.ts +0 -9
  112. package/dist/src/ui/viewer/components/RightPanel.d.ts.map +0 -1
  113. package/dist/src/ui/viewer/components/RightPanel.js +0 -102
  114. package/dist/src/ui/viewer/components/RightPanel.js.map +0 -1
  115. package/dist/src/ui/viewer/components/Spread.d.ts +0 -43
  116. package/dist/src/ui/viewer/components/Spread.d.ts.map +0 -1
  117. package/dist/src/ui/viewer/components/Spread.js +0 -345
  118. package/dist/src/ui/viewer/components/Spread.js.map +0 -1
  119. package/dist/src/ui/viewer/components/ThumbnailPanel.d.ts +0 -11
  120. package/dist/src/ui/viewer/components/ThumbnailPanel.d.ts.map +0 -1
  121. package/dist/src/ui/viewer/components/ThumbnailPanel.js +0 -240
  122. package/dist/src/ui/viewer/components/ThumbnailPanel.js.map +0 -1
  123. package/dist/src/ui/viewer/components/Toolbar.d.ts +0 -9
  124. package/dist/src/ui/viewer/components/Toolbar.d.ts.map +0 -1
  125. package/dist/src/ui/viewer/components/Toolbar.js +0 -93
  126. package/dist/src/ui/viewer/components/Toolbar.js.map +0 -1
  127. package/dist/src/ui/viewer/components/ViewModeMenu.d.ts +0 -9
  128. package/dist/src/ui/viewer/components/ViewModeMenu.d.ts.map +0 -1
  129. package/dist/src/ui/viewer/components/ViewModeMenu.js +0 -169
  130. package/dist/src/ui/viewer/components/ViewModeMenu.js.map +0 -1
  131. package/dist/src/ui/viewer/components/Viewport.d.ts +0 -10
  132. package/dist/src/ui/viewer/components/Viewport.d.ts.map +0 -1
  133. package/dist/src/ui/viewer/components/Viewport.js +0 -1076
  134. package/dist/src/ui/viewer/components/Viewport.js.map +0 -1
  135. package/dist/src/ui/viewer/effects.d.ts +0 -8
  136. package/dist/src/ui/viewer/effects.d.ts.map +0 -1
  137. package/dist/src/ui/viewer/effects.js +0 -207
  138. package/dist/src/ui/viewer/effects.js.map +0 -1
  139. package/dist/src/ui/viewer/icons.d.ts +0 -32
  140. package/dist/src/ui/viewer/icons.d.ts.map +0 -1
  141. package/dist/src/ui/viewer/icons.js +0 -44
  142. package/dist/src/ui/viewer/icons.js.map +0 -1
  143. package/dist/src/ui/viewer/index.d.ts +0 -6
  144. package/dist/src/ui/viewer/index.d.ts.map +0 -1
  145. package/dist/src/ui/viewer/index.js +0 -6
  146. package/dist/src/ui/viewer/index.js.map +0 -1
  147. package/dist/src/ui/viewer/layout/index.d.ts +0 -3
  148. package/dist/src/ui/viewer/layout/index.d.ts.map +0 -1
  149. package/dist/src/ui/viewer/layout/index.js +0 -3
  150. package/dist/src/ui/viewer/layout/index.js.map +0 -1
  151. package/dist/src/ui/viewer/layout/pixelAlign.d.ts +0 -7
  152. package/dist/src/ui/viewer/layout/pixelAlign.d.ts.map +0 -1
  153. package/dist/src/ui/viewer/layout/pixelAlign.js +0 -22
  154. package/dist/src/ui/viewer/layout/pixelAlign.js.map +0 -1
  155. package/dist/src/ui/viewer/layout/spreadLayout.d.ts +0 -93
  156. package/dist/src/ui/viewer/layout/spreadLayout.d.ts.map +0 -1
  157. package/dist/src/ui/viewer/layout/spreadLayout.js +0 -315
  158. package/dist/src/ui/viewer/layout/spreadLayout.js.map +0 -1
  159. package/dist/src/ui/viewer/navigation.d.ts +0 -80
  160. package/dist/src/ui/viewer/navigation.d.ts.map +0 -1
  161. package/dist/src/ui/viewer/navigation.js +0 -59
  162. package/dist/src/ui/viewer/navigation.js.map +0 -1
  163. package/dist/src/ui/viewer/reducer.d.ts +0 -4
  164. package/dist/src/ui/viewer/reducer.d.ts.map +0 -1
  165. package/dist/src/ui/viewer/reducer.js +0 -305
  166. package/dist/src/ui/viewer/reducer.js.map +0 -1
  167. package/dist/src/ui/viewer/shell.d.ts +0 -34
  168. package/dist/src/ui/viewer/shell.d.ts.map +0 -1
  169. package/dist/src/ui/viewer/shell.js +0 -93
  170. package/dist/src/ui/viewer/shell.js.map +0 -1
  171. package/dist/src/ui/viewer/state.d.ts +0 -89
  172. package/dist/src/ui/viewer/state.d.ts.map +0 -1
  173. package/dist/src/ui/viewer/state.js +0 -55
  174. package/dist/src/ui/viewer/state.js.map +0 -1
  175. package/dist/src/ui/viewer/styles-inline.d.ts +0 -2
  176. package/dist/src/ui/viewer/styles-inline.d.ts.map +0 -1
  177. package/dist/src/ui/viewer/styles-inline.js +0 -1584
  178. package/dist/src/ui/viewer/styles-inline.js.map +0 -1
  179. package/dist/src/ui/viewer/text/index.d.ts +0 -7
  180. package/dist/src/ui/viewer/text/index.d.ts.map +0 -1
  181. package/dist/src/ui/viewer/text/index.js +0 -3
  182. package/dist/src/ui/viewer/text/index.js.map +0 -1
  183. package/dist/src/ui/viewer/text/render.d.ts +0 -19
  184. package/dist/src/ui/viewer/text/render.d.ts.map +0 -1
  185. package/dist/src/ui/viewer/text/render.js +0 -228
  186. package/dist/src/ui/viewer/text/render.js.map +0 -1
  187. package/dist/src/ui/viewer/text/selection.d.ts +0 -12
  188. package/dist/src/ui/viewer/text/selection.d.ts.map +0 -1
  189. package/dist/src/ui/viewer/text/selection.js +0 -70
  190. package/dist/src/ui/viewer/text/selection.js.map +0 -1
  191. package/dist/src/ui/viewer/text/types.d.ts +0 -37
  192. package/dist/src/ui/viewer/text/types.d.ts.map +0 -1
  193. package/dist/src/ui/viewer/text/types.js +0 -7
  194. package/dist/src/ui/viewer/text/types.js.map +0 -1
  195. package/dist/src/wasm/LICENSE +0 -104
  196. package/dist/src/wasm/udoc.d.ts +0 -480
  197. package/dist/src/wasm/udoc.js +0 -1738
  198. package/dist/src/wasm/udoc_bg.wasm +0 -0
  199. package/dist/src/wasm/udoc_bg.wasm.d.ts +0 -45
  200. package/dist/src/worker/WorkerClient.d.ts +0 -335
  201. package/dist/src/worker/WorkerClient.d.ts.map +0 -1
  202. package/dist/src/worker/WorkerClient.js +0 -903
  203. package/dist/src/worker/WorkerClient.js.map +0 -1
  204. package/dist/src/worker/index.d.ts +0 -4
  205. package/dist/src/worker/index.d.ts.map +0 -1
  206. package/dist/src/worker/index.js +0 -2
  207. package/dist/src/worker/index.js.map +0 -1
  208. package/dist/src/worker/worker.d.ts +0 -437
  209. package/dist/src/worker/worker.d.ts.map +0 -1
  210. package/dist/src/worker/worker.js +0 -237
  211. package/dist/src/worker/worker.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../../src/ui/framework/dom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,OAAO,CAAC,EAAW,EAAE,IAAY;IAC7C,IAAI,EAAE,CAAC,WAAW,KAAK,IAAI;QAAE,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;AACvD,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,OAAO,CAAC,EAAW,EAAE,IAAY,EAAE,KAAoB;IACnE,IAAI,KAAK,KAAK,IAAI;QAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SACxC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,KAAK;QAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,WAAW,CAAC,EAAW,EAAE,SAAiB,EAAE,KAAe;IACvE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Event helpers.
3
- *
4
- * Rules:
5
- * - Events represent intent; handlers should dispatch actions.
6
- * - Avoid direct state mutation in event handlers.
7
- *
8
- * Usage:
9
- * ```ts
10
- * const off = on(buttonEl, "click", () => store.dispatch({ type: "NEXT_PAGE" }));
11
- * emit(viewerEl, "udoc:page-change", { page: 2 });
12
- * off();
13
- * ```
14
- */
15
- export declare function emit<T>(el: Element, name: string, detail?: T): void;
16
- /** Add a DOM listener and return a cleanup function. */
17
- export declare function on<K extends keyof HTMLElementEventMap>(el: Element, type: K, handler: (ev: HTMLElementEventMap[K]) => void): () => void;
18
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/ui/framework/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAEnE;AAED,wDAAwD;AACxD,wBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAClD,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,IAAI,GAC9C,MAAM,IAAI,CAGZ"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Event helpers.
3
- *
4
- * Rules:
5
- * - Events represent intent; handlers should dispatch actions.
6
- * - Avoid direct state mutation in event handlers.
7
- *
8
- * Usage:
9
- * ```ts
10
- * const off = on(buttonEl, "click", () => store.dispatch({ type: "NEXT_PAGE" }));
11
- * emit(viewerEl, "udoc:page-change", { page: 2 });
12
- * off();
13
- * ```
14
- */
15
- export function emit(el, name, detail) {
16
- el.dispatchEvent(new CustomEvent(name, { bubbles: true, detail }));
17
- }
18
- /** Add a DOM listener and return a cleanup function. */
19
- export function on(el, type, handler) {
20
- el.addEventListener(type, handler);
21
- return () => el.removeEventListener(type, handler);
22
- }
23
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/ui/framework/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,IAAI,CAAI,EAAW,EAAE,IAAY,EAAE,MAAU;IACzD,EAAE,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,EAAE,CACd,EAAW,EACX,IAAO,EACP,OAA6C;IAE7C,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAwB,CAAC,CAAC;IACpD,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAwB,CAAC,CAAC;AACxE,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Framework entry point.
3
- * Re-export core primitives for app-layer usage.
4
- *
5
- * Usage:
6
- * ```ts
7
- * import { createStore, shallowEqual, Component } from "./ui/framework";
8
- * ```
9
- */
10
- export * from "./store";
11
- export * from "./selectors";
12
- export * from "./component";
13
- export * from "./dom";
14
- export * from "./events";
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/framework/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Framework entry point.
3
- * Re-export core primitives for app-layer usage.
4
- *
5
- * Usage:
6
- * ```ts
7
- * import { createStore, shallowEqual, Component } from "./ui/framework";
8
- * ```
9
- */
10
- export * from "./store";
11
- export * from "./selectors";
12
- export * from "./component";
13
- export * from "./dom";
14
- export * from "./events";
15
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/framework/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC"}
@@ -1,51 +0,0 @@
1
- /**
2
- * Selector utilities.
3
- *
4
- * Why selectors:
5
- * - Most components only care about a small slice of global state.
6
- * - Using selectors lets you re-render only when that slice changes.
7
- * - This keeps DOM work cheap and avoids coupling components to the full state.
8
- *
9
- * When to use:
10
- * - Any component that reads state for rendering.
11
- * - Any effect that should run only on specific state changes.
12
- *
13
- * How to use:
14
- * 1) Define a selector that returns the minimal shape you need.
15
- * 2) Subscribe with equality to skip redundant updates.
16
- * 3) In the callback, patch DOM (render) or run async work (effect).
17
- *
18
- * Example (render):
19
- * ```ts
20
- * const selectToolbar = (s: ViewerState) => ({
21
- * page: s.page,
22
- * pageCount: s.pageCount
23
- * });
24
- *
25
- * const off = subscribeSelector(store, selectToolbar, (next) => {
26
- * pageInput.value = String(next.page);
27
- * pageInput.max = String(Math.max(1, next.pageCount));
28
- * }, { equality: shallowEqual });
29
- * ```
30
- *
31
- * Example (effect):
32
- * ```ts
33
- * const off = subscribeSelector(store, s => s.zoom, (nextZoom) => {
34
- * engine.setZoom(nextZoom);
35
- * }, { phase: "effect" });
36
- * ```
37
- */
38
- import type { Store } from "./store";
39
- export type Equality<T> = (a: T, b: T) => boolean;
40
- export type Selector<S, T> = (state: S) => T;
41
- /** Shallow object equality for small selector slices. */
42
- export declare function shallowEqual<T extends Record<string, unknown>>(a: T, b: T): boolean;
43
- /**
44
- * Subscribe to a derived slice with equality checking.
45
- * Default phase is render; use phase "effect" for async work.
46
- */
47
- export declare function subscribeSelector<S, A, T>(store: Store<S, A>, selector: Selector<S, T>, listener: (next: T, prev: T) => void, options?: {
48
- equality?: Equality<T>;
49
- phase?: "render" | "effect";
50
- }): () => void;
51
- //# sourceMappingURL=selectors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../../src/ui/framework/selectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;AAClD,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;AAE7C,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAInF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACrC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAClB,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACxB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,EACpC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAAO,GACtE,MAAM,IAAI,CAeZ"}
@@ -1,30 +0,0 @@
1
- /** Shallow object equality for small selector slices. */
2
- export function shallowEqual(a, b) {
3
- for (const k in a)
4
- if (a[k] !== b[k])
5
- return false;
6
- for (const k in b)
7
- if (a[k] !== b[k])
8
- return false;
9
- return true;
10
- }
11
- /**
12
- * Subscribe to a derived slice with equality checking.
13
- * Default phase is render; use phase "effect" for async work.
14
- */
15
- export function subscribeSelector(store, selector, listener, options = {}) {
16
- const equality = options.equality ?? Object.is;
17
- let prevSlice = selector(store.getState());
18
- const handler = (_prev, next) => {
19
- const nextSlice = selector(next);
20
- if (equality(prevSlice, nextSlice))
21
- return;
22
- const prev = prevSlice;
23
- prevSlice = nextSlice;
24
- listener(nextSlice, prev);
25
- };
26
- return options.phase === "effect"
27
- ? store.subscribeEffect(handler)
28
- : store.subscribeRender(handler);
29
- }
30
- //# sourceMappingURL=selectors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../../../src/ui/framework/selectors.ts"],"names":[],"mappings":"AA0CA,yDAAyD;AACzD,MAAM,UAAU,YAAY,CAAoC,CAAI,EAAE,CAAI;IACtE,KAAK,MAAM,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACnD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC7B,KAAkB,EAClB,QAAwB,EACxB,QAAoC,EACpC,UAAmE,EAAE;IAErE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC;IAC/C,IAAI,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,CAAC,KAAQ,EAAE,IAAO,EAAE,EAAE;QAClC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;YAAE,OAAO;QAC3C,MAAM,IAAI,GAAG,SAAS,CAAC;QACvB,SAAS,GAAG,SAAS,CAAC;QACtB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;QAC7B,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC;QAChC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Framework store: central event loop for state + subscriptions.
3
- *
4
- * Rules:
5
- * - Reducers must be pure and synchronous.
6
- * - Render subscribers update DOM only (no effects).
7
- * - Effect subscribers may do async work and may dispatch.
8
- * - Store does not know about viewer-specific state.
9
- *
10
- * Usage:
11
- * ```ts
12
- * const store = createStore(reducer, initialState, { batched: true });
13
- * const off = store.subscribeRender((_prev, next) => render(next));
14
- * store.dispatch({ type: "SET_PAGE", page: 2 });
15
- * off();
16
- * ```
17
- */
18
- export type Reducer<S, A> = (state: S, action: A) => S;
19
- export type Subscriber<S> = (prev: S, next: S) => void;
20
- export interface Store<S, A> {
21
- /** Current state snapshot. */
22
- getState(): S;
23
- /** Dispatch an action to transition state via the reducer. */
24
- dispatch(action: A): void;
25
- /** Render-phase subscription (DOM only). */
26
- subscribeRender(fn: Subscriber<S>): () => void;
27
- /** Effect-phase subscription (async allowed). */
28
- subscribeEffect(fn: Subscriber<S>): () => void;
29
- }
30
- /**
31
- * Create a store with optional microtask batching for subscriber notifications.
32
- * Batching groups multiple dispatches into a single notify cycle.
33
- */
34
- export declare function createStore<S, A>(reducer: Reducer<S, A>, initialState: S, options?: {
35
- batched?: boolean;
36
- }): Store<S, A>;
37
- //# sourceMappingURL=store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/ui/framework/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;AACvD,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEvD,MAAM,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;IACvB,8BAA8B;IAC9B,QAAQ,IAAI,CAAC,CAAC;IACd,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IAC1B,4CAA4C;IAC5C,eAAe,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;IAC/C,iDAAiD;IACjD,eAAe,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;CAClD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAC5B,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,YAAY,EAAE,CAAC,EACf,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GACpC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAkDb"}
@@ -1,54 +0,0 @@
1
- /**
2
- * Create a store with optional microtask batching for subscriber notifications.
3
- * Batching groups multiple dispatches into a single notify cycle.
4
- */
5
- export function createStore(reducer, initialState, options = {}) {
6
- let state = initialState;
7
- const renderSubs = new Set();
8
- const effectSubs = new Set();
9
- const batched = options.batched ?? true;
10
- let pending = false;
11
- let lastPrev = null;
12
- let lastNext = null;
13
- function notify(prev, next) {
14
- for (const fn of renderSubs)
15
- fn(prev, next);
16
- for (const fn of effectSubs)
17
- fn(prev, next);
18
- }
19
- function scheduleNotify(prev, next) {
20
- if (!batched)
21
- return notify(prev, next);
22
- lastPrev = lastPrev ?? prev;
23
- lastNext = next;
24
- if (pending)
25
- return;
26
- pending = true;
27
- queueMicrotask(() => {
28
- pending = false;
29
- const p = lastPrev;
30
- const n = lastNext;
31
- lastPrev = null;
32
- lastNext = null;
33
- notify(p, n);
34
- });
35
- }
36
- function dispatch(action) {
37
- const prev = state;
38
- const next = reducer(prev, action);
39
- if (next === prev)
40
- return;
41
- state = next;
42
- scheduleNotify(prev, next);
43
- }
44
- function subscribeRender(fn) {
45
- renderSubs.add(fn);
46
- return () => renderSubs.delete(fn);
47
- }
48
- function subscribeEffect(fn) {
49
- effectSubs.add(fn);
50
- return () => effectSubs.delete(fn);
51
- }
52
- return { getState: () => state, dispatch, subscribeRender, subscribeEffect };
53
- }
54
- //# sourceMappingURL=store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/ui/framework/store.ts"],"names":[],"mappings":"AA+BA;;;GAGG;AACH,MAAM,UAAU,WAAW,CACvB,OAAsB,EACtB,YAAe,EACf,UAAiC,EAAE;IAEnC,IAAI,KAAK,GAAG,YAAY,CAAC;IACzB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAiB,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAiB,CAAC;IAE5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IACxC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,QAAQ,GAAa,IAAI,CAAC;IAC9B,IAAI,QAAQ,GAAa,IAAI,CAAC;IAE9B,SAAS,MAAM,CAAC,IAAO,EAAE,IAAO;QAC5B,KAAK,MAAM,EAAE,IAAI,UAAU;YAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5C,KAAK,MAAM,EAAE,IAAI,UAAU;YAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,SAAS,cAAc,CAAC,IAAO,EAAE,IAAO;QACpC,IAAI,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;QAC5B,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,cAAc,CAAC,GAAG,EAAE;YAChB,OAAO,GAAG,KAAK,CAAC;YAChB,MAAM,CAAC,GAAG,QAAa,CAAC;YACxB,MAAM,CAAC,GAAG,QAAa,CAAC;YACxB,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,QAAQ,CAAC,MAAS;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO;QAC1B,KAAK,GAAG,IAAI,CAAC;QACb,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,eAAe,CAAC,EAAiB;QACtC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnB,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,SAAS,eAAe,CAAC,EAAiB;QACtC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnB,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;AACjF,CAAC"}
@@ -1,131 +0,0 @@
1
- import type { PanelTab, ScrollMode, LayoutMode, ZoomMode, PageRotation, SpacingMode, PageInfo } from "./state";
2
- import type { Destination, OutlineItem } from "./navigation";
3
- import type { Annotation } from "./annotation";
4
- import type { TextRun } from "./text";
5
- export type Action = {
6
- type: "__INIT__";
7
- } | {
8
- type: "SET_DOC";
9
- doc: {
10
- id: string;
11
- };
12
- pageCount: number;
13
- pageInfos: readonly PageInfo[];
14
- } | {
15
- type: "UPDATE_PAGE_SIZES";
16
- pageInfos: readonly PageInfo[];
17
- } | {
18
- type: "CLEAR_DOC";
19
- } | {
20
- type: "SET_PAGE";
21
- page: number;
22
- } | {
23
- type: "SET_NEEDS_PASSWORD";
24
- needsPassword: boolean;
25
- } | {
26
- type: "AUTHENTICATE_START";
27
- } | {
28
- type: "AUTHENTICATE_SUCCESS";
29
- } | {
30
- type: "AUTHENTICATE_FAILURE";
31
- error: string;
32
- } | {
33
- type: "CLEAR_PASSWORD_ERROR";
34
- } | {
35
- type: "LOAD_OUTLINE";
36
- } | {
37
- type: "SET_OUTLINE";
38
- outline: OutlineItem[];
39
- } | {
40
- type: "LOAD_PAGE_ANNOTATIONS";
41
- pageIndex: number;
42
- } | {
43
- type: "SET_PAGE_ANNOTATIONS";
44
- pageIndex: number;
45
- annotations: Annotation[];
46
- } | {
47
- type: "CLEAR_ANNOTATIONS";
48
- } | {
49
- type: "LOAD_PAGE_TEXT";
50
- pageIndex: number;
51
- } | {
52
- type: "SET_PAGE_TEXT";
53
- pageIndex: number;
54
- text: TextRun[];
55
- } | {
56
- type: "CLEAR_TEXT";
57
- } | {
58
- type: "NAVIGATE_TO_PAGE";
59
- page: number;
60
- } | {
61
- type: "NAVIGATE_TO_DESTINATION";
62
- destination: Destination;
63
- } | {
64
- type: "CLEAR_NAVIGATION_TARGET";
65
- } | {
66
- type: "SET_SCROLL_MODE";
67
- mode: ScrollMode;
68
- } | {
69
- type: "SET_LAYOUT_MODE";
70
- mode: LayoutMode;
71
- } | {
72
- type: "SET_ZOOM_MODE";
73
- mode: ZoomMode;
74
- } | {
75
- type: "SET_ZOOM";
76
- zoom: number;
77
- } | {
78
- type: "SET_EFFECTIVE_ZOOM";
79
- zoom: number | null;
80
- } | {
81
- type: "SET_ZOOM_STEPS";
82
- steps: readonly number[];
83
- } | {
84
- type: "ZOOM_IN";
85
- } | {
86
- type: "ZOOM_OUT";
87
- } | {
88
- type: "SET_PAGE_ROTATION";
89
- rotation: PageRotation;
90
- } | {
91
- type: "SET_SPACING_MODE";
92
- mode: SpacingMode;
93
- } | {
94
- type: "SET_PAGE_SPACING";
95
- spacing: number;
96
- } | {
97
- type: "SET_SPREAD_SPACING";
98
- spacing: number;
99
- } | {
100
- type: "TOGGLE_PANEL";
101
- panel: PanelTab;
102
- } | {
103
- type: "CLOSE_PANEL";
104
- } | {
105
- type: "SET_LEFT_PANEL_WIDTH";
106
- width: number | null;
107
- } | {
108
- type: "SET_RIGHT_PANEL_WIDTH";
109
- width: number | null;
110
- } | {
111
- type: "HIGHLIGHT_ANNOTATION";
112
- pageIndex: number;
113
- bounds: {
114
- x: number;
115
- y: number;
116
- width: number;
117
- height: number;
118
- };
119
- } | {
120
- type: "CLEAR_ANNOTATION_HIGHLIGHT";
121
- } | {
122
- type: "SET_FULLSCREEN";
123
- isFullscreen: boolean;
124
- } | {
125
- type: "SET_DOWNLOAD_PROGRESS";
126
- loaded: number;
127
- total: number;
128
- } | {
129
- type: "CLEAR_DOWNLOAD_PROGRESS";
130
- };
131
- //# sourceMappingURL=actions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/ui/viewer/actions.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=actions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../../src/ui/viewer/actions.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- /**
2
- * Renderer for link annotations.
3
- */
4
- import type { LinkAnnotation } from "./types";
5
- /**
6
- * Render a link annotation.
7
- */
8
- export declare function renderLink(layer: HTMLElement, annotation: LinkAnnotation, scale: number): HTMLElement;
9
- //# sourceMappingURL=LinkRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LinkRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/annotation/LinkRenderer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C;;GAEG;AACH,wBAAgB,UAAU,CACtB,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,cAAc,EAC1B,KAAK,EAAE,MAAM,GACd,WAAW,CAab"}
@@ -1,17 +0,0 @@
1
- import { applyBoundsStyle } from "./utils";
2
- /**
3
- * Render a link annotation.
4
- */
5
- export function renderLink(layer, annotation, scale) {
6
- const el = document.createElement("div");
7
- el.className = "udoc-annotation udoc-annotation--link";
8
- applyBoundsStyle(el, annotation.bounds, scale);
9
- el.style.pointerEvents = "auto";
10
- el.style.cursor = "pointer";
11
- if (annotation.action) {
12
- el.dataset.action = JSON.stringify(annotation.action);
13
- }
14
- layer.appendChild(el);
15
- return el;
16
- }
17
- //# sourceMappingURL=LinkRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LinkRenderer.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/annotation/LinkRenderer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,MAAM,UAAU,UAAU,CACtB,KAAkB,EAClB,UAA0B,EAC1B,KAAa;IAEb,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,EAAE,CAAC,SAAS,GAAG,uCAAuC,CAAC;IACvD,gBAAgB,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/C,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;IAChC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;IAE5B,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACpB,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACtB,OAAO,EAAE,CAAC;AACd,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Renderer for markup annotations: highlight, underline, strikeOut, squiggly.
3
- */
4
- import type { HighlightAnnotation, UnderlineAnnotation, StrikeOutAnnotation, SquigglyAnnotation } from "./types";
5
- /**
6
- * Render a highlight annotation.
7
- */
8
- export declare function renderHighlight(layer: HTMLElement, annotation: HighlightAnnotation, scale: number): HTMLElement;
9
- /**
10
- * Render an underline annotation.
11
- */
12
- export declare function renderUnderline(layer: HTMLElement, annotation: UnderlineAnnotation, scale: number): HTMLElement;
13
- /**
14
- * Render a strikeout annotation.
15
- */
16
- export declare function renderStrikeOut(layer: HTMLElement, annotation: StrikeOutAnnotation, scale: number): HTMLElement;
17
- /**
18
- * Render a squiggly annotation.
19
- */
20
- export declare function renderSquiggly(layer: HTMLElement, annotation: SquigglyAnnotation, scale: number): HTMLElement;
21
- //# sourceMappingURL=MarkupRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkupRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/annotation/MarkupRenderer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EACR,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAErB,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,wBAAgB,eAAe,CAC3B,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,mBAAmB,EAC/B,KAAK,EAAE,MAAM,GACd,WAAW,CAeb;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC3B,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,mBAAmB,EAC/B,KAAK,EAAE,MAAM,GACd,WAAW,CAeb;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC3B,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,mBAAmB,EAC/B,KAAK,EAAE,MAAM,GACd,WAAW,CAeb;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC1B,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,MAAM,GACd,WAAW,CAeb"}
@@ -1,138 +0,0 @@
1
- import { colorToRgba, colorToRgb } from "./utils";
2
- /**
3
- * Render a highlight annotation.
4
- */
5
- export function renderHighlight(layer, annotation, scale) {
6
- const container = document.createElement("div");
7
- container.className = "udoc-annotation udoc-annotation--highlight";
8
- container.style.position = "absolute";
9
- container.style.inset = "0";
10
- container.style.pointerEvents = "none";
11
- const opacity = annotation.opacity ?? 0.3;
12
- for (const quad of annotation.quads) {
13
- const quadEl = createQuadElement(quad, scale, annotation.color, opacity);
14
- container.appendChild(quadEl);
15
- }
16
- layer.appendChild(container);
17
- return container;
18
- }
19
- /**
20
- * Render an underline annotation.
21
- */
22
- export function renderUnderline(layer, annotation, scale) {
23
- const container = document.createElement("div");
24
- container.className = "udoc-annotation udoc-annotation--underline";
25
- container.style.position = "absolute";
26
- container.style.inset = "0";
27
- container.style.pointerEvents = "none";
28
- const opacity = annotation.opacity ?? 1;
29
- for (const quad of annotation.quads) {
30
- const lineEl = createUnderlineElement(quad, scale, annotation.color, opacity);
31
- container.appendChild(lineEl);
32
- }
33
- layer.appendChild(container);
34
- return container;
35
- }
36
- /**
37
- * Render a strikeout annotation.
38
- */
39
- export function renderStrikeOut(layer, annotation, scale) {
40
- const container = document.createElement("div");
41
- container.className = "udoc-annotation udoc-annotation--strikeout";
42
- container.style.position = "absolute";
43
- container.style.inset = "0";
44
- container.style.pointerEvents = "none";
45
- const opacity = annotation.opacity ?? 1;
46
- for (const quad of annotation.quads) {
47
- const lineEl = createStrikeOutElement(quad, scale, annotation.color, opacity);
48
- container.appendChild(lineEl);
49
- }
50
- layer.appendChild(container);
51
- return container;
52
- }
53
- /**
54
- * Render a squiggly annotation.
55
- */
56
- export function renderSquiggly(layer, annotation, scale) {
57
- const container = document.createElement("div");
58
- container.className = "udoc-annotation udoc-annotation--squiggly";
59
- container.style.position = "absolute";
60
- container.style.inset = "0";
61
- container.style.pointerEvents = "none";
62
- const opacity = annotation.opacity ?? 1;
63
- for (const quad of annotation.quads) {
64
- const lineEl = createSquigglyElement(quad, scale, annotation.color, opacity);
65
- container.appendChild(lineEl);
66
- }
67
- layer.appendChild(container);
68
- return container;
69
- }
70
- // =============================================================================
71
- // Helpers
72
- // =============================================================================
73
- function createQuadElement(quad, scale, color, opacity) {
74
- const el = document.createElement("div");
75
- el.className = "udoc-annotation__quad";
76
- // Convert quad points to CSS clip-path polygon
77
- const points = quad.points
78
- .map(p => `${p.x * scale}px ${p.y * scale}px`)
79
- .join(", ");
80
- el.style.position = "absolute";
81
- el.style.inset = "0";
82
- el.style.clipPath = `polygon(${points})`;
83
- el.style.backgroundColor = colorToRgba(color, opacity);
84
- return el;
85
- }
86
- function createUnderlineElement(quad, scale, color, opacity) {
87
- const el = document.createElement("div");
88
- el.className = "udoc-annotation__line";
89
- // Use bottom edge of quad for underline position
90
- // Points order: [bottom-left, bottom-right, top-right, top-left]
91
- const [bl, br] = quad.points;
92
- const x = Math.min(bl.x, br.x) * scale;
93
- const y = Math.max(bl.y, br.y) * scale;
94
- const width = Math.abs(br.x - bl.x) * scale;
95
- el.style.position = "absolute";
96
- el.style.left = `${x}px`;
97
- el.style.top = `${y}px`;
98
- el.style.width = `${width}px`;
99
- el.style.height = "1px";
100
- el.style.backgroundColor = colorToRgba(color, opacity, "rgba(0, 0, 255, 1)");
101
- return el;
102
- }
103
- function createStrikeOutElement(quad, scale, color, opacity) {
104
- const el = document.createElement("div");
105
- el.className = "udoc-annotation__line";
106
- // Use middle of quad for strikeout position
107
- const [bl, br, _tr, tl] = quad.points;
108
- const x = Math.min(bl.x, tl.x) * scale;
109
- const y = ((bl.y + tl.y) / 2) * scale;
110
- const width = Math.abs(br.x - bl.x) * scale;
111
- el.style.position = "absolute";
112
- el.style.left = `${x}px`;
113
- el.style.top = `${y}px`;
114
- el.style.width = `${width}px`;
115
- el.style.height = "1px";
116
- el.style.backgroundColor = colorToRgba(color, opacity, "rgba(255, 0, 0, 1)");
117
- return el;
118
- }
119
- function createSquigglyElement(quad, scale, color, opacity) {
120
- const el = document.createElement("div");
121
- el.className = "udoc-annotation__squiggly";
122
- // Use bottom edge of quad
123
- const [bl, br] = quad.points;
124
- const x = Math.min(bl.x, br.x) * scale;
125
- const y = Math.max(bl.y, br.y) * scale;
126
- const width = Math.abs(br.x - bl.x) * scale;
127
- el.style.position = "absolute";
128
- el.style.left = `${x}px`;
129
- el.style.top = `${y}px`;
130
- el.style.width = `${width}px`;
131
- el.style.height = "3px";
132
- // Squiggly line via repeating gradient
133
- const colorStr = colorToRgb(color, "rgb(255, 0, 0)");
134
- el.style.backgroundImage = `repeating-linear-gradient(90deg, ${colorStr}, ${colorStr} 2px, transparent 2px, transparent 4px)`;
135
- el.style.opacity = String(opacity);
136
- return el;
137
- }
138
- //# sourceMappingURL=MarkupRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkupRenderer.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/annotation/MarkupRenderer.ts"],"names":[],"mappings":"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"}