@docmentis/udoc-viewer 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/dist/wasm/udoc_bg.wasm +0 -0
  2. package/dist/worker/WorkerClient.js +1 -1
  3. package/package.json +11 -3
  4. package/dist/WorkerClient.d.ts +0 -36
  5. package/dist/WorkerClient.d.ts.map +0 -1
  6. package/dist/WorkerClient.js +0 -121
  7. package/dist/WorkerClient.js.map +0 -1
  8. package/dist/annotation/AnnotationLayer.d.ts +0 -166
  9. package/dist/annotation/AnnotationLayer.d.ts.map +0 -1
  10. package/dist/annotation/AnnotationLayer.js +0 -1090
  11. package/dist/annotation/AnnotationLayer.js.map +0 -1
  12. package/dist/annotation/index.d.ts +0 -6
  13. package/dist/annotation/index.d.ts.map +0 -1
  14. package/dist/annotation/index.js +0 -6
  15. package/dist/annotation/index.js.map +0 -1
  16. package/dist/components/FloatingBar.d.ts +0 -102
  17. package/dist/components/FloatingBar.d.ts.map +0 -1
  18. package/dist/components/FloatingBar.js +0 -513
  19. package/dist/components/FloatingBar.js.map +0 -1
  20. package/dist/components/Header.d.ts +0 -46
  21. package/dist/components/Header.d.ts.map +0 -1
  22. package/dist/components/Header.js +0 -93
  23. package/dist/components/Header.js.map +0 -1
  24. package/dist/components/index.d.ts +0 -6
  25. package/dist/components/index.d.ts.map +0 -1
  26. package/dist/components/index.js +0 -4
  27. package/dist/components/index.js.map +0 -1
  28. package/dist/components/panels/CommentsPanel.d.ts +0 -33
  29. package/dist/components/panels/CommentsPanel.d.ts.map +0 -1
  30. package/dist/components/panels/CommentsPanel.js +0 -176
  31. package/dist/components/panels/CommentsPanel.js.map +0 -1
  32. package/dist/components/panels/OutlinePanel.d.ts +0 -30
  33. package/dist/components/panels/OutlinePanel.d.ts.map +0 -1
  34. package/dist/components/panels/OutlinePanel.js +0 -144
  35. package/dist/components/panels/OutlinePanel.js.map +0 -1
  36. package/dist/components/panels/ThumbnailsPanel.d.ts +0 -51
  37. package/dist/components/panels/ThumbnailsPanel.d.ts.map +0 -1
  38. package/dist/components/panels/ThumbnailsPanel.js +0 -160
  39. package/dist/components/panels/ThumbnailsPanel.js.map +0 -1
  40. package/dist/components/panels/index.d.ts +0 -7
  41. package/dist/components/panels/index.d.ts.map +0 -1
  42. package/dist/components/panels/index.js +0 -4
  43. package/dist/components/panels/index.js.map +0 -1
  44. package/dist/constants.d.ts +0 -25
  45. package/dist/constants.d.ts.map +0 -1
  46. package/dist/constants.js +0 -46
  47. package/dist/constants.js.map +0 -1
  48. package/dist/core/NavigationController.d.ts +0 -54
  49. package/dist/core/NavigationController.d.ts.map +0 -1
  50. package/dist/core/NavigationController.js +0 -145
  51. package/dist/core/NavigationController.js.map +0 -1
  52. package/dist/core/PerfTimer.d.ts +0 -12
  53. package/dist/core/PerfTimer.d.ts.map +0 -1
  54. package/dist/core/PerfTimer.js +0 -32
  55. package/dist/core/PerfTimer.js.map +0 -1
  56. package/dist/core/ViewerState.d.ts +0 -108
  57. package/dist/core/ViewerState.d.ts.map +0 -1
  58. package/dist/core/ViewerState.js +0 -179
  59. package/dist/core/ViewerState.js.map +0 -1
  60. package/dist/core/constants.d.ts +0 -24
  61. package/dist/core/constants.d.ts.map +0 -1
  62. package/dist/core/constants.js +0 -42
  63. package/dist/core/constants.js.map +0 -1
  64. package/dist/core/index.d.ts +0 -8
  65. package/dist/core/index.d.ts.map +0 -1
  66. package/dist/core/index.js +0 -11
  67. package/dist/core/index.js.map +0 -1
  68. package/dist/core/types.d.ts +0 -573
  69. package/dist/core/types.d.ts.map +0 -1
  70. package/dist/core/types.js +0 -5
  71. package/dist/core/types.js.map +0 -1
  72. package/dist/icons/icons.d.ts +0 -41
  73. package/dist/icons/icons.d.ts.map +0 -1
  74. package/dist/icons/icons.js +0 -51
  75. package/dist/icons/icons.js.map +0 -1
  76. package/dist/icons/index.d.ts +0 -3
  77. package/dist/icons/index.d.ts.map +0 -1
  78. package/dist/icons/index.js +0 -2
  79. package/dist/icons/index.js.map +0 -1
  80. package/dist/layout/BandManager.d.ts +0 -87
  81. package/dist/layout/BandManager.d.ts.map +0 -1
  82. package/dist/layout/BandManager.js +0 -185
  83. package/dist/layout/BandManager.js.map +0 -1
  84. package/dist/layout/LayoutCalculator.d.ts +0 -42
  85. package/dist/layout/LayoutCalculator.d.ts.map +0 -1
  86. package/dist/layout/LayoutCalculator.js +0 -180
  87. package/dist/layout/LayoutCalculator.js.map +0 -1
  88. package/dist/layout/LayoutState.d.ts +0 -46
  89. package/dist/layout/LayoutState.d.ts.map +0 -1
  90. package/dist/layout/LayoutState.js +0 -109
  91. package/dist/layout/LayoutState.js.map +0 -1
  92. package/dist/layout/TransitionCoordinator.d.ts +0 -11
  93. package/dist/layout/TransitionCoordinator.d.ts.map +0 -1
  94. package/dist/layout/TransitionCoordinator.js +0 -22
  95. package/dist/layout/TransitionCoordinator.js.map +0 -1
  96. package/dist/layout/index.d.ts +0 -7
  97. package/dist/layout/index.d.ts.map +0 -1
  98. package/dist/layout/index.js +0 -4
  99. package/dist/layout/index.js.map +0 -1
  100. package/dist/rendering/BandManager.d.ts +0 -87
  101. package/dist/rendering/BandManager.d.ts.map +0 -1
  102. package/dist/rendering/BandManager.js +0 -185
  103. package/dist/rendering/BandManager.js.map +0 -1
  104. package/dist/rendering/PageCache.d.ts +0 -75
  105. package/dist/rendering/PageCache.d.ts.map +0 -1
  106. package/dist/rendering/PageCache.js +0 -122
  107. package/dist/rendering/PageCache.js.map +0 -1
  108. package/dist/rendering/RenderQueue.d.ts +0 -75
  109. package/dist/rendering/RenderQueue.d.ts.map +0 -1
  110. package/dist/rendering/RenderQueue.js +0 -105
  111. package/dist/rendering/RenderQueue.js.map +0 -1
  112. package/dist/rendering/ThumbnailQueue.d.ts +0 -57
  113. package/dist/rendering/ThumbnailQueue.d.ts.map +0 -1
  114. package/dist/rendering/ThumbnailQueue.js +0 -85
  115. package/dist/rendering/ThumbnailQueue.js.map +0 -1
  116. package/dist/rendering/index.d.ts +0 -13
  117. package/dist/rendering/index.d.ts.map +0 -1
  118. package/dist/rendering/index.js +0 -10
  119. package/dist/rendering/index.js.map +0 -1
  120. package/dist/rendering/types.d.ts +0 -72
  121. package/dist/rendering/types.d.ts.map +0 -1
  122. package/dist/rendering/types.js +0 -5
  123. package/dist/rendering/types.js.map +0 -1
  124. package/dist/styles/index.d.ts +0 -6
  125. package/dist/styles/index.d.ts.map +0 -1
  126. package/dist/styles/index.js +0 -1221
  127. package/dist/styles/index.js.map +0 -1
  128. package/dist/types.d.ts +0 -6
  129. package/dist/types.d.ts.map +0 -1
  130. package/dist/types.js +0 -6
  131. package/dist/types.js.map +0 -1
  132. package/dist/ui/Component.d.ts +0 -127
  133. package/dist/ui/Component.d.ts.map +0 -1
  134. package/dist/ui/Component.js +0 -201
  135. package/dist/ui/Component.js.map +0 -1
  136. package/dist/ui/annotation/AnnotationLayer.d.ts +0 -90
  137. package/dist/ui/annotation/AnnotationLayer.d.ts.map +0 -1
  138. package/dist/ui/annotation/AnnotationLayer.js +0 -322
  139. package/dist/ui/annotation/AnnotationLayer.js.map +0 -1
  140. package/dist/ui/annotation/LinkRenderer.d.ts +0 -32
  141. package/dist/ui/annotation/LinkRenderer.d.ts.map +0 -1
  142. package/dist/ui/annotation/LinkRenderer.js +0 -74
  143. package/dist/ui/annotation/LinkRenderer.js.map +0 -1
  144. package/dist/ui/annotation/MarkupRenderer.d.ts +0 -40
  145. package/dist/ui/annotation/MarkupRenderer.d.ts.map +0 -1
  146. package/dist/ui/annotation/MarkupRenderer.js +0 -154
  147. package/dist/ui/annotation/MarkupRenderer.js.map +0 -1
  148. package/dist/ui/annotation/ShapeRenderer.d.ts +0 -46
  149. package/dist/ui/annotation/ShapeRenderer.d.ts.map +0 -1
  150. package/dist/ui/annotation/ShapeRenderer.js +0 -376
  151. package/dist/ui/annotation/ShapeRenderer.js.map +0 -1
  152. package/dist/ui/annotation/TextRenderer.d.ts +0 -36
  153. package/dist/ui/annotation/TextRenderer.d.ts.map +0 -1
  154. package/dist/ui/annotation/TextRenderer.js +0 -199
  155. package/dist/ui/annotation/TextRenderer.js.map +0 -1
  156. package/dist/ui/annotation/index.d.ts +0 -17
  157. package/dist/ui/annotation/index.d.ts.map +0 -1
  158. package/dist/ui/annotation/index.js +0 -13
  159. package/dist/ui/annotation/index.js.map +0 -1
  160. package/dist/ui/annotation/utils.d.ts +0 -40
  161. package/dist/ui/annotation/utils.d.ts.map +0 -1
  162. package/dist/ui/annotation/utils.js +0 -62
  163. package/dist/ui/annotation/utils.js.map +0 -1
  164. package/dist/ui/components/CommentsContent.d.ts +0 -35
  165. package/dist/ui/components/CommentsContent.d.ts.map +0 -1
  166. package/dist/ui/components/CommentsContent.js +0 -203
  167. package/dist/ui/components/CommentsContent.js.map +0 -1
  168. package/dist/ui/components/FloatingBar.d.ts +0 -55
  169. package/dist/ui/components/FloatingBar.d.ts.map +0 -1
  170. package/dist/ui/components/FloatingBar.js +0 -585
  171. package/dist/ui/components/FloatingBar.js.map +0 -1
  172. package/dist/ui/components/Header.d.ts +0 -29
  173. package/dist/ui/components/Header.d.ts.map +0 -1
  174. package/dist/ui/components/Header.js +0 -127
  175. package/dist/ui/components/Header.js.map +0 -1
  176. package/dist/ui/components/LeftPanel.d.ts +0 -54
  177. package/dist/ui/components/LeftPanel.d.ts.map +0 -1
  178. package/dist/ui/components/LeftPanel.js +0 -202
  179. package/dist/ui/components/LeftPanel.js.map +0 -1
  180. package/dist/ui/components/OutlineContent.d.ts +0 -34
  181. package/dist/ui/components/OutlineContent.d.ts.map +0 -1
  182. package/dist/ui/components/OutlineContent.js +0 -147
  183. package/dist/ui/components/OutlineContent.js.map +0 -1
  184. package/dist/ui/components/RightPanel.d.ts +0 -52
  185. package/dist/ui/components/RightPanel.d.ts.map +0 -1
  186. package/dist/ui/components/RightPanel.js +0 -142
  187. package/dist/ui/components/RightPanel.js.map +0 -1
  188. package/dist/ui/components/Viewport.d.ts +0 -70
  189. package/dist/ui/components/Viewport.d.ts.map +0 -1
  190. package/dist/ui/components/Viewport.js +0 -173
  191. package/dist/ui/components/Viewport.js.map +0 -1
  192. package/dist/ui/components/index.d.ts +0 -11
  193. package/dist/ui/components/index.d.ts.map +0 -1
  194. package/dist/ui/components/index.js +0 -10
  195. package/dist/ui/components/index.js.map +0 -1
  196. package/dist/ui/icons/icons.d.ts +0 -43
  197. package/dist/ui/icons/icons.d.ts.map +0 -1
  198. package/dist/ui/icons/icons.js +0 -46
  199. package/dist/ui/icons/icons.js.map +0 -1
  200. package/dist/ui/icons/index.d.ts +0 -11
  201. package/dist/ui/icons/index.d.ts.map +0 -1
  202. package/dist/ui/icons/index.js +0 -18
  203. package/dist/ui/icons/index.js.map +0 -1
  204. package/dist/ui/index.d.ts +0 -7
  205. package/dist/ui/index.d.ts.map +0 -1
  206. package/dist/ui/index.js +0 -9
  207. package/dist/ui/index.js.map +0 -1
  208. package/dist/ui/styles/base.css.d.ts +0 -5
  209. package/dist/ui/styles/base.css.d.ts.map +0 -1
  210. package/dist/ui/styles/base.css.js +0 -49
  211. package/dist/ui/styles/base.css.js.map +0 -1
  212. package/dist/ui/styles/floating-bar.css.d.ts +0 -5
  213. package/dist/ui/styles/floating-bar.css.d.ts.map +0 -1
  214. package/dist/ui/styles/floating-bar.css.js +0 -417
  215. package/dist/ui/styles/floating-bar.css.js.map +0 -1
  216. package/dist/ui/styles/header.css.d.ts +0 -5
  217. package/dist/ui/styles/header.css.d.ts.map +0 -1
  218. package/dist/ui/styles/header.css.js +0 -49
  219. package/dist/ui/styles/header.css.js.map +0 -1
  220. package/dist/ui/styles/index.d.ts +0 -21
  221. package/dist/ui/styles/index.d.ts.map +0 -1
  222. package/dist/ui/styles/index.js +0 -48
  223. package/dist/ui/styles/index.js.map +0 -1
  224. package/dist/ui/styles/panels.css.d.ts +0 -5
  225. package/dist/ui/styles/panels.css.d.ts.map +0 -1
  226. package/dist/ui/styles/panels.css.js +0 -446
  227. package/dist/ui/styles/panels.css.js.map +0 -1
  228. package/dist/ui/styles/responsive.css.d.ts +0 -5
  229. package/dist/ui/styles/responsive.css.d.ts.map +0 -1
  230. package/dist/ui/styles/responsive.css.js +0 -201
  231. package/dist/ui/styles/responsive.css.js.map +0 -1
  232. package/dist/ui/styles/variables.css.d.ts +0 -6
  233. package/dist/ui/styles/variables.css.d.ts.map +0 -1
  234. package/dist/ui/styles/variables.css.js +0 -75
  235. package/dist/ui/styles/variables.css.js.map +0 -1
  236. package/dist/ui/styles/viewport.css.d.ts +0 -5
  237. package/dist/ui/styles/viewport.css.d.ts.map +0 -1
  238. package/dist/ui/styles/viewport.css.js +0 -87
  239. package/dist/ui/styles/viewport.css.js.map +0 -1
  240. package/dist/view/LayoutCalculator.d.ts +0 -42
  241. package/dist/view/LayoutCalculator.d.ts.map +0 -1
  242. package/dist/view/LayoutCalculator.js +0 -180
  243. package/dist/view/LayoutCalculator.js.map +0 -1
  244. package/dist/view/TransitionCoordinator.d.ts +0 -11
  245. package/dist/view/TransitionCoordinator.d.ts.map +0 -1
  246. package/dist/view/TransitionCoordinator.js +0 -22
  247. package/dist/view/TransitionCoordinator.js.map +0 -1
  248. package/dist/view/ViewState.d.ts +0 -46
  249. package/dist/view/ViewState.d.ts.map +0 -1
  250. package/dist/view/ViewState.js +0 -109
  251. package/dist/view/ViewState.js.map +0 -1
  252. package/dist/view/index.d.ts +0 -7
  253. package/dist/view/index.d.ts.map +0 -1
  254. package/dist/view/index.js +0 -4
  255. package/dist/view/index.js.map +0 -1
  256. package/dist/worker/types.d.ts +0 -81
  257. package/dist/worker/types.d.ts.map +0 -1
  258. package/dist/worker/types.js +0 -6
  259. package/dist/worker/types.js.map +0 -1
  260. package/dist/worker.d.ts +0 -2
  261. package/dist/worker.d.ts.map +0 -1
  262. package/dist/worker.js +0 -205
  263. package/dist/worker.js.map +0 -1
@@ -1,513 +0,0 @@
1
- import { ICONS } from '../icons';
2
- /**
3
- * Floating control bar component with page navigation, zoom, and settings.
4
- */
5
- export class FloatingBar {
6
- callbacks;
7
- elements = null;
8
- constructor(callbacks) {
9
- this.callbacks = callbacks;
10
- }
11
- /**
12
- * Create and return the floating bar element.
13
- */
14
- create(state) {
15
- const floatingBar = document.createElement('div');
16
- floatingBar.className = 'udoc-floating-bar';
17
- // Tool selector dropdown
18
- const toolDropdown = document.createElement('div');
19
- toolDropdown.className = 'udoc-tool-dropdown';
20
- const tools = [
21
- { id: 'select', icon: ICONS.toolSelect, label: 'Select', shortcut: 'V' },
22
- { id: 'hand', icon: ICONS.toolHand, label: 'Hand', shortcut: 'H' },
23
- ];
24
- const initialTool = tools.find(t => t.id === state.activeTool) || tools[0];
25
- const toolDropdownBtn = document.createElement('button');
26
- toolDropdownBtn.className = 'udoc-tool-dropdown-btn';
27
- toolDropdownBtn.innerHTML = `${initialTool.icon}<span class="udoc-tool-chevron">${ICONS.chevronDown}</span>`;
28
- toolDropdownBtn.title = `${initialTool.label} (${initialTool.shortcut})`;
29
- const toolMenu = document.createElement('div');
30
- toolMenu.className = 'udoc-tool-menu';
31
- const toolItems = new Map();
32
- tools.forEach(tool => {
33
- const item = document.createElement('div');
34
- item.className = 'udoc-tool-item';
35
- item.dataset.tool = tool.id;
36
- if (tool.id === state.activeTool) {
37
- item.classList.add('selected');
38
- }
39
- item.innerHTML = `${tool.icon}<span>${tool.label}</span><span class="udoc-tool-shortcut">${tool.shortcut}</span>`;
40
- toolMenu.appendChild(item);
41
- toolItems.set(tool.id, item);
42
- });
43
- toolDropdown.append(toolDropdownBtn, toolMenu);
44
- // Separator after tools
45
- const toolSep = document.createElement('div');
46
- toolSep.className = 'udoc-separator';
47
- // Page navigation group
48
- const pageGroup = document.createElement('div');
49
- pageGroup.className = 'udoc-floating-bar-group';
50
- const prevBtn = document.createElement('button');
51
- prevBtn.innerHTML = ICONS.chevronLeft;
52
- prevBtn.title = 'Previous page';
53
- prevBtn.disabled = true;
54
- const pageInput = document.createElement('input');
55
- pageInput.type = 'text';
56
- pageInput.className = 'udoc-page-input';
57
- pageInput.value = '1';
58
- pageInput.disabled = true;
59
- const pageInfo = document.createElement('span');
60
- pageInfo.className = 'udoc-page-info';
61
- pageInfo.textContent = '/';
62
- const pageCountEl = document.createElement('span');
63
- pageCountEl.className = 'udoc-page-info';
64
- pageCountEl.textContent = '1';
65
- const nextBtn = document.createElement('button');
66
- nextBtn.innerHTML = ICONS.chevronRight;
67
- nextBtn.title = 'Next page';
68
- nextBtn.disabled = true;
69
- pageGroup.append(prevBtn, pageInput, pageInfo, pageCountEl, nextBtn);
70
- // Separator
71
- const sep = document.createElement('div');
72
- sep.className = 'udoc-separator';
73
- // Zoom controls wrapper (hidden on very small screens)
74
- const zoomControls = document.createElement('div');
75
- zoomControls.className = 'udoc-zoom-controls';
76
- zoomControls.style.cssText = 'display:contents;';
77
- // Zoom group with dropdown
78
- const zoomGroup = document.createElement('div');
79
- zoomGroup.className = 'udoc-floating-bar-group';
80
- const zoomOutBtn = document.createElement('button');
81
- zoomOutBtn.innerHTML = ICONS.zoomOut;
82
- zoomOutBtn.title = 'Zoom out';
83
- zoomOutBtn.disabled = true;
84
- // Zoom dropdown with input
85
- const zoomDropdownContainer = document.createElement('div');
86
- zoomDropdownContainer.className = 'udoc-zoom-dropdown';
87
- const zoomInputWrapper = document.createElement('div');
88
- zoomInputWrapper.className = 'udoc-zoom-input-wrapper';
89
- const zoomInput = document.createElement('input');
90
- zoomInput.type = 'text';
91
- zoomInput.className = 'udoc-zoom-input';
92
- zoomInput.value = '100%';
93
- zoomInput.disabled = true;
94
- const zoomDropdownBtn = document.createElement('button');
95
- zoomDropdownBtn.className = 'udoc-zoom-dropdown-btn';
96
- zoomDropdownBtn.innerHTML = ICONS.chevronDown;
97
- zoomDropdownBtn.disabled = true;
98
- zoomInputWrapper.append(zoomInput, zoomDropdownBtn);
99
- const zoomMenu = document.createElement('div');
100
- zoomMenu.className = 'udoc-dropdown-menu';
101
- const zoomPresets = [
102
- { value: '50', label: '50%' },
103
- { value: '75', label: '75%' },
104
- { value: '100', label: '100%' },
105
- { value: '125', label: '125%' },
106
- { value: '150', label: '150%' },
107
- { value: '200', label: '200%' },
108
- ];
109
- const zoomModes = [
110
- { value: 'fit-page', label: 'Fit Page' },
111
- { value: 'fit-width', label: 'Fit Width' },
112
- { value: 'actual-size', label: 'Actual Size' },
113
- ];
114
- zoomPresets.forEach(preset => {
115
- const item = document.createElement('div');
116
- item.className = 'udoc-dropdown-item';
117
- item.dataset.zoomValue = preset.value;
118
- item.textContent = preset.label;
119
- zoomMenu.appendChild(item);
120
- });
121
- const divider = document.createElement('div');
122
- divider.className = 'udoc-dropdown-divider';
123
- zoomMenu.appendChild(divider);
124
- zoomModes.forEach(mode => {
125
- const item = document.createElement('div');
126
- item.className = 'udoc-dropdown-item';
127
- item.dataset.zoomMode = mode.value;
128
- item.textContent = mode.label;
129
- zoomMenu.appendChild(item);
130
- });
131
- zoomDropdownContainer.append(zoomInputWrapper, zoomMenu);
132
- const zoomInBtn = document.createElement('button');
133
- zoomInBtn.innerHTML = ICONS.zoomIn;
134
- zoomInBtn.title = 'Zoom in';
135
- zoomInBtn.disabled = true;
136
- zoomGroup.append(zoomOutBtn, zoomDropdownContainer, zoomInBtn);
137
- zoomControls.appendChild(zoomGroup);
138
- // Settings wrapper (hidden on mobile)
139
- const settingsSep = document.createElement('div');
140
- settingsSep.className = 'udoc-separator';
141
- const settingsWrapper = document.createElement('div');
142
- settingsWrapper.className = 'udoc-settings-wrapper';
143
- settingsWrapper.style.cssText = 'display:contents;';
144
- const settingsBtn = document.createElement('button');
145
- settingsBtn.className = 'udoc-settings-btn';
146
- settingsBtn.innerHTML = ICONS.settings;
147
- settingsBtn.title = 'View settings';
148
- settingsBtn.disabled = true;
149
- const settingsPopover = document.createElement('div');
150
- settingsPopover.className = 'udoc-settings-popover';
151
- // Display Mode section
152
- const displayModeOptions = this.createDisplaySection(settingsPopover, state.displayMode);
153
- // Layout Mode section
154
- const layoutModeOptions = this.createLayoutSection(settingsPopover, state.layoutMode);
155
- // Rotation section
156
- const rotationOptions = this.createRotationSection(settingsPopover, state.rotation);
157
- // Seamless section
158
- const seamlessOptions = this.createSeamlessSection(settingsPopover, state.seamless);
159
- // Settings wrapper contains separator + button + popover
160
- const settingsInner = document.createElement('div');
161
- settingsInner.style.cssText = 'position:relative;display:flex;align-items:center;';
162
- settingsInner.append(settingsBtn, settingsPopover);
163
- settingsWrapper.append(settingsSep, settingsInner);
164
- floatingBar.append(toolDropdown, toolSep, pageGroup, sep, zoomControls, settingsWrapper);
165
- this.elements = {
166
- floatingBar,
167
- toolDropdown,
168
- toolDropdownBtn,
169
- toolMenu,
170
- toolItems,
171
- prevBtn,
172
- nextBtn,
173
- pageInput,
174
- pageCountEl,
175
- zoomOutBtn,
176
- zoomInBtn,
177
- zoomInput,
178
- zoomDropdownBtn,
179
- zoomMenu,
180
- settingsBtn,
181
- settingsPopover,
182
- displayModeOptions,
183
- layoutModeOptions,
184
- rotationOptions,
185
- seamlessOptions,
186
- };
187
- this.setupEventListeners();
188
- return this.elements;
189
- }
190
- createDisplaySection(container, currentMode) {
191
- const section = document.createElement('div');
192
- section.className = 'udoc-settings-section';
193
- const label = document.createElement('div');
194
- label.className = 'udoc-settings-label';
195
- label.textContent = 'Display';
196
- const options = document.createElement('div');
197
- options.className = 'udoc-settings-options';
198
- const displayModes = [
199
- { value: 'single', icon: ICONS.displaySingle, title: 'Single page' },
200
- { value: 'scroll', icon: ICONS.displayScroll, title: 'Continuous scroll' },
201
- ];
202
- const optionElements = [];
203
- displayModes.forEach(mode => {
204
- const option = document.createElement('label');
205
- option.className = 'udoc-settings-option';
206
- option.dataset.displayMode = mode.value;
207
- option.innerHTML = mode.icon;
208
- option.title = mode.title;
209
- if (mode.value === currentMode) {
210
- option.classList.add('selected');
211
- }
212
- options.appendChild(option);
213
- optionElements.push(option);
214
- });
215
- section.append(label, options);
216
- container.appendChild(section);
217
- return optionElements;
218
- }
219
- createLayoutSection(container, currentMode) {
220
- const section = document.createElement('div');
221
- section.className = 'udoc-settings-section';
222
- const label = document.createElement('div');
223
- label.className = 'udoc-settings-label';
224
- label.textContent = 'Layout';
225
- const options = document.createElement('div');
226
- options.className = 'udoc-settings-options';
227
- const layoutModes = [
228
- { value: 'single', icon: ICONS.layout1up, title: '1-up' },
229
- { value: 'double', icon: ICONS.layout2up, title: '2-up' },
230
- { value: 'double-cover', icon: ICONS.layout2upCover, title: '2-up cover' },
231
- { value: 'grid', icon: ICONS.layoutGrid, title: 'Grid' },
232
- ];
233
- const optionElements = [];
234
- layoutModes.forEach(mode => {
235
- const option = document.createElement('label');
236
- option.className = 'udoc-settings-option';
237
- option.dataset.layoutMode = mode.value;
238
- option.innerHTML = mode.icon;
239
- option.title = mode.title;
240
- if (mode.value === currentMode) {
241
- option.classList.add('selected');
242
- }
243
- options.appendChild(option);
244
- optionElements.push(option);
245
- });
246
- section.append(label, options);
247
- container.appendChild(section);
248
- return optionElements;
249
- }
250
- createRotationSection(container, currentRotation) {
251
- const section = document.createElement('div');
252
- section.className = 'udoc-settings-section';
253
- const label = document.createElement('div');
254
- label.className = 'udoc-settings-label';
255
- label.textContent = 'Rotation';
256
- const options = document.createElement('div');
257
- options.className = 'udoc-settings-options';
258
- const rotations = [
259
- { value: 0, icon: ICONS.rotate0, title: '0°' },
260
- { value: 90, icon: ICONS.rotate90, title: '90°' },
261
- { value: 180, icon: ICONS.rotate180, title: '180°' },
262
- { value: 270, icon: ICONS.rotate270, title: '270°' },
263
- ];
264
- const optionElements = [];
265
- rotations.forEach(rot => {
266
- const option = document.createElement('label');
267
- option.className = 'udoc-settings-option';
268
- option.dataset.rotation = String(rot.value);
269
- option.innerHTML = rot.icon;
270
- option.title = rot.title;
271
- if (rot.value === currentRotation) {
272
- option.classList.add('selected');
273
- }
274
- options.appendChild(option);
275
- optionElements.push(option);
276
- });
277
- section.append(label, options);
278
- container.appendChild(section);
279
- return optionElements;
280
- }
281
- createSeamlessSection(container, currentSeamless) {
282
- const section = document.createElement('div');
283
- section.className = 'udoc-settings-section';
284
- const label = document.createElement('div');
285
- label.className = 'udoc-settings-label';
286
- label.textContent = 'Gaps';
287
- const options = document.createElement('div');
288
- options.className = 'udoc-settings-options';
289
- const seamlessModes = [
290
- { value: false, icon: ICONS.seamlessOff, title: 'Show gaps' },
291
- { value: true, icon: ICONS.seamlessOn, title: 'No gaps' },
292
- ];
293
- const optionElements = [];
294
- seamlessModes.forEach(mode => {
295
- const option = document.createElement('label');
296
- option.className = 'udoc-settings-option';
297
- option.dataset.seamless = String(mode.value);
298
- option.innerHTML = mode.icon;
299
- option.title = mode.title;
300
- if (mode.value === currentSeamless) {
301
- option.classList.add('selected');
302
- }
303
- options.appendChild(option);
304
- optionElements.push(option);
305
- });
306
- section.append(label, options);
307
- container.appendChild(section);
308
- return optionElements;
309
- }
310
- setupEventListeners() {
311
- if (!this.elements)
312
- return;
313
- const { toolDropdownBtn, toolMenu, toolItems, prevBtn, nextBtn, pageInput, zoomOutBtn, zoomInBtn, zoomInput, zoomDropdownBtn, zoomMenu, settingsBtn, settingsPopover, displayModeOptions, layoutModeOptions, rotationOptions, seamlessOptions, } = this.elements;
314
- // Tool dropdown
315
- toolDropdownBtn.addEventListener('click', (e) => {
316
- e.stopPropagation();
317
- this.closeAllDropdowns();
318
- toolMenu.classList.toggle('open');
319
- });
320
- toolMenu.addEventListener('click', (e) => {
321
- const target = e.target;
322
- const item = target.closest('.udoc-tool-item');
323
- if (!item)
324
- return;
325
- const tool = item.dataset.tool;
326
- if (tool) {
327
- this.callbacks.onToolChange(tool);
328
- }
329
- toolMenu.classList.remove('open');
330
- });
331
- // Page navigation
332
- prevBtn.addEventListener('click', () => this.callbacks.onPrevPage());
333
- nextBtn.addEventListener('click', () => this.callbacks.onNextPage());
334
- pageInput.addEventListener('keydown', (e) => {
335
- if (e.key === 'Enter') {
336
- const value = parseInt(pageInput.value, 10);
337
- if (!isNaN(value)) {
338
- this.callbacks.onPageInputChange(value - 1); // Convert to 0-indexed
339
- }
340
- pageInput.blur();
341
- }
342
- });
343
- // Zoom controls
344
- zoomOutBtn.addEventListener('click', () => this.callbacks.onZoomOut());
345
- zoomInBtn.addEventListener('click', () => this.callbacks.onZoomIn());
346
- zoomInput.addEventListener('keydown', (e) => {
347
- if (e.key === 'Enter') {
348
- const value = parseInt(zoomInput.value, 10);
349
- if (!isNaN(value) && value > 0) {
350
- this.callbacks.onZoomChange(value / 100);
351
- }
352
- zoomInput.blur();
353
- }
354
- });
355
- zoomDropdownBtn.addEventListener('click', (e) => {
356
- e.stopPropagation();
357
- this.closeAllDropdowns();
358
- zoomMenu.classList.toggle('open');
359
- });
360
- zoomMenu.addEventListener('click', (e) => {
361
- const target = e.target;
362
- const item = target.closest('.udoc-dropdown-item');
363
- if (!item)
364
- return;
365
- if (item.dataset.zoomValue) {
366
- this.callbacks.onZoomChange(parseInt(item.dataset.zoomValue, 10) / 100);
367
- }
368
- else if (item.dataset.zoomMode) {
369
- this.callbacks.onZoomModeChange(item.dataset.zoomMode);
370
- }
371
- zoomMenu.classList.remove('open');
372
- });
373
- // Settings popover
374
- settingsBtn.addEventListener('click', (e) => {
375
- e.stopPropagation();
376
- this.closeAllDropdowns();
377
- settingsPopover.classList.toggle('open');
378
- });
379
- // Display mode options
380
- displayModeOptions.forEach(option => {
381
- option.addEventListener('click', () => {
382
- const mode = option.dataset.displayMode;
383
- if (mode) {
384
- this.callbacks.onDisplayModeChange(mode);
385
- }
386
- });
387
- });
388
- // Layout mode options
389
- layoutModeOptions.forEach(option => {
390
- option.addEventListener('click', () => {
391
- const mode = option.dataset.layoutMode;
392
- if (mode) {
393
- this.callbacks.onLayoutModeChange(mode);
394
- }
395
- });
396
- });
397
- // Rotation options
398
- rotationOptions.forEach(option => {
399
- option.addEventListener('click', () => {
400
- const rotation = parseInt(option.dataset.rotation || '0', 10);
401
- this.callbacks.onRotationChange(rotation);
402
- });
403
- });
404
- // Seamless options
405
- seamlessOptions.forEach(option => {
406
- option.addEventListener('click', () => {
407
- const seamless = option.dataset.seamless === 'true';
408
- this.callbacks.onSeamlessChange(seamless);
409
- });
410
- });
411
- // Close dropdowns when clicking outside
412
- document.addEventListener('click', () => this.closeAllDropdowns());
413
- }
414
- /**
415
- * Close all open dropdowns and popovers.
416
- */
417
- closeAllDropdowns() {
418
- this.elements?.toolMenu.classList.remove('open');
419
- this.elements?.zoomMenu.classList.remove('open');
420
- this.elements?.settingsPopover.classList.remove('open');
421
- }
422
- /**
423
- * Enable or disable all controls.
424
- */
425
- setEnabled(enabled) {
426
- if (!this.elements)
427
- return;
428
- this.elements.prevBtn.disabled = !enabled;
429
- this.elements.nextBtn.disabled = !enabled;
430
- this.elements.pageInput.disabled = !enabled;
431
- this.elements.zoomOutBtn.disabled = !enabled;
432
- this.elements.zoomInBtn.disabled = !enabled;
433
- this.elements.zoomInput.disabled = !enabled;
434
- this.elements.zoomDropdownBtn.disabled = !enabled;
435
- this.elements.settingsBtn.disabled = !enabled;
436
- }
437
- /**
438
- * Update page display.
439
- */
440
- setPage(page, pageCount) {
441
- if (!this.elements)
442
- return;
443
- this.elements.pageInput.value = String(page + 1);
444
- this.elements.pageCountEl.textContent = String(pageCount);
445
- }
446
- /**
447
- * Update zoom display.
448
- */
449
- setZoom(zoom) {
450
- if (!this.elements)
451
- return;
452
- this.elements.zoomInput.value = `${Math.round(zoom * 100)}%`;
453
- }
454
- /**
455
- * Update active tool display.
456
- */
457
- setActiveTool(tool) {
458
- if (!this.elements)
459
- return;
460
- const tools = [
461
- { id: 'select', icon: ICONS.toolSelect, label: 'Select', shortcut: 'V' },
462
- { id: 'hand', icon: ICONS.toolHand, label: 'Hand', shortcut: 'H' },
463
- ];
464
- const toolConfig = tools.find(t => t.id === tool) || tools[0];
465
- this.elements.toolDropdownBtn.innerHTML = `${toolConfig.icon}<span class="udoc-tool-chevron">${ICONS.chevronDown}</span>`;
466
- this.elements.toolDropdownBtn.title = `${toolConfig.label} (${toolConfig.shortcut})`;
467
- this.elements.toolItems.forEach((item, id) => {
468
- item.classList.toggle('selected', id === tool);
469
- });
470
- }
471
- /**
472
- * Update display mode selection.
473
- */
474
- setDisplayMode(mode) {
475
- this.elements?.displayModeOptions.forEach(option => {
476
- option.classList.toggle('selected', option.dataset.displayMode === mode);
477
- });
478
- }
479
- /**
480
- * Update layout mode selection.
481
- */
482
- setLayoutMode(mode) {
483
- this.elements?.layoutModeOptions.forEach(option => {
484
- option.classList.toggle('selected', option.dataset.layoutMode === mode);
485
- });
486
- }
487
- /**
488
- * Update rotation selection.
489
- */
490
- setRotation(rotation) {
491
- this.elements?.rotationOptions.forEach(option => {
492
- option.classList.toggle('selected', option.dataset.rotation === String(rotation));
493
- });
494
- }
495
- /**
496
- * Update seamless selection.
497
- */
498
- setSeamless(seamless) {
499
- this.elements?.seamlessOptions.forEach(option => {
500
- option.classList.toggle('selected', option.dataset.seamless === String(seamless));
501
- });
502
- }
503
- /**
504
- * Update navigation button states.
505
- */
506
- setNavigationState(canGoPrev, canGoNext) {
507
- if (!this.elements)
508
- return;
509
- this.elements.prevBtn.disabled = !canGoPrev;
510
- this.elements.nextBtn.disabled = !canGoNext;
511
- }
512
- }
513
- //# sourceMappingURL=FloatingBar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FloatingBar.js","sourceRoot":"","sources":["../../src/components/FloatingBar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAiDjC;;GAEG;AACH,MAAM,OAAO,WAAW;IACZ,SAAS,CAAuB;IAChC,QAAQ,GAA+B,IAAI,CAAC;IAEpD,YAAY,SAA+B;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAuB;QAC1B,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,WAAW,CAAC,SAAS,GAAG,mBAAmB,CAAC;QAE5C,yBAAyB;QACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnD,YAAY,CAAC,SAAS,GAAG,oBAAoB,CAAC;QAE9C,MAAM,KAAK,GAAuE;YAC9E,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE;YACxE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE;SACrE,CAAC;QAEF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAE3E,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzD,eAAe,CAAC,SAAS,GAAG,wBAAwB,CAAC;QACrD,eAAe,CAAC,SAAS,GAAG,GAAG,WAAW,CAAC,IAAI,mCAAmC,KAAK,CAAC,WAAW,SAAS,CAAC;QAC7G,eAAe,CAAC,KAAK,GAAG,GAAG,WAAW,CAAC,KAAK,KAAK,WAAW,CAAC,QAAQ,GAAG,CAAC;QAEzE,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,QAAQ,CAAC,SAAS,GAAG,gBAAgB,CAAC;QAEtC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC/C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,KAAK,2CAA2C,IAAI,CAAC,QAAQ,SAAS,CAAC;YAClH,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAE/C,wBAAwB;QACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,gBAAgB,CAAC;QAErC,wBAAwB;QACxB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,SAAS,CAAC,SAAS,GAAG,yBAAyB,CAAC;QAEhD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC;QACtC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC;QAChC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QAExB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;QACxB,SAAS,CAAC,SAAS,GAAG,iBAAiB,CAAC;QACxC,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC;QACtB,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAChD,QAAQ,CAAC,SAAS,GAAG,gBAAgB,CAAC;QACtC,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC;QAE3B,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACnD,WAAW,CAAC,SAAS,GAAG,gBAAgB,CAAC;QACzC,WAAW,CAAC,WAAW,GAAG,GAAG,CAAC;QAE9B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC;QACvC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;QAC5B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QAExB,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAErE,YAAY;QACZ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,GAAG,CAAC,SAAS,GAAG,gBAAgB,CAAC;QAEjC,uDAAuD;QACvD,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnD,YAAY,CAAC,SAAS,GAAG,oBAAoB,CAAC;QAC9C,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,mBAAmB,CAAC;QAEjD,2BAA2B;QAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,SAAS,CAAC,SAAS,GAAG,yBAAyB,CAAC;QAEhD,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpD,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;QACrC,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC;QAC9B,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE3B,2BAA2B;QAC3B,MAAM,qBAAqB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5D,qBAAqB,CAAC,SAAS,GAAG,oBAAoB,CAAC;QAEvD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvD,gBAAgB,CAAC,SAAS,GAAG,yBAAyB,CAAC;QAEvD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;QACxB,SAAS,CAAC,SAAS,GAAG,iBAAiB,CAAC;QACxC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC;QACzB,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE1B,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzD,eAAe,CAAC,SAAS,GAAG,wBAAwB,CAAC;QACrD,eAAe,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC;QAC9C,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC;QAEhC,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,QAAQ,CAAC,SAAS,GAAG,oBAAoB,CAAC;QAE1C,MAAM,WAAW,GAAG;YAChB,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;YAC7B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;YAC7B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;YAC/B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;YAC/B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;YAC/B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;SAClC,CAAC;QAEF,MAAM,SAAS,GAAG;YACd,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;YACxC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;YAC1C,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;SACjD,CAAC;QAEF,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YAChC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,uBAAuB,CAAC;QAC5C,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE9B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;YAC9B,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,qBAAqB,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACnD,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QACnC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;QAC5B,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE1B,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,qBAAqB,EAAE,SAAS,CAAC,CAAC;QAC/D,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEpC,sCAAsC;QACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,WAAW,CAAC,SAAS,GAAG,gBAAgB,CAAC;QAEzC,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtD,eAAe,CAAC,SAAS,GAAG,uBAAuB,CAAC;QACpD,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG,mBAAmB,CAAC;QAEpD,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrD,WAAW,CAAC,SAAS,GAAG,mBAAmB,CAAC;QAC5C,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;QACvC,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC;QACpC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE5B,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtD,eAAe,CAAC,SAAS,GAAG,uBAAuB,CAAC;QAEpD,uBAAuB;QACvB,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAEzF,sBAAsB;QACtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAEtF,mBAAmB;QACnB,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEpF,mBAAmB;QACnB,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEpF,yDAAyD;QACzD,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpD,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,oDAAoD,CAAC;QACnF,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACnD,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAEnD,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;QAEzF,IAAI,CAAC,QAAQ,GAAG;YACZ,WAAW;YACX,YAAY;YACZ,eAAe;YACf,QAAQ;YACR,SAAS;YACT,OAAO;YACP,OAAO;YACP,SAAS;YACT,WAAW;YACX,UAAU;YACV,SAAS;YACT,SAAS;YACT,eAAe;YACf,QAAQ;YACR,WAAW;YACX,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjB,eAAe;YACf,eAAe;SAClB,CAAC;QAEF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEO,oBAAoB,CAAC,SAAsB,EAAE,WAAwB;QACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,uBAAuB,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,CAAC,SAAS,GAAG,qBAAqB,CAAC;QACxC,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;QAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,uBAAuB,CAAC;QAE5C,MAAM,YAAY,GAAG;YACjB,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;YACpE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,mBAAmB,EAAE;SAC7E,CAAC;QAEF,MAAM,cAAc,GAAkB,EAAE,CAAC;QACzC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,GAAG,sBAAsB,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;YACxC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;YAC7B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC7B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/B,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEO,mBAAmB,CAAC,SAAsB,EAAE,WAAuB;QACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,uBAAuB,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,CAAC,SAAS,GAAG,qBAAqB,CAAC;QACxC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,uBAAuB,CAAC;QAE5C,MAAM,WAAW,GAAG;YAChB,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;YACzD,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;YACzD,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE;YAC1E,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;SAC3D,CAAC;QAEF,MAAM,cAAc,GAAkB,EAAE,CAAC;QACzC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,GAAG,sBAAsB,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YACvC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;YAC7B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC7B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/B,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEO,qBAAqB,CAAC,SAAsB,EAAE,eAAyB;QAC3E,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,uBAAuB,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,CAAC,SAAS,GAAG,qBAAqB,CAAC;QACxC,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC;QAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,uBAAuB,CAAC;QAE5C,MAAM,SAAS,GAAG;YACd,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9C,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;YACjD,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;YACpD,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;SACvD,CAAC;QAEF,MAAM,cAAc,GAAkB,EAAE,CAAC;QACzC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,GAAG,sBAAsB,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;YAC5B,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YACzB,IAAI,GAAG,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;gBAChC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/B,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEO,qBAAqB,CAAC,SAAsB,EAAE,eAAwB;QAC1E,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,uBAAuB,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,CAAC,SAAS,GAAG,qBAAqB,CAAC;QACxC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,uBAAuB,CAAC;QAE5C,MAAM,aAAa,GAAG;YAClB,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;YAC7D,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE;SAC5D,CAAC;QAEF,MAAM,cAAc,GAAkB,EAAE,CAAC;QACzC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,GAAG,sBAAsB,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;YAC7B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;gBACjC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/B,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEO,mBAAmB;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,MAAM,EACF,eAAe,EAAE,QAAQ,EAAE,SAAS,EACpC,OAAO,EAAE,OAAO,EAAE,SAAS,EAC3B,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAC3D,WAAW,EAAE,eAAe,EAC5B,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,GAC1E,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElB,gBAAgB;QAChB,eAAe,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YAC5C,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;YACvC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAgB,CAAC;YAC9D,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAY,CAAC;YACvC,IAAI,IAAI,EAAE,CAAC;gBACP,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YACD,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,kBAAkB;QAClB,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;QAErE,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB;gBACxE,CAAC;gBACD,SAAS,CAAC,IAAI,EAAE,CAAC;YACrB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;QACvE,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAErE,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBAC7B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;gBAC7C,CAAC;gBACD,SAAS,CAAC,IAAI,EAAE,CAAC;YACrB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,eAAe,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YAC5C,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;YACvC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAgB,CAAC;YAClE,IAAI,CAAC,IAAI;gBAAE,OAAO;YAElB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;YAC5E,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAoD,CAAC,CAAC;YACvG,CAAC;YACD,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACxC,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,uBAAuB;QACvB,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAChC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,WAA0B,CAAC;gBACvD,IAAI,IAAI,EAAE,CAAC;oBACP,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC7C,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC/B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,UAAwB,CAAC;gBACrD,IAAI,IAAI,EAAE,CAAC;oBACP,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,EAAE,EAAE,CAAa,CAAC;gBAC1E,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC;gBACpD,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,wCAAwC;QACxC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,iBAAiB;QACb,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAgB;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAY,EAAE,SAAiB;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAU;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,MAAM,KAAK,GAAG;YACV,EAAE,EAAE,EAAE,QAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE;YAChF,EAAE,EAAE,EAAE,MAAc,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE;SAC7E,CAAC;QAEF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,GAAG,GAAG,UAAU,CAAC,IAAI,mCAAmC,KAAK,CAAC,WAAW,SAAS,CAAC;QAC1H,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,GAAG,GAAG,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,QAAQ,GAAG,CAAC;QAErF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;YACzC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,IAAiB;QAC5B,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC/C,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAgB;QAC1B,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC9C,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAAkB;QAC1B,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5C,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAAiB;QACzB,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5C,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,SAAkB,EAAE,SAAkB;QACrD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC;IAChD,CAAC;CACJ"}
@@ -1,46 +0,0 @@
1
- export interface HeaderCallbacks {
2
- onLeftPanelToggle: () => void;
3
- onCommentsClick: () => void;
4
- onSearchClick: () => void;
5
- onFullscreenToggle: () => void;
6
- }
7
- export interface HeaderOptions {
8
- showLeftPanel: boolean;
9
- showRightPanel: boolean;
10
- }
11
- export interface HeaderElements {
12
- header: HTMLDivElement;
13
- leftPanelToggleBtn: HTMLButtonElement | null;
14
- searchBtn: HTMLButtonElement | null;
15
- commentsBtn: HTMLButtonElement | null;
16
- fullscreenBtn: HTMLButtonElement;
17
- }
18
- /**
19
- * Header bar component with panel toggles and action buttons.
20
- */
21
- export declare class Header {
22
- private callbacks;
23
- private elements;
24
- constructor(callbacks: HeaderCallbacks);
25
- /**
26
- * Create and return the header element.
27
- */
28
- create(options: HeaderOptions): HeaderElements;
29
- /**
30
- * Update the left panel toggle button's active state.
31
- */
32
- setLeftPanelActive(active: boolean): void;
33
- /**
34
- * Update the comments button's active state.
35
- */
36
- setCommentsActive(active: boolean): void;
37
- /**
38
- * Update the search button's active state.
39
- */
40
- setSearchActive(active: boolean): void;
41
- /**
42
- * Update the fullscreen button icon based on fullscreen state.
43
- */
44
- setFullscreen(isFullscreen: boolean): void;
45
- }
46
- //# sourceMappingURL=Header.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../src/components/Header.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,cAAc,CAAC;IACvB,kBAAkB,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7C,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtC,aAAa,EAAE,iBAAiB,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,MAAM;IACf,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAA+B;gBAEnC,SAAS,EAAE,eAAe;IAItC;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc;IA6D9C;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIzC;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIxC;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAItC;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI;CAM7C"}