@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,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CSS custom properties for theming support.
|
|
3
|
-
* These variables enable consistent theming across all viewer components.
|
|
4
|
-
*/
|
|
5
|
-
export const variablesStyles = /* css */ `
|
|
6
|
-
:root {
|
|
7
|
-
/* Colors - Backgrounds */
|
|
8
|
-
--udoc-bg-primary: #e0e0e0;
|
|
9
|
-
--udoc-bg-secondary: #fff;
|
|
10
|
-
--udoc-bg-tertiary: #f0f0f0;
|
|
11
|
-
--udoc-bg-hover: #f0f0f0;
|
|
12
|
-
--udoc-bg-active: #e0e0e0;
|
|
13
|
-
--udoc-bg-selected: #e8f4fc;
|
|
14
|
-
|
|
15
|
-
/* Colors - Text */
|
|
16
|
-
--udoc-text-primary: #333;
|
|
17
|
-
--udoc-text-secondary: #555;
|
|
18
|
-
--udoc-text-muted: #666;
|
|
19
|
-
--udoc-text-disabled: #999;
|
|
20
|
-
|
|
21
|
-
/* Colors - Accent */
|
|
22
|
-
--udoc-accent: #3498db;
|
|
23
|
-
--udoc-accent-hover: #2980b9;
|
|
24
|
-
--udoc-accent-light: #e8f4fc;
|
|
25
|
-
|
|
26
|
-
/* Colors - Borders */
|
|
27
|
-
--udoc-border: #e0e0e0;
|
|
28
|
-
--udoc-border-light: #ddd;
|
|
29
|
-
|
|
30
|
-
/* Colors - Shadows */
|
|
31
|
-
--udoc-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.1);
|
|
32
|
-
--udoc-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
33
|
-
--udoc-shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
34
|
-
|
|
35
|
-
/* Sizing */
|
|
36
|
-
--udoc-header-height: 40px;
|
|
37
|
-
--udoc-panel-width: 240px;
|
|
38
|
-
--udoc-floating-bar-height: 36px;
|
|
39
|
-
--udoc-page-gap: 16px;
|
|
40
|
-
--udoc-thumbnail-width: 120px;
|
|
41
|
-
--udoc-thumbnail-height: 160px;
|
|
42
|
-
|
|
43
|
-
/* Spacing */
|
|
44
|
-
--udoc-spacing-xs: 4px;
|
|
45
|
-
--udoc-spacing-sm: 8px;
|
|
46
|
-
--udoc-spacing-md: 12px;
|
|
47
|
-
--udoc-spacing-lg: 16px;
|
|
48
|
-
--udoc-spacing-xl: 24px;
|
|
49
|
-
|
|
50
|
-
/* Typography */
|
|
51
|
-
--udoc-font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
52
|
-
--udoc-font-size-xs: 11px;
|
|
53
|
-
--udoc-font-size-sm: 12px;
|
|
54
|
-
--udoc-font-size-md: 14px;
|
|
55
|
-
--udoc-font-size-lg: 16px;
|
|
56
|
-
|
|
57
|
-
/* Border Radius */
|
|
58
|
-
--udoc-radius-sm: 4px;
|
|
59
|
-
--udoc-radius-md: 6px;
|
|
60
|
-
--udoc-radius-lg: 8px;
|
|
61
|
-
|
|
62
|
-
/* Transitions */
|
|
63
|
-
--udoc-transition-fast: 150ms ease;
|
|
64
|
-
--udoc-transition-normal: 250ms ease;
|
|
65
|
-
|
|
66
|
-
/* Z-index layers */
|
|
67
|
-
--udoc-z-panel: 100;
|
|
68
|
-
--udoc-z-header: 200;
|
|
69
|
-
--udoc-z-floating: 300;
|
|
70
|
-
--udoc-z-popover: 400;
|
|
71
|
-
--udoc-z-modal: 500;
|
|
72
|
-
--udoc-z-overlay: 600;
|
|
73
|
-
}
|
|
74
|
-
`;
|
|
75
|
-
//# sourceMappingURL=variables.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"variables.css.js","sourceRoot":"","sources":["../../../src/ui/styles/variables.css.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqExC,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Main viewport and page rendering styles.
|
|
3
|
-
*/
|
|
4
|
-
export declare const viewportStyles = "\n/* Viewport */\n.udoc-viewport {\n flex: 1;\n overflow: auto;\n position: relative;\n overscroll-behavior-x: none;\n}\n\n.udoc-content {\n display: flex;\n flex-direction: column;\n min-width: 100%;\n min-height: 100%;\n padding: 20px;\n box-sizing: border-box;\n}\n\n.udoc-spacer {\n width: 100%;\n flex-shrink: 0;\n}\n\n.udoc-band-container {\n position: relative;\n width: 100%;\n}\n\n.udoc-band {\n width: 100%;\n position: absolute;\n left: 0;\n display: flex;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.udoc-band-inner {\n display: grid;\n align-items: center;\n justify-items: center;\n}\n\n.udoc-slot {\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: visible;\n}\n\n.udoc-page {\n display: block;\n box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n background: #fff;\n transform-origin: center center;\n opacity: 1;\n transition: opacity 0.12s ease;\n user-select: none;\n -webkit-user-drag: none;\n pointer-events: none;\n}\n\n.udoc-viewer-root.seamless .udoc-page {\n box-shadow: none;\n}\n\n.udoc-page[data-rendered=\"false\"] {\n opacity: 1;\n}\n\n/* Cursor styles for tools */\n.udoc-viewport.tool-hand {\n cursor: grab;\n}\n\n.udoc-viewport.tool-hand.panning {\n cursor: grabbing;\n}\n\n.udoc-viewport.tool-select {\n cursor: default;\n}\n";
|
|
5
|
-
//# sourceMappingURL=viewport.css.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewport.css.d.ts","sourceRoot":"","sources":["../../../src/ui/styles/viewport.css.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,cAAc,u4CAkF1B,CAAC"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Main viewport and page rendering styles.
|
|
3
|
-
*/
|
|
4
|
-
export const viewportStyles = /* css */ `
|
|
5
|
-
/* Viewport */
|
|
6
|
-
.udoc-viewport {
|
|
7
|
-
flex: 1;
|
|
8
|
-
overflow: auto;
|
|
9
|
-
position: relative;
|
|
10
|
-
overscroll-behavior-x: none;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.udoc-content {
|
|
14
|
-
display: flex;
|
|
15
|
-
flex-direction: column;
|
|
16
|
-
min-width: 100%;
|
|
17
|
-
min-height: 100%;
|
|
18
|
-
padding: 20px;
|
|
19
|
-
box-sizing: border-box;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.udoc-spacer {
|
|
23
|
-
width: 100%;
|
|
24
|
-
flex-shrink: 0;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.udoc-band-container {
|
|
28
|
-
position: relative;
|
|
29
|
-
width: 100%;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.udoc-band {
|
|
33
|
-
width: 100%;
|
|
34
|
-
position: absolute;
|
|
35
|
-
left: 0;
|
|
36
|
-
display: flex;
|
|
37
|
-
justify-content: center;
|
|
38
|
-
flex-shrink: 0;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.udoc-band-inner {
|
|
42
|
-
display: grid;
|
|
43
|
-
align-items: center;
|
|
44
|
-
justify-items: center;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.udoc-slot {
|
|
48
|
-
display: flex;
|
|
49
|
-
align-items: center;
|
|
50
|
-
justify-content: center;
|
|
51
|
-
overflow: visible;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.udoc-page {
|
|
55
|
-
display: block;
|
|
56
|
-
box-shadow: 0 2px 8px rgba(0,0,0,0.15);
|
|
57
|
-
background: #fff;
|
|
58
|
-
transform-origin: center center;
|
|
59
|
-
opacity: 1;
|
|
60
|
-
transition: opacity 0.12s ease;
|
|
61
|
-
user-select: none;
|
|
62
|
-
-webkit-user-drag: none;
|
|
63
|
-
pointer-events: none;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.udoc-viewer-root.seamless .udoc-page {
|
|
67
|
-
box-shadow: none;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.udoc-page[data-rendered="false"] {
|
|
71
|
-
opacity: 1;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/* Cursor styles for tools */
|
|
75
|
-
.udoc-viewport.tool-hand {
|
|
76
|
-
cursor: grab;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
.udoc-viewport.tool-hand.panning {
|
|
80
|
-
cursor: grabbing;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.udoc-viewport.tool-select {
|
|
84
|
-
cursor: default;
|
|
85
|
-
}
|
|
86
|
-
`;
|
|
87
|
-
//# sourceMappingURL=viewport.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewport.css.js","sourceRoot":"","sources":["../../../src/ui/styles/viewport.css.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFvC,CAAC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
export type LayoutMode = 'single' | 'double' | 'double-cover' | 'grid';
|
|
2
|
-
export type Rotation = 0 | 90 | 180 | 270;
|
|
3
|
-
export type PageLayout = 'default' | 'odd-pages-right' | 'odd-pages-left';
|
|
4
|
-
export interface GridOptions {
|
|
5
|
-
columns: number;
|
|
6
|
-
rows: number;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Default gap size between pages when not in seamless mode.
|
|
10
|
-
*/
|
|
11
|
-
export declare const PAGE_GAP_SIZE = 16;
|
|
12
|
-
export interface PageSize {
|
|
13
|
-
width: number;
|
|
14
|
-
height: number;
|
|
15
|
-
}
|
|
16
|
-
export interface SlotLayout {
|
|
17
|
-
pageIndex: number;
|
|
18
|
-
row: number;
|
|
19
|
-
col: number;
|
|
20
|
-
baseWidth: number;
|
|
21
|
-
baseHeight: number;
|
|
22
|
-
baseX: number;
|
|
23
|
-
baseY: number;
|
|
24
|
-
}
|
|
25
|
-
export interface BandLayout {
|
|
26
|
-
index: number;
|
|
27
|
-
slots: SlotLayout[];
|
|
28
|
-
columns: number;
|
|
29
|
-
rows: number;
|
|
30
|
-
colWidths: number[];
|
|
31
|
-
rowHeights: number[];
|
|
32
|
-
baseWidth: number;
|
|
33
|
-
baseHeight: number;
|
|
34
|
-
}
|
|
35
|
-
export interface LayoutResult {
|
|
36
|
-
bands: BandLayout[];
|
|
37
|
-
pageToBand: number[];
|
|
38
|
-
}
|
|
39
|
-
export declare class LayoutCalculator {
|
|
40
|
-
static computeLayout(pageSizes: PageSize[], layoutMode: LayoutMode, rotation: Rotation, seamless: boolean, grid?: GridOptions, pageLayout?: PageLayout): LayoutResult;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=LayoutCalculator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutCalculator.d.ts","sourceRoot":"","sources":["../../src/view/LayoutCalculator.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,MAAM,CAAC;AACvE,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAE1E,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,MAAM,WAAW,QAAQ;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AA4BD,qBAAa,gBAAgB;IACzB,MAAM,CAAC,aAAa,CAChB,SAAS,EAAE,QAAQ,EAAE,EACrB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,OAAO,EACjB,IAAI,GAAE,WAA0B,EAChC,UAAU,GAAE,UAAsB,GACnC,YAAY;CAqNlB"}
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Default gap size between pages when not in seamless mode.
|
|
3
|
-
*/
|
|
4
|
-
export const PAGE_GAP_SIZE = 16;
|
|
5
|
-
const DEFAULT_GRID = { columns: 1, rows: 1 };
|
|
6
|
-
function rotateSize(size, rotation) {
|
|
7
|
-
if (rotation === 90 || rotation === 270) {
|
|
8
|
-
return { width: size.height, height: size.width };
|
|
9
|
-
}
|
|
10
|
-
return size;
|
|
11
|
-
}
|
|
12
|
-
function clampGrid(value) {
|
|
13
|
-
return Number.isFinite(value) && value > 0 ? Math.floor(value) : 1;
|
|
14
|
-
}
|
|
15
|
-
export class LayoutCalculator {
|
|
16
|
-
static computeLayout(pageSizes, layoutMode, rotation, seamless, grid = DEFAULT_GRID, pageLayout = 'default') {
|
|
17
|
-
const rotatedSizes = pageSizes.map((size) => rotateSize(size, rotation));
|
|
18
|
-
const bands = [];
|
|
19
|
-
const pageToBand = new Array(pageSizes.length).fill(-1);
|
|
20
|
-
const gapSize = seamless ? 0 : PAGE_GAP_SIZE;
|
|
21
|
-
const buildBand = (bandIndex, slots, rows, columns, options = {}) => {
|
|
22
|
-
const colWidths = new Array(columns).fill(0);
|
|
23
|
-
const rowHeights = new Array(rows).fill(0);
|
|
24
|
-
for (const slot of slots) {
|
|
25
|
-
colWidths[slot.col] = Math.max(colWidths[slot.col], slot.width);
|
|
26
|
-
rowHeights[slot.row] = Math.max(rowHeights[slot.row], slot.height);
|
|
27
|
-
pageToBand[slot.pageIndex] = bandIndex;
|
|
28
|
-
}
|
|
29
|
-
// For single-page bands in double-cover mode, make both columns symmetric
|
|
30
|
-
if (options.coverRight && columns === 2) {
|
|
31
|
-
if (colWidths[0] === 0 && colWidths[1] > 0) {
|
|
32
|
-
// Cover page on right: fill left column
|
|
33
|
-
colWidths[0] = colWidths[1];
|
|
34
|
-
}
|
|
35
|
-
else if (colWidths[1] === 0 && colWidths[0] > 0) {
|
|
36
|
-
// Last page on left: fill right column
|
|
37
|
-
colWidths[1] = colWidths[0];
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
if (options.normalizeEmptyGrid) {
|
|
41
|
-
const maxCol = Math.max(...colWidths);
|
|
42
|
-
const maxRow = Math.max(...rowHeights);
|
|
43
|
-
for (let i = 0; i < colWidths.length; i++) {
|
|
44
|
-
if (colWidths[i] === 0) {
|
|
45
|
-
colWidths[i] = maxCol;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
for (let i = 0; i < rowHeights.length; i++) {
|
|
49
|
-
if (rowHeights[i] === 0) {
|
|
50
|
-
rowHeights[i] = maxRow;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
const colOffsets = [];
|
|
55
|
-
const rowOffsets = [];
|
|
56
|
-
let x = 0;
|
|
57
|
-
for (let col = 0; col < columns; col++) {
|
|
58
|
-
colOffsets[col] = x;
|
|
59
|
-
x += colWidths[col] + (col < columns - 1 ? gapSize : 0);
|
|
60
|
-
}
|
|
61
|
-
let y = 0;
|
|
62
|
-
for (let row = 0; row < rows; row++) {
|
|
63
|
-
rowOffsets[row] = y;
|
|
64
|
-
y += rowHeights[row] + (row < rows - 1 ? gapSize : 0);
|
|
65
|
-
}
|
|
66
|
-
const bandSlots = slots.map((slot) => ({
|
|
67
|
-
pageIndex: slot.pageIndex,
|
|
68
|
-
row: slot.row,
|
|
69
|
-
col: slot.col,
|
|
70
|
-
baseWidth: slot.width,
|
|
71
|
-
baseHeight: slot.height,
|
|
72
|
-
baseX: colOffsets[slot.col],
|
|
73
|
-
baseY: rowOffsets[slot.row],
|
|
74
|
-
}));
|
|
75
|
-
const baseWidth = colWidths.reduce((sum, width) => sum + width, 0)
|
|
76
|
-
+ Math.max(0, columns - 1) * gapSize;
|
|
77
|
-
const baseHeight = rowHeights.reduce((sum, height) => sum + height, 0)
|
|
78
|
-
+ Math.max(0, rows - 1) * gapSize;
|
|
79
|
-
bands.push({
|
|
80
|
-
index: bandIndex,
|
|
81
|
-
slots: bandSlots,
|
|
82
|
-
columns,
|
|
83
|
-
rows,
|
|
84
|
-
colWidths,
|
|
85
|
-
rowHeights,
|
|
86
|
-
baseWidth,
|
|
87
|
-
baseHeight,
|
|
88
|
-
});
|
|
89
|
-
};
|
|
90
|
-
if (layoutMode === 'single') {
|
|
91
|
-
for (let i = 0; i < rotatedSizes.length; i++) {
|
|
92
|
-
const size = rotatedSizes[i];
|
|
93
|
-
buildBand(bands.length, [{ pageIndex: i, row: 0, col: 0, width: size.width, height: size.height }], 1, 1);
|
|
94
|
-
}
|
|
95
|
-
return { bands, pageToBand };
|
|
96
|
-
}
|
|
97
|
-
if (layoutMode === 'double') {
|
|
98
|
-
let i = 0;
|
|
99
|
-
while (i < rotatedSizes.length) {
|
|
100
|
-
const left = rotatedSizes[i];
|
|
101
|
-
const isLastPageAlone = i + 1 >= rotatedSizes.length;
|
|
102
|
-
if (isLastPageAlone) {
|
|
103
|
-
// Last page alone: position on left (col 0) with symmetric columns
|
|
104
|
-
buildBand(bands.length, [{ pageIndex: i, row: 0, col: 0, width: left.width, height: left.height }], 1, 2, { coverRight: true } // Fill empty right column for symmetry
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
const right = rotatedSizes[i + 1];
|
|
109
|
-
buildBand(bands.length, [
|
|
110
|
-
{ pageIndex: i, row: 0, col: 0, width: left.width, height: left.height },
|
|
111
|
-
{ pageIndex: i + 1, row: 0, col: 1, width: right.width, height: right.height },
|
|
112
|
-
], 1, 2);
|
|
113
|
-
}
|
|
114
|
-
i += 2;
|
|
115
|
-
}
|
|
116
|
-
return { bands, pageToBand };
|
|
117
|
-
}
|
|
118
|
-
if (layoutMode === 'double-cover') {
|
|
119
|
-
// Determine cover position based on document's page layout preference
|
|
120
|
-
// odd-pages-right (default): cover on right (col 1), spreads: 2|3, 4|5...
|
|
121
|
-
// odd-pages-left: cover on left (col 0), spreads: 2|3, 4|5...
|
|
122
|
-
const coverOnRight = pageLayout !== 'odd-pages-left';
|
|
123
|
-
const coverCol = coverOnRight ? 1 : 0;
|
|
124
|
-
if (rotatedSizes.length > 0) {
|
|
125
|
-
const cover = rotatedSizes[0];
|
|
126
|
-
buildBand(bands.length, [{ pageIndex: 0, row: 0, col: coverCol, width: cover.width, height: cover.height }], 1, 2, { coverRight: coverOnRight });
|
|
127
|
-
}
|
|
128
|
-
let i = 1;
|
|
129
|
-
while (i < rotatedSizes.length) {
|
|
130
|
-
const isLastPageAlone = i + 1 >= rotatedSizes.length;
|
|
131
|
-
if (isLastPageAlone) {
|
|
132
|
-
// Last page alone: position opposite to cover for symmetry
|
|
133
|
-
// coverOnRight: last page on left (col 0)
|
|
134
|
-
// coverOnLeft: last page on right (col 1)
|
|
135
|
-
const lastCol = coverOnRight ? 0 : 1;
|
|
136
|
-
const last = rotatedSizes[i];
|
|
137
|
-
buildBand(bands.length, [{ pageIndex: i, row: 0, col: lastCol, width: last.width, height: last.height }], 1, 2, { coverRight: true } // Always fill the empty column for symmetry
|
|
138
|
-
);
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
// Normal spread: left page in col 0, right page in col 1
|
|
142
|
-
const left = rotatedSizes[i];
|
|
143
|
-
const right = rotatedSizes[i + 1];
|
|
144
|
-
buildBand(bands.length, [
|
|
145
|
-
{ pageIndex: i, row: 0, col: 0, width: left.width, height: left.height },
|
|
146
|
-
{ pageIndex: i + 1, row: 0, col: 1, width: right.width, height: right.height },
|
|
147
|
-
], 1, 2);
|
|
148
|
-
}
|
|
149
|
-
i += 2;
|
|
150
|
-
}
|
|
151
|
-
return { bands, pageToBand };
|
|
152
|
-
}
|
|
153
|
-
const columns = clampGrid(grid.columns);
|
|
154
|
-
const rows = clampGrid(grid.rows);
|
|
155
|
-
const slotsPerBand = columns * rows;
|
|
156
|
-
let index = 0;
|
|
157
|
-
while (index < rotatedSizes.length) {
|
|
158
|
-
const slots = [];
|
|
159
|
-
for (let offset = 0; offset < slotsPerBand; offset++) {
|
|
160
|
-
const pageIndex = index + offset;
|
|
161
|
-
if (pageIndex >= rotatedSizes.length)
|
|
162
|
-
break;
|
|
163
|
-
const size = rotatedSizes[pageIndex];
|
|
164
|
-
const row = Math.floor(offset / columns);
|
|
165
|
-
const col = offset % columns;
|
|
166
|
-
slots.push({
|
|
167
|
-
pageIndex,
|
|
168
|
-
row,
|
|
169
|
-
col,
|
|
170
|
-
width: size.width,
|
|
171
|
-
height: size.height,
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
buildBand(bands.length, slots, rows, columns, { normalizeEmptyGrid: true });
|
|
175
|
-
index += slotsPerBand;
|
|
176
|
-
}
|
|
177
|
-
return { bands, pageToBand };
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
//# sourceMappingURL=LayoutCalculator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutCalculator.js","sourceRoot":"","sources":["../../src/view/LayoutCalculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { DisplayMode } from './ViewState';
|
|
2
|
-
export interface BandWindow {
|
|
3
|
-
start: number;
|
|
4
|
-
end: number;
|
|
5
|
-
}
|
|
6
|
-
export declare class TransitionCoordinator {
|
|
7
|
-
private windowRadius;
|
|
8
|
-
constructor(windowRadius?: number);
|
|
9
|
-
getWindow(currentBandIndex: number, bandCount: number, displayMode: DisplayMode, previousDisplayMode?: DisplayMode): BandWindow;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=TransitionCoordinator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TransitionCoordinator.d.ts","sourceRoot":"","sources":["../../src/view/TransitionCoordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,YAAY,CAAS;gBAEjB,YAAY,GAAE,MAAU;IAIpC,SAAS,CACL,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,mBAAmB,CAAC,EAAE,WAAW,GAClC,UAAU;CAmBhB"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export class TransitionCoordinator {
|
|
2
|
-
windowRadius;
|
|
3
|
-
constructor(windowRadius = 2) {
|
|
4
|
-
this.windowRadius = windowRadius;
|
|
5
|
-
}
|
|
6
|
-
getWindow(currentBandIndex, bandCount, displayMode, previousDisplayMode) {
|
|
7
|
-
if (bandCount <= 0) {
|
|
8
|
-
return { start: 0, end: 0 };
|
|
9
|
-
}
|
|
10
|
-
const clampedCurrent = Math.max(0, Math.min(currentBandIndex, bandCount - 1));
|
|
11
|
-
if (displayMode === 'single') {
|
|
12
|
-
return { start: clampedCurrent, end: clampedCurrent };
|
|
13
|
-
}
|
|
14
|
-
const radius = previousDisplayMode === 'single'
|
|
15
|
-
? Math.max(1, this.windowRadius)
|
|
16
|
-
: this.windowRadius;
|
|
17
|
-
const start = Math.max(0, clampedCurrent - radius);
|
|
18
|
-
const end = Math.min(bandCount - 1, clampedCurrent + radius);
|
|
19
|
-
return { start, end };
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=TransitionCoordinator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TransitionCoordinator.js","sourceRoot":"","sources":["../../src/view/TransitionCoordinator.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,qBAAqB;IACtB,YAAY,CAAS;IAE7B,YAAY,eAAuB,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,SAAS,CACL,gBAAwB,EACxB,SAAiB,EACjB,WAAwB,EACxB,mBAAiC;QAEjC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACjB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;QAE9E,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;QAC1D,CAAC;QAED,MAAM,MAAM,GAAG,mBAAmB,KAAK,QAAQ;YAC3C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAExB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,CAAC;QAC7D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAC1B,CAAC;CACJ"}
|
package/dist/view/ViewState.d.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import type { BandLayout, LayoutResult, SlotLayout } from './LayoutCalculator';
|
|
2
|
-
export type DisplayMode = 'single' | 'scroll';
|
|
3
|
-
export interface ScaledSlotLayout extends SlotLayout {
|
|
4
|
-
width: number;
|
|
5
|
-
height: number;
|
|
6
|
-
x: number;
|
|
7
|
-
y: number;
|
|
8
|
-
}
|
|
9
|
-
export interface ScaledBandLayout {
|
|
10
|
-
band: BandLayout;
|
|
11
|
-
width: number;
|
|
12
|
-
height: number;
|
|
13
|
-
slots: ScaledSlotLayout[];
|
|
14
|
-
colWidths: number[];
|
|
15
|
-
rowHeights: number[];
|
|
16
|
-
}
|
|
17
|
-
interface SlotLookupEntry {
|
|
18
|
-
bandIndex: number;
|
|
19
|
-
slot: ScaledSlotLayout;
|
|
20
|
-
}
|
|
21
|
-
export declare class ViewState {
|
|
22
|
-
private layout;
|
|
23
|
-
private scaledBands;
|
|
24
|
-
private bandOffsets;
|
|
25
|
-
private totalHeight;
|
|
26
|
-
private totalWidth;
|
|
27
|
-
private slotLookup;
|
|
28
|
-
private zoom;
|
|
29
|
-
setLayout(layout: LayoutResult, zoom: number): void;
|
|
30
|
-
getBandCount(): number;
|
|
31
|
-
getBand(index: number): ScaledBandLayout | null;
|
|
32
|
-
getBandOffset(index: number): number;
|
|
33
|
-
getBandOffsets(): number[];
|
|
34
|
-
getTotalHeight(): number;
|
|
35
|
-
getTotalWidth(): number;
|
|
36
|
-
getBandIndexForPage(pageIndex: number): number;
|
|
37
|
-
getBandIndexForOffset(offsetY: number): number;
|
|
38
|
-
getSlotForPage(pageIndex: number): SlotLookupEntry | null;
|
|
39
|
-
getPageCenter(pageIndex: number): {
|
|
40
|
-
x: number;
|
|
41
|
-
y: number;
|
|
42
|
-
} | null;
|
|
43
|
-
private rebuildScaled;
|
|
44
|
-
}
|
|
45
|
-
export {};
|
|
46
|
-
//# sourceMappingURL=ViewState.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ViewState.d.ts","sourceRoot":"","sources":["../../src/view/ViewState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/E,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9C,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,UAAU,eAAe;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,gBAAgB,CAAC;CAC1B;AAED,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,IAAI,CAAK;IAEjB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMnD,YAAY,IAAI,MAAM;IAItB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAI/C,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIpC,cAAc,IAAI,MAAM,EAAE;IAI1B,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,MAAM;IAIvB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAK9C,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAsB9C,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAIzD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAWjE,OAAO,CAAC,aAAa;CAmCxB"}
|
package/dist/view/ViewState.js
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
export class ViewState {
|
|
2
|
-
layout = { bands: [], pageToBand: [] };
|
|
3
|
-
scaledBands = [];
|
|
4
|
-
bandOffsets = [];
|
|
5
|
-
totalHeight = 0;
|
|
6
|
-
totalWidth = 0;
|
|
7
|
-
slotLookup = [];
|
|
8
|
-
zoom = 1;
|
|
9
|
-
setLayout(layout, zoom) {
|
|
10
|
-
this.layout = layout;
|
|
11
|
-
this.zoom = zoom;
|
|
12
|
-
this.rebuildScaled();
|
|
13
|
-
}
|
|
14
|
-
getBandCount() {
|
|
15
|
-
return this.layout.bands.length;
|
|
16
|
-
}
|
|
17
|
-
getBand(index) {
|
|
18
|
-
return this.scaledBands[index] ?? null;
|
|
19
|
-
}
|
|
20
|
-
getBandOffset(index) {
|
|
21
|
-
return this.bandOffsets[index] ?? 0;
|
|
22
|
-
}
|
|
23
|
-
getBandOffsets() {
|
|
24
|
-
return this.bandOffsets.slice();
|
|
25
|
-
}
|
|
26
|
-
getTotalHeight() {
|
|
27
|
-
return this.totalHeight;
|
|
28
|
-
}
|
|
29
|
-
getTotalWidth() {
|
|
30
|
-
return this.totalWidth;
|
|
31
|
-
}
|
|
32
|
-
getBandIndexForPage(pageIndex) {
|
|
33
|
-
const index = this.layout.pageToBand[pageIndex];
|
|
34
|
-
return index === undefined || index < 0 ? 0 : index;
|
|
35
|
-
}
|
|
36
|
-
getBandIndexForOffset(offsetY) {
|
|
37
|
-
if (this.scaledBands.length === 0)
|
|
38
|
-
return 0;
|
|
39
|
-
if (offsetY <= 0)
|
|
40
|
-
return 0;
|
|
41
|
-
if (offsetY >= this.totalHeight)
|
|
42
|
-
return this.scaledBands.length - 1;
|
|
43
|
-
let low = 0;
|
|
44
|
-
let high = this.scaledBands.length - 1;
|
|
45
|
-
while (low <= high) {
|
|
46
|
-
const mid = Math.floor((low + high) / 2);
|
|
47
|
-
const top = this.bandOffsets[mid];
|
|
48
|
-
const bottom = top + this.scaledBands[mid].height;
|
|
49
|
-
if (offsetY < top) {
|
|
50
|
-
high = mid - 1;
|
|
51
|
-
}
|
|
52
|
-
else if (offsetY > bottom) {
|
|
53
|
-
low = mid + 1;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
return mid;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return Math.max(0, Math.min(low, this.scaledBands.length - 1));
|
|
60
|
-
}
|
|
61
|
-
getSlotForPage(pageIndex) {
|
|
62
|
-
return this.slotLookup[pageIndex] ?? null;
|
|
63
|
-
}
|
|
64
|
-
getPageCenter(pageIndex) {
|
|
65
|
-
const entry = this.getSlotForPage(pageIndex);
|
|
66
|
-
if (!entry)
|
|
67
|
-
return null;
|
|
68
|
-
const { slot, bandIndex } = entry;
|
|
69
|
-
const bandTop = this.bandOffsets[bandIndex] ?? 0;
|
|
70
|
-
return {
|
|
71
|
-
x: slot.x + slot.width / 2,
|
|
72
|
-
y: bandTop + slot.y + slot.height / 2,
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
rebuildScaled() {
|
|
76
|
-
this.scaledBands = this.layout.bands.map((band) => {
|
|
77
|
-
const slots = band.slots.map((slot) => ({
|
|
78
|
-
...slot,
|
|
79
|
-
width: slot.baseWidth * this.zoom,
|
|
80
|
-
height: slot.baseHeight * this.zoom,
|
|
81
|
-
x: slot.baseX * this.zoom,
|
|
82
|
-
y: slot.baseY * this.zoom,
|
|
83
|
-
}));
|
|
84
|
-
return {
|
|
85
|
-
band,
|
|
86
|
-
width: band.baseWidth * this.zoom,
|
|
87
|
-
height: band.baseHeight * this.zoom,
|
|
88
|
-
slots,
|
|
89
|
-
colWidths: band.colWidths.map((width) => width * this.zoom),
|
|
90
|
-
rowHeights: band.rowHeights.map((height) => height * this.zoom),
|
|
91
|
-
};
|
|
92
|
-
});
|
|
93
|
-
this.bandOffsets = [];
|
|
94
|
-
this.totalHeight = 0;
|
|
95
|
-
this.totalWidth = 0;
|
|
96
|
-
for (const band of this.scaledBands) {
|
|
97
|
-
this.bandOffsets.push(this.totalHeight);
|
|
98
|
-
this.totalHeight += band.height;
|
|
99
|
-
this.totalWidth = Math.max(this.totalWidth, band.width);
|
|
100
|
-
}
|
|
101
|
-
this.slotLookup = new Array(this.layout.pageToBand.length).fill(null);
|
|
102
|
-
this.scaledBands.forEach((band, bandIndex) => {
|
|
103
|
-
for (const slot of band.slots) {
|
|
104
|
-
this.slotLookup[slot.pageIndex] = { bandIndex, slot };
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
//# sourceMappingURL=ViewState.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ViewState.js","sourceRoot":"","sources":["../../src/view/ViewState.ts"],"names":[],"mappings":"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"}
|
package/dist/view/index.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { LayoutCalculator } from './LayoutCalculator';
|
|
2
|
-
export type { PageSize, SlotLayout, BandLayout, LayoutResult, } from './LayoutCalculator';
|
|
3
|
-
export { TransitionCoordinator } from './TransitionCoordinator';
|
|
4
|
-
export type { BandWindow } from './TransitionCoordinator';
|
|
5
|
-
export { ViewState } from './ViewState';
|
|
6
|
-
export type { ScaledBandLayout, ScaledSlotLayout } from './ViewState';
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/view/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/view/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/view/index.js
DELETED
package/dist/view/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/view/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|