@docmentis/udoc-viewer 0.5.18 → 0.5.19

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 (42) hide show
  1. package/README.md +83 -0
  2. package/dist/package.json +5 -2
  3. package/dist/src/UDocClient.d.ts +62 -0
  4. package/dist/src/UDocClient.d.ts.map +1 -1
  5. package/dist/src/UDocClient.js +1 -1
  6. package/dist/src/UDocClient.js.map +1 -1
  7. package/dist/src/UDocViewer.d.ts +118 -0
  8. package/dist/src/UDocViewer.d.ts.map +1 -1
  9. package/dist/src/UDocViewer.js +320 -1
  10. package/dist/src/UDocViewer.js.map +1 -1
  11. package/dist/src/index.d.ts +2 -1
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js.map +1 -1
  14. package/dist/src/ui/viewer/actions.d.ts +19 -0
  15. package/dist/src/ui/viewer/actions.d.ts.map +1 -1
  16. package/dist/src/ui/viewer/components/FloatingToolbar.d.ts.map +1 -1
  17. package/dist/src/ui/viewer/components/FloatingToolbar.js +7 -1
  18. package/dist/src/ui/viewer/components/FloatingToolbar.js.map +1 -1
  19. package/dist/src/ui/viewer/components/LeftPanel.d.ts.map +1 -1
  20. package/dist/src/ui/viewer/components/LeftPanel.js +15 -2
  21. package/dist/src/ui/viewer/components/LeftPanel.js.map +1 -1
  22. package/dist/src/ui/viewer/components/RightPanel.d.ts.map +1 -1
  23. package/dist/src/ui/viewer/components/RightPanel.js +12 -2
  24. package/dist/src/ui/viewer/components/RightPanel.js.map +1 -1
  25. package/dist/src/ui/viewer/components/Toolbar.d.ts.map +1 -1
  26. package/dist/src/ui/viewer/components/Toolbar.js +320 -18
  27. package/dist/src/ui/viewer/components/Toolbar.js.map +1 -1
  28. package/dist/src/ui/viewer/reducer.d.ts.map +1 -1
  29. package/dist/src/ui/viewer/reducer.js +58 -1
  30. package/dist/src/ui/viewer/reducer.js.map +1 -1
  31. package/dist/src/ui/viewer/shell.d.ts.map +1 -1
  32. package/dist/src/ui/viewer/shell.js +9 -0
  33. package/dist/src/ui/viewer/shell.js.map +1 -1
  34. package/dist/src/ui/viewer/state.d.ts +12 -0
  35. package/dist/src/ui/viewer/state.d.ts.map +1 -1
  36. package/dist/src/ui/viewer/state.js +6 -0
  37. package/dist/src/ui/viewer/state.js.map +1 -1
  38. package/dist/src/ui/viewer/styles-inline.d.ts +1 -1
  39. package/dist/src/ui/viewer/styles-inline.d.ts.map +1 -1
  40. package/dist/src/ui/viewer/styles-inline.js +78 -0
  41. package/dist/src/ui/viewer/styles-inline.js.map +1 -1
  42. package/package.json +5 -2
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingToolbar.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/FloatingToolbar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FloatingToolbar.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/FloatingToolbar.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LeftPanel.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/LeftPanel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,UAAU,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAyB7D,wBAAgB,eAAe;;uBAmHD,WAAW,SAAS,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,gBAAgB,YAAY,KAAG,IAAI;mBA6BvF,IAAI;EAoB3B"}
1
+ {"version":3,"file":"LeftPanel.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/LeftPanel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAA0B,MAAM,UAAU,CAAC;AAEpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AA4B7D,wBAAgB,eAAe;;uBAwHD,WAAW,SAAS,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,gBAAgB,YAAY,KAAG,IAAI;mBAmCvF,IAAI;EAoB3B"}
@@ -1,4 +1,4 @@
1
- import { subscribeSelector, shallowEqual } from "../../framework/selectors";
1
+ import { subscribeSelector } from "../../framework/selectors";
2
2
  import { isLeftPanelTab } from "../state";
3
3
  import { ICON_THUMBNAIL, ICON_OUTLINE, ICON_BOOKMARK, ICON_LAYERS, ICON_ATTACHMENT } from "../icons";
4
4
  import { createThumbnailPanel } from "./ThumbnailPanel";
@@ -42,6 +42,8 @@ export function createLeftPanel() {
42
42
  let storeRef = null;
43
43
  let workerClientRef = null;
44
44
  function applyState(slice) {
45
+ // Hide entire panel area if disabled or all left tabs are disabled
46
+ el.style.display = !slice.panelVisible || slice.allDisabled ? "none" : "";
45
47
  el.classList.toggle("udoc-left-panel--closed", !slice.open);
46
48
  // Apply width from state (only when open)
47
49
  if (slice.open && slice.width !== null) {
@@ -52,6 +54,8 @@ export function createLeftPanel() {
52
54
  }
53
55
  for (const [tabId, btn] of tabButtons) {
54
56
  btn.classList.toggle("udoc-left-panel__tab--active", tabId === slice.activeTab);
57
+ // Hide individual tab buttons that are disabled
58
+ btn.style.display = slice.disabledPanels.has(tabId) ? "none" : "";
55
59
  }
56
60
  }
57
61
  function applyContent(activeTab) {
@@ -126,7 +130,12 @@ export function createLeftPanel() {
126
130
  const initialSlice = selectLeftPanel(store.getState());
127
131
  applyState(initialSlice);
128
132
  unsubRender = subscribeSelector(store, selectLeftPanel, applyState, {
129
- equality: shallowEqual,
133
+ equality: (a, b) => a.open === b.open &&
134
+ a.activeTab === b.activeTab &&
135
+ a.width === b.width &&
136
+ a.panelVisible === b.panelVisible &&
137
+ a.disabledPanels === b.disabledPanels &&
138
+ a.allDisabled === b.allDisabled,
130
139
  });
131
140
  // Subscribe to active tab changes for content
132
141
  applyContent(initialSlice.activeTab);
@@ -156,10 +165,14 @@ export function createLeftPanel() {
156
165
  function selectLeftPanel(state) {
157
166
  const panel = state.activePanel;
158
167
  const isLeftTab = panel !== null && isLeftPanelTab(panel);
168
+ const allDisabled = TABS.every((tab) => state.disabledPanels.has(tab.id));
159
169
  return {
160
170
  open: isLeftTab,
161
171
  activeTab: isLeftTab ? panel : null,
162
172
  width: state.leftPanelWidth,
173
+ panelVisible: state.leftPanelVisible,
174
+ disabledPanels: state.disabledPanels,
175
+ allDisabled,
163
176
  };
164
177
  }
165
178
  //# sourceMappingURL=LeftPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LeftPanel.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/LeftPanel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LeftPanel.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/LeftPanel.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RightPanel.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/RightPanel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AASzC,wBAAgB,gBAAgB;;uBA8EF,WAAW,SAAS,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,KAAG,IAAI;mBAiB3D,IAAI;EAS3B"}
1
+ {"version":3,"file":"RightPanel.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/RightPanel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAazC,wBAAgB,gBAAgB;;uBAiFF,WAAW,SAAS,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,KAAG,IAAI;mBAsB3D,IAAI;EAS3B"}
@@ -1,6 +1,7 @@
1
- import { subscribeSelector, shallowEqual } from "../../framework/selectors";
1
+ import { subscribeSelector } from "../../framework/selectors";
2
2
  import { isLeftPanelTab } from "../state";
3
3
  import { createAnnotationPanel } from "./AnnotationPanel";
4
+ const RIGHT_TABS = ["search", "comments"];
4
5
  export function createRightPanel() {
5
6
  const el = document.createElement("div");
6
7
  el.className = "udoc-right-panel";
@@ -17,6 +18,8 @@ export function createRightPanel() {
17
18
  const unsubEvents = [];
18
19
  let storeRef = null;
19
20
  function applyState(slice) {
21
+ // Hide entire panel area if disabled or all right tabs are disabled
22
+ el.style.display = !slice.panelVisible || slice.allDisabled ? "none" : "";
20
23
  el.classList.toggle("udoc-right-panel--closed", !slice.open);
21
24
  // Apply width from state (only when open)
22
25
  if (slice.open && slice.width !== null) {
@@ -76,7 +79,11 @@ export function createRightPanel() {
76
79
  // Subscribe to state changes
77
80
  applyState(selectRightPanel(store.getState()));
78
81
  unsubRender = subscribeSelector(store, selectRightPanel, applyState, {
79
- equality: shallowEqual,
82
+ equality: (a, b) => a.open === b.open &&
83
+ a.activeTab === b.activeTab &&
84
+ a.width === b.width &&
85
+ a.panelVisible === b.panelVisible &&
86
+ a.allDisabled === b.allDisabled,
80
87
  });
81
88
  }
82
89
  function destroy() {
@@ -93,10 +100,13 @@ export function createRightPanel() {
93
100
  function selectRightPanel(state) {
94
101
  const panel = state.activePanel;
95
102
  const isRightTab = panel !== null && !isLeftPanelTab(panel);
103
+ const allDisabled = RIGHT_TABS.every((tab) => state.disabledPanels.has(tab));
96
104
  return {
97
105
  open: isRightTab,
98
106
  activeTab: isRightTab ? panel : null,
99
107
  width: state.rightPanelWidth,
108
+ panelVisible: state.rightPanelVisible,
109
+ allDisabled,
100
110
  };
101
111
  }
102
112
  //# sourceMappingURL=RightPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RightPanel.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/RightPanel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAQ1D,MAAM,UAAU,gBAAgB;IAC5B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,EAAE,CAAC,SAAS,GAAG,kBAAkB,CAAC;IAElC,+CAA+C;IAC/C,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnD,YAAY,CAAC,SAAS,GAAG,iCAAiC,CAAC;IAE3D,oCAAoC;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,SAAS,GAAG,2BAA2B,CAAC;IAEhD,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEjC,mBAAmB;IACnB,MAAM,eAAe,GAAG,qBAAqB,EAAE,CAAC;IAEhD,IAAI,WAAW,GAAwB,IAAI,CAAC;IAC5C,MAAM,WAAW,GAAsB,EAAE,CAAC;IAC1C,IAAI,QAAQ,GAAsC,IAAI,CAAC;IAEvD,SAAS,UAAU,CAAC,KAAsB;QACtC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7D,0CAA0C;QAC1C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACrC,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC;QACxC,CAAC;aAAM,CAAC;YACJ,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED,SAAS,WAAW;QAChB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,MAAM,aAAa,GAAG,CAAC,CAAe,EAAE,EAAE;YACtC,iDAAiD;YACjD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;YAClE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,QAAQ,IAAI,CAAC;QACrC,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,GAAG,EAAE;YACrB,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YAC3D,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACvD,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;YAEpC,yBAAyB;YACzB,IAAI,QAAQ,EAAE,CAAC;gBACX,MAAM,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC;gBAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,CAAe,EAAE,EAAE;YACtC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACnB,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC/C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;YACxC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YACxD,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,YAAY,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAC5D,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,SAAS,KAAK,CAAC,SAAsB,EAAE,KAAiC;QACpE,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1B,QAAQ,GAAG,KAAK,CAAC;QAEjB,sBAAsB;QACtB,WAAW,EAAE,CAAC;QAEd,yBAAyB;QACzB,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEtC,6BAA6B;QAC7B,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/C,WAAW,GAAG,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE;YACjE,QAAQ,EAAE,YAAY;SACzB,CAAC,CAAC;IACP,CAAC;IAED,SAAS,OAAO;QACZ,IAAI,WAAW;YAAE,WAAW,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,WAAW;YAAE,GAAG,EAAE,CAAC;QACrC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC1B,QAAQ,GAAG,IAAI,CAAC;QAChB,EAAE,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAkB;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;IAChC,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO;QACH,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QACpC,KAAK,EAAE,KAAK,CAAC,eAAe;KAC/B,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"RightPanel.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/RightPanel.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;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAWzC,wBAAgB,aAAa;;uBA2BC,WAAW,SAAS,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,KAAG,IAAI;mBA4D3D,IAAI;EAO3B"}
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,WAAW,EAAoC,MAAM,UAAU,CAAC;AAE9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAqFzC,wBAAgB,aAAa;;uBAsMC,WAAW,SAAS,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,KAAG,IAAI;mBA+M3D,IAAI;EAQ3B"}
@@ -1,4 +1,8 @@
1
- import { ICON_MENU, ICON_SEARCH, ICON_COMMENTS, ICON_FULLSCREEN, ICON_FULLSCREEN_EXIT } from "../icons";
1
+ import { subscribeSelector } from "../../framework/selectors";
2
+ import { on } from "../../framework/events";
3
+ import { isLeftPanelTab } from "../state";
4
+ import { ICON_MENU, ICON_SEARCH, ICON_COMMENTS, ICON_FULLSCREEN, ICON_FULLSCREEN_EXIT, ICON_CHEVRON_LEFT, ICON_CHEVRON_RIGHT, ICON_CHEVRON_DOWN, ICON_ZOOM_IN, ICON_ZOOM_OUT, } from "../icons";
5
+ import { createViewModeMenu } from "./ViewModeMenu";
2
6
  function createButton(className, label, iconSvg) {
3
7
  const btn = document.createElement("button");
4
8
  btn.className = `udoc-toolbar__btn ${className}`;
@@ -6,6 +10,44 @@ function createButton(className, label, iconSvg) {
6
10
  btn.innerHTML = iconSvg;
7
11
  return btn;
8
12
  }
13
+ /** Format zoom as percentage string, preserving 1 decimal when present */
14
+ function formatZoomPercent(zoom) {
15
+ const percent = Math.round(zoom * 1000) / 10;
16
+ return percent % 1 === 0 ? `${percent}%` : `${percent.toFixed(1)}%`;
17
+ }
18
+ const LEFT_TABS = ["thumbnail", "outline", "bookmarks", "layers", "attachments"];
19
+ function sliceEqual(a, b) {
20
+ return (a.toolbarVisible === b.toolbarVisible &&
21
+ a.floatingToolbarVisible === b.floatingToolbarVisible &&
22
+ a.fullscreenButtonVisible === b.fullscreenButtonVisible &&
23
+ a.isFullscreen === b.isFullscreen &&
24
+ a.leftPanelVisible === b.leftPanelVisible &&
25
+ a.rightPanelVisible === b.rightPanelVisible &&
26
+ a.disabledPanels === b.disabledPanels &&
27
+ a.page === b.page &&
28
+ a.pageCount === b.pageCount &&
29
+ a.zoom === b.zoom &&
30
+ a.zoomMode === b.zoomMode &&
31
+ a.effectiveZoom === b.effectiveZoom &&
32
+ a.zoomSteps === b.zoomSteps);
33
+ }
34
+ function selectSlice(state) {
35
+ return {
36
+ toolbarVisible: state.toolbarVisible,
37
+ floatingToolbarVisible: state.floatingToolbarVisible,
38
+ fullscreenButtonVisible: state.fullscreenButtonVisible,
39
+ isFullscreen: state.isFullscreen,
40
+ leftPanelVisible: state.leftPanelVisible,
41
+ rightPanelVisible: state.rightPanelVisible,
42
+ disabledPanels: state.disabledPanels,
43
+ page: state.page,
44
+ pageCount: state.pageCount,
45
+ zoom: state.zoom,
46
+ zoomMode: state.zoomMode,
47
+ effectiveZoom: state.effectiveZoom,
48
+ zoomSteps: state.zoomSteps,
49
+ };
50
+ }
9
51
  export function createToolbar() {
10
52
  const el = document.createElement("div");
11
53
  el.className = "udoc-toolbar";
@@ -14,9 +56,71 @@ export function createToolbar() {
14
56
  leftSection.className = "udoc-toolbar__left";
15
57
  const menuBtn = createButton("udoc-toolbar__btn--menu", "Menu", ICON_MENU);
16
58
  leftSection.appendChild(menuBtn);
17
- // Spacer
18
- const spacer = document.createElement("div");
19
- spacer.className = "udoc-toolbar__spacer";
59
+ // Center section (inline controls — visible when floating toolbar is hidden)
60
+ const centerSection = document.createElement("div");
61
+ centerSection.className = "udoc-toolbar__center";
62
+ centerSection.style.display = "none";
63
+ // -- Page navigation
64
+ const navGroup = document.createElement("div");
65
+ navGroup.className = "udoc-toolbar__group";
66
+ const prevBtn = document.createElement("button");
67
+ prevBtn.className = "udoc-toolbar__btn udoc-toolbar__btn--nav";
68
+ prevBtn.innerHTML = ICON_CHEVRON_LEFT;
69
+ prevBtn.title = "Previous page";
70
+ const pageInfo = document.createElement("div");
71
+ pageInfo.className = "udoc-toolbar__page-info";
72
+ const pageInput = document.createElement("input");
73
+ pageInput.className = "udoc-toolbar__page-input";
74
+ pageInput.type = "text";
75
+ pageInput.inputMode = "numeric";
76
+ const pageTotal = document.createElement("span");
77
+ pageTotal.className = "udoc-toolbar__page-total";
78
+ pageInfo.append(pageInput, pageTotal);
79
+ const nextBtn = document.createElement("button");
80
+ nextBtn.className = "udoc-toolbar__btn udoc-toolbar__btn--nav";
81
+ nextBtn.innerHTML = ICON_CHEVRON_RIGHT;
82
+ nextBtn.title = "Next page";
83
+ navGroup.append(prevBtn, pageInfo, nextBtn);
84
+ // -- Divider
85
+ const divider1 = document.createElement("div");
86
+ divider1.className = "udoc-toolbar__divider";
87
+ // -- Zoom controls
88
+ const zoomGroup = document.createElement("div");
89
+ zoomGroup.className = "udoc-toolbar__group";
90
+ const zoomOutBtn = document.createElement("button");
91
+ zoomOutBtn.className = "udoc-toolbar__btn udoc-toolbar__btn--nav";
92
+ zoomOutBtn.innerHTML = ICON_ZOOM_OUT;
93
+ zoomOutBtn.title = "Zoom out";
94
+ // Zoom dropdown container
95
+ const zoomDropdownContainer = document.createElement("div");
96
+ zoomDropdownContainer.className = "udoc-zoom-dropdown udoc-zoom-dropdown--toolbar";
97
+ const zoomToggle = document.createElement("div");
98
+ zoomToggle.className = "udoc-zoom-dropdown__toggle";
99
+ const zoomInput = document.createElement("input");
100
+ zoomInput.className = "udoc-zoom-dropdown__input";
101
+ zoomInput.type = "text";
102
+ zoomInput.inputMode = "numeric";
103
+ zoomInput.title = "Zoom level";
104
+ const zoomChevron = document.createElement("button");
105
+ zoomChevron.className = "udoc-zoom-dropdown__chevron";
106
+ zoomChevron.innerHTML = ICON_CHEVRON_DOWN;
107
+ zoomChevron.title = "Zoom options";
108
+ zoomToggle.append(zoomInput, zoomChevron);
109
+ const zoomDropdown = document.createElement("div");
110
+ zoomDropdown.className = "udoc-zoom-dropdown__menu";
111
+ zoomDropdown.style.display = "none";
112
+ zoomDropdownContainer.append(zoomToggle, zoomDropdown);
113
+ const zoomInBtn = document.createElement("button");
114
+ zoomInBtn.className = "udoc-toolbar__btn udoc-toolbar__btn--nav";
115
+ zoomInBtn.innerHTML = ICON_ZOOM_IN;
116
+ zoomInBtn.title = "Zoom in";
117
+ zoomGroup.append(zoomOutBtn, zoomDropdownContainer, zoomInBtn);
118
+ // -- Divider
119
+ const divider2 = document.createElement("div");
120
+ divider2.className = "udoc-toolbar__divider";
121
+ // -- View mode menu
122
+ const viewModeMenu = createViewModeMenu();
123
+ centerSection.append(navGroup, divider1, zoomGroup, divider2, viewModeMenu.el);
20
124
  // Right section
21
125
  const rightSection = document.createElement("div");
22
126
  rightSection.className = "udoc-toolbar__right";
@@ -24,14 +128,100 @@ export function createToolbar() {
24
128
  const commentsBtn = createButton("udoc-toolbar__btn--comments", "Comments", ICON_COMMENTS);
25
129
  const fullscreenBtn = createButton("udoc-toolbar__btn--fullscreen", "Fullscreen", ICON_FULLSCREEN);
26
130
  rightSection.append(searchBtn, commentsBtn, fullscreenBtn);
27
- el.append(leftSection, spacer, rightSection);
131
+ el.append(leftSection, centerSection, rightSection);
28
132
  const unsubEvents = [];
29
133
  let unsubRender = null;
134
+ let viewModeMounted = false;
135
+ // Zoom dropdown local state
136
+ let isZoomDropdownOpen = false;
137
+ const openZoomDropdown = () => {
138
+ if (!isZoomDropdownOpen) {
139
+ isZoomDropdownOpen = true;
140
+ zoomDropdown.style.display = "block";
141
+ zoomChevron.classList.add("udoc-zoom-dropdown__chevron--active");
142
+ }
143
+ };
144
+ const closeZoomDropdown = () => {
145
+ if (isZoomDropdownOpen) {
146
+ isZoomDropdownOpen = false;
147
+ zoomDropdown.style.display = "none";
148
+ zoomChevron.classList.remove("udoc-zoom-dropdown__chevron--active");
149
+ }
150
+ };
151
+ const ZOOM_MODE_OPTIONS = [
152
+ { mode: "fit-spread-width", label: "Fit Width" },
153
+ { mode: "fit-spread-height", label: "Fit Height" },
154
+ { mode: "fit-spread", label: "Fit Page" },
155
+ ];
156
+ function getDisplayZoom(slice) {
157
+ if (slice.zoomMode === "custom")
158
+ return slice.zoom;
159
+ return slice.effectiveZoom ?? slice.zoom;
160
+ }
161
+ function buildZoomDropdown(slice, store) {
162
+ zoomDropdown.innerHTML = "";
163
+ // Zoom step options
164
+ const stepsSection = document.createElement("div");
165
+ stepsSection.className = "udoc-zoom-dropdown__section";
166
+ for (const step of slice.zoomSteps) {
167
+ const item = document.createElement("button");
168
+ item.className = "udoc-zoom-dropdown__item";
169
+ const stepPercent = Math.round(step * 100);
170
+ const currentPercent = Math.round(slice.zoom * 100);
171
+ if (slice.zoomMode === "custom" && stepPercent === currentPercent) {
172
+ item.classList.add("udoc-zoom-dropdown__item--active");
173
+ }
174
+ item.textContent = `${stepPercent}%`;
175
+ item.addEventListener("click", (e) => {
176
+ e.stopPropagation();
177
+ store.dispatch({ type: "SET_ZOOM", zoom: step });
178
+ closeZoomDropdown();
179
+ });
180
+ stepsSection.appendChild(item);
181
+ }
182
+ zoomDropdown.appendChild(stepsSection);
183
+ // Divider
184
+ const dividerEl = document.createElement("div");
185
+ dividerEl.className = "udoc-zoom-dropdown__divider";
186
+ zoomDropdown.appendChild(dividerEl);
187
+ // Zoom mode options
188
+ const modeSection = document.createElement("div");
189
+ modeSection.className = "udoc-zoom-dropdown__section";
190
+ for (const opt of ZOOM_MODE_OPTIONS) {
191
+ const item = document.createElement("button");
192
+ item.className = "udoc-zoom-dropdown__item";
193
+ if (slice.zoomMode === opt.mode) {
194
+ item.classList.add("udoc-zoom-dropdown__item--active");
195
+ }
196
+ item.textContent = opt.label;
197
+ item.addEventListener("click", (e) => {
198
+ e.stopPropagation();
199
+ const state = store.getState();
200
+ store.dispatch({ type: "SET_ZOOM_MODE", mode: opt.mode });
201
+ if (state.zoomMode === opt.mode) {
202
+ store.dispatch({ type: "NAVIGATE_TO_PAGE", page: state.page });
203
+ }
204
+ closeZoomDropdown();
205
+ });
206
+ modeSection.appendChild(item);
207
+ }
208
+ zoomDropdown.appendChild(modeSection);
209
+ }
30
210
  function mount(container, store) {
31
211
  container.appendChild(el);
32
- // Wire menu button to toggle thumbnails panel
212
+ // Wire menu button to toggle the first available left panel tab
33
213
  const onMenuClick = () => {
34
- store.dispatch({ type: "TOGGLE_PANEL", panel: "thumbnail" });
214
+ const state = store.getState();
215
+ // If a left panel is already open, close it
216
+ if (state.activePanel !== null && isLeftPanelTab(state.activePanel)) {
217
+ store.dispatch({ type: "CLOSE_PANEL" });
218
+ return;
219
+ }
220
+ // Find first non-disabled left tab
221
+ const firstTab = LEFT_TABS.find((t) => !state.disabledPanels.has(t));
222
+ if (firstTab) {
223
+ store.dispatch({ type: "TOGGLE_PANEL", panel: firstTab });
224
+ }
35
225
  };
36
226
  menuBtn.addEventListener("click", onMenuClick);
37
227
  unsubEvents.push(() => menuBtn.removeEventListener("click", onMenuClick));
@@ -53,14 +243,10 @@ export function createToolbar() {
53
243
  if (!root)
54
244
  return;
55
245
  if (!document.fullscreenElement) {
56
- root.requestFullscreen().catch(() => {
57
- // Fullscreen request failed (e.g., not allowed by browser)
58
- });
246
+ root.requestFullscreen().catch(() => { });
59
247
  }
60
248
  else {
61
- document.exitFullscreen().catch(() => {
62
- // Exit fullscreen failed
63
- });
249
+ document.exitFullscreen().catch(() => { });
64
250
  }
65
251
  };
66
252
  fullscreenBtn.addEventListener("click", onFullscreenClick);
@@ -73,12 +259,126 @@ export function createToolbar() {
73
259
  };
74
260
  document.addEventListener("fullscreenchange", onFullscreenChange);
75
261
  unsubEvents.push(() => document.removeEventListener("fullscreenchange", onFullscreenChange));
76
- // Subscribe to state to update fullscreen button icon
77
- unsubRender = store.subscribeRender((prev, next) => {
78
- if (prev.isFullscreen !== next.isFullscreen) {
79
- fullscreenBtn.innerHTML = next.isFullscreen ? ICON_FULLSCREEN_EXIT : ICON_FULLSCREEN;
80
- fullscreenBtn.setAttribute("aria-label", next.isFullscreen ? "Exit fullscreen" : "Fullscreen");
262
+ // Wire inline controls (page navigation)
263
+ unsubEvents.push(on(prevBtn, "click", () => {
264
+ const state = store.getState();
265
+ if (state.page > 1) {
266
+ store.dispatch({ type: "NAVIGATE_TO_PAGE", page: state.page - 1 });
267
+ }
268
+ }), on(nextBtn, "click", () => {
269
+ const state = store.getState();
270
+ if (state.page < state.pageCount) {
271
+ store.dispatch({ type: "NAVIGATE_TO_PAGE", page: state.page + 1 });
272
+ }
273
+ }), on(pageInput, "keydown", (e) => {
274
+ if (e.key === "Enter") {
275
+ const value = parseInt(pageInput.value, 10);
276
+ const state = store.getState();
277
+ if (!isNaN(value) && value >= 1 && value <= state.pageCount) {
278
+ store.dispatch({ type: "NAVIGATE_TO_PAGE", page: value });
279
+ }
280
+ else {
281
+ pageInput.value = String(state.page);
282
+ }
283
+ pageInput.blur();
81
284
  }
285
+ }), on(pageInput, "blur", () => {
286
+ const state = store.getState();
287
+ pageInput.value = String(state.page);
288
+ }));
289
+ // Wire inline controls (zoom)
290
+ unsubEvents.push(on(zoomOutBtn, "click", () => {
291
+ store.dispatch({ type: "ZOOM_OUT" });
292
+ }), on(zoomInBtn, "click", () => {
293
+ store.dispatch({ type: "ZOOM_IN" });
294
+ }), on(zoomInput, "keydown", (e) => {
295
+ if (e.key === "Enter") {
296
+ const value = parseFloat(zoomInput.value);
297
+ const state = store.getState();
298
+ if (!isNaN(value) && value >= 10 && value <= 500) {
299
+ store.dispatch({ type: "SET_ZOOM", zoom: value / 100 });
300
+ }
301
+ else {
302
+ const displayZoom = state.zoomMode === "custom" ? state.zoom : (state.effectiveZoom ?? state.zoom);
303
+ zoomInput.value = formatZoomPercent(displayZoom);
304
+ }
305
+ zoomInput.blur();
306
+ }
307
+ }), on(zoomInput, "focus", () => {
308
+ zoomInput.select();
309
+ }), on(zoomInput, "blur", () => {
310
+ const state = store.getState();
311
+ const displayZoom = state.zoomMode === "custom" ? state.zoom : (state.effectiveZoom ?? state.zoom);
312
+ zoomInput.value = formatZoomPercent(displayZoom);
313
+ }));
314
+ // Zoom chevron toggle
315
+ unsubEvents.push(on(zoomChevron, "click", (e) => {
316
+ e.stopPropagation();
317
+ if (isZoomDropdownOpen) {
318
+ closeZoomDropdown();
319
+ }
320
+ else {
321
+ openZoomDropdown();
322
+ }
323
+ }));
324
+ // Close zoom dropdown on outside click
325
+ const handleOutsideClick = (e) => {
326
+ if (!zoomDropdownContainer.contains(e.target)) {
327
+ closeZoomDropdown();
328
+ }
329
+ };
330
+ document.addEventListener("click", handleOutsideClick);
331
+ unsubEvents.push(() => document.removeEventListener("click", handleOutsideClick));
332
+ // Close zoom dropdown on escape
333
+ const handleEscape = (e) => {
334
+ if (e.key === "Escape") {
335
+ closeZoomDropdown();
336
+ }
337
+ };
338
+ document.addEventListener("keydown", handleEscape);
339
+ unsubEvents.push(() => document.removeEventListener("keydown", handleEscape));
340
+ // Subscribe to state changes
341
+ const applyState = (slice) => {
342
+ // Toolbar visibility
343
+ el.style.display = slice.toolbarVisible ? "" : "none";
344
+ // Menu button: hidden when left panel disabled or all left tabs disabled
345
+ const allLeftDisabled = LEFT_TABS.every((t) => slice.disabledPanels.has(t));
346
+ menuBtn.style.display = !slice.leftPanelVisible || allLeftDisabled ? "none" : "";
347
+ // Search button: hidden when right panel disabled or search individually disabled
348
+ searchBtn.style.display = !slice.rightPanelVisible || slice.disabledPanels.has("search") ? "none" : "";
349
+ // Comments button: hidden when right panel disabled or comments individually disabled
350
+ commentsBtn.style.display = !slice.rightPanelVisible || slice.disabledPanels.has("comments") ? "none" : "";
351
+ // Fullscreen button visibility and icon
352
+ fullscreenBtn.style.display = slice.fullscreenButtonVisible ? "" : "none";
353
+ fullscreenBtn.innerHTML = slice.isFullscreen ? ICON_FULLSCREEN_EXIT : ICON_FULLSCREEN;
354
+ fullscreenBtn.setAttribute("aria-label", slice.isFullscreen ? "Exit fullscreen" : "Fullscreen");
355
+ // Center section visibility (show when floating toolbar is hidden)
356
+ const showCenter = slice.toolbarVisible && !slice.floatingToolbarVisible;
357
+ centerSection.style.display = showCenter ? "flex" : "none";
358
+ // Mount view mode menu lazily on first show
359
+ if (showCenter && !viewModeMounted) {
360
+ viewModeMenu.mount(store);
361
+ viewModeMounted = true;
362
+ }
363
+ if (showCenter) {
364
+ // Update page navigation
365
+ pageInput.value = String(slice.page);
366
+ pageTotal.textContent = `\u00A0/ ${slice.pageCount}`;
367
+ prevBtn.disabled = slice.page <= 1;
368
+ nextBtn.disabled = slice.page >= slice.pageCount;
369
+ // Update zoom input (only if not focused)
370
+ if (document.activeElement !== zoomInput) {
371
+ zoomInput.value = formatZoomPercent(getDisplayZoom(slice));
372
+ }
373
+ // Rebuild zoom dropdown
374
+ buildZoomDropdown(slice, store);
375
+ }
376
+ };
377
+ // Initial state
378
+ applyState(selectSlice(store.getState()));
379
+ // Subscribe to changes
380
+ unsubRender = subscribeSelector(store, selectSlice, applyState, {
381
+ equality: sliceEqual,
82
382
  });
83
383
  }
84
384
  function destroy() {
@@ -86,6 +386,8 @@ export function createToolbar() {
86
386
  unsubRender();
87
387
  for (const off of unsubEvents)
88
388
  off();
389
+ if (viewModeMounted)
390
+ viewModeMenu.destroy();
89
391
  el.remove();
90
392
  }
91
393
  return { el, mount, destroy };