@internetarchive/bookreader 5.0.0-44 → 5.0.0-44-a1
Sign up to get free protection for your applications and to get access to all the features.
- package/BookReader/BookReader.js +1 -1
- package/BookReader/ia-bookreader-bundle.js +87 -87
- package/BookReader/ia-bookreader-bundle.js.map +1 -1
- package/BookReaderDemo/IADemoBr.js +8 -0
- package/CHANGELOG.md +0 -5
- package/package.json +6 -6
- package/src/BookNavigator/downloads/downloads.js +5 -7
- package/src/BookNavigator/search/search-provider.js +0 -19
- package/src/BookNavigator/search/search-results.js +0 -4
- package/tests/jest/BookNavigator/search/search-provider.test.js +0 -61
- package/tests/jest/BookNavigator/search/search-results.test.js +0 -13
@@ -15,10 +15,18 @@ const searchTerm = urlParams.get('q');
|
|
15
15
|
const iaBookReader = document.querySelector('ia-bookreader');
|
16
16
|
|
17
17
|
const downloadListWithLCP = [
|
18
|
+
[
|
19
|
+
"PDF",
|
20
|
+
"regular pdf link"
|
21
|
+
],
|
18
22
|
[
|
19
23
|
"lcpPDF",
|
20
24
|
"link to lcp pdf"
|
21
25
|
],
|
26
|
+
[
|
27
|
+
"ePub",
|
28
|
+
"link to epub"
|
29
|
+
],
|
22
30
|
[
|
23
31
|
"lcpEPUB",
|
24
32
|
"link to lcp epub"
|
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@internetarchive/bookreader",
|
3
|
-
"version": "5.0.0-44",
|
3
|
+
"version": "5.0.0-44-a1",
|
4
4
|
"description": "The Internet Archive BookReader.",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -51,14 +51,14 @@
|
|
51
51
|
"@webcomponents/webcomponentsjs": "^2.6.0",
|
52
52
|
"babel-loader": "8.2.5",
|
53
53
|
"codecov": "^3.8.3",
|
54
|
-
"concurrently": "7.
|
54
|
+
"concurrently": "7.1.0",
|
55
55
|
"core-js": "3.22.3",
|
56
56
|
"cpx2": "4.2.0",
|
57
57
|
"eslint": "^7.32.0",
|
58
58
|
"eslint-plugin-no-jquery": "^2.7.0",
|
59
59
|
"eslint-plugin-testcafe": "^0.2.1",
|
60
60
|
"hammerjs": "^2.0.8",
|
61
|
-
"http-server": "14.1.
|
61
|
+
"http-server": "14.1.0",
|
62
62
|
"iso-language-codes": "1.1.0",
|
63
63
|
"jest": "^28.1.0",
|
64
64
|
"jest-environment-jsdom": "^28.1.0",
|
@@ -69,13 +69,13 @@
|
|
69
69
|
"jquery.browser": "0.1.0",
|
70
70
|
"jquery.mmenu": "5.6.5",
|
71
71
|
"live-server": "1.2.2",
|
72
|
-
"node-fetch": "3.2.
|
72
|
+
"node-fetch": "3.2.4",
|
73
73
|
"regenerator-runtime": "0.13.9",
|
74
|
-
"sass": "1.
|
74
|
+
"sass": "1.51.0",
|
75
75
|
"sinon": "^14.0.0",
|
76
76
|
"soundmanager2": "2.97.20170602",
|
77
77
|
"svgo": "2.8.0",
|
78
|
-
"testcafe": "^1.
|
78
|
+
"testcafe": "^1.18.6",
|
79
79
|
"testcafe-browser-provider-browserstack": "^1.13.2-alpha.1",
|
80
80
|
"webpack": "5.51.1",
|
81
81
|
"webpack-cli": "4.9.2"
|
@@ -73,9 +73,9 @@ export class IABookDownloads extends LitElement {
|
|
73
73
|
return html`
|
74
74
|
<p>For LCP downloads, make sure you have SimplyE or Aldiko Next installed on mobile or Thorium on desktop.</p>
|
75
75
|
<ul>
|
76
|
-
<li><a href="https://librarysimplified.org/simplye/" rel="noopener noreferrer
|
77
|
-
<li><a href="https://www.demarque.com/en-aldiko" rel="noopener noreferrer
|
78
|
-
<li><a href="https://www.edrlab.org/software/thorium-reader/" rel="noopener noreferrer
|
76
|
+
<li><a href="https://librarysimplified.org/simplye/" rel="noopener noreferrer" target="_blank">Install SimplyE</a></li>
|
77
|
+
<li><a href="https://www.demarque.com/en-aldiko" rel="noopener noreferrer" target="_blank">Install Aldiko</a></li>
|
78
|
+
<li><a href="https://www.edrlab.org/software/thorium-reader/" rel="noopener noreferrer" target="_blank">Install Thorium</a></li>
|
79
79
|
</ul>
|
80
80
|
`;
|
81
81
|
}
|
@@ -85,10 +85,8 @@ export class IABookDownloads extends LitElement {
|
|
85
85
|
${this.header}
|
86
86
|
${this.loanExpiryMessage}
|
87
87
|
<ul>${this.renderDownloadOptions()}</ul>
|
88
|
-
${this.hasLCPOption
|
89
|
-
? this.
|
90
|
-
: (this.isBookProtected ? this.accessProtectedBook : nothing)
|
91
|
-
}
|
88
|
+
${this.hasLCPOption ? this.installSimplyEAldikoThoriumMsg : nothing}
|
89
|
+
${this.isBookProtected && !this.hasLCPOption ? this.accessProtectedBook : nothing}
|
92
90
|
`;
|
93
91
|
}
|
94
92
|
|
@@ -75,10 +75,6 @@ export default class SearchProvider {
|
|
75
75
|
searchCanceled: true
|
76
76
|
};
|
77
77
|
this.updateMenu(updateMenuFor);
|
78
|
-
|
79
|
-
if (this.bookreader.urlPlugin) {
|
80
|
-
this.updateSearchInUrl();
|
81
|
-
}
|
82
78
|
}
|
83
79
|
|
84
80
|
onSearchStarted(e) {
|
@@ -150,21 +146,6 @@ export default class SearchProvider {
|
|
150
146
|
};
|
151
147
|
this.updateMenu({ openMenu: false });
|
152
148
|
this.bookreader?.searchView?.clearSearchFieldAndResults(false);
|
153
|
-
if (this.bookreader.urlPlugin) {
|
154
|
-
this.updateSearchInUrl();
|
155
|
-
}
|
156
|
-
}
|
157
|
-
|
158
|
-
/** update URL `q=<term>` query param in URL */
|
159
|
-
updateSearchInUrl() {
|
160
|
-
if (this.bookreader.urlPlugin) {
|
161
|
-
this.bookreader.urlPlugin.pullFromAddressBar();
|
162
|
-
if (searchState.query) {
|
163
|
-
this.bookreader.urlPlugin.setUrlParam('q', searchState.query);
|
164
|
-
} else {
|
165
|
-
this.bookreader.urlPlugin.removeUrlParam('q');
|
166
|
-
}
|
167
|
-
}
|
168
149
|
}
|
169
150
|
|
170
151
|
/**
|
@@ -60,9 +60,6 @@ export class IABookSearchResults extends LitElement {
|
|
60
60
|
|
61
61
|
setQuery(e) {
|
62
62
|
this.query = e.currentTarget.value;
|
63
|
-
if (!this.query) {
|
64
|
-
this.cancelSearch();
|
65
|
-
}
|
66
63
|
}
|
67
64
|
|
68
65
|
performSearch(e) {
|
@@ -151,7 +148,6 @@ export class IABookSearchResults extends LitElement {
|
|
151
148
|
name="query"
|
152
149
|
alt="Search inside this book."
|
153
150
|
@keyup=${this.setQuery}
|
154
|
-
@search=${this.setQuery}
|
155
151
|
.value=${this.query}
|
156
152
|
/>
|
157
153
|
</fieldset>
|
@@ -102,66 +102,5 @@ describe('Search Provider', () => {
|
|
102
102
|
|
103
103
|
expect(provider.bookreader._searchPluginGoToResult.callCount).toEqual(1);
|
104
104
|
});
|
105
|
-
test('update url when search is cancelled or input cleared', async() => {
|
106
|
-
const urlPluginMock = {
|
107
|
-
pullFromAddressBar: sinon.fake(),
|
108
|
-
removeUrlParam: sinon.fake()
|
109
|
-
};
|
110
|
-
const provider = new searchProvider({
|
111
|
-
onProviderChange: sinon.fake(),
|
112
|
-
bookreader: {
|
113
|
-
leafNumToIndex: sinon.fake(),
|
114
|
-
_searchPluginGoToResult: sinon.fake(),
|
115
|
-
urlPlugin: urlPluginMock
|
116
|
-
}
|
117
|
-
});
|
118
|
-
|
119
|
-
provider.onSearchCanceled();
|
120
|
-
await provider.updateComplete;
|
121
|
-
|
122
|
-
expect(urlPluginMock.pullFromAddressBar.callCount).toEqual(1);
|
123
|
-
expect(urlPluginMock.removeUrlParam.callCount).toEqual(1);
|
124
|
-
|
125
|
-
provider.onSearchCanceled();
|
126
|
-
await provider.updateComplete;
|
127
|
-
|
128
|
-
expect(urlPluginMock.pullFromAddressBar.callCount).toEqual(2);
|
129
|
-
expect(urlPluginMock.removeUrlParam.callCount).toEqual(2);
|
130
|
-
});
|
131
|
-
it('updateSearchInUrl', async () => {
|
132
|
-
let fieldToSet;
|
133
|
-
let valueOfFieldToSet;
|
134
|
-
let setUrlParamCalled = false;
|
135
|
-
const urlPluginMock = {
|
136
|
-
pullFromAddressBar: sinon.fake(),
|
137
|
-
removeUrlParam: sinon.fake(),
|
138
|
-
setUrlParam: (field, val) => {
|
139
|
-
fieldToSet = field;
|
140
|
-
valueOfFieldToSet = val;
|
141
|
-
setUrlParamCalled = true;
|
142
|
-
}
|
143
|
-
};
|
144
|
-
const provider = new searchProvider({
|
145
|
-
onProviderChange: sinon.fake(),
|
146
|
-
bookreader: {
|
147
|
-
leafNumToIndex: sinon.fake(),
|
148
|
-
_searchPluginGoToResult: sinon.fake(),
|
149
|
-
urlPlugin: urlPluginMock,
|
150
|
-
search: sinon.fake()
|
151
|
-
}
|
152
|
-
});
|
153
|
-
|
154
|
-
const searchInitiatedEvent = new CustomEvent('bookSearchInitiated', { detail: { query: 'foobar' } });
|
155
|
-
// set initial seachState with a query
|
156
|
-
provider.onBookSearchInitiated(searchInitiatedEvent);
|
157
|
-
await provider.updateComplete;
|
158
|
-
// checking this fn:
|
159
|
-
provider.updateSearchInUrl();
|
160
|
-
await provider.updateComplete;
|
161
|
-
|
162
|
-
expect(fieldToSet).toEqual('q');
|
163
|
-
expect(valueOfFieldToSet).toEqual('foobar');
|
164
|
-
expect(setUrlParamCalled).toBe(true);
|
165
|
-
});
|
166
105
|
});
|
167
106
|
});
|
@@ -236,17 +236,4 @@ describe('<ia-book-search-results>', () => {
|
|
236
236
|
|
237
237
|
expect(response).toBeDefined();
|
238
238
|
});
|
239
|
-
it('cancels search when input is cleared', async () => {
|
240
|
-
const el = await fixture(container(results));
|
241
|
-
|
242
|
-
el.cancelSearch = sinon.fake();
|
243
|
-
await el.updateComplete;
|
244
|
-
|
245
|
-
const searchInput = el.shadowRoot.querySelector('[name="query"]');
|
246
|
-
|
247
|
-
searchInput.value = '';
|
248
|
-
searchInput.dispatchEvent(new Event('search'));
|
249
|
-
|
250
|
-
expect(el.cancelSearch.callCount).toEqual(1);
|
251
|
-
});
|
252
239
|
});
|