@internetarchive/bookreader 5.0.0-29 → 5.0.0-30-c
Sign up to get free protection for your applications and to get access to all the features.
- package/BookReader/BookReader.js +32267 -2
- package/BookReader/BookReader.js.map +1 -1
- package/BookReader/ia-bookreader-bundle.js +15232 -0
- package/BookReader/ia-bookreader-bundle.js.map +1 -0
- package/BookReader/jquery-1.10.1.js +108 -2
- package/BookReader/plugins/plugin.archive_analytics.js +170 -1
- package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
- package/BookReader/plugins/plugin.autoplay.js +163 -1
- package/BookReader/plugins/plugin.autoplay.js.map +1 -1
- package/BookReader/plugins/plugin.chapters.js +333 -1
- package/BookReader/plugins/plugin.chapters.js.map +1 -1
- package/BookReader/plugins/plugin.iframe.js +72 -1
- package/BookReader/plugins/plugin.iframe.js.map +1 -1
- package/BookReader/plugins/plugin.mobile_nav.js +332 -1
- package/BookReader/plugins/plugin.mobile_nav.js.map +1 -1
- package/BookReader/plugins/plugin.resume.js +241 -1
- package/BookReader/plugins/plugin.resume.js.map +1 -1
- package/BookReader/plugins/plugin.search.js +1261 -1
- package/BookReader/plugins/plugin.search.js.map +1 -1
- package/BookReader/plugins/plugin.text_selection.js +839 -1
- package/BookReader/plugins/plugin.text_selection.js.map +1 -1
- package/BookReader/plugins/plugin.tts.js +9115 -2
- package/BookReader/plugins/plugin.tts.js.map +1 -1
- package/BookReader/plugins/plugin.url.js +811 -1
- package/BookReader/plugins/plugin.url.js.map +1 -1
- package/BookReader/plugins/plugin.vendor-fullscreen.js +326 -1
- package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
- package/BookReader/webcomponents-bundle.js +411 -2
- package/BookReader/webcomponents-bundle.js.map +1 -1
- package/BookReaderDemo/IADemoBr.js +3 -0
- package/BookReaderDemo/demo-internetarchive.html +6 -8
- package/package.json +4 -4
- package/src/BookNavigator/book-navigator.js +7 -0
- package/src/BookReader/Mode1Up.js +1 -0
- package/src/BookReader/Mode1UpLit.js +5 -1
- package/src/{BookReaderComponent/BookReaderComponent.js → ia-bookreader/ia-bookreader.js} +93 -17
- package/webpack.config.js +2 -2
- package/BookReader/BookReader.js.LICENSE.txt +0 -117
- package/BookReader/bookreader-component-bundle.js +0 -1464
- package/BookReader/bookreader-component-bundle.js.LICENSE.txt +0 -50
- package/BookReader/bookreader-component-bundle.js.map +0 -1
- package/BookReader/jquery-1.10.1.js.LICENSE.txt +0 -24
- package/BookReader/plugins/plugin.tts.js.LICENSE.txt +0 -27
- package/BookReader/webcomponents-bundle.js.LICENSE.txt +0 -9
@@ -18,6 +18,9 @@ if (openFullImmersionTheater) {
|
|
18
18
|
iaBookReader.fullscreen = openFullImmersionTheater;
|
19
19
|
}
|
20
20
|
|
21
|
+
const modal = document.querySelector('modal-manager');
|
22
|
+
iaBookReader.modal = modal;
|
23
|
+
|
21
24
|
// Override options coming from IA
|
22
25
|
BookReader.optionOverrides.imagesBaseURL = '/BookReader/images/';
|
23
26
|
|
@@ -26,7 +26,7 @@
|
|
26
26
|
<script src="../BookReader/plugins/plugin.archive_analytics.js"></script>
|
27
27
|
<script src="../BookReader/plugins/plugin.text_selection.js"></script>
|
28
28
|
|
29
|
-
<script type="module" src="../BookReader/bookreader-
|
29
|
+
<script type="module" src="../BookReader/ia-bookreader-bundle.js"></script>
|
30
30
|
|
31
31
|
<link rel="stylesheet" href="BookReaderDemo.css"/>
|
32
32
|
|
@@ -88,19 +88,17 @@
|
|
88
88
|
<h3>Placeholder div to allow scrolling</h3>
|
89
89
|
</div>
|
90
90
|
|
91
|
+
<modal-manager></modal-manager>
|
91
92
|
<script >
|
92
93
|
// Set up demo things
|
93
94
|
const iaBR = document.querySelector('ia-bookreader');
|
94
95
|
const toggleLoginBtn = document.querySelector('#toggle-loggedin');
|
95
96
|
toggleLoginBtn.addEventListener('click', () => {
|
96
|
-
const
|
97
|
-
|
97
|
+
const currLoggedIn = iaBR.signedIn;
|
98
|
+
iaBR.signedIn = !currLoggedIn;
|
98
99
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
document.querySelector('#logged-in-status').innerText = bookNav.signedIn ? 'Logged In' : 'Logged Out';
|
103
|
-
console.log("Toggled SignedIn state", bookNav.signedIn, { currLoggedIn })
|
100
|
+
document.querySelector('#logged-in-status').innerText = iaBR.signedIn ? 'Logged In' : 'Logged Out';
|
101
|
+
console.log("Toggled SignedIn state", iaBR.signedIn, { currLoggedIn })
|
104
102
|
});
|
105
103
|
|
106
104
|
const startFSBtn = document.querySelector('#start-fs');
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@internetarchive/bookreader",
|
3
|
-
"version": "5.0.0-
|
3
|
+
"version": "5.0.0-30-c",
|
4
4
|
"description": "The Internet Archive BookReader.",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -9,7 +9,7 @@
|
|
9
9
|
"publishConfig": {
|
10
10
|
"access": "public"
|
11
11
|
},
|
12
|
-
"module": "src/
|
12
|
+
"module": "src/ia-bookreader/ia-bookreader.js",
|
13
13
|
"keywords": [
|
14
14
|
"online",
|
15
15
|
"bookreader",
|
@@ -26,9 +26,9 @@
|
|
26
26
|
"private": false,
|
27
27
|
"dependencies": {
|
28
28
|
"@internetarchive/ia-activity-indicator": "^0.0.1",
|
29
|
-
"@internetarchive/ia-item-navigator": "
|
29
|
+
"@internetarchive/ia-item-navigator": "0.0.4-3",
|
30
30
|
"@internetarchive/ia-menu-slider": "^1.1.1",
|
31
|
-
"@internetarchive/ia-sharing-options": "^0.1.
|
31
|
+
"@internetarchive/ia-sharing-options": "^0.1.4",
|
32
32
|
"@internetarchive/icon-bookmark": "^1.1.3",
|
33
33
|
"@internetarchive/icon-collapse-sidebar": "^1.1.0",
|
34
34
|
"@internetarchive/icon-dl": "^1.1.3",
|
@@ -511,6 +511,13 @@ export class BookNavigator extends LitElement {
|
|
511
511
|
|
512
512
|
static get styles() {
|
513
513
|
return css`
|
514
|
+
:host,
|
515
|
+
#book-navigator,
|
516
|
+
slot,
|
517
|
+
slot > * {
|
518
|
+
display: block;
|
519
|
+
height: inherit;
|
520
|
+
}
|
514
521
|
.cover-img {
|
515
522
|
max-height: 300px;
|
516
523
|
}
|
@@ -44,6 +44,7 @@ export class Mode1Up {
|
|
44
44
|
// appended the element to the DOM
|
45
45
|
setTimeout(async () => {
|
46
46
|
if (!this.everShown) {
|
47
|
+
console.log('!this.everShown', startLeaf);
|
47
48
|
this.mode1UpLit.initFirstRender(startLeaf);
|
48
49
|
this.everShown = true;
|
49
50
|
await this.mode1UpLit.requestUpdate();
|
@@ -170,6 +170,7 @@ export class Mode1UpLit extends LitElement {
|
|
170
170
|
|
171
171
|
/** @override */
|
172
172
|
firstUpdated(changedProps) {
|
173
|
+
console.log('firstUpdatedfirstUpdatedfirstUpdated');
|
173
174
|
super.firstUpdated(changedProps);
|
174
175
|
this.htmlDimensionsCacher.updateClientSizes();
|
175
176
|
this.smoothZoomer.attach();
|
@@ -181,6 +182,7 @@ export class Mode1UpLit extends LitElement {
|
|
181
182
|
initFirstRender(startIndex) {
|
182
183
|
const page = this.book.getPage(startIndex);
|
183
184
|
this.scale = this.computeDefaultScale(page);
|
185
|
+
console.log('1uplit init first render', page, startIndex);
|
184
186
|
}
|
185
187
|
|
186
188
|
/** @override */
|
@@ -323,6 +325,8 @@ export class Mode1UpLit extends LitElement {
|
|
323
325
|
left: vToW(scrollLeft),
|
324
326
|
width: vToW(clientWidth),
|
325
327
|
};
|
328
|
+
|
329
|
+
console.log('**** updateVisibleRegion this.visibleRegion', this.visibleRegion);
|
326
330
|
}
|
327
331
|
|
328
332
|
/**
|
@@ -368,7 +372,7 @@ export class Mode1UpLit extends LitElement {
|
|
368
372
|
computeDefaultScale(page) {
|
369
373
|
// Default to real size if it fits, otherwise default to full width
|
370
374
|
const containerWidthIn = this.visiblePixelsToWorldUnits(this.htmlDimensionsCacher.clientWidth);
|
371
|
-
return Math.min(1, containerWidthIn / (page.widthInches + 2 * this.SPACING_IN));
|
375
|
+
return Math.min(1, containerWidthIn / (page.widthInches + 2 * this.SPACING_IN)) || 1;
|
372
376
|
}
|
373
377
|
|
374
378
|
computeWorldDimensions() {
|
@@ -10,13 +10,19 @@ import '../BookNavigator/book-navigator.js';
|
|
10
10
|
import { ModalManager } from '@internetarchive/modal-manager';
|
11
11
|
import '@internetarchive/modal-manager';
|
12
12
|
import { SharedResizeObserver } from '@internetarchive/shared-resize-observer';
|
13
|
-
|
13
|
+
|
14
|
+
export class IaBookReader extends LitElement {
|
14
15
|
static get properties() {
|
15
16
|
return {
|
16
17
|
item: { type: Object },
|
17
18
|
baseHost: { type: String },
|
19
|
+
signedIn: { type: Boolean },
|
18
20
|
fullscreen: { type: Boolean, reflect: true, attribute: true },
|
19
|
-
sharedObserver: { type: Object }
|
21
|
+
sharedObserver: { type: Object, attribute: false },
|
22
|
+
modal: { type: Object, attribute: false },
|
23
|
+
loaded: { type: Boolean },
|
24
|
+
menuShortcuts: { type: Array },
|
25
|
+
menuContents: { type: Array },
|
20
26
|
};
|
21
27
|
}
|
22
28
|
|
@@ -26,45 +32,104 @@ export class BookReader extends LitElement {
|
|
26
32
|
this.bookreader = undefined;
|
27
33
|
this.baseHost = 'https://archive.org';
|
28
34
|
this.fullscreen = false;
|
35
|
+
this.signedIn = false;
|
29
36
|
/** @type {ModalManager} */
|
30
37
|
this.modal = undefined;
|
31
38
|
/** @type {SharedResizeObserver} */
|
32
|
-
this.sharedObserver =
|
39
|
+
this.sharedObserver = undefined;
|
40
|
+
this.loaded = false;
|
41
|
+
this.menuShortcuts = [];
|
42
|
+
this.menuContents = [];
|
43
|
+
console.log("ia-bookreader constructor", this);
|
33
44
|
}
|
34
45
|
|
35
|
-
|
36
|
-
this.
|
37
|
-
|
46
|
+
updated() {
|
47
|
+
if (!this.modal) {
|
48
|
+
this.modal = new ModalManager();
|
49
|
+
}
|
38
50
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
'modal-manager'
|
43
|
-
);
|
44
|
-
document.body.appendChild(this.modal);
|
51
|
+
if (!this.sharedObserver) {
|
52
|
+
this.sharedObserver = new SharedResizeObserver();
|
53
|
+
}
|
45
54
|
}
|
46
|
-
|
55
|
+
|
47
56
|
|
48
57
|
manageFullscreen(e) {
|
49
58
|
const { detail } = e;
|
50
59
|
const fullscreen = !!detail.isFullScreen;
|
51
60
|
this.fullscreen = fullscreen;
|
61
|
+
this.dispatchEvent(new CustomEvent('fullscreenStatusUpdated', { detail: { fullscreen }}));
|
62
|
+
|
63
|
+
}
|
64
|
+
|
65
|
+
loadingStateUpdated(e) {
|
66
|
+
const { loaded } = e.detail;
|
67
|
+
this.loaded = loaded || null;
|
68
|
+
this.dispatchEvent(new CustomEvent('loadingStateUpdated', { detail: { loaded }}));
|
52
69
|
}
|
53
70
|
|
71
|
+
setMenuShortcuts(e) {
|
72
|
+
this.menuShortcuts = [...e.detail];
|
73
|
+
}
|
74
|
+
|
75
|
+
setMenuContents(e) {
|
76
|
+
const updatedContents = [...e.detail];
|
77
|
+
this.menuContents = updatedContents;
|
78
|
+
}
|
79
|
+
|
80
|
+
manageSideMenuEvents(e) {
|
81
|
+
const { menuId, action } = e.detail;
|
82
|
+
if (!menuId) {
|
83
|
+
return;
|
84
|
+
}
|
85
|
+
|
86
|
+
if (action === 'open') {
|
87
|
+
this.itemNav.openShortcut(menuId);
|
88
|
+
this.openShortcut(menuId);
|
89
|
+
} else if (action === 'toggle') {
|
90
|
+
this.itemNav.openMenu(menuId);
|
91
|
+
this.itemNav.toggleMenu();
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
// LINER NOTES --- iaux.min.js is loading wayy to late for booknav listener, to br. init
|
96
|
+
|
54
97
|
render() {
|
55
98
|
return html`
|
56
99
|
<div class="ia-bookreader">
|
57
100
|
<ia-item-navigator
|
58
101
|
?viewportInFullscreen=${this.fullscreen}
|
59
|
-
|
60
|
-
.itemType=${'bookreader'}
|
102
|
+
.itemType=${'open'}
|
61
103
|
.basehost=${this.baseHost}
|
62
104
|
.item=${this.item}
|
63
105
|
.modal=${this.modal}
|
106
|
+
.loaded=${this.loaded}
|
64
107
|
.sharedObserver=${this.sharedObserver}
|
108
|
+
?signedIn=${this.signedIn}
|
109
|
+
.menuShortcuts=${this.menuShortcuts}
|
110
|
+
.menuContents=${this.menuContents}
|
65
111
|
>
|
112
|
+
<div slot="theater-header">
|
113
|
+
<slot name="theater-header"></slot>
|
114
|
+
</div>
|
66
115
|
<div slot="theater-main">
|
67
|
-
<
|
116
|
+
<book-navigator
|
117
|
+
.modal=${this.modal}
|
118
|
+
.baseHost=${this.baseHost}
|
119
|
+
.itemMD=${this.item}
|
120
|
+
?signedIn=${this.signedIn}
|
121
|
+
?sideMenuOpen=${this.menuOpened}
|
122
|
+
.sharedObserver=${this.sharedObserver}
|
123
|
+
@ViewportInFullScreen=${this.manageFullscreen}
|
124
|
+
@loadingStateUpdated=${this.loadingStateUpdated}
|
125
|
+
@updateSideMenu=${this.manageSideMenuEvents}
|
126
|
+
@menuUpdated=${this.setMenuContents}
|
127
|
+
@menuShortcutsUpdated=${this.setMenuShortcuts}
|
128
|
+
>
|
129
|
+
<div slot="theater-main">
|
130
|
+
<slot name="theater-main"></slot>
|
131
|
+
</div>
|
132
|
+
</book-navigator>
|
68
133
|
</div>
|
69
134
|
</ia-item-navigator>
|
70
135
|
</div>
|
@@ -75,6 +140,8 @@ export class BookReader extends LitElement {
|
|
75
140
|
return css`
|
76
141
|
:host {
|
77
142
|
display: block;
|
143
|
+
height: inherit;
|
144
|
+
min-height: inherit;
|
78
145
|
--primaryBGColor: var(--black, #000);
|
79
146
|
--secondaryBGColor: #222;
|
80
147
|
--tertiaryBGColor: #333;
|
@@ -95,6 +162,15 @@ export class BookReader extends LitElement {
|
|
95
162
|
min-height: unset;
|
96
163
|
}
|
97
164
|
|
165
|
+
div[slot="theater-main"],
|
166
|
+
div[slot="theater-main"] > * {
|
167
|
+
height: inherit;
|
168
|
+
}
|
169
|
+
|
170
|
+
slot {
|
171
|
+
display: block;
|
172
|
+
}
|
173
|
+
|
98
174
|
.ia-bookreader {
|
99
175
|
background-color: var(--primaryBGColor);
|
100
176
|
position: relative;
|
@@ -130,4 +206,4 @@ export class BookReader extends LitElement {
|
|
130
206
|
}
|
131
207
|
}
|
132
208
|
|
133
|
-
window.customElements.define("ia-bookreader",
|
209
|
+
window.customElements.define("ia-bookreader", IaBookReader);
|
package/webpack.config.js
CHANGED
@@ -4,7 +4,7 @@ const webpack = require('webpack');
|
|
4
4
|
|
5
5
|
/** @type {webpack.Configuration} */
|
6
6
|
const shared = {
|
7
|
-
mode: '
|
7
|
+
mode: 'development',
|
8
8
|
|
9
9
|
watchOptions: {
|
10
10
|
ignored: ['BookReader/**', 'node_modules/**', 'tests/**']
|
@@ -53,7 +53,7 @@ module.exports = [
|
|
53
53
|
'plugins/plugin.tts.js': { import: './src/plugins/tts/plugin.tts.js', dependOn: 'BookReader.js' },
|
54
54
|
'plugins/plugin.url.js': { import: './src/plugins/url/plugin.url.js', dependOn: 'BookReader.js' },
|
55
55
|
'plugins/plugin.vendor-fullscreen.js': { import: './src/plugins/plugin.vendor-fullscreen.js', dependOn: 'BookReader.js' },
|
56
|
-
'bookreader-
|
56
|
+
'ia-bookreader-bundle.js': { import: './src/ia-bookreader/ia-bookreader.js', dependOn: 'BookReader.js' }
|
57
57
|
},
|
58
58
|
|
59
59
|
externals: {
|
@@ -1,117 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
Colorbox 1.6.4
|
3
|
-
license: MIT
|
4
|
-
http://www.jacklmoore.com/colorbox
|
5
|
-
*/
|
6
|
-
|
7
|
-
/*!
|
8
|
-
* jQuery Color Animations v2.1.2
|
9
|
-
* https://github.com/jquery/jquery-color
|
10
|
-
*
|
11
|
-
* Copyright 2014 jQuery Foundation and other contributors
|
12
|
-
* Released under the MIT license.
|
13
|
-
* http://jquery.org/license
|
14
|
-
*
|
15
|
-
* Date: Wed Jan 16 08:47:09 2013 -0600
|
16
|
-
*/
|
17
|
-
|
18
|
-
/*!
|
19
|
-
* jQuery UI Effects 1.12.1
|
20
|
-
* http://jqueryui.com
|
21
|
-
*
|
22
|
-
* Copyright jQuery Foundation and other contributors
|
23
|
-
* Released under the MIT license.
|
24
|
-
* http://jquery.org/license
|
25
|
-
*/
|
26
|
-
|
27
|
-
/*!
|
28
|
-
* jQuery UI Keycode 1.12.1
|
29
|
-
* http://jqueryui.com
|
30
|
-
*
|
31
|
-
* Copyright jQuery Foundation and other contributors
|
32
|
-
* Released under the MIT license.
|
33
|
-
* http://jquery.org/license
|
34
|
-
*/
|
35
|
-
|
36
|
-
/*!
|
37
|
-
* jQuery UI Mouse 1.12.1
|
38
|
-
* http://jqueryui.com
|
39
|
-
*
|
40
|
-
* Copyright jQuery Foundation and other contributors
|
41
|
-
* Released under the MIT license.
|
42
|
-
* http://jquery.org/license
|
43
|
-
*/
|
44
|
-
|
45
|
-
/*!
|
46
|
-
* jQuery UI Slider 1.12.1
|
47
|
-
* http://jqueryui.com
|
48
|
-
*
|
49
|
-
* Copyright jQuery Foundation and other contributors
|
50
|
-
* Released under the MIT license.
|
51
|
-
* http://jquery.org/license
|
52
|
-
*/
|
53
|
-
|
54
|
-
/*!
|
55
|
-
* jQuery UI Touch Punch 0.2.3
|
56
|
-
*
|
57
|
-
* Copyright 2011–2014, Dave Furfero
|
58
|
-
* Dual licensed under the MIT or GPL Version 2 licenses.
|
59
|
-
*
|
60
|
-
* Depends:
|
61
|
-
* jquery.ui.widget.js
|
62
|
-
* jquery.ui.mouse.js
|
63
|
-
*/
|
64
|
-
|
65
|
-
/*!
|
66
|
-
* jQuery UI Widget 1.12.1
|
67
|
-
* http://jqueryui.com
|
68
|
-
*
|
69
|
-
* Copyright jQuery Foundation and other contributors
|
70
|
-
* Released under the MIT license.
|
71
|
-
* http://jquery.org/license
|
72
|
-
*/
|
73
|
-
|
74
|
-
/*! Hammer.JS - v2.0.7 - 2016-04-22
|
75
|
-
* http://hammerjs.github.io/
|
76
|
-
*
|
77
|
-
* Copyright (c) 2016 Jorik Tangelder;
|
78
|
-
* Licensed under the MIT license */
|
79
|
-
|
80
|
-
/**
|
81
|
-
* @license
|
82
|
-
* Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
|
83
|
-
* This code may only be used under the BSD style license found at
|
84
|
-
* http://polymer.github.io/LICENSE.txt
|
85
|
-
* The complete set of authors may be found at
|
86
|
-
* http://polymer.github.io/AUTHORS.txt
|
87
|
-
* The complete set of contributors may be found at
|
88
|
-
* http://polymer.github.io/CONTRIBUTORS.txt
|
89
|
-
* Code distributed by Google as part of the polymer project is also
|
90
|
-
* subject to an additional IP rights grant found at
|
91
|
-
* http://polymer.github.io/PATENTS.txt
|
92
|
-
*/
|
93
|
-
|
94
|
-
/**
|
95
|
-
* @license
|
96
|
-
* Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
|
97
|
-
* This code may only be used under the BSD style license found at
|
98
|
-
* http://polymer.github.io/LICENSE.txt
|
99
|
-
* The complete set of authors may be found at
|
100
|
-
* http://polymer.github.io/AUTHORS.txt
|
101
|
-
* The complete set of contributors may be found at
|
102
|
-
* http://polymer.github.io/CONTRIBUTORS.txt
|
103
|
-
* Code distributed by Google as part of the polymer project is also
|
104
|
-
* subject to an additional IP rights grant found at
|
105
|
-
* http://polymer.github.io/PATENTS.txt
|
106
|
-
*/
|
107
|
-
|
108
|
-
/**
|
109
|
-
@license
|
110
|
-
Copyright (c) 2019 The Polymer Project Authors. All rights reserved.
|
111
|
-
This code may only be used under the BSD style license found at
|
112
|
-
http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
|
113
|
-
http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
|
114
|
-
found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
|
115
|
-
part of the polymer project is also subject to an additional IP rights grant
|
116
|
-
found at http://polymer.github.io/PATENTS.txt
|
117
|
-
*/
|