@docmentis/udoc-viewer 0.6.23 → 0.6.25

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 (83) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/UDocClient.js +1 -1
  3. package/dist/src/UDocViewer.js +1 -1
  4. package/dist/src/ui/viewer/actions.d.ts +4 -0
  5. package/dist/src/ui/viewer/actions.d.ts.map +1 -1
  6. package/dist/src/ui/viewer/annotation/index.d.ts +1 -0
  7. package/dist/src/ui/viewer/annotation/index.d.ts.map +1 -1
  8. package/dist/src/ui/viewer/annotation/index.js +2 -0
  9. package/dist/src/ui/viewer/annotation/index.js.map +1 -1
  10. package/dist/src/ui/viewer/annotation/propertyUtils.d.ts +29 -0
  11. package/dist/src/ui/viewer/annotation/propertyUtils.d.ts.map +1 -0
  12. package/dist/src/ui/viewer/annotation/propertyUtils.js +151 -0
  13. package/dist/src/ui/viewer/annotation/propertyUtils.js.map +1 -0
  14. package/dist/src/ui/viewer/components/SubToolbar.d.ts +2 -1
  15. package/dist/src/ui/viewer/components/SubToolbar.d.ts.map +1 -1
  16. package/dist/src/ui/viewer/components/SubToolbar.js +246 -16
  17. package/dist/src/ui/viewer/components/SubToolbar.js.map +1 -1
  18. package/dist/src/ui/viewer/i18n/ar.d.ts.map +1 -1
  19. package/dist/src/ui/viewer/i18n/ar.js +22 -20
  20. package/dist/src/ui/viewer/i18n/ar.js.map +1 -1
  21. package/dist/src/ui/viewer/i18n/de.d.ts.map +1 -1
  22. package/dist/src/ui/viewer/i18n/de.js +18 -16
  23. package/dist/src/ui/viewer/i18n/de.js.map +1 -1
  24. package/dist/src/ui/viewer/i18n/en.d.ts.map +1 -1
  25. package/dist/src/ui/viewer/i18n/en.js +3 -0
  26. package/dist/src/ui/viewer/i18n/en.js.map +1 -1
  27. package/dist/src/ui/viewer/i18n/es.d.ts.map +1 -1
  28. package/dist/src/ui/viewer/i18n/es.js +21 -19
  29. package/dist/src/ui/viewer/i18n/es.js.map +1 -1
  30. package/dist/src/ui/viewer/i18n/fr.d.ts.map +1 -1
  31. package/dist/src/ui/viewer/i18n/fr.js +19 -17
  32. package/dist/src/ui/viewer/i18n/fr.js.map +1 -1
  33. package/dist/src/ui/viewer/i18n/ja.d.ts.map +1 -1
  34. package/dist/src/ui/viewer/i18n/ja.js +22 -20
  35. package/dist/src/ui/viewer/i18n/ja.js.map +1 -1
  36. package/dist/src/ui/viewer/i18n/ko.d.ts.map +1 -1
  37. package/dist/src/ui/viewer/i18n/ko.js +22 -20
  38. package/dist/src/ui/viewer/i18n/ko.js.map +1 -1
  39. package/dist/src/ui/viewer/i18n/pt-BR.d.ts.map +1 -1
  40. package/dist/src/ui/viewer/i18n/pt-BR.js +21 -19
  41. package/dist/src/ui/viewer/i18n/pt-BR.js.map +1 -1
  42. package/dist/src/ui/viewer/i18n/ru.d.ts.map +1 -1
  43. package/dist/src/ui/viewer/i18n/ru.js +22 -20
  44. package/dist/src/ui/viewer/i18n/ru.js.map +1 -1
  45. package/dist/src/ui/viewer/i18n/types.d.ts +2 -0
  46. package/dist/src/ui/viewer/i18n/types.d.ts.map +1 -1
  47. package/dist/src/ui/viewer/i18n/zh-CN.d.ts.map +1 -1
  48. package/dist/src/ui/viewer/i18n/zh-CN.js +22 -20
  49. package/dist/src/ui/viewer/i18n/zh-CN.js.map +1 -1
  50. package/dist/src/ui/viewer/i18n/zh-TW.d.ts.map +1 -1
  51. package/dist/src/ui/viewer/i18n/zh-TW.js +22 -20
  52. package/dist/src/ui/viewer/i18n/zh-TW.js.map +1 -1
  53. package/dist/src/ui/viewer/icons.d.ts +3 -1
  54. package/dist/src/ui/viewer/icons.d.ts.map +1 -1
  55. package/dist/src/ui/viewer/icons.js +4 -1
  56. package/dist/src/ui/viewer/icons.js.map +1 -1
  57. package/dist/src/ui/viewer/reducer.d.ts.map +1 -1
  58. package/dist/src/ui/viewer/reducer.js +12 -0
  59. package/dist/src/ui/viewer/reducer.js.map +1 -1
  60. package/dist/src/ui/viewer/shell.d.ts.map +1 -1
  61. package/dist/src/ui/viewer/shell.js +18 -1
  62. package/dist/src/ui/viewer/shell.js.map +1 -1
  63. package/dist/src/ui/viewer/styles-inline.d.ts +1 -1
  64. package/dist/src/ui/viewer/styles-inline.d.ts.map +1 -1
  65. package/dist/src/ui/viewer/styles-inline.js +13 -3
  66. package/dist/src/ui/viewer/styles-inline.js.map +1 -1
  67. package/dist/src/ui/viewer/tools/AnnotationDrawController.d.ts.map +1 -1
  68. package/dist/src/ui/viewer/tools/AnnotationDrawController.js +1 -26
  69. package/dist/src/ui/viewer/tools/AnnotationDrawController.js.map +1 -1
  70. package/dist/src/ui/viewer/tools/AnnotationSelectController.d.ts.map +1 -1
  71. package/dist/src/ui/viewer/tools/AnnotationSelectController.js +0 -5
  72. package/dist/src/ui/viewer/tools/AnnotationSelectController.js.map +1 -1
  73. package/dist/src/ui/viewer/tools/AnnotationUndoManager.d.ts +29 -0
  74. package/dist/src/ui/viewer/tools/AnnotationUndoManager.d.ts.map +1 -0
  75. package/dist/src/ui/viewer/tools/AnnotationUndoManager.js +144 -0
  76. package/dist/src/ui/viewer/tools/AnnotationUndoManager.js.map +1 -0
  77. package/dist/src/wasm/udoc.d.ts +3 -6
  78. package/dist/src/wasm/udoc.js +6 -6
  79. package/dist/src/wasm/udoc_bg.wasm +0 -0
  80. package/dist/src/wasm/udoc_bg.wasm.d.ts +3 -3
  81. package/dist/src/worker/worker-inline.js +1 -1
  82. package/dist/src/worker/worker.js +6 -6
  83. package/package.json +1 -1
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docmentis/udoc-viewer",
3
- "version": "0.6.23",
3
+ "version": "0.6.25",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Universal document viewer for the web — open-source, framework-agnostic viewer powered by a built-from-scratch WebAssembly engine for high-fidelity rendering across PDF, DOCX, PPTX, SVG, and images.",
@@ -14,7 +14,7 @@ export class UDocClient {
14
14
  /**
15
15
  * SDK version string (replaced at build time).
16
16
  */
17
- static version = "0.6.23";
17
+ static version = "0.6.25";
18
18
  workerClient;
19
19
  options;
20
20
  viewers = new Set();
@@ -34,7 +34,7 @@ export class UDocViewer {
34
34
  * @internal
35
35
  * Use `client.createViewer()` instead.
36
36
  */
37
- constructor(workerClient, options = {}, showAttribution = true, sdkVersion = "0.6.23") {
37
+ constructor(workerClient, options = {}, showAttribution = true, sdkVersion = "0.6.25") {
38
38
  this.workerClient = workerClient;
39
39
  this.sdkVersion = sdkVersion;
40
40
  this.viewOverrides = this.buildViewModeOverrides(options);
@@ -259,6 +259,10 @@ export type Action = {
259
259
  pageIndex: number;
260
260
  annotationIndex: number;
261
261
  annotation: Annotation;
262
+ } | {
263
+ type: "RESTORE_PAGE_ANNOTATIONS";
264
+ pageIndex: number;
265
+ annotations: Annotation[];
262
266
  } | {
263
267
  type: "SELECT_ANNOTATION";
264
268
  pageIndex: number;
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/ui/viewer/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/ui/viewer/actions.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,5 @@ export type { Annotation, AnnotationType, Rect, Point, Quad, AnnotationColor, Ma
5
5
  export { colorToRgba, colorToRgb, scalePoint, scaleBounds, applyBoundsStyle, createSvgOverlay, createSvgElement, boundsMatch, offsetAnnotation, resizeAnnotation, } from "./utils";
6
6
  export { renderAnnotation, renderAnnotationsToLayer, closeAnnotationPopup, showAnnotationPopup } from "./render";
7
7
  export type { ShowPopupCallback } from "./render";
8
+ export { parseHexColor, annotationColorToHex, toLineEnding, fromLineEnding, toBorderStyle, fromBorderStyle, annotationToToolOptions, applyToolOptionsToAnnotation, getEditableOptionsForAnnotation, } from "./propertyUtils";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/annotation/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACR,UAAU,EACV,cAAc,EACd,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,eAAe,EACf,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,UAAU,EAEV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAEhB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,WAAW,GACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EACH,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEjH,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/annotation/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACR,UAAU,EACV,cAAc,EACd,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,eAAe,EACf,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,UAAU,EAEV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAEhB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,WAAW,GACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EACH,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEjH,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGlD,OAAO,EACH,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,uBAAuB,EACvB,4BAA4B,EAC5B,+BAA+B,GAClC,MAAM,iBAAiB,CAAC"}
@@ -5,4 +5,6 @@
5
5
  export { colorToRgba, colorToRgb, scalePoint, scaleBounds, applyBoundsStyle, createSvgOverlay, createSvgElement, boundsMatch, offsetAnnotation, resizeAnnotation, } from "./utils";
6
6
  // Render functions
7
7
  export { renderAnnotation, renderAnnotationsToLayer, closeAnnotationPopup, showAnnotationPopup } from "./render";
8
+ // Property conversion utilities (annotation <-> ToolOptions)
9
+ export { parseHexColor, annotationColorToHex, toLineEnding, fromLineEnding, toBorderStyle, fromBorderStyle, annotationToToolOptions, applyToolOptionsToAnnotation, getEditableOptionsForAnnotation, } from "./propertyUtils";
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/annotation/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAuCH,YAAY;AACZ,OAAO,EACH,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,SAAS,CAAC;AAEjB,mBAAmB;AACnB,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/annotation/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAuCH,YAAY;AACZ,OAAO,EACH,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,SAAS,CAAC;AAEjB,mBAAmB;AACnB,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAIjH,6DAA6D;AAC7D,OAAO,EACH,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,uBAAuB,EACvB,4BAA4B,EAC5B,+BAA+B,GAClC,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Conversion utilities between ToolOptions (UI) and Annotation properties (data model).
3
+ *
4
+ * Shared by AnnotationDrawController (creating annotations) and SubToolbar (editing existing ones).
5
+ */
6
+ import type { AnnotationColor, Annotation, BorderStyle, LineEnding } from "./types";
7
+ import type { ToolOptions, LineStyle, ArrowHeadStyle } from "../state";
8
+ /** Parse hex color (#rrggbb) to AnnotationColor (0-1 range). */
9
+ export declare function parseHexColor(hex: string): AnnotationColor;
10
+ /** Convert AnnotationColor (0-1 range) to hex string (#rrggbb). */
11
+ export declare function annotationColorToHex(color: AnnotationColor): string;
12
+ /** Map ArrowHeadStyle (UI) to PDF LineEnding. */
13
+ export declare function toLineEnding(style: ArrowHeadStyle): LineEnding;
14
+ /** Map PDF LineEnding to ArrowHeadStyle (UI). */
15
+ export declare function fromLineEnding(ending: LineEnding | undefined): ArrowHeadStyle;
16
+ /** Map tool LineStyle (UI) to PDF BorderStyle. */
17
+ export declare function toBorderStyle(lineStyle: LineStyle): BorderStyle;
18
+ /** Map PDF BorderStyle to tool LineStyle (UI). */
19
+ export declare function fromBorderStyle(borderStyle: BorderStyle | undefined): LineStyle;
20
+ /** Which ToolOptions keys are editable for each annotation type. */
21
+ type ToolOptionKey = "strokeColor" | "fillColor" | "strokeWidth" | "opacity" | "lineStyle" | "arrowHead";
22
+ /** Get the list of editable option keys for an annotation, or null if not editable. */
23
+ export declare function getEditableOptionsForAnnotation(annotation: Annotation): ToolOptionKey[] | null;
24
+ /** Extract ToolOptions from an existing annotation (for display in SubToolbar). */
25
+ export declare function annotationToToolOptions(annotation: Annotation): ToolOptions;
26
+ /** Apply a partial set of ToolOptions changes to an annotation, returning a new annotation. */
27
+ export declare function applyToolOptionsToAnnotation(annotation: Annotation, changed: Partial<ToolOptions>): Annotation;
28
+ export {};
29
+ //# sourceMappingURL=propertyUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propertyUtils.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/annotation/propertyUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAOvE,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAO1D;AAED,mEAAmE;AACnE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAWnE;AAED,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,CAS9D;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,cAAc,CAW7E;AAED,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,CAG/D;AAED,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAQ/E;AAMD,oEAAoE;AACpE,KAAK,aAAa,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AAezG,uFAAuF;AACvF,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,EAAE,GAAG,IAAI,CAE9F;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,WAAW,CAuC3E;AAED,+FAA+F;AAC/F,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,UAAU,CAkC9G"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Conversion utilities between ToolOptions (UI) and Annotation properties (data model).
3
+ *
4
+ * Shared by AnnotationDrawController (creating annotations) and SubToolbar (editing existing ones).
5
+ */
6
+ import { DEFAULT_TOOL_OPTIONS } from "../state";
7
+ // =============================================================================
8
+ // Primitive conversions
9
+ // =============================================================================
10
+ /** Parse hex color (#rrggbb) to AnnotationColor (0-1 range). */
11
+ export function parseHexColor(hex) {
12
+ const h = hex.replace("#", "");
13
+ return {
14
+ r: parseInt(h.substring(0, 2), 16) / 255,
15
+ g: parseInt(h.substring(2, 4), 16) / 255,
16
+ b: parseInt(h.substring(4, 6), 16) / 255,
17
+ };
18
+ }
19
+ /** Convert AnnotationColor (0-1 range) to hex string (#rrggbb). */
20
+ export function annotationColorToHex(color) {
21
+ const r = Math.round(color.r * 255)
22
+ .toString(16)
23
+ .padStart(2, "0");
24
+ const g = Math.round(color.g * 255)
25
+ .toString(16)
26
+ .padStart(2, "0");
27
+ const b = Math.round(color.b * 255)
28
+ .toString(16)
29
+ .padStart(2, "0");
30
+ return `#${r}${g}${b}`;
31
+ }
32
+ /** Map ArrowHeadStyle (UI) to PDF LineEnding. */
33
+ export function toLineEnding(style) {
34
+ switch (style) {
35
+ case "open":
36
+ return "OpenArrow";
37
+ case "closed":
38
+ return "ClosedArrow";
39
+ default:
40
+ return "None";
41
+ }
42
+ }
43
+ /** Map PDF LineEnding to ArrowHeadStyle (UI). */
44
+ export function fromLineEnding(ending) {
45
+ switch (ending) {
46
+ case "OpenArrow":
47
+ case "ROpenArrow":
48
+ return "open";
49
+ case "ClosedArrow":
50
+ case "RClosedArrow":
51
+ return "closed";
52
+ default:
53
+ return "none";
54
+ }
55
+ }
56
+ /** Map tool LineStyle (UI) to PDF BorderStyle. */
57
+ export function toBorderStyle(lineStyle) {
58
+ if (lineStyle === "dashed" || lineStyle === "dotted")
59
+ return "dashed";
60
+ return "solid";
61
+ }
62
+ /** Map PDF BorderStyle to tool LineStyle (UI). */
63
+ export function fromBorderStyle(borderStyle) {
64
+ switch (borderStyle) {
65
+ case "dashed":
66
+ case "dotted":
67
+ return "dashed";
68
+ default:
69
+ return "solid";
70
+ }
71
+ }
72
+ const ANNOTATION_EDITABLE_OPTIONS = {
73
+ ink: ["strokeColor", "strokeWidth", "opacity", "lineStyle"],
74
+ line: ["strokeColor", "strokeWidth", "opacity", "lineStyle", "arrowHead"],
75
+ square: ["strokeColor", "fillColor", "strokeWidth", "opacity", "lineStyle"],
76
+ circle: ["strokeColor", "fillColor", "strokeWidth", "opacity", "lineStyle"],
77
+ polygon: ["strokeColor", "fillColor", "strokeWidth", "opacity", "lineStyle"],
78
+ polyLine: ["strokeColor", "strokeWidth", "opacity", "lineStyle"],
79
+ highlight: ["strokeColor", "opacity"],
80
+ underline: ["strokeColor"],
81
+ strikeOut: ["strokeColor"],
82
+ squiggly: ["strokeColor"],
83
+ };
84
+ /** Get the list of editable option keys for an annotation, or null if not editable. */
85
+ export function getEditableOptionsForAnnotation(annotation) {
86
+ return ANNOTATION_EDITABLE_OPTIONS[annotation.type] ?? null;
87
+ }
88
+ /** Extract ToolOptions from an existing annotation (for display in SubToolbar). */
89
+ export function annotationToToolOptions(annotation) {
90
+ const opts = { ...DEFAULT_TOOL_OPTIONS };
91
+ // Color (all editable types have it)
92
+ if ("color" in annotation && annotation.color) {
93
+ opts.strokeColor = annotationColorToHex(annotation.color);
94
+ }
95
+ // Fill color
96
+ if ("interiorColor" in annotation && annotation.interiorColor) {
97
+ opts.fillColor = annotationColorToHex(annotation.interiorColor);
98
+ }
99
+ else {
100
+ opts.fillColor = null;
101
+ }
102
+ // Border width
103
+ if ("borderWidth" in annotation && annotation.borderWidth != null) {
104
+ opts.strokeWidth = annotation.borderWidth;
105
+ }
106
+ // Opacity
107
+ if ("opacity" in annotation && annotation.opacity != null) {
108
+ opts.opacity = annotation.opacity;
109
+ }
110
+ // Border style -> line style
111
+ if ("borderStyle" in annotation) {
112
+ opts.lineStyle = fromBorderStyle(annotation.borderStyle);
113
+ }
114
+ // Line endings -> arrow heads
115
+ if ("startEnding" in annotation) {
116
+ opts.arrowHeadStart = fromLineEnding(annotation.startEnding);
117
+ }
118
+ if ("endEnding" in annotation) {
119
+ opts.arrowHeadEnd = fromLineEnding(annotation.endEnding);
120
+ }
121
+ return opts;
122
+ }
123
+ /** Apply a partial set of ToolOptions changes to an annotation, returning a new annotation. */
124
+ export function applyToolOptionsToAnnotation(annotation, changed) {
125
+ // Shallow clone — use `any` to allow property assignment across the union
126
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
127
+ const updated = { ...annotation };
128
+ if ("strokeColor" in changed && changed.strokeColor != null) {
129
+ updated.color = parseHexColor(changed.strokeColor);
130
+ }
131
+ if ("fillColor" in changed) {
132
+ updated.interiorColor = changed.fillColor ? parseHexColor(changed.fillColor) : undefined;
133
+ }
134
+ if ("strokeWidth" in changed && changed.strokeWidth != null) {
135
+ updated.borderWidth = changed.strokeWidth;
136
+ }
137
+ if ("opacity" in changed && changed.opacity != null) {
138
+ updated.opacity = changed.opacity;
139
+ }
140
+ if ("lineStyle" in changed && changed.lineStyle != null) {
141
+ updated.borderStyle = toBorderStyle(changed.lineStyle);
142
+ }
143
+ if ("arrowHeadStart" in changed && changed.arrowHeadStart != null) {
144
+ updated.startEnding = toLineEnding(changed.arrowHeadStart);
145
+ }
146
+ if ("arrowHeadEnd" in changed && changed.arrowHeadEnd != null) {
147
+ updated.endEnding = toLineEnding(changed.arrowHeadEnd);
148
+ }
149
+ return updated;
150
+ }
151
+ //# sourceMappingURL=propertyUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propertyUtils.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/annotation/propertyUtils.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,10 @@ import type { Store } from "../../framework/store";
2
2
  import type { I18n } from "../i18n/index.js";
3
3
  import type { ViewerState } from "../state";
4
4
  import type { Action } from "../actions";
5
+ import type { AnnotationUndoManager } from "../tools/AnnotationUndoManager";
5
6
  export declare function createSubToolbar(): {
6
7
  el: HTMLDivElement;
7
- mount: (container: HTMLElement, store: Store<ViewerState, Action>, i18n: I18n) => void;
8
+ mount: (container: HTMLElement, store: Store<ViewerState, Action>, i18n: I18n, undoManager?: AnnotationUndoManager) => void;
8
9
  destroy: () => void;
9
10
  };
10
11
  //# sourceMappingURL=SubToolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubToolbar.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/SubToolbar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAA+D,MAAM,UAAU,CAAC;AAEzG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAwHzC,wBAAgB,gBAAgB;;uBA8FF,WAAW,SAAS,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAG,IAAI;mBAmVvE,IAAI;EAe3B"}
1
+ {"version":3,"file":"SubToolbar.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/SubToolbar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAA+D,MAAM,UAAU,CAAC;AAEzG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAmCzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AA0G5E,wBAAgB,gBAAgB;;uBA8Hb,WAAW,SACf,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,QAC3B,IAAI,gBACI,qBAAqB,KACpC,IAAI;mBAwhBa,IAAI;EAe3B"}