@internetarchive/bookreader 5.0.0-95 → 5.0.0-96
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/BookReader/BookReader.css +2251 -0
- package/BookReader/BookReader.js +3 -0
- package/BookReader/BookReader.js.LICENSE.txt +72 -0
- package/BookReader/BookReader.js.map +1 -0
- package/BookReader/hypothesis/LICENSE +50 -0
- package/BookReader/hypothesis/README.md +55 -0
- package/BookReader/hypothesis/build/boot.js +1 -0
- package/BookReader/hypothesis/build/manifest.json +20 -0
- package/BookReader/hypothesis/build/scripts/annotator.bundle.js +184 -0
- package/BookReader/hypothesis/build/scripts/annotator.bundle.js.map +1 -0
- package/BookReader/hypothesis/build/scripts/sidebar.bundle.js +798 -0
- package/BookReader/hypothesis/build/scripts/sidebar.bundle.js.map +1 -0
- package/BookReader/hypothesis/build/scripts/ui-playground.bundle.js +711 -0
- package/BookReader/hypothesis/build/scripts/ui-playground.bundle.js.map +1 -0
- package/BookReader/hypothesis/build/styles/annotator.css +2235 -0
- package/BookReader/hypothesis/build/styles/annotator.css.map +1 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/BookReader/hypothesis/build/styles/highlights.css +2 -0
- package/BookReader/hypothesis/build/styles/highlights.css.map +1 -0
- package/BookReader/hypothesis/build/styles/katex.min.css +2 -0
- package/BookReader/hypothesis/build/styles/katex.min.css.map +1 -0
- package/BookReader/hypothesis/build/styles/pdfjs-overrides.css +2 -0
- package/BookReader/hypothesis/build/styles/pdfjs-overrides.css.map +1 -0
- package/BookReader/hypothesis/build/styles/sidebar.css +2731 -0
- package/BookReader/hypothesis/build/styles/sidebar.css.map +1 -0
- package/BookReader/hypothesis/build/styles/ui-playground.css +2659 -0
- package/BookReader/hypothesis/build/styles/ui-playground.css.map +1 -0
- package/BookReader/hypothesis/package.json +126 -0
- package/BookReader/ia-bookreader-bundle.js +1782 -0
- package/BookReader/ia-bookreader-bundle.js.LICENSE.txt +7 -0
- package/BookReader/ia-bookreader-bundle.js.map +1 -0
- package/BookReader/icons/1up.svg +1 -0
- package/BookReader/icons/2up.svg +1 -0
- package/BookReader/icons/advance.svg +3 -0
- package/BookReader/icons/chevron-right.svg +1 -0
- package/BookReader/icons/close-circle-dark.svg +1 -0
- package/BookReader/icons/close-circle.svg +1 -0
- package/BookReader/icons/fullscreen.svg +1 -0
- package/BookReader/icons/fullscreen_exit.svg +1 -0
- package/BookReader/icons/hamburger.svg +1 -0
- package/BookReader/icons/left-arrow.svg +1 -0
- package/BookReader/icons/magnify-minus.svg +1 -0
- package/BookReader/icons/magnify-plus.svg +1 -0
- package/BookReader/icons/magnify.svg +1 -0
- package/BookReader/icons/pause.svg +1 -0
- package/BookReader/icons/play.svg +1 -0
- package/BookReader/icons/playback-speed.svg +1 -0
- package/BookReader/icons/read-aloud.svg +1 -0
- package/BookReader/icons/review.svg +3 -0
- package/BookReader/icons/thumbnails.svg +1 -0
- package/BookReader/icons/voice.svg +1 -0
- package/BookReader/icons/volume-full.svg +1 -0
- package/BookReader/images/BRicons.png +0 -0
- package/BookReader/images/BRicons.svg +5 -0
- package/BookReader/images/BRicons_ia.png +0 -0
- package/BookReader/images/back_pages.png +0 -0
- package/BookReader/images/book_bottom_icon.png +0 -0
- package/BookReader/images/book_down_icon.png +0 -0
- package/BookReader/images/book_left_icon.png +0 -0
- package/BookReader/images/book_leftmost_icon.png +0 -0
- package/BookReader/images/book_right_icon.png +0 -0
- package/BookReader/images/book_rightmost_icon.png +0 -0
- package/BookReader/images/book_top_icon.png +0 -0
- package/BookReader/images/book_up_icon.png +0 -0
- package/BookReader/images/books_graphic.svg +1 -0
- package/BookReader/images/booksplit.png +0 -0
- package/BookReader/images/control_pause_icon.png +0 -0
- package/BookReader/images/control_play_icon.png +0 -0
- package/BookReader/images/embed_icon.png +0 -0
- package/BookReader/images/hypothesis.ico +0 -0
- package/BookReader/images/icon-home-ia.png +0 -0
- package/BookReader/images/icon_OL-logo-xs.png +0 -0
- package/BookReader/images/icon_alert-xs.png +0 -0
- package/BookReader/images/icon_book.svg +1 -0
- package/BookReader/images/icon_bookmark.svg +1 -0
- package/BookReader/images/icon_close-pop.png +0 -0
- package/BookReader/images/icon_download.png +0 -0
- package/BookReader/images/icon_gear.svg +1 -0
- package/BookReader/images/icon_hamburger.svg +1 -0
- package/BookReader/images/icon_home.png +0 -0
- package/BookReader/images/icon_home.svg +1 -0
- package/BookReader/images/icon_home_ia.png +0 -0
- package/BookReader/images/icon_indicator.png +0 -0
- package/BookReader/images/icon_info.svg +1 -0
- package/BookReader/images/icon_one_page.svg +1 -0
- package/BookReader/images/icon_pause.svg +1 -0
- package/BookReader/images/icon_play.svg +1 -0
- package/BookReader/images/icon_playback-rate.svg +1 -0
- package/BookReader/images/icon_return.png +0 -0
- package/BookReader/images/icon_search_button.svg +1 -0
- package/BookReader/images/icon_share.svg +1 -0
- package/BookReader/images/icon_skip-ahead.svg +1 -0
- package/BookReader/images/icon_skip-back.svg +2 -0
- package/BookReader/images/icon_speaker.svg +1 -0
- package/BookReader/images/icon_speaker_open.svg +1 -0
- package/BookReader/images/icon_thumbnails.svg +1 -0
- package/BookReader/images/icon_toc.svg +1 -0
- package/BookReader/images/icon_two_pages.svg +1 -0
- package/BookReader/images/icon_zoomer.png +0 -0
- package/BookReader/images/loading.gif +0 -0
- package/BookReader/images/logo_icon.png +0 -0
- package/BookReader/images/marker_chap-off.png +0 -0
- package/BookReader/images/marker_chap-off.svg +1 -0
- package/BookReader/images/marker_chap-off_ia.png +0 -0
- package/BookReader/images/marker_chap-on.png +0 -0
- package/BookReader/images/marker_chap-on.svg +1 -0
- package/BookReader/images/marker_srch-on.svg +1 -0
- package/BookReader/images/marker_srchchap-off.png +0 -0
- package/BookReader/images/marker_srchchap-on.png +0 -0
- package/BookReader/images/nav_control-dn.png +0 -0
- package/BookReader/images/nav_control-dn_ia.png +0 -0
- package/BookReader/images/nav_control-up.png +0 -0
- package/BookReader/images/nav_control-up_ia.png +0 -0
- package/BookReader/images/nav_control.png +0 -0
- package/BookReader/images/one_page_mode_icon.png +0 -0
- package/BookReader/images/paper-badge.png +0 -0
- package/BookReader/images/print_icon.png +0 -0
- package/BookReader/images/progressbar.gif +0 -0
- package/BookReader/images/right_edges.png +0 -0
- package/BookReader/images/slider.png +0 -0
- package/BookReader/images/slider_ia.png +0 -0
- package/BookReader/images/thumbnail_mode_icon.png +0 -0
- package/BookReader/images/transparent.png +0 -0
- package/BookReader/images/two_page_mode_icon.png +0 -0
- package/BookReader/images/unviewable_page.png +0 -0
- package/BookReader/images/zoom_in_icon.png +0 -0
- package/BookReader/images/zoom_out_icon.png +0 -0
- package/BookReader/jquery-3.js +2 -0
- package/BookReader/jquery-3.js.LICENSE.txt +24 -0
- package/BookReader/plugins/plugin.archive_analytics.js +2 -0
- package/BookReader/plugins/plugin.archive_analytics.js.map +1 -0
- package/BookReader/plugins/plugin.autoplay.js +2 -0
- package/BookReader/plugins/plugin.autoplay.js.map +1 -0
- package/BookReader/plugins/plugin.chapters.js +26 -0
- package/BookReader/plugins/plugin.chapters.js.LICENSE.txt +1 -0
- package/BookReader/plugins/plugin.chapters.js.map +1 -0
- package/BookReader/plugins/plugin.experiments.js +3 -0
- package/BookReader/plugins/plugin.experiments.js.LICENSE.txt +1 -0
- package/BookReader/plugins/plugin.experiments.js.map +1 -0
- package/BookReader/plugins/plugin.iframe.js +2 -0
- package/BookReader/plugins/plugin.iframe.js.map +1 -0
- package/BookReader/plugins/plugin.iiif.js +2 -0
- package/BookReader/plugins/plugin.iiif.js.map +1 -0
- package/BookReader/plugins/plugin.resume.js +2 -0
- package/BookReader/plugins/plugin.resume.js.map +1 -0
- package/BookReader/plugins/plugin.search.js +3 -0
- package/BookReader/plugins/plugin.search.js.LICENSE.txt +1 -0
- package/BookReader/plugins/plugin.search.js.map +1 -0
- package/BookReader/plugins/plugin.text_selection.js +3 -0
- package/BookReader/plugins/plugin.text_selection.js.LICENSE.txt +1 -0
- package/BookReader/plugins/plugin.text_selection.js.map +1 -0
- package/BookReader/plugins/plugin.tts.js +3 -0
- package/BookReader/plugins/plugin.tts.js.LICENSE.txt +29 -0
- package/BookReader/plugins/plugin.tts.js.map +1 -0
- package/BookReader/plugins/plugin.url.js +2 -0
- package/BookReader/plugins/plugin.url.js.map +1 -0
- package/BookReader/plugins/plugin.vendor-fullscreen.js +2 -0
- package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -0
- package/BookReader/webcomponents-bundle.js +3 -0
- package/BookReader/webcomponents-bundle.js.LICENSE.txt +9 -0
- package/BookReader/webcomponents-bundle.js.map +1 -0
- package/package.json +6 -1
- package/src/BookReader/BookModel.js +564 -0
- package/src/BookReader/DragScrollable.js +233 -0
- package/src/BookReader/ImageCache.js +149 -0
- package/src/BookReader/Mode1Up.js +110 -0
- package/src/BookReader/Mode1UpLit.js +388 -0
- package/src/BookReader/Mode2Up.js +107 -0
- package/src/BookReader/Mode2UpLit.js +777 -0
- package/src/BookReader/ModeCoordinateSpace.js +29 -0
- package/src/BookReader/ModeSmoothZoom.js +312 -0
- package/src/BookReader/ModeThumb.js +344 -0
- package/src/BookReader/Navbar/Navbar.js +355 -0
- package/src/BookReader/PageContainer.js +172 -0
- package/src/BookReader/ReduceSet.js +26 -0
- package/src/BookReader/Toolbar/Toolbar.js +362 -0
- package/src/BookReader/events.js +19 -0
- package/src/BookReader/options.js +387 -0
- package/src/BookReader/utils/HTMLDimensionsCacher.js +44 -0
- package/src/BookReader/utils/ScrollClassAdder.js +31 -0
- package/src/BookReader/utils/SelectionObserver.js +45 -0
- package/src/BookReader/utils/classes.js +36 -0
- package/src/BookReader/utils.js +313 -0
- package/.eslintrc.cjs +0 -51
- package/.gitattributes +0 -2
- package/.github/ISSUE_TEMPLATE/bug.md +0 -32
- package/.github/ISSUE_TEMPLATE/feature-request.md +0 -30
- package/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -15
- package/.github/workflows/node.js.yml +0 -102
- package/.github/workflows/npm-publish.yml +0 -23
- package/.testcaferc.cjs +0 -10
- package/BookReaderDemo/BookReaderDemo.css +0 -40
- package/BookReaderDemo/BookReaderJSAdvanced.js +0 -112
- package/BookReaderDemo/BookReaderJSSimple.js +0 -56
- package/BookReaderDemo/IADemoBr.js +0 -149
- package/BookReaderDemo/assets/v5/Bookreader-logo-cool-grad.svg +0 -1
- package/BookReaderDemo/assets/v5/Bookreader-logo-flat.svg +0 -1
- package/BookReaderDemo/assets/v5/Bookreader-logo-hex-cool-grad.png +0 -0
- package/BookReaderDemo/assets/v5/Bookreader-logo-hex-flat.png +0 -0
- package/BookReaderDemo/assets/v5/Bookreader-logo-lines.png +0 -0
- package/BookReaderDemo/assets/v5/Bookreader-logo-lines.svg +0 -1
- package/BookReaderDemo/assets/v5/Bookreader-logo-warm.svg +0 -1
- package/BookReaderDemo/assets/v5/bookreader-logo-renders@1x.png +0 -0
- package/BookReaderDemo/assets/v5/bookreader-logo-renders@2x.png +0 -0
- package/BookReaderDemo/assets/v5/bookreader-v5-screenshot.png +0 -0
- package/BookReaderDemo/demo-advanced.html +0 -33
- package/BookReaderDemo/demo-embed-iframe-src.html +0 -85
- package/BookReaderDemo/demo-embed.html +0 -26
- package/BookReaderDemo/demo-fullscreen-mobile.html +0 -34
- package/BookReaderDemo/demo-fullscreen.html +0 -31
- package/BookReaderDemo/demo-iiif.html +0 -121
- package/BookReaderDemo/demo-internetarchive.html +0 -271
- package/BookReaderDemo/demo-multiple.html +0 -44
- package/BookReaderDemo/demo-preview-pages.html +0 -1093
- package/BookReaderDemo/demo-simple.html +0 -35
- package/BookReaderDemo/demo-vendor-fullscreen.html +0 -34
- package/BookReaderDemo/ia-multiple-volumes-manifest.js +0 -169
- package/BookReaderDemo/immersion-1up.html +0 -64
- package/BookReaderDemo/immersion-mode.html +0 -33
- package/BookReaderDemo/toggle_controls.html +0 -54
- package/BookReaderDemo/view_mode.html +0 -40
- package/BookReaderDemo/viewmode-cycle.html +0 -40
- package/CHANGELOG.md +0 -1087
- package/CONTRIBUTING.md +0 -7
- package/babel.config.cjs +0 -20
- package/codecov.yml +0 -23
- package/index.html +0 -34
- package/netlify.toml +0 -9
- package/renovate.json +0 -52
- package/screenshot.png +0 -0
- package/scripts/postversion.js +0 -11
- package/scripts/preversion.js +0 -15
- package/scripts/version.js +0 -24
- package/tests/e2e/README.md +0 -112
- package/tests/e2e/autoplay.test.js +0 -16
- package/tests/e2e/base.test.js +0 -27
- package/tests/e2e/helpers/base.js +0 -263
- package/tests/e2e/helpers/debug.js +0 -13
- package/tests/e2e/helpers/mockSearch.js +0 -90
- package/tests/e2e/helpers/params.js +0 -17
- package/tests/e2e/helpers/rightToLeft.js +0 -23
- package/tests/e2e/helpers/search.js +0 -73
- package/tests/e2e/models/BookReader.js +0 -11
- package/tests/e2e/models/Navigation.js +0 -39
- package/tests/e2e/rightToLeft.test.js +0 -19
- package/tests/e2e/viewmode.test.js +0 -44
- package/tests/jest/BookNavigator/book-navigator.test.js +0 -653
- package/tests/jest/BookNavigator/bookmarks/bookmark-button.test.js +0 -43
- package/tests/jest/BookNavigator/bookmarks/bookmark-edit.test.js +0 -132
- package/tests/jest/BookNavigator/bookmarks/bookmarks-list.test.js +0 -221
- package/tests/jest/BookNavigator/bookmarks/ia-bookmarks.test.js +0 -45
- package/tests/jest/BookNavigator/downloads/downloads-provider.test.js +0 -67
- package/tests/jest/BookNavigator/downloads/downloads.test.js +0 -53
- package/tests/jest/BookNavigator/search/search-provider.test.js +0 -179
- package/tests/jest/BookNavigator/search/search-results.test.js +0 -289
- package/tests/jest/BookNavigator/sharing/sharing-provider.test.js +0 -49
- package/tests/jest/BookNavigator/viewable-files/viewable-files-provider.test.js +0 -80
- package/tests/jest/BookNavigator/visual-adjustments.test.js +0 -200
- package/tests/jest/BookReader.keyboard.test.js +0 -190
- package/tests/jest/BookReader.options.test.js +0 -47
- package/tests/jest/BookReader.test.js +0 -316
- package/tests/jest/plugins/plugin.archive_analytics.test.js +0 -20
- package/tests/jest/plugins/plugin.autoplay.test.js +0 -35
- package/tests/jest/plugins/plugin.chapters.test.js +0 -193
- package/tests/jest/plugins/plugin.iframe.test.js +0 -42
- package/tests/jest/plugins/plugin.resume.test.js +0 -85
- package/tests/jest/plugins/plugin.text_selection.test.js +0 -447
- package/tests/jest/plugins/plugin.vendor-fullscreen.test.js +0 -65
- package/tests/jest/plugins/search/plugin.search.test.js +0 -120
- package/tests/jest/plugins/search/plugin.search.view.test.js +0 -131
- package/tests/jest/plugins/search/utils.js +0 -25
- package/tests/jest/plugins/search/utils.test.js +0 -29
- package/tests/jest/plugins/tts/AbstractTTSEngine.test.js +0 -173
- package/tests/jest/plugins/tts/FestivalTTSEngine.test.js +0 -59
- package/tests/jest/plugins/tts/PageChunk.test.js +0 -57
- package/tests/jest/plugins/tts/PageChunkIterator.test.js +0 -179
- package/tests/jest/plugins/tts/WebTTSEngine.test.js +0 -178
- package/tests/jest/plugins/tts/utils.test.js +0 -74
- package/tests/jest/plugins/url/UrlPlugin.test.js +0 -198
- package/tests/jest/plugins/url/plugin.url.test.js +0 -168
- package/tests/jest/setup.js +0 -3
- package/tests/jest/util/browserSniffing.test.js +0 -62
- package/tests/jest/util/docCookies.test.js +0 -24
- package/tests/jest/util/strings.test.js +0 -63
- package/tests/jest/utils.js +0 -83
- package/webpack.config.js +0 -97
@@ -1,24 +0,0 @@
|
|
1
|
-
import * as docCookies from '@/src/util/docCookies.js';
|
2
|
-
|
3
|
-
afterEach(() => {
|
4
|
-
jest.clearAllMocks();
|
5
|
-
});
|
6
|
-
|
7
|
-
describe('Helper function: set and get cookie item', () => {
|
8
|
-
test('set cookie item value', () => {
|
9
|
-
expect(docCookies.setItem('test-cookie', 'jack-sparow')).toBeTruthy();
|
10
|
-
});
|
11
|
-
|
12
|
-
test('get cookie item value', () => {
|
13
|
-
expect(docCookies.getItem('test-cookie')).toEqual('jack-sparow');
|
14
|
-
});
|
15
|
-
});
|
16
|
-
|
17
|
-
describe('isCookiesBlocked', () => {
|
18
|
-
test('return true if cookies are blocked', () => {
|
19
|
-
expect(docCookies.areCookiesBlocked({ get cookie() { throw new Error(); }})).toBeTruthy();
|
20
|
-
});
|
21
|
-
test('return false if cookies are not blocked', () => {
|
22
|
-
expect(docCookies.areCookiesBlocked({ cookie: 'blah' })).toBeFalsy();
|
23
|
-
});
|
24
|
-
});
|
@@ -1,63 +0,0 @@
|
|
1
|
-
import { APPLY_FILTERS, applyVariables } from '@/src/util/strings.js';
|
2
|
-
|
3
|
-
describe('applyVariables', () => {
|
4
|
-
test('null cases', () => {
|
5
|
-
expect(applyVariables(null, {})).toBeUndefined();
|
6
|
-
expect(applyVariables('', {})).toEqual('');
|
7
|
-
expect(applyVariables('', {x: 3})).toEqual('');
|
8
|
-
});
|
9
|
-
|
10
|
-
test('Ignores undefined variables', () => {
|
11
|
-
expect(applyVariables('Hello {{name}}!', {})).toEqual('Hello {{name}}!');
|
12
|
-
});
|
13
|
-
|
14
|
-
test('Replaces multiple instances', () => {
|
15
|
-
expect(applyVariables('Hello {{name}}! How are you doing, {{name}}?', {name: 'Bill'})).toEqual('Hello Bill! How are you doing, Bill?');
|
16
|
-
expect(applyVariables('Hello {{name}}! You are {{age}}, {{name}}', {name: 'Bill', age: 54})).toEqual('Hello Bill! You are 54, Bill');
|
17
|
-
});
|
18
|
-
|
19
|
-
test('Is case sensitive', () => {
|
20
|
-
expect(applyVariables('Hello {{name}}', {NAME: 'Bill'})).toEqual('Hello {{name}}');
|
21
|
-
});
|
22
|
-
|
23
|
-
test('Supports variable names with funny chars', () => {
|
24
|
-
expect(applyVariables('Hello {{first name}}', {'first name': 'Bill'})).toEqual('Hello Bill');
|
25
|
-
});
|
26
|
-
|
27
|
-
test('Overrides do override', () => {
|
28
|
-
expect(applyVariables('Hello {{name}}', {name: 'Bill'}, {name: 'Bobby'})).toEqual('Hello Bobby');
|
29
|
-
});
|
30
|
-
|
31
|
-
test('Nullish values', () => {
|
32
|
-
expect(applyVariables('Hello {{name}}', {name: undefined})).toEqual('Hello undefined');
|
33
|
-
expect(applyVariables('Hello {{name}}', {name: null})).toEqual('Hello null');
|
34
|
-
expect(applyVariables('Hello {{name}}', {name: ''})).toEqual('Hello ');
|
35
|
-
});
|
36
|
-
|
37
|
-
test('Non-string values', () => {
|
38
|
-
expect(applyVariables('Hello {{name}}', {name: 10})).toEqual('Hello 10');
|
39
|
-
expect(applyVariables('Hello {{name}}', {name: 0})).toEqual('Hello 0');
|
40
|
-
});
|
41
|
-
|
42
|
-
test('Filters', () => {
|
43
|
-
expect(applyVariables('Hello {{name|urlencode}}', {name: 'Jim bob'})).toEqual('Hello Jim%20bob');
|
44
|
-
expect(applyVariables('Hello {{name|urlencode}}', {name: 0})).toEqual('Hello 0');
|
45
|
-
expect(applyVariables('Hello {{name|urlencode}}', {})).toEqual('Hello {{name|urlencode}}');
|
46
|
-
});
|
47
|
-
|
48
|
-
test('Custom filters', () => {
|
49
|
-
expect(applyVariables('Hello {{name|upper}}', {name: 'Jim bob'}, {}, {upper: s => s.toUpperCase()})).toEqual('Hello JIM BOB');
|
50
|
-
});
|
51
|
-
|
52
|
-
test('Multiple filters', () => {
|
53
|
-
const filters = Object.assign({}, APPLY_FILTERS, {
|
54
|
-
upper: s => s.toUpperCase(),
|
55
|
-
lower: s => s.toLowerCase(),
|
56
|
-
double: s => s + s,
|
57
|
-
});
|
58
|
-
expect(applyVariables('Hello {{name|upper|urlencode}}', {name: 'Jim bob'}, {}, filters)).toEqual('Hello JIM%20BOB');
|
59
|
-
expect(applyVariables('Hello {{name|upper|lower}}', {name: 'Jim bob'}, {}, filters)).toEqual('Hello jim bob');
|
60
|
-
expect(applyVariables('Hello {{name|lower|upper}}', {name: 'Jim bob'}, {}, filters)).toEqual('Hello JIM BOB');
|
61
|
-
expect(applyVariables('Hello {{name|lower|double}}', {name: 'Jim bob'}, {}, filters)).toEqual('Hello jim bobjim bob');
|
62
|
-
});
|
63
|
-
});
|
package/tests/jest/utils.js
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
// Keep a copy of this, since it can be overridden by sinon timers.
|
2
|
-
const _realTimeout = setTimeout;
|
3
|
-
|
4
|
-
/**
|
5
|
-
* Resolves after all enqueued callbacks in the event loop have resolved.
|
6
|
-
* @return {Promise}
|
7
|
-
*/
|
8
|
-
export function afterEventLoop() {
|
9
|
-
// Waiting 0 seconds essentially lets us run at the end of the event
|
10
|
-
// loop (i.e. after any promises which aren't _actually_ async have finished)
|
11
|
-
return new Promise(res => _realTimeout(res, 0));
|
12
|
-
}
|
13
|
-
|
14
|
-
/**
|
15
|
-
* Event target mixin
|
16
|
-
* @return {EventTarget}
|
17
|
-
*/
|
18
|
-
export function eventTargetMixin() {
|
19
|
-
return {
|
20
|
-
addEventListener(evName, listener) {
|
21
|
-
const listeners = this._listeners[evName] || [];
|
22
|
-
listeners.push(listener);
|
23
|
-
this._listeners[evName] = listeners;
|
24
|
-
},
|
25
|
-
dispatchEvent(evName, ev) {
|
26
|
-
const listeners = this._listeners[evName] || [];
|
27
|
-
listeners.forEach(fn => fn(ev));
|
28
|
-
},
|
29
|
-
removeEventListener(evName, listener) {
|
30
|
-
const listeners = this._listeners[evName] || [];
|
31
|
-
this._listeners[evName] = listeners.filter(fn => fn != listener);
|
32
|
-
},
|
33
|
-
_listeners: {},
|
34
|
-
};
|
35
|
-
}
|
36
|
-
|
37
|
-
/** @implements {EventTarget} */
|
38
|
-
export class EventTargetSpy {
|
39
|
-
/** @type {Record<string, Function[]} */
|
40
|
-
_listeners = {}
|
41
|
-
get _totalListenerCount() {
|
42
|
-
return Object.values(this._listeners)
|
43
|
-
.map(a => a.length)
|
44
|
-
.reduce((a, b) => a + b, 0);
|
45
|
-
}
|
46
|
-
|
47
|
-
addEventListener(evName, listener) {
|
48
|
-
const listeners = this._listeners[evName] || [];
|
49
|
-
listeners.push(listener);
|
50
|
-
this._listeners[evName] = listeners;
|
51
|
-
}
|
52
|
-
|
53
|
-
dispatchEvent(evName, ev) {
|
54
|
-
const listeners = this._listeners[evName] || [];
|
55
|
-
listeners.forEach(fn => fn(ev));
|
56
|
-
}
|
57
|
-
|
58
|
-
removeEventListener(evName, listener) {
|
59
|
-
const listeners = this._listeners[evName] || [];
|
60
|
-
this._listeners[evName] = listeners.filter(fn => fn != listener);
|
61
|
-
}
|
62
|
-
|
63
|
-
/**
|
64
|
-
* @param {EventTarget} realEventTarget
|
65
|
-
*/
|
66
|
-
static wrap(realEventTarget) {
|
67
|
-
const spy = new EventTargetSpy();
|
68
|
-
realEventTarget.addEventListener = spy.addEventListener.bind(spy);
|
69
|
-
realEventTarget.removeEventListener = spy.removeEventListener.bind(spy);
|
70
|
-
realEventTarget.dispatchEvent = spy.dispatchEvent.bind(spy);
|
71
|
-
return spy;
|
72
|
-
}
|
73
|
-
}
|
74
|
-
|
75
|
-
/**
|
76
|
-
* Lazy deep copy function; only supports objects (no classes)
|
77
|
-
* @template T
|
78
|
-
* @param {T} obj
|
79
|
-
* @return {T}
|
80
|
-
*/
|
81
|
-
export function deepCopy(obj) {
|
82
|
-
return JSON.parse(JSON.stringify(obj));
|
83
|
-
}
|
package/webpack.config.js
DELETED
@@ -1,97 +0,0 @@
|
|
1
|
-
// @ts-check
|
2
|
-
import path from 'path';
|
3
|
-
import webpack from 'webpack';
|
4
|
-
import { fileURLToPath } from 'url';
|
5
|
-
|
6
|
-
const __filename = fileURLToPath(import.meta.url);
|
7
|
-
const __dirname = path.dirname(__filename);
|
8
|
-
|
9
|
-
/** @type {webpack.Configuration} */
|
10
|
-
const shared = {
|
11
|
-
mode: 'production',
|
12
|
-
|
13
|
-
watchOptions: {
|
14
|
-
ignored: ['BookReader/**', 'node_modules/**', 'tests/**'],
|
15
|
-
},
|
16
|
-
|
17
|
-
target: ['web', 'es5'],
|
18
|
-
|
19
|
-
module: {
|
20
|
-
rules: [
|
21
|
-
{
|
22
|
-
test: /\.js$/,
|
23
|
-
exclude: /node_modules[/\\](?!(lit-element|lit-html|lit|@lit)[/\\]).*/,
|
24
|
-
loader: "babel-loader",
|
25
|
-
},
|
26
|
-
],
|
27
|
-
},
|
28
|
-
|
29
|
-
output: {
|
30
|
-
filename: '[name]',
|
31
|
-
path: path.resolve(__dirname, 'BookReader'),
|
32
|
-
},
|
33
|
-
};
|
34
|
-
|
35
|
-
/** @type {webpack.Configuration[]} */
|
36
|
-
export default [
|
37
|
-
{
|
38
|
-
...shared,
|
39
|
-
|
40
|
-
// Output file -> srcfile
|
41
|
-
entry: {
|
42
|
-
// Polyfill bundles
|
43
|
-
'webcomponents-bundle.js': { import: '@webcomponents/webcomponentsjs/webcomponents-bundle.js' },
|
44
|
-
|
45
|
-
// BookReader
|
46
|
-
'BookReader.js': './src/BookReader.js',
|
47
|
-
|
48
|
-
// Plugins (sorted!)
|
49
|
-
'plugins/plugin.archive_analytics.js': { import: './src/plugins/plugin.archive_analytics.js', dependOn: 'BookReader.js' },
|
50
|
-
'plugins/plugin.autoplay.js': { import: './src/plugins/plugin.autoplay.js', dependOn: 'BookReader.js' },
|
51
|
-
'plugins/plugin.chapters.js': { import: './src/plugins/plugin.chapters.js', dependOn: 'BookReader.js' },
|
52
|
-
'plugins/plugin.experiments.js': { import: './src/plugins/plugin.experiments.js', dependOn: 'BookReader.js' },
|
53
|
-
'plugins/plugin.iframe.js': { import: './src/plugins/plugin.iframe.js', dependOn: 'BookReader.js' },
|
54
|
-
'plugins/plugin.iiif.js': { import: './src/plugins/plugin.iiif.js', dependOn: 'BookReader.js' },
|
55
|
-
'plugins/plugin.resume.js': { import: './src/plugins/plugin.resume.js', dependOn: 'BookReader.js' },
|
56
|
-
'plugins/plugin.search.js': { import: './src/plugins/search/plugin.search.js', dependOn: 'BookReader.js' },
|
57
|
-
'plugins/plugin.text_selection.js': { import: './src/plugins/plugin.text_selection.js', dependOn: 'BookReader.js' },
|
58
|
-
'plugins/plugin.tts.js': { import: './src/plugins/tts/plugin.tts.js', dependOn: 'BookReader.js' },
|
59
|
-
'plugins/plugin.url.js': { import: './src/plugins/url/plugin.url.js', dependOn: 'BookReader.js' },
|
60
|
-
'plugins/plugin.vendor-fullscreen.js': { import: './src/plugins/plugin.vendor-fullscreen.js', dependOn: 'BookReader.js' },
|
61
|
-
'ia-bookreader-bundle.js': { import: './src/ia-bookreader/ia-bookreader.js', dependOn: 'BookReader.js' },
|
62
|
-
},
|
63
|
-
|
64
|
-
externals: {
|
65
|
-
// Anytime 'jquery' is imported, use the at runtime globally defined jQuery
|
66
|
-
// instead of bundling a copy of jquery at compile-time.
|
67
|
-
jquery: 'jQuery',
|
68
|
-
},
|
69
|
-
plugins: [
|
70
|
-
new webpack.ProvidePlugin({
|
71
|
-
// Make $ and jQuery available without importing
|
72
|
-
$: 'jquery',
|
73
|
-
jQuery: 'jquery',
|
74
|
-
}),
|
75
|
-
],
|
76
|
-
|
77
|
-
output: {
|
78
|
-
filename: '[name]',
|
79
|
-
path: path.resolve(__dirname, 'BookReader'),
|
80
|
-
},
|
81
|
-
|
82
|
-
// Accurate source maps at the expense of build time.
|
83
|
-
// The source map is intentionally exposed
|
84
|
-
// to users via sourceMapFilename for prod debugging.
|
85
|
-
devtool: 'source-map',
|
86
|
-
},
|
87
|
-
|
88
|
-
// jQuery gets its own build, so that it can be used as an "external" in
|
89
|
-
// everything else.
|
90
|
-
{
|
91
|
-
...shared,
|
92
|
-
|
93
|
-
entry: {
|
94
|
-
'jquery-3.js': { import: './src/jquery-wrapper.js' },
|
95
|
-
},
|
96
|
-
},
|
97
|
-
];
|