@internetarchive/bookreader 5.0.0-48 → 5.0.0-49-a1
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +2 -2
- package/src/BookNavigator/bookmarks/ia-bookmarks.js +4 -4
- package/src/BookReader/BookModel.js +0 -29
- package/src/BookReader/Mode1UpLit.js +1 -1
- package/src/BookReader/Mode2Up.js +9 -34
- package/src/BookReader/ModeThumb.js +1 -3
- package/src/BookReader/Navbar/Navbar.js +8 -5
- package/src/BookReader/Toolbar/Toolbar.js +3 -30
- package/src/BookReader.js +65 -338
- package/src/plugins/plugin.autoplay.js +4 -4
- package/src/plugins/plugin.chapters.js +2 -2
- package/src/plugins/search/plugin.search.js +6 -6
- package/src/plugins/search/view.js +2 -2
- package/src/plugins/tts/plugin.tts.js +2 -2
- package/tests/e2e/models/Navigation.js +1 -1
- package/tests/jest/BookReader/BookModel.test.js +31 -11
- package/tests/jest/BookReader/BookReaderPublicFunctions.test.js +4 -4
- package/tests/jest/BookReader/Mode1UpLit.test.js +5 -1
- package/tests/jest/BookReader/Mode2Up.test.js +8 -8
- package/tests/jest/BookReader.test.js +0 -35
- package/tests/jest/plugins/plugin.autoplay.test.js +2 -2
- package/tests/jest/plugins/plugin.chapters.test.js +2 -3
- package/tests/e2e/ia-production/ia-prod-base.js +0 -17
package/src/BookReader.js
CHANGED
@@ -30,19 +30,14 @@ import 'jquery-ui-touch-punch';
|
|
30
30
|
import PACKAGE_JSON from '../package.json';
|
31
31
|
import * as utils from './BookReader/utils.js';
|
32
32
|
import { exposeOverrideable } from './BookReader/utils/classes.js';
|
33
|
-
import { Navbar
|
33
|
+
import { Navbar } from './BookReader/Navbar/Navbar.js';
|
34
34
|
import { DEFAULT_OPTIONS } from './BookReader/options.js';
|
35
35
|
/** @typedef {import('./BookReader/options.js').BookReaderOptions} BookReaderOptions */
|
36
36
|
/** @typedef {import('./BookReader/options.js').ReductionFactor} ReductionFactor */
|
37
37
|
/** @typedef {import('./BookReader/BookModel.js').PageIndex} PageIndex */
|
38
38
|
import { EVENTS } from './BookReader/events.js';
|
39
39
|
import { DebugConsole } from './BookReader/DebugConsole.js';
|
40
|
-
import {
|
41
|
-
Toolbar,
|
42
|
-
blankInfoDiv,
|
43
|
-
blankShareDiv,
|
44
|
-
createPopup,
|
45
|
-
} from './BookReader/Toolbar/Toolbar.js';
|
40
|
+
import { Toolbar } from './BookReader/Toolbar/Toolbar.js';
|
46
41
|
import { BookModel } from './BookReader/BookModel.js';
|
47
42
|
import { Mode1Up } from './BookReader/Mode1Up.js';
|
48
43
|
import { Mode2Up } from './BookReader/Mode2Up.js';
|
@@ -151,18 +146,13 @@ BookReader.prototype.setup = function(options) {
|
|
151
146
|
this.ui = options.ui;
|
152
147
|
this.uiAutoHide = options.uiAutoHide;
|
153
148
|
|
154
|
-
this.thumbWidth = 100; // will be overridden during
|
149
|
+
this.thumbWidth = 100; // will be overridden during this._modes.modeThumb.prepare();
|
155
150
|
this.thumbRowBuffer = options.thumbRowBuffer;
|
156
151
|
this.thumbColumns = options.thumbColumns;
|
157
152
|
this.thumbMaxLoading = options.thumbMaxLoading;
|
158
153
|
this.thumbPadding = options.thumbPadding;
|
159
154
|
this.displayedRows = [];
|
160
|
-
|
161
155
|
this.displayedIndices = [];
|
162
|
-
/** @deprecated Unused; will be remove in v5 */
|
163
|
-
this.imgs = {};
|
164
|
-
/** @deprecated No longer used; will be remove in v5 */
|
165
|
-
this.prefetchedImgs = {}; //an object with numeric keys corresponding to page index, reduce
|
166
156
|
|
167
157
|
this.animating = false;
|
168
158
|
this.flipSpeed = options.flipSpeed;
|
@@ -211,26 +201,22 @@ BookReader.prototype.setup = function(options) {
|
|
211
201
|
|
212
202
|
// Assign the data methods
|
213
203
|
this.data = options.data;
|
214
|
-
if (options.getNumLeafs) BookReader.prototype.getNumLeafs = options.getNumLeafs;
|
215
|
-
if (options.getPageWidth) BookReader.prototype.getPageWidth = options.getPageWidth;
|
216
|
-
if (options.getPageHeight) BookReader.prototype.getPageHeight = options.getPageHeight;
|
217
|
-
if (options.getPageURI) BookReader.prototype.getPageURI = options.getPageURI;
|
218
|
-
if (options.getPageSide) BookReader.prototype.getPageSide = options.getPageSide;
|
219
|
-
if (options.getPageNum) BookReader.prototype.getPageNum = options.getPageNum;
|
220
|
-
if (options.getPageProp) BookReader.prototype.getPageProp = options.getPageProp;
|
221
|
-
if (options.getSpreadIndices) BookReader.prototype.getSpreadIndices = options.getSpreadIndices;
|
222
|
-
if (options.leafNumToIndex) BookReader.prototype.leafNumToIndex = options.leafNumToIndex;
|
223
204
|
|
224
205
|
/** @type {{[name: string]: JQuery}} */
|
225
206
|
this.refs = {};
|
226
207
|
|
227
|
-
/**
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
this.
|
232
|
-
|
233
|
-
|
208
|
+
/** The book being displayed in BookReader*/
|
209
|
+
this.book = new BookModel(this);
|
210
|
+
|
211
|
+
if (options.getNumLeafs) this.book.getNumLeafs = options.getNumLeafs.bind(this);
|
212
|
+
if (options.getPageWidth) this.book.getPageWidth = options.getPageWidth.bind(this);
|
213
|
+
if (options.getPageHeight) this.book.getPageHeight = options.getPageHeight.bind(this);
|
214
|
+
if (options.getPageURI) this.book.getPageURI = options.getPageURI.bind(this);
|
215
|
+
if (options.getPageSide) this.book.getPageSide = options.getPageSide.bind(this);
|
216
|
+
if (options.getPageNum) this.book.getPageNum = options.getPageNum.bind(this);
|
217
|
+
if (options.getPageProp) this.book.getPageProp = options.getPageProp.bind(this);
|
218
|
+
if (options.getSpreadIndices) this.book.getSpreadIndices = options.getSpreadIndices.bind(this);
|
219
|
+
if (options.leafNumToIndex) this.book.leafNumToIndex = options.leafNumToIndex.bind(this);
|
234
220
|
|
235
221
|
/**
|
236
222
|
* @private Components are 'subchunks' of bookreader functionality, usually UI related
|
@@ -244,14 +230,14 @@ BookReader.prototype.setup = function(options) {
|
|
244
230
|
};
|
245
231
|
|
246
232
|
this._modes = {
|
247
|
-
mode1Up: new Mode1Up(this, this.
|
248
|
-
mode2Up: new Mode2Up(this, this.
|
249
|
-
modeThumb: new ModeThumb(this, this.
|
233
|
+
mode1Up: new Mode1Up(this, this.book),
|
234
|
+
mode2Up: new Mode2Up(this, this.book),
|
235
|
+
modeThumb: new ModeThumb(this, this.book),
|
250
236
|
};
|
251
237
|
|
252
238
|
/** Stores classes which we want to expose (selectively) some methods as overridable */
|
253
239
|
this._overrideable = {
|
254
|
-
'
|
240
|
+
'book': this.book,
|
255
241
|
'_components.navbar': this._components.navbar,
|
256
242
|
'_components.toolbar': this._components.toolbar,
|
257
243
|
'_modes.mode1Up': this._modes.mode1Up,
|
@@ -260,7 +246,7 @@ BookReader.prototype.setup = function(options) {
|
|
260
246
|
};
|
261
247
|
|
262
248
|
/** Image cache for general image fetching */
|
263
|
-
this.imageCache = new ImageCache(this.
|
249
|
+
this.imageCache = new ImageCache(this.book, {
|
264
250
|
useSrcSet: this.options.useSrcSet,
|
265
251
|
reduceSet: this.reduceSet,
|
266
252
|
});
|
@@ -310,17 +296,6 @@ Object.defineProperty(BookReader.prototype, 'activeMode', {
|
|
310
296
|
}[this.mode]; },
|
311
297
|
});
|
312
298
|
|
313
|
-
/** @deprecated unused outside Mode2Up */
|
314
|
-
Object.defineProperty(BookReader.prototype, 'leafEdgeL', {
|
315
|
-
get() { return this._modes.mode2Up.leafEdgeL; },
|
316
|
-
set(newVal) { this._modes.mode2Up.leafEdgeL = newVal; }
|
317
|
-
});
|
318
|
-
/** @deprecated unused outside Mode2Up */
|
319
|
-
Object.defineProperty(BookReader.prototype, 'leafEdgeR', {
|
320
|
-
get() { return this._modes.mode2Up.leafEdgeR; },
|
321
|
-
set(newVal) { this._modes.mode2Up.leafEdgeR = newVal; }
|
322
|
-
});
|
323
|
-
|
324
299
|
/**
|
325
300
|
* BookReader.util are static library functions
|
326
301
|
* At top of file so they can be used below
|
@@ -335,7 +310,7 @@ BookReader.util = utils;
|
|
335
310
|
BookReader.prototype.extendParams = function(params, newParams) {
|
336
311
|
const modifiedNewParams = $.extend({}, newParams);
|
337
312
|
if ('undefined' != typeof(modifiedNewParams.page)) {
|
338
|
-
const pageIndex = this.
|
313
|
+
const pageIndex = this.book.parsePageString(modifiedNewParams.page);
|
339
314
|
if (!isNaN(pageIndex))
|
340
315
|
modifiedNewParams.index = pageIndex;
|
341
316
|
delete modifiedNewParams.page;
|
@@ -366,8 +341,8 @@ BookReader.prototype.initParams = function() {
|
|
366
341
|
|
367
342
|
// If we have a title leaf, use that as the default instead of index 0,
|
368
343
|
// but only use as default if book has a few pages
|
369
|
-
if ('undefined' != typeof(this.titleLeaf) && this.
|
370
|
-
params.index = this.
|
344
|
+
if ('undefined' != typeof(this.titleLeaf) && this.book.getNumLeafs() > 2) {
|
345
|
+
params.index = this.book.leafNumToIndex(this.titleLeaf);
|
371
346
|
} else {
|
372
347
|
params.index = 0;
|
373
348
|
}
|
@@ -548,7 +523,7 @@ BookReader.prototype.init = function() {
|
|
548
523
|
}
|
549
524
|
|
550
525
|
// Switch navbar controls on mobile/desktop
|
551
|
-
this.switchNavbarControls();
|
526
|
+
this._components.navbar.switchNavbarControls();
|
552
527
|
|
553
528
|
this.resizeBRcontainer();
|
554
529
|
this.updateFromParams(params);
|
@@ -632,11 +607,11 @@ BookReader.prototype.resize = function() {
|
|
632
607
|
this.resizeBRcontainer();
|
633
608
|
|
634
609
|
// Switch navbar controls on mobile/desktop
|
635
|
-
this.switchNavbarControls();
|
610
|
+
this._components.navbar.switchNavbarControls();
|
636
611
|
|
637
612
|
if (this.constMode1up == this.mode) {
|
638
613
|
if (this.onePage.autofit != 'none') {
|
639
|
-
this.
|
614
|
+
this._modes.mode1Up.resizePageView();
|
640
615
|
this.centerPageView();
|
641
616
|
} else {
|
642
617
|
this.centerPageView();
|
@@ -644,12 +619,12 @@ BookReader.prototype.resize = function() {
|
|
644
619
|
this.drawLeafsThrottled();
|
645
620
|
}
|
646
621
|
} else if (this.constModeThumb == this.mode) {
|
647
|
-
this.
|
622
|
+
this._modes.modeThumb.prepare();
|
648
623
|
} else {
|
649
624
|
// We only need to prepare again in autofit (size of spread changes)
|
650
625
|
if (this.twoPage.autofit) {
|
651
626
|
// most common path, esp. for archive.org books
|
652
|
-
this.
|
627
|
+
this._modes.mode2Up.prepare();
|
653
628
|
} else {
|
654
629
|
// used when zoomed in
|
655
630
|
// Re-center if the scrollbars have disappeared
|
@@ -664,7 +639,7 @@ BookReader.prototype.resize = function() {
|
|
664
639
|
doRecenter = true;
|
665
640
|
}
|
666
641
|
if (doRecenter) {
|
667
|
-
this.
|
642
|
+
this._modes.mode2Up.centerView(center.percentageX, center.percentageY);
|
668
643
|
}
|
669
644
|
}
|
670
645
|
}
|
@@ -790,10 +765,9 @@ BookReader.prototype.setupKeyListeners = function () {
|
|
790
765
|
BookReader.prototype.drawLeafs = function() {
|
791
766
|
if (this.constMode1up == this.mode) {
|
792
767
|
// Not needed for Mode1Up anymore
|
793
|
-
|
794
|
-
this.drawLeafsThumbnail();
|
768
|
+
return;
|
795
769
|
} else {
|
796
|
-
this.
|
770
|
+
this.activeMode.drawLeafs();
|
797
771
|
}
|
798
772
|
};
|
799
773
|
|
@@ -802,7 +776,7 @@ BookReader.prototype.drawLeafs = function() {
|
|
802
776
|
* @param {PageIndex} index
|
803
777
|
*/
|
804
778
|
BookReader.prototype._createPageContainer = function(index) {
|
805
|
-
return new PageContainer(this.
|
779
|
+
return new PageContainer(this.book.getPage(index, false), {
|
806
780
|
isProtected: this.protected,
|
807
781
|
imageCache: this.imageCache,
|
808
782
|
loadingImage: this.imagesBaseURL + 'loading.gif',
|
@@ -838,24 +812,6 @@ BookReader.prototype.bindGestures = function(jElement) {
|
|
838
812
|
});
|
839
813
|
};
|
840
814
|
|
841
|
-
/** @deprecated Not used outside ModeThumb */
|
842
|
-
BookReader.prototype.drawLeafsThumbnail = ModeThumb.prototype.drawLeafs;
|
843
|
-
exposeOverrideableMethod(ModeThumb, '_modes.modeThumb', 'drawLeafs', 'drawLeafsThumbnail');
|
844
|
-
/** @deprecated Not used outside ModeThumb */
|
845
|
-
BookReader.prototype.lazyLoadThumbnails = ModeThumb.prototype.lazyLoadThumbnails;
|
846
|
-
exposeOverrideableMethod(ModeThumb, '_modes.modeThumb', 'lazyLoadThumbnails', 'lazyLoadThumbnails');
|
847
|
-
BookReader.prototype.lazyLoadImage = ModeThumb.prototype.lazyLoadImage;
|
848
|
-
exposeOverrideableMethod(ModeThumb, '_modes.modeThumb', 'lazyLoadImage', 'lazyLoadImage');
|
849
|
-
/** @deprecated Internal use only */
|
850
|
-
BookReader.prototype.zoomThumb = ModeThumb.prototype.zoom;
|
851
|
-
exposeOverrideableMethod(ModeThumb, '_modes.modeThumb', 'zoom', 'zoomThumb');
|
852
|
-
/** @deprecated Not used outside ModeThumb */
|
853
|
-
BookReader.prototype.getThumbnailWidth = ModeThumb.prototype.getThumbnailWidth;
|
854
|
-
exposeOverrideableMethod(ModeThumb, '_modes.modeThumb', 'getThumbnailWidth', 'getThumbnailWidth');
|
855
|
-
/** @deprecated Not used outside ModeThumb */
|
856
|
-
BookReader.prototype.prepareThumbnailView = ModeThumb.prototype.prepare;
|
857
|
-
exposeOverrideableMethod(ModeThumb, '_modes.modeThumb', 'prepare', 'prepareThumbnailView');
|
858
|
-
|
859
815
|
/**
|
860
816
|
* A throttled version of drawLeafs
|
861
817
|
*/
|
@@ -990,7 +946,7 @@ BookReader.prototype._reduceSort = (a, b) => a.reduce - b.reduce;
|
|
990
946
|
* @return {boolean} Returns true if page could be found, false otherwise.
|
991
947
|
*/
|
992
948
|
BookReader.prototype.jumpToPage = function(pageNum) {
|
993
|
-
const pageIndex = this.
|
949
|
+
const pageIndex = this.book.parsePageString(pageNum);
|
994
950
|
|
995
951
|
if ('undefined' != typeof(pageIndex)) {
|
996
952
|
this.jumpToIndex(pageIndex);
|
@@ -1019,7 +975,7 @@ BookReader.prototype._isIndexDisplayed = function(index) {
|
|
1019
975
|
*/
|
1020
976
|
BookReader.prototype.jumpToIndex = function(index, pageX, pageY, noAnimate) {
|
1021
977
|
// Don't jump into specific unviewable page
|
1022
|
-
const page = this.
|
978
|
+
const page = this.book.getPage(index);
|
1023
979
|
if (!page.isViewable && page.unviewablesStart != page.index) {
|
1024
980
|
// If already in unviewable range, jump to end of that range
|
1025
981
|
const alreadyInPreview = this._isIndexDisplayed(page.unviewablesStart);
|
@@ -1041,7 +997,6 @@ BookReader.prototype.jumpToIndex = function(index, pageX, pageY, noAnimate) {
|
|
1041
997
|
/**
|
1042
998
|
* Return mode or 1up if initial thumb
|
1043
999
|
* @param {number}
|
1044
|
-
* @see BookReader.prototype.drawLeafsThumbnail
|
1045
1000
|
*/
|
1046
1001
|
BookReader.prototype.getPrevReadMode = function(mode) {
|
1047
1002
|
if (mode === BookReader.constMode1up || mode === BookReader.constMode2up) {
|
@@ -1097,21 +1052,21 @@ BookReader.prototype.switchMode = function(
|
|
1097
1052
|
|
1098
1053
|
// XXX maybe better to preserve zoom in each mode
|
1099
1054
|
if (this.constMode1up == mode) {
|
1100
|
-
this.
|
1055
|
+
this._modes.mode1Up.prepare();
|
1101
1056
|
} else if (this.constModeThumb == mode) {
|
1102
1057
|
this.reduce = this.quantizeReduce(this.reduce, this.reductionFactors);
|
1103
|
-
this.
|
1058
|
+
this._modes.modeThumb.prepare();
|
1104
1059
|
} else {
|
1105
1060
|
// $$$ why don't we save autofit?
|
1106
1061
|
// this.twoPage.autofit = null; // Take zoom level from other mode
|
1107
1062
|
// spread indices not set, so let's set them
|
1108
1063
|
if (init || !pageFound) {
|
1109
|
-
this.setSpreadIndices();
|
1064
|
+
this._modes.mode2Up.setSpreadIndices();
|
1110
1065
|
}
|
1111
1066
|
|
1112
|
-
this.
|
1113
|
-
this.
|
1114
|
-
this.
|
1067
|
+
this._modes.mode2Up.calculateReductionFactors(); // this sets this.twoPage && this.reduce
|
1068
|
+
this._modes.mode2Up.prepare();
|
1069
|
+
this._modes.mode2Up.centerView(0.5, 0.5); // $$$ TODO preserve center
|
1115
1070
|
}
|
1116
1071
|
|
1117
1072
|
if (!(this.suppressFragmentChange || suppressFragmentChange)) {
|
@@ -1188,7 +1143,7 @@ BookReader.prototype.enterFullscreen = async function(bindKeyboardControls = tru
|
|
1188
1143
|
this.animating = true;
|
1189
1144
|
await new Promise(res => this.refs.$brContainer.animate({opacity: 1}, 'fast', 'linear', res));
|
1190
1145
|
if (this.activeMode instanceof Mode1Up) {
|
1191
|
-
this.activeMode.mode1UpLit.scale = this.activeMode.mode1UpLit.computeDefaultScale(this.
|
1146
|
+
this.activeMode.mode1UpLit.scale = this.activeMode.mode1UpLit.computeDefaultScale(this.book.getPage(currentIndex));
|
1192
1147
|
// Need the new scale to be applied before calling jumpToIndex
|
1193
1148
|
this.activeMode.mode1UpLit.requestUpdate();
|
1194
1149
|
await this.activeMode.mode1UpLit.updateComplete;
|
@@ -1239,7 +1194,7 @@ BookReader.prototype.exitFullScreen = async function () {
|
|
1239
1194
|
this.resize();
|
1240
1195
|
|
1241
1196
|
if (this.activeMode instanceof Mode1Up) {
|
1242
|
-
this.activeMode.mode1UpLit.scale = this.activeMode.mode1UpLit.computeDefaultScale(this.
|
1197
|
+
this.activeMode.mode1UpLit.scale = this.activeMode.mode1UpLit.computeDefaultScale(this.book.getPage(this.currentIndex()));
|
1243
1198
|
this.activeMode.mode1UpLit.requestUpdate();
|
1244
1199
|
await this.activeMode.mode1UpLit.updateComplete;
|
1245
1200
|
}
|
@@ -1262,7 +1217,7 @@ BookReader.prototype.currentIndex = function() {
|
|
1262
1217
|
return this.firstIndex; // $$$ TODO page in center of view would be better
|
1263
1218
|
} else if (this.mode == this.constMode2up) {
|
1264
1219
|
// Only allow indices that are actually present in book
|
1265
|
-
return utils.clamp(this.firstIndex, 0, this.
|
1220
|
+
return utils.clamp(this.firstIndex, 0, this.book.getNumLeafs() - 1);
|
1266
1221
|
} else {
|
1267
1222
|
throw 'currentIndex called for unimplemented mode ' + this.mode;
|
1268
1223
|
}
|
@@ -1293,7 +1248,7 @@ BookReader.prototype.updateFirstIndex = function(
|
|
1293
1248
|
this.suppressFragmentChange = false;
|
1294
1249
|
}
|
1295
1250
|
this.trigger('pageChanged');
|
1296
|
-
this.updateNavIndexThrottled(index);
|
1251
|
+
this._components.navbar.updateNavIndexThrottled(index);
|
1297
1252
|
};
|
1298
1253
|
|
1299
1254
|
/**
|
@@ -1340,10 +1295,10 @@ BookReader.prototype.leftmost = function() {
|
|
1340
1295
|
}
|
1341
1296
|
};
|
1342
1297
|
|
1343
|
-
BookReader.prototype.next = function() {
|
1298
|
+
BookReader.prototype.next = function({triggerStop = true} = {}) {
|
1344
1299
|
if (this.constMode2up == this.mode) {
|
1345
|
-
this.trigger(BookReader.eventNames.stop);
|
1346
|
-
this.flipFwdToIndex(null);
|
1300
|
+
if (triggerStop) this.trigger(BookReader.eventNames.stop);
|
1301
|
+
this._modes.mode2Up.flipFwdToIndex(null);
|
1347
1302
|
} else {
|
1348
1303
|
if (this.firstIndex < this.lastDisplayableIndex()) {
|
1349
1304
|
this.jumpToIndex(this.firstIndex + 1);
|
@@ -1351,13 +1306,13 @@ BookReader.prototype.next = function() {
|
|
1351
1306
|
}
|
1352
1307
|
};
|
1353
1308
|
|
1354
|
-
BookReader.prototype.prev = function() {
|
1309
|
+
BookReader.prototype.prev = function({triggerStop = true} = {}) {
|
1355
1310
|
const isOnFrontPage = this.firstIndex < 1;
|
1356
1311
|
if (isOnFrontPage) return;
|
1357
1312
|
|
1358
1313
|
if (this.constMode2up == this.mode) {
|
1359
|
-
this.trigger(BookReader.eventNames.stop);
|
1360
|
-
this.flipBackToIndex(null);
|
1314
|
+
if (triggerStop) this.trigger(BookReader.eventNames.stop);
|
1315
|
+
this._modes.mode2Up.flipBackToIndex(null);
|
1361
1316
|
} else {
|
1362
1317
|
if (this.firstIndex >= 1) {
|
1363
1318
|
this.jumpToIndex(this.firstIndex - 1);
|
@@ -1419,146 +1374,12 @@ BookReader.prototype.scrollUp = function() {
|
|
1419
1374
|
BookReader.prototype._scrollAmount = function() {
|
1420
1375
|
if (this.constMode1up == this.mode) {
|
1421
1376
|
// Overlap by % of page size
|
1422
|
-
return parseInt(this.refs.$brContainer.prop('clientHeight') - this.
|
1377
|
+
return parseInt(this.refs.$brContainer.prop('clientHeight') - this.book.getPageHeight(this.currentIndex()) / this.reduce * 0.03);
|
1423
1378
|
}
|
1424
1379
|
|
1425
1380
|
return parseInt(0.9 * this.refs.$brContainer.prop('clientHeight'));
|
1426
1381
|
};
|
1427
1382
|
|
1428
|
-
/**
|
1429
|
-
* @deprecated No longer used; will be remove in v5
|
1430
|
-
*/
|
1431
|
-
BookReader.prototype.prefetchImg = async function(index, fetchNow = false) {
|
1432
|
-
console.warn('Call to deprecated function: BookReader.prefetchImg. No-op.');
|
1433
|
-
};
|
1434
|
-
|
1435
|
-
/**
|
1436
|
-
* @deprecated No longer used; will be remove in v5
|
1437
|
-
*/
|
1438
|
-
BookReader.prototype.pruneUnusedImgs = function() {
|
1439
|
-
console.warn('Call to deprecated function: BookReader.pruneUnused. No-op.');
|
1440
|
-
};
|
1441
|
-
|
1442
|
-
/************************/
|
1443
|
-
/** Mode1Up extensions **/
|
1444
|
-
/************************/
|
1445
|
-
/** @deprecated not used outside BookReader */
|
1446
|
-
BookReader.prototype.prepareOnePageView = Mode1Up.prototype.prepare;
|
1447
|
-
exposeOverrideableMethod(Mode1Up, '_modes.mode1Up', 'prepare', 'prepareOnePageView');
|
1448
|
-
/** @deprecated not used outside BookReader */
|
1449
|
-
BookReader.prototype.zoom1up = Mode1Up.prototype.zoom;
|
1450
|
-
exposeOverrideableMethod(Mode1Up, '_modes.mode1Up', 'zoom', 'zoom1up');
|
1451
|
-
/** @deprecated not used outside Mode1Up, BookReader */
|
1452
|
-
BookReader.prototype.resizePageView1up = Mode1Up.prototype.resizePageView;
|
1453
|
-
exposeOverrideableMethod(Mode1Up, '_modes.mode1Up', 'resizePageView', 'resizePageView1up');
|
1454
|
-
/** @deprecated not used outside Mode1Up */
|
1455
|
-
BookReader.prototype.onePageCalculateViewDimensions = Mode1Up.prototype.calculateViewDimensions;
|
1456
|
-
exposeOverrideableMethod(Mode1Up, '_modes.mode1Up', 'calculateViewDimensions', 'onePageCalculateViewDimensions');
|
1457
|
-
|
1458
|
-
/************************/
|
1459
|
-
/** Mode2Up extensions **/
|
1460
|
-
/************************/
|
1461
|
-
/** @deprecated not used outside Mode2Up */
|
1462
|
-
BookReader.prototype.zoom2up = Mode2Up.prototype.zoom;
|
1463
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'zoom', 'zoom2up');
|
1464
|
-
BookReader.prototype.twoPageGetAutofitReduce = Mode2Up.prototype.getAutofitReduce;
|
1465
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'getAutofitReduce', 'twoPageGetAutofitReduce');
|
1466
|
-
BookReader.prototype.flipBackToIndex = Mode2Up.prototype.flipBackToIndex;
|
1467
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'flipBackToIndex', 'flipBackToIndex');
|
1468
|
-
BookReader.prototype.flipFwdToIndex = Mode2Up.prototype.flipFwdToIndex;
|
1469
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'flipFwdToIndex', 'flipFwdToIndex');
|
1470
|
-
BookReader.prototype.setHilightCss2UP = Mode2Up.prototype.setHilightCss;
|
1471
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'setHilightCss', 'setHilightCss2UP');
|
1472
|
-
/** @deprecated not used outside Mode2Up */
|
1473
|
-
BookReader.prototype.drawLeafsTwoPage = Mode2Up.prototype.drawLeafs;
|
1474
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'drawLeafs', 'drawLeafsTwoPage');
|
1475
|
-
/** @deprecated not used outside BookReader */
|
1476
|
-
BookReader.prototype.prepareTwoPageView = Mode2Up.prototype.prepareTwoPageView;
|
1477
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'prepareTwoPageView', 'prepareTwoPageView');
|
1478
|
-
/** @deprecated not used outside Mode2Up */
|
1479
|
-
BookReader.prototype.prepareTwoPagePopUp = Mode2Up.prototype.preparePopUp;
|
1480
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'preparePopUp', 'prepareTwoPagePopUp');
|
1481
|
-
/** @deprecated not used outside BookReader, Mode2Up */
|
1482
|
-
BookReader.prototype.calculateSpreadSize = Mode2Up.prototype.calculateSpreadSize;
|
1483
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'calculateSpreadSize', 'calculateSpreadSize');
|
1484
|
-
/** @deprecated not used outside BookReader, Mode2Up */
|
1485
|
-
BookReader.prototype.getIdealSpreadSize = Mode2Up.prototype.getIdealSpreadSize;
|
1486
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'getIdealSpreadSize', 'getIdealSpreadSize');
|
1487
|
-
/** @deprecated not used outside BookReader, Mode2Up */
|
1488
|
-
BookReader.prototype.getSpreadSizeFromReduce = Mode2Up.prototype.getSpreadSizeFromReduce;
|
1489
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'getSpreadSizeFromReduce', 'getSpreadSizeFromReduce');
|
1490
|
-
/** @deprecated unused */
|
1491
|
-
BookReader.prototype.twoPageIsZoomedIn = Mode2Up.prototype.isZoomedIn;
|
1492
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'isZoomedIn', 'twoPageIsZoomedIn');
|
1493
|
-
/** @deprecated not used outside BookReader */
|
1494
|
-
BookReader.prototype.twoPageCalculateReductionFactors = Mode2Up.prototype.calculateReductionFactors;
|
1495
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'calculateReductionFactors', 'twoPageCalculateReductionFactors');
|
1496
|
-
/** @deprecated unused */
|
1497
|
-
BookReader.prototype.twoPageSetCursor = Mode2Up.prototype.setCursor;
|
1498
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'setCursor', 'twoPageSetCursor');
|
1499
|
-
/** @deprecated unused outside BookReader, Mode2Up */
|
1500
|
-
BookReader.prototype.flipLeftToRight = Mode2Up.prototype.flipLeftToRight;
|
1501
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'flipLeftToRight', 'flipLeftToRight');
|
1502
|
-
/** @deprecated unused outside BookReader, Mode2Up */
|
1503
|
-
BookReader.prototype.flipRightToLeft = Mode2Up.prototype.flipRightToLeft;
|
1504
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'flipRightToLeft', 'flipRightToLeft');
|
1505
|
-
/** @deprecated unused outside BookReader, Mode2Up */
|
1506
|
-
BookReader.prototype.prepareFlipLeftToRight = Mode2Up.prototype.prepareFlipLeftToRight;
|
1507
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'prepareFlipLeftToRight', 'prepareFlipLeftToRight');
|
1508
|
-
/** @deprecated unused outside BookReader, Mode2Up */
|
1509
|
-
BookReader.prototype.prepareFlipRightToLeft = Mode2Up.prototype.prepareFlipRightToLeft;
|
1510
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'prepareFlipRightToLeft', 'prepareFlipRightToLeft');
|
1511
|
-
/** @deprecated unused outside Mode2Up */
|
1512
|
-
BookReader.prototype.getPageWidth2UP = Mode2Up.prototype.getPageWidth;
|
1513
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'getPageWidth', 'getPageWidth2UP');
|
1514
|
-
/** @deprecated unused outside Mode2Up */
|
1515
|
-
BookReader.prototype.twoPageGutter = Mode2Up.prototype.gutter;
|
1516
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'gutter', 'twoPageGutter');
|
1517
|
-
/** @deprecated unused outside Mode2Up */
|
1518
|
-
BookReader.prototype.twoPageTop = Mode2Up.prototype.top;
|
1519
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'top', 'twoPageTop');
|
1520
|
-
/** @deprecated unused outside Mode2Up */
|
1521
|
-
BookReader.prototype.twoPageCoverWidth = Mode2Up.prototype.coverWidth;
|
1522
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'coverWidth', 'twoPageCoverWidth');
|
1523
|
-
/** @deprecated unused outside Mode2Up */
|
1524
|
-
BookReader.prototype.twoPageGetViewCenter = Mode2Up.prototype.getViewCenter;
|
1525
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'getViewCenter', 'twoPageGetViewCenter');
|
1526
|
-
/** @deprecated unused outside BookReader, Mode2Up */
|
1527
|
-
BookReader.prototype.twoPageCenterView = Mode2Up.prototype.centerView;
|
1528
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'centerView', 'twoPageCenterView');
|
1529
|
-
/** @deprecated unused outside Mode2Up */
|
1530
|
-
BookReader.prototype.twoPageFlipAreaHeight = Mode2Up.prototype.flipAreaHeight;
|
1531
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'flipAreaHeight', 'twoPageFlipAreaHeight');
|
1532
|
-
/** @deprecated unused outside Mode2Up */
|
1533
|
-
BookReader.prototype.twoPageFlipAreaWidth = Mode2Up.prototype.flipAreaWidth;
|
1534
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'flipAreaWidth', 'twoPageFlipAreaWidth');
|
1535
|
-
/** @deprecated unused outside BookReader, Mode2Up */
|
1536
|
-
BookReader.prototype.twoPageFlipAreaTop = Mode2Up.prototype.flipAreaTop;
|
1537
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'flipAreaTop', 'twoPageFlipAreaTop');
|
1538
|
-
/** @deprecated unused outside Mode2Up */
|
1539
|
-
BookReader.prototype.twoPageLeftFlipAreaLeft = Mode2Up.prototype.leftFlipAreaLeft;
|
1540
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'leftFlipAreaLeft', 'twoPageLeftFlipAreaLeft');
|
1541
|
-
/** @deprecated unused outside Mode2Up */
|
1542
|
-
BookReader.prototype.twoPageRightFlipAreaLeft = Mode2Up.prototype.rightFlipAreaLeft;
|
1543
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'rightFlipAreaLeft', 'twoPageRightFlipAreaLeft');
|
1544
|
-
/** @deprecated unused outside BookReader, Mode2Up */
|
1545
|
-
BookReader.prototype.gutterOffsetForIndex = Mode2Up.prototype.gutterOffsetForIndex;
|
1546
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'gutterOffsetForIndex', 'gutterOffsetForIndex');
|
1547
|
-
/** @deprecated unused outside BookReader, Mode2Up */
|
1548
|
-
BookReader.prototype.leafEdgeWidth = Mode2Up.prototype.leafEdgeWidth;
|
1549
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'leafEdgeWidth', 'leafEdgeWidth');
|
1550
|
-
/** @deprecated unused outside BookReader, Mode2Up */
|
1551
|
-
BookReader.prototype.jumpIndexForLeftEdgePageX = Mode2Up.prototype.jumpIndexForLeftEdgePageX;
|
1552
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'jumpIndexForLeftEdgePageX', 'jumpIndexForLeftEdgePageX');
|
1553
|
-
/** @deprecated unused outside BookReader, Mode2Up */
|
1554
|
-
BookReader.prototype.jumpIndexForRightEdgePageX = Mode2Up.prototype.jumpIndexForRightEdgePageX;
|
1555
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'jumpIndexForRightEdgePageX', 'jumpIndexForRightEdgePageX');
|
1556
|
-
/** @deprecated unused outside Mode2Up */
|
1557
|
-
BookReader.prototype.prefetch = Mode2Up.prototype.prefetch;
|
1558
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'prefetch', 'prefetch');
|
1559
|
-
/** @deprecated unused outside Mode2Up */
|
1560
|
-
BookReader.prototype.setSpreadIndices = Mode2Up.prototype.setSpreadIndices;
|
1561
|
-
exposeOverrideableMethod(Mode2Up, '_modes.mode2Up', 'setSpreadIndices', 'setSpreadIndices');
|
1562
1383
|
/**
|
1563
1384
|
* Immediately stop flip animations. Callbacks are triggered.
|
1564
1385
|
*/
|
@@ -1604,27 +1425,9 @@ function exposeOverrideableMethod(Class, classKey, method, brMethod = method) {
|
|
1604
1425
|
/***********************/
|
1605
1426
|
/** Navbar extensions **/
|
1606
1427
|
/***********************/
|
1428
|
+
/** This cannot be removed yet because plugin.tts.js overrides it */
|
1607
1429
|
BookReader.prototype.initNavbar = Navbar.prototype.init;
|
1608
1430
|
exposeOverrideableMethod(Navbar, '_components.navbar', 'init', 'initNavbar');
|
1609
|
-
BookReader.prototype.switchNavbarControls = Navbar.prototype.switchNavbarControls;
|
1610
|
-
exposeOverrideableMethod(Navbar, '_components.navbar', 'switchNavbarControls');
|
1611
|
-
BookReader.prototype.updateViewModeButton = Navbar.prototype.updateViewModeButton;
|
1612
|
-
exposeOverrideableMethod(Navbar, '_components.navbar', 'updateViewModeButton');
|
1613
|
-
BookReader.prototype.getNavPageNumString = Navbar.prototype.getNavPageNumString;
|
1614
|
-
exposeOverrideableMethod(Navbar, '_components.navbar', 'getNavPageNumString');
|
1615
|
-
/** @deprecated unused */
|
1616
|
-
BookReader.prototype.getNavPageNumHtml = getNavPageNumHtml;
|
1617
|
-
/** @deprecated unused outside this file */
|
1618
|
-
BookReader.prototype.updateNavPageNum = Navbar.prototype.updateNavPageNum;
|
1619
|
-
exposeOverrideableMethod(Navbar, '_components.navbar', 'updateNavPageNum');
|
1620
|
-
/** @deprecated unused outside this file */
|
1621
|
-
BookReader.prototype.updateNavIndex = Navbar.prototype.updateNavIndex;
|
1622
|
-
exposeOverrideableMethod(Navbar, '_components.navbar', 'updateNavIndex');
|
1623
|
-
/** @deprecated unused outside this file */
|
1624
|
-
BookReader.prototype.updateNavIndexThrottled = utils.throttle(BookReader.prototype.updateNavIndex, 250, false);
|
1625
|
-
/** @deprecated unused */
|
1626
|
-
BookReader.prototype.updateNavIndexDebounced = utils.debounce(BookReader.prototype.updateNavIndex, 500, false);
|
1627
|
-
|
1628
1431
|
|
1629
1432
|
/************************/
|
1630
1433
|
/** Toolbar extensions **/
|
@@ -1639,15 +1442,6 @@ BookReader.prototype.buildInfoDiv = Toolbar.prototype.buildInfoDiv;
|
|
1639
1442
|
exposeOverrideableMethod(Toolbar, '_components.toolbar', 'buildInfoDiv');
|
1640
1443
|
BookReader.prototype.getToolBarHeight = Toolbar.prototype.getToolBarHeight;
|
1641
1444
|
exposeOverrideableMethod(Toolbar, '_components.toolbar', 'getToolBarHeight');
|
1642
|
-
/** @deprecated zoom no longer in toolbar */
|
1643
|
-
BookReader.prototype.updateToolbarZoom = Toolbar.prototype.updateToolbarZoom;
|
1644
|
-
exposeOverrideableMethod(Toolbar, '_components.toolbar', 'updateToolbarZoom');
|
1645
|
-
/** @deprecated unused */
|
1646
|
-
BookReader.prototype.blankInfoDiv = blankInfoDiv;
|
1647
|
-
/** @deprecated unused */
|
1648
|
-
BookReader.prototype.blankShareDiv = blankShareDiv;
|
1649
|
-
/** @deprecated unused */
|
1650
|
-
BookReader.prototype.createPopup = createPopup;
|
1651
1445
|
|
1652
1446
|
/**
|
1653
1447
|
* Bind navigation handlers
|
@@ -2063,14 +1857,14 @@ BookReader.prototype.firstDisplayableIndex = function() {
|
|
2063
1857
|
|
2064
1858
|
if ('rl' != this.pageProgression) {
|
2065
1859
|
// LTR
|
2066
|
-
if (this.
|
1860
|
+
if (this.book.getPageSide(0) == 'L') {
|
2067
1861
|
return 0;
|
2068
1862
|
} else {
|
2069
1863
|
return -1;
|
2070
1864
|
}
|
2071
1865
|
} else {
|
2072
1866
|
// RTL
|
2073
|
-
if (this.
|
1867
|
+
if (this.book.getPageSide(0) == 'R') {
|
2074
1868
|
return 0;
|
2075
1869
|
} else {
|
2076
1870
|
return -1;
|
@@ -2086,7 +1880,7 @@ BookReader.prototype.firstDisplayableIndex = function() {
|
|
2086
1880
|
*/
|
2087
1881
|
BookReader.prototype.lastDisplayableIndex = function() {
|
2088
1882
|
|
2089
|
-
const lastIndex = this.
|
1883
|
+
const lastIndex = this.book.getNumLeafs() - 1;
|
2090
1884
|
|
2091
1885
|
if (this.mode != this.constMode2up) {
|
2092
1886
|
return lastIndex;
|
@@ -2094,14 +1888,14 @@ BookReader.prototype.lastDisplayableIndex = function() {
|
|
2094
1888
|
|
2095
1889
|
if ('rl' != this.pageProgression) {
|
2096
1890
|
// LTR
|
2097
|
-
if (this.
|
1891
|
+
if (this.book.getPageSide(lastIndex) == 'R') {
|
2098
1892
|
return lastIndex;
|
2099
1893
|
} else {
|
2100
1894
|
return lastIndex + 1;
|
2101
1895
|
}
|
2102
1896
|
} else {
|
2103
1897
|
// RTL
|
2104
|
-
if (this.
|
1898
|
+
if (this.book.getPageSide(lastIndex) == 'L') {
|
2105
1899
|
return lastIndex;
|
2106
1900
|
} else {
|
2107
1901
|
return lastIndex + 1;
|
@@ -2113,46 +1907,11 @@ BookReader.prototype.lastDisplayableIndex = function() {
|
|
2113
1907
|
/**************************/
|
2114
1908
|
/** BookModel extensions **/
|
2115
1909
|
/**************************/
|
2116
|
-
|
2117
|
-
|
2118
|
-
exposeOverrideableMethod(BookModel, '_models.book', 'getMedianPageSize');
|
2119
|
-
BookReader.prototype._getPageWidth = BookModel.prototype._getPageWidth;
|
2120
|
-
exposeOverrideableMethod(BookModel, '_models.book', '_getPageWidth');
|
2121
|
-
BookReader.prototype._getPageHeight = BookModel.prototype._getPageHeight;
|
2122
|
-
exposeOverrideableMethod(BookModel, '_models.book', '_getPageHeight');
|
2123
|
-
BookReader.prototype.getPageIndex = BookModel.prototype.getPageIndex;
|
2124
|
-
exposeOverrideableMethod(BookModel, '_models.book', 'getPageIndex');
|
2125
|
-
/** @deprecated not used outside */
|
2126
|
-
BookReader.prototype.getPageIndices = BookModel.prototype.getPageIndices;
|
2127
|
-
exposeOverrideableMethod(BookModel, '_models.book', 'getPageIndices');
|
2128
|
-
BookReader.prototype.getPageName = BookModel.prototype.getPageName;
|
2129
|
-
exposeOverrideableMethod(BookModel, '_models.book', 'getPageName');
|
2130
|
-
BookReader.prototype.getNumLeafs = BookModel.prototype.getNumLeafs;
|
2131
|
-
exposeOverrideableMethod(BookModel, '_models.book', 'getNumLeafs');
|
2132
|
-
BookReader.prototype.getPageWidth = BookModel.prototype.getPageWidth;
|
2133
|
-
exposeOverrideableMethod(BookModel, '_models.book', 'getPageWidth');
|
2134
|
-
BookReader.prototype.getPageHeight = BookModel.prototype.getPageHeight;
|
2135
|
-
exposeOverrideableMethod(BookModel, '_models.book', 'getPageHeight');
|
1910
|
+
// Must modify petabox extension, which expects this on the prototype
|
1911
|
+
// before removing.
|
2136
1912
|
BookReader.prototype.getPageURI = BookModel.prototype.getPageURI;
|
2137
|
-
exposeOverrideableMethod(BookModel, '
|
2138
|
-
|
2139
|
-
exposeOverrideableMethod(BookModel, '_models.book', 'getPageSide');
|
2140
|
-
BookReader.prototype.getPageNum = BookModel.prototype.getPageNum;
|
2141
|
-
exposeOverrideableMethod(BookModel, '_models.book', 'getPageNum');
|
2142
|
-
BookReader.prototype.getPageProp = BookModel.prototype.getPageProp;
|
2143
|
-
exposeOverrideableMethod(BookModel, '_models.book', 'getPageProp');
|
2144
|
-
BookReader.prototype.getSpreadIndices = BookModel.prototype.getSpreadIndices;
|
2145
|
-
exposeOverrideableMethod(BookModel, '_models.book', 'getSpreadIndices');
|
2146
|
-
BookReader.prototype.leafNumToIndex = BookModel.prototype.leafNumToIndex;
|
2147
|
-
exposeOverrideableMethod(BookModel, '_models.book', 'leafNumToIndex');
|
2148
|
-
BookReader.prototype.parsePageString = BookModel.prototype.parsePageString;
|
2149
|
-
exposeOverrideableMethod(BookModel, '_models.book', 'parsePageString');
|
2150
|
-
/** @deprecated unused */
|
2151
|
-
BookReader.prototype._getDataFlattened = BookModel.prototype._getDataFlattened;
|
2152
|
-
exposeOverrideableMethod(BookModel, '_models.book', '_getDataFlattened');
|
2153
|
-
/** @deprecated unused */
|
2154
|
-
BookReader.prototype._getDataProp = BookModel.prototype._getDataProp;
|
2155
|
-
exposeOverrideableMethod(BookModel, '_models.book', '_getDataProp');
|
1913
|
+
exposeOverrideableMethod(BookModel, 'book', 'getPageURI');
|
1914
|
+
|
2156
1915
|
|
2157
1916
|
// Parameter related functions
|
2158
1917
|
|
@@ -2183,7 +1942,7 @@ BookReader.prototype.updateFromParams = function(params) {
|
|
2183
1942
|
}
|
2184
1943
|
} else if ('undefined' != typeof(params.page)) {
|
2185
1944
|
// $$$ this assumes page numbers are unique
|
2186
|
-
if (params.page != this.
|
1945
|
+
if (params.page != this.book.getPageNum(this.currentIndex())) {
|
2187
1946
|
this.jumpToPage(params.page);
|
2188
1947
|
}
|
2189
1948
|
}
|
@@ -2217,7 +1976,7 @@ BookReader.prototype.canSwitchToMode = function(mode) {
|
|
2217
1976
|
// check there are enough pages to display
|
2218
1977
|
// $$$ this is a workaround for the mis-feature that we can't display
|
2219
1978
|
// short books in 2up mode
|
2220
|
-
if (this.
|
1979
|
+
if (this.book.getNumLeafs() < 2) {
|
2221
1980
|
return false;
|
2222
1981
|
}
|
2223
1982
|
}
|
@@ -2225,31 +1984,6 @@ BookReader.prototype.canSwitchToMode = function(mode) {
|
|
2225
1984
|
return true;
|
2226
1985
|
};
|
2227
1986
|
|
2228
|
-
|
2229
|
-
/**
|
2230
|
-
* @deprecated. Use PageModel.getURISrcSet. Slated for removal in v5.
|
2231
|
-
* Returns the srcset with correct URIs or void string if out of range
|
2232
|
-
* Also makes the reduce argument optional
|
2233
|
-
* @param {number} index
|
2234
|
-
* @param {number} [reduce]
|
2235
|
-
* @param {number} [rotate]
|
2236
|
-
* @return {string}
|
2237
|
-
*/
|
2238
|
-
BookReader.prototype._getPageURISrcset = function(index, reduce, rotate) {
|
2239
|
-
const page = this._models.book.getPage(index, false);
|
2240
|
-
// Synthesize page
|
2241
|
-
if (!page) return "";
|
2242
|
-
|
2243
|
-
// reduce not passed in
|
2244
|
-
// $$$ this probably won't work for thumbnail mode
|
2245
|
-
if ('undefined' == typeof(reduce)) {
|
2246
|
-
reduce = page.height / this.twoPage.height;
|
2247
|
-
}
|
2248
|
-
|
2249
|
-
return page.getURISrcSet(reduce, rotate);
|
2250
|
-
};
|
2251
|
-
|
2252
|
-
|
2253
1987
|
/**
|
2254
1988
|
* Returns the page URI or transparent image if out of range
|
2255
1989
|
* Also makes the reduce argument optional
|
@@ -2259,7 +1993,7 @@ BookReader.prototype._getPageURISrcset = function(index, reduce, rotate) {
|
|
2259
1993
|
* @return {string}
|
2260
1994
|
*/
|
2261
1995
|
BookReader.prototype._getPageURI = function(index, reduce, rotate) {
|
2262
|
-
const page = this.
|
1996
|
+
const page = this.book.getPage(index, false);
|
2263
1997
|
// Synthesize page
|
2264
1998
|
if (!page) return this.imagesBaseURL + "transparent.png";
|
2265
1999
|
|
@@ -2405,7 +2139,7 @@ BookReader.prototype.paramsFromCurrent = function() {
|
|
2405
2139
|
|
2406
2140
|
// Path params
|
2407
2141
|
const index = this.currentIndex();
|
2408
|
-
const pageNum = this.
|
2142
|
+
const pageNum = this.book.getPageNum(index);
|
2409
2143
|
if ((pageNum === 0) || pageNum) {
|
2410
2144
|
params.page = pageNum;
|
2411
2145
|
}
|
@@ -2590,11 +2324,4 @@ BookReader.prototype.$ = function(selector) {
|
|
2590
2324
|
return this.refs.$br.find(selector);
|
2591
2325
|
};
|
2592
2326
|
|
2593
|
-
/**
|
2594
|
-
* Polyfill for deprecated method
|
2595
|
-
*/
|
2596
|
-
jQuery.curCSS = function(element, prop, val) {
|
2597
|
-
return jQuery(element).css(prop, val);
|
2598
|
-
};
|
2599
|
-
|
2600
2327
|
window.BookReader = BookReader;
|