@internetarchive/bookreader 5.0.0-11-multiple-files → 5.0.0-110
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/474.js +2 -0
- package/BookReader/474.js.map +1 -0
- package/BookReader/BookReader.css +616 -1467
- package/BookReader/BookReader.js +2 -21564
- package/BookReader/BookReader.js.LICENSE.txt +20 -20
- package/BookReader/BookReader.js.map +1 -1
- package/BookReader/bergamot-translator-worker.js +2966 -0
- package/BookReader/bergamot-translator-worker.wasm +0 -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 +1907 -0
- package/BookReader/ia-bookreader-bundle.js.LICENSE.txt +19 -0
- package/BookReader/ia-bookreader-bundle.js.map +1 -0
- package/BookReader/icons/1up.svg +1 -12
- package/BookReader/icons/2up.svg +1 -15
- package/BookReader/icons/advance.svg +3 -26
- package/BookReader/icons/chevron-right.svg +1 -1
- package/BookReader/icons/close-circle-dark.svg +1 -0
- package/BookReader/icons/close-circle.svg +1 -1
- package/BookReader/icons/fullscreen.svg +1 -17
- package/BookReader/icons/fullscreen_exit.svg +1 -17
- package/BookReader/icons/hamburger.svg +1 -15
- package/BookReader/icons/left-arrow.svg +1 -12
- package/BookReader/icons/magnify-minus.svg +1 -16
- package/BookReader/icons/magnify-plus.svg +1 -17
- package/BookReader/icons/magnify.svg +1 -15
- package/BookReader/icons/pause.svg +1 -23
- package/BookReader/icons/play.svg +1 -22
- package/BookReader/icons/playback-speed.svg +1 -34
- package/BookReader/icons/read-aloud.svg +1 -22
- package/BookReader/icons/review.svg +3 -22
- package/BookReader/icons/slider-toggle.svg +1 -0
- package/BookReader/icons/thumbnails.svg +1 -17
- package/BookReader/icons/voice.svg +1 -0
- package/BookReader/icons/volume-full.svg +1 -22
- package/BookReader/images/BRicons.svg +5 -94
- package/BookReader/images/books_graphic.svg +1 -177
- package/BookReader/images/hypothesis.ico +0 -0
- package/BookReader/images/icon_book.svg +1 -12
- package/BookReader/images/icon_bookmark.svg +1 -12
- package/BookReader/images/icon_experiment.svg +1 -0
- package/BookReader/images/icon_gear.svg +1 -14
- package/BookReader/images/icon_hamburger.svg +1 -20
- package/BookReader/images/icon_home.svg +1 -21
- package/BookReader/images/icon_info.svg +1 -11
- package/BookReader/images/icon_one_page.svg +1 -8
- package/BookReader/images/icon_pause.svg +1 -1
- package/BookReader/images/icon_play.svg +1 -1
- package/BookReader/images/icon_playback-rate.svg +1 -15
- package/BookReader/images/icon_search_button.svg +1 -8
- package/BookReader/images/icon_share.svg +1 -9
- package/BookReader/images/icon_skip-ahead.svg +1 -6
- package/BookReader/images/icon_skip-back.svg +2 -13
- package/BookReader/images/icon_speaker.svg +1 -18
- package/BookReader/images/icon_speaker_open.svg +1 -10
- package/BookReader/images/icon_thumbnails.svg +1 -12
- package/BookReader/images/icon_toc.svg +1 -5
- package/BookReader/images/icon_two_pages.svg +1 -9
- package/BookReader/images/marker_chap-off.svg +1 -11
- package/BookReader/images/marker_chap-on.svg +1 -11
- package/BookReader/images/marker_srch-on.svg +1 -11
- package/BookReader/images/translate.svg +1 -0
- package/BookReader/images/unviewable_page.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 +1 -172
- package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
- package/BookReader/plugins/plugin.autoplay.js +1 -165
- package/BookReader/plugins/plugin.autoplay.js.map +1 -1
- package/BookReader/plugins/plugin.chapters.js +19 -301
- package/BookReader/plugins/plugin.chapters.js.LICENSE.txt +1 -0
- package/BookReader/plugins/plugin.chapters.js.map +1 -1
- 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 +1 -74
- package/BookReader/plugins/plugin.iframe.js.map +1 -1
- package/BookReader/plugins/plugin.iiif.js +2 -0
- package/BookReader/plugins/plugin.iiif.js.map +1 -0
- package/BookReader/plugins/plugin.resume.js +1 -368
- package/BookReader/plugins/plugin.resume.js.map +1 -1
- package/BookReader/plugins/plugin.search.js +2 -1420
- package/BookReader/plugins/plugin.search.js.LICENSE.txt +1 -0
- package/BookReader/plugins/plugin.search.js.map +1 -1
- package/BookReader/plugins/plugin.text_selection.js +2 -1080
- package/BookReader/plugins/plugin.text_selection.js.LICENSE.txt +1 -0
- package/BookReader/plugins/plugin.text_selection.js.map +1 -1
- package/BookReader/plugins/plugin.translate.js +137 -0
- package/BookReader/plugins/plugin.translate.js.LICENSE.txt +1 -0
- package/BookReader/plugins/plugin.translate.js.map +1 -0
- package/BookReader/plugins/plugin.tts.js +2 -9193
- package/BookReader/plugins/plugin.tts.js.LICENSE.txt +2 -0
- package/BookReader/plugins/plugin.tts.js.map +1 -1
- package/BookReader/plugins/plugin.url.js +1 -269
- package/BookReader/plugins/plugin.url.js.map +1 -1
- package/BookReader/plugins/plugin.vendor-fullscreen.js +1 -379
- package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
- package/BookReader/plugins/translator-worker.js +2 -0
- package/BookReader/plugins/translator-worker.js.map +1 -0
- package/BookReader/silence.mp3 +0 -0
- package/BookReader/translator-worker.js +475 -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/README.md +14 -3
- package/jsconfig.json +19 -0
- package/package.json +92 -70
- package/src/BookReader/BookModel.js +92 -46
- package/src/BookReader/DragScrollable.js +233 -0
- package/src/BookReader/ImageCache.js +49 -16
- package/src/BookReader/Mode1Up.js +66 -356
- package/src/BookReader/Mode1UpLit.js +392 -0
- package/src/BookReader/Mode2Up.js +87 -1315
- package/src/BookReader/Mode2UpLit.js +788 -0
- package/src/BookReader/ModeAbstract.js +43 -0
- package/src/BookReader/ModeCoordinateSpace.js +29 -0
- package/src/BookReader/ModeSmoothZoom.js +312 -0
- package/src/BookReader/ModeThumb.js +30 -16
- package/src/BookReader/Navbar/Navbar.js +201 -76
- package/src/BookReader/PageContainer.js +120 -23
- package/src/BookReader/ReduceSet.js +3 -3
- package/src/BookReader/Toolbar/Toolbar.js +19 -41
- package/src/BookReader/events.js +3 -3
- package/src/BookReader/options.js +94 -17
- 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 +1 -1
- package/src/BookReader/utils.js +141 -13
- package/src/BookReader.js +711 -1241
- package/src/BookReaderPlugin.js +52 -0
- package/src/assets/icons/close-circle-dark.svg +1 -0
- package/src/assets/icons/magnify-minus.svg +3 -7
- package/src/assets/icons/magnify-plus.svg +3 -7
- package/src/assets/icons/slider-toggle.svg +1 -0
- package/src/assets/icons/voice.svg +1 -0
- package/src/assets/images/hypothesis.ico +0 -0
- package/src/assets/images/icon_experiment.svg +1 -0
- package/src/assets/images/translate.svg +1 -0
- package/src/assets/images/unviewable_page.png +0 -0
- package/src/assets/silence.mp3 +0 -0
- package/src/css/BookReader.scss +1 -17
- package/src/css/_BRBookmarks.scss +1 -1
- package/src/css/_BRComponent.scss +1 -1
- package/src/css/_BRicon.scss +8 -2
- package/src/css/_BRmain.scss +33 -27
- package/src/css/_BRnav.scss +74 -70
- package/src/css/_BRpages.scss +171 -42
- package/src/css/_BRsearch.scss +69 -235
- package/src/css/_BRtoolbar.scss +5 -5
- package/src/css/_TextSelection.scss +129 -24
- package/src/css/_colorbox.scss +2 -2
- package/src/css/_controls.scss +24 -7
- package/src/css/_icons.scss +14 -1
- package/src/{BookNavigator/assets → css}/button-base.js +10 -3
- package/src/css/icon_checkmark.js +9 -0
- package/src/css/sharedStyles.js +15 -0
- package/src/ia-bookreader/downloads/downloads-provider.js +81 -0
- package/src/{BookNavigator → ia-bookreader}/downloads/downloads.js +29 -25
- package/src/ia-bookreader/ia-bookreader.js +666 -0
- package/src/ia-bookreader/sharing.js +27 -0
- package/src/ia-bookreader/viewable-files.js +98 -0
- package/src/{BookNavigator → ia-bookreader}/visual-adjustments/visual-adjustments-provider.js +17 -17
- package/src/{BookNavigator → ia-bookreader}/visual-adjustments/visual-adjustments.js +75 -67
- package/src/{BookNavigator → plugins}/bookmarks/bookmark-button.js +4 -3
- package/src/{BookNavigator/assets → plugins/bookmarks}/bookmark-colors.js +1 -1
- package/src/{BookNavigator → plugins}/bookmarks/bookmark-edit.js +44 -32
- package/src/{BookNavigator → plugins}/bookmarks/bookmarks-list.js +48 -49
- package/src/{BookNavigator → plugins}/bookmarks/bookmarks-loginCTA.js +5 -10
- package/src/plugins/bookmarks/bookmarks-provider.js +63 -0
- package/src/{BookNavigator → plugins/bookmarks}/delete-modal-actions.js +1 -1
- package/src/{BookNavigator → plugins}/bookmarks/ia-bookmarks.js +117 -68
- package/src/plugins/plugin.archive_analytics.js +84 -78
- package/src/plugins/plugin.autoplay.js +99 -104
- package/src/plugins/plugin.chapters.js +310 -201
- package/src/plugins/plugin.experiments.js +321 -0
- package/src/plugins/plugin.iframe.js +1 -1
- package/src/plugins/plugin.iiif.js +141 -0
- package/src/plugins/plugin.resume.js +53 -50
- package/src/plugins/plugin.text_selection.js +522 -219
- package/src/plugins/plugin.vendor-fullscreen.js +7 -7
- package/src/plugins/search/plugin.search.js +380 -360
- package/src/{BookNavigator → plugins}/search/search-provider.js +94 -32
- package/src/{BookNavigator → plugins}/search/search-results.js +108 -90
- package/src/plugins/search/utils.js +50 -0
- package/src/plugins/search/view.js +79 -210
- package/src/plugins/translate/TranslationManager.js +164 -0
- package/src/plugins/translate/plugin.translate.js +512 -0
- package/src/plugins/tts/AbstractTTSEngine.js +78 -49
- package/src/plugins/tts/FestivalTTSEngine.js +21 -31
- package/src/plugins/tts/PageChunk.js +33 -21
- package/src/plugins/tts/PageChunkIterator.js +11 -17
- package/src/plugins/tts/WebTTSEngine.js +131 -91
- package/src/plugins/tts/plugin.tts.js +345 -350
- package/src/plugins/tts/utils.js +77 -49
- package/src/plugins/url/UrlPlugin.js +191 -0
- package/src/plugins/{plugin.url.js → url/plugin.url.js} +47 -18
- package/src/util/TextSelectionManager.js +282 -0
- package/src/util/browserSniffing.js +33 -1
- package/src/util/cache.js +20 -0
- package/src/util/docCookies.js +21 -2
- package/src/util/lit.js +15 -0
- package/src/util/strings.js +1 -0
- package/.babelrc +0 -12
- package/.dependabot/config.yml +0 -6
- package/.eslintrc.js +0 -49
- 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 -28
- package/.github/workflows/npm-publish.yml +0 -47
- package/.testcaferc.json +0 -5
- package/BookReader/bookreader-component-bundle.js +0 -14330
- package/BookReader/bookreader-component-bundle.js.LICENSE.txt +0 -38
- package/BookReader/bookreader-component-bundle.js.map +0 -1
- package/BookReader/icons/sort-ascending.svg +0 -1
- package/BookReader/icons/sort-descending.svg +0 -1
- package/BookReader/jquery-1.10.1.js +0 -108
- package/BookReader/jquery-1.10.1.js.LICENSE.txt +0 -24
- package/BookReader/plugins/plugin.menu_toggle.js +0 -369
- package/BookReader/plugins/plugin.menu_toggle.js.map +0 -1
- package/BookReader/plugins/plugin.mobile_nav.js +0 -335
- package/BookReader/plugins/plugin.mobile_nav.js.map +0 -1
- package/BookReaderDemo/BookReaderDemo.css +0 -41
- package/BookReaderDemo/BookReaderJSAdvanced.js +0 -115
- package/BookReaderDemo/BookReaderJSAutoplay.js +0 -56
- package/BookReaderDemo/BookReaderJSSimple.js +0 -55
- package/BookReaderDemo/IIIFBookReader.js +0 -207
- 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/bookreader-template-bundle.js +0 -7178
- package/BookReaderDemo/demo-advanced.html +0 -33
- package/BookReaderDemo/demo-autoplay.html +0 -38
- package/BookReaderDemo/demo-embed-iframe-src.html +0 -84
- package/BookReaderDemo/demo-embed.html +0 -26
- package/BookReaderDemo/demo-fullscreen-mobile.html +0 -36
- package/BookReaderDemo/demo-fullscreen.html +0 -33
- package/BookReaderDemo/demo-iiif.html +0 -34
- package/BookReaderDemo/demo-iiif.js +0 -26
- package/BookReaderDemo/demo-internetarchive.html +0 -74
- package/BookReaderDemo/demo-multiple.html +0 -43
- package/BookReaderDemo/demo-plugin-menu-toggle.html +0 -34
- package/BookReaderDemo/demo-preview-pages.html +0 -1092
- package/BookReaderDemo/demo-simple.html +0 -34
- package/BookReaderDemo/demo-vendor-fullscreen.html +0 -36
- package/BookReaderDemo/immersion-1up.html +0 -64
- package/BookReaderDemo/immersion-mode.html +0 -35
- package/BookReaderDemo/toggle_controls.html +0 -53
- package/BookReaderDemo/view_mode.html +0 -39
- package/BookReaderDemo/viewmode-cycle.html +0 -41
- package/CHANGELOG.md +0 -476
- package/CONTRIBUTING.md +0 -7
- package/codecov.yml +0 -17
- package/index.html +0 -31
- package/karma.conf.js +0 -23
- package/screenshot.png +0 -0
- package/scripts/postversion.js +0 -10
- package/scripts/preversion.js +0 -14
- package/scripts/version.js +0 -26
- package/src/BookNavigator/BookModel.js +0 -14
- package/src/BookNavigator/BookNavigator.js +0 -451
- package/src/BookNavigator/assets/book-loader.js +0 -27
- package/src/BookNavigator/assets/icon_checkmark.js +0 -6
- package/src/BookNavigator/assets/icon_close.js +0 -3
- package/src/BookNavigator/assets/icon_sort_ascending.js +0 -5
- package/src/BookNavigator/assets/icon_sort_descending.js +0 -5
- package/src/BookNavigator/bookmarks/bookmarks-provider.js +0 -53
- package/src/BookNavigator/br-fullscreen-mgr.js +0 -83
- package/src/BookNavigator/downloads/downloads-provider.js +0 -66
- package/src/BookNavigator/search/a-search-result.js +0 -55
- package/src/BookNavigator/volumes/volumes-provider.js +0 -75
- package/src/BookNavigator/volumes/volumes.js +0 -161
- package/src/BookReader/DebugConsole.js +0 -54
- package/src/BookReaderComponent/BookReaderComponent.js +0 -112
- package/src/ItemNavigator/ItemNavigator.js +0 -372
- package/src/ItemNavigator/providers/sharing.js +0 -29
- package/src/assets/icons/sort-ascending.svg +0 -1
- package/src/assets/icons/sort-descending.svg +0 -1
- package/src/css/_MobileNav.scss +0 -194
- package/src/dragscrollable-br.js +0 -261
- package/src/plugins/menu_toggle/plugin.menu_toggle.js +0 -324
- package/src/plugins/plugin.mobile_nav.js +0 -287
- package/tests/BookReader/BookModel.test.js +0 -312
- package/tests/BookReader/BookReaderPublicFunctions.test.js +0 -171
- package/tests/BookReader/DebugConsole.test.js +0 -25
- package/tests/BookReader/ImageCache.test.js +0 -150
- package/tests/BookReader/Mode1Up.test.js +0 -164
- package/tests/BookReader/Mode2Up.test.js +0 -247
- package/tests/BookReader/Navbar/Navbar.test.js +0 -169
- package/tests/BookReader/PageContainer.test.js +0 -115
- package/tests/BookReader/ReduceSet.test.js +0 -38
- package/tests/BookReader/Toolbar/Toolbar.test.js +0 -26
- package/tests/BookReader/utils/classes.test.js +0 -88
- package/tests/BookReader/utils.test.js +0 -109
- package/tests/BookReader.options.test.js +0 -39
- package/tests/BookReader.test.js +0 -301
- package/tests/e2e/README.md +0 -75
- package/tests/e2e/autoplay.test.js +0 -13
- package/tests/e2e/base.test.js +0 -35
- package/tests/e2e/helpers/base.js +0 -258
- package/tests/e2e/helpers/debug.js +0 -13
- package/tests/e2e/helpers/desktopSearch.js +0 -72
- package/tests/e2e/helpers/mobileSearch.js +0 -85
- package/tests/e2e/helpers/mockSearch.js +0 -93
- package/tests/e2e/helpers/rightToLeft.js +0 -29
- package/tests/e2e/ia-production/ia-prod-base.js +0 -17
- package/tests/e2e/models/BookReader.js +0 -11
- package/tests/e2e/models/Navigation.js +0 -56
- package/tests/e2e/rightToLeft.test.js +0 -20
- package/tests/e2e/viewmode.test.js +0 -37
- package/tests/karma/BookNavigator/book-navigator.test.js +0 -132
- package/tests/karma/BookNavigator/bookmarks/bookmark-edit.test.js +0 -133
- package/tests/karma/BookNavigator/bookmarks/bookmarks-list.test.js +0 -222
- package/tests/karma/BookNavigator/search-results.test.js +0 -240
- package/tests/karma/BookNavigator/visual-adjustments.test.js +0 -201
- package/tests/karma/BookNavigator/volumes.test.js +0 -133
- package/tests/plugins/menu_toggle/plugin.menu_toggle.test.js +0 -68
- package/tests/plugins/plugin.archive_analytics.test.js +0 -23
- package/tests/plugins/plugin.autoplay.test.js +0 -52
- package/tests/plugins/plugin.chapters.test.js +0 -130
- package/tests/plugins/plugin.iframe.test.js +0 -42
- package/tests/plugins/plugin.mobile_nav.test.js +0 -66
- package/tests/plugins/plugin.resume.test.js +0 -98
- package/tests/plugins/plugin.text_selection.test.js +0 -203
- package/tests/plugins/plugin.url.test.js +0 -129
- package/tests/plugins/plugin.vendor-fullscreen.test.js +0 -65
- package/tests/plugins/search/plugin.search.test.js +0 -166
- package/tests/plugins/search/plugin.search.view.test.js +0 -106
- package/tests/plugins/tts/AbstractTTSEngine.test.js +0 -153
- package/tests/plugins/tts/FestivalTTSEngine.test.js +0 -59
- package/tests/plugins/tts/PageChunk.test.js +0 -57
- package/tests/plugins/tts/PageChunkIterator.test.js +0 -179
- package/tests/plugins/tts/WebTTSEngine.test.js +0 -126
- package/tests/plugins/tts/utils.test.js +0 -133
- package/tests/util/browserSniffing.test.js +0 -56
- package/tests/util/docCookies.test.js +0 -15
- package/tests/util/strings.test.js +0 -63
- package/tests/utils.js +0 -42
- package/webpack.config.js +0 -86
|
@@ -1,173 +1,2 @@
|
|
|
1
|
-
(self["
|
|
2
|
-
|
|
3
|
-
/***/ "./src/plugins/plugin.archive_analytics.js":
|
|
4
|
-
/*!*************************************************!*\
|
|
5
|
-
!*** ./src/plugins/plugin.archive_analytics.js ***!
|
|
6
|
-
\*************************************************/
|
|
7
|
-
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
8
|
-
|
|
9
|
-
"use strict";
|
|
10
|
-
__webpack_require__.r(__webpack_exports__);
|
|
11
|
-
/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
|
|
12
|
-
/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
13
|
-
/* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.match.js */ "./node_modules/core-js/modules/es.string.match.js");
|
|
14
|
-
/* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
15
|
-
/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "jquery");
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
/* global BookReader, archive_analytics */
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Plugin for Archive.org analytics
|
|
23
|
-
*/
|
|
24
|
-
jQuery.extend(BookReader.defaultOptions, {
|
|
25
|
-
enableArchiveAnalytics: true,
|
|
26
|
-
|
|
27
|
-
/** Provide a means of debugging, cause otherwise it's impossible to test locally */
|
|
28
|
-
debugArchiveAnaltyics: false
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
BookReader.prototype.init = function (super_) {
|
|
32
|
-
return function () {
|
|
33
|
-
var _this = this;
|
|
34
|
-
|
|
35
|
-
super_.call(this);
|
|
36
|
-
|
|
37
|
-
if (this.options.enableArchiveAnalytics) {
|
|
38
|
-
this.bind(BookReader.eventNames.fragmentChange, function () {
|
|
39
|
-
return _this.archiveAnalyticsSendFragmentChange();
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
}(BookReader.prototype.init);
|
|
44
|
-
/** @private */
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
BookReader.prototype.archiveAnalyticsSendFragmentChange = function () {
|
|
48
|
-
if (!window.archive_analytics) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
var prevFragment = this.archiveAnalyticsSendFragmentChange.prevFragment;
|
|
53
|
-
var params = this.paramsFromCurrent();
|
|
54
|
-
var newFragment = this.fragmentFromParams(params);
|
|
55
|
-
|
|
56
|
-
if (prevFragment != newFragment) {
|
|
57
|
-
var values = {
|
|
58
|
-
bookreader: "user_changed_view",
|
|
59
|
-
itemid: this.bookId,
|
|
60
|
-
cache_bust: Math.random()
|
|
61
|
-
}; // EEK! offsite embedding and /details/ page books look the same in analytics, otherwise!
|
|
62
|
-
|
|
63
|
-
values.offsite = 1;
|
|
64
|
-
values.details = 0;
|
|
65
|
-
|
|
66
|
-
try {
|
|
67
|
-
values.offsite = window.top.location.hostname.match(/\.archive.org$/) ? 0 : 1;
|
|
68
|
-
values.details = !values.offsite && window.top.location.pathname.match(/^\/details\//) ? 1 : 0;
|
|
69
|
-
} catch (e) {} // avoids embed cross site exceptions -- but on (+) side, means it is and keeps marked offite!
|
|
70
|
-
// Send bookreader ping
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
archive_analytics.send_ping(values, null, "augment_for_ao_site"); // Also send tracking event ping
|
|
74
|
-
|
|
75
|
-
var additionalEventParams = this.options.lendingInfo && this.options.lendingInfo.loanId ? {
|
|
76
|
-
loanId: this.options.lendingInfo.loanId
|
|
77
|
-
} : {};
|
|
78
|
-
archive_analytics.send_event('BookReader', 'UserChangedView', window.location.pathname, additionalEventParams);
|
|
79
|
-
this.archiveAnalyticsSendFragmentChange.prevFragment = newFragment;
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
/**
|
|
83
|
-
* Sends a tracking "Event". See https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#events
|
|
84
|
-
* @param {string} category
|
|
85
|
-
* @param {string} action
|
|
86
|
-
* @param {number} [value] (must be an int)
|
|
87
|
-
* @param {Object} [additionalEventParams]
|
|
88
|
-
*/
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
BookReader.prototype.archiveAnalyticsSendEvent = function (category, action, value, additionalEventParams) {
|
|
92
|
-
if (!this.options.enableArchiveAnalytics) return;
|
|
93
|
-
|
|
94
|
-
if (this.options.debugArchiveAnaltyics) {
|
|
95
|
-
console.log("archiveAnalyticsSendEvent", arguments, window.archive_analytics);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
if (!window.archive_analytics) return;
|
|
99
|
-
additionalEventParams = additionalEventParams || {};
|
|
100
|
-
|
|
101
|
-
if (typeof value == 'number') {
|
|
102
|
-
additionalEventParams.ev = value;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
window.archive_analytics.send_event(category, action, null, additionalEventParams);
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
/***/ }),
|
|
109
|
-
|
|
110
|
-
/***/ "./node_modules/core-js/modules/es.string.match.js":
|
|
111
|
-
/*!*********************************************************!*\
|
|
112
|
-
!*** ./node_modules/core-js/modules/es.string.match.js ***!
|
|
113
|
-
\*********************************************************/
|
|
114
|
-
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
115
|
-
|
|
116
|
-
"use strict";
|
|
117
|
-
|
|
118
|
-
var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js");
|
|
119
|
-
var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
|
|
120
|
-
var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
|
|
121
|
-
var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
|
|
122
|
-
var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ "./node_modules/core-js/internals/advance-string-index.js");
|
|
123
|
-
var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ "./node_modules/core-js/internals/regexp-exec-abstract.js");
|
|
124
|
-
|
|
125
|
-
// @@match logic
|
|
126
|
-
fixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {
|
|
127
|
-
return [
|
|
128
|
-
// `String.prototype.match` method
|
|
129
|
-
// https://tc39.es/ecma262/#sec-string.prototype.match
|
|
130
|
-
function match(regexp) {
|
|
131
|
-
var O = requireObjectCoercible(this);
|
|
132
|
-
var matcher = regexp == undefined ? undefined : regexp[MATCH];
|
|
133
|
-
return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
|
|
134
|
-
},
|
|
135
|
-
// `RegExp.prototype[@@match]` method
|
|
136
|
-
// https://tc39.es/ecma262/#sec-regexp.prototype-@@match
|
|
137
|
-
function (regexp) {
|
|
138
|
-
var res = maybeCallNative(nativeMatch, regexp, this);
|
|
139
|
-
if (res.done) return res.value;
|
|
140
|
-
|
|
141
|
-
var rx = anObject(regexp);
|
|
142
|
-
var S = String(this);
|
|
143
|
-
|
|
144
|
-
if (!rx.global) return regExpExec(rx, S);
|
|
145
|
-
|
|
146
|
-
var fullUnicode = rx.unicode;
|
|
147
|
-
rx.lastIndex = 0;
|
|
148
|
-
var A = [];
|
|
149
|
-
var n = 0;
|
|
150
|
-
var result;
|
|
151
|
-
while ((result = regExpExec(rx, S)) !== null) {
|
|
152
|
-
var matchStr = String(result[0]);
|
|
153
|
-
A[n] = matchStr;
|
|
154
|
-
if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
|
|
155
|
-
n++;
|
|
156
|
-
}
|
|
157
|
-
return n === 0 ? null : A;
|
|
158
|
-
}
|
|
159
|
-
];
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
/***/ })
|
|
164
|
-
|
|
165
|
-
},
|
|
166
|
-
/******/ function(__webpack_require__) { // webpackRuntimeModules
|
|
167
|
-
/******/ "use strict";
|
|
168
|
-
/******/
|
|
169
|
-
/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
|
|
170
|
-
/******/ var __webpack_exports__ = (__webpack_exec__("./src/plugins/plugin.archive_analytics.js"));
|
|
171
|
-
/******/ }
|
|
172
|
-
]);
|
|
1
|
+
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[623],{1041:function(e,t,n){function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}function i(e){var t=function(e){if("object"!=r(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}n.d(t,{S:function(){return a}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var a=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.br=t,this.options},(t=[{key:"setup",value:function(e){this.options=Object.assign({},this.options,e)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(e){}},{key:"_configureToolbar",value:function(e){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(e){}}])&&o(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()},6165:function(e,t,n){n(2675),n(9463),n(2259),n(5700),n(8706),n(3792),n(9572),n(8130),n(875),n(6099),n(825),n(7495),n(7764),n(1761),n(2953);var r=n(1041);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,l(r.key),r)}}function a(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(a=function(){return!!e})()}function u(e){return u=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},u(e)}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}function f(e,t,n){return(t=l(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}var s=window.BookReader,y=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return f(e=function(e,t,n){return t=u(t),function(e,t){if(t&&("object"==o(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,a()?Reflect.construct(t,n||[],u(e).constructor):t.apply(e,n))}(this,t,[].concat(r)),"options",{enabled:!0,debug:!1}),f(e,"_prevFragment",null),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&c(e,t)}(t,e),n=t,r=[{key:"init",value:function(){var e=this;this.options.enabled&&this.br.bind(s.eventNames.fragmentChange,function(){return e.sendFragmentChange()})}},{key:"sendFragmentChange",value:function(){if(window.archive_analytics){var e=this._prevFragment,t=this.br.paramsFromCurrent(),n=this.br.fragmentFromParams(t);if(e!=n){var r,o={bookreader:"user_changed_view",itemid:this.br.bookId,cache_bust:Math.random(),offsite:1,details:0};try{o.offsite=window.top.location.hostname.match(/\.archive.org$/)?0:1,o.details=!o.offsite&&window.top.location.pathname.match(/^\/details\//)?1:0}catch(e){}window.archive_analytics.send_ping(o,null,"augment_for_ao_site");var i=null!==(r=this.br.options.lendingInfo)&&void 0!==r&&r.loanId?{loanId:this.br.options.lendingInfo.loanId}:{};window.archive_analytics.send_event("BookReader","UserChangedView",window.location.pathname,i),this._prevFragment=n}}}},{key:"sendEvent",value:function(e,t,n,r){this.options.enabled&&(this.options.debug&&console.log("archiveAnalyticsSendEvent",arguments,window.archive_analytics),window.archive_analytics&&(r=r||{},"number"==typeof n&&(r.ev=n),window.archive_analytics.send_event(e,t,null,r)))}}],r&&i(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(r.S);null==s||s.registerPlugin("archiveAnalytics",y)}},function(e){e(e.s=6165)}]);
|
|
173
2
|
//# sourceMappingURL=plugin.archive_analytics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"plugins/plugin.archive_analytics.js","mappings":"y6BAMO,IAAMA,EAAgB,WAW3B,O,EAPA,SAAAA,EAAYC,I,4FAAIC,CAAA,KAAAF,GAEdG,KAAKF,GAAKA,EAEVE,KAAKC,OACP,G,EAEA,EAAAC,IAAA,QAAAC,MAIA,SAAMF,GACJD,KAAKC,QAAUG,OAAOC,OAAO,CAAC,EAAGL,KAAKC,QAASA,EACjD,GAEA,CAAAC,IAAA,OAAAC,MACA,WAAQ,GAER,CAAAD,IAAA,0BAAAC,MAKA,SAAwBG,GACxB,GAEA,CAAAJ,IAAA,oBAAAC,MAKA,SAAkBI,GAClB,GAEA,CAAAL,IAAA,0BAAAC,MACA,WAA2B,GAE3B,CAAAD,IAAA,eAAAC,MAGA,SAAaK,GAAU,M,6EAAC,CA5CG,E,20CCH7B,IAAMC,EAAmEC,OAAOD,WAGnEE,EAAsB,SAAAC,GAAA,SAAAD,IAAA,IAAAE,G,4FAAAd,CAAA,KAAAY,GAAA,QAAAG,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAQb,OARaC,EAAAP,E,qYAAAQ,CAAA,KAAAV,EAAA,GAAAW,OAAAL,IAAA,UACvB,CACRM,SAAS,EAETC,OAAO,IAGTJ,EAAAP,EAAA,gBACgB,MAAIA,CAAA,Q,qRAAAY,CAAAd,EAAAC,G,EAAAD,E,EAAA,EAAAT,IAAA,OAAAC,MAGpB,WAAO,IAAAuB,EAAA,KACD1B,KAAKC,QAAQsB,SACfvB,KAAKF,GAAG6B,KAAKlB,EAAWmB,WAAWC,eAAgB,kBAAMH,EAAKI,oBAAoB,EAEtF,GAEA,CAAA5B,IAAA,qBAAAC,MACA,WACE,GAAKO,OAAOqB,kBAAZ,CAIA,IAAMC,EAAehC,KAAKiC,cAEpBC,EAASlC,KAAKF,GAAGqC,oBACjBC,EAAcpC,KAAKF,GAAGuC,mBAAmBH,GAE/C,GAAIF,GAAgBI,EAAa,KAAAE,EACzBC,EAAS,CACbC,WAAY,oBACZC,OAAQzC,KAAKF,GAAG4C,OAChBC,WAAYC,KAAKC,SAGnBN,QAAiB,EACjBA,QAAiB,GACjB,IACEA,EAAOO,QAAUpC,OAAOqC,IAAIC,SAASC,SAASC,MAAM,kBAChD,EACA,EACJX,EAAOY,SACJZ,EAAOO,SAAWpC,OAAOqC,IAAIC,SAASI,SAASF,MAAM,gBAClD,EACA,CACR,CAAE,MAAOG,GAAK,CAId3C,OAAOqB,kBAAkBuB,UAAUf,EAAQ,KAAM,uBAGjD,IAAMgB,EAAmD,QAA3BjB,EAAAtC,KAAKF,GAAGG,QAAQuD,mBAAW,IAAAlB,GAA3BA,EAA6BmB,OACvD,CAAEA,OAAQzD,KAAKF,GAAGG,QAAQuD,YAAYC,QACtC,CAAC,EACL/C,OAAOqB,kBAAkB2B,WAAW,aAAc,kBAAmBhD,OAAOsC,SAASI,SAAUG,GAE/FvD,KAAKiC,cAAgBG,CACvB,CArCA,CAsCF,GAEA,CAAAlC,IAAA,YAAAC,MAOA,SAAUwD,EAAUC,EAAQzD,EAAOoD,GAC5BvD,KAAKC,QAAQsB,UAEdvB,KAAKC,QAAQuB,OACfqC,QAAQC,IAAI,4BAA6B/C,UAAWL,OAAOqB,mBAGxDrB,OAAOqB,oBAEZwB,EAAwBA,GAAyB,CAAC,EAC5B,iBAAVpD,IACVoD,EAAsBQ,GAAK5D,GAE7BO,OAAOqB,kBAAkB2B,WAAWC,EAAUC,EAAQ,KAAML,IAC9D,I,gFAAC,CAlFgC,CAAS1D,EAAAA,GAqF5CY,SAAAA,EAAYuD,eAAe,mBAAoBrD,E","sources":["webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.archive_analytics.js"],"sourcesContent":["// @ts-check\n/** @typedef {import(\"./BookReader.js\").default} BookReader */\n\n/**\n * @template TOptions\n */\nexport class BookReaderPlugin {\n /**\n * @param {BookReader} br\n */\n constructor(br) {\n /** @type {BookReader} */\n this.br = br;\n /** @type {TOptions} */\n this.options;\n }\n\n /**\n * @abstract\n * @param {TOptions} options\n **/\n setup(options) {\n this.options = Object.assign({}, this.options, options);\n }\n\n /** @abstract */\n init() {}\n\n /**\n * @abstract\n * @protected\n * @param {import (\"./BookReader/PageContainer.js\").PageContainer} pageContainer\n */\n _configurePageContainer(pageContainer) {\n }\n\n /**\n * @abstract\n * @protected\n * @param {JQuery<HTMLElement>} $toolbarElement\n */\n _configureToolbar($toolbarElement) {\n }\n\n /** @abstract @protected */\n _bindNavigationHandlers() {}\n\n /**\n * @param {JQuery<HTMLElement>} $navBar\n */\n extendNavBar($navBar) {}\n}\n","// @ts-check\nimport { BookReaderPlugin } from \"../BookReaderPlugin.js\";\n\nconst BookReader = /** @type {typeof import('../BookReader').default} */(window.BookReader);\n\n\nexport class ArchiveAnalyticsPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n /** Provide a means of debugging, cause otherwise it's impossible to test locally */\n debug: false,\n }\n\n /** @type {string} */\n _prevFragment = null;\n\n /** @override */\n init() {\n if (this.options.enabled) {\n this.br.bind(BookReader.eventNames.fragmentChange, () => this.sendFragmentChange());\n }\n }\n\n /** @private */\n sendFragmentChange() {\n if (!window.archive_analytics) {\n return;\n }\n\n const prevFragment = this._prevFragment;\n\n const params = this.br.paramsFromCurrent();\n const newFragment = this.br.fragmentFromParams(params);\n\n if (prevFragment != newFragment) {\n const values = {\n bookreader: \"user_changed_view\",\n itemid: this.br.bookId,\n cache_bust: Math.random(),\n };\n // EEK! offsite embedding and /details/ page books look the same in analytics, otherwise!\n values.offsite = 1;\n values.details = 0;\n try {\n values.offsite = window.top.location.hostname.match(/\\.archive.org$/)\n ? 0\n : 1;\n values.details =\n !values.offsite && window.top.location.pathname.match(/^\\/details\\//)\n ? 1\n : 0;\n } catch (e) { }\n // avoids embed cross site exceptions -- but on (+) side, means it is and keeps marked offite!\n\n // Send bookreader ping\n window.archive_analytics.send_ping(values, null, \"augment_for_ao_site\");\n\n // Also send tracking event ping\n const additionalEventParams = this.br.options.lendingInfo?.loanId\n ? { loanId: this.br.options.lendingInfo.loanId }\n : {};\n window.archive_analytics.send_event('BookReader', 'UserChangedView', window.location.pathname, additionalEventParams);\n\n this._prevFragment = newFragment;\n }\n }\n\n /**\n * Sends a tracking \"Event\". See https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#events\n * @param {string} category\n * @param {string} action\n * @param {number} [value] (must be an int)\n * @param {Object} [additionalEventParams]\n */\n sendEvent(category, action, value, additionalEventParams) {\n if (!this.options.enabled) return;\n\n if (this.options.debug) {\n console.log(\"archiveAnalyticsSendEvent\", arguments, window.archive_analytics);\n }\n\n if (!window.archive_analytics) return;\n\n additionalEventParams = additionalEventParams || {};\n if (typeof (value) == 'number') {\n additionalEventParams.ev = value;\n }\n window.archive_analytics.send_event(category, action, null, additionalEventParams);\n }\n}\n\nBookReader?.registerPlugin('archiveAnalytics', ArchiveAnalyticsPlugin);\n"],"names":["BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","BookReader","window","ArchiveAnalyticsPlugin","_BookReaderPlugin","_this","_len","arguments","length","args","Array","_key","_defineProperty","_callSuper","concat","enabled","debug","_inherits","_this2","bind","eventNames","fragmentChange","sendFragmentChange","archive_analytics","prevFragment","_prevFragment","params","paramsFromCurrent","newFragment","fragmentFromParams","_this$br$options$lend","values","bookreader","itemid","bookId","cache_bust","Math","random","offsite","top","location","hostname","match","details","pathname","e","send_ping","additionalEventParams","lendingInfo","loanId","send_event","category","action","console","log","ev","registerPlugin"],"sourceRoot":""}
|
|
@@ -1,166 +1,2 @@
|
|
|
1
|
-
(self["
|
|
2
|
-
|
|
3
|
-
/***/ "./src/plugins/plugin.autoplay.js":
|
|
4
|
-
/*!****************************************!*\
|
|
5
|
-
!*** ./src/plugins/plugin.autoplay.js ***!
|
|
6
|
-
\****************************************/
|
|
7
|
-
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
8
|
-
|
|
9
|
-
"use strict";
|
|
10
|
-
__webpack_require__.r(__webpack_exports__);
|
|
11
|
-
/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
|
|
12
|
-
/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
13
|
-
/* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.reduce.js */ "./node_modules/core-js/modules/es.array.reduce.js");
|
|
14
|
-
/* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
15
|
-
/* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "jquery");
|
|
16
|
-
/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "jquery");
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
/*global BookReader */
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Plugin which adds an autoplay feature. Useful for kiosk situations.
|
|
24
|
-
*/
|
|
25
|
-
jQuery.extend(BookReader.defaultOptions, {
|
|
26
|
-
enableAutoPlayPlugin: true
|
|
27
|
-
});
|
|
28
|
-
/**
|
|
29
|
-
* @override BookReader.setup
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
BookReader.prototype.setup = function (super_) {
|
|
33
|
-
return function (options) {
|
|
34
|
-
super_.call(this, options);
|
|
35
|
-
this.auto = false;
|
|
36
|
-
this.autoTimer = null;
|
|
37
|
-
this.flipDelay = 5000;
|
|
38
|
-
};
|
|
39
|
-
}(BookReader.prototype.setup);
|
|
40
|
-
/**
|
|
41
|
-
* @override BookReader.init
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
BookReader.prototype.init = function (super_) {
|
|
46
|
-
return function (options) {
|
|
47
|
-
var _this = this;
|
|
48
|
-
|
|
49
|
-
super_.call(this, options);
|
|
50
|
-
if (!this.options.enableAutoPlayPlugin) return;
|
|
51
|
-
this.bind(BookReader.eventNames.stop, function () {
|
|
52
|
-
return _this.autoStop();
|
|
53
|
-
});
|
|
54
|
-
};
|
|
55
|
-
}(BookReader.prototype.init);
|
|
56
|
-
/**
|
|
57
|
-
* @override BookReader.bindNavigationHandlers
|
|
58
|
-
*/
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
BookReader.prototype.bindNavigationHandlers = function (super_) {
|
|
62
|
-
return function () {
|
|
63
|
-
var _this2 = this;
|
|
64
|
-
|
|
65
|
-
super_.call(this);
|
|
66
|
-
if (!this.options.enableAutoPlayPlugin) return; // Note the mobile plugin attaches itself to body, so we need to select outside
|
|
67
|
-
|
|
68
|
-
var jIcons = this.$('.BRicon').add('.BRmobileMenu .BRicon');
|
|
69
|
-
jIcons.filter('.play').click(function () {
|
|
70
|
-
_this2.autoToggle();
|
|
71
|
-
|
|
72
|
-
return false;
|
|
73
|
-
});
|
|
74
|
-
jIcons.filter('.pause').click(function () {
|
|
75
|
-
_this2.autoToggle();
|
|
76
|
-
|
|
77
|
-
return false;
|
|
78
|
-
});
|
|
79
|
-
};
|
|
80
|
-
}(BookReader.prototype.bindNavigationHandlers);
|
|
81
|
-
/**
|
|
82
|
-
* Starts autoplay mode
|
|
83
|
-
* @param {object} overrides
|
|
84
|
-
* @param {number} overrides.flipSpeed
|
|
85
|
-
* @param {number} overrides.flipDelay
|
|
86
|
-
*/
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
BookReader.prototype.autoToggle = function (overrides) {
|
|
90
|
-
var _this3 = this;
|
|
91
|
-
|
|
92
|
-
if (!this.options.enableAutoPlayPlugin) return;
|
|
93
|
-
var options = $.extend({
|
|
94
|
-
flipSpeed: this.flipSpeed,
|
|
95
|
-
flipDelay: this.flipDelay
|
|
96
|
-
}, overrides);
|
|
97
|
-
this.flipSpeed = typeof options.flipSpeed === "number" ? options.flipSpeed : this.flipSpeed;
|
|
98
|
-
this.flipDelay = typeof options.flipDelay === "number" ? options.flipDelay : this.flipDelay;
|
|
99
|
-
this.trigger(BookReader.eventNames.stop);
|
|
100
|
-
var bComingFrom1up = false;
|
|
101
|
-
|
|
102
|
-
if (this.constMode2up != this.mode) {
|
|
103
|
-
bComingFrom1up = true;
|
|
104
|
-
this.switchMode(this.constMode2up);
|
|
105
|
-
} // Change to autofit if book is too large
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
if (this.reduce < this.twoPageGetAutofitReduce()) {
|
|
109
|
-
this.zoom('auto');
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
if (null == this.autoTimer) {
|
|
113
|
-
// $$$ Draw events currently cause layout problems when they occur during animation.
|
|
114
|
-
// There is a specific problem when changing from 1-up immediately to autoplay in RTL so
|
|
115
|
-
// we workaround for now by not triggering immediate animation in that case.
|
|
116
|
-
// See https://bugs.launchpad.net/gnubook/+bug/328327
|
|
117
|
-
if ('rl' == this.pageProgression && bComingFrom1up) {// don't flip immediately -- wait until timer fires
|
|
118
|
-
} else {
|
|
119
|
-
// flip immediately
|
|
120
|
-
this.flipFwdToIndex();
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
this.$('.play').hide();
|
|
124
|
-
this.$('.pause').show();
|
|
125
|
-
this.autoTimer = setInterval(function () {
|
|
126
|
-
if (_this3.animating) return;
|
|
127
|
-
|
|
128
|
-
if (Math.max(_this3.twoPage.currentIndexL, _this3.twoPage.currentIndexR) >= _this3.lastDisplayableIndex()) {
|
|
129
|
-
_this3.flipBackToIndex(1); // $$$ really what we want?
|
|
130
|
-
|
|
131
|
-
} else {
|
|
132
|
-
_this3.flipFwdToIndex();
|
|
133
|
-
}
|
|
134
|
-
}, this.flipDelay);
|
|
135
|
-
} else {
|
|
136
|
-
this.autoStop();
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
/**
|
|
140
|
-
* Stop autoplay mode, allowing animations to finish
|
|
141
|
-
*/
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
BookReader.prototype.autoStop = function () {
|
|
145
|
-
if (!this.options.enableAutoPlayPlugin) return;
|
|
146
|
-
|
|
147
|
-
if (null != this.autoTimer) {
|
|
148
|
-
clearInterval(this.autoTimer);
|
|
149
|
-
this.flipSpeed = 'fast';
|
|
150
|
-
this.$('.pause').hide();
|
|
151
|
-
this.$('.play').show();
|
|
152
|
-
this.autoTimer = null;
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
/***/ })
|
|
157
|
-
|
|
158
|
-
},
|
|
159
|
-
/******/ function(__webpack_require__) { // webpackRuntimeModules
|
|
160
|
-
/******/ "use strict";
|
|
161
|
-
/******/
|
|
162
|
-
/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
|
|
163
|
-
/******/ var __webpack_exports__ = (__webpack_exec__("./src/plugins/plugin.autoplay.js"));
|
|
164
|
-
/******/ }
|
|
165
|
-
]);
|
|
1
|
+
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[393],{1041:function(t,e,n){function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function o(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,i(r.key),r)}}function i(t){var e=function(t){if("object"!=r(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==r(e)?e:e+""}n.d(e,{S:function(){return u}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var u=function(){return t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.br=e,this.options},(e=[{key:"setup",value:function(t){this.options=Object.assign({},this.options,t)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(t){}},{key:"_configureToolbar",value:function(t){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(t){}}])&&o(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()},3387:function(t,e,n){n(2675),n(9463),n(2259),n(5700),n(8706),n(2008),n(3792),n(9572),n(8130),n(9085),n(875),n(6099),n(825),n(7495),n(7764),n(5746),n(2953),n(8408);var r=n(8340),o=n(8004);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function u(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,f(r.key),r)}}function a(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(a=function(){return!!t})()}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function s(t,e){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},s(t,e)}function c(t,e,n){return(e=f(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function f(t){var e=function(t){if("object"!=i(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==i(e)?e:e+""}var p=function(t){function e(){var t;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return c(t=function(t,e,n){return e=l(e),function(t,e){if(e&&("object"==i(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,a()?Reflect.construct(e,n||[],l(t).constructor):e.apply(t,n))}(this,e,[].concat(r)),"options",{enabled:!0,flipSpeed:1500,flipDelay:5e3,urlParams:!0}),c(t,"timer",null),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&s(t,e)}(e,t),n=e,f=[{key:"init",value:function(){var t=this;if(this.options.enabled&&(this.br.bind(r.q.stop,function(){return t.stop()}),this.options.urlParams)){var e=new URLSearchParams(window.location.search);e.get("flipSpeed")&&(this.options.flipSpeed=(0,o.parseAnimationSpeed)(e.get("flipSpeed"))||this.options.flipSpeed),e.get("flipDelay")&&(this.options.flipDelay=(0,o.parseAnimationSpeed)(e.get("flipDelay"))||this.options.flipDelay),"1"===e.get("autoflip")&&this.toggle()}}},{key:"_bindNavigationHandlers",value:function(){var t=this;if(this.options.enabled){var e=this.br.$(".BRicon");e.filter(".play").on("click",function(){return t.toggle(),!1}),e.filter(".pause").on("click",function(){return t.toggle(),!1})}}},{key:"toggle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(this.options.enabled){Object.assign(this.options,e),this.br.trigger(r.q.stop);var n=!1;this.br.constMode2up!=this.br.mode&&(n=!0,this.br.switchMode(this.br.constMode2up)),null==this.timer?("rl"==this.br.pageProgression&&n||this.br.next({triggerStop:!1,flipSpeed:this.options.flipSpeed}),this.br.$(".play").hide(),this.br.$(".pause").show(),this.timer=setInterval(function(){t.br.animating||(Math.max(t.br.twoPage.currentIndexL,t.br.twoPage.currentIndexR)>=t.br.book.getNumLeafs()-1?t.br.prev({triggerStop:!1,flipSpeed:t.options.flipSpeed}):t.br.next({triggerStop:!1,flipSpeed:t.options.flipSpeed}))},(0,o.parseAnimationSpeed)(this.options.flipDelay))):this.stop()}}},{key:"stop",value:function(){this.options.enabled&&null!=this.timer&&(clearInterval(this.timer),this.br.$(".pause").hide(),this.br.$(".play").show(),this.timer=null)}}],f&&u(n.prototype,f),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,f}(n(1041).S),b=window.BookReader;null==b||b.registerPlugin("autoplay",p)}},function(t){t(t.s=3387)}]);
|
|
166
2
|
//# sourceMappingURL=plugin.autoplay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"plugins/plugin.autoplay.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.autoplay.js"],"sourcesContent":["// @ts-check\n/** @typedef {import(\"./BookReader.js\").default} BookReader */\n\n/**\n * @template TOptions\n */\nexport class BookReaderPlugin {\n /**\n * @param {BookReader} br\n */\n constructor(br) {\n /** @type {BookReader} */\n this.br = br;\n /** @type {TOptions} */\n this.options;\n }\n\n /**\n * @abstract\n * @param {TOptions} options\n **/\n setup(options) {\n this.options = Object.assign({}, this.options, options);\n }\n\n /** @abstract */\n init() {}\n\n /**\n * @abstract\n * @protected\n * @param {import (\"./BookReader/PageContainer.js\").PageContainer} pageContainer\n */\n _configurePageContainer(pageContainer) {\n }\n\n /**\n * @abstract\n * @protected\n * @param {JQuery<HTMLElement>} $toolbarElement\n */\n _configureToolbar($toolbarElement) {\n }\n\n /** @abstract @protected */\n _bindNavigationHandlers() {}\n\n /**\n * @param {JQuery<HTMLElement>} $navBar\n */\n extendNavBar($navBar) {}\n}\n","// @ts-check\nimport { EVENTS } from \"../BookReader/events.js\";\nimport { parseAnimationSpeed } from \"../BookReader/utils.js\";\nimport { BookReaderPlugin } from \"../BookReaderPlugin.js\";\n\n/**\n * Plugin which adds an autoplay feature. Useful for kiosk situations.\n */\nexport class AutoplayPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n /**\n * @type {number | 'fast' | 'slow'}\n * How quickly the flip animation should run.\n **/\n flipSpeed: 1500,\n /** How long to pause on each page between flips */\n flipDelay: 5000,\n /** Allow controlling the autoflip/speed/delay from the url */\n urlParams: true,\n }\n\n timer = null;\n\n /** @override */\n init() {\n if (!this.options.enabled) return;\n\n this.br.bind(EVENTS.stop, () => this.stop());\n\n if (this.options.urlParams) {\n const urlParams = new URLSearchParams(window.location.search);\n if (urlParams.get('flipSpeed')) {\n this.options.flipSpeed = parseAnimationSpeed(urlParams.get('flipSpeed')) || this.options.flipSpeed;\n }\n if (urlParams.get('flipDelay')) {\n this.options.flipDelay = parseAnimationSpeed(urlParams.get('flipDelay')) || this.options.flipDelay;\n }\n if (urlParams.get('autoflip') === '1') {\n this.toggle();\n }\n }\n }\n\n /** @override */\n _bindNavigationHandlers() {\n if (!this.options.enabled) return;\n\n const jIcons = this.br.$('.BRicon');\n\n jIcons.filter('.play').on('click', () => {\n this.toggle();\n return false;\n });\n\n jIcons.filter('.pause').on('click', () => {\n this.toggle();\n return false;\n });\n }\n\n /**\n * Starts autoplay mode\n * @param {object} overrides\n * @param {number} overrides.flipSpeed\n * @param {number} overrides.flipDelay\n */\n toggle(overrides = null) {\n if (!this.options.enabled) return;\n\n Object.assign(this.options, overrides);\n this.br.trigger(EVENTS.stop);\n\n let bComingFrom1up = false;\n if (this.br.constMode2up != this.br.mode) {\n bComingFrom1up = true;\n this.br.switchMode(this.br.constMode2up);\n }\n\n if (null == this.timer) {\n // $$$ Draw events currently cause layout problems when they occur during animation.\n // There is a specific problem when changing from 1-up immediately to autoplay in RTL so\n // we workaround for now by not triggering immediate animation in that case.\n // See https://bugs.launchpad.net/gnubook/+bug/328327\n if (('rl' == this.br.pageProgression) && bComingFrom1up) {\n // don't flip immediately -- wait until timer fires\n } else {\n // flip immediately\n this.br.next({ triggerStop: false, flipSpeed: this.options.flipSpeed });\n }\n\n this.br.$('.play').hide();\n this.br.$('.pause').show();\n this.timer = setInterval(() => {\n if (this.br.animating) return;\n\n if (Math.max(this.br.twoPage.currentIndexL, this.br.twoPage.currentIndexR) >= this.br.book.getNumLeafs() - 1) {\n this.br.prev({ triggerStop: false, flipSpeed: this.options.flipSpeed }); // $$$ really what we want?\n } else {\n this.br.next({ triggerStop: false, flipSpeed: this.options.flipSpeed });\n }\n }, parseAnimationSpeed(this.options.flipDelay));\n } else {\n this.stop();\n }\n }\n\n /**\n * Stop autoplay mode, allowing animations to finish\n */\n stop() {\n if (!this.options.enabled) return;\n\n if (null != this.timer) {\n clearInterval(this.timer);\n this.br.$('.pause').hide();\n this.br.$('.play').show();\n this.timer = null;\n }\n }\n}\n\nconst BookReader = /** @type {typeof import('../BookReader').default} */(window.BookReader);\nBookReader?.registerPlugin('autoplay', AutoplayPlugin);\n"],"names":["BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","AutoplayPlugin","_BookReaderPlugin","_this","_len","arguments","length","args","Array","_key","_defineProperty","_callSuper","concat","enabled","flipSpeed","flipDelay","urlParams","_inherits","_this2","bind","EVENTS","stop","URLSearchParams","window","location","search","get","parseAnimationSpeed","toggle","_this3","jIcons","$","filter","on","_this4","overrides","undefined","trigger","bComingFrom1up","constMode2up","mode","switchMode","timer","pageProgression","next","triggerStop","hide","show","setInterval","animating","Math","max","twoPage","currentIndexL","currentIndexR","book","getNumLeafs","prev","clearInterval","BookReader","registerPlugin"],"sourceRoot":""}
|