@docmentis/udoc-viewer 0.3.0 → 0.3.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.
- package/dist/package.json +1 -1
- package/dist/src/ui/viewer/components/Viewport.d.ts.map +1 -1
- package/dist/src/ui/viewer/components/Viewport.js +322 -86
- package/dist/src/ui/viewer/components/Viewport.js.map +1 -1
- package/dist/src/ui/viewer/styles-inline.d.ts +1 -1
- package/dist/src/ui/viewer/styles-inline.d.ts.map +1 -1
- package/dist/src/ui/viewer/styles-inline.js +2 -27
- package/dist/src/ui/viewer/styles-inline.js.map +1 -1
- package/dist/src/wasm/udoc_bg.wasm +0 -0
- package/dist/src/worker/WorkerClient.d.ts +7 -0
- package/dist/src/worker/WorkerClient.d.ts.map +1 -1
- package/dist/src/worker/WorkerClient.js +37 -0
- package/dist/src/worker/WorkerClient.js.map +1 -1
- package/package.json +1 -1
package/dist/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/Viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAEH,KAAK,WAAW,EAOnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/Viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAEH,KAAK,WAAW,EAOnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAmZ7D,wBAAgB,cAAc;;oBAoKH,WAAW,SAAS,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,YAAY,KAAG,IAAI;mBAwsB1E,IAAI;EAsB3B"}
|
|
@@ -112,7 +112,21 @@ function getScrollbarSize() {
|
|
|
112
112
|
cachedScrollbarSize = { width, height };
|
|
113
113
|
return cachedScrollbarSize;
|
|
114
114
|
}
|
|
115
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Computes the zoom scale for fit modes.
|
|
117
|
+
*
|
|
118
|
+
* For fit-spread-width mode, we predict whether a vertical scrollbar will be needed
|
|
119
|
+
* and adjust the available width accordingly. This prevents the feedback loop where:
|
|
120
|
+
* 1. Scale is calculated based on viewport width
|
|
121
|
+
* 2. Content is taller than viewport, scrollbar appears
|
|
122
|
+
* 3. Scrollbar reduces viewport width, causing recalculation
|
|
123
|
+
*
|
|
124
|
+
* @param slice - Viewport state slice
|
|
125
|
+
* @param metrics - Current viewport metrics
|
|
126
|
+
* @param spreads - Array of spreads to layout
|
|
127
|
+
* @param scrollbarVisible - Whether vertical scrollbar is currently visible
|
|
128
|
+
*/
|
|
129
|
+
function computeScale(slice, metrics, spreads, scrollbarVisible) {
|
|
116
130
|
if (slice.zoomMode === "custom")
|
|
117
131
|
return slice.zoom;
|
|
118
132
|
if (metrics.innerWidth <= 0 || metrics.innerHeight <= 0)
|
|
@@ -132,7 +146,13 @@ function computeScale(slice, metrics, spreads) {
|
|
|
132
146
|
// Round to the nearest device pixel to avoid scrollbar feedback loops.
|
|
133
147
|
const snappedSpacing = snapToDevice(slice.spreadSpacing);
|
|
134
148
|
const snappedViewportHeight = snapToDevice(metrics.innerHeight);
|
|
135
|
-
const
|
|
149
|
+
const scrollbar = getScrollbarSize();
|
|
150
|
+
// Calculate the "base" viewport width (without scrollbar).
|
|
151
|
+
// If scrollbar is currently visible, metrics.innerWidth already excludes it,
|
|
152
|
+
// so we add it back to get the full available width.
|
|
153
|
+
const baseViewportWidth = scrollbarVisible
|
|
154
|
+
? snapToDevice(metrics.innerWidth + scrollbar.width)
|
|
155
|
+
: snapToDevice(metrics.innerWidth);
|
|
136
156
|
const verticalSpacing = snappedSpacing * 2;
|
|
137
157
|
// Add 1 pixel buffer to compensate for device pixel rounding in layout calculations.
|
|
138
158
|
// Without this, the spread may be slightly smaller than the viewport, allowing
|
|
@@ -140,22 +160,51 @@ function computeScale(slice, metrics, spreads) {
|
|
|
140
160
|
// The same buffer is used in spread mode for consistency when switching modes.
|
|
141
161
|
// Scrollbar overflow in spread mode is handled by applySingleLayout using viewport height.
|
|
142
162
|
const targetHeight = Math.max(0, snappedViewportHeight - verticalSpacing + 1);
|
|
143
|
-
const widthScale = snappedViewportWidth / maxWidth;
|
|
144
|
-
const heightScale = targetHeight / maxHeight;
|
|
145
163
|
switch (slice.zoomMode) {
|
|
146
|
-
case "fit-spread-width":
|
|
147
|
-
|
|
164
|
+
case "fit-spread-width": {
|
|
165
|
+
// Calculate scale assuming full viewport width (no scrollbar)
|
|
166
|
+
const fullWidthScale = baseViewportWidth / maxWidth;
|
|
167
|
+
// Predict if vertical scrollbar will be needed at this scale.
|
|
168
|
+
// For continuous mode: check if total content height exceeds viewport.
|
|
169
|
+
// For spread mode: check if tallest spread + spacing exceeds viewport.
|
|
170
|
+
let needsScrollbar;
|
|
171
|
+
if (slice.scrollMode === "continuous") {
|
|
172
|
+
// In continuous mode, calculate total content height
|
|
173
|
+
// Total height = sum of all spread heights + spacing between spreads
|
|
174
|
+
let totalHeight = 0;
|
|
175
|
+
for (const spread of spreads) {
|
|
176
|
+
const dims = getSpreadDimensions(spread, slice.pageInfos, fullWidthScale, slice.pageSpacing, slice.dpi, slice.pageRotation);
|
|
177
|
+
totalHeight += dims.height;
|
|
178
|
+
}
|
|
179
|
+
totalHeight += snappedSpacing * (spreads.length + 1); // spacing before first, between, and after last
|
|
180
|
+
needsScrollbar = totalHeight > snappedViewportHeight;
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
// In spread mode, check if the tallest spread + spacing exceeds viewport
|
|
184
|
+
const scaledMaxHeight = maxHeight * fullWidthScale;
|
|
185
|
+
needsScrollbar = scaledMaxHeight + verticalSpacing > snappedViewportHeight;
|
|
186
|
+
}
|
|
187
|
+
if (needsScrollbar && scrollbar.width > 0) {
|
|
188
|
+
// Scrollbar will be needed, calculate scale with reduced viewport width
|
|
189
|
+
const adjustedWidth = baseViewportWidth - scrollbar.width;
|
|
190
|
+
return adjustedWidth / maxWidth;
|
|
191
|
+
}
|
|
192
|
+
// No scrollbar needed, use full width
|
|
193
|
+
return fullWidthScale;
|
|
194
|
+
}
|
|
148
195
|
case "fit-spread-height":
|
|
149
|
-
|
|
196
|
+
// Content fits height by design, no vertical scrollbar needed
|
|
197
|
+
return targetHeight / maxHeight;
|
|
150
198
|
case "fit-spread":
|
|
151
|
-
|
|
199
|
+
// Content fits both dimensions by design, no scrollbar needed
|
|
200
|
+
return Math.min(baseViewportWidth / maxWidth, targetHeight / maxHeight);
|
|
152
201
|
default:
|
|
153
202
|
return slice.zoom;
|
|
154
203
|
}
|
|
155
204
|
}
|
|
156
|
-
function buildLayout(slice, metrics) {
|
|
205
|
+
function buildLayout(slice, metrics, scrollbarVisible) {
|
|
157
206
|
const spreads = calculateSpreads(slice.pageCount, slice.layoutMode);
|
|
158
|
-
const scale = computeScale(slice, metrics, spreads);
|
|
207
|
+
const scale = computeScale(slice, metrics, spreads, scrollbarVisible);
|
|
159
208
|
const layout = calculateSpreadLayouts(spreads, slice.pageInfos, scale, slice.pageSpacing, slice.spreadSpacing, slice.dpi, slice.pageRotation);
|
|
160
209
|
return {
|
|
161
210
|
spreads,
|
|
@@ -165,12 +214,13 @@ function buildLayout(slice, metrics) {
|
|
|
165
214
|
scale
|
|
166
215
|
};
|
|
167
216
|
}
|
|
168
|
-
function computeViewportUpdate(prevSlice, nextSlice, prevMetrics, nextMetrics
|
|
217
|
+
function computeViewportUpdate(prevSlice, nextSlice, prevMetrics, nextMetrics) {
|
|
169
218
|
const metricsChanged = !prevMetrics || !metricsEqual(prevMetrics, nextMetrics);
|
|
170
219
|
const layoutChanged = !prevSlice ||
|
|
171
220
|
nextSlice.docId !== prevSlice.docId ||
|
|
172
221
|
nextSlice.pageCount !== prevSlice.pageCount ||
|
|
173
222
|
nextSlice.pageInfos !== prevSlice.pageInfos ||
|
|
223
|
+
nextSlice.scrollMode !== prevSlice.scrollMode ||
|
|
174
224
|
nextSlice.layoutMode !== prevSlice.layoutMode ||
|
|
175
225
|
nextSlice.zoomMode !== prevSlice.zoomMode ||
|
|
176
226
|
nextSlice.zoom !== prevSlice.zoom ||
|
|
@@ -179,32 +229,23 @@ function computeViewportUpdate(prevSlice, nextSlice, prevMetrics, nextMetrics, l
|
|
|
179
229
|
nextSlice.pageSpacing !== prevSlice.pageSpacing ||
|
|
180
230
|
nextSlice.spreadSpacing !== prevSlice.spreadSpacing ||
|
|
181
231
|
metricsChanged;
|
|
182
|
-
const modeChanged = !prevSlice || nextSlice.scrollMode !== prevSlice.scrollMode;
|
|
183
232
|
const zoomModeChanged = !prevSlice || nextSlice.zoomMode !== prevSlice.zoomMode;
|
|
184
|
-
const fitZoomChanged = nextSlice.zoomMode !== "custom" && (!prevSlice || nextSlice.zoom !== prevSlice.zoom);
|
|
185
233
|
const spreadsChanged = !prevSlice ||
|
|
186
234
|
nextSlice.docId !== prevSlice.docId ||
|
|
187
235
|
nextSlice.pageCount !== prevSlice.pageCount ||
|
|
188
236
|
nextSlice.pageInfos !== prevSlice.pageInfos ||
|
|
189
237
|
nextSlice.layoutMode !== prevSlice.layoutMode;
|
|
190
238
|
const shouldClearSpreads = layoutChanged && spreadsChanged;
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const shouldCenterOnModeChange = modeChanged && lastScrollMode !== null && lastScrollMode !== "continuous";
|
|
197
|
-
const shouldScrollToPage = spreadsChanged || zoomModeChanged || fitZoomChanged;
|
|
198
|
-
const shouldResetSingleScroll = (modeChanged && lastScrollMode === "continuous") ||
|
|
199
|
-
spreadsChanged ||
|
|
200
|
-
(layoutChanged && nextSlice.zoomMode !== "custom");
|
|
239
|
+
// Scroll to page on document change or zoom mode change (explicit user actions)
|
|
240
|
+
const shouldScrollToPage = spreadsChanged || zoomModeChanged;
|
|
241
|
+
// Restore tracked viewport position when layout changes but document structure is the same
|
|
242
|
+
// This maintains scroll position across mode switches, zoom changes, and viewport resizes
|
|
243
|
+
const shouldRestorePosition = layoutChanged && !spreadsChanged && !zoomModeChanged;
|
|
201
244
|
return {
|
|
202
245
|
layoutChanged,
|
|
203
246
|
shouldClearSpreads,
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
shouldScrollToPage,
|
|
207
|
-
shouldResetSingleScroll
|
|
247
|
+
shouldRestorePosition,
|
|
248
|
+
shouldScrollToPage
|
|
208
249
|
};
|
|
209
250
|
}
|
|
210
251
|
export function createViewport() {
|
|
@@ -216,13 +257,118 @@ export function createViewport() {
|
|
|
216
257
|
const container = document.createElement("div");
|
|
217
258
|
container.className = "udoc-viewport__container";
|
|
218
259
|
scrollArea.appendChild(container);
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
260
|
+
// Watermark with tamper protection - random class name on each instantiation
|
|
261
|
+
const wmClass = "_" + Math.random().toString(36).slice(2, 10) + Math.random().toString(36).slice(2, 10);
|
|
262
|
+
const wmHref = "https://docmentis.com";
|
|
263
|
+
const wmText = "Powered by docMentis";
|
|
264
|
+
const wmAttrs = { target: "_blank", rel: "noopener" };
|
|
265
|
+
// Inject dynamic styles for the random class name
|
|
266
|
+
const wmStyle = document.createElement("style");
|
|
267
|
+
wmStyle.textContent = `
|
|
268
|
+
.${wmClass} {
|
|
269
|
+
position: absolute;
|
|
270
|
+
right: 18px;
|
|
271
|
+
bottom: 4px;
|
|
272
|
+
padding: 2px 6px;
|
|
273
|
+
font-size: 12px;
|
|
274
|
+
font-weight: 500;
|
|
275
|
+
color: rgba(0, 0, 0, 0.3);
|
|
276
|
+
text-decoration: none;
|
|
277
|
+
text-shadow: 0 1px 2px rgba(255, 255, 255, 0.5);
|
|
278
|
+
z-index: 10;
|
|
279
|
+
transition: color 0.15s ease;
|
|
280
|
+
}
|
|
281
|
+
.${wmClass}:hover {
|
|
282
|
+
color: rgba(0, 0, 0, 0.6);
|
|
283
|
+
}
|
|
284
|
+
@media (max-width: 768px) {
|
|
285
|
+
.${wmClass} {
|
|
286
|
+
bottom: 48px;
|
|
287
|
+
right: 10px;
|
|
288
|
+
font-size: 11px;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
`;
|
|
292
|
+
el.appendChild(wmStyle);
|
|
293
|
+
function createWatermark() {
|
|
294
|
+
const wm = document.createElement("a");
|
|
295
|
+
wm.className = wmClass;
|
|
296
|
+
wm.href = wmHref;
|
|
297
|
+
wm.target = wmAttrs.target;
|
|
298
|
+
wm.rel = wmAttrs.rel;
|
|
299
|
+
wm.textContent = wmText;
|
|
300
|
+
return wm;
|
|
301
|
+
}
|
|
302
|
+
let watermark = createWatermark();
|
|
225
303
|
el.appendChild(watermark);
|
|
304
|
+
// Protect watermark against removal and modification
|
|
305
|
+
const wmObserver = new MutationObserver((mutations) => {
|
|
306
|
+
let needsRestore = false;
|
|
307
|
+
// Check if watermark was removed from DOM
|
|
308
|
+
if (!el.contains(watermark)) {
|
|
309
|
+
needsRestore = true;
|
|
310
|
+
}
|
|
311
|
+
// Check if style element was removed
|
|
312
|
+
if (!el.contains(wmStyle)) {
|
|
313
|
+
el.appendChild(wmStyle);
|
|
314
|
+
}
|
|
315
|
+
// Check for attribute tampering on the watermark itself
|
|
316
|
+
for (const mutation of mutations) {
|
|
317
|
+
if (mutation.target === watermark) {
|
|
318
|
+
if (mutation.type === "attributes") {
|
|
319
|
+
needsRestore = true;
|
|
320
|
+
}
|
|
321
|
+
else if (mutation.type === "characterData" || mutation.type === "childList") {
|
|
322
|
+
needsRestore = true;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
// Check if watermark's text content was changed
|
|
326
|
+
if (mutation.target.parentNode === watermark && mutation.type === "characterData") {
|
|
327
|
+
needsRestore = true;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
if (needsRestore) {
|
|
331
|
+
// Remove old watermark if still in DOM but corrupted
|
|
332
|
+
if (el.contains(watermark)) {
|
|
333
|
+
watermark.remove();
|
|
334
|
+
}
|
|
335
|
+
// Create fresh watermark
|
|
336
|
+
watermark = createWatermark();
|
|
337
|
+
el.appendChild(watermark);
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
// Observe the parent for child removal and the watermark for attribute/content changes
|
|
341
|
+
wmObserver.observe(el, { childList: true, subtree: false });
|
|
342
|
+
wmObserver.observe(watermark, {
|
|
343
|
+
attributes: true,
|
|
344
|
+
childList: true,
|
|
345
|
+
characterData: true,
|
|
346
|
+
subtree: true
|
|
347
|
+
});
|
|
348
|
+
// Periodic integrity check (catches CSS-based hiding)
|
|
349
|
+
const wmIntegrityCheck = setInterval(() => {
|
|
350
|
+
// Restore style element if removed
|
|
351
|
+
if (!el.contains(wmStyle)) {
|
|
352
|
+
el.appendChild(wmStyle);
|
|
353
|
+
}
|
|
354
|
+
// Restore watermark if removed
|
|
355
|
+
if (!el.contains(watermark)) {
|
|
356
|
+
watermark = createWatermark();
|
|
357
|
+
el.appendChild(watermark);
|
|
358
|
+
wmObserver.observe(watermark, {
|
|
359
|
+
attributes: true,
|
|
360
|
+
childList: true,
|
|
361
|
+
characterData: true,
|
|
362
|
+
subtree: true
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
// Reset any inline style tampering
|
|
366
|
+
watermark.style.cssText = "";
|
|
367
|
+
watermark.removeAttribute("hidden");
|
|
368
|
+
if (watermark.className !== wmClass) {
|
|
369
|
+
watermark.className = wmClass;
|
|
370
|
+
}
|
|
371
|
+
}, 1000);
|
|
226
372
|
const floatingToolbar = createFloatingToolbar();
|
|
227
373
|
let workerClient = null;
|
|
228
374
|
let storeRef = null;
|
|
@@ -238,13 +384,15 @@ export function createViewport() {
|
|
|
238
384
|
let layoutDirty = false;
|
|
239
385
|
let lastVisibleRange = { start: 0, end: -1 };
|
|
240
386
|
let containerSize = { width: 0, height: 0 };
|
|
241
|
-
let lastScrollMode = null;
|
|
242
387
|
let lastOverflowX = null;
|
|
243
388
|
let lastOverflowY = null;
|
|
389
|
+
// Track the document position at viewport top edge for consistent positioning across mode switches
|
|
390
|
+
let viewportTopPosition = null;
|
|
244
391
|
let updateRaf = 0;
|
|
245
392
|
let scrollRaf = 0;
|
|
246
393
|
let renderDebounceTimer = 0;
|
|
247
394
|
let rendersPaused = false;
|
|
395
|
+
let resumeRenderAfterResize = false;
|
|
248
396
|
const RENDER_DEBOUNCE_MS = 50;
|
|
249
397
|
const unsubEvents = [];
|
|
250
398
|
function mount(parent, store, wc) {
|
|
@@ -261,7 +409,7 @@ export function createViewport() {
|
|
|
261
409
|
equality: viewportSliceEqual
|
|
262
410
|
});
|
|
263
411
|
unsubScroll = on(scrollArea, "scroll", () => {
|
|
264
|
-
if (!currentSlice ||
|
|
412
|
+
if (!currentSlice || !layoutState)
|
|
265
413
|
return;
|
|
266
414
|
if (scrollRaf)
|
|
267
415
|
return;
|
|
@@ -269,14 +417,22 @@ export function createViewport() {
|
|
|
269
417
|
scrollRaf = 0;
|
|
270
418
|
if (!currentSlice || !layoutState || !lastMetrics)
|
|
271
419
|
return;
|
|
272
|
-
|
|
420
|
+
if (currentSlice.scrollMode === "continuous") {
|
|
421
|
+
updateVisibleSpreads(currentSlice, lastMetrics, layoutState);
|
|
422
|
+
}
|
|
423
|
+
// Keep viewport position tracking up to date on scroll (both modes)
|
|
424
|
+
updateViewportTopPosition(currentSlice, layoutState);
|
|
273
425
|
});
|
|
274
426
|
});
|
|
275
|
-
// Resize handler: layout updates immediately, but renders are
|
|
276
|
-
//
|
|
427
|
+
// Resize handler: layout updates immediately, but renders are only paused
|
|
428
|
+
// when resize events keep firing (e.g. dragging panel width). This avoids
|
|
429
|
+
// a one-off "flash" when panels are simply toggled.
|
|
277
430
|
const handleResize = () => {
|
|
278
|
-
|
|
279
|
-
|
|
431
|
+
const isOngoingResize = renderDebounceTimer !== 0;
|
|
432
|
+
if (isOngoingResize) {
|
|
433
|
+
rendersPaused = true;
|
|
434
|
+
resumeRenderAfterResize = true;
|
|
435
|
+
}
|
|
280
436
|
// Clear any pending render timer
|
|
281
437
|
if (renderDebounceTimer) {
|
|
282
438
|
clearTimeout(renderDebounceTimer);
|
|
@@ -284,9 +440,12 @@ export function createViewport() {
|
|
|
284
440
|
// Schedule render after resize settles
|
|
285
441
|
renderDebounceTimer = window.setTimeout(() => {
|
|
286
442
|
renderDebounceTimer = 0;
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
443
|
+
if (resumeRenderAfterResize) {
|
|
444
|
+
resumeRenderAfterResize = false;
|
|
445
|
+
rendersPaused = false;
|
|
446
|
+
// Trigger re-render of visible spreads
|
|
447
|
+
scheduleUpdate();
|
|
448
|
+
}
|
|
290
449
|
}, RENDER_DEBOUNCE_MS);
|
|
291
450
|
// Layout updates immediately
|
|
292
451
|
scheduleUpdate();
|
|
@@ -420,57 +579,71 @@ export function createViewport() {
|
|
|
420
579
|
scrollArea.style.overflowY = "hidden";
|
|
421
580
|
layoutState = null;
|
|
422
581
|
lastVisibleRange = { start: 0, end: -1 };
|
|
582
|
+
viewportTopPosition = null;
|
|
423
583
|
syncEffectiveZoom(slice, null);
|
|
424
584
|
lastSlice = slice;
|
|
425
585
|
lastMetrics = metrics;
|
|
426
|
-
lastScrollMode = slice.scrollMode;
|
|
427
586
|
return;
|
|
428
587
|
}
|
|
429
|
-
const plan = computeViewportUpdate(lastSlice, slice, lastMetrics, metrics
|
|
588
|
+
const plan = computeViewportUpdate(lastSlice, slice, lastMetrics, metrics);
|
|
430
589
|
if (plan.shouldClearSpreads) {
|
|
431
590
|
clearSpreads();
|
|
432
591
|
lastVisibleRange = { start: 0, end: -1 };
|
|
592
|
+
viewportTopPosition = null;
|
|
433
593
|
}
|
|
434
|
-
const anchor = (plan.shouldCaptureAnchor && layoutState)
|
|
435
|
-
? captureScrollAnchor(metrics, layoutState)
|
|
436
|
-
: null;
|
|
437
594
|
if (plan.layoutChanged || !layoutState) {
|
|
438
|
-
layoutState = buildLayout(slice, metrics);
|
|
595
|
+
layoutState = buildLayout(slice, metrics, lastOverflowY ?? false);
|
|
439
596
|
layoutDirty = true;
|
|
440
|
-
// Only update lastMetrics when layout rebuilds, so small changes accumulate
|
|
441
|
-
// until they exceed the epsilon threshold (important for fit-page modes)
|
|
442
597
|
lastMetrics = metrics;
|
|
443
598
|
}
|
|
444
599
|
syncEffectiveZoom(slice, layoutState);
|
|
445
600
|
if (slice.scrollMode === "continuous") {
|
|
446
601
|
applyContinuousLayout(metrics, layoutState);
|
|
447
|
-
if (plan.
|
|
448
|
-
// When switching from single to continuous, center the page to maintain position
|
|
449
|
-
scrollToPage(slice.page, metrics, true);
|
|
450
|
-
}
|
|
451
|
-
else if (plan.shouldScrollToPage) {
|
|
602
|
+
if (plan.shouldScrollToPage) {
|
|
452
603
|
scrollToPage(slice.page, metrics);
|
|
453
604
|
}
|
|
454
|
-
else if (
|
|
455
|
-
|
|
605
|
+
else if (plan.shouldRestorePosition && viewportTopPosition) {
|
|
606
|
+
restoreViewportPosition(viewportTopPosition, metrics, layoutState);
|
|
456
607
|
}
|
|
457
608
|
updateVisibleSpreads(slice, metrics, layoutState);
|
|
458
609
|
}
|
|
459
610
|
else {
|
|
460
611
|
applySingleLayout(slice, metrics, layoutState);
|
|
461
|
-
if (plan.
|
|
612
|
+
if (plan.shouldScrollToPage) {
|
|
462
613
|
scrollArea.scrollTop = 0;
|
|
463
614
|
scrollArea.scrollLeft = 0;
|
|
464
|
-
|
|
465
|
-
|
|
615
|
+
lastOverflowX = null;
|
|
616
|
+
lastOverflowY = null;
|
|
617
|
+
}
|
|
618
|
+
else if (plan.shouldRestorePosition && viewportTopPosition) {
|
|
619
|
+
// In spread mode, restore position by showing the correct page
|
|
620
|
+
const targetPage = viewportTopPosition.page;
|
|
621
|
+
if (slice.page !== targetPage && storeRef) {
|
|
622
|
+
storeRef.dispatch({ type: "SET_PAGE", page: targetPage });
|
|
623
|
+
}
|
|
624
|
+
// Reset scroll and try to restore position within the spread if it's scrollable
|
|
625
|
+
scrollArea.scrollLeft = 0;
|
|
626
|
+
const spreadIndex = findSpreadForPage(layoutState.spreads, targetPage);
|
|
627
|
+
const layout = layoutState.layouts[spreadIndex];
|
|
628
|
+
if (layout && layout.height > metrics.innerHeight && !viewportTopPosition.inSpacing) {
|
|
629
|
+
// Spread is larger than viewport and we have a content offset
|
|
630
|
+
// Calculate scroll position to show the same relative position
|
|
631
|
+
const spreadTopInContainer = getCenteredOffset(containerSize.height, layout.height);
|
|
632
|
+
const offsetPixels = viewportTopPosition.offset * layout.height;
|
|
633
|
+
scrollArea.scrollTop = Math.max(0, spreadTopInContainer + offsetPixels);
|
|
634
|
+
}
|
|
635
|
+
else {
|
|
636
|
+
scrollArea.scrollTop = 0;
|
|
637
|
+
}
|
|
466
638
|
lastOverflowX = null;
|
|
467
639
|
lastOverflowY = null;
|
|
468
640
|
}
|
|
469
641
|
showSingleSpread(slice, metrics, layoutState);
|
|
470
642
|
}
|
|
471
643
|
updateOverflow(slice, metrics);
|
|
644
|
+
// Update tracked viewport position after layout is applied
|
|
645
|
+
updateViewportTopPosition(slice, layoutState);
|
|
472
646
|
lastSlice = slice;
|
|
473
|
-
lastScrollMode = slice.scrollMode;
|
|
474
647
|
}
|
|
475
648
|
function updateOverflow(slice, metrics) {
|
|
476
649
|
const epsilon = 1;
|
|
@@ -528,33 +701,89 @@ export function createViewport() {
|
|
|
528
701
|
return;
|
|
529
702
|
storeRef.dispatch({ type: "SET_EFFECTIVE_ZOOM", zoom: nextZoom });
|
|
530
703
|
}
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
return null;
|
|
539
|
-
const spreadIndex = findSpreadForPage(state.spreads, focusPage);
|
|
540
|
-
const layout = state.layouts[spreadIndex];
|
|
541
|
-
if (!layout)
|
|
542
|
-
return null;
|
|
543
|
-
const spreadCenter = layout.top + layout.height / 2;
|
|
544
|
-
return {
|
|
545
|
-
page: focusPage,
|
|
546
|
-
offset: spreadCenter - scrollTop
|
|
547
|
-
};
|
|
548
|
-
}
|
|
549
|
-
function restoreScrollAnchor(anchor, metrics) {
|
|
550
|
-
if (!layoutState)
|
|
704
|
+
/**
|
|
705
|
+
* Updates the tracked viewport top position based on current scroll state.
|
|
706
|
+
* This captures which page is at the viewport top and how far into it we are.
|
|
707
|
+
*/
|
|
708
|
+
function updateViewportTopPosition(slice, state) {
|
|
709
|
+
if (state.layouts.length === 0 || state.spreads.length === 0) {
|
|
710
|
+
viewportTopPosition = null;
|
|
551
711
|
return;
|
|
552
|
-
|
|
553
|
-
|
|
712
|
+
}
|
|
713
|
+
let viewportTopInLayout;
|
|
714
|
+
if (slice.scrollMode === "continuous") {
|
|
715
|
+
// In continuous mode, viewport top position is directly from scrollTop
|
|
716
|
+
viewportTopInLayout = scrollArea.scrollTop;
|
|
717
|
+
}
|
|
718
|
+
else {
|
|
719
|
+
// In spread mode, the spread is centered in the viewport
|
|
720
|
+
// Calculate where the viewport top would be in layout coordinates
|
|
721
|
+
const spreadIndex = findSpreadForPage(state.spreads, slice.page);
|
|
722
|
+
const layout = state.layouts[spreadIndex];
|
|
723
|
+
if (!layout) {
|
|
724
|
+
viewportTopPosition = null;
|
|
725
|
+
return;
|
|
726
|
+
}
|
|
727
|
+
// The spread is positioned at getCenteredOffset from container top
|
|
728
|
+
const spreadTopInContainer = getCenteredOffset(containerSize.height, layout.height);
|
|
729
|
+
// Account for any scroll within spread mode (for large spreads)
|
|
730
|
+
const viewportTopInContainer = scrollArea.scrollTop;
|
|
731
|
+
// Map to layout coordinates: layout.top is where this spread is in continuous layout
|
|
732
|
+
viewportTopInLayout = layout.top - spreadTopInContainer + viewportTopInContainer;
|
|
733
|
+
}
|
|
734
|
+
// Find which spread the viewport top is associated with
|
|
735
|
+
for (let i = 0; i < state.layouts.length; i++) {
|
|
736
|
+
const layout = state.layouts[i];
|
|
737
|
+
const spread = state.spreads[i];
|
|
738
|
+
if (!spread)
|
|
739
|
+
continue;
|
|
740
|
+
const spreadTop = layout.top;
|
|
741
|
+
const spreadBottom = layout.top + layout.height;
|
|
742
|
+
const offsetFromSpreadTop = viewportTopInLayout - spreadTop;
|
|
743
|
+
// Check if viewport is in the spacing area before this spread
|
|
744
|
+
if (viewportTopInLayout < spreadTop) {
|
|
745
|
+
// We're in the spacing above this spread
|
|
746
|
+
// Store the absolute pixel offset (negative) since spacing doesn't scale
|
|
747
|
+
viewportTopPosition = {
|
|
748
|
+
page: getSpreadPrimaryPage(spread),
|
|
749
|
+
offset: offsetFromSpreadTop, // negative value
|
|
750
|
+
inSpacing: true
|
|
751
|
+
};
|
|
752
|
+
return;
|
|
753
|
+
}
|
|
754
|
+
// Check if viewport is within this spread's content
|
|
755
|
+
if (viewportTopInLayout < spreadBottom || i === state.layouts.length - 1) {
|
|
756
|
+
// We're within the spread content
|
|
757
|
+
// Store as ratio of spread height so it scales correctly
|
|
758
|
+
const offsetRatio = layout.height > 0 ? offsetFromSpreadTop / layout.height : 0;
|
|
759
|
+
viewportTopPosition = {
|
|
760
|
+
page: getSpreadPrimaryPage(spread),
|
|
761
|
+
offset: offsetRatio,
|
|
762
|
+
inSpacing: false
|
|
763
|
+
};
|
|
764
|
+
return;
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
viewportTopPosition = null;
|
|
768
|
+
}
|
|
769
|
+
/**
|
|
770
|
+
* Restores the viewport to a previously tracked position.
|
|
771
|
+
*/
|
|
772
|
+
function restoreViewportPosition(position, metrics, state) {
|
|
773
|
+
const spreadIndex = findSpreadForPage(state.spreads, position.page);
|
|
774
|
+
const layout = state.layouts[spreadIndex];
|
|
554
775
|
if (!layout)
|
|
555
776
|
return;
|
|
556
|
-
|
|
557
|
-
|
|
777
|
+
let targetScrollTop;
|
|
778
|
+
if (position.inSpacing) {
|
|
779
|
+
// In spacing area: offset is absolute pixels (negative), doesn't scale
|
|
780
|
+
targetScrollTop = layout.top + position.offset;
|
|
781
|
+
}
|
|
782
|
+
else {
|
|
783
|
+
// In spread content: offset is ratio of spread height, scales with zoom
|
|
784
|
+
const offsetPixels = position.offset * layout.height;
|
|
785
|
+
targetScrollTop = layout.top + offsetPixels;
|
|
786
|
+
}
|
|
558
787
|
const maxScrollTop = Math.max(0, containerSize.height - metrics.innerHeight);
|
|
559
788
|
scrollArea.scrollTop = clamp(targetScrollTop, 0, maxScrollTop);
|
|
560
789
|
}
|
|
@@ -680,6 +909,11 @@ export function createViewport() {
|
|
|
680
909
|
scale: state.scale,
|
|
681
910
|
dpi: slice.dpi
|
|
682
911
|
});
|
|
912
|
+
// Prerender adjacent pages for smooth page flipping
|
|
913
|
+
const dpr = getDevicePixelRatio();
|
|
914
|
+
const pointsToPixels = getPointsToPixels(slice.dpi);
|
|
915
|
+
const renderScale = pointsToPixels * state.scale * dpr;
|
|
916
|
+
workerClient.prerenderAdjacentPages(slice.docId, slice.page, renderScale, slice.pageInfos.length);
|
|
683
917
|
}
|
|
684
918
|
lastVisibleRange = { start: spreadIndex, end: spreadIndex };
|
|
685
919
|
// Only clear layoutDirty if renders actually happened
|
|
@@ -806,6 +1040,8 @@ export function createViewport() {
|
|
|
806
1040
|
cancelAnimationFrame(scrollRaf);
|
|
807
1041
|
if (renderDebounceTimer)
|
|
808
1042
|
clearTimeout(renderDebounceTimer);
|
|
1043
|
+
wmObserver.disconnect();
|
|
1044
|
+
clearInterval(wmIntegrityCheck);
|
|
809
1045
|
floatingToolbar.destroy();
|
|
810
1046
|
clearSpreads();
|
|
811
1047
|
workerClient = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Viewport.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/Viewport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Viewport.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/Viewport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const inlineStyles = ".udoc-viewer-root {\n display: flex;\n flex-direction: column;\n height: 100%;\n container-type: inline-size;\n container-name: udoc-viewer;\n}\n\n.udoc-viewer-root .udoc-toolbar-slot {\n flex: 0 0 auto;\n}\n\n.udoc-viewer-root .udoc-body-slot {\n flex: 1 1 auto;\n display: flex;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-left-panel-slot {\n flex: 0 0 auto;\n}\n\n.udoc-viewer-root .udoc-right-panel-slot {\n flex: 0 0 auto;\n}\n\n.udoc-viewer-root .udoc-viewport-slot {\n position: relative;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-viewport {\n position: relative;\n width: 100%;\n height: 100%;\n background: #e0e0e0;\n}\n\n.udoc-viewer-root .udoc-viewport__scroll {\n width: 100%;\n height: 100%;\n overflow: auto;\n scrollbar-gutter: stable;\n}\n\n.udoc-viewer-root .udoc-viewport__container {\n position: relative;\n min-height: 100%;\n box-sizing: border-box;\n /* height set dynamically for virtual scrolling */\n}\n\n.udoc-viewer-root .udoc-viewport__watermark {\n position: absolute;\n right: 18px;\n bottom: 4px;\n padding: 2px 6px;\n font-size: 12px;\n font-weight: 500;\n color: rgba(0, 0, 0, 0.3);\n text-decoration: none;\n text-shadow: 0 1px 2px rgba(255, 255, 255, 0.5);\n z-index: 10;\n transition: color 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-viewport__watermark:hover {\n color: rgba(0, 0, 0, 0.6);\n}\n\n/* Spread */\n.udoc-viewer-root .udoc-spread {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n flex-shrink: 0;\n}\n\n.udoc-viewer-root .udoc-spread--hidden {\n display: none;\n}\n\n/* Page slot within spread */\n.udoc-viewer-root .udoc-spread__slot {\n display: flex;\n align-items: center;\n justify-content: center;\n background: white;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.udoc-viewer-root .udoc-viewport--seamless .udoc-spread__slot {\n box-shadow: none;\n}\n\n.udoc-viewer-root .udoc-spread__slot--empty {\n background: transparent;\n box-shadow: none;\n}\n\n.udoc-viewer-root .udoc-spread__canvas {\n display: block;\n}\n\n/* Floating Toolbar */\n.udoc-viewer-root .udoc-floating-toolbar {\n position: absolute;\n bottom: 24px;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 10px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);\n z-index: 100;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__section {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__divider {\n width: 1px;\n height: 20px;\n background: rgba(0, 0, 0, 0.15);\n margin: 0 4px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.7);\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:active {\n background: rgba(0, 0, 0, 0.15);\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: default;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:disabled:hover {\n background: transparent;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn svg {\n width: 18px;\n height: 18px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-info {\n display: flex;\n align-items: center;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-input {\n width: 36px;\n padding: 2px 4px;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-input:focus {\n outline: none;\n border-color: rgba(0, 0, 0, 0.3);\n background: white;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-total {\n white-space: nowrap;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__zoom-level {\n min-width: 44px;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn--active {\n background: rgba(0, 0, 0, 0.12);\n}\n\n/* Zoom Dropdown */\n.udoc-viewer-root .udoc-zoom-dropdown {\n position: relative;\n height: 28px;\n display: flex;\n align-items: center;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__toggle {\n display: flex;\n align-items: center;\n gap: 0;\n height: 100%;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n background: transparent;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__toggle:focus-within {\n border-color: rgba(0, 0, 0, 0.3);\n background: white;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__input {\n width: 44px;\n padding: 2px 4px;\n border: none;\n border-radius: 4px 0 0 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__input:focus {\n outline: none;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 2px 2px;\n border: none;\n border-left: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 0 4px 4px 0;\n background: transparent;\n color: rgba(0, 0, 0, 0.5);\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron:hover {\n background: rgba(0, 0, 0, 0.08);\n color: rgba(0, 0, 0, 0.7);\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron--active {\n background: rgba(0, 0, 0, 0.12);\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron svg {\n width: 14px;\n height: 14px;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__menu {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 50%;\n transform: translateX(-50%);\n padding: 6px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n min-width: 100px;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__section {\n display: flex;\n flex-direction: column;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__divider {\n height: 1px;\n background: rgba(0, 0, 0, 0.1);\n margin: 6px 0;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item {\n display: block;\n width: 100%;\n padding: 6px 10px;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: left;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item--active {\n background: rgba(0, 102, 204, 0.15);\n color: #0066cc;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item--active:hover {\n background: rgba(0, 102, 204, 0.2);\n}\n\n/* View Mode Menu */\n.udoc-viewer-root .udoc-view-mode-menu {\n position: relative;\n height: 28px;\n display: flex;\n align-items: center;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__dropdown {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 0;\n padding: 8px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n min-width: 160px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__section {\n margin-bottom: 8px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__section:last-child {\n margin-bottom: 0;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__title {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n color: rgba(0, 0, 0, 0.5);\n margin-bottom: 4px;\n padding: 0 4px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__options {\n display: flex;\n gap: 2px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.6);\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--active {\n background: rgba(0, 102, 204, 0.15);\n color: #0066cc;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--active:hover {\n background: rgba(0, 102, 204, 0.2);\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: default;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--disabled:hover {\n background: transparent;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option-icon svg {\n width: 20px;\n height: 20px;\n}\n\n/* Left Panel */\n.udoc-viewer-root .udoc-left-panel {\n position: relative;\n display: flex;\n width: 240px;\n height: 100%;\n background: #f5f5f5;\n border-right: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-left-panel--closed {\n width: 0;\n overflow: hidden;\n border-right: none;\n}\n\n.udoc-viewer-root .udoc-left-panel__tabs {\n display: flex;\n flex-direction: column;\n width: 40px;\n background: #e8e8e8;\n border-right: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-left-panel__tab {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n padding: 0;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-left-panel__tab:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-left-panel__tab--active {\n background: #f5f5f5;\n color: #333;\n border-right: 2px solid #0066cc;\n}\n\n.udoc-viewer-root .udoc-left-panel__tab svg {\n width: 20px;\n height: 20px;\n}\n\n.udoc-viewer-root .udoc-left-panel__content {\n flex: 1;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-left-panel__resize-handle {\n position: absolute;\n right: 0;\n top: 0;\n width: 4px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n}\n\n.udoc-viewer-root .udoc-left-panel__resize-handle:hover,\n.udoc-viewer-root .udoc-left-panel--resizing .udoc-left-panel__resize-handle {\n background: rgba(0, 102, 204, 0.3);\n}\n\n.udoc-viewer-root .udoc-left-panel--resizing {\n transition: none;\n}\n\n/* Thumbnail Panel */\n.udoc-viewer-root .udoc-thumbnail-panel {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 8px;\n border-radius: 4px;\n cursor: pointer;\n transition: background 0.15s ease;\n flex-shrink: 0;\n width: 100%;\n box-sizing: border-box;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.udoc-viewer-root .udoc-thumbnail-item--active {\n background: rgba(0, 102, 204, 0.1);\n outline: 2px solid #0066cc;\n outline-offset: -2px;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item__canvas {\n display: block;\n max-width: calc(100% - 16px);\n background: white;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n}\n\n.udoc-viewer-root .udoc-thumbnail-item__label {\n font-size: 11px;\n color: #666;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item--active .udoc-thumbnail-item__label {\n color: #0066cc;\n font-weight: 500;\n}\n\n/* Outline Panel */\n.udoc-viewer-root .udoc-outline-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px 0;\n}\n\n.udoc-viewer-root .udoc-outline-panel__loading,\n.udoc-viewer-root .udoc-outline-panel__empty {\n padding: 16px;\n color: #888;\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-outline-item {\n display: flex;\n flex-direction: column;\n}\n\n.udoc-viewer-root .udoc-outline-item__header {\n display: flex;\n align-items: center;\n padding: 6px 12px 6px 8px;\n gap: 4px;\n min-height: 28px;\n}\n\n.udoc-viewer-root .udoc-outline-item__header--clickable {\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-outline-item__header--clickable:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.udoc-viewer-root .udoc-outline-item__header--active {\n background: rgba(0, 102, 204, 0.1);\n}\n\n.udoc-viewer-root .udoc-outline-item__header--active .udoc-outline-item__title {\n color: #0066cc;\n font-weight: 500;\n}\n\n.udoc-viewer-root .udoc-outline-item__toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n padding: 0;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n flex-shrink: 0;\n transition: transform 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-outline-item__toggle:hover {\n color: #333;\n}\n\n.udoc-viewer-root .udoc-outline-item__toggle--expanded {\n transform: rotate(90deg);\n}\n\n.udoc-viewer-root .udoc-outline-item__spacer {\n width: 16px;\n flex-shrink: 0;\n}\n\n.udoc-viewer-root .udoc-outline-item__title {\n font-size: 13px;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n}\n\n/* .udoc-outline-item__children: Indentation is handled via padding-left on header */\n\n.udoc-viewer-root .udoc-toolbar {\n display: flex;\n align-items: center;\n height: 40px;\n padding: 0 8px;\n background: #f5f5f5;\n border-bottom: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-toolbar__left,\n.udoc-viewer-root .udoc-toolbar__right {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.udoc-viewer-root .udoc-toolbar__spacer {\n flex: 1;\n}\n\n.udoc-viewer-root .udoc-toolbar__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: #555;\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-toolbar__btn:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-toolbar__btn:active {\n background: rgba(0, 0, 0, 0.12);\n}\n\n.udoc-viewer-root .udoc-toolbar__btn svg {\n width: 20px;\n height: 20px;\n}\n\n/* Right Panel */\n.udoc-viewer-root .udoc-right-panel {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 300px;\n height: 100%;\n background: #f5f5f5;\n border-left: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-right-panel--closed {\n width: 0;\n overflow: hidden;\n border-left: none;\n}\n\n.udoc-viewer-root .udoc-right-panel__resize-handle {\n position: absolute;\n left: 0;\n top: 0;\n width: 4px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n}\n\n.udoc-viewer-root .udoc-right-panel__resize-handle:hover,\n.udoc-viewer-root .udoc-right-panel--resizing .udoc-right-panel__resize-handle {\n background: rgba(0, 102, 204, 0.3);\n}\n\n.udoc-viewer-root .udoc-right-panel--resizing {\n transition: none;\n}\n\n.udoc-viewer-root .udoc-right-panel__content {\n flex: 1;\n overflow: auto;\n}\n\n/* Text Layer (for text selection) */\n.udoc-viewer-root .udoc-spread__text-layer {\n position: absolute;\n overflow: hidden;\n /* user-select: none prevents selection from starting/extending in gaps */\n user-select: none;\n pointer-events: auto;\n z-index: 1;\n}\n\n.udoc-viewer-root .udoc-text-span {\n position: absolute;\n color: transparent;\n white-space: pre;\n line-height: 1;\n font-family: sans-serif;\n /* Allow selection on actual text spans */\n user-select: text;\n}\n\n.udoc-viewer-root .udoc-text-span::selection {\n background: rgba(0, 120, 215, 0.3);\n}\n\n/* Annotation Layer */\n.udoc-viewer-root .udoc-spread__annotation-layer {\n position: absolute;\n pointer-events: none;\n z-index: 2;\n}\n\n/* Base annotation */\n.udoc-viewer-root .udoc-annotation {\n position: absolute;\n box-sizing: border-box;\n}\n\n/* Link annotation */\n.udoc-viewer-root .udoc-annotation--link {\n pointer-events: auto;\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-annotation--link:hover {\n background-color: rgba(0, 102, 204, 0.15);\n}\n\n/* Highlight annotation */\n.udoc-viewer-root .udoc-annotation--highlight {\n pointer-events: none;\n}\n\n.udoc-viewer-root .udoc-annotation__quad {\n mix-blend-mode: multiply;\n}\n\n/* Underline annotation */\n.udoc-viewer-root .udoc-annotation--underline {\n pointer-events: none;\n}\n\n/* StrikeOut annotation */\n.udoc-viewer-root .udoc-annotation--strikeout {\n pointer-events: none;\n}\n\n/* Squiggly annotation */\n.udoc-viewer-root .udoc-annotation--squiggly {\n pointer-events: none;\n}\n\n/* Text (sticky note) annotation */\n.udoc-viewer-root .udoc-annotation--text {\n pointer-events: auto;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: filter 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-annotation--text:hover {\n filter: brightness(1.1) drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));\n}\n\n.udoc-viewer-root .udoc-annotation--text svg {\n width: 100%;\n height: 100%;\n}\n\n/* Annotation popup */\n.udoc-viewer-root .udoc-annotation-popup {\n position: absolute;\n z-index: 100;\n min-width: 200px;\n max-width: 300px;\n background: #ffffc0;\n border: 1px solid #d4d4a0;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n font-size: 12px;\n color: #333;\n pointer-events: auto;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 8px;\n background: #f0f0c0;\n border-bottom: 1px solid #d4d4a0;\n border-radius: 4px 4px 0 0;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__author {\n font-weight: 600;\n color: #555;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__close {\n width: 16px;\n height: 16px;\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n flex-shrink: 0;\n margin-left: 8px;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__close:hover {\n opacity: 1;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__close svg {\n width: 12px;\n height: 12px;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__content {\n padding: 8px;\n white-space: pre-wrap;\n word-wrap: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n/* FreeText annotation */\n.udoc-viewer-root .udoc-annotation--freetext {\n pointer-events: auto;\n overflow: hidden;\n font-size: 12px;\n padding: 2px;\n}\n\n/* Stamp annotation */\n.udoc-viewer-root .udoc-annotation--stamp {\n pointer-events: none;\n}\n\n/* Caret annotation - rendered via SVG, minimal styling needed */\n.udoc-viewer-root .udoc-annotation--caret {\n pointer-events: none;\n}\n\n/* Shape annotations - rendered via SVG overlay */\n.udoc-viewer-root .udoc-annotation--line,\n.udoc-viewer-root .udoc-annotation--square,\n.udoc-viewer-root .udoc-annotation--circle,\n.udoc-viewer-root .udoc-annotation--polygon,\n.udoc-viewer-root .udoc-annotation--polyLine,\n.udoc-viewer-root .udoc-annotation--ink {\n pointer-events: none;\n}\n\n/* Redact annotation */\n.udoc-viewer-root .udoc-annotation--redact {\n pointer-events: none;\n}\n\n/* Annotation Panel */\n.udoc-viewer-root .udoc-annotation-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 32px 16px;\n text-align: center;\n color: #888;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-icon {\n color: #ccc;\n margin-bottom: 12px;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-icon svg {\n width: 48px;\n height: 48px;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-title {\n font-size: 14px;\n font-weight: 500;\n color: #666;\n margin-bottom: 4px;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-message {\n font-size: 12px;\n color: #999;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #888;\n font-size: 13px;\n}\n\n/* Comments List */\n.udoc-viewer-root .udoc-comments-list {\n display: flex;\n flex-direction: column;\n}\n\n/* Page Group */\n.udoc-viewer-root .udoc-comments-page-group {\n border-bottom: 1px solid #e0e0e0;\n}\n\n.udoc-viewer-root .udoc-comments-page-group:last-child {\n border-bottom: none;\n}\n\n.udoc-viewer-root .udoc-comments-page-header {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 12px;\n cursor: pointer;\n user-select: none;\n background: #f0f0f0;\n transition: background 0.15s;\n}\n\n.udoc-viewer-root .udoc-comments-page-header:hover {\n background: #e8e8e8;\n}\n\n.udoc-viewer-root .udoc-comments-page-header svg {\n width: 16px;\n height: 16px;\n color: #666;\n flex-shrink: 0;\n transition: transform 0.2s ease;\n}\n\n.udoc-viewer-root .udoc-comments-page-header span {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n}\n\n.udoc-viewer-root .udoc-comments-page-count {\n margin-left: auto;\n padding: 2px 6px;\n background: #ddd;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 500;\n color: #666;\n}\n\n/* Collapsed state */\n.udoc-viewer-root .udoc-comments-page-group--collapsed .udoc-comments-page-header svg {\n transform: rotate(-90deg);\n}\n\n.udoc-viewer-root .udoc-comments-page-group--collapsed .udoc-comments-page-content {\n display: none;\n}\n\n/* Page Content */\n.udoc-viewer-root .udoc-comments-page-content {\n display: flex;\n flex-direction: column;\n}\n\n/* Comment Item */\n.udoc-viewer-root .udoc-comment-item {\n display: flex;\n gap: 8px;\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n border-bottom: 1px solid #eee;\n}\n\n.udoc-viewer-root .udoc-comment-item:last-child {\n border-bottom: none;\n}\n\n.udoc-viewer-root .udoc-comment-item:hover {\n background: rgba(0, 102, 204, 0.05);\n}\n\n/* Reply indentation */\n.udoc-viewer-root .udoc-comment-reply {\n background: #fafafa;\n}\n\n.udoc-viewer-root .udoc-comment-depth-1 {\n padding-left: 28px;\n}\n\n.udoc-viewer-root .udoc-comment-depth-2 {\n padding-left: 44px;\n}\n\n.udoc-viewer-root .udoc-comment-depth-3 {\n padding-left: 60px;\n}\n\n/* Comment Icon */\n.udoc-viewer-root .udoc-comment-icon {\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #888;\n}\n\n.udoc-viewer-root .udoc-comment-icon svg {\n width: 16px;\n height: 16px;\n}\n\n/* Comment Body */\n.udoc-viewer-root .udoc-comment-body {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n/* Comment Header */\n.udoc-viewer-root .udoc-comment-header {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.udoc-viewer-root .udoc-comment-author {\n font-size: 12px;\n font-weight: 600;\n color: #333;\n}\n\n/* Status Badge */\n.udoc-viewer-root .udoc-comment-status {\n padding: 1px 6px;\n border-radius: 8px;\n font-size: 10px;\n font-weight: 500;\n text-transform: capitalize;\n}\n\n.udoc-viewer-root .udoc-comment-status--accepted {\n background: #d4edda;\n color: #155724;\n}\n\n.udoc-viewer-root .udoc-comment-status--rejected {\n background: #f8d7da;\n color: #721c24;\n}\n\n.udoc-viewer-root .udoc-comment-status--completed {\n background: #cce5ff;\n color: #004085;\n}\n\n.udoc-viewer-root .udoc-comment-status--cancelled {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.udoc-viewer-root .udoc-comment-status--marked {\n background: #fff3cd;\n color: #856404;\n}\n\n.udoc-viewer-root .udoc-comment-status--unmarked {\n background: #e2e3e5;\n color: #383d41;\n}\n\n/* Comment Contents */\n.udoc-viewer-root .udoc-comment-contents {\n font-size: 12px;\n color: #555;\n line-height: 1.4;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n line-clamp: 3;\n -webkit-box-orient: vertical;\n}\n\n/* Reply Toggle */\n.udoc-viewer-root .udoc-comment-toggle {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n margin-top: 4px;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: #0066cc;\n font-size: 11px;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.udoc-viewer-root .udoc-comment-toggle:hover {\n background: rgba(0, 102, 204, 0.1);\n}\n\n.udoc-viewer-root .udoc-comment-toggle svg {\n width: 12px;\n height: 12px;\n transition: transform 0.2s ease;\n}\n\n.udoc-viewer-root .udoc-comment-toggle--expanded svg {\n transform: rotate(90deg);\n}\n\n/* Replies Container */\n.udoc-viewer-root .udoc-comment-replies {\n display: flex;\n flex-direction: column;\n}\n\n.udoc-viewer-root .udoc-comment-replies--collapsed {\n display: none;\n}\n\n/* Annotation Highlight Animation */\n@keyframes udoc-annotation-pulse {\n 0% {\n box-shadow: 0 0 0 0 rgba(0, 102, 204, 0.7);\n }\n 50% {\n box-shadow: 0 0 0 8px rgba(0, 102, 204, 0.3);\n }\n 100% {\n box-shadow: 0 0 0 12px rgba(0, 102, 204, 0);\n }\n}\n\n.udoc-viewer-root .udoc-annotation--highlighted {\n animation: udoc-annotation-pulse 1.5s ease-out;\n outline: 2px solid #0066cc;\n outline-offset: 2px;\n border-radius: 2px;\n z-index: 10;\n}\n\n/* Highlight indicator for full-layer markup annotations */\n.udoc-viewer-root .udoc-annotation-highlight-indicator {\n position: absolute;\n box-sizing: border-box;\n pointer-events: none;\n animation: udoc-annotation-pulse 1.5s ease-out;\n outline: 2px solid #0066cc;\n outline-offset: 2px;\n border-radius: 2px;\n z-index: 10;\n}\n\n/* Mobile Panel Overlay */\n.udoc-viewer-root .udoc-panel-overlay {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.3);\n z-index: 140;\n}\n\n/* ===== Responsive: Small Mobile (\u2264480px) ===== */\n@container udoc-viewer (max-width: 480px) {\n /* Make body-slot a positioning context */\n .udoc-viewer-root .udoc-body-slot {\n position: relative;\n }\n\n /* Collapse panels to slide-out drawers */\n .udoc-viewer-root .udoc-left-panel {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 280px !important;\n z-index: 150;\n box-shadow: 4px 0 20px rgba(0, 0, 0, 0.15);\n transform: translateX(-100%);\n }\n\n .udoc-viewer-root .udoc-left-panel:not(.udoc-left-panel--closed) {\n transform: translateX(0);\n }\n\n .udoc-viewer-root .udoc-left-panel--closed {\n width: 280px !important;\n transform: translateX(-100%);\n }\n\n .udoc-viewer-root .udoc-right-panel {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 280px !important;\n z-index: 150;\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n transform: translateX(100%);\n }\n\n .udoc-viewer-root .udoc-right-panel:not(.udoc-right-panel--closed) {\n transform: translateX(0);\n }\n\n .udoc-viewer-root .udoc-right-panel--closed {\n width: 280px !important;\n transform: translateX(100%);\n }\n\n /* Show overlay when panel is open */\n .udoc-viewer-root.udoc-panel-open .udoc-panel-overlay {\n display: block;\n }\n\n /* Convert floating bar to full-width bottom toolbar */\n .udoc-viewer-root .udoc-floating-toolbar {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n transform: none;\n border-radius: 0;\n box-sizing: border-box;\n height: 40px;\n padding: 0 12px;\n gap: 8px;\n max-width: none;\n justify-content: center;\n box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\n }\n\n /* Viewport scroll area needs padding for bottom toolbar */\n .udoc-viewer-root .udoc-viewport__scroll {\n padding-bottom: 40px;\n }\n\n /* Move watermark above bottom toolbar on mobile */\n .udoc-viewer-root .udoc-viewport__watermark {\n bottom: 48px;\n right: 10px;\n font-size: 11px;\n }\n\n /* Hide fullscreen button on mobile */\n .udoc-viewer-root .udoc-toolbar__btn--fullscreen {\n display: none;\n }\n\n /* Touch targets for mobile */\n .udoc-viewer-root .udoc-floating-toolbar__btn {\n padding: 6px;\n min-width: 28px;\n min-height: 28px;\n }\n\n .udoc-viewer-root .udoc-floating-toolbar__btn svg {\n width: 18px;\n height: 18px;\n }\n\n /* Larger panel tab buttons for touch */\n .udoc-viewer-root .udoc-left-panel__tabs {\n width: 44px;\n padding: 8px 0;\n }\n\n .udoc-viewer-root .udoc-left-panel__tab {\n width: 44px;\n height: 44px;\n }\n\n .udoc-viewer-root .udoc-left-panel__tab svg {\n width: 22px;\n height: 22px;\n }\n\n /* Toolbar adjustments */\n .udoc-viewer-root .udoc-toolbar {\n padding: 0 4px;\n gap: 4px;\n }\n\n .udoc-viewer-root .udoc-toolbar__btn {\n padding: 8px;\n }\n\n /* View mode menu - right align */\n .udoc-viewer-root .udoc-view-mode-menu__dropdown {\n left: auto;\n right: 0;\n }\n\n .udoc-viewer-root .udoc-zoom-dropdown__item {\n padding: 12px 16px;\n }\n\n .udoc-viewer-root .udoc-view-mode-menu__option {\n width: 36px;\n height: 36px;\n }\n}\n\n/* ===== Password Dialog ===== */\n.udoc-viewer-root .udoc-password-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 200;\n}\n\n.udoc-viewer-root .udoc-password-dialog {\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);\n padding: 24px;\n max-width: 360px;\n width: 90%;\n}\n\n.udoc-viewer-root .udoc-password-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.udoc-viewer-root .udoc-password-icon {\n width: 32px;\n height: 32px;\n color: #666;\n flex-shrink: 0;\n}\n\n.udoc-viewer-root .udoc-password-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #333;\n}\n\n.udoc-viewer-root .udoc-password-message {\n margin: 0 0 20px 0;\n font-size: 14px;\n color: #666;\n line-height: 1.5;\n}\n\n.udoc-viewer-root .udoc-password-form {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.udoc-viewer-root .udoc-password-input-wrapper {\n display: flex;\n align-items: center;\n border: 1px solid #ddd;\n border-radius: 8px;\n background: #fff;\n transition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.udoc-viewer-root .udoc-password-input-wrapper:focus-within {\n border-color: #0066cc;\n box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.15);\n}\n\n.udoc-viewer-root .udoc-password-input {\n flex: 1;\n padding: 12px 14px;\n border: none;\n border-radius: 8px 0 0 8px;\n background: transparent;\n font-size: 15px;\n color: #333;\n outline: none;\n}\n\n.udoc-viewer-root .udoc-password-input::placeholder {\n color: #999;\n}\n\n.udoc-viewer-root .udoc-password-input:disabled {\n background: #f5f5f5;\n color: #999;\n}\n\n.udoc-viewer-root .udoc-password-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n border: none;\n background: transparent;\n color: #888;\n cursor: pointer;\n transition: color 0.15s;\n}\n\n.udoc-viewer-root .udoc-password-toggle:hover {\n color: #333;\n}\n\n.udoc-viewer-root .udoc-password-toggle svg {\n width: 20px;\n height: 20px;\n}\n\n.udoc-viewer-root .udoc-password-error {\n margin: 0;\n padding: 8px 12px;\n background: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 6px;\n font-size: 13px;\n color: #dc2626;\n}\n\n.udoc-viewer-root .udoc-password-submit {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 12px 20px;\n border: none;\n border-radius: 8px;\n background: #0066cc;\n color: #fff;\n font-size: 15px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.udoc-viewer-root .udoc-password-submit:hover:not(:disabled) {\n background: #0052a3;\n}\n\n.udoc-viewer-root .udoc-password-submit:disabled {\n background: #94a3b8;\n cursor: not-allowed;\n}\n\n.udoc-viewer-root .udoc-password-submit-spinner svg {\n width: 20px;\n height: 20px;\n}\n\n/* ===== Loading Overlay ===== */\n.udoc-viewer-root .udoc-loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.95);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 180;\n backdrop-filter: blur(2px);\n}\n\n.udoc-viewer-root .udoc-loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n padding: 24px;\n}\n\n.udoc-viewer-root .udoc-loading-spinner {\n width: 40px;\n height: 40px;\n color: #0066cc;\n}\n\n.udoc-viewer-root .udoc-loading-spinner svg {\n width: 100%;\n height: 100%;\n}\n\n.udoc-viewer-root .udoc-loading-progress-container {\n width: 240px;\n}\n\n.udoc-viewer-root .udoc-loading-progress-track {\n width: 100%;\n height: 6px;\n background: #e5e7eb;\n border-radius: 3px;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-loading-progress-fill {\n height: 100%;\n background: #0066cc;\n border-radius: 3px;\n width: 0%;\n transition: width 0.2s ease-out;\n}\n\n.udoc-viewer-root .udoc-loading-progress-fill--indeterminate {\n animation: udoc-loading-indeterminate 1.5s ease-in-out infinite;\n}\n\n@keyframes udoc-loading-indeterminate {\n 0% {\n transform: translateX(-100%);\n }\n 50% {\n transform: translateX(233%);\n }\n 100% {\n transform: translateX(-100%);\n }\n}\n\n.udoc-viewer-root .udoc-loading-progress-text {\n font-size: 13px;\n color: #666;\n text-align: center;\n}\n";
|
|
1
|
+
export declare const inlineStyles = ".udoc-viewer-root {\n display: flex;\n flex-direction: column;\n height: 100%;\n container-type: inline-size;\n container-name: udoc-viewer;\n}\n\n.udoc-viewer-root .udoc-toolbar-slot {\n flex: 0 0 auto;\n}\n\n.udoc-viewer-root .udoc-body-slot {\n flex: 1 1 auto;\n display: flex;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-left-panel-slot {\n flex: 0 0 auto;\n}\n\n.udoc-viewer-root .udoc-right-panel-slot {\n flex: 0 0 auto;\n}\n\n.udoc-viewer-root .udoc-viewport-slot {\n position: relative;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-viewport {\n position: relative;\n width: 100%;\n height: 100%;\n background: #e0e0e0;\n}\n\n.udoc-viewer-root .udoc-viewport__scroll {\n width: 100%;\n height: 100%;\n overflow: auto;\n /* scrollbar visibility is managed dynamically by Viewport.ts */\n}\n\n.udoc-viewer-root .udoc-viewport__container {\n position: relative;\n min-height: 100%;\n box-sizing: border-box;\n /* height set dynamically for virtual scrolling */\n}\n\n/* Spread */\n.udoc-viewer-root .udoc-spread {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n flex-shrink: 0;\n}\n\n.udoc-viewer-root .udoc-spread--hidden {\n display: none;\n}\n\n/* Page slot within spread */\n.udoc-viewer-root .udoc-spread__slot {\n display: flex;\n align-items: center;\n justify-content: center;\n background: white;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.udoc-viewer-root .udoc-viewport--seamless .udoc-spread__slot {\n box-shadow: none;\n}\n\n.udoc-viewer-root .udoc-spread__slot--empty {\n background: transparent;\n box-shadow: none;\n}\n\n.udoc-viewer-root .udoc-spread__canvas {\n display: block;\n}\n\n/* Floating Toolbar */\n.udoc-viewer-root .udoc-floating-toolbar {\n position: absolute;\n bottom: 24px;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 10px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);\n z-index: 100;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__section {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__divider {\n width: 1px;\n height: 20px;\n background: rgba(0, 0, 0, 0.15);\n margin: 0 4px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.7);\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:active {\n background: rgba(0, 0, 0, 0.15);\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: default;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:disabled:hover {\n background: transparent;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn svg {\n width: 18px;\n height: 18px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-info {\n display: flex;\n align-items: center;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-input {\n width: 36px;\n padding: 2px 4px;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-input:focus {\n outline: none;\n border-color: rgba(0, 0, 0, 0.3);\n background: white;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-total {\n white-space: nowrap;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__zoom-level {\n min-width: 44px;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn--active {\n background: rgba(0, 0, 0, 0.12);\n}\n\n/* Zoom Dropdown */\n.udoc-viewer-root .udoc-zoom-dropdown {\n position: relative;\n height: 28px;\n display: flex;\n align-items: center;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__toggle {\n display: flex;\n align-items: center;\n gap: 0;\n height: 100%;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n background: transparent;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__toggle:focus-within {\n border-color: rgba(0, 0, 0, 0.3);\n background: white;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__input {\n width: 44px;\n padding: 2px 4px;\n border: none;\n border-radius: 4px 0 0 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__input:focus {\n outline: none;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 2px 2px;\n border: none;\n border-left: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 0 4px 4px 0;\n background: transparent;\n color: rgba(0, 0, 0, 0.5);\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron:hover {\n background: rgba(0, 0, 0, 0.08);\n color: rgba(0, 0, 0, 0.7);\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron--active {\n background: rgba(0, 0, 0, 0.12);\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron svg {\n width: 14px;\n height: 14px;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__menu {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 50%;\n transform: translateX(-50%);\n padding: 6px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n min-width: 100px;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__section {\n display: flex;\n flex-direction: column;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__divider {\n height: 1px;\n background: rgba(0, 0, 0, 0.1);\n margin: 6px 0;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item {\n display: block;\n width: 100%;\n padding: 6px 10px;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: left;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item--active {\n background: rgba(0, 102, 204, 0.15);\n color: #0066cc;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item--active:hover {\n background: rgba(0, 102, 204, 0.2);\n}\n\n/* View Mode Menu */\n.udoc-viewer-root .udoc-view-mode-menu {\n position: relative;\n height: 28px;\n display: flex;\n align-items: center;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__dropdown {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 0;\n padding: 8px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n min-width: 160px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__section {\n margin-bottom: 8px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__section:last-child {\n margin-bottom: 0;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__title {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n color: rgba(0, 0, 0, 0.5);\n margin-bottom: 4px;\n padding: 0 4px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__options {\n display: flex;\n gap: 2px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.6);\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--active {\n background: rgba(0, 102, 204, 0.15);\n color: #0066cc;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--active:hover {\n background: rgba(0, 102, 204, 0.2);\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: default;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--disabled:hover {\n background: transparent;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option-icon svg {\n width: 20px;\n height: 20px;\n}\n\n/* Left Panel */\n.udoc-viewer-root .udoc-left-panel {\n position: relative;\n display: flex;\n width: 240px;\n height: 100%;\n background: #f5f5f5;\n border-right: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-left-panel--closed {\n width: 0;\n overflow: hidden;\n border-right: none;\n}\n\n.udoc-viewer-root .udoc-left-panel__tabs {\n display: flex;\n flex-direction: column;\n width: 40px;\n background: #e8e8e8;\n border-right: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-left-panel__tab {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n padding: 0;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-left-panel__tab:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-left-panel__tab--active {\n background: #f5f5f5;\n color: #333;\n border-right: 2px solid #0066cc;\n}\n\n.udoc-viewer-root .udoc-left-panel__tab svg {\n width: 20px;\n height: 20px;\n}\n\n.udoc-viewer-root .udoc-left-panel__content {\n flex: 1;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-left-panel__resize-handle {\n position: absolute;\n right: 0;\n top: 0;\n width: 4px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n}\n\n.udoc-viewer-root .udoc-left-panel__resize-handle:hover,\n.udoc-viewer-root .udoc-left-panel--resizing .udoc-left-panel__resize-handle {\n background: rgba(0, 102, 204, 0.3);\n}\n\n.udoc-viewer-root .udoc-left-panel--resizing {\n transition: none;\n}\n\n/* Thumbnail Panel */\n.udoc-viewer-root .udoc-thumbnail-panel {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 8px;\n border-radius: 4px;\n cursor: pointer;\n transition: background 0.15s ease;\n flex-shrink: 0;\n width: 100%;\n box-sizing: border-box;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.udoc-viewer-root .udoc-thumbnail-item--active {\n background: rgba(0, 102, 204, 0.1);\n outline: 2px solid #0066cc;\n outline-offset: -2px;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item__canvas {\n display: block;\n max-width: calc(100% - 16px);\n background: white;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n}\n\n.udoc-viewer-root .udoc-thumbnail-item__label {\n font-size: 11px;\n color: #666;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item--active .udoc-thumbnail-item__label {\n color: #0066cc;\n font-weight: 500;\n}\n\n/* Outline Panel */\n.udoc-viewer-root .udoc-outline-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px 0;\n}\n\n.udoc-viewer-root .udoc-outline-panel__loading,\n.udoc-viewer-root .udoc-outline-panel__empty {\n padding: 16px;\n color: #888;\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-outline-item {\n display: flex;\n flex-direction: column;\n}\n\n.udoc-viewer-root .udoc-outline-item__header {\n display: flex;\n align-items: center;\n padding: 6px 12px 6px 8px;\n gap: 4px;\n min-height: 28px;\n}\n\n.udoc-viewer-root .udoc-outline-item__header--clickable {\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-outline-item__header--clickable:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.udoc-viewer-root .udoc-outline-item__header--active {\n background: rgba(0, 102, 204, 0.1);\n}\n\n.udoc-viewer-root .udoc-outline-item__header--active .udoc-outline-item__title {\n color: #0066cc;\n font-weight: 500;\n}\n\n.udoc-viewer-root .udoc-outline-item__toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n padding: 0;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n flex-shrink: 0;\n transition: transform 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-outline-item__toggle:hover {\n color: #333;\n}\n\n.udoc-viewer-root .udoc-outline-item__toggle--expanded {\n transform: rotate(90deg);\n}\n\n.udoc-viewer-root .udoc-outline-item__spacer {\n width: 16px;\n flex-shrink: 0;\n}\n\n.udoc-viewer-root .udoc-outline-item__title {\n font-size: 13px;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n}\n\n/* .udoc-outline-item__children: Indentation is handled via padding-left on header */\n\n.udoc-viewer-root .udoc-toolbar {\n display: flex;\n align-items: center;\n height: 40px;\n padding: 0 8px;\n background: #f5f5f5;\n border-bottom: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-toolbar__left,\n.udoc-viewer-root .udoc-toolbar__right {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.udoc-viewer-root .udoc-toolbar__spacer {\n flex: 1;\n}\n\n.udoc-viewer-root .udoc-toolbar__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: #555;\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-toolbar__btn:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-toolbar__btn:active {\n background: rgba(0, 0, 0, 0.12);\n}\n\n.udoc-viewer-root .udoc-toolbar__btn svg {\n width: 20px;\n height: 20px;\n}\n\n/* Right Panel */\n.udoc-viewer-root .udoc-right-panel {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 300px;\n height: 100%;\n background: #f5f5f5;\n border-left: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-right-panel--closed {\n width: 0;\n overflow: hidden;\n border-left: none;\n}\n\n.udoc-viewer-root .udoc-right-panel__resize-handle {\n position: absolute;\n left: 0;\n top: 0;\n width: 4px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n}\n\n.udoc-viewer-root .udoc-right-panel__resize-handle:hover,\n.udoc-viewer-root .udoc-right-panel--resizing .udoc-right-panel__resize-handle {\n background: rgba(0, 102, 204, 0.3);\n}\n\n.udoc-viewer-root .udoc-right-panel--resizing {\n transition: none;\n}\n\n.udoc-viewer-root .udoc-right-panel__content {\n flex: 1;\n overflow: auto;\n}\n\n/* Text Layer (for text selection) */\n.udoc-viewer-root .udoc-spread__text-layer {\n position: absolute;\n overflow: hidden;\n /* user-select: none prevents selection from starting/extending in gaps */\n user-select: none;\n pointer-events: auto;\n z-index: 1;\n}\n\n.udoc-viewer-root .udoc-text-span {\n position: absolute;\n color: transparent;\n white-space: pre;\n line-height: 1;\n font-family: sans-serif;\n /* Allow selection on actual text spans */\n user-select: text;\n}\n\n.udoc-viewer-root .udoc-text-span::selection {\n background: rgba(0, 120, 215, 0.3);\n}\n\n/* Annotation Layer */\n.udoc-viewer-root .udoc-spread__annotation-layer {\n position: absolute;\n pointer-events: none;\n z-index: 2;\n}\n\n/* Base annotation */\n.udoc-viewer-root .udoc-annotation {\n position: absolute;\n box-sizing: border-box;\n}\n\n/* Link annotation */\n.udoc-viewer-root .udoc-annotation--link {\n pointer-events: auto;\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-annotation--link:hover {\n background-color: rgba(0, 102, 204, 0.15);\n}\n\n/* Highlight annotation */\n.udoc-viewer-root .udoc-annotation--highlight {\n pointer-events: none;\n}\n\n.udoc-viewer-root .udoc-annotation__quad {\n mix-blend-mode: multiply;\n}\n\n/* Underline annotation */\n.udoc-viewer-root .udoc-annotation--underline {\n pointer-events: none;\n}\n\n/* StrikeOut annotation */\n.udoc-viewer-root .udoc-annotation--strikeout {\n pointer-events: none;\n}\n\n/* Squiggly annotation */\n.udoc-viewer-root .udoc-annotation--squiggly {\n pointer-events: none;\n}\n\n/* Text (sticky note) annotation */\n.udoc-viewer-root .udoc-annotation--text {\n pointer-events: auto;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: filter 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-annotation--text:hover {\n filter: brightness(1.1) drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));\n}\n\n.udoc-viewer-root .udoc-annotation--text svg {\n width: 100%;\n height: 100%;\n}\n\n/* Annotation popup */\n.udoc-viewer-root .udoc-annotation-popup {\n position: absolute;\n z-index: 100;\n min-width: 200px;\n max-width: 300px;\n background: #ffffc0;\n border: 1px solid #d4d4a0;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n font-size: 12px;\n color: #333;\n pointer-events: auto;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 8px;\n background: #f0f0c0;\n border-bottom: 1px solid #d4d4a0;\n border-radius: 4px 4px 0 0;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__author {\n font-weight: 600;\n color: #555;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__close {\n width: 16px;\n height: 16px;\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n flex-shrink: 0;\n margin-left: 8px;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__close:hover {\n opacity: 1;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__close svg {\n width: 12px;\n height: 12px;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__content {\n padding: 8px;\n white-space: pre-wrap;\n word-wrap: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n/* FreeText annotation */\n.udoc-viewer-root .udoc-annotation--freetext {\n pointer-events: auto;\n overflow: hidden;\n font-size: 12px;\n padding: 2px;\n}\n\n/* Stamp annotation */\n.udoc-viewer-root .udoc-annotation--stamp {\n pointer-events: none;\n}\n\n/* Caret annotation - rendered via SVG, minimal styling needed */\n.udoc-viewer-root .udoc-annotation--caret {\n pointer-events: none;\n}\n\n/* Shape annotations - rendered via SVG overlay */\n.udoc-viewer-root .udoc-annotation--line,\n.udoc-viewer-root .udoc-annotation--square,\n.udoc-viewer-root .udoc-annotation--circle,\n.udoc-viewer-root .udoc-annotation--polygon,\n.udoc-viewer-root .udoc-annotation--polyLine,\n.udoc-viewer-root .udoc-annotation--ink {\n pointer-events: none;\n}\n\n/* Redact annotation */\n.udoc-viewer-root .udoc-annotation--redact {\n pointer-events: none;\n}\n\n/* Annotation Panel */\n.udoc-viewer-root .udoc-annotation-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 32px 16px;\n text-align: center;\n color: #888;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-icon {\n color: #ccc;\n margin-bottom: 12px;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-icon svg {\n width: 48px;\n height: 48px;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-title {\n font-size: 14px;\n font-weight: 500;\n color: #666;\n margin-bottom: 4px;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-message {\n font-size: 12px;\n color: #999;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #888;\n font-size: 13px;\n}\n\n/* Comments List */\n.udoc-viewer-root .udoc-comments-list {\n display: flex;\n flex-direction: column;\n}\n\n/* Page Group */\n.udoc-viewer-root .udoc-comments-page-group {\n border-bottom: 1px solid #e0e0e0;\n}\n\n.udoc-viewer-root .udoc-comments-page-group:last-child {\n border-bottom: none;\n}\n\n.udoc-viewer-root .udoc-comments-page-header {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 12px;\n cursor: pointer;\n user-select: none;\n background: #f0f0f0;\n transition: background 0.15s;\n}\n\n.udoc-viewer-root .udoc-comments-page-header:hover {\n background: #e8e8e8;\n}\n\n.udoc-viewer-root .udoc-comments-page-header svg {\n width: 16px;\n height: 16px;\n color: #666;\n flex-shrink: 0;\n transition: transform 0.2s ease;\n}\n\n.udoc-viewer-root .udoc-comments-page-header span {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n}\n\n.udoc-viewer-root .udoc-comments-page-count {\n margin-left: auto;\n padding: 2px 6px;\n background: #ddd;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 500;\n color: #666;\n}\n\n/* Collapsed state */\n.udoc-viewer-root .udoc-comments-page-group--collapsed .udoc-comments-page-header svg {\n transform: rotate(-90deg);\n}\n\n.udoc-viewer-root .udoc-comments-page-group--collapsed .udoc-comments-page-content {\n display: none;\n}\n\n/* Page Content */\n.udoc-viewer-root .udoc-comments-page-content {\n display: flex;\n flex-direction: column;\n}\n\n/* Comment Item */\n.udoc-viewer-root .udoc-comment-item {\n display: flex;\n gap: 8px;\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n border-bottom: 1px solid #eee;\n}\n\n.udoc-viewer-root .udoc-comment-item:last-child {\n border-bottom: none;\n}\n\n.udoc-viewer-root .udoc-comment-item:hover {\n background: rgba(0, 102, 204, 0.05);\n}\n\n/* Reply indentation */\n.udoc-viewer-root .udoc-comment-reply {\n background: #fafafa;\n}\n\n.udoc-viewer-root .udoc-comment-depth-1 {\n padding-left: 28px;\n}\n\n.udoc-viewer-root .udoc-comment-depth-2 {\n padding-left: 44px;\n}\n\n.udoc-viewer-root .udoc-comment-depth-3 {\n padding-left: 60px;\n}\n\n/* Comment Icon */\n.udoc-viewer-root .udoc-comment-icon {\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #888;\n}\n\n.udoc-viewer-root .udoc-comment-icon svg {\n width: 16px;\n height: 16px;\n}\n\n/* Comment Body */\n.udoc-viewer-root .udoc-comment-body {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n/* Comment Header */\n.udoc-viewer-root .udoc-comment-header {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.udoc-viewer-root .udoc-comment-author {\n font-size: 12px;\n font-weight: 600;\n color: #333;\n}\n\n/* Status Badge */\n.udoc-viewer-root .udoc-comment-status {\n padding: 1px 6px;\n border-radius: 8px;\n font-size: 10px;\n font-weight: 500;\n text-transform: capitalize;\n}\n\n.udoc-viewer-root .udoc-comment-status--accepted {\n background: #d4edda;\n color: #155724;\n}\n\n.udoc-viewer-root .udoc-comment-status--rejected {\n background: #f8d7da;\n color: #721c24;\n}\n\n.udoc-viewer-root .udoc-comment-status--completed {\n background: #cce5ff;\n color: #004085;\n}\n\n.udoc-viewer-root .udoc-comment-status--cancelled {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.udoc-viewer-root .udoc-comment-status--marked {\n background: #fff3cd;\n color: #856404;\n}\n\n.udoc-viewer-root .udoc-comment-status--unmarked {\n background: #e2e3e5;\n color: #383d41;\n}\n\n/* Comment Contents */\n.udoc-viewer-root .udoc-comment-contents {\n font-size: 12px;\n color: #555;\n line-height: 1.4;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n line-clamp: 3;\n -webkit-box-orient: vertical;\n}\n\n/* Reply Toggle */\n.udoc-viewer-root .udoc-comment-toggle {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n margin-top: 4px;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: #0066cc;\n font-size: 11px;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.udoc-viewer-root .udoc-comment-toggle:hover {\n background: rgba(0, 102, 204, 0.1);\n}\n\n.udoc-viewer-root .udoc-comment-toggle svg {\n width: 12px;\n height: 12px;\n transition: transform 0.2s ease;\n}\n\n.udoc-viewer-root .udoc-comment-toggle--expanded svg {\n transform: rotate(90deg);\n}\n\n/* Replies Container */\n.udoc-viewer-root .udoc-comment-replies {\n display: flex;\n flex-direction: column;\n}\n\n.udoc-viewer-root .udoc-comment-replies--collapsed {\n display: none;\n}\n\n/* Annotation Highlight Animation */\n@keyframes udoc-annotation-pulse {\n 0% {\n box-shadow: 0 0 0 0 rgba(0, 102, 204, 0.7);\n }\n 50% {\n box-shadow: 0 0 0 8px rgba(0, 102, 204, 0.3);\n }\n 100% {\n box-shadow: 0 0 0 12px rgba(0, 102, 204, 0);\n }\n}\n\n.udoc-viewer-root .udoc-annotation--highlighted {\n animation: udoc-annotation-pulse 1.5s ease-out;\n outline: 2px solid #0066cc;\n outline-offset: 2px;\n border-radius: 2px;\n z-index: 10;\n}\n\n/* Highlight indicator for full-layer markup annotations */\n.udoc-viewer-root .udoc-annotation-highlight-indicator {\n position: absolute;\n box-sizing: border-box;\n pointer-events: none;\n animation: udoc-annotation-pulse 1.5s ease-out;\n outline: 2px solid #0066cc;\n outline-offset: 2px;\n border-radius: 2px;\n z-index: 10;\n}\n\n/* Mobile Panel Overlay */\n.udoc-viewer-root .udoc-panel-overlay {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.3);\n z-index: 140;\n}\n\n/* ===== Responsive: Small Mobile (\u2264480px) ===== */\n@container udoc-viewer (max-width: 480px) {\n /* Make body-slot a positioning context */\n .udoc-viewer-root .udoc-body-slot {\n position: relative;\n }\n\n /* Collapse panels to slide-out drawers */\n .udoc-viewer-root .udoc-left-panel {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 280px !important;\n z-index: 150;\n box-shadow: 4px 0 20px rgba(0, 0, 0, 0.15);\n transform: translateX(-100%);\n }\n\n .udoc-viewer-root .udoc-left-panel:not(.udoc-left-panel--closed) {\n transform: translateX(0);\n }\n\n .udoc-viewer-root .udoc-left-panel--closed {\n width: 280px !important;\n transform: translateX(-100%);\n }\n\n .udoc-viewer-root .udoc-right-panel {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 280px !important;\n z-index: 150;\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n transform: translateX(100%);\n }\n\n .udoc-viewer-root .udoc-right-panel:not(.udoc-right-panel--closed) {\n transform: translateX(0);\n }\n\n .udoc-viewer-root .udoc-right-panel--closed {\n width: 280px !important;\n transform: translateX(100%);\n }\n\n /* Show overlay when panel is open */\n .udoc-viewer-root.udoc-panel-open .udoc-panel-overlay {\n display: block;\n }\n\n /* Convert floating bar to full-width bottom toolbar */\n .udoc-viewer-root .udoc-floating-toolbar {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n transform: none;\n border-radius: 0;\n box-sizing: border-box;\n height: 40px;\n padding: 0 12px;\n gap: 8px;\n max-width: none;\n justify-content: center;\n box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\n }\n\n /* Viewport scroll area needs padding for bottom toolbar */\n .udoc-viewer-root .udoc-viewport__scroll {\n padding-bottom: 40px;\n }\n\n /* Hide fullscreen button on mobile */\n .udoc-viewer-root .udoc-toolbar__btn--fullscreen {\n display: none;\n }\n\n /* Touch targets for mobile */\n .udoc-viewer-root .udoc-floating-toolbar__btn {\n padding: 6px;\n min-width: 28px;\n min-height: 28px;\n }\n\n .udoc-viewer-root .udoc-floating-toolbar__btn svg {\n width: 18px;\n height: 18px;\n }\n\n /* Larger panel tab buttons for touch */\n .udoc-viewer-root .udoc-left-panel__tabs {\n width: 44px;\n padding: 8px 0;\n }\n\n .udoc-viewer-root .udoc-left-panel__tab {\n width: 44px;\n height: 44px;\n }\n\n .udoc-viewer-root .udoc-left-panel__tab svg {\n width: 22px;\n height: 22px;\n }\n\n /* Toolbar adjustments */\n .udoc-viewer-root .udoc-toolbar {\n padding: 0 4px;\n gap: 4px;\n }\n\n .udoc-viewer-root .udoc-toolbar__btn {\n padding: 8px;\n }\n\n /* View mode menu - right align */\n .udoc-viewer-root .udoc-view-mode-menu__dropdown {\n left: auto;\n right: 0;\n }\n\n .udoc-viewer-root .udoc-zoom-dropdown__item {\n padding: 12px 16px;\n }\n\n .udoc-viewer-root .udoc-view-mode-menu__option {\n width: 36px;\n height: 36px;\n }\n}\n\n/* ===== Password Dialog ===== */\n.udoc-viewer-root .udoc-password-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 200;\n}\n\n.udoc-viewer-root .udoc-password-dialog {\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);\n padding: 24px;\n max-width: 360px;\n width: 90%;\n}\n\n.udoc-viewer-root .udoc-password-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.udoc-viewer-root .udoc-password-icon {\n width: 32px;\n height: 32px;\n color: #666;\n flex-shrink: 0;\n}\n\n.udoc-viewer-root .udoc-password-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #333;\n}\n\n.udoc-viewer-root .udoc-password-message {\n margin: 0 0 20px 0;\n font-size: 14px;\n color: #666;\n line-height: 1.5;\n}\n\n.udoc-viewer-root .udoc-password-form {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.udoc-viewer-root .udoc-password-input-wrapper {\n display: flex;\n align-items: center;\n border: 1px solid #ddd;\n border-radius: 8px;\n background: #fff;\n transition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.udoc-viewer-root .udoc-password-input-wrapper:focus-within {\n border-color: #0066cc;\n box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.15);\n}\n\n.udoc-viewer-root .udoc-password-input {\n flex: 1;\n padding: 12px 14px;\n border: none;\n border-radius: 8px 0 0 8px;\n background: transparent;\n font-size: 15px;\n color: #333;\n outline: none;\n}\n\n.udoc-viewer-root .udoc-password-input::placeholder {\n color: #999;\n}\n\n.udoc-viewer-root .udoc-password-input:disabled {\n background: #f5f5f5;\n color: #999;\n}\n\n.udoc-viewer-root .udoc-password-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n border: none;\n background: transparent;\n color: #888;\n cursor: pointer;\n transition: color 0.15s;\n}\n\n.udoc-viewer-root .udoc-password-toggle:hover {\n color: #333;\n}\n\n.udoc-viewer-root .udoc-password-toggle svg {\n width: 20px;\n height: 20px;\n}\n\n.udoc-viewer-root .udoc-password-error {\n margin: 0;\n padding: 8px 12px;\n background: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 6px;\n font-size: 13px;\n color: #dc2626;\n}\n\n.udoc-viewer-root .udoc-password-submit {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 12px 20px;\n border: none;\n border-radius: 8px;\n background: #0066cc;\n color: #fff;\n font-size: 15px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.udoc-viewer-root .udoc-password-submit:hover:not(:disabled) {\n background: #0052a3;\n}\n\n.udoc-viewer-root .udoc-password-submit:disabled {\n background: #94a3b8;\n cursor: not-allowed;\n}\n\n.udoc-viewer-root .udoc-password-submit-spinner svg {\n width: 20px;\n height: 20px;\n}\n\n/* ===== Loading Overlay ===== */\n.udoc-viewer-root .udoc-loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(224, 224, 224, 0.95);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 180;\n backdrop-filter: blur(2px);\n}\n\n.udoc-viewer-root .udoc-loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n padding: 24px;\n}\n\n.udoc-viewer-root .udoc-loading-spinner {\n width: 40px;\n height: 40px;\n color: #0066cc;\n}\n\n.udoc-viewer-root .udoc-loading-spinner svg {\n width: 100%;\n height: 100%;\n}\n\n.udoc-viewer-root .udoc-loading-progress-container {\n width: 240px;\n}\n\n.udoc-viewer-root .udoc-loading-progress-track {\n width: 100%;\n height: 6px;\n background: #e5e7eb;\n border-radius: 3px;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-loading-progress-fill {\n height: 100%;\n background: #0066cc;\n border-radius: 3px;\n width: 0%;\n transition: width 0.2s ease-out;\n}\n\n.udoc-viewer-root .udoc-loading-progress-fill--indeterminate {\n animation: udoc-loading-indeterminate 1.5s ease-in-out infinite;\n}\n\n@keyframes udoc-loading-indeterminate {\n 0% {\n transform: translateX(-100%);\n }\n 50% {\n transform: translateX(233%);\n }\n 100% {\n transform: translateX(-100%);\n }\n}\n\n.udoc-viewer-root .udoc-loading-progress-text {\n font-size: 13px;\n color: #666;\n text-align: center;\n}\n";
|
|
2
2
|
//# sourceMappingURL=styles-inline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles-inline.d.ts","sourceRoot":"","sources":["../../../../src/ui/viewer/styles-inline.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"styles-inline.d.ts","sourceRoot":"","sources":["../../../../src/ui/viewer/styles-inline.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,gnlCA6iDxB,CAAC"}
|
|
@@ -42,7 +42,7 @@ export const inlineStyles = `.udoc-viewer-root {
|
|
|
42
42
|
width: 100%;
|
|
43
43
|
height: 100%;
|
|
44
44
|
overflow: auto;
|
|
45
|
-
scrollbar
|
|
45
|
+
/* scrollbar visibility is managed dynamically by Viewport.ts */
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
.udoc-viewer-root .udoc-viewport__container {
|
|
@@ -52,24 +52,6 @@ export const inlineStyles = `.udoc-viewer-root {
|
|
|
52
52
|
/* height set dynamically for virtual scrolling */
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
.udoc-viewer-root .udoc-viewport__watermark {
|
|
56
|
-
position: absolute;
|
|
57
|
-
right: 18px;
|
|
58
|
-
bottom: 4px;
|
|
59
|
-
padding: 2px 6px;
|
|
60
|
-
font-size: 12px;
|
|
61
|
-
font-weight: 500;
|
|
62
|
-
color: rgba(0, 0, 0, 0.3);
|
|
63
|
-
text-decoration: none;
|
|
64
|
-
text-shadow: 0 1px 2px rgba(255, 255, 255, 0.5);
|
|
65
|
-
z-index: 10;
|
|
66
|
-
transition: color 0.15s ease;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.udoc-viewer-root .udoc-viewport__watermark:hover {
|
|
70
|
-
color: rgba(0, 0, 0, 0.6);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
55
|
/* Spread */
|
|
74
56
|
.udoc-viewer-root .udoc-spread {
|
|
75
57
|
display: flex;
|
|
@@ -1311,13 +1293,6 @@ export const inlineStyles = `.udoc-viewer-root {
|
|
|
1311
1293
|
padding-bottom: 40px;
|
|
1312
1294
|
}
|
|
1313
1295
|
|
|
1314
|
-
/* Move watermark above bottom toolbar on mobile */
|
|
1315
|
-
.udoc-viewer-root .udoc-viewport__watermark {
|
|
1316
|
-
bottom: 48px;
|
|
1317
|
-
right: 10px;
|
|
1318
|
-
font-size: 11px;
|
|
1319
|
-
}
|
|
1320
|
-
|
|
1321
1296
|
/* Hide fullscreen button on mobile */
|
|
1322
1297
|
.udoc-viewer-root .udoc-toolbar__btn--fullscreen {
|
|
1323
1298
|
display: none;
|
|
@@ -1537,7 +1512,7 @@ export const inlineStyles = `.udoc-viewer-root {
|
|
|
1537
1512
|
left: 0;
|
|
1538
1513
|
right: 0;
|
|
1539
1514
|
bottom: 0;
|
|
1540
|
-
background: rgba(
|
|
1515
|
+
background: rgba(224, 224, 224, 0.95);
|
|
1541
1516
|
display: flex;
|
|
1542
1517
|
align-items: center;
|
|
1543
1518
|
justify-content: center;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles-inline.js","sourceRoot":"","sources":["../../../../src/ui/viewer/styles-inline.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"styles-inline.js","sourceRoot":"","sources":["../../../../src/ui/viewer/styles-inline.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6iD3B,CAAC"}
|
|
Binary file
|
|
@@ -241,6 +241,13 @@ export declare class WorkerClient {
|
|
|
241
241
|
* Updates the thumbnail focus and re-sorts the queue.
|
|
242
242
|
*/
|
|
243
243
|
boostThumbnailRenderPriority(docId: string, focusPage: number): void;
|
|
244
|
+
private static readonly PRERENDER_RANGE;
|
|
245
|
+
/**
|
|
246
|
+
* Prerender adjacent pages for smooth page flipping in single spread mode.
|
|
247
|
+
* Queues renders for pages before and after the current page (fire and forget).
|
|
248
|
+
* Boosts current page priority so it renders first during rapid flipping.
|
|
249
|
+
*/
|
|
250
|
+
prerenderAdjacentPages(docId: string, currentPage: number, scale: number, totalPages: number): void;
|
|
244
251
|
/**
|
|
245
252
|
* Render a page directly, bypassing the cache and queue.
|
|
246
253
|
* Useful for one-off renders that shouldn't affect the normal render flow.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerClient.d.ts","sourceRoot":"","sources":["../../../src/worker/WorkerClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkerClient.d.ts","sourceRoot":"","sources":["../../../src/worker/WorkerClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -522,6 +522,43 @@ export class WorkerClient {
|
|
|
522
522
|
this.sortQueue();
|
|
523
523
|
this.processRenderQueue();
|
|
524
524
|
}
|
|
525
|
+
static PRERENDER_RANGE = 2; // Prerender pages within ±2 of current
|
|
526
|
+
/**
|
|
527
|
+
* Prerender adjacent pages for smooth page flipping in single spread mode.
|
|
528
|
+
* Queues renders for pages before and after the current page (fire and forget).
|
|
529
|
+
* Boosts current page priority so it renders first during rapid flipping.
|
|
530
|
+
*/
|
|
531
|
+
prerenderAdjacentPages(docId, currentPage, scale, totalPages) {
|
|
532
|
+
// Boost current page priority - ensures it renders first even during rapid flipping
|
|
533
|
+
this.boostPageRenderPriority(docId, currentPage);
|
|
534
|
+
// Queue adjacent pages for prerendering
|
|
535
|
+
for (let offset = 1; offset <= WorkerClient.PRERENDER_RANGE; offset++) {
|
|
536
|
+
// Prerender next pages
|
|
537
|
+
const nextPage = currentPage + offset;
|
|
538
|
+
if (nextPage >= 1 && nextPage <= totalPages) {
|
|
539
|
+
this.requestRender({
|
|
540
|
+
docId,
|
|
541
|
+
page: nextPage,
|
|
542
|
+
type: "page",
|
|
543
|
+
scale
|
|
544
|
+
}).catch(() => {
|
|
545
|
+
// Ignore errors - prerendering is best-effort
|
|
546
|
+
});
|
|
547
|
+
}
|
|
548
|
+
// Prerender previous pages
|
|
549
|
+
const prevPage = currentPage - offset;
|
|
550
|
+
if (prevPage >= 1 && prevPage <= totalPages) {
|
|
551
|
+
this.requestRender({
|
|
552
|
+
docId,
|
|
553
|
+
page: prevPage,
|
|
554
|
+
type: "page",
|
|
555
|
+
scale
|
|
556
|
+
}).catch(() => {
|
|
557
|
+
// Ignore errors - prerendering is best-effort
|
|
558
|
+
});
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
}
|
|
525
562
|
/**
|
|
526
563
|
* Render a page directly, bypassing the cache and queue.
|
|
527
564
|
* Useful for one-off renders that shouldn't affect the normal render flow.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerClient.js","sourceRoot":"","sources":["../../../src/worker/WorkerClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkerClient.js","sourceRoot":"","sources":["../../../src/worker/WorkerClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA6DH;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,IAAY,EAAE,IAAgB,EAAE,KAAa;IACxF,OAAO,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACxD,CAAC;AAGD,MAAM,OAAO,YAAY;IACf,MAAM,CAAS;IACf,SAAS,GAAG,CAAC,CAAC;IACd,OAAO,GAAG,IAAI,GAAG,EAGtB,CAAC;IAEJ,iFAAiF;IACzE,eAAe,GAAG,IAAI,GAAG,EAAsB,CAAC;IAChD,oBAAoB,GAAG,IAAI,GAAG,EAAsB,CAAC;IACrD,WAAW,GAAoB,EAAE,CAAC;IAClC,aAAa,GAA2D,IAAI,CAAC;IAC7E,gBAAgB,GAAG,GAAG,CAAC;IACvB,qBAAqB,GAAG,GAAG,CAAC;IAEpC,uDAAuD;IAC/C,SAAS,GAA2C,IAAI,CAAC;IACzD,cAAc,GAA2C,IAAI,CAAC;IAEtE,6DAA6D;IACrD,mBAAmB,GAAG,IAAI,GAAG,EAA+B,CAAC;IAErE,kFAAkF;IAC1E,aAAa,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEtD,YAAoB,MAAc;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM;QACX,uEAAuE;QACvE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvF,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,SAAuB;QAC1C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAAgB;QACzB,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,MAAc;QAC9C,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAEzE,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAE9D,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,KAAiB;QAC7B,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,EAAE,EAAE,uCAAuC;YAC/C,KAAK;SACN,CAAC,CAA2B,CAAC;QAC9B,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,KAAiB;QAC/B,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,WAAW;YACjB,EAAE,EAAE,EAAE,EAAE,uCAAuC;YAC/C,KAAK;SACN,CAAC,CAA2B,CAAC;QAC9B,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,UAAkB;QAChC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAyB,CAAC;QAC9F,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAA+B,CAAC;QACxG,OAAO,QAAQ,CAAC,aAAa,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB;QACrD,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAA+B,CAAC;QACjH,OAAO,QAAQ,CAAC,aAAa,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAED,2BAA2B;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAA0B,CAAC;YAClG,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC,SAAS,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,SAAiB;QACrD,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,MAAM,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QAED,2BAA2B;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAa,CAAC;YAC/F,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;QAC9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,UAAkB;QACrC,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,2BAA2B;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAExE,CAAC;YACF,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,6BAA6B;YAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACnD,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAuB,CAAC;QAChG,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAA2B,CAAC;YACjG,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,UAAkB,EAAE,SAAiB;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAEvF,CAAC;YACF,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC,WAAW,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,SAAiB;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAEhF,CAAC;YACF,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,CAE3E,CAAC;YACF,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC,WAAW,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CAAC,YAA2B,EAAE,MAAgB;QAC5D,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAE9E,CAAC;QACF,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CAAC,UAAkB,EAAE,QAAgB,EAAE,eAAwB,KAAK;QACzF,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAEnG,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CAAC,UAAkB,EAAE,kBAA2B,KAAK;QACzE,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAE3F,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,UAAkB;QACtC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAEzE,CAAC;QACF,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CAAC,UAAkB;QAClC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAErE,CAAC;QACF,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAEvE,CAAC;QACF,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,UAAkB;QAC/B,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAA0B,CAAC;QAC9F,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,8EAA8E;IAC9E,kCAAkC;IAClC,8EAA8E;IAE9E;;;OAGG;IACH,qBAAqB,CAAC,KAAa,EAAE,OAA4B;QAC/D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,KAAa;QACpC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAEO,UAAU,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,8EAA8E;IAC9E,4BAA4B;IAC5B,8EAA8E;IAEtE,QAAQ,CAAC,IAAgB;QAC/B,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;IAC5E,CAAC;IAEO,eAAe,CAAC,IAAgB;QACtC,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;IAC9E,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CAAC,GAAkB;QAC9B,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEtC,oBAAoB;QACpB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QACpC,CAAC;QAED,+CAA+C;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACvC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAC7F,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC;gBACvC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;gBACrC,MAAM,CAAC,OAAO,GAAG,CAAC,MAAoB,EAAE,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzF,MAAM,CAAC,MAAM,GAAG,CAAC,KAAY,EAAE,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;QACL,CAAC;QAED,mFAAmF;QACnF,kEAAkE;QAClE,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAEhE,oBAAoB;QACpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,SAAS,GAAkB;gBAC/B,GAAG,GAAG;gBACN,QAAQ,EAAE,CAAC,EAAE,uDAAuD;gBACpE,OAAO;gBACP,MAAM;aACP,CAAC;YAEF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,mEAAmE;YACrF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,2BAA2B,CAAC,KAAa,EAAE,IAAY,EAAE,IAAgB;QAC/E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC/C,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;YACnF,IAAI,YAAY,EAAE,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,CAAC,YAAY,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,KAAa,EAAE,IAAY,EAAE,IAAgB,EAAE,KAAa;QAC1E,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,KAAc,EAAE,IAAa,EAAE,IAAiB;QAC5D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC/C,MAAM,KAAK,GACT,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;gBAC5C,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;gBACzC,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAE5C,IAAI,KAAK,EAAE,CAAC;gBACV,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,CAAC,KAAK,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,KAAc,EAAE,IAAiB;QACrD,MAAM,eAAe,GAAG,CAAC,KAA8B,EAAE,EAAE;YACzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBACnC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC9B,CAAC;gBACD,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;oBACjC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;wBAChC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;wBAC5B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1C,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/C,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,KAAa,EAAE,SAAiB;QACtD,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,4BAA4B,CAAC,KAAa,EAAE,SAAiB;QAC3D,IAAI,CAAC,cAAc,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,MAAM,CAAU,eAAe,GAAG,CAAC,CAAC,CAAC,uCAAuC;IAEpF;;;;OAIG;IACH,sBAAsB,CACpB,KAAa,EACb,WAAmB,EACnB,KAAa,EACb,UAAkB;QAElB,oFAAoF;QACpF,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEjD,wCAAwC;QACxC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,CAAC;YACtE,uBAAuB;YACvB,MAAM,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;YACtC,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC;oBACjB,KAAK;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,MAAM;oBACZ,KAAK;iBACN,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBACZ,8CAA8C;gBAChD,CAAC,CAAC,CAAC;YACL,CAAC;YAED,2BAA2B;YAC3B,MAAM,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;YACtC,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC;oBACjB,KAAK;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,MAAM;oBACZ,KAAK;iBACN,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBACZ,8CAA8C;gBAChD,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,GAAkB;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,iBAA0B,CAAC,CAAC,CAAC,YAAqB,CAAC;QAChG,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAE/E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YAEvD,yCAAyC;YACzC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC;gBAChC,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,GAAG,CAAC,KAAK;gBACrB,SAAS;gBACT,KAAK;gBACL,MAAM;aACP,CAAC,CAAwD,CAAC;YAE3D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,YAAY,WAAW;gBAClD,CAAC,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC5E,CAAC,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAElD,MAAM,MAAM,GAAiB;gBAC3B,MAAM;gBACN,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YAEF,8DAA8D;YAC9D,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,MAAM,CAAU,WAAW,GAAG,CAAC,CAAC,CAAC,kDAAkD;IAE3F;;;;;OAKG;IACK,SAAS;QACf,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAE3C,oCAAoC;QACpC,MAAM,YAAY,GAAoB,EAAE,CAAC;QACzC,MAAM,iBAAiB,GAAoB,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAoB,EAAE,CAAC;QACxC,MAAM,gBAAgB,GAAoB,EAAE,CAAC;QAE7C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK;oBACzD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;oBACrC,CAAC,CAAC,QAAQ,CAAC;gBACb,IAAI,QAAQ,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;oBACzC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,cAAc,IAAI,GAAG,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK;oBACnE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;oBAC1C,CAAC,CAAC,QAAQ,CAAC;gBACb,IAAI,QAAQ,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;oBACzC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,IAAI,SAAS,EAAE,CAAC;YACd,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzB,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7F,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7F,OAAO,SAAS,GAAG,SAAS,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACvG,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACvG,OAAO,SAAS,GAAG,SAAS,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,0FAA0F;QAC1F,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,YAAY;YACf,GAAG,iBAAiB;YACpB,GAAG,WAAW;YACd,GAAG,gBAAgB;SACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,6BAA6B;QAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,gCAAgC;QAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAE7B,qCAAqC;QACrC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAEO,kBAAkB;QACxB,sDAAsD;QACtD,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE1C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEtC,2DAA2D;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3B,4BAA4B;YAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QAEtC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,GAAkB,EAAE,GAAW;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,iBAA0B,CAAC,CAAC,CAAC,YAAqB,CAAC;QAChG,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAE/E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YAEvD,yCAAyC;YACzC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC;gBAChC,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,GAAG,CAAC,KAAK;gBACrB,SAAS;gBACT,KAAK;gBACL,MAAM;aACP,CAAC,CAAwD,CAAC;YAE3D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,YAAY,WAAW;gBAClD,CAAC,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC5E,CAAC,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAElD,MAAM,MAAM,GAAiB;gBAC3B,MAAM;gBACN,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YAEF,eAAe;YACf,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAE7C,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,GAAG,CAAC,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,IAAgB,EAAE,GAAW,EAAE,MAAoB;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE3C,uBAAuB;QACvB,OAAO,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACb,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,KAA8B;QAC7C,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,UAAU,GAAG,QAAQ,CAAC;QAE1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;gBAClC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBAC9B,MAAM,GAAG,GAAG,CAAC;YACf,CAAC;QACH,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC9B,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACxB,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAEO,IAAI,CAAC,OAAsB;QACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,KAAsD;QAC1E,MAAM,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;QACxC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAE,QAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,KAAiB;QACnC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC"}
|