@docmentis/udoc-viewer 0.6.21 → 0.6.23

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 (142) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/UDocClient.d.ts +22 -0
  3. package/dist/src/UDocClient.d.ts.map +1 -1
  4. package/dist/src/UDocClient.js +25 -1
  5. package/dist/src/UDocClient.js.map +1 -1
  6. package/dist/src/UDocViewer.d.ts +4 -3
  7. package/dist/src/UDocViewer.d.ts.map +1 -1
  8. package/dist/src/UDocViewer.js +50 -3
  9. package/dist/src/UDocViewer.js.map +1 -1
  10. package/dist/src/ui/viewer/actions.d.ts +34 -3
  11. package/dist/src/ui/viewer/actions.d.ts.map +1 -1
  12. package/dist/src/ui/viewer/annotation/ShapeRenderer.d.ts.map +1 -1
  13. package/dist/src/ui/viewer/annotation/ShapeRenderer.js +23 -16
  14. package/dist/src/ui/viewer/annotation/ShapeRenderer.js.map +1 -1
  15. package/dist/src/ui/viewer/annotation/index.d.ts +1 -1
  16. package/dist/src/ui/viewer/annotation/index.d.ts.map +1 -1
  17. package/dist/src/ui/viewer/annotation/index.js +1 -1
  18. package/dist/src/ui/viewer/annotation/index.js.map +1 -1
  19. package/dist/src/ui/viewer/annotation/render.d.ts.map +1 -1
  20. package/dist/src/ui/viewer/annotation/render.js +11 -4
  21. package/dist/src/ui/viewer/annotation/render.js.map +1 -1
  22. package/dist/src/ui/viewer/annotation/types.d.ts +9 -1
  23. package/dist/src/ui/viewer/annotation/types.d.ts.map +1 -1
  24. package/dist/src/ui/viewer/annotation/utils.d.ts +10 -1
  25. package/dist/src/ui/viewer/annotation/utils.d.ts.map +1 -1
  26. package/dist/src/ui/viewer/annotation/utils.js +114 -0
  27. package/dist/src/ui/viewer/annotation/utils.js.map +1 -1
  28. package/dist/src/ui/viewer/components/ColorSelect.d.ts +26 -0
  29. package/dist/src/ui/viewer/components/ColorSelect.d.ts.map +1 -0
  30. package/dist/src/ui/viewer/components/ColorSelect.js +120 -0
  31. package/dist/src/ui/viewer/components/ColorSelect.js.map +1 -0
  32. package/dist/src/ui/viewer/components/FloatingToolbar.js +12 -12
  33. package/dist/src/ui/viewer/components/FloatingToolbar.js.map +1 -1
  34. package/dist/src/ui/viewer/components/NumberInput.d.ts +32 -0
  35. package/dist/src/ui/viewer/components/NumberInput.d.ts.map +1 -0
  36. package/dist/src/ui/viewer/components/NumberInput.js +101 -0
  37. package/dist/src/ui/viewer/components/NumberInput.js.map +1 -0
  38. package/dist/src/ui/viewer/components/Spread.d.ts +2 -2
  39. package/dist/src/ui/viewer/components/Spread.d.ts.map +1 -1
  40. package/dist/src/ui/viewer/components/Spread.js.map +1 -1
  41. package/dist/src/ui/viewer/components/SubToolbar.d.ts +10 -0
  42. package/dist/src/ui/viewer/components/SubToolbar.d.ts.map +1 -0
  43. package/dist/src/ui/viewer/components/SubToolbar.js +481 -0
  44. package/dist/src/ui/viewer/components/SubToolbar.js.map +1 -0
  45. package/dist/src/ui/viewer/components/Toolbar.d.ts.map +1 -1
  46. package/dist/src/ui/viewer/components/Toolbar.js +147 -4
  47. package/dist/src/ui/viewer/components/Toolbar.js.map +1 -1
  48. package/dist/src/ui/viewer/components/ViewModeMenu.js +3 -3
  49. package/dist/src/ui/viewer/components/ViewModeMenu.js.map +1 -1
  50. package/dist/src/ui/viewer/components/Viewport.d.ts.map +1 -1
  51. package/dist/src/ui/viewer/components/Viewport.js +40 -2
  52. package/dist/src/ui/viewer/components/Viewport.js.map +1 -1
  53. package/dist/src/ui/viewer/i18n/ar.d.ts.map +1 -1
  54. package/dist/src/ui/viewer/i18n/ar.js +40 -0
  55. package/dist/src/ui/viewer/i18n/ar.js.map +1 -1
  56. package/dist/src/ui/viewer/i18n/de.d.ts.map +1 -1
  57. package/dist/src/ui/viewer/i18n/de.js +40 -0
  58. package/dist/src/ui/viewer/i18n/de.js.map +1 -1
  59. package/dist/src/ui/viewer/i18n/en.d.ts.map +1 -1
  60. package/dist/src/ui/viewer/i18n/en.js +40 -0
  61. package/dist/src/ui/viewer/i18n/en.js.map +1 -1
  62. package/dist/src/ui/viewer/i18n/es.d.ts.map +1 -1
  63. package/dist/src/ui/viewer/i18n/es.js +40 -0
  64. package/dist/src/ui/viewer/i18n/es.js.map +1 -1
  65. package/dist/src/ui/viewer/i18n/fr.d.ts.map +1 -1
  66. package/dist/src/ui/viewer/i18n/fr.js +40 -0
  67. package/dist/src/ui/viewer/i18n/fr.js.map +1 -1
  68. package/dist/src/ui/viewer/i18n/ja.d.ts.map +1 -1
  69. package/dist/src/ui/viewer/i18n/ja.js +40 -0
  70. package/dist/src/ui/viewer/i18n/ja.js.map +1 -1
  71. package/dist/src/ui/viewer/i18n/ko.d.ts.map +1 -1
  72. package/dist/src/ui/viewer/i18n/ko.js +40 -0
  73. package/dist/src/ui/viewer/i18n/ko.js.map +1 -1
  74. package/dist/src/ui/viewer/i18n/pt-BR.d.ts.map +1 -1
  75. package/dist/src/ui/viewer/i18n/pt-BR.js +40 -0
  76. package/dist/src/ui/viewer/i18n/pt-BR.js.map +1 -1
  77. package/dist/src/ui/viewer/i18n/ru.d.ts.map +1 -1
  78. package/dist/src/ui/viewer/i18n/ru.js +40 -0
  79. package/dist/src/ui/viewer/i18n/ru.js.map +1 -1
  80. package/dist/src/ui/viewer/i18n/types.d.ts +35 -0
  81. package/dist/src/ui/viewer/i18n/types.d.ts.map +1 -1
  82. package/dist/src/ui/viewer/i18n/zh-CN.d.ts.map +1 -1
  83. package/dist/src/ui/viewer/i18n/zh-CN.js +40 -0
  84. package/dist/src/ui/viewer/i18n/zh-CN.js.map +1 -1
  85. package/dist/src/ui/viewer/i18n/zh-TW.d.ts.map +1 -1
  86. package/dist/src/ui/viewer/i18n/zh-TW.js +40 -0
  87. package/dist/src/ui/viewer/i18n/zh-TW.js.map +1 -1
  88. package/dist/src/ui/viewer/icons.d.ts +29 -0
  89. package/dist/src/ui/viewer/icons.d.ts.map +1 -1
  90. package/dist/src/ui/viewer/icons.js +42 -0
  91. package/dist/src/ui/viewer/icons.js.map +1 -1
  92. package/dist/src/ui/viewer/reducer.d.ts.map +1 -1
  93. package/dist/src/ui/viewer/reducer.js +109 -1
  94. package/dist/src/ui/viewer/reducer.js.map +1 -1
  95. package/dist/src/ui/viewer/search/search.d.ts +4 -4
  96. package/dist/src/ui/viewer/search/search.d.ts.map +1 -1
  97. package/dist/src/ui/viewer/search/search.js +1 -1
  98. package/dist/src/ui/viewer/search/search.js.map +1 -1
  99. package/dist/src/ui/viewer/shell.d.ts +2 -2
  100. package/dist/src/ui/viewer/shell.d.ts.map +1 -1
  101. package/dist/src/ui/viewer/shell.js +13 -2
  102. package/dist/src/ui/viewer/shell.js.map +1 -1
  103. package/dist/src/ui/viewer/state.d.ts +55 -2
  104. package/dist/src/ui/viewer/state.d.ts.map +1 -1
  105. package/dist/src/ui/viewer/state.js +30 -0
  106. package/dist/src/ui/viewer/state.js.map +1 -1
  107. package/dist/src/ui/viewer/styles-inline.d.ts +1 -1
  108. package/dist/src/ui/viewer/styles-inline.d.ts.map +1 -1
  109. package/dist/src/ui/viewer/styles-inline.js +875 -246
  110. package/dist/src/ui/viewer/styles-inline.js.map +1 -1
  111. package/dist/src/ui/viewer/text/render.d.ts +3 -3
  112. package/dist/src/ui/viewer/text/render.d.ts.map +1 -1
  113. package/dist/src/ui/viewer/text/render.js +2 -2
  114. package/dist/src/ui/viewer/text/render.js.map +1 -1
  115. package/dist/src/ui/viewer/tools/AnnotationDrawController.d.ts +21 -0
  116. package/dist/src/ui/viewer/tools/AnnotationDrawController.d.ts.map +1 -0
  117. package/dist/src/ui/viewer/tools/AnnotationDrawController.js +392 -0
  118. package/dist/src/ui/viewer/tools/AnnotationDrawController.js.map +1 -0
  119. package/dist/src/ui/viewer/tools/AnnotationSelectController.d.ts +22 -0
  120. package/dist/src/ui/viewer/tools/AnnotationSelectController.d.ts.map +1 -0
  121. package/dist/src/ui/viewer/tools/AnnotationSelectController.js +367 -0
  122. package/dist/src/ui/viewer/tools/AnnotationSelectController.js.map +1 -0
  123. package/dist/src/ui/viewer/tools/ViewToolController.d.ts +20 -0
  124. package/dist/src/ui/viewer/tools/ViewToolController.d.ts.map +1 -0
  125. package/dist/src/ui/viewer/tools/ViewToolController.js +194 -0
  126. package/dist/src/ui/viewer/tools/ViewToolController.js.map +1 -0
  127. package/dist/src/wasm/udoc.d.ts +399 -114
  128. package/dist/src/wasm/udoc.js +157 -81
  129. package/dist/src/wasm/udoc_bg.wasm +0 -0
  130. package/dist/src/wasm/udoc_bg.wasm.d.ts +8 -7
  131. package/dist/src/worker/WorkerClient.d.ts +17 -11
  132. package/dist/src/worker/WorkerClient.d.ts.map +1 -1
  133. package/dist/src/worker/WorkerClient.js +10 -2
  134. package/dist/src/worker/WorkerClient.js.map +1 -1
  135. package/dist/src/worker/index.d.ts +1 -1
  136. package/dist/src/worker/index.d.ts.map +1 -1
  137. package/dist/src/worker/worker-inline.js +1 -1
  138. package/dist/src/worker/worker.d.ts +26 -58
  139. package/dist/src/worker/worker.d.ts.map +1 -1
  140. package/dist/src/worker/worker.js +161 -80
  141. package/dist/src/worker/worker.js.map +1 -1
  142. package/package.json +1 -1
@@ -0,0 +1,10 @@
1
+ import type { Store } from "../../framework/store";
2
+ import type { I18n } from "../i18n/index.js";
3
+ import type { ViewerState } from "../state";
4
+ import type { Action } from "../actions";
5
+ export declare function createSubToolbar(): {
6
+ el: HTMLDivElement;
7
+ mount: (container: HTMLElement, store: Store<ViewerState, Action>, i18n: I18n) => void;
8
+ destroy: () => void;
9
+ };
10
+ //# sourceMappingURL=SubToolbar.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,481 @@
1
+ import { subscribeSelector } from "../../framework/selectors";
2
+ import { isToolSet, DEFAULT_TOOL_OPTIONS } from "../state";
3
+ import { createNumberInput } from "./NumberInput";
4
+ import { createColorSelect } from "./ColorSelect";
5
+ import { ICON_SUBTOOL_SELECT, ICON_SUBTOOL_FREEHAND, ICON_SUBTOOL_LINE, ICON_SUBTOOL_ARROW, ICON_SUBTOOL_RECTANGLE, ICON_SUBTOOL_ELLIPSE, ICON_SUBTOOL_POLYGON, ICON_SUBTOOL_POLYLINE, ICON_SUBTOOL_HIGHLIGHT, ICON_SUBTOOL_UNDERLINE, ICON_SUBTOOL_STRIKETHROUGH, ICON_SUBTOOL_SQUIGGLY, ICON_LINE_SOLID, ICON_LINE_DASHED, ICON_LINE_DOTTED, ICON_ARROW_NONE, ICON_ARROW_OPEN, ICON_ARROW_CLOSED, ICON_STROKE_WIDTH, ICON_OPACITY, ICON_FONT_SIZE, ICON_DELETE, } from "../icons";
6
+ const ANNOTATE_SUB_TOOLS = [
7
+ { id: "select", icon: ICON_SUBTOOL_SELECT, labelKey: "tools.select" },
8
+ { id: "freehand", icon: ICON_SUBTOOL_FREEHAND, labelKey: "tools.freehand" },
9
+ { id: "line", icon: ICON_SUBTOOL_LINE, labelKey: "tools.line" },
10
+ { id: "arrow", icon: ICON_SUBTOOL_ARROW, labelKey: "tools.arrow" },
11
+ { id: "rectangle", icon: ICON_SUBTOOL_RECTANGLE, labelKey: "tools.rectangle" },
12
+ { id: "ellipse", icon: ICON_SUBTOOL_ELLIPSE, labelKey: "tools.ellipse" },
13
+ { id: "polygon", icon: ICON_SUBTOOL_POLYGON, labelKey: "tools.polygon" },
14
+ { id: "polyline", icon: ICON_SUBTOOL_POLYLINE, labelKey: "tools.polyline" },
15
+ ];
16
+ const MARKUP_SUB_TOOLS = [
17
+ { id: "select", icon: ICON_SUBTOOL_SELECT, labelKey: "tools.select" },
18
+ { id: "highlight", icon: ICON_SUBTOOL_HIGHLIGHT, labelKey: "tools.highlight" },
19
+ { id: "underline", icon: ICON_SUBTOOL_UNDERLINE, labelKey: "tools.underline" },
20
+ { id: "strikethrough", icon: ICON_SUBTOOL_STRIKETHROUGH, labelKey: "tools.strikethrough" },
21
+ { id: "squiggly", icon: ICON_SUBTOOL_SQUIGGLY, labelKey: "tools.squiggly" },
22
+ ];
23
+ const SUB_TOOLS_MAP = { annotate: ANNOTATE_SUB_TOOLS, markup: MARKUP_SUB_TOOLS };
24
+ const TOOL_OPTIONS_CONFIG = {
25
+ freehand: ["strokeColor", "strokeWidth", "opacity"],
26
+ line: ["strokeColor", "strokeWidth", "opacity", "lineStyle"],
27
+ arrow: ["strokeColor", "strokeWidth", "opacity", "lineStyle", "arrowHead"],
28
+ rectangle: ["strokeColor", "fillColor", "strokeWidth", "opacity", "lineStyle"],
29
+ ellipse: ["strokeColor", "fillColor", "strokeWidth", "opacity", "lineStyle"],
30
+ polygon: ["strokeColor", "fillColor", "strokeWidth", "opacity", "lineStyle"],
31
+ polyline: ["strokeColor", "strokeWidth", "opacity", "lineStyle"],
32
+ highlight: ["strokeColor", "opacity"],
33
+ underline: ["strokeColor"],
34
+ strikethrough: ["strokeColor"],
35
+ squiggly: ["strokeColor"],
36
+ };
37
+ const LINE_STYLE_DEFS = [
38
+ { id: "solid", icon: ICON_LINE_SOLID, labelKey: "tools.lineStyleSolid" },
39
+ { id: "dashed", icon: ICON_LINE_DASHED, labelKey: "tools.lineStyleDashed" },
40
+ { id: "dotted", icon: ICON_LINE_DOTTED, labelKey: "tools.lineStyleDotted" },
41
+ ];
42
+ const ARROW_HEAD_DEFS = [
43
+ { id: "none", icon: ICON_ARROW_NONE, labelKey: "tools.arrowHeadNone" },
44
+ { id: "open", icon: ICON_ARROW_OPEN, labelKey: "tools.arrowHeadOpen" },
45
+ { id: "closed", icon: ICON_ARROW_CLOSED, labelKey: "tools.arrowHeadClosed" },
46
+ ];
47
+ function selectSlice(s) {
48
+ return {
49
+ activeTool: s.activeTool,
50
+ activeSubTool: s.activeSubTool,
51
+ toolOptions: s.toolOptions,
52
+ selectedAnnotation: s.selectedAnnotation,
53
+ };
54
+ }
55
+ function sliceEqual(a, b) {
56
+ return (a.activeTool === b.activeTool &&
57
+ a.activeSubTool === b.activeSubTool &&
58
+ a.toolOptions === b.toolOptions &&
59
+ a.selectedAnnotation === b.selectedAnnotation);
60
+ }
61
+ // ====================================================================================
62
+ // createSubToolbar
63
+ // ====================================================================================
64
+ export function createSubToolbar() {
65
+ const el = document.createElement("div");
66
+ el.className = "udoc-subtoolbar";
67
+ el.setAttribute("role", "toolbar");
68
+ el.style.display = "none";
69
+ const toolsSection = document.createElement("div");
70
+ toolsSection.className = "udoc-subtoolbar__tools";
71
+ const dividerEl = document.createElement("div");
72
+ dividerEl.className = "udoc-subtoolbar__divider";
73
+ const optionsSection = document.createElement("div");
74
+ optionsSection.className = "udoc-subtoolbar__options";
75
+ el.append(toolsSection, dividerEl, optionsSection);
76
+ // ---- Mutable state ----
77
+ let containerRef = null;
78
+ let unsubRender = null;
79
+ const currentToolBtns = new Map();
80
+ let currentToolSet = null;
81
+ let builtSubTool = null;
82
+ let activeSubTool = null;
83
+ let openPanel = null;
84
+ // ---- Lazy-created option controls ----
85
+ let strokeColorSelect = null;
86
+ let fillColorSelect = null;
87
+ let strokeWidthInput = null;
88
+ let opacityInput = null;
89
+ let fontSizeInput = null;
90
+ // Delete button for select tool
91
+ let deleteBtn = null;
92
+ // Line style & arrow head (panels + triggers)
93
+ const lineStylePanel = document.createElement("div");
94
+ lineStylePanel.className = "udoc-linestyle-panel";
95
+ lineStylePanel.addEventListener("click", (e) => e.stopPropagation());
96
+ const arrowHeadPanel = document.createElement("div");
97
+ arrowHeadPanel.className = "udoc-arrowhead-panel";
98
+ arrowHeadPanel.addEventListener("click", (e) => e.stopPropagation());
99
+ let lineStyleTrigger = null;
100
+ let arrowHeadTrigger = null;
101
+ // ---- Panel management ----
102
+ function closeAllPanels() {
103
+ openPanel = null;
104
+ strokeColorSelect?.close();
105
+ fillColorSelect?.close();
106
+ lineStylePanel.classList.remove("udoc-linestyle-panel--open");
107
+ arrowHeadPanel.classList.remove("udoc-arrowhead-panel--open");
108
+ strokeWidthInput?.close();
109
+ opacityInput?.close();
110
+ fontSizeInput?.close();
111
+ }
112
+ const onDocumentClick = () => closeAllPanels();
113
+ function openPanelAt(key, trigger) {
114
+ const wasOpen = openPanel === key;
115
+ closeAllPanels();
116
+ if (wasOpen)
117
+ return;
118
+ const rect = trigger.getBoundingClientRect();
119
+ const cRect = containerRef.getBoundingClientRect();
120
+ const left = `${rect.left - cRect.left}px`;
121
+ if (key === "strokeColor")
122
+ strokeColorSelect?.open(rect, cRect);
123
+ else if (key === "fillColor")
124
+ fillColorSelect?.open(rect, cRect);
125
+ else if (key === "strokeWidth")
126
+ strokeWidthInput?.open(rect, cRect);
127
+ else if (key === "opacity")
128
+ opacityInput?.open(rect, cRect);
129
+ else if (key === "fontSize")
130
+ fontSizeInput?.open(rect, cRect);
131
+ else if (key === "lineStyle") {
132
+ lineStylePanel.style.left = left;
133
+ lineStylePanel.classList.add("udoc-linestyle-panel--open");
134
+ }
135
+ else if (key === "arrowHead") {
136
+ arrowHeadPanel.style.left = left;
137
+ arrowHeadPanel.classList.add("udoc-arrowhead-panel--open");
138
+ }
139
+ openPanel = key;
140
+ }
141
+ // ---- Dispatch helper ----
142
+ function dispatchOpt(store, key, value) {
143
+ if (activeSubTool)
144
+ store.dispatch({ type: "SET_TOOL_OPTION", subTool: activeSubTool, key, value });
145
+ }
146
+ // ---- Mount ----
147
+ function mount(container, store, i18n) {
148
+ containerRef = container;
149
+ container.appendChild(el);
150
+ container.appendChild(lineStylePanel);
151
+ container.appendChild(arrowHeadPanel);
152
+ el.setAttribute("aria-label", i18n.t("tools.subtoolbar"));
153
+ document.addEventListener("click", onDocumentClick);
154
+ const applyState = (slice) => {
155
+ const visible = isToolSet(slice.activeTool);
156
+ el.style.display = visible ? "flex" : "none";
157
+ if (!visible) {
158
+ closeAllPanels();
159
+ return;
160
+ }
161
+ const toolSet = slice.activeTool;
162
+ const subTools = SUB_TOOLS_MAP[toolSet];
163
+ if (!subTools)
164
+ return;
165
+ // Rebuild tool buttons if tool set changed
166
+ if (currentToolSet !== toolSet) {
167
+ currentToolSet = toolSet;
168
+ toolsSection.innerHTML = "";
169
+ currentToolBtns.clear();
170
+ for (const def of subTools) {
171
+ const btn = document.createElement("button");
172
+ btn.className = "udoc-subtoolbar__btn";
173
+ btn.innerHTML = def.icon;
174
+ btn.title = i18n.t(def.labelKey);
175
+ btn.setAttribute("aria-label", i18n.t(def.labelKey));
176
+ btn.addEventListener("click", () => store.dispatch({ type: "SET_SUB_TOOL", subTool: def.id }));
177
+ toolsSection.appendChild(btn);
178
+ currentToolBtns.set(def.id, btn);
179
+ }
180
+ }
181
+ for (const [id, btn] of currentToolBtns) {
182
+ btn.classList.toggle("udoc-subtoolbar__btn--active", id === slice.activeSubTool);
183
+ }
184
+ if (!slice.activeSubTool) {
185
+ optionsSection.innerHTML = "";
186
+ builtSubTool = null;
187
+ return;
188
+ }
189
+ activeSubTool = slice.activeSubTool;
190
+ const opts = slice.toolOptions[slice.activeSubTool] ?? { ...DEFAULT_TOOL_OPTIONS };
191
+ // If sub-tool changed, rebuild the set of option controls in the toolbar
192
+ if (builtSubTool !== slice.activeSubTool) {
193
+ closeAllPanels();
194
+ buildControls(slice.activeSubTool, opts, store, i18n);
195
+ builtSubTool = slice.activeSubTool;
196
+ }
197
+ // Always update values in-place
198
+ updateValues(opts, store, i18n);
199
+ // Update delete button state for select tool
200
+ if (deleteBtn) {
201
+ deleteBtn.disabled = !slice.selectedAnnotation;
202
+ }
203
+ };
204
+ applyState(selectSlice(store.getState()));
205
+ unsubRender = subscribeSelector(store, selectSlice, applyState, { equality: sliceEqual });
206
+ }
207
+ // ====================================================================
208
+ // buildControls — called ONLY when active sub-tool changes
209
+ // ====================================================================
210
+ function buildControls(subTool, opts, store, i18n) {
211
+ optionsSection.innerHTML = "";
212
+ lineStyleTrigger = null;
213
+ arrowHeadTrigger = null;
214
+ deleteBtn = null;
215
+ // Select tool shows a delete button instead of drawing options
216
+ if (subTool === "select") {
217
+ deleteBtn = document.createElement("button");
218
+ deleteBtn.className = "udoc-subtoolbar__btn udoc-subtoolbar__btn--delete";
219
+ deleteBtn.innerHTML = ICON_DELETE;
220
+ deleteBtn.title = i18n.t("tools.deleteAnnotation");
221
+ deleteBtn.setAttribute("aria-label", i18n.t("tools.deleteAnnotation"));
222
+ deleteBtn.disabled = true;
223
+ deleteBtn.addEventListener("click", () => {
224
+ const sel = store.getState().selectedAnnotation;
225
+ if (sel) {
226
+ store.dispatch({
227
+ type: "REMOVE_ANNOTATION",
228
+ pageIndex: sel.pageIndex,
229
+ annotationIndex: sel.annotationIndex,
230
+ });
231
+ }
232
+ });
233
+ optionsSection.appendChild(deleteBtn);
234
+ return;
235
+ }
236
+ const supported = TOOL_OPTIONS_CONFIG[subTool];
237
+ if (!supported || supported.length === 0)
238
+ return;
239
+ for (const optKey of supported) {
240
+ if (optKey === "strokeColor") {
241
+ if (!strokeColorSelect) {
242
+ strokeColorSelect = createColorSelect({
243
+ variant: "stroke",
244
+ label: i18n.t("tools.strokeColor"),
245
+ noneLabel: i18n.t("tools.noFill"),
246
+ onSelect: () => closeAllPanels(),
247
+ onChange: (color) => dispatchOpt(store, "strokeColor", color),
248
+ });
249
+ containerRef.appendChild(strokeColorSelect.panel);
250
+ strokeColorSelect.el.addEventListener("click", (e) => {
251
+ e.stopPropagation();
252
+ openPanelAt("strokeColor", strokeColorSelect.el);
253
+ });
254
+ }
255
+ optionsSection.appendChild(strokeColorSelect.el);
256
+ }
257
+ else if (optKey === "fillColor") {
258
+ if (!fillColorSelect) {
259
+ fillColorSelect = createColorSelect({
260
+ variant: "fill",
261
+ label: i18n.t("tools.fillColor"),
262
+ noneLabel: i18n.t("tools.noFill"),
263
+ onSelect: () => closeAllPanels(),
264
+ onChange: (color) => dispatchOpt(store, "fillColor", color),
265
+ });
266
+ containerRef.appendChild(fillColorSelect.panel);
267
+ fillColorSelect.el.addEventListener("click", (e) => {
268
+ e.stopPropagation();
269
+ openPanelAt("fillColor", fillColorSelect.el);
270
+ });
271
+ }
272
+ optionsSection.appendChild(fillColorSelect.el);
273
+ }
274
+ else if (optKey === "strokeWidth") {
275
+ if (!strokeWidthInput) {
276
+ strokeWidthInput = createNumberInput({
277
+ min: 0.5,
278
+ max: 12,
279
+ step: 0.5,
280
+ value: opts.strokeWidth,
281
+ icon: ICON_STROKE_WIDTH,
282
+ formatValue: (v) => `${v}pt`,
283
+ parseValue: (s) => {
284
+ const n = parseFloat(s.replace(/pt$/i, ""));
285
+ return isNaN(n) ? null : n;
286
+ },
287
+ label: i18n.t("tools.strokeWidth"),
288
+ onChange: (v) => dispatchOpt(store, "strokeWidth", v),
289
+ });
290
+ containerRef.appendChild(strokeWidthInput.panel);
291
+ strokeWidthInput.el.addEventListener("click", (e) => {
292
+ e.stopPropagation();
293
+ openPanelAt("strokeWidth", strokeWidthInput.el);
294
+ });
295
+ }
296
+ optionsSection.appendChild(strokeWidthInput.el);
297
+ }
298
+ else if (optKey === "opacity") {
299
+ if (!opacityInput) {
300
+ opacityInput = createNumberInput({
301
+ min: 10,
302
+ max: 100,
303
+ step: 10,
304
+ value: Math.round(opts.opacity * 100),
305
+ icon: ICON_OPACITY,
306
+ formatValue: (v) => `${Math.round(v)}%`,
307
+ parseValue: (s) => {
308
+ const n = parseFloat(s.replace(/%$/i, ""));
309
+ return isNaN(n) ? null : n;
310
+ },
311
+ label: i18n.t("tools.opacity"),
312
+ onChange: (v) => dispatchOpt(store, "opacity", v / 100),
313
+ });
314
+ containerRef.appendChild(opacityInput.panel);
315
+ opacityInput.el.addEventListener("click", (e) => {
316
+ e.stopPropagation();
317
+ openPanelAt("opacity", opacityInput.el);
318
+ });
319
+ }
320
+ optionsSection.appendChild(opacityInput.el);
321
+ }
322
+ else if (optKey === "fontSize") {
323
+ if (!fontSizeInput) {
324
+ fontSizeInput = createNumberInput({
325
+ min: 8,
326
+ max: 144,
327
+ step: 1,
328
+ value: opts.fontSize,
329
+ icon: ICON_FONT_SIZE,
330
+ formatValue: (v) => `${v}pt`,
331
+ parseValue: (s) => {
332
+ const n = parseFloat(s.replace(/pt$/i, ""));
333
+ return isNaN(n) ? null : n;
334
+ },
335
+ label: i18n.t("tools.fontSize"),
336
+ onChange: (v) => dispatchOpt(store, "fontSize", v),
337
+ });
338
+ containerRef.appendChild(fontSizeInput.panel);
339
+ fontSizeInput.el.addEventListener("click", (e) => {
340
+ e.stopPropagation();
341
+ openPanelAt("fontSize", fontSizeInput.el);
342
+ });
343
+ }
344
+ optionsSection.appendChild(fontSizeInput.el);
345
+ }
346
+ else if (optKey === "lineStyle") {
347
+ lineStyleTrigger = document.createElement("button");
348
+ lineStyleTrigger.className =
349
+ "udoc-subtoolbar__dropdown-trigger udoc-subtoolbar__dropdown-trigger--icon";
350
+ lineStyleTrigger.title = i18n.t("tools.lineStyle");
351
+ const arrow = document.createElement("span");
352
+ arrow.className = "udoc-subtoolbar__dropdown-arrow";
353
+ arrow.textContent = "\u25BE";
354
+ lineStyleTrigger.appendChild(arrow);
355
+ lineStyleTrigger.addEventListener("click", (e) => {
356
+ e.stopPropagation();
357
+ openPanelAt("lineStyle", lineStyleTrigger);
358
+ });
359
+ optionsSection.appendChild(lineStyleTrigger);
360
+ }
361
+ else if (optKey === "arrowHead") {
362
+ arrowHeadTrigger = document.createElement("button");
363
+ arrowHeadTrigger.className =
364
+ "udoc-subtoolbar__dropdown-trigger udoc-subtoolbar__dropdown-trigger--icon";
365
+ arrowHeadTrigger.title = i18n.t("tools.arrowHeadEnd");
366
+ const arrow = document.createElement("span");
367
+ arrow.className = "udoc-subtoolbar__dropdown-arrow";
368
+ arrow.textContent = "\u25BE";
369
+ arrowHeadTrigger.appendChild(arrow);
370
+ arrowHeadTrigger.addEventListener("click", (e) => {
371
+ e.stopPropagation();
372
+ openPanelAt("arrowHead", arrowHeadTrigger);
373
+ });
374
+ optionsSection.appendChild(arrowHeadTrigger);
375
+ }
376
+ }
377
+ }
378
+ // ====================================================================
379
+ // updateValues — called on EVERY state change, updates in-place
380
+ // ====================================================================
381
+ function updateValues(opts, store, i18n) {
382
+ // Color selects
383
+ strokeColorSelect?.update(opts.strokeColor);
384
+ fillColorSelect?.update(opts.fillColor);
385
+ // Number inputs
386
+ strokeWidthInput?.update(opts.strokeWidth);
387
+ opacityInput?.update(Math.round(opts.opacity * 100));
388
+ fontSizeInput?.update(opts.fontSize);
389
+ // Line style trigger + panel
390
+ if (lineStyleTrigger) {
391
+ const def = LINE_STYLE_DEFS.find((s) => s.id === opts.lineStyle) ?? LINE_STYLE_DEFS[0];
392
+ const arrowEl = lineStyleTrigger.lastElementChild;
393
+ lineStyleTrigger.innerHTML = def.icon;
394
+ if (arrowEl)
395
+ lineStyleTrigger.appendChild(arrowEl);
396
+ lineStyleTrigger.setAttribute("aria-label", `${i18n.t("tools.lineStyle")}: ${i18n.t(def.labelKey)}`);
397
+ }
398
+ rebuildLineStylePanel(opts.lineStyle, store, i18n);
399
+ // Arrow head trigger + panel
400
+ if (arrowHeadTrigger) {
401
+ const endDef = ARROW_HEAD_DEFS.find((a) => a.id === opts.arrowHeadEnd) ?? ARROW_HEAD_DEFS[0];
402
+ const arrowEl = arrowHeadTrigger.lastElementChild;
403
+ arrowHeadTrigger.innerHTML = endDef.icon;
404
+ if (arrowEl)
405
+ arrowHeadTrigger.appendChild(arrowEl);
406
+ }
407
+ rebuildArrowHeadPanel(opts.arrowHeadStart, opts.arrowHeadEnd, store, i18n);
408
+ }
409
+ // ---- Line style panel ----
410
+ function rebuildLineStylePanel(current, store, i18n) {
411
+ lineStylePanel.innerHTML = "";
412
+ for (const def of LINE_STYLE_DEFS) {
413
+ const item = document.createElement("button");
414
+ item.className = "udoc-linestyle-panel__item";
415
+ if (current === def.id)
416
+ item.classList.add("udoc-linestyle-panel__item--active");
417
+ const icon = document.createElement("span");
418
+ icon.className = "udoc-linestyle-panel__icon";
419
+ icon.innerHTML = def.icon;
420
+ const label = document.createElement("span");
421
+ label.className = "udoc-linestyle-panel__label";
422
+ label.textContent = i18n.t(def.labelKey);
423
+ item.append(icon, label);
424
+ item.title = i18n.t(def.labelKey);
425
+ item.addEventListener("click", (e) => {
426
+ e.stopPropagation();
427
+ closeAllPanels();
428
+ dispatchOpt(store, "lineStyle", def.id);
429
+ });
430
+ lineStylePanel.appendChild(item);
431
+ }
432
+ }
433
+ // ---- Arrow head panel ----
434
+ function rebuildArrowHeadPanel(startVal, endVal, store, i18n) {
435
+ arrowHeadPanel.innerHTML = "";
436
+ for (const [rowKey, rowLabel, currentVal] of [
437
+ ["arrowHeadStart", i18n.t("tools.arrowHeadStart"), startVal],
438
+ ["arrowHeadEnd", i18n.t("tools.arrowHeadEnd"), endVal],
439
+ ]) {
440
+ const row = document.createElement("div");
441
+ row.className = "udoc-arrowhead-panel__row";
442
+ const lbl = document.createElement("span");
443
+ lbl.className = "udoc-arrowhead-panel__row-label";
444
+ lbl.textContent = rowLabel;
445
+ row.appendChild(lbl);
446
+ for (const def of ARROW_HEAD_DEFS) {
447
+ const btn = document.createElement("button");
448
+ btn.className = "udoc-arrowhead-panel__btn";
449
+ if (currentVal === def.id)
450
+ btn.classList.add("udoc-arrowhead-panel__btn--active");
451
+ btn.innerHTML = def.icon;
452
+ btn.title = i18n.t(def.labelKey);
453
+ if (rowKey === "arrowHeadStart")
454
+ btn.style.transform = "scaleX(-1)";
455
+ btn.addEventListener("click", (e) => {
456
+ e.stopPropagation();
457
+ dispatchOpt(store, rowKey, def.id);
458
+ });
459
+ row.appendChild(btn);
460
+ }
461
+ arrowHeadPanel.appendChild(row);
462
+ }
463
+ }
464
+ // ---- Destroy ----
465
+ function destroy() {
466
+ if (unsubRender)
467
+ unsubRender();
468
+ document.removeEventListener("click", onDocumentClick);
469
+ currentToolBtns.clear();
470
+ strokeColorSelect?.destroy();
471
+ fillColorSelect?.destroy();
472
+ strokeWidthInput?.destroy();
473
+ opacityInput?.destroy();
474
+ fontSizeInput?.destroy();
475
+ lineStylePanel.remove();
476
+ arrowHeadPanel.remove();
477
+ el.remove();
478
+ }
479
+ return { el, mount, destroy };
480
+ }
481
+ //# sourceMappingURL=SubToolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubToolbar.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/SubToolbar.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/Toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAA+C,MAAM,UAAU,CAAC;AAEzF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AA2GzC,wBAAgB,aAAa;;uBAiMC,WAAW,SAAS,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAG,IAAI;mBA0bvE,IAAI;8BAQS,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAG,IAAI;2BAI7B,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAG,IAAI;EAK3D"}
1
+ {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/Toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EACR,WAAW,EAQd,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AA0HzC,wBAAgB,aAAa;;uBA8NC,WAAW,SAAS,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAG,IAAI;mBAgkBvE,IAAI;8BAQS,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAG,IAAI;2BAI7B,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAG,IAAI;EAK3D"}