@internetarchive/bookreader 5.0.0-88-alpha.7 → 5.0.0-88-alpha.9
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/babel.config.js +30 -12
- package/dist/esm/BookNavigator/assets/bookmark-colors.js +4 -0
- package/dist/esm/BookNavigator/assets/button-base.js +4 -0
- package/dist/esm/BookNavigator/assets/ia-logo.js +4 -0
- package/dist/esm/BookNavigator/assets/icon_checkmark.js +8 -0
- package/dist/esm/BookNavigator/assets/icon_close.js +4 -0
- package/dist/esm/BookNavigator/book-navigator.js +612 -0
- package/dist/esm/BookNavigator/bookmarks/bookmark-button.js +35 -0
- package/dist/esm/BookNavigator/bookmarks/bookmark-edit.js +78 -0
- package/dist/esm/BookNavigator/bookmarks/bookmarks-list.js +160 -0
- package/dist/esm/BookNavigator/bookmarks/bookmarks-loginCTA.js +24 -0
- package/dist/esm/BookNavigator/bookmarks/bookmarks-provider.js +55 -0
- package/dist/esm/BookNavigator/bookmarks/ia-bookmarks.js +521 -0
- package/dist/esm/BookNavigator/delete-modal-actions.js +29 -0
- package/dist/esm/BookNavigator/downloads/downloads-provider.js +84 -0
- package/dist/esm/BookNavigator/downloads/downloads.js +69 -0
- package/dist/esm/BookNavigator/search/search-provider.js +238 -0
- package/dist/esm/BookNavigator/search/search-results.js +161 -0
- package/dist/esm/BookNavigator/sharing.js +26 -0
- package/dist/esm/BookNavigator/viewable-files.js +94 -0
- package/dist/esm/BookNavigator/visual-adjustments/visual-adjustments-provider.js +83 -0
- package/dist/esm/BookNavigator/visual-adjustments/visual-adjustments.js +131 -0
- package/dist/esm/BookReader/BookModel.js +575 -0
- package/dist/esm/BookReader/DragScrollable.js +224 -0
- package/dist/esm/BookReader/ImageCache.js +122 -0
- package/dist/esm/BookReader/Mode1Up.js +114 -0
- package/dist/esm/BookReader/Mode1UpLit.js +579 -0
- package/dist/esm/BookReader/Mode2Up.js +106 -0
- package/dist/esm/BookReader/Mode2UpLit.js +1020 -0
- package/dist/esm/BookReader/ModeCoordinateSpace.js +28 -0
- package/dist/esm/BookReader/ModeSmoothZoom.js +318 -0
- package/dist/esm/BookReader/ModeThumb.js +366 -0
- package/dist/esm/BookReader/Navbar/Navbar.js +253 -0
- package/dist/esm/BookReader/PageContainer.js +165 -0
- package/dist/esm/BookReader/ReduceSet.js +27 -0
- package/dist/esm/BookReader/Toolbar/Toolbar.js +242 -0
- package/dist/esm/BookReader/events.js +20 -0
- package/dist/esm/BookReader/options.js +331 -0
- package/dist/esm/BookReader/utils/HTMLDimensionsCacher.js +48 -0
- package/dist/esm/BookReader/utils/ScrollClassAdder.js +31 -0
- package/dist/esm/BookReader/utils/SelectionObserver.js +42 -0
- package/dist/esm/BookReader/utils/classes.js +37 -0
- package/dist/esm/BookReader/utils.js +315 -0
- package/dist/esm/BookReader.js +1827 -0
- package/dist/esm/assets/icons/1up.svg +12 -0
- package/dist/esm/assets/icons/2up.svg +15 -0
- package/dist/esm/assets/icons/advance.svg +26 -0
- package/dist/esm/assets/icons/chevron-right.svg +1 -0
- package/dist/esm/assets/icons/close-circle-dark.svg +1 -0
- package/dist/esm/assets/icons/close-circle.svg +1 -0
- package/dist/esm/assets/icons/fullscreen.svg +17 -0
- package/dist/esm/assets/icons/fullscreen_exit.svg +17 -0
- package/dist/esm/assets/icons/hamburger.svg +15 -0
- package/dist/esm/assets/icons/left-arrow.svg +12 -0
- package/dist/esm/assets/icons/magnify-minus.svg +12 -0
- package/dist/esm/assets/icons/magnify-plus.svg +13 -0
- package/dist/esm/assets/icons/magnify.svg +15 -0
- package/dist/esm/assets/icons/pause.svg +23 -0
- package/dist/esm/assets/icons/play.svg +22 -0
- package/dist/esm/assets/icons/playback-speed.svg +34 -0
- package/dist/esm/assets/icons/read-aloud.svg +22 -0
- package/dist/esm/assets/icons/review.svg +22 -0
- package/dist/esm/assets/icons/thumbnails.svg +17 -0
- package/dist/esm/assets/icons/voice.svg +1 -0
- package/dist/esm/assets/icons/volume-full.svg +22 -0
- package/dist/esm/assets/images/BRicons.png +0 -0
- package/dist/esm/assets/images/BRicons.svg +94 -0
- package/dist/esm/assets/images/BRicons_ia.png +0 -0
- package/dist/esm/assets/images/back_pages.png +0 -0
- package/dist/esm/assets/images/book_bottom_icon.png +0 -0
- package/dist/esm/assets/images/book_down_icon.png +0 -0
- package/dist/esm/assets/images/book_left_icon.png +0 -0
- package/dist/esm/assets/images/book_leftmost_icon.png +0 -0
- package/dist/esm/assets/images/book_right_icon.png +0 -0
- package/dist/esm/assets/images/book_rightmost_icon.png +0 -0
- package/dist/esm/assets/images/book_top_icon.png +0 -0
- package/dist/esm/assets/images/book_up_icon.png +0 -0
- package/dist/esm/assets/images/books_graphic.svg +177 -0
- package/dist/esm/assets/images/booksplit.png +0 -0
- package/dist/esm/assets/images/control_pause_icon.png +0 -0
- package/dist/esm/assets/images/control_play_icon.png +0 -0
- package/dist/esm/assets/images/embed_icon.png +0 -0
- package/dist/esm/assets/images/icon-home-ia.png +0 -0
- package/dist/esm/assets/images/icon_OL-logo-xs.png +0 -0
- package/dist/esm/assets/images/icon_alert-xs.png +0 -0
- package/dist/esm/assets/images/icon_book.svg +12 -0
- package/dist/esm/assets/images/icon_bookmark.svg +12 -0
- package/dist/esm/assets/images/icon_close-pop.png +0 -0
- package/dist/esm/assets/images/icon_download.png +0 -0
- package/dist/esm/assets/images/icon_gear.svg +14 -0
- package/dist/esm/assets/images/icon_hamburger.svg +20 -0
- package/dist/esm/assets/images/icon_home.png +0 -0
- package/dist/esm/assets/images/icon_home.svg +21 -0
- package/dist/esm/assets/images/icon_home_ia.png +0 -0
- package/dist/esm/assets/images/icon_indicator.png +0 -0
- package/dist/esm/assets/images/icon_info.svg +11 -0
- package/dist/esm/assets/images/icon_one_page.svg +8 -0
- package/dist/esm/assets/images/icon_pause.svg +1 -0
- package/dist/esm/assets/images/icon_play.svg +1 -0
- package/dist/esm/assets/images/icon_playback-rate.svg +15 -0
- package/dist/esm/assets/images/icon_return.png +0 -0
- package/dist/esm/assets/images/icon_search_button.svg +8 -0
- package/dist/esm/assets/images/icon_share.svg +9 -0
- package/dist/esm/assets/images/icon_skip-ahead.svg +6 -0
- package/dist/esm/assets/images/icon_skip-back.svg +13 -0
- package/dist/esm/assets/images/icon_speaker.svg +18 -0
- package/dist/esm/assets/images/icon_speaker_open.svg +10 -0
- package/dist/esm/assets/images/icon_thumbnails.svg +12 -0
- package/dist/esm/assets/images/icon_toc.svg +5 -0
- package/dist/esm/assets/images/icon_two_pages.svg +9 -0
- package/dist/esm/assets/images/icon_zoomer.png +0 -0
- package/dist/esm/assets/images/loading.gif +0 -0
- package/dist/esm/assets/images/logo_icon.png +0 -0
- package/dist/esm/assets/images/marker_chap-off.png +0 -0
- package/dist/esm/assets/images/marker_chap-off.svg +11 -0
- package/dist/esm/assets/images/marker_chap-off_ia.png +0 -0
- package/dist/esm/assets/images/marker_chap-on.png +0 -0
- package/dist/esm/assets/images/marker_chap-on.svg +11 -0
- package/dist/esm/assets/images/marker_srch-on.svg +11 -0
- package/dist/esm/assets/images/marker_srchchap-off.png +0 -0
- package/dist/esm/assets/images/marker_srchchap-on.png +0 -0
- package/dist/esm/assets/images/nav_control-dn.png +0 -0
- package/dist/esm/assets/images/nav_control-dn_ia.png +0 -0
- package/dist/esm/assets/images/nav_control-up.png +0 -0
- package/dist/esm/assets/images/nav_control-up_ia.png +0 -0
- package/dist/esm/assets/images/nav_control.png +0 -0
- package/dist/esm/assets/images/one_page_mode_icon.png +0 -0
- package/dist/esm/assets/images/paper-badge.png +0 -0
- package/dist/esm/assets/images/print_icon.png +0 -0
- package/dist/esm/assets/images/progressbar.gif +0 -0
- package/dist/esm/assets/images/right_edges.png +0 -0
- package/dist/esm/assets/images/slider.png +0 -0
- package/dist/esm/assets/images/slider_ia.png +0 -0
- package/dist/esm/assets/images/thumbnail_mode_icon.png +0 -0
- package/dist/esm/assets/images/transparent.png +0 -0
- package/dist/esm/assets/images/two_page_mode_icon.png +0 -0
- package/dist/esm/assets/images/unviewable_page.png +0 -0
- package/dist/esm/assets/images/zoom_in_icon.png +0 -0
- package/dist/esm/assets/images/zoom_out_icon.png +0 -0
- package/dist/esm/css/BookReader.scss +85 -0
- package/dist/esm/css/_BRBookmarks.scss +29 -0
- package/dist/esm/css/_BRComponent.scss +13 -0
- package/dist/esm/css/_BRfloat.scss +197 -0
- package/dist/esm/css/_BRicon.scss +54 -0
- package/dist/esm/css/_BRmain.scss +262 -0
- package/dist/esm/css/_BRnav.scss +354 -0
- package/dist/esm/css/_BRpages.scss +213 -0
- package/dist/esm/css/_BRsearch.scss +268 -0
- package/dist/esm/css/_BRtoolbar.scss +84 -0
- package/dist/esm/css/_BRvendor.scss +5 -0
- package/dist/esm/css/_TextSelection.scss +108 -0
- package/dist/esm/css/_colorbox.scss +52 -0
- package/dist/esm/css/_controls.scss +257 -0
- package/dist/esm/css/_icons.scss +121 -0
- package/dist/esm/ia-bookreader/ia-bookreader.js +141 -0
- package/dist/esm/jquery-wrapper.js +3 -0
- package/dist/esm/plugins/plugin.archive_analytics.js +72 -0
- package/dist/esm/plugins/plugin.autoplay.js +119 -0
- package/dist/esm/plugins/plugin.chapters.js +288 -0
- package/dist/esm/plugins/plugin.iframe.js +44 -0
- package/dist/esm/plugins/plugin.iiif.js +146 -0
- package/dist/esm/plugins/plugin.resume.js +66 -0
- package/dist/esm/plugins/plugin.text_selection.js +621 -0
- package/dist/esm/plugins/plugin.vendor-fullscreen.js +227 -0
- package/dist/esm/plugins/search/plugin.search.js +499 -0
- package/dist/esm/plugins/search/utils.js +42 -0
- package/dist/esm/plugins/search/view.js +360 -0
- package/dist/esm/plugins/tts/AbstractTTSEngine.js +282 -0
- package/dist/esm/plugins/tts/FestivalTTSEngine.js +192 -0
- package/dist/esm/plugins/tts/PageChunk.js +105 -0
- package/dist/esm/plugins/tts/PageChunkIterator.js +155 -0
- package/dist/esm/plugins/tts/WebTTSEngine.js +364 -0
- package/dist/esm/plugins/tts/plugin.tts.js +315 -0
- package/dist/esm/plugins/tts/tooltip_dict.js +14 -0
- package/dist/esm/plugins/tts/utils.js +79 -0
- package/dist/esm/plugins/url/UrlPlugin.js +197 -0
- package/dist/esm/plugins/url/plugin.url.js +212 -0
- package/dist/esm/util/browserSniffing.js +56 -0
- package/dist/esm/util/debouncer.js +25 -0
- package/dist/esm/util/docCookies.js +75 -0
- package/dist/esm/util/strings.js +34 -0
- package/jsconfig.json +1 -0
- package/package.json +13 -6
@@ -0,0 +1,227 @@
|
|
1
|
+
/* global BookReader */
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Toggles browser's native fullscreen mode if available device is not mobile
|
5
|
+
*/
|
6
|
+
if (!isMobile()) {
|
7
|
+
var EVENT_NAMESPACE = '.bookreader_vendor-fullscreen';
|
8
|
+
jQuery.extend(BookReader.defaultOptions, {
|
9
|
+
/** @type {boolean} */
|
10
|
+
enableVendorFullscreenPlugin: true
|
11
|
+
});
|
12
|
+
|
13
|
+
/** @override */
|
14
|
+
BookReader.prototype.setup = function (super_) {
|
15
|
+
return function (options) {
|
16
|
+
super_.call(this, options);
|
17
|
+
this.isVendorFullscreenActive = false;
|
18
|
+
};
|
19
|
+
}(BookReader.prototype.setup);
|
20
|
+
|
21
|
+
/** @override */
|
22
|
+
BookReader.prototype.getInitialMode = function (super_) {
|
23
|
+
return function (params) {
|
24
|
+
var nextMode = super_.call(this, params);
|
25
|
+
if (this.isVendorFullscreenActive) {
|
26
|
+
nextMode = this.constMode1up;
|
27
|
+
}
|
28
|
+
return nextMode;
|
29
|
+
};
|
30
|
+
}(BookReader.prototype.getInitialMode);
|
31
|
+
|
32
|
+
/** @override */
|
33
|
+
BookReader.prototype.init = function (super_) {
|
34
|
+
return function () {
|
35
|
+
super_.call(this);
|
36
|
+
if (!fullscreenAllowed()) {
|
37
|
+
return;
|
38
|
+
}
|
39
|
+
// In fullscreen mode the colorbox and overlay need to be inside the fullscreen element to display properly.
|
40
|
+
bindFullscreenChangeListener(this, e => {
|
41
|
+
e.data.resize();
|
42
|
+
e.data.updateBrClasses();
|
43
|
+
var cboxOverlay = $('#cboxOverlay');
|
44
|
+
var cbox = $('#colorbox');
|
45
|
+
if (isFullscreenActive()) {
|
46
|
+
// In full screen mode, the colorbox and overlay need
|
47
|
+
// to be children of the fullscreen element to display properly.
|
48
|
+
var $fullscreen = $(getFullscreenElement());
|
49
|
+
$fullscreen.append(cboxOverlay).append(cbox);
|
50
|
+
} else {
|
51
|
+
// In non-fullscreen mode, the colorbox and overlay need
|
52
|
+
// to be children of the main document body.
|
53
|
+
$(document.body).append(cboxOverlay).append(cbox);
|
54
|
+
}
|
55
|
+
});
|
56
|
+
};
|
57
|
+
}(BookReader.prototype.init);
|
58
|
+
|
59
|
+
/**
|
60
|
+
* Start fullscreen mode
|
61
|
+
*/
|
62
|
+
BookReader.prototype.enterFullWindow = function () {
|
63
|
+
this.refs.$brContainer.css('opacity', 0);
|
64
|
+
var windowWidth = $(window).width();
|
65
|
+
if (windowWidth <= this.onePageMinBreakpoint) {
|
66
|
+
this.switchMode(this.constMode1up);
|
67
|
+
}
|
68
|
+
this.isVendorFullscreenActive = true;
|
69
|
+
this.updateBrClasses();
|
70
|
+
this.resize();
|
71
|
+
this.jumpToIndex(this.currentIndex());
|
72
|
+
this.refs.$brContainer.animate({
|
73
|
+
opacity: 1
|
74
|
+
}, 400, 'linear');
|
75
|
+
$(document).on("keyup.".concat(EVENT_NAMESPACE), e => {
|
76
|
+
if (e.keyCode === 27) this.exitFullScreen();
|
77
|
+
});
|
78
|
+
};
|
79
|
+
|
80
|
+
/**
|
81
|
+
* Exit from fullscreen mode
|
82
|
+
*/
|
83
|
+
BookReader.prototype.exitFullWindow = function () {
|
84
|
+
this.refs.$brContainer.css('opacity', 0);
|
85
|
+
$(document).off('keyup' + EVENT_NAMESPACE);
|
86
|
+
this.isFullscreenActive = false;
|
87
|
+
this.updateBrClasses();
|
88
|
+
this.resize();
|
89
|
+
this.refs.$brContainer.animate({
|
90
|
+
opacity: 1
|
91
|
+
}, 400, 'linear');
|
92
|
+
};
|
93
|
+
|
94
|
+
/**
|
95
|
+
* Returns true if fullscreen mode is enabled
|
96
|
+
*
|
97
|
+
* @returns {boolean}
|
98
|
+
*/
|
99
|
+
BookReader.prototype.isFullscreen = function () {
|
100
|
+
return isFullscreenActive() || this.isVendorFullscreenActive;
|
101
|
+
};
|
102
|
+
|
103
|
+
/**
|
104
|
+
* Toggle screen
|
105
|
+
*/
|
106
|
+
BookReader.prototype.toggleFullscreen = function () {
|
107
|
+
if (this.isFullscreen()) {
|
108
|
+
if (fullscreenAllowed()) {
|
109
|
+
exitFullscreen();
|
110
|
+
} else {
|
111
|
+
this.exitFullWindow();
|
112
|
+
}
|
113
|
+
} else {
|
114
|
+
if (fullscreenAllowed()) {
|
115
|
+
requestFullscreen(this.refs.$br[0]);
|
116
|
+
} else {
|
117
|
+
this.enterFullWindow();
|
118
|
+
}
|
119
|
+
}
|
120
|
+
};
|
121
|
+
|
122
|
+
/** @deprecated */
|
123
|
+
BookReader.util.isMobile = isMobile;
|
124
|
+
|
125
|
+
/** @deprecated */
|
126
|
+
BookReader.util.getFullscreenElement = getFullscreenElement;
|
127
|
+
|
128
|
+
/** @deprecated */
|
129
|
+
BookReader.util.bindFullscreenChangeListener = bindFullscreenChangeListener;
|
130
|
+
|
131
|
+
/** @deprecated */
|
132
|
+
BookReader.util.fullscreenAllowed = fullscreenAllowed;
|
133
|
+
|
134
|
+
/** @deprecated */
|
135
|
+
BookReader.util.requestFullscreen = requestFullscreen;
|
136
|
+
|
137
|
+
/** @deprecated */
|
138
|
+
BookReader.util.exitFullscreen = exitFullscreen;
|
139
|
+
|
140
|
+
/** @deprecated */
|
141
|
+
BookReader.util.isFullscreenActive = isFullscreenActive;
|
142
|
+
}
|
143
|
+
|
144
|
+
/**
|
145
|
+
* Returns the DOM element being used for fullscreen.
|
146
|
+
*
|
147
|
+
* @returns {HTMLElement}
|
148
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot/fullscreenElement
|
149
|
+
*/
|
150
|
+
export function getFullscreenElement() {
|
151
|
+
return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;
|
152
|
+
}
|
153
|
+
|
154
|
+
/**
|
155
|
+
* Returns true if the document is in fullscreen mode.
|
156
|
+
*
|
157
|
+
* @returns {boolean}
|
158
|
+
*/
|
159
|
+
export function isFullscreenActive() {
|
160
|
+
var fullscreenElement = getFullscreenElement();
|
161
|
+
return fullscreenElement !== null && fullscreenElement !== undefined;
|
162
|
+
}
|
163
|
+
|
164
|
+
/**
|
165
|
+
* Exits fullscreen mode.
|
166
|
+
*
|
167
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen
|
168
|
+
*/
|
169
|
+
export function exitFullscreen() {
|
170
|
+
if (document.exitFullscreen) {
|
171
|
+
document.exitFullscreen();
|
172
|
+
} else if (document.webkitExitFullscreen) {
|
173
|
+
document.webkitExitFullscreen();
|
174
|
+
} else if (document.mozCancelFullScreen) {
|
175
|
+
document.mozCancelFullScreen();
|
176
|
+
} else if (document.msExitFullscreen) {
|
177
|
+
document.msExitFullscreen();
|
178
|
+
}
|
179
|
+
}
|
180
|
+
|
181
|
+
/**
|
182
|
+
* Requests fullscreen mode for the given element
|
183
|
+
*
|
184
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen
|
185
|
+
*/
|
186
|
+
export function requestFullscreen(element) {
|
187
|
+
if (element.requestFullscreen) {
|
188
|
+
element.requestFullscreen();
|
189
|
+
} else if (element.webkitRequestFullscreen) {
|
190
|
+
element.webkitRequestFullscreen();
|
191
|
+
} else if (element.mozRequestFullScreen) {
|
192
|
+
element.mozRequestFullScreen();
|
193
|
+
} else if (element.msRequestFullscreen) {
|
194
|
+
element.msRequestFullscreen();
|
195
|
+
}
|
196
|
+
}
|
197
|
+
|
198
|
+
/**
|
199
|
+
* Returns true if fullscreen mode is allowed on this device and document.
|
200
|
+
*
|
201
|
+
* @returns {boolean}
|
202
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenEnabled
|
203
|
+
*/
|
204
|
+
export function fullscreenAllowed() {
|
205
|
+
return document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullScreenEnabled;
|
206
|
+
}
|
207
|
+
|
208
|
+
/**
|
209
|
+
* jQuery-style binding to a fullscreenchange event.
|
210
|
+
*
|
211
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenchange_event
|
212
|
+
*/
|
213
|
+
export function bindFullscreenChangeListener(data, fullscreenchangeListener) {
|
214
|
+
var event = 'fullscreenchange ';
|
215
|
+
var vendor_prefixes = ['webkit', 'moz', 'ms'];
|
216
|
+
var all_events = (event + vendor_prefixes.join(event) + event).trim();
|
217
|
+
$(document).on(all_events, data, fullscreenchangeListener);
|
218
|
+
}
|
219
|
+
|
220
|
+
/**
|
221
|
+
* Returns true if current device is mobile
|
222
|
+
*
|
223
|
+
* @returns {boolean}
|
224
|
+
*/
|
225
|
+
export function isMobile() {
|
226
|
+
return typeof window.orientation !== 'undefined' || navigator.userAgent.indexOf('IEMobile') !== -1;
|
227
|
+
}
|