@@ -15,12 +15,14 @@ var bookFlip = {
15
15
toStart : false , //PDFjs require flipbook at start
16
16
onLoad : true , //start PDFjs into flipbook mode
17
17
_intoView : null , //link handler default function backup
18
+ _visPages : null , //visible pages function backup
18
19
19
20
// event listeners when bookFlip need different handling
20
21
init : function ( ) {
21
22
$ ( document ) . on ( 'rotationchanging' , ( ) => { bookFlip . rotate ( ) } ) ;
22
23
$ ( document ) . on ( 'scalechanging' , ( ) => { bookFlip . resize ( ) } ) ;
23
24
$ ( document ) . on ( 'pagechanging' , ( ) => { bookFlip . flip ( ) } ) ;
25
+ $ ( document ) . on ( 'documentinit' , ( ) => { bookFlip . stop ( ) } ) ;
24
26
25
27
$ ( document ) . on ( 'scrollmodechanged' , ( ) => {
26
28
var scroll = PDFViewerApplication . pdfViewer . scrollMode ;
@@ -46,20 +48,6 @@ var bookFlip = {
46
48
}
47
49
} ) ;
48
50
49
- $ ( document ) . on ( 'documentloaded' , ( ) => {
50
- bookFlip . stop ( ) ;
51
- var scrollMode = PDFViewerApplicationOptions . get ( 'scrollModeOnLoad' ) ;
52
- if ( scrollMode === - 1 ) {
53
- scrollMode = PDFViewerApplication . store . file . scrollMode ;
54
- }
55
- if ( scrollMode === 3 ) {
56
- bookFlip . toStart = true ;
57
- $ ( '#viewer' ) . css ( { opacity : 0 } ) ;
58
- PDFViewerApplication . store . file . scrollMode = 0 ;
59
- if ( this . onLoad ) PDFViewerApplicationOptions . set ( 'scrollModeOnLoad' , - 1 ) ;
60
- }
61
- } ) ;
62
-
63
51
$ ( document ) . on ( 'baseviewerinit' , ( ) => {
64
52
if ( this . onLoad ) PDFViewerApplicationOptions . set ( 'scrollModeOnLoad' , 3 ) ;
65
53
@@ -108,6 +96,9 @@ var bookFlip = {
108
96
this . _intoView = PDFViewerApplication . pdfViewer . scrollPageIntoView ;
109
97
PDFViewerApplication . pdfViewer . scrollPageIntoView = ( data ) => { return bookFlip . link ( data ) } ;
110
98
99
+ this . _visPages = PDFViewerApplication . pdfViewer . _getVisiblePages ;
100
+ PDFViewerApplication . pdfViewer . _getVisiblePages = ( ) => { return bookFlip . load ( ) } ;
101
+
111
102
$ ( '.spreadModeButtons' ) . removeClass ( 'toggled' ) ;
112
103
$ ( '#' + selected ) . addClass ( 'toggled' ) ;
113
104
@@ -162,11 +153,12 @@ var bookFlip = {
162
153
$ ( '#viewer' ) . turn ( 'destroy' ) ;
163
154
$ ( '#viewer' ) . removeAttr ( 'style' ) ;
164
155
156
+ PDFViewerApplication . pdfViewer . scrollPageIntoView = this . _intoView ;
157
+ PDFViewerApplication . pdfViewer . _getVisiblePages = this . _visPages ;
158
+
165
159
PDFViewerApplication . eventBus . _listeners . switchspreadmode = this . _evSpread ;
166
160
PDFViewerApplication . pdfViewer . spreadMode = this . __spread ;
167
161
168
- PDFViewerApplication . pdfViewer . scrollPageIntoView = this . _intoView ;
169
-
170
162
$ ( '#viewer .page' ) . removeAttr ( 'style' ) ;
171
163
$ ( '#viewer' ) . removeClass ( 'shadow' ) ;
172
164
$ ( '#viewer' ) . addClass ( 'pdfViewer' ) ;
@@ -213,15 +205,15 @@ var bookFlip = {
213
205
PDFViewerApplication . page = data . pageNumber ;
214
206
} ,
215
207
// load pages near shown page
216
- load : function ( views ) {
208
+ load : function ( ) {
217
209
if ( ! this . active ) return ;
210
+ var views = PDFViewerApplication . pdfViewer . _pages ;
218
211
var arr = [ ] ;
219
212
var page = PDFViewerApplication . page ;
220
213
var min = Math . max ( page - ( ( this . _spread === 0 ) ? 2 : ( page % 2 ) ? 4 : 3 ) , 0 ) ;
221
- var pos = Math . max ( ( ( this . _spread === 0 ) ? page : page - ( page % 2 ) ) - 1 , 0 ) ;
222
214
var max = Math . min ( page + ( ( this . _spread === 0 ) ? 1 : ( page % 2 ) ? 2 : 3 ) , views . length ) ;
223
215
224
- for ( var i = pos , ii = max ; i < ii ; i ++ ) {
216
+ for ( var i = min , ii = max ; i < ii ; i ++ ) {
225
217
arr . push ( {
226
218
id : views [ i ] . id ,
227
219
x : 0 ,
@@ -230,18 +222,8 @@ var bookFlip = {
230
222
percent : 100
231
223
} ) ;
232
224
}
233
- for ( var i = min , ii = pos ; i < ii ; i ++ ) {
234
- arr . push ( {
235
- id : views [ i ] . id ,
236
- x : 0 ,
237
- y : 0 ,
238
- view : views [ i ] ,
239
- percent : 100
240
- } ) ;
241
- }
242
- if ( this . _spread !== 0 && ( page % 2 ) && page !== 1 ) [ arr [ 0 ] , arr [ 1 ] ] = [ arr [ 1 ] , arr [ 0 ] ]
243
-
244
- return arr ;
225
+
226
+ return { first :arr [ page - min - 1 ] , last :arr [ arr . length - 1 ] , views :arr } ;
245
227
} ,
246
228
_spreadType : function ( ) {
247
229
return ( this . _spread === 0 ) ? 'single' : 'double' ;
0 commit comments