@docmentis/udoc-viewer 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/wasm/udoc_bg.wasm +0 -0
- package/dist/worker/WorkerClient.js +1 -1
- package/package.json +11 -3
- package/dist/WorkerClient.d.ts +0 -36
- package/dist/WorkerClient.d.ts.map +0 -1
- package/dist/WorkerClient.js +0 -121
- package/dist/WorkerClient.js.map +0 -1
- package/dist/annotation/AnnotationLayer.d.ts +0 -166
- package/dist/annotation/AnnotationLayer.d.ts.map +0 -1
- package/dist/annotation/AnnotationLayer.js +0 -1090
- package/dist/annotation/AnnotationLayer.js.map +0 -1
- package/dist/annotation/index.d.ts +0 -6
- package/dist/annotation/index.d.ts.map +0 -1
- package/dist/annotation/index.js +0 -6
- package/dist/annotation/index.js.map +0 -1
- package/dist/components/FloatingBar.d.ts +0 -102
- package/dist/components/FloatingBar.d.ts.map +0 -1
- package/dist/components/FloatingBar.js +0 -513
- package/dist/components/FloatingBar.js.map +0 -1
- package/dist/components/Header.d.ts +0 -46
- package/dist/components/Header.d.ts.map +0 -1
- package/dist/components/Header.js +0 -93
- package/dist/components/Header.js.map +0 -1
- package/dist/components/index.d.ts +0 -6
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/index.js +0 -4
- package/dist/components/index.js.map +0 -1
- package/dist/components/panels/CommentsPanel.d.ts +0 -33
- package/dist/components/panels/CommentsPanel.d.ts.map +0 -1
- package/dist/components/panels/CommentsPanel.js +0 -176
- package/dist/components/panels/CommentsPanel.js.map +0 -1
- package/dist/components/panels/OutlinePanel.d.ts +0 -30
- package/dist/components/panels/OutlinePanel.d.ts.map +0 -1
- package/dist/components/panels/OutlinePanel.js +0 -144
- package/dist/components/panels/OutlinePanel.js.map +0 -1
- package/dist/components/panels/ThumbnailsPanel.d.ts +0 -51
- package/dist/components/panels/ThumbnailsPanel.d.ts.map +0 -1
- package/dist/components/panels/ThumbnailsPanel.js +0 -160
- package/dist/components/panels/ThumbnailsPanel.js.map +0 -1
- package/dist/components/panels/index.d.ts +0 -7
- package/dist/components/panels/index.d.ts.map +0 -1
- package/dist/components/panels/index.js +0 -4
- package/dist/components/panels/index.js.map +0 -1
- package/dist/constants.d.ts +0 -25
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -46
- package/dist/constants.js.map +0 -1
- package/dist/core/NavigationController.d.ts +0 -54
- package/dist/core/NavigationController.d.ts.map +0 -1
- package/dist/core/NavigationController.js +0 -145
- package/dist/core/NavigationController.js.map +0 -1
- package/dist/core/PerfTimer.d.ts +0 -12
- package/dist/core/PerfTimer.d.ts.map +0 -1
- package/dist/core/PerfTimer.js +0 -32
- package/dist/core/PerfTimer.js.map +0 -1
- package/dist/core/ViewerState.d.ts +0 -108
- package/dist/core/ViewerState.d.ts.map +0 -1
- package/dist/core/ViewerState.js +0 -179
- package/dist/core/ViewerState.js.map +0 -1
- package/dist/core/constants.d.ts +0 -24
- package/dist/core/constants.d.ts.map +0 -1
- package/dist/core/constants.js +0 -42
- package/dist/core/constants.js.map +0 -1
- package/dist/core/index.d.ts +0 -8
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -11
- package/dist/core/index.js.map +0 -1
- package/dist/core/types.d.ts +0 -573
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -5
- package/dist/core/types.js.map +0 -1
- package/dist/icons/icons.d.ts +0 -41
- package/dist/icons/icons.d.ts.map +0 -1
- package/dist/icons/icons.js +0 -51
- package/dist/icons/icons.js.map +0 -1
- package/dist/icons/index.d.ts +0 -3
- package/dist/icons/index.d.ts.map +0 -1
- package/dist/icons/index.js +0 -2
- package/dist/icons/index.js.map +0 -1
- package/dist/layout/BandManager.d.ts +0 -87
- package/dist/layout/BandManager.d.ts.map +0 -1
- package/dist/layout/BandManager.js +0 -185
- package/dist/layout/BandManager.js.map +0 -1
- package/dist/layout/LayoutCalculator.d.ts +0 -42
- package/dist/layout/LayoutCalculator.d.ts.map +0 -1
- package/dist/layout/LayoutCalculator.js +0 -180
- package/dist/layout/LayoutCalculator.js.map +0 -1
- package/dist/layout/LayoutState.d.ts +0 -46
- package/dist/layout/LayoutState.d.ts.map +0 -1
- package/dist/layout/LayoutState.js +0 -109
- package/dist/layout/LayoutState.js.map +0 -1
- package/dist/layout/TransitionCoordinator.d.ts +0 -11
- package/dist/layout/TransitionCoordinator.d.ts.map +0 -1
- package/dist/layout/TransitionCoordinator.js +0 -22
- package/dist/layout/TransitionCoordinator.js.map +0 -1
- package/dist/layout/index.d.ts +0 -7
- package/dist/layout/index.d.ts.map +0 -1
- package/dist/layout/index.js +0 -4
- package/dist/layout/index.js.map +0 -1
- package/dist/rendering/BandManager.d.ts +0 -87
- package/dist/rendering/BandManager.d.ts.map +0 -1
- package/dist/rendering/BandManager.js +0 -185
- package/dist/rendering/BandManager.js.map +0 -1
- package/dist/rendering/PageCache.d.ts +0 -75
- package/dist/rendering/PageCache.d.ts.map +0 -1
- package/dist/rendering/PageCache.js +0 -122
- package/dist/rendering/PageCache.js.map +0 -1
- package/dist/rendering/RenderQueue.d.ts +0 -75
- package/dist/rendering/RenderQueue.d.ts.map +0 -1
- package/dist/rendering/RenderQueue.js +0 -105
- package/dist/rendering/RenderQueue.js.map +0 -1
- package/dist/rendering/ThumbnailQueue.d.ts +0 -57
- package/dist/rendering/ThumbnailQueue.d.ts.map +0 -1
- package/dist/rendering/ThumbnailQueue.js +0 -85
- package/dist/rendering/ThumbnailQueue.js.map +0 -1
- package/dist/rendering/index.d.ts +0 -13
- package/dist/rendering/index.d.ts.map +0 -1
- package/dist/rendering/index.js +0 -10
- package/dist/rendering/index.js.map +0 -1
- package/dist/rendering/types.d.ts +0 -72
- package/dist/rendering/types.d.ts.map +0 -1
- package/dist/rendering/types.js +0 -5
- package/dist/rendering/types.js.map +0 -1
- package/dist/styles/index.d.ts +0 -6
- package/dist/styles/index.d.ts.map +0 -1
- package/dist/styles/index.js +0 -1221
- package/dist/styles/index.js.map +0 -1
- package/dist/types.d.ts +0 -6
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -6
- package/dist/types.js.map +0 -1
- package/dist/ui/Component.d.ts +0 -127
- package/dist/ui/Component.d.ts.map +0 -1
- package/dist/ui/Component.js +0 -201
- package/dist/ui/Component.js.map +0 -1
- package/dist/ui/annotation/AnnotationLayer.d.ts +0 -90
- package/dist/ui/annotation/AnnotationLayer.d.ts.map +0 -1
- package/dist/ui/annotation/AnnotationLayer.js +0 -322
- package/dist/ui/annotation/AnnotationLayer.js.map +0 -1
- package/dist/ui/annotation/LinkRenderer.d.ts +0 -32
- package/dist/ui/annotation/LinkRenderer.d.ts.map +0 -1
- package/dist/ui/annotation/LinkRenderer.js +0 -74
- package/dist/ui/annotation/LinkRenderer.js.map +0 -1
- package/dist/ui/annotation/MarkupRenderer.d.ts +0 -40
- package/dist/ui/annotation/MarkupRenderer.d.ts.map +0 -1
- package/dist/ui/annotation/MarkupRenderer.js +0 -154
- package/dist/ui/annotation/MarkupRenderer.js.map +0 -1
- package/dist/ui/annotation/ShapeRenderer.d.ts +0 -46
- package/dist/ui/annotation/ShapeRenderer.d.ts.map +0 -1
- package/dist/ui/annotation/ShapeRenderer.js +0 -376
- package/dist/ui/annotation/ShapeRenderer.js.map +0 -1
- package/dist/ui/annotation/TextRenderer.d.ts +0 -36
- package/dist/ui/annotation/TextRenderer.d.ts.map +0 -1
- package/dist/ui/annotation/TextRenderer.js +0 -199
- package/dist/ui/annotation/TextRenderer.js.map +0 -1
- package/dist/ui/annotation/index.d.ts +0 -17
- package/dist/ui/annotation/index.d.ts.map +0 -1
- package/dist/ui/annotation/index.js +0 -13
- package/dist/ui/annotation/index.js.map +0 -1
- package/dist/ui/annotation/utils.d.ts +0 -40
- package/dist/ui/annotation/utils.d.ts.map +0 -1
- package/dist/ui/annotation/utils.js +0 -62
- package/dist/ui/annotation/utils.js.map +0 -1
- package/dist/ui/components/CommentsContent.d.ts +0 -35
- package/dist/ui/components/CommentsContent.d.ts.map +0 -1
- package/dist/ui/components/CommentsContent.js +0 -203
- package/dist/ui/components/CommentsContent.js.map +0 -1
- package/dist/ui/components/FloatingBar.d.ts +0 -55
- package/dist/ui/components/FloatingBar.d.ts.map +0 -1
- package/dist/ui/components/FloatingBar.js +0 -585
- package/dist/ui/components/FloatingBar.js.map +0 -1
- package/dist/ui/components/Header.d.ts +0 -29
- package/dist/ui/components/Header.d.ts.map +0 -1
- package/dist/ui/components/Header.js +0 -127
- package/dist/ui/components/Header.js.map +0 -1
- package/dist/ui/components/LeftPanel.d.ts +0 -54
- package/dist/ui/components/LeftPanel.d.ts.map +0 -1
- package/dist/ui/components/LeftPanel.js +0 -202
- package/dist/ui/components/LeftPanel.js.map +0 -1
- package/dist/ui/components/OutlineContent.d.ts +0 -34
- package/dist/ui/components/OutlineContent.d.ts.map +0 -1
- package/dist/ui/components/OutlineContent.js +0 -147
- package/dist/ui/components/OutlineContent.js.map +0 -1
- package/dist/ui/components/RightPanel.d.ts +0 -52
- package/dist/ui/components/RightPanel.d.ts.map +0 -1
- package/dist/ui/components/RightPanel.js +0 -142
- package/dist/ui/components/RightPanel.js.map +0 -1
- package/dist/ui/components/Viewport.d.ts +0 -70
- package/dist/ui/components/Viewport.d.ts.map +0 -1
- package/dist/ui/components/Viewport.js +0 -173
- package/dist/ui/components/Viewport.js.map +0 -1
- package/dist/ui/components/index.d.ts +0 -11
- package/dist/ui/components/index.d.ts.map +0 -1
- package/dist/ui/components/index.js +0 -10
- package/dist/ui/components/index.js.map +0 -1
- package/dist/ui/icons/icons.d.ts +0 -43
- package/dist/ui/icons/icons.d.ts.map +0 -1
- package/dist/ui/icons/icons.js +0 -46
- package/dist/ui/icons/icons.js.map +0 -1
- package/dist/ui/icons/index.d.ts +0 -11
- package/dist/ui/icons/index.d.ts.map +0 -1
- package/dist/ui/icons/index.js +0 -18
- package/dist/ui/icons/index.js.map +0 -1
- package/dist/ui/index.d.ts +0 -7
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js +0 -9
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/styles/base.css.d.ts +0 -5
- package/dist/ui/styles/base.css.d.ts.map +0 -1
- package/dist/ui/styles/base.css.js +0 -49
- package/dist/ui/styles/base.css.js.map +0 -1
- package/dist/ui/styles/floating-bar.css.d.ts +0 -5
- package/dist/ui/styles/floating-bar.css.d.ts.map +0 -1
- package/dist/ui/styles/floating-bar.css.js +0 -417
- package/dist/ui/styles/floating-bar.css.js.map +0 -1
- package/dist/ui/styles/header.css.d.ts +0 -5
- package/dist/ui/styles/header.css.d.ts.map +0 -1
- package/dist/ui/styles/header.css.js +0 -49
- package/dist/ui/styles/header.css.js.map +0 -1
- package/dist/ui/styles/index.d.ts +0 -21
- package/dist/ui/styles/index.d.ts.map +0 -1
- package/dist/ui/styles/index.js +0 -48
- package/dist/ui/styles/index.js.map +0 -1
- package/dist/ui/styles/panels.css.d.ts +0 -5
- package/dist/ui/styles/panels.css.d.ts.map +0 -1
- package/dist/ui/styles/panels.css.js +0 -446
- package/dist/ui/styles/panels.css.js.map +0 -1
- package/dist/ui/styles/responsive.css.d.ts +0 -5
- package/dist/ui/styles/responsive.css.d.ts.map +0 -1
- package/dist/ui/styles/responsive.css.js +0 -201
- package/dist/ui/styles/responsive.css.js.map +0 -1
- package/dist/ui/styles/variables.css.d.ts +0 -6
- package/dist/ui/styles/variables.css.d.ts.map +0 -1
- package/dist/ui/styles/variables.css.js +0 -75
- package/dist/ui/styles/variables.css.js.map +0 -1
- package/dist/ui/styles/viewport.css.d.ts +0 -5
- package/dist/ui/styles/viewport.css.d.ts.map +0 -1
- package/dist/ui/styles/viewport.css.js +0 -87
- package/dist/ui/styles/viewport.css.js.map +0 -1
- package/dist/view/LayoutCalculator.d.ts +0 -42
- package/dist/view/LayoutCalculator.d.ts.map +0 -1
- package/dist/view/LayoutCalculator.js +0 -180
- package/dist/view/LayoutCalculator.js.map +0 -1
- package/dist/view/TransitionCoordinator.d.ts +0 -11
- package/dist/view/TransitionCoordinator.d.ts.map +0 -1
- package/dist/view/TransitionCoordinator.js +0 -22
- package/dist/view/TransitionCoordinator.js.map +0 -1
- package/dist/view/ViewState.d.ts +0 -46
- package/dist/view/ViewState.d.ts.map +0 -1
- package/dist/view/ViewState.js +0 -109
- package/dist/view/ViewState.js.map +0 -1
- package/dist/view/index.d.ts +0 -7
- package/dist/view/index.d.ts.map +0 -1
- package/dist/view/index.js +0 -4
- package/dist/view/index.js.map +0 -1
- package/dist/worker/types.d.ts +0 -81
- package/dist/worker/types.d.ts.map +0 -1
- package/dist/worker/types.js +0 -6
- package/dist/worker/types.js.map +0 -1
- package/dist/worker.d.ts +0 -2
- package/dist/worker.d.ts.map +0 -1
- package/dist/worker.js +0 -205
- package/dist/worker.js.map +0 -1
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { ICONS } from '../icons';
|
|
2
|
-
/**
|
|
3
|
-
* Header bar component with panel toggles and action buttons.
|
|
4
|
-
*/
|
|
5
|
-
export class Header {
|
|
6
|
-
callbacks;
|
|
7
|
-
elements = null;
|
|
8
|
-
constructor(callbacks) {
|
|
9
|
-
this.callbacks = callbacks;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Create and return the header element.
|
|
13
|
-
*/
|
|
14
|
-
create(options) {
|
|
15
|
-
const header = document.createElement('div');
|
|
16
|
-
header.className = 'udoc-header';
|
|
17
|
-
let leftPanelToggleBtn = null;
|
|
18
|
-
let searchBtn = null;
|
|
19
|
-
let commentsBtn = null;
|
|
20
|
-
// Left panel toggle button
|
|
21
|
-
if (options.showLeftPanel) {
|
|
22
|
-
leftPanelToggleBtn = document.createElement('button');
|
|
23
|
-
leftPanelToggleBtn.className = 'udoc-header-btn';
|
|
24
|
-
leftPanelToggleBtn.innerHTML = ICONS.menu;
|
|
25
|
-
leftPanelToggleBtn.title = 'Toggle left panel';
|
|
26
|
-
leftPanelToggleBtn.addEventListener('click', () => this.callbacks.onLeftPanelToggle());
|
|
27
|
-
header.appendChild(leftPanelToggleBtn);
|
|
28
|
-
}
|
|
29
|
-
// Action buttons (right side)
|
|
30
|
-
const actions = document.createElement('div');
|
|
31
|
-
actions.className = 'udoc-header-actions';
|
|
32
|
-
// Search button (opens right panel with search tab)
|
|
33
|
-
if (options.showRightPanel) {
|
|
34
|
-
searchBtn = document.createElement('button');
|
|
35
|
-
searchBtn.className = 'udoc-header-btn';
|
|
36
|
-
searchBtn.innerHTML = ICONS.search;
|
|
37
|
-
searchBtn.title = 'Search';
|
|
38
|
-
searchBtn.addEventListener('click', () => this.callbacks.onSearchClick());
|
|
39
|
-
actions.appendChild(searchBtn);
|
|
40
|
-
// Comments button (opens right panel with comments tab)
|
|
41
|
-
commentsBtn = document.createElement('button');
|
|
42
|
-
commentsBtn.className = 'udoc-header-btn';
|
|
43
|
-
commentsBtn.innerHTML = ICONS.comments;
|
|
44
|
-
commentsBtn.title = 'Comments';
|
|
45
|
-
commentsBtn.addEventListener('click', () => this.callbacks.onCommentsClick());
|
|
46
|
-
actions.appendChild(commentsBtn);
|
|
47
|
-
}
|
|
48
|
-
// Fullscreen button
|
|
49
|
-
const fullscreenBtn = document.createElement('button');
|
|
50
|
-
fullscreenBtn.className = 'udoc-header-btn';
|
|
51
|
-
fullscreenBtn.innerHTML = ICONS.fullscreen;
|
|
52
|
-
fullscreenBtn.title = 'Fullscreen';
|
|
53
|
-
fullscreenBtn.addEventListener('click', () => this.callbacks.onFullscreenToggle());
|
|
54
|
-
actions.appendChild(fullscreenBtn);
|
|
55
|
-
header.appendChild(actions);
|
|
56
|
-
this.elements = {
|
|
57
|
-
header,
|
|
58
|
-
leftPanelToggleBtn,
|
|
59
|
-
searchBtn,
|
|
60
|
-
commentsBtn,
|
|
61
|
-
fullscreenBtn,
|
|
62
|
-
};
|
|
63
|
-
return this.elements;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Update the left panel toggle button's active state.
|
|
67
|
-
*/
|
|
68
|
-
setLeftPanelActive(active) {
|
|
69
|
-
this.elements?.leftPanelToggleBtn?.classList.toggle('active', active);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Update the comments button's active state.
|
|
73
|
-
*/
|
|
74
|
-
setCommentsActive(active) {
|
|
75
|
-
this.elements?.commentsBtn?.classList.toggle('active', active);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Update the search button's active state.
|
|
79
|
-
*/
|
|
80
|
-
setSearchActive(active) {
|
|
81
|
-
this.elements?.searchBtn?.classList.toggle('active', active);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Update the fullscreen button icon based on fullscreen state.
|
|
85
|
-
*/
|
|
86
|
-
setFullscreen(isFullscreen) {
|
|
87
|
-
if (this.elements?.fullscreenBtn) {
|
|
88
|
-
this.elements.fullscreenBtn.innerHTML = isFullscreen ? ICONS.fullscreenExit : ICONS.fullscreen;
|
|
89
|
-
this.elements.fullscreenBtn.title = isFullscreen ? 'Exit fullscreen' : 'Fullscreen';
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=Header.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/components/Header.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * from './panels';
|
|
2
|
-
export { Header } from './Header';
|
|
3
|
-
export type { HeaderCallbacks, HeaderOptions, HeaderElements } from './Header';
|
|
4
|
-
export { FloatingBar } from './FloatingBar';
|
|
5
|
-
export type { FloatingBarCallbacks, FloatingBarState, FloatingBarElements } from './FloatingBar';
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/components/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { Annotation } from '../../types';
|
|
2
|
-
export interface CommentsPanelCallbacks {
|
|
3
|
-
onPageClick: (pageIndex: number) => void;
|
|
4
|
-
getAnnotationsByPage: () => Map<number, Annotation[]>;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Panel component for displaying document comments/annotations.
|
|
8
|
-
*/
|
|
9
|
-
export declare class CommentsPanel {
|
|
10
|
-
private container;
|
|
11
|
-
private callbacks;
|
|
12
|
-
constructor(callbacks: CommentsPanelCallbacks);
|
|
13
|
-
/**
|
|
14
|
-
* Render comments into the given container.
|
|
15
|
-
*/
|
|
16
|
-
render(container: HTMLElement): void;
|
|
17
|
-
/**
|
|
18
|
-
* Clear the comments panel.
|
|
19
|
-
*/
|
|
20
|
-
clear(): void;
|
|
21
|
-
/**
|
|
22
|
-
* Destroy the panel and release resources.
|
|
23
|
-
*/
|
|
24
|
-
destroy(): void;
|
|
25
|
-
private renderPlaceholder;
|
|
26
|
-
/**
|
|
27
|
-
* Render a single comment item with its replies.
|
|
28
|
-
* @param depth - Nesting depth (0 = top-level, 1+ = replies)
|
|
29
|
-
*/
|
|
30
|
-
private renderCommentItem;
|
|
31
|
-
private getAnnotationTypeIcon;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=CommentsPanel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CommentsPanel.d.ts","sourceRoot":"","sources":["../../../src/components/panels/CommentsPanel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,oBAAoB,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;CACzD;AAED;;GAEG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,SAAS,CAAyB;gBAE9B,SAAS,EAAE,sBAAsB;IAI7C;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAyDpC;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA4FzB,OAAO,CAAC,qBAAqB;CAchC"}
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import { ICONS } from '../../icons';
|
|
2
|
-
/**
|
|
3
|
-
* Panel component for displaying document comments/annotations.
|
|
4
|
-
*/
|
|
5
|
-
export class CommentsPanel {
|
|
6
|
-
container = null;
|
|
7
|
-
callbacks;
|
|
8
|
-
constructor(callbacks) {
|
|
9
|
-
this.callbacks = callbacks;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Render comments into the given container.
|
|
13
|
-
*/
|
|
14
|
-
render(container) {
|
|
15
|
-
this.container = container;
|
|
16
|
-
container.innerHTML = '';
|
|
17
|
-
const annotationsByPage = this.callbacks.getAnnotationsByPage();
|
|
18
|
-
if (annotationsByPage.size === 0) {
|
|
19
|
-
this.renderPlaceholder(container);
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
const list = document.createElement('div');
|
|
23
|
-
list.className = 'udoc-comments-list';
|
|
24
|
-
// Sort pages by index
|
|
25
|
-
const sortedPages = Array.from(annotationsByPage.keys()).sort((a, b) => a - b);
|
|
26
|
-
for (const pageIndex of sortedPages) {
|
|
27
|
-
const annotations = annotationsByPage.get(pageIndex);
|
|
28
|
-
// Page group container
|
|
29
|
-
const pageGroup = document.createElement('div');
|
|
30
|
-
pageGroup.className = 'udoc-comments-page-group';
|
|
31
|
-
// Page header (foldable)
|
|
32
|
-
const pageHeader = document.createElement('div');
|
|
33
|
-
pageHeader.className = 'udoc-comments-page-header';
|
|
34
|
-
pageHeader.innerHTML = `${ICONS.chevronDown}<span>Page ${pageIndex + 1}</span><span class="udoc-comments-page-count">${annotations.length}</span>`;
|
|
35
|
-
pageGroup.appendChild(pageHeader);
|
|
36
|
-
// Page content container
|
|
37
|
-
const pageContent = document.createElement('div');
|
|
38
|
-
pageContent.className = 'udoc-comments-page-content';
|
|
39
|
-
// Render each annotation
|
|
40
|
-
for (const annotation of annotations) {
|
|
41
|
-
this.renderCommentItem(pageContent, annotation, pageIndex, 0);
|
|
42
|
-
}
|
|
43
|
-
pageGroup.appendChild(pageContent);
|
|
44
|
-
// Toggle click handler for page header
|
|
45
|
-
pageHeader.addEventListener('click', () => {
|
|
46
|
-
const isCollapsed = pageGroup.classList.contains('udoc-comments-page-collapsed');
|
|
47
|
-
if (isCollapsed) {
|
|
48
|
-
pageGroup.classList.remove('udoc-comments-page-collapsed');
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
pageGroup.classList.add('udoc-comments-page-collapsed');
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
list.appendChild(pageGroup);
|
|
55
|
-
}
|
|
56
|
-
container.appendChild(list);
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Clear the comments panel.
|
|
60
|
-
*/
|
|
61
|
-
clear() {
|
|
62
|
-
if (this.container) {
|
|
63
|
-
this.container.innerHTML = '';
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Destroy the panel and release resources.
|
|
68
|
-
*/
|
|
69
|
-
destroy() {
|
|
70
|
-
this.clear();
|
|
71
|
-
this.container = null;
|
|
72
|
-
}
|
|
73
|
-
renderPlaceholder(container) {
|
|
74
|
-
const placeholder = document.createElement('div');
|
|
75
|
-
placeholder.className = 'udoc-panel-placeholder';
|
|
76
|
-
placeholder.innerHTML = `${ICONS.comments}<div>Comments</div><div>No comments in this document</div>`;
|
|
77
|
-
container.appendChild(placeholder);
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Render a single comment item with its replies.
|
|
81
|
-
* @param depth - Nesting depth (0 = top-level, 1+ = replies)
|
|
82
|
-
*/
|
|
83
|
-
renderCommentItem(container, annotation, pageIndex, depth = 0) {
|
|
84
|
-
const item = document.createElement('div');
|
|
85
|
-
item.className = depth > 0 ? `udoc-comment-item udoc-comment-reply udoc-comment-depth-${Math.min(depth, 3)}` : 'udoc-comment-item';
|
|
86
|
-
// Icon on the left
|
|
87
|
-
const icon = document.createElement('div');
|
|
88
|
-
icon.className = 'udoc-comment-icon';
|
|
89
|
-
icon.innerHTML = this.getAnnotationTypeIcon(annotation.type);
|
|
90
|
-
item.appendChild(icon);
|
|
91
|
-
// Body container for title, contents, and toggle button
|
|
92
|
-
const body = document.createElement('div');
|
|
93
|
-
body.className = 'udoc-comment-body';
|
|
94
|
-
// Header with title (author first, fallback to subject) and status badge
|
|
95
|
-
const header = document.createElement('div');
|
|
96
|
-
header.className = 'udoc-comment-header';
|
|
97
|
-
const meta = annotation.metadata;
|
|
98
|
-
const title = meta?.author || meta?.subject;
|
|
99
|
-
if (title) {
|
|
100
|
-
const titleEl = document.createElement('span');
|
|
101
|
-
titleEl.className = 'udoc-comment-author';
|
|
102
|
-
titleEl.textContent = title;
|
|
103
|
-
header.appendChild(titleEl);
|
|
104
|
-
}
|
|
105
|
-
// Status badge
|
|
106
|
-
if (meta?.state) {
|
|
107
|
-
const badge = document.createElement('span');
|
|
108
|
-
badge.className = `udoc-comment-status udoc-comment-status-${meta.state.toLowerCase()}`;
|
|
109
|
-
badge.textContent = meta.state;
|
|
110
|
-
header.appendChild(badge);
|
|
111
|
-
}
|
|
112
|
-
body.appendChild(header);
|
|
113
|
-
// Contents
|
|
114
|
-
if (meta?.contents) {
|
|
115
|
-
const contents = document.createElement('div');
|
|
116
|
-
contents.className = 'udoc-comment-contents';
|
|
117
|
-
contents.textContent = meta.contents;
|
|
118
|
-
body.appendChild(contents);
|
|
119
|
-
}
|
|
120
|
-
// Reply toggle button (inside body so it aligns with content)
|
|
121
|
-
if (annotation.replies && annotation.replies.length > 0) {
|
|
122
|
-
const toggleBtn = document.createElement('button');
|
|
123
|
-
toggleBtn.className = 'udoc-comment-toggle';
|
|
124
|
-
toggleBtn.innerHTML = `${ICONS.chevronRight}<span>${annotation.replies.length} ${annotation.replies.length === 1 ? 'reply' : 'replies'}</span>`;
|
|
125
|
-
toggleBtn.title = 'Show replies';
|
|
126
|
-
body.appendChild(toggleBtn);
|
|
127
|
-
}
|
|
128
|
-
item.appendChild(body);
|
|
129
|
-
// Click to navigate
|
|
130
|
-
item.addEventListener('click', (e) => {
|
|
131
|
-
e.stopPropagation();
|
|
132
|
-
this.callbacks.onPageClick(pageIndex);
|
|
133
|
-
});
|
|
134
|
-
container.appendChild(item);
|
|
135
|
-
// Render replies (foldable, collapsed by default)
|
|
136
|
-
if (annotation.replies && annotation.replies.length > 0) {
|
|
137
|
-
const toggleBtn = body.querySelector('.udoc-comment-toggle');
|
|
138
|
-
const repliesContainer = document.createElement('div');
|
|
139
|
-
repliesContainer.className = 'udoc-comment-replies udoc-comment-replies-collapsed';
|
|
140
|
-
for (const reply of annotation.replies) {
|
|
141
|
-
this.renderCommentItem(repliesContainer, reply, pageIndex, depth + 1);
|
|
142
|
-
}
|
|
143
|
-
container.appendChild(repliesContainer);
|
|
144
|
-
// Toggle click handler
|
|
145
|
-
toggleBtn.addEventListener('click', (e) => {
|
|
146
|
-
e.stopPropagation();
|
|
147
|
-
const isCollapsed = repliesContainer.classList.contains('udoc-comment-replies-collapsed');
|
|
148
|
-
if (isCollapsed) {
|
|
149
|
-
repliesContainer.classList.remove('udoc-comment-replies-collapsed');
|
|
150
|
-
toggleBtn.classList.add('udoc-comment-toggle-expanded');
|
|
151
|
-
toggleBtn.title = 'Hide replies';
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
repliesContainer.classList.add('udoc-comment-replies-collapsed');
|
|
155
|
-
toggleBtn.classList.remove('udoc-comment-toggle-expanded');
|
|
156
|
-
toggleBtn.title = 'Show replies';
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
getAnnotationTypeIcon(type) {
|
|
162
|
-
switch (type) {
|
|
163
|
-
case 'Text':
|
|
164
|
-
case 'FreeText':
|
|
165
|
-
return ICONS.stickyNote;
|
|
166
|
-
case 'Highlight':
|
|
167
|
-
case 'Underline':
|
|
168
|
-
case 'StrikeOut':
|
|
169
|
-
case 'Squiggly':
|
|
170
|
-
return ICONS.annotations;
|
|
171
|
-
default:
|
|
172
|
-
return ICONS.comments;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
//# sourceMappingURL=CommentsPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CommentsPanel.js","sourceRoot":"","sources":["../../../src/components/panels/CommentsPanel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { OutlineItem, Destination } from '../../types';
|
|
2
|
-
export interface OutlinePanelCallbacks {
|
|
3
|
-
onNavigate: (destination: Destination) => void;
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* Panel component for displaying document outline (table of contents).
|
|
7
|
-
*/
|
|
8
|
-
export declare class OutlinePanel {
|
|
9
|
-
private container;
|
|
10
|
-
private callbacks;
|
|
11
|
-
private collapsedItems;
|
|
12
|
-
constructor(callbacks: OutlinePanelCallbacks);
|
|
13
|
-
/**
|
|
14
|
-
* Render the outline into the given container.
|
|
15
|
-
*/
|
|
16
|
-
render(container: HTMLElement, items: OutlineItem[]): void;
|
|
17
|
-
/**
|
|
18
|
-
* Clear the outline panel.
|
|
19
|
-
*/
|
|
20
|
-
clear(): void;
|
|
21
|
-
/**
|
|
22
|
-
* Destroy the panel and release resources.
|
|
23
|
-
*/
|
|
24
|
-
destroy(): void;
|
|
25
|
-
private renderPlaceholder;
|
|
26
|
-
private initializeCollapseState;
|
|
27
|
-
private renderItems;
|
|
28
|
-
private toggleItem;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=OutlinePanel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OutlinePanel.d.ts","sourceRoot":"","sources":["../../../src/components/panels/OutlinePanel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG5D,MAAM,WAAW,qBAAqB;IAClC,UAAU,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;CAClD;AAED;;GAEG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,cAAc,CAA0B;gBAEpC,SAAS,EAAE,qBAAqB;IAI5C;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI;IAsB1D;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,WAAW;IAkEnB,OAAO,CAAC,UAAU;CAmBrB"}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { ICONS } from '../../icons';
|
|
2
|
-
/**
|
|
3
|
-
* Panel component for displaying document outline (table of contents).
|
|
4
|
-
*/
|
|
5
|
-
export class OutlinePanel {
|
|
6
|
-
container = null;
|
|
7
|
-
callbacks;
|
|
8
|
-
collapsedItems = new Set();
|
|
9
|
-
constructor(callbacks) {
|
|
10
|
-
this.callbacks = callbacks;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Render the outline into the given container.
|
|
14
|
-
*/
|
|
15
|
-
render(container, items) {
|
|
16
|
-
this.container = container;
|
|
17
|
-
container.innerHTML = '';
|
|
18
|
-
if (items.length === 0) {
|
|
19
|
-
this.renderPlaceholder(container);
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
// Initialize collapsed state from PDF data
|
|
23
|
-
this.initializeCollapseState(items, '');
|
|
24
|
-
// Create outline container
|
|
25
|
-
const outlineEl = document.createElement('div');
|
|
26
|
-
outlineEl.className = 'udoc-outline';
|
|
27
|
-
// Render outline items recursively
|
|
28
|
-
this.renderItems(outlineEl, items, 0);
|
|
29
|
-
container.appendChild(outlineEl);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Clear the outline panel.
|
|
33
|
-
*/
|
|
34
|
-
clear() {
|
|
35
|
-
if (this.container) {
|
|
36
|
-
this.container.innerHTML = '';
|
|
37
|
-
}
|
|
38
|
-
this.collapsedItems.clear();
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Destroy the panel and release resources.
|
|
42
|
-
*/
|
|
43
|
-
destroy() {
|
|
44
|
-
this.clear();
|
|
45
|
-
this.container = null;
|
|
46
|
-
}
|
|
47
|
-
renderPlaceholder(container) {
|
|
48
|
-
const placeholder = document.createElement('div');
|
|
49
|
-
placeholder.className = 'udoc-panel-placeholder';
|
|
50
|
-
placeholder.innerHTML = `${ICONS.outline}<div>Outline</div><div>No outline available</div>`;
|
|
51
|
-
container.appendChild(placeholder);
|
|
52
|
-
}
|
|
53
|
-
initializeCollapseState(items, pathPrefix) {
|
|
54
|
-
for (let i = 0; i < items.length; i++) {
|
|
55
|
-
const item = items[i];
|
|
56
|
-
const itemPath = pathPrefix ? `${pathPrefix}.${i}` : `${i}`;
|
|
57
|
-
// If the PDF specifies this item should be initially collapsed, add to set
|
|
58
|
-
if (item.initiallyCollapsed && item.children && item.children.length > 0) {
|
|
59
|
-
this.collapsedItems.add(itemPath);
|
|
60
|
-
}
|
|
61
|
-
// Recurse into children
|
|
62
|
-
if (item.children && item.children.length > 0) {
|
|
63
|
-
this.initializeCollapseState(item.children, itemPath);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
renderItems(container, items, level, pathPrefix = '') {
|
|
68
|
-
for (let i = 0; i < items.length; i++) {
|
|
69
|
-
const item = items[i];
|
|
70
|
-
const itemPath = pathPrefix ? `${pathPrefix}.${i}` : `${i}`;
|
|
71
|
-
const hasChildren = item.children && item.children.length > 0;
|
|
72
|
-
const isCollapsed = this.collapsedItems.has(itemPath);
|
|
73
|
-
// Create node container (item + children)
|
|
74
|
-
const nodeEl = document.createElement('div');
|
|
75
|
-
nodeEl.className = 'udoc-outline-node';
|
|
76
|
-
// Create outline item element
|
|
77
|
-
const itemEl = document.createElement('div');
|
|
78
|
-
itemEl.className = 'udoc-outline-item';
|
|
79
|
-
itemEl.style.paddingLeft = `${12 + level * 16}px`;
|
|
80
|
-
// Children element reference for toggle
|
|
81
|
-
let childrenEl = null;
|
|
82
|
-
// Add expand/collapse toggle for items with children
|
|
83
|
-
if (hasChildren) {
|
|
84
|
-
const toggle = document.createElement('span');
|
|
85
|
-
toggle.className = 'udoc-outline-toggle' + (isCollapsed ? ' collapsed' : '');
|
|
86
|
-
toggle.innerHTML = ICONS.chevronDown;
|
|
87
|
-
toggle.addEventListener('click', (e) => {
|
|
88
|
-
e.stopPropagation();
|
|
89
|
-
this.toggleItem(itemPath, toggle, childrenEl);
|
|
90
|
-
});
|
|
91
|
-
itemEl.appendChild(toggle);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
// Placeholder to maintain alignment
|
|
95
|
-
const placeholder = document.createElement('span');
|
|
96
|
-
placeholder.className = 'udoc-outline-toggle-placeholder';
|
|
97
|
-
itemEl.appendChild(placeholder);
|
|
98
|
-
}
|
|
99
|
-
// Title text
|
|
100
|
-
const title = document.createElement('span');
|
|
101
|
-
title.className = 'udoc-outline-title';
|
|
102
|
-
title.textContent = item.title;
|
|
103
|
-
itemEl.appendChild(title);
|
|
104
|
-
// Make clickable if has destination
|
|
105
|
-
if (item.destination) {
|
|
106
|
-
itemEl.classList.add('clickable');
|
|
107
|
-
const dest = item.destination;
|
|
108
|
-
itemEl.addEventListener('click', (e) => {
|
|
109
|
-
e.stopPropagation();
|
|
110
|
-
this.callbacks.onNavigate(dest);
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
nodeEl.appendChild(itemEl);
|
|
114
|
-
// Render children container if any
|
|
115
|
-
if (hasChildren) {
|
|
116
|
-
childrenEl = document.createElement('div');
|
|
117
|
-
childrenEl.className = 'udoc-outline-children' + (isCollapsed ? ' collapsed' : '');
|
|
118
|
-
this.renderItems(childrenEl, item.children, level + 1, itemPath);
|
|
119
|
-
nodeEl.appendChild(childrenEl);
|
|
120
|
-
}
|
|
121
|
-
container.appendChild(nodeEl);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
toggleItem(itemPath, toggle, childrenEl) {
|
|
125
|
-
const isCollapsed = this.collapsedItems.has(itemPath);
|
|
126
|
-
if (isCollapsed) {
|
|
127
|
-
// Expand
|
|
128
|
-
this.collapsedItems.delete(itemPath);
|
|
129
|
-
toggle.classList.remove('collapsed');
|
|
130
|
-
if (childrenEl) {
|
|
131
|
-
childrenEl.classList.remove('collapsed');
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
// Collapse
|
|
136
|
-
this.collapsedItems.add(itemPath);
|
|
137
|
-
toggle.classList.add('collapsed');
|
|
138
|
-
if (childrenEl) {
|
|
139
|
-
childrenEl.classList.add('collapsed');
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=OutlinePanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OutlinePanel.js","sourceRoot":"","sources":["../../../src/components/panels/OutlinePanel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
export interface ThumbnailsPanelCallbacks {
|
|
2
|
-
onPageClick: (pageIndex: number) => void;
|
|
3
|
-
getPageSize: (pageIndex: number) => {
|
|
4
|
-
width: number;
|
|
5
|
-
height: number;
|
|
6
|
-
};
|
|
7
|
-
renderThumbnail: (pageIndex: number, width: number, height: number) => Promise<string>;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Panel component for displaying page thumbnails with lazy loading.
|
|
11
|
-
*/
|
|
12
|
-
export declare class ThumbnailsPanel {
|
|
13
|
-
private container;
|
|
14
|
-
private callbacks;
|
|
15
|
-
private observer;
|
|
16
|
-
private blobUrls;
|
|
17
|
-
private queue;
|
|
18
|
-
private isRendering;
|
|
19
|
-
private pauseRendering;
|
|
20
|
-
private currentPage;
|
|
21
|
-
private pageCount;
|
|
22
|
-
constructor(callbacks: ThumbnailsPanelCallbacks);
|
|
23
|
-
/**
|
|
24
|
-
* Render thumbnails into the given container.
|
|
25
|
-
*/
|
|
26
|
-
render(container: HTMLElement, pageCount: number, currentPage: number): void;
|
|
27
|
-
/**
|
|
28
|
-
* Update the currently selected page and scroll it into view.
|
|
29
|
-
* @param scrollBehavior - 'auto' for instant scroll, 'smooth' for animated
|
|
30
|
-
*/
|
|
31
|
-
setCurrentPage(pageIndex: number, scrollBehavior?: ScrollBehavior): void;
|
|
32
|
-
/**
|
|
33
|
-
* Pause thumbnail rendering (e.g., during scroll).
|
|
34
|
-
*/
|
|
35
|
-
pause(): void;
|
|
36
|
-
/**
|
|
37
|
-
* Resume thumbnail rendering.
|
|
38
|
-
*/
|
|
39
|
-
resume(): void;
|
|
40
|
-
/**
|
|
41
|
-
* Clear all thumbnails and release resources.
|
|
42
|
-
*/
|
|
43
|
-
clear(): void;
|
|
44
|
-
/**
|
|
45
|
-
* Destroy the panel and release all resources.
|
|
46
|
-
*/
|
|
47
|
-
destroy(): void;
|
|
48
|
-
private enqueueThumbnail;
|
|
49
|
-
private processQueue;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=ThumbnailsPanel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThumbnailsPanel.d.ts","sourceRoot":"","sources":["../../../src/components/panels/ThumbnailsPanel.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,wBAAwB;IACrC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1F;AASD;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAK;gBAEV,SAAS,EAAE,wBAAwB;IAI/C;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAoE5E;;;OAGG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,GAAE,cAAyB,GAAG,IAAI;IAelF;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,KAAK,IAAI,IAAI;IAuBb;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,gBAAgB;YAKV,YAAY;CAkB7B"}
|