@internetarchive/bookreader 5.0.0-32-shadydom → 5.0.0-32-1
Sign up to get free protection for your applications and to get access to all the features.
- package/BookReader/ia-bookreader-bundle.js +36 -38
- package/BookReader/ia-bookreader-bundle.js.map +1 -1
- package/BookReaderDemo/demo-internetarchive.html +5 -0
- package/package.json +2 -2
- package/src/BookNavigator/bookmarks/bookmarks-provider.js +1 -1
- package/src/BookNavigator/bookmarks/ia-bookmarks.js +5 -2
- package/src/ia-bookreader/ia-bookreader.js +9 -5
- package/tests/karma/BookNavigator/bookmarks/ia-bookmarks.test.js +57 -0
@@ -7,6 +7,11 @@
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
8
8
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
9
9
|
|
10
|
+
<!-- WC dependencies -->
|
11
|
+
<script type="text/javascript" src="https://polyfill.io/v3/polyfill.min.js?features=es2015%2Ces5%2CglobalThis"></script>
|
12
|
+
<script type="text/javascript" src="https://unpkg.com/lit@2.1.2/polyfill-support.js"></script>
|
13
|
+
<script type="text/javascript" src="https://unpkg.com/@webcomponents/webcomponentsjs@2.2.10/webcomponents-bundle.js"></script>
|
14
|
+
|
10
15
|
<!-- JS dependencies -->
|
11
16
|
<script src="../BookReader/webcomponents-bundle.js"></script>
|
12
17
|
<script src="../BookReader/jquery-1.10.1.js"></script>
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@internetarchive/bookreader",
|
3
|
-
"version": "5.0.0-32-
|
3
|
+
"version": "5.0.0-32-1",
|
4
4
|
"description": "The Internet Archive BookReader.",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -26,7 +26,7 @@
|
|
26
26
|
"private": false,
|
27
27
|
"dependencies": {
|
28
28
|
"@internetarchive/ia-activity-indicator": "^0.0.1",
|
29
|
-
"@internetarchive/ia-item-navigator": "0.0.5
|
29
|
+
"@internetarchive/ia-item-navigator": "0.0.5",
|
30
30
|
"@internetarchive/ia-menu-slider": "^1.1.1",
|
31
31
|
"@internetarchive/ia-sharing-options": "^0.1.4",
|
32
32
|
"@internetarchive/icon-bookmark": "^1.1.3",
|
@@ -142,8 +142,8 @@ class IABookmarks extends LitElement {
|
|
142
142
|
if (this.displayMode === 'login') {
|
143
143
|
return;
|
144
144
|
}
|
145
|
+
this.fetchUserBookmarks();
|
145
146
|
this.setBREventListeners();
|
146
|
-
this.initializeBookmarks();
|
147
147
|
}
|
148
148
|
|
149
149
|
updateDisplay() {
|
@@ -153,6 +153,9 @@ class IABookmarks extends LitElement {
|
|
153
153
|
}
|
154
154
|
|
155
155
|
fetchUserBookmarks() {
|
156
|
+
if (!this.api.identifier) {
|
157
|
+
return;
|
158
|
+
}
|
156
159
|
this.fetchBookmarks()
|
157
160
|
.then(() => {
|
158
161
|
this.initializeBookmarks();
|
@@ -227,7 +230,7 @@ class IABookmarks extends LitElement {
|
|
227
230
|
}
|
228
231
|
|
229
232
|
fetchBookmarks() {
|
230
|
-
return this.api.getAll().then((res) => {
|
233
|
+
return this.api.getAll().then(res => res.text()).then((res) => {
|
231
234
|
let response;
|
232
235
|
try {
|
233
236
|
response = JSON.parse(res);
|
@@ -105,7 +105,7 @@ export class IaBookReader extends LitElement {
|
|
105
105
|
|
106
106
|
render() {
|
107
107
|
return html`
|
108
|
-
<div>
|
108
|
+
<div class="main-component">
|
109
109
|
<ia-item-navigator
|
110
110
|
?viewportInFullscreen=${this.fullscreen}
|
111
111
|
.basehost=${this.baseHost}
|
@@ -170,17 +170,21 @@ export class IaBookReader extends LitElement {
|
|
170
170
|
min-height: unset;
|
171
171
|
}
|
172
172
|
|
173
|
-
|
174
|
-
|
173
|
+
.main-component {
|
174
|
+
height: 100%;
|
175
175
|
width: 100%;
|
176
|
+
min-height: inherit;
|
176
177
|
}
|
177
178
|
|
178
|
-
slot
|
179
|
-
|
179
|
+
div[slot="header"],
|
180
|
+
div[slot="main"] {
|
181
|
+
display: flex;
|
182
|
+
width: 100%;
|
180
183
|
}
|
181
184
|
|
182
185
|
slot {
|
183
186
|
display: block;
|
187
|
+
flex: 1;
|
184
188
|
}
|
185
189
|
|
186
190
|
ia-item-navigator {
|
@@ -0,0 +1,57 @@
|
|
1
|
+
import {
|
2
|
+
html,
|
3
|
+
fixtureSync,
|
4
|
+
expect,
|
5
|
+
fixtureCleanup,
|
6
|
+
} from '@open-wc/testing';
|
7
|
+
import '../../../../src/BookNavigator/bookmarks/ia-bookmarks.js';
|
8
|
+
import sinon from 'sinon';
|
9
|
+
|
10
|
+
afterEach(() => {
|
11
|
+
sinon.restore();
|
12
|
+
fixtureCleanup();
|
13
|
+
});
|
14
|
+
|
15
|
+
describe('<ia-bookmarks>', () => {
|
16
|
+
it('uses `setup` to start component', async () => {
|
17
|
+
const el = fixtureSync(html`<ia-bookmarks></ia-bookmarks>`);
|
18
|
+
await el.updateComplete;
|
19
|
+
|
20
|
+
let fetchHappened = false;
|
21
|
+
el.bookreader.bookId = 'foo';
|
22
|
+
el.displayMode = 'bookmarks';
|
23
|
+
|
24
|
+
el.fetchBookmarks = async () => {
|
25
|
+
fetchHappened = true;
|
26
|
+
return await Promise.resolve();
|
27
|
+
};
|
28
|
+
|
29
|
+
const fetchSpy = sinon.spy(el, 'fetchUserBookmarks');
|
30
|
+
|
31
|
+
el.setup();
|
32
|
+
await el.updateComplete;
|
33
|
+
|
34
|
+
expect(fetchSpy.callCount).to.equal(1);
|
35
|
+
expect(fetchHappened).to.equal(true);
|
36
|
+
});
|
37
|
+
it('does not fetch user bookmarks if displayMode = login', async () => {
|
38
|
+
const el = fixtureSync(html`<ia-bookmarks></ia-bookmarks>`);
|
39
|
+
await el.updateComplete;
|
40
|
+
|
41
|
+
let fetchHappened = false;
|
42
|
+
el.displayMode = 'login';
|
43
|
+
|
44
|
+
el.fetchBookmarks = async () => {
|
45
|
+
fetchHappened = true;
|
46
|
+
return await Promise.resolve();
|
47
|
+
};
|
48
|
+
|
49
|
+
const fetchSpy = sinon.spy(el, 'fetchUserBookmarks');
|
50
|
+
|
51
|
+
el.setup();
|
52
|
+
await el.updateComplete;
|
53
|
+
|
54
|
+
expect(fetchSpy.callCount).to.equal(0);
|
55
|
+
expect(fetchHappened).to.equal(false);
|
56
|
+
});
|
57
|
+
});
|