@kandiforge/kandi-office 0.17.0 → 0.17.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/viewers/pdf/PdfViewer.css +9 -3
- package/dist/viewers/pdf/components/PdfFilmstrip.css +12 -2
- package/dist/viewers/pdf/components/views/SinglePageView.js +8 -8
- package/dist/viewers/pdf/components/views/SinglePageView.js.map +1 -1
- package/dist/viewers/pdf/components/views/ViewStyles.css +61 -25
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* PdfViewer Styles
|
|
3
3
|
*
|
|
4
4
|
* Main container styles for the PDF viewer component.
|
|
5
|
+
* Layout: toolbar (fixed) + filmstrip (scrolls independently) + content (paged or scrolled)
|
|
5
6
|
*
|
|
6
7
|
* Copyright (c) 2025 AbstractClass, Inc. All rights reserved.
|
|
7
8
|
*/
|
|
@@ -26,16 +27,23 @@
|
|
|
26
27
|
--accent-color: var(--accent);
|
|
27
28
|
}
|
|
28
29
|
|
|
30
|
+
/* Content area: filmstrip + view side by side, both fill remaining height */
|
|
29
31
|
.pdf-viewer-content {
|
|
30
32
|
display: flex;
|
|
31
33
|
flex: 1;
|
|
34
|
+
min-height: 0; /* Critical: allows flex children to shrink below content size */
|
|
32
35
|
overflow: hidden;
|
|
33
36
|
}
|
|
34
37
|
|
|
38
|
+
/* View container: isolated scroll/layout context for the active view */
|
|
35
39
|
.pdf-view-container {
|
|
36
40
|
flex: 1;
|
|
41
|
+
min-width: 0; /* Prevent flex blowout */
|
|
42
|
+
min-height: 0;
|
|
43
|
+
position: relative;
|
|
37
44
|
display: flex;
|
|
38
|
-
|
|
45
|
+
flex-direction: column;
|
|
46
|
+
overflow: hidden; /* Views manage their own overflow */
|
|
39
47
|
background: var(--pdf-viewer-bg);
|
|
40
48
|
}
|
|
41
49
|
|
|
@@ -129,5 +137,3 @@
|
|
|
129
137
|
transform: rotate(360deg);
|
|
130
138
|
}
|
|
131
139
|
}
|
|
132
|
-
|
|
133
|
-
/* Light mode handled by theme system - removed prefers-color-scheme override */
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PdfFilmstrip Styles
|
|
3
3
|
*
|
|
4
|
+
* Sidebar thumbnail panel that scrolls independently from the content panel.
|
|
5
|
+
* Uses flex column with min-height:0 to create an isolated scroll context.
|
|
6
|
+
*
|
|
4
7
|
* Copyright (c) 2025 AbstractClass, Inc. All rights reserved.
|
|
5
8
|
*/
|
|
6
9
|
|
|
@@ -11,10 +14,14 @@
|
|
|
11
14
|
flex-direction: column;
|
|
12
15
|
background: var(--surface);
|
|
13
16
|
border-right: 1px solid var(--border-default);
|
|
17
|
+
/* Critical: min-height:0 allows the flex child to shrink,
|
|
18
|
+
creating an independent scroll context for the thumbnail list */
|
|
19
|
+
min-height: 0;
|
|
14
20
|
overflow: hidden;
|
|
15
21
|
}
|
|
16
22
|
|
|
17
23
|
.pdf-filmstrip-header {
|
|
24
|
+
flex: 0 0 auto; /* Fixed height, never shrinks */
|
|
18
25
|
display: flex;
|
|
19
26
|
align-items: center;
|
|
20
27
|
justify-content: space-between;
|
|
@@ -48,7 +55,9 @@
|
|
|
48
55
|
|
|
49
56
|
.pdf-thumbnail-list {
|
|
50
57
|
flex: 1;
|
|
58
|
+
min-height: 0; /* Allow shrinking to create scroll */
|
|
51
59
|
overflow-y: auto;
|
|
60
|
+
overflow-x: hidden;
|
|
52
61
|
padding: 12px;
|
|
53
62
|
display: flex;
|
|
54
63
|
flex-direction: column;
|
|
@@ -56,6 +65,7 @@
|
|
|
56
65
|
}
|
|
57
66
|
|
|
58
67
|
.pdf-thumbnail-item {
|
|
68
|
+
flex: 0 0 auto; /* Fixed height per item, prevents compression */
|
|
59
69
|
display: flex;
|
|
60
70
|
flex-direction: column;
|
|
61
71
|
align-items: center;
|
|
@@ -133,10 +143,10 @@
|
|
|
133
143
|
}
|
|
134
144
|
|
|
135
145
|
.pdf-thumbnail-list::-webkit-scrollbar-thumb {
|
|
136
|
-
background: var(--scrollbar-thumb);
|
|
146
|
+
background: var(--scrollbar-thumb, rgba(255, 255, 255, 0.2));
|
|
137
147
|
border-radius: 3px;
|
|
138
148
|
}
|
|
139
149
|
|
|
140
150
|
.pdf-thumbnail-list::-webkit-scrollbar-thumb:hover {
|
|
141
|
-
background: var(--scrollbar-thumb-hover);
|
|
151
|
+
background: var(--scrollbar-thumb-hover, rgba(255, 255, 255, 0.3));
|
|
142
152
|
}
|
|
@@ -25,13 +25,13 @@ export function SinglePageView({ currentPage, scale, renderToCanvas, pageInfo, }
|
|
|
25
25
|
useEffect(() => {
|
|
26
26
|
doRender();
|
|
27
27
|
}, [doRender]);
|
|
28
|
-
return (_jsx("div", { className: "pdf-view pdf-single-page-view", children: _jsx("div", { className: "pdf-page
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
return (_jsx("div", { className: "pdf-view pdf-single-page-view", children: _jsx("div", { className: "pdf-page", style: {
|
|
29
|
+
width: displayWidth,
|
|
30
|
+
height: displayHeight,
|
|
31
|
+
}, children: _jsx("canvas", { ref: canvasRef, style: {
|
|
32
|
+
width: '100%',
|
|
33
|
+
height: '100%',
|
|
34
|
+
display: 'block',
|
|
35
|
+
} }) }) }));
|
|
36
36
|
}
|
|
37
37
|
//# sourceMappingURL=SinglePageView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SinglePageView.js","sourceRoot":"","sources":["../../../../../src/viewers/pdf/components/views/SinglePageView.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"SinglePageView.js","sourceRoot":"","sources":["../../../../../src/viewers/pdf/components/views/SinglePageView.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,kBAAkB,CAAC;AAE1B,MAAM,UAAU,cAAc,CAAC,EAC7B,WAAW,EACX,KAAK,EACL,cAAc,EACd,QAAQ,GACK;IACb,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC;IACpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;IAE5D,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;IACrE,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;IAEvE,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,MAAM,IAAI,WAAW,GAAG,CAAC;YAAE,OAAO;QAEvC,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,EAAE,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,+BAA+B,WAAW,GAAG,EAAE,GAAG,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,EAAE,CAAC;IACb,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,cAAK,SAAS,EAAC,+BAA+B,YAC5C,cACE,SAAS,EAAC,UAAU,EACpB,KAAK,EAAE;gBACL,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,aAAa;aACtB,YAED,iBACE,GAAG,EAAE,SAAS,EACd,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,OAAO;iBACjB,GACD,GACE,GACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,36 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PDF View Styles
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Layout model:
|
|
5
|
+
* - SinglePageView / BookView: fixed viewport, page centered, NO scroll (pager-controlled)
|
|
6
|
+
* - ContinuousScrollView: scrollable list of all pages
|
|
7
|
+
* - ThumbnailGridView: scrollable grid
|
|
5
8
|
*
|
|
6
9
|
* Copyright (c) 2025 AbstractClass, Inc. All rights reserved.
|
|
7
10
|
*/
|
|
8
11
|
|
|
9
|
-
/*
|
|
12
|
+
/* ============================================
|
|
13
|
+
Base view — fills container, no scroll by default
|
|
14
|
+
============================================ */
|
|
10
15
|
.pdf-view {
|
|
11
16
|
display: flex;
|
|
12
17
|
flex-direction: column;
|
|
13
|
-
align-items: center;
|
|
14
|
-
justify-content: flex-start;
|
|
15
18
|
width: 100%;
|
|
16
19
|
height: 100%;
|
|
17
|
-
overflow:
|
|
20
|
+
overflow: hidden; /* Paged views don't scroll — only continuous/grid override this */
|
|
18
21
|
background: var(--pdf-viewer-bg);
|
|
19
22
|
}
|
|
20
23
|
|
|
21
|
-
/* Page
|
|
22
|
-
.pdf-page-container {
|
|
23
|
-
display: block;
|
|
24
|
-
padding: 20px;
|
|
25
|
-
min-height: 100%;
|
|
26
|
-
min-width: 100%;
|
|
27
|
-
box-sizing: border-box;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/* Individual page - uses margin auto for centering that works with overflow */
|
|
24
|
+
/* Page shell — white rectangle with shadow */
|
|
31
25
|
.pdf-page {
|
|
32
26
|
display: block;
|
|
33
|
-
margin: 0 auto;
|
|
34
27
|
background: var(--document-surface);
|
|
35
28
|
box-shadow: var(--shadow-lg, 0 4px 20px rgba(0, 0, 0, 0.3));
|
|
36
29
|
border-radius: 2px;
|
|
@@ -68,22 +61,33 @@
|
|
|
68
61
|
}
|
|
69
62
|
|
|
70
63
|
/* ============================================
|
|
71
|
-
Single Page View
|
|
64
|
+
Single Page View — centered page, no scroll
|
|
65
|
+
Pager controls come from the toolbar prev/next
|
|
72
66
|
============================================ */
|
|
67
|
+
.pdf-single-page-view {
|
|
68
|
+
align-items: center;
|
|
69
|
+
justify-content: center;
|
|
70
|
+
padding: 20px;
|
|
71
|
+
/* Allow overflow scroll only when zoomed in past viewport */
|
|
72
|
+
overflow: auto;
|
|
73
|
+
}
|
|
74
|
+
|
|
73
75
|
.pdf-single-page-view .pdf-page-container {
|
|
74
|
-
/* Vertically center when page is smaller than viewport */
|
|
75
76
|
display: flex;
|
|
76
|
-
flex-direction: column;
|
|
77
77
|
align-items: center;
|
|
78
78
|
justify-content: center;
|
|
79
|
+
/* Shrink-to-fit: the container matches the page, not the viewport */
|
|
80
|
+
flex: 0 0 auto;
|
|
79
81
|
}
|
|
80
82
|
|
|
81
83
|
/* ============================================
|
|
82
|
-
Book View
|
|
84
|
+
Book View — two-page spread, centered
|
|
83
85
|
============================================ */
|
|
84
86
|
.pdf-book-view {
|
|
87
|
+
align-items: center;
|
|
85
88
|
justify-content: center;
|
|
86
89
|
padding: 20px;
|
|
90
|
+
overflow: hidden;
|
|
87
91
|
}
|
|
88
92
|
|
|
89
93
|
.pdf-book-container {
|
|
@@ -91,10 +95,10 @@
|
|
|
91
95
|
align-items: center;
|
|
92
96
|
justify-content: center;
|
|
93
97
|
flex: 1;
|
|
98
|
+
min-height: 0;
|
|
94
99
|
}
|
|
95
100
|
|
|
96
101
|
.pdf-book {
|
|
97
|
-
/* react-pageflip styles */
|
|
98
102
|
margin: 0 auto;
|
|
99
103
|
}
|
|
100
104
|
|
|
@@ -125,9 +129,11 @@
|
|
|
125
129
|
}
|
|
126
130
|
|
|
127
131
|
/* ============================================
|
|
128
|
-
Continuous Scroll View
|
|
132
|
+
Continuous Scroll View — the ONLY scrolling view
|
|
129
133
|
============================================ */
|
|
130
134
|
.pdf-continuous-scroll-view {
|
|
135
|
+
overflow-y: auto;
|
|
136
|
+
overflow-x: hidden;
|
|
131
137
|
padding: 20px;
|
|
132
138
|
}
|
|
133
139
|
|
|
@@ -164,10 +170,29 @@
|
|
|
164
170
|
border: 1px solid var(--border-default);
|
|
165
171
|
}
|
|
166
172
|
|
|
173
|
+
/* Continuous view scrollbar */
|
|
174
|
+
.pdf-continuous-scroll-view::-webkit-scrollbar {
|
|
175
|
+
width: 8px;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.pdf-continuous-scroll-view::-webkit-scrollbar-track {
|
|
179
|
+
background: transparent;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.pdf-continuous-scroll-view::-webkit-scrollbar-thumb {
|
|
183
|
+
background: var(--scrollbar-thumb, rgba(255, 255, 255, 0.2));
|
|
184
|
+
border-radius: 4px;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.pdf-continuous-scroll-view::-webkit-scrollbar-thumb:hover {
|
|
188
|
+
background: var(--scrollbar-thumb-hover, rgba(255, 255, 255, 0.3));
|
|
189
|
+
}
|
|
190
|
+
|
|
167
191
|
/* ============================================
|
|
168
|
-
Thumbnail Grid View
|
|
192
|
+
Thumbnail Grid View — scrollable grid
|
|
169
193
|
============================================ */
|
|
170
194
|
.pdf-thumbnail-grid-view {
|
|
195
|
+
overflow-y: auto;
|
|
171
196
|
padding: 20px;
|
|
172
197
|
}
|
|
173
198
|
|
|
@@ -240,5 +265,16 @@
|
|
|
240
265
|
border: 1px solid var(--border-default);
|
|
241
266
|
}
|
|
242
267
|
|
|
243
|
-
/*
|
|
244
|
-
|
|
268
|
+
/* Thumbnail grid scrollbar */
|
|
269
|
+
.pdf-thumbnail-grid-view::-webkit-scrollbar {
|
|
270
|
+
width: 8px;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.pdf-thumbnail-grid-view::-webkit-scrollbar-track {
|
|
274
|
+
background: transparent;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.pdf-thumbnail-grid-view::-webkit-scrollbar-thumb {
|
|
278
|
+
background: var(--scrollbar-thumb, rgba(255, 255, 255, 0.2));
|
|
279
|
+
border-radius: 4px;
|
|
280
|
+
}
|