@internetarchive/bookreader 5.0.0-95 → 5.0.0-97
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 +2257 -0
- package/BookReader/BookReader.js +3 -0
- package/BookReader/BookReader.js.LICENSE.txt +72 -0
- package/BookReader/BookReader.js.map +1 -0
- 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 +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_experiment.svg +1 -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/translate.svg +1 -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.translate.js +3 -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 +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/plugins/translator-worker.js +2 -0
- package/BookReader/plugins/translator-worker.js.map +1 -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/package.json +11 -3
- package/src/BookNavigator/book-navigator.js +1 -0
- 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 +393 -0
- package/src/BookReader/Mode2Up.js +107 -0
- package/src/BookReader/Mode2UpLit.js +787 -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 +416 -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/src/BookReader.js +22 -139
- package/src/assets/images/icon_experiment.svg +1 -0
- package/src/assets/images/translate.svg +1 -0
- package/src/css/_BRnav.scss +0 -24
- package/src/css/_BRsearch.scss +0 -5
- package/src/css/_TextSelection.scss +32 -1
- package/src/plugins/plugin.experiments.js +34 -9
- package/src/plugins/plugin.text_selection.js +8 -20
- package/src/plugins/translate/TranslationManager.js +167 -0
- package/src/plugins/translate/plugin.translate.js +414 -0
- package/src/plugins/tts/utils.js +9 -20
- package/src/util/cache.js +20 -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
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see plugin.text_selection.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[326],{706:function(t,e,r){var n=r(350).PROPER,o=r(9039),i=r(7452);t.exports=function(t){return o((function(){return!!i[t]()||"
"!=="
"[t]()||n&&i[t].name!==t}))}},2762:function(t,e,r){var n=r(6518),o=r(3802).trim;n({target:"String",proto:!0,forced:r(706)("trim")},{trim:function(){return o(this)}})},1041:function(t,e,r){function n(t){return n="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},n(t)}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,i(n.key),n)}}function i(t){var e=function(t,e){if("object"!=n(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var o=r.call(t,"string");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}r.d(e,{S:function(){return a}}),r(2675),r(9463),r(2259),r(5700),r(3792),r(9572),r(8130),r(9085),r(6099),r(7764),r(2953);var a=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}()},2763:function(t,e,r){r(2675),r(9463),r(6412),r(2259),r(5700),r(8125),r(8706),r(113),r(3418),r(3792),r(8598),r(2062),r(4490),r(4782),r(6910),r(9572),r(2010),r(4731),r(6033),r(479),r(8130),r(9085),r(875),r(6099),r(8459),r(3362),r(825),r(7495),r(8781),r(9449),r(7764),r(2762),r(3500),r(2953);var n=r(4907),o=r(1669);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 a(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,u(n.key),n)}}function c(t,e,r){return(e=u(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function u(t){var e=function(t,e){if("object"!=i(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.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 l=function(){return t=function t(e,r){var n=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),c(this,"selecting",!1),c(this,"startedInSelector",!1),c(this,"target",null),c(this,"_onSelectionChange",(function(){var t=window.getSelection();if(!n.selecting&&t.toString()){var e=o(t.anchorNode).closest(n.selector)[0];if(!e)return;n.target=e,n.selecting=!0,n.handler("started",n.target)}!n.selecting||!t.isCollapsed&&t.toString()&&o(t.anchorNode).closest(n.selector)[0]||(n.selecting=!1,n.handler("cleared",n.target))})),this.selector=e,this.handler=r},(e=[{key:"attach",value:function(){document.addEventListener("selectionchange",this._onSelectionChange)}},{key:"detach",value:function(){document.removeEventListener("selectionchange",this._onSelectionChange)}}])&&a(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}(),s=r(1041),f=r(9073),p=r(4565),h=r(1669);function d(t){return d="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},d(t)}var y=E().mark(W),v=E().mark(G),m=E().mark(H),g=E().mark(U),b=E().mark($);function w(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(t,e)||S(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=S(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function S(t,e){if(t){if("string"==typeof t)return k(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?k(t,e):void 0}}function k(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function E(){E=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var i=e&&e.prototype instanceof g?e:g,a=Object.create(i.prototype),c=new T(n||[]);return o(a,"_invoke",{value:R(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",h="suspendedYield",y="executing",v="completed",m={};function g(){}function b(){}function w(){}var x={};l(x,a,(function(){return this}));var S=Object.getPrototypeOf,k=S&&S(S(_([])));k&&k!==r&&n.call(k,a)&&(x=k);var P=w.prototype=g.prototype=Object.create(x);function j(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function C(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var l=u.arg,s=l.value;return s&&"object"==d(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(s).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function R(e,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===v){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=O(c,n);if(u){if(u===m)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(e,r,n);if("normal"===l.type){if(o=n.done?v:h,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=v,n.method="throw",n.arg=l.arg)}}}function O(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function _(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return i.next=i}}throw new TypeError(d(e)+" is not iterable")}return b.prototype=w,o(P,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:b,configurable:!0}),b.displayName=l(w,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===b||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,l(t,u,"GeneratorFunction")),t.prototype=Object.create(P),t},e.awrap=function(t){return{__await:t}},j(C.prototype),l(C.prototype,c,(function(){return this})),e.AsyncIterator=C,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new C(s(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},j(P),l(P,u,"Generator"),l(P,a,(function(){return this})),l(P,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=_,T.prototype={constructor:T,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(A),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return c.type="throw",c.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),m},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),A(r),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:_(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),m}},e}function P(t,e,r,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}function j(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){P(i,n,o,a,c,"next",t)}function c(t){P(i,n,o,a,c,"throw",t)}a(void 0)}))}}function C(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function R(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,I(n.key),n)}}function O(t,e,r){return e&&R(t.prototype,e),r&&R(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function L(t,e,r){return e=T(e),function(t,e){if(e&&("object"==d(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,r||[],T(t).constructor):e.apply(t,r))}function A(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(A=function(){return!!t})()}function T(t){return T=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},T(t)}function _(t,e){return _=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_(t,e)}function B(t,e,r){return(e=I(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function I(t){var e=function(t,e){if("object"!=d(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=d(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==d(e)?e:e+""}var D=window.BookReader,N=function(t){function e(t){var r;return C(this,e),B(r=L(this,e,[t]),"options",{enabled:!0,fullDjvuXmlUrl:null,singlePageDjvuXmlUrl:null,jsonp:!1,maxProtectedWords:200}),B(r,"djvuPagesPromise",null),B(r,"pageTextCache",new p.l),B(r,"maxWordRendered",2500),B(r,"_limitSelection",(function(){var t=window.getSelection();if(t.rangeCount){var e=t.getRangeAt(0),n=!!e.startContainer.parentElement.closest(".BRcontainer"),o=!!e.endContainer.parentElement.closest(".BRcontainer");if(n||o)if(n&&o){var i=function(t,e){var r,n=0,o=x(t);try{for(o.s();!(r=o.n()).done;){var i=r.value;if(n==e)return i;n++}}catch(t){o.e(t)}finally{o.f()}}(W($(e.startContainer,e.endContainer),(function(t){var e;return null===(e=t.classList)||void 0===e?void 0:e.contains("BRwordElement")})),r.options.maxProtectedWords-1);if(i&&e.endContainer.parentNode!=i){var a=document.createRange();a.setStart(e.startContainer,e.startOffset),a.setEnd(i.firstChild,i.textContent.length),t.removeAllRanges(),t.addRange(a)}}else t.removeAllRanges()}})),B(r,"_onSelectionChange",(function(t,e){if("started"===t)r.textSelectingMode(e);else{if("cleared"!==t)throw new Error("Unknown type ".concat(t));r.defaultMode(e)}})),r.rtl="rl"===r.br.pageProgression,r.selectionObserver=new l(".BRtextLayer",r._onSelectionChange),r}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&&_(t,e)}(e,t),O(e,[{key:"init",value:function(){var t=this;this.options.enabled&&(this.loadData(),this.selectionObserver.attach(),new l(".BRtextLayer",(function(e){var r;"started"==e&&(null===(r=t.br.plugins.archiveAnalytics)||void 0===r||r.sendEvent("BookReader","SelectStart"),t.br.refs.$br.find(".BRpagecontainer--hasSelection").removeClass("BRpagecontainer--hasSelection"),h(window.getSelection().anchorNode).closest(".BRpagecontainer").addClass("BRpagecontainer--hasSelection"))})).attach(),this.br.protected&&(document.addEventListener("selectionchange",this._limitSelection),h(document.body).on("contextmenu dragstart copy",(function(t){var e=document.getSelection();if(null!=e&&e.toString()&&h(".BRtextLayer").toArray().some((function(t){return e.containsNode(t,!0)})))return t.preventDefault(),!1}))))}},{key:"_configurePageContainer",value:function(t){return this.br.mode!==this.br.constModeThumb&&t.page&&this.createTextLayer(t),t}},{key:"loadData",value:function(){this.options.singlePageDjvuXmlUrl||(this.djvuPagesPromise=h.ajax({type:"GET",url:(0,f.g)(this.options.fullDjvuXmlUrl,this.br.options.vars),dataType:this.options.jsonp?"jsonp":"html",cache:!0,xhrFields:{withCredentials:this.br.protected},error:function(t){}}).then((function(t){try{var e=h.parseXML(t);return e&&h(e).find("OBJECT")}catch(t){return}})))}},{key:"getPageText",value:(o=j(E().mark((function t(e){var r,n,o,i,a;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.options.singlePageDjvuXmlUrl){t.next=19;break}if(!(r=this.pageTextCache.entries.find((function(t){return t.index==e})))){t.next=4;break}return t.abrupt("return",r.response);case 4:return t.next=6,h.ajax({type:"GET",url:(0,f.g)(this.options.singlePageDjvuXmlUrl,this.br.options.vars,{pageIndex:e}),dataType:this.options.jsonp?"jsonp":"html",cache:!0,xhrFields:{withCredentials:this.br.protected},error:function(t){}});case 6:return n=t.sent,t.prev=7,o=h.parseXML(n),i=o&&h(o).find("OBJECT")[0],this.pageTextCache.add({index:e,response:i}),t.abrupt("return",i);case 14:return t.prev=14,t.t0=t.catch(7),t.abrupt("return",void 0);case 17:t.next=24;break;case 19:return t.next=21,this.djvuPagesPromise;case 21:if(!(a=t.sent)){t.next=24;break}return t.abrupt("return",a[e]);case 24:case"end":return t.stop()}}),t,this,[[7,14]])}))),function(t){return o.apply(this,arguments)})},{key:"interceptCopy",value:function(t){t[0].addEventListener("copy",(function(t){var e=document.getSelection();t.clipboardData.setData("text/plain",e.toString()),t.preventDefault()}))}},{key:"defaultMode",value:function(t){var e=this,r=h(t).closest(".BRpagecontainer");t.style.pointerEvents="none",r.find("img").css("pointer-events","auto"),h(t).off(".textSelectPluginHandler");var n=this.mouseIsDown,o=this.mouseIsDown;n&&(t.style.pointerEvents="auto"),h(t).on("mousedown.textSelectPluginHandler",(function(t){e.mouseIsDown=!0,h(t.target).is(".BRwordElement, .BRspace")&&t.stopPropagation()})),h(t).on("mouseup.textSelectPluginHandler",(function(r){e.mouseIsDown=!1,t.style.pointerEvents="none",o&&(o=!1,r.stopPropagation())}))}},{key:"textSelectingMode",value:function(t){var e=this,r=h(t).closest(".BRpagecontainer");t.style.pointerEvents="all",r.find("img").css("pointer-events","none"),h(t).off(".textSelectPluginHandler"),h(t).on("mousedown.textSelectPluginHandler",(function(t){e.mouseIsDown=!0,t.stopPropagation()})),h(t).on("mouseup.textSelectPluginHandler",(function(t){e.mouseIsDown=!1,t.stopPropagation()}))}},{key:"stopPageFlip",value:function(t){var e=this,r=t.find(".BRtextLayer");r.length&&(r.each((function(t,r){return e.defaultMode(r)})),this.br.protected||this.interceptCopy(t))}},{key:"createTextLayer",value:(r=j(E().mark((function t(e){var r,o,i,a,c,u,l,s,f,p,d,y,v,m,g,b,S,k,P,j,C,R,O,L,A=this;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.page.index,!(o=e.$container).find(".BRtextLayer").length){t.next=5;break}return t.abrupt("return");case 5:return t.next=7,this.getPageText(r);case 7:if(i=t.sent){t.next=10;break}return t.abrupt("return");case 10:if(X(i),!((a=h(i).find("WORD").length)>this.maxWordRendered)){t.next=15;break}return console.log("Page ".concat(r," has too many words (").concat(a," > ").concat(this.maxWordRendered,"). Not rendering text layer.")),t.abrupt("return");case 15:return c=(0,n.Ql)(e.page,"BRtextLayer"),t.next=18,Promise.resolve();case 18:u=parseFloat(e.$container[0].style.width)/e.page.width,l=parseFloat(e.$container[0].style.height)/e.page.height,c.style.transform="scale(".concat(u,", ").concat(l,")"),c.setAttribute("dir",this.rtl?"rtl":"ltr"),s=h(i).find("PARAGRAPH[coords]").toArray(),f=s.map((function(t){var e=A.renderParagraph(t);return c.appendChild(e),e})),p=F(c,".BRparagraphElement"),d=0,y=x(U(s,f));try{for(y.s();!(v=y.n()).done;)m=w(v.value,2),g=m[0],b=m[1],S=h(g).attr("coords").split(",").map(parseFloat),k=p.get(b),P=w(S,4),j=P[0],C=P[2],R=P[3],O=this.rtl?k.right-C:j-k.left,L=R-(k.top+d),b.style[this.rtl?"marginRight":"marginLeft"]="".concat(O,"px"),b.style.marginTop="".concat(L,"px"),d+=L,c.appendChild(b)}catch(t){y.e(t)}finally{y.f()}o.append(c),this.stopPageFlip(o),this.br.trigger("textLayerRendered",{pageIndex:r,pageContainer:e});case 31:case"end":return t.stop()}}),t,this)}))),function(t){return r.apply(this,arguments)})},{key:"renderParagraph",value:function(t){var e=document.createElement("p");e.classList.add("BRparagraphElement");var r=w(h(t).attr("coords").split(",").map(parseFloat),4),n=r[0],o=r[1],i=r[2],a=r[3],c=[],u=h(t).find("LINE[coords]").toArray();if(!u.length)return e;var l,s=x(H(G(u,M)));try{for(s.s();!(l=s.n()).done;){var f=w(l.value,3),p=f[0],d=f[1],y=f[2],v=d.ocrElement==u[u.length-1],m=document.createElement("span");m.classList.add("BRlineElement");var g,b=x(d.words.entries());try{for(b.s();!(g=b.n()).done;){var E=w(g.value,2),P=E[0],j=E[1],C=w(h(j).attr("coords").split(",").map(parseFloat),4),R=C[1],O=C[2],L=C[3],A=R-L;if(c.push(A),0==P&&null!=p&&p.lastWord.textContent.trim().endsWith("-")){var T=w(h((y||p).firstWord).attr("coords").split(",").map(parseFloat),3)[0];h(j).attr("coords","".concat(T,",").concat(R,",").concat(O,",").concat(L))}var _=document.createElement("span");if(_.setAttribute("class","BRwordElement"),_.textContent=j.textContent.trim(),P>0){var B=document.createElement("span");B.classList.add("BRspace"),B.textContent=" ",m.append(B),m.appendChild(document.createTextNode(" "))}m.appendChild(_)}}catch(t){b.e(t)}finally{b.f()}var I=d.lastWord.textContent.trim().endsWith("-"),D=m.children[m.children.length-1];I&&!v&&(D.textContent=D.textContent.trim().slice(0,-1),D.classList.add("BRwordElement--hyphen")),e.appendChild(m),v||I||e.appendChild(document.createTextNode(" "))}}catch(t){s.e(t)}finally{s.f()}c.sort((function(t,e){return t-e}));var N=c[Math.floor(.85*c.length)]+4;e.style.left="".concat(n,"px"),e.style.top="".concat(a,"px"),e.style.width="".concat(i-n,"px"),e.style.height="".concat(o-a,"px"),e.style.fontSize="".concat(N,"px");var W,X=F(e,".BRwordElement"),Y=x(U(h(t).find("WORD").toArray(),e.querySelectorAll(".BRwordElement")));try{for(Y.s();!(W=Y.n()).done;){var $=w(W.value,2),q=$[0],z=$[1],J=X.get(z),Q=w(h(q).attr("coords").split(",").map(parseFloat),3),K=Q[0],V=Q[2]-K;q.textContent.endsWith(" ")&&(V=V*(q.textContent.length-1)/q.textContent.length);var Z=V-J.width;z.style.letterSpacing="".concat(Z/(q.textContent.length-1),"px")}}catch(t){Y.e(t)}finally{Y.f()}X=F(e,".BRwordElement");var tt,et,rt=F(e,".BRspace"),nt=h(t).find("LINE[coords]").toArray(),ot=Array.from(e.querySelectorAll(".BRlineElement")),it=a,at=x(U(nt,ot));try{for(at.s();!(tt=at.n()).done;){var ct,ut=w(tt.value,2),lt=ut[0],st=ut[1],ft=h(lt).find("WORD").toArray(),pt=this.rtl?i:n,ht=x(U(ft,st.querySelectorAll(".BRwordElement")));try{for(ht.s();!(ct=ht.n()).done;){var dt=w(ct.value,2),yt=dt[0],vt=dt[1],mt=X.get(vt),gt=w(h(yt).attr("coords").split(",").map(parseFloat),3),bt=gt[0],wt=gt[2],xt=this.rtl?-(wt-pt):bt-pt;if(vt.previousElementSibling){var St=vt.previousElementSibling;St.style.letterSpacing="".concat(xt-rt.get(St).width,"px")}else vt.style[this.rtl?"paddingRight":"paddingLeft"]="".concat(xt,"px");this.rtl?pt-=xt+mt.width:pt+=xt+mt.width}}catch(t){ht.e(t)}finally{ht.f()}var kt=Math.min.apply(Math,function(t){if(Array.isArray(t))return k(t)}(et=ft.map((function(t){return parseFloat(h(t).attr("coords").split(",")[3])})))||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(et)||S(et)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())-it;st.previousElementSibling&&(st.previousElementSibling.style.lineHeight="".concat(kt,"px"),it+=kt)}}catch(t){at.e(t)}finally{at.f()}return ot[ot.length-1].style.lineHeight="".concat(o-it,"px"),e.appendChild(document.createElement("br")),e}}]);var r,o}(s.S);function F(t,e){var r={position:t.style.position,visibility:t.style.visibility,top:t.style.top,left:t.style.left,transform:t.style.transform};t.style.position="absolute",t.style.visibility="hidden",t.style.top="0",t.style.left="0",t.style.transform="none",document.body.appendChild(t);var n=new Map(Array.from(t.querySelectorAll(e)).map((function(t){var e=t.getBoundingClientRect();return[t,new Y(e.left+window.scrollX,e.top+window.scrollY,e.width,e.height)]})));return document.body.removeChild(t),Object.assign(t.style,r),n}function M(t){var e=h(t).find("WORD").toArray();return{ocrElement:t,words:e,firstWord:e[0],lastWord:e[e.length-1]}}function W(t,e){var r,n,o;return E().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:r=x(t),i.prev=1,r.s();case 3:if((n=r.n()).done){i.next=10;break}if(o=n.value,!e(o)){i.next=8;break}return i.next=8,o;case 8:i.next=3;break;case 10:i.next=15;break;case 12:i.prev=12,i.t0=i.catch(1),r.e(i.t0);case 15:return i.prev=15,r.f(),i.finish(15);case 18:case"end":return i.stop()}}),y,null,[[1,12,15,18]])}function G(t,e){var r,n,o;return E().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:r=x(t),i.prev=1,r.s();case 3:if((n=r.n()).done){i.next=9;break}return o=n.value,i.next=7,e(o);case 7:i.next=3;break;case 9:i.next=14;break;case 11:i.prev=11,i.t0=i.catch(1),r.e(i.t0);case 14:return i.prev=14,r.f(),i.finish(14);case 17:case"end":return i.stop()}}),v,null,[[1,11,14,17]])}function H(t){var e,r,n,o,i,a;return E().wrap((function(c){for(;;)switch(c.prev=c.next){case 0:e=void 0,r=void 0,n=void 0,o=x(t),c.prev=4,o.s();case 6:if((i=o.n()).done){c.next=17;break}if(a=i.value,void 0===r){c.next=12;break}return n=a,c.next=12,[e,r,n];case 12:e=r,r=a,n=void 0;case 15:c.next=6;break;case 17:c.next=22;break;case 19:c.prev=19,c.t0=c.catch(4),o.e(c.t0);case 22:return c.prev=22,o.f(),c.finish(22);case 25:if(void 0===r){c.next=28;break}return c.next=28,[e,r,n];case 28:case"end":return c.stop()}}),m,null,[[4,19,22,25]])}function U(t,e){var r,n,o,i;return E().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:r=t[Symbol.iterator](),n=e[Symbol.iterator]();case 2:if(o=r.next(),i=n.next(),!o.done||!i.done){a.next=7;break}return a.abrupt("return");case 7:if(!o.done&&!i.done){a.next=9;break}throw new Error("zip: one of the iterators is done");case 9:return a.next=11,[o.value,i.value];case 11:a.next=2;break;case 13:case"end":return a.stop()}}),g)}function X(t){if(!h(t).attr("coords")&&t.children){var e=h(t).children().toArray();if(0!==e.length){var r,n=x(e);try{for(n.s();!(r=n.n()).done;)X(r.value)}catch(t){n.e(t)}finally{n.f()}var o,i=[],a=x(e);try{for(a.s();!(o=a.n()).done;){var c=o.value;h(c).attr("coords")&&i.push(h(c).attr("coords").split(",").map(parseFloat))}}catch(t){a.e(t)}finally{a.f()}var u=function(t){var e,r=1/0,n=-1/0,o=-1/0,i=1/0,a=x(t);try{for(a.s();!(e=a.n()).done;){var c=w(e.value,4),u=c[0],l=c[1],s=c[2],f=c[3];r=Math.min(r,u),n=Math.max(n,l),o=Math.max(o,s),i=Math.min(i,f)}}catch(t){a.e(t)}finally{a.f()}return[r,n,o,i]}(i);Math.abs(u[0])!=1/0&&h(t).attr("coords",u.join(","))}}}null==D||D.registerPlugin("textSelection",N);var Y=function(){return O((function t(e,r,n,o){C(this,t),this.x=e,this.y=r,this.width=n,this.height=o}),[{key:"right",get:function(){return this.x+this.width}},{key:"bottom",get:function(){return this.y+this.height}},{key:"top",get:function(){return this.y}},{key:"left",get:function(){return this.x}}])}();function $(t,e){var r,n;return E().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return n=function(t){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=o.children,a=void 0===i||i,c=o.parents,u=void 0===c||c,l=o.siblings,s=void 0===l||l;return E().mark((function o(){var i;return E().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(t!==e){o.next=5;break}return r=!0,o.next=4,t;case 4:return o.abrupt("return");case 5:return o.next=7,t;case 7:if(!a||!t.firstChild){o.next=11;break}return o.delegateYield(n(t.firstChild,{children:!0,parents:!1,siblings:!0}),"t0",9);case 9:if(!r){o.next=11;break}return o.abrupt("return");case 11:if(!s){o.next=20;break}i=t.nextSibling;case 13:if(!i){o.next=20;break}return o.delegateYield(n(i,{children:!0,parents:!1,siblings:!1}),"t1",15);case 15:if(!r){o.next=17;break}return o.abrupt("return");case 17:i=i.nextSibling,o.next=13;break;case 20:if(!u||!t.parentNode){o.next=24;break}return o.delegateYield(n(t.parentNode,{children:!1,parents:!0,siblings:!0}),"t2",22);case 22:if(!r){o.next=24;break}return o.abrupt("return");case 24:case"end":return o.stop()}}),o)}))()},r=!1,o.delegateYield(n(t),"t0",3);case 3:case"end":return o.stop()}}),b)}},4565:function(t,e,r){function n(t){return n="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},n(t)}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,i(n.key),n)}}function i(t){var e=function(t,e){if("object"!=n(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var o=r.call(t,"string");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}r.d(e,{l:function(){return a}}),r(2675),r(9463),r(2259),r(5700),r(3792),r(9572),r(8130),r(6099),r(7764),r(2953);var a=function(){return t=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.maxSize=e,this.entries=[]},(e=[{key:"add",value:function(t){this.entries.length>=this.maxSize&&this.entries.shift(),this.entries.push(t)}}])&&o(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()},9073:function(t,e,r){function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function o(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:i;return null==t?void 0:t.replace(/\{\{([^}]*?)\}\}/g,(function(t,i){if(!i)return t;var a,c=function(t){if(Array.isArray(t))return t}(a=i.split("|").map((function(t){return t.trim()})))||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(a)||function(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),u=c[0],l=c.slice(1);if(!(u in r)&&!(u in e))return t;var s=u in r?r[u]:u in e?e[u]:null;return l.map((function(t){return o[t]})).reduce((function(t,e){return e(t)}),s&&s.toString())}))}r.d(e,{g:function(){return o}}),r(2675),r(9463),r(2259),r(3418),r(3792),r(2062),r(2712),r(4782),r(2010),r(6099),r(7495),r(8781),r(7764),r(5440),r(2762),r(2953);var i={urlencode:encodeURIComponent}}},function(t){t(t.s=2763)}]);
|
|
3
|
+
//# sourceMappingURL=plugin.text_selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins/plugin.text_selection.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.js","webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./src/BookReader/utils/SelectionObserver.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.text_selection.js","webpack://@internetarchive/bookreader/./src/util/cache.js","webpack://@internetarchive/bookreader/./src/util/strings.js"],"sourcesContent":["'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","// @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\nexport class SelectionObserver {\n selecting = false;\n startedInSelector = false;\n /** @type {HTMLElement} */\n target = null;\n\n /**\n * @param {string} selector\n * @param {function('started' | 'cleared', HTMLElement): any} handler\n */\n constructor(selector, handler) {\n this.selector = selector;\n this.handler = handler;\n }\n\n attach() {\n // We can't just use selectstart, because safari on iOS just\n // randomly decides when to fire it 😤\n // document.addEventListener(\"selectstart\", this._onSelectStart);\n // This has to be on document :/\n document.addEventListener(\"selectionchange\", this._onSelectionChange);\n }\n\n detach() {\n document.removeEventListener(\"selectionchange\", this._onSelectionChange);\n }\n\n _onSelectionChange = () => {\n const sel = window.getSelection();\n\n if (!this.selecting && sel.toString()) {\n const target = $(sel.anchorNode).closest(this.selector)[0];\n if (!target) return;\n this.target = target;\n this.selecting = true;\n this.handler('started', this.target);\n }\n\n if (this.selecting && (sel.isCollapsed || !sel.toString() || !$(sel.anchorNode).closest(this.selector)[0])) {\n this.selecting = false;\n this.handler('cleared', this.target);\n }\n };\n}\n","//@ts-check\nimport { createDIVPageLayer } from '../BookReader/PageContainer.js';\nimport { SelectionObserver } from '../BookReader/utils/SelectionObserver.js';\nimport { BookReaderPlugin } from '../BookReaderPlugin.js';\nimport { applyVariables } from '../util/strings.js';\nimport { Cache } from '../util/cache.js';\n/** @typedef {import('../util/strings.js').StringWithVars} StringWithVars */\n/** @typedef {import('../BookReader/PageContainer.js').PageContainer} PageContainer */\n\nconst BookReader = /** @type {typeof import('../BookReader').default} */(window.BookReader);\n\n\nexport class TextSelectionPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n /** @type {StringWithVars} The URL to fetch the entire DJVU xml. Supports options.vars */\n fullDjvuXmlUrl: null,\n /** @type {StringWithVars} The URL to fetch a single page of the DJVU xml. Supports options.vars. Also has {{pageIndex}} */\n singlePageDjvuXmlUrl: null,\n /** Whether to fetch the XML as a jsonp */\n jsonp: false,\n /** Mox words tha can be selected when the text layer is protected */\n maxProtectedWords: 200,\n }\n\n /**@type {PromiseLike<JQuery<HTMLElement>|undefined>} */\n djvuPagesPromise = null;\n\n /** @type {Cache<{index: number, response: any}>} */\n pageTextCache = new Cache();\n\n /**\n * Sometimes there are too many words on a page, and the browser becomes near\n * unusable. For now don't render text layer for pages with too many words.\n */\n maxWordRendered = 2500;\n\n /**\n * @param {import('../BookReader.js').default} br\n */\n constructor(br) {\n super(br);\n // In the future this should be in the ocr file\n // since a book being right to left doesn't mean the ocr is right to left. But for\n // now we do make that assumption.\n /** Whether the book is right-to-left */\n this.rtl = this.br.pageProgression === 'rl';\n this.selectionObserver = new SelectionObserver('.BRtextLayer', this._onSelectionChange);\n }\n\n /** @override */\n init() {\n if (!this.options.enabled) return;\n\n this.loadData();\n\n this.selectionObserver.attach();\n new SelectionObserver('.BRtextLayer', (selectEvent) => {\n // Track how often selection is used\n if (selectEvent == 'started') {\n this.br.plugins.archiveAnalytics?.sendEvent('BookReader', 'SelectStart');\n\n // Set a class on the page to avoid hiding it when zooming/etc\n this.br.refs.$br.find('.BRpagecontainer--hasSelection').removeClass('BRpagecontainer--hasSelection');\n $(window.getSelection().anchorNode).closest('.BRpagecontainer').addClass('BRpagecontainer--hasSelection');\n }\n }).attach();\n\n if (this.br.protected) {\n document.addEventListener('selectionchange', this._limitSelection);\n // Prevent right clicking when selected text\n $(document.body).on('contextmenu dragstart copy', (e) => {\n const selection = document.getSelection();\n if (selection?.toString()) {\n const intersectsTextLayer = $('.BRtextLayer')\n .toArray()\n .some(el => selection.containsNode(el, true));\n if (intersectsTextLayer) {\n e.preventDefault();\n return false;\n }\n }\n });\n }\n }\n\n _limitSelection = () => {\n const selection = window.getSelection();\n if (!selection.rangeCount) return;\n\n const range = selection.getRangeAt(0);\n\n // Check if range.startContainer is inside the sub-tree of .BRContainer\n const startInBr = !!range.startContainer.parentElement.closest('.BRcontainer');\n const endInBr = !!range.endContainer.parentElement.closest('.BRcontainer');\n if (!startInBr && !endInBr) return;\n if (!startInBr || !endInBr) {\n // weird case, just clear the selection\n selection.removeAllRanges();\n return;\n }\n\n // Find the last allowed word in the selection\n const lastAllowedWord = genAt(\n genFilter(\n walkBetweenNodes(range.startContainer, range.endContainer),\n (node) => node.classList?.contains('BRwordElement'),\n ),\n this.options.maxProtectedWords - 1,\n );\n\n if (!lastAllowedWord || range.endContainer.parentNode == lastAllowedWord) return;\n\n const newRange = document.createRange();\n newRange.setStart(range.startContainer, range.startOffset);\n newRange.setEnd(lastAllowedWord.firstChild, lastAllowedWord.textContent.length);\n\n selection.removeAllRanges();\n selection.addRange(newRange);\n };\n\n /**\n * @override\n * @param {PageContainer} pageContainer\n * @returns {PageContainer}\n */\n _configurePageContainer(pageContainer) {\n // Disable if thumb mode; it's too janky\n // .page can be null for \"pre-cover\" region\n if (this.br.mode !== this.br.constModeThumb && pageContainer.page) {\n this.createTextLayer(pageContainer);\n }\n return pageContainer;\n }\n\n /**\n * @param {'started' | 'cleared'} type\n * @param {HTMLElement} target\n */\n _onSelectionChange = (type, target) => {\n if (type === 'started') {\n this.textSelectingMode(target);\n } else if (type === 'cleared') {\n this.defaultMode(target);\n } else {\n throw new Error(`Unknown type ${type}`);\n }\n }\n\n loadData() {\n // Only fetch the full djvu xml if the single page url isn't there\n if (this.options.singlePageDjvuXmlUrl) return;\n this.djvuPagesPromise = $.ajax({\n type: \"GET\",\n url: applyVariables(this.options.fullDjvuXmlUrl, this.br.options.vars),\n dataType: this.options.jsonp ? \"jsonp\" : \"html\",\n cache: true,\n xhrFields: {\n withCredentials: this.br.protected,\n },\n error: (e) => undefined,\n }).then((res) => {\n try {\n const xmlMap = $.parseXML(res);\n return xmlMap && $(xmlMap).find(\"OBJECT\");\n } catch (e) {\n return undefined;\n }\n });\n }\n\n /**\n * @param {number} index\n * @returns {Promise<HTMLElement|undefined>}\n */\n async getPageText(index) {\n if (this.options.singlePageDjvuXmlUrl) {\n const cachedEntry = this.pageTextCache.entries.find(x => x.index == index);\n if (cachedEntry) {\n return cachedEntry.response;\n }\n const res = await $.ajax({\n type: \"GET\",\n url: applyVariables(this.options.singlePageDjvuXmlUrl, this.br.options.vars, { pageIndex: index }),\n dataType: this.options.jsonp ? \"jsonp\" : \"html\",\n cache: true,\n xhrFields: {\n withCredentials: this.br.protected,\n },\n error: (e) => undefined,\n });\n try {\n const xmlDoc = $.parseXML(res);\n const result = xmlDoc && $(xmlDoc).find(\"OBJECT\")[0];\n this.pageTextCache.add({ index, response: result });\n return result;\n } catch (e) {\n return undefined;\n }\n } else {\n const XMLpagesArr = await this.djvuPagesPromise;\n if (XMLpagesArr) return XMLpagesArr[index];\n }\n }\n\n /**\n * Intercept copied text to remove any styling applied to it\n * @param {JQuery} $container\n */\n interceptCopy($container) {\n $container[0].addEventListener('copy', (event) => {\n const selection = document.getSelection();\n event.clipboardData.setData('text/plain', selection.toString());\n event.preventDefault();\n });\n }\n\n /**\n * Applies mouse events when in default mode\n * @param {HTMLElement} textLayer\n */\n defaultMode(textLayer) {\n const $pageContainer = $(textLayer).closest('.BRpagecontainer');\n textLayer.style.pointerEvents = \"none\";\n $pageContainer.find(\"img\").css(\"pointer-events\", \"auto\");\n\n $(textLayer).off(\".textSelectPluginHandler\");\n const startedMouseDown = this.mouseIsDown;\n let skipNextMouseup = this.mouseIsDown;\n if (startedMouseDown) {\n textLayer.style.pointerEvents = \"auto\";\n }\n\n // Need to stop propagation to prevent DragScrollable from\n // blocking selection\n $(textLayer).on(\"mousedown.textSelectPluginHandler\", (event) => {\n this.mouseIsDown = true;\n if ($(event.target).is(\".BRwordElement, .BRspace\")) {\n event.stopPropagation();\n }\n });\n\n $(textLayer).on(\"mouseup.textSelectPluginHandler\", (event) => {\n this.mouseIsDown = false;\n textLayer.style.pointerEvents = \"none\";\n if (skipNextMouseup) {\n skipNextMouseup = false;\n event.stopPropagation();\n }\n });\n }\n\n /**\n * This mode is active while there is a selection on the given textLayer\n * @param {HTMLElement} textLayer\n */\n textSelectingMode(textLayer) {\n const $pageContainer = $(textLayer).closest('.BRpagecontainer');\n // Make text layer consume all events\n textLayer.style.pointerEvents = \"all\";\n // Block img from getting long-press to save while selecting\n $pageContainer.find(\"img\").css(\"pointer-events\", \"none\");\n\n $(textLayer).off(\".textSelectPluginHandler\");\n\n $(textLayer).on('mousedown.textSelectPluginHandler', (event) => {\n this.mouseIsDown = true;\n event.stopPropagation();\n });\n\n // Prevent page flip on click\n $(textLayer).on('mouseup.textSelectPluginHandler', (event) => {\n this.mouseIsDown = false;\n event.stopPropagation();\n });\n }\n\n /**\n * Initializes text selection modes if there is a text layer on the page\n * @param {JQuery} $container\n */\n stopPageFlip($container) {\n /** @type {JQuery<HTMLElement>} */\n const $textLayer = $container.find('.BRtextLayer');\n if (!$textLayer.length) return;\n $textLayer.each((i, s) => this.defaultMode(s));\n if (!this.br.protected) {\n this.interceptCopy($container);\n }\n }\n\n /**\n * @param {PageContainer} pageContainer\n */\n async createTextLayer(pageContainer) {\n const pageIndex = pageContainer.page.index;\n const $container = pageContainer.$container;\n const $textLayers = $container.find('.BRtextLayer');\n if ($textLayers.length) return;\n const XMLpage = await this.getPageText(pageIndex);\n if (!XMLpage) return;\n recursivelyAddCoords(XMLpage);\n\n const totalWords = $(XMLpage).find(\"WORD\").length;\n if (totalWords > this.maxWordRendered) {\n console.log(`Page ${pageIndex} has too many words (${totalWords} > ${this.maxWordRendered}). Not rendering text layer.`);\n return;\n }\n\n const textLayer = createDIVPageLayer(pageContainer.page, 'BRtextLayer');\n // Have to wait to make sure the page container is actually rendered,\n // otherwise width/height are unset after a mode change.\n await Promise.resolve();\n const ratioW = parseFloat(pageContainer.$container[0].style.width) / pageContainer.page.width;\n const ratioH = parseFloat(pageContainer.$container[0].style.height) / pageContainer.page.height;\n textLayer.style.transform = `scale(${ratioW}, ${ratioH})`;\n textLayer.setAttribute(\"dir\", this.rtl ? \"rtl\" : \"ltr\");\n\n const ocrParagraphs = $(XMLpage).find(\"PARAGRAPH[coords]\").toArray();\n const paragEls = ocrParagraphs.map(p => {\n const el = this.renderParagraph(p);\n textLayer.appendChild(el);\n return el;\n });\n\n // Fix up paragraph positions\n const paragraphRects = determineRealRects(textLayer, '.BRparagraphElement');\n let yAdded = 0;\n for (const [ocrParagraph, paragEl] of zip(ocrParagraphs, paragEls)) {\n const ocrParagBounds = $(ocrParagraph).attr(\"coords\").split(\",\").map(parseFloat);\n const realRect = paragraphRects.get(paragEl);\n const [ocrLeft, , ocrRight, ocrTop] = ocrParagBounds;\n const newStartMargin = this.rtl ? (realRect.right - ocrRight) : (ocrLeft - realRect.left);\n const newTop = ocrTop - (realRect.top + yAdded);\n\n paragEl.style[this.rtl ? 'marginRight' : 'marginLeft'] = `${newStartMargin}px`;\n paragEl.style.marginTop = `${newTop}px`;\n yAdded += newTop;\n textLayer.appendChild(paragEl);\n }\n $container.append(textLayer);\n this.stopPageFlip($container);\n this.br.trigger('textLayerRendered', {\n pageIndex,\n pageContainer,\n });\n }\n\n /**\n * @param {HTMLElement} ocrParagraph\n * @returns {HTMLParagraphElement}\n */\n renderParagraph(ocrParagraph) {\n const paragEl = document.createElement('p');\n paragEl.classList.add('BRparagraphElement');\n const [paragLeft, paragBottom, paragRight, paragTop] = $(ocrParagraph).attr(\"coords\").split(\",\").map(parseFloat);\n const wordHeightArr = [];\n const lines = $(ocrParagraph).find(\"LINE[coords]\").toArray();\n if (!lines.length) return paragEl;\n\n\n for (const [prevLine, line, nextLine] of lookAroundWindow(genMap(lines, augmentLine))) {\n const isLastLineOfParagraph = line.ocrElement == lines[lines.length - 1];\n const lineEl = document.createElement('span');\n lineEl.classList.add('BRlineElement');\n\n for (const [wordIndex, currWord] of line.words.entries()) {\n const [, bottom, right, top] = $(currWord).attr(\"coords\").split(',').map(parseFloat);\n const wordHeight = bottom - top;\n wordHeightArr.push(wordHeight);\n\n if (wordIndex == 0 && prevLine?.lastWord.textContent.trim().endsWith('-')) {\n // ideally prefer the next line to determine the left position,\n // since the previous line could be the first line of the paragraph\n // and hence have an incorrectly indented first word.\n // E.g. https://archive.org/details/driitaleofdaring00bachuoft/page/360/mode/2up\n const [newLeft, , , ] = $((nextLine || prevLine).firstWord).attr(\"coords\").split(',').map(parseFloat);\n $(currWord).attr(\"coords\", `${newLeft},${bottom},${right},${top}`);\n }\n\n const wordEl = document.createElement('span');\n wordEl.setAttribute(\"class\", \"BRwordElement\");\n wordEl.textContent = currWord.textContent.trim();\n\n if (wordIndex > 0) {\n const space = document.createElement('span');\n space.classList.add('BRspace');\n space.textContent = ' ';\n lineEl.append(space);\n\n // Edge ignores empty elements (like BRspace), so add another\n // space to ensure Edge's ReadAloud works correctly.\n lineEl.appendChild(document.createTextNode(' '));\n }\n\n lineEl.appendChild(wordEl);\n }\n\n const hasHyphen = line.lastWord.textContent.trim().endsWith('-');\n const lastWordEl = lineEl.children[lineEl.children.length - 1];\n if (hasHyphen && !isLastLineOfParagraph) {\n lastWordEl.textContent = lastWordEl.textContent.trim().slice(0, -1);\n lastWordEl.classList.add('BRwordElement--hyphen');\n }\n\n paragEl.appendChild(lineEl);\n if (!isLastLineOfParagraph && !hasHyphen) {\n // Edge does not correctly have spaces between the lines.\n paragEl.appendChild(document.createTextNode(' '));\n }\n }\n\n wordHeightArr.sort((a, b) => a - b);\n const paragWordHeight = wordHeightArr[Math.floor(wordHeightArr.length * 0.85)] + 4;\n paragEl.style.left = `${paragLeft}px`;\n paragEl.style.top = `${paragTop}px`;\n paragEl.style.width = `${paragRight - paragLeft}px`;\n paragEl.style.height = `${paragBottom - paragTop}px`;\n paragEl.style.fontSize = `${paragWordHeight}px`;\n\n // Fix up sizes - stretch/crush words as necessary using letter spacing\n let wordRects = determineRealRects(paragEl, '.BRwordElement');\n const ocrWords = $(ocrParagraph).find(\"WORD\").toArray();\n const wordEls = paragEl.querySelectorAll('.BRwordElement');\n for (const [ocrWord, wordEl] of zip(ocrWords, wordEls)) {\n const realRect = wordRects.get(wordEl);\n const [left, , right ] = $(ocrWord).attr(\"coords\").split(',').map(parseFloat);\n let ocrWidth = right - left;\n // Some books (eg theworksofplato01platiala) have a space _inside_ the <WORD>\n // element. That makes it impossible to determine the correct positining\n // of everything, but to avoid the BRspace's being width 0, which makes selection\n // janky on Chrome Android, assume the space is the same width as one of the\n // letters.\n if (ocrWord.textContent.endsWith(' ')) {\n ocrWidth = ocrWidth * (ocrWord.textContent.length - 1) / ocrWord.textContent.length;\n }\n const diff = ocrWidth - realRect.width;\n wordEl.style.letterSpacing = `${diff / (ocrWord.textContent.length - 1)}px`;\n }\n\n // Stretch/crush lines as necessary using line spacing\n // Recompute rects after letter spacing\n wordRects = determineRealRects(paragEl, '.BRwordElement');\n const spaceRects = determineRealRects(paragEl, '.BRspace');\n\n const ocrLines = $(ocrParagraph).find(\"LINE[coords]\").toArray();\n const lineEls = Array.from(paragEl.querySelectorAll('.BRlineElement'));\n\n let ySoFar = paragTop;\n for (const [ocrLine, lineEl] of zip(ocrLines, lineEls)) {\n // shift words using marginLeft to align with the correct x position\n const words = $(ocrLine).find(\"WORD\").toArray();\n // const ocrLineLeft = Math.min(...words.map(w => parseFloat($(w).attr(\"coords\").split(',')[0])));\n let xSoFar = this.rtl ? paragRight : paragLeft;\n for (const [ocrWord, wordEl] of zip(words, lineEl.querySelectorAll('.BRwordElement'))) {\n // start of line, need to compute the offset relative to the OCR words\n const wordRect = wordRects.get(wordEl);\n const [ocrLeft, , ocrRight ] = $(ocrWord).attr(\"coords\").split(',').map(parseFloat);\n const diff = (this.rtl ? -(ocrRight - xSoFar) : ocrLeft - xSoFar);\n\n if (wordEl.previousElementSibling) {\n const space = wordEl.previousElementSibling;\n space.style.letterSpacing = `${diff - spaceRects.get(space).width}px`;\n } else {\n wordEl.style[this.rtl ? 'paddingRight' : 'paddingLeft'] = `${diff}px`;\n }\n if (this.rtl) xSoFar -= diff + wordRect.width;\n else xSoFar += diff + wordRect.width;\n }\n // And also fix y position\n const ocrLineTop = Math.min(...words.map(w => parseFloat($(w).attr(\"coords\").split(',')[3])));\n const diff = ocrLineTop - ySoFar;\n if (lineEl.previousElementSibling) {\n lineEl.previousElementSibling.style.lineHeight = `${diff}px`;\n ySoFar += diff;\n }\n }\n\n // The last line will have a line height subtracting from the paragraph height\n lineEls[lineEls.length - 1].style.lineHeight = `${paragBottom - ySoFar}px`;\n\n // Edge does not include a newline for some reason when copying/pasting the <p> els\n paragEl.appendChild(document.createElement('br'));\n return paragEl;\n }\n}\n\nBookReader?.registerPlugin('textSelection', TextSelectionPlugin);\n\n\n/**\n * @param {HTMLElement} parentEl\n * @param {string} selector\n * @returns {Map<Element, Rect>}\n */\nfunction determineRealRects(parentEl, selector) {\n const initals = {\n position: parentEl.style.position,\n visibility: parentEl.style.visibility,\n top: parentEl.style.top,\n left: parentEl.style.left,\n transform: parentEl.style.transform,\n };\n parentEl.style.position = 'absolute';\n parentEl.style.visibility = 'hidden';\n parentEl.style.top = '0';\n parentEl.style.left = '0';\n parentEl.style.transform = 'none';\n document.body.appendChild(parentEl);\n const rects = new Map(\n Array.from(parentEl.querySelectorAll(selector))\n .map(wordEl => {\n const origRect = wordEl.getBoundingClientRect();\n return [wordEl, new Rect(\n origRect.left + window.scrollX,\n origRect.top + window.scrollY,\n origRect.width,\n origRect.height,\n )];\n }),\n );\n document.body.removeChild(parentEl);\n Object.assign(parentEl.style, initals);\n return rects;\n}\n\n/**\n * @param {HTMLElement} line\n */\nfunction augmentLine(line) {\n const words = $(line).find(\"WORD\").toArray();\n return {\n ocrElement: line,\n words,\n firstWord: words[0],\n lastWord: words[words.length - 1],\n };\n}\n\n/**\n * @template T\n * Get the i-th element of an iterable\n * @param {Iterable<T>} iterable\n * @param {number} index\n */\nexport function genAt(iterable, index) {\n let i = 0;\n for (const x of iterable) {\n if (i == index) return x;\n i++;\n }\n return undefined;\n}\n\n/**\n * @template T\n * Generator version of filter\n * @param {Iterable<T>} iterable\n * @param {function(T): boolean} fn\n */\nexport function* genFilter(iterable, fn) {\n for (const x of iterable) {\n if (fn(x)) yield x;\n }\n}\n\n/**\n * @template TFrom, TTo\n * Generator version of map\n * @param {Iterable<TFrom>} gen\n * @param {function(TFrom): TTo} fn\n * @returns {Iterable<TTo>}\n */\nexport function* genMap(gen, fn) {\n for (const x of gen) yield fn(x);\n}\n\n/**\n * @template T\n * Generator that provides a sliding window of 3 elements,\n * prev, current, and next.\n * @param {Iterable<T>} gen\n * @returns {Iterable<[T | undefined, T, T | undefined]>}\n */\nexport function* lookAroundWindow(gen) {\n let prev = undefined;\n let cur = undefined;\n let next = undefined;\n for (const x of gen) {\n if (typeof cur !== 'undefined') {\n next = x;\n yield [prev, cur, next];\n }\n prev = cur;\n cur = x;\n next = undefined;\n }\n\n if (typeof cur !== 'undefined') {\n yield [prev, cur, next];\n }\n}\n\n/**\n * @template T1, T2\n * Lazy zip implementation to avoid importing lodash\n * Expects iterators to be of the same length\n * @param {Iterable<T1>} gen1\n * @param {Iterable<T2>} gen2\n * @returns {Iterable<[T1, T2]>}\n */\nexport function* zip(gen1, gen2) {\n const it1 = gen1[Symbol.iterator]();\n const it2 = gen2[Symbol.iterator]();\n while (true) {\n const r1 = it1.next();\n const r2 = it2.next();\n if (r1.done && r2.done) {\n return;\n }\n if (r1.done || r2.done) {\n throw new Error('zip: one of the iterators is done');\n }\n yield [r1.value, r2.value];\n }\n}\n\n/**\n * [left, bottom, right, top]\n * @param {Array<[number, number, number, number]>} bounds\n * @returns {[number, number, number, number]}\n */\nfunction determineBounds(bounds) {\n let leftMost = Infinity;\n let bottomMost = -Infinity;\n let rightMost = -Infinity;\n let topMost = Infinity;\n\n for (const [left, bottom, right, top] of bounds) {\n leftMost = Math.min(leftMost, left);\n bottomMost = Math.max(bottomMost, bottom);\n rightMost = Math.max(rightMost, right);\n topMost = Math.min(topMost, top);\n }\n\n return [leftMost, bottomMost, rightMost, topMost];\n}\n\n/**\n * Recursively traverses the XML tree and adds coords\n * which are the bounding box of all child coords\n * @param {Element} xmlEl\n */\nfunction recursivelyAddCoords(xmlEl) {\n if ($(xmlEl).attr('coords') || !xmlEl.children) {\n return;\n }\n\n const children = $(xmlEl).children().toArray();\n if (children.length === 0) {\n return;\n }\n\n for (const child of children) {\n recursivelyAddCoords(child);\n }\n\n const childCoords = [];\n\n for (const child of children) {\n if (!$(child).attr('coords')) continue;\n childCoords.push($(child).attr('coords').split(',').map(parseFloat));\n }\n\n const boundingCoords = determineBounds(childCoords);\n if (Math.abs(boundingCoords[0]) != Infinity) {\n $(xmlEl).attr('coords', boundingCoords.join(','));\n }\n}\n\n/**\n * Basically a polyfill for the native DOMRect class\n */\nclass Rect {\n /**\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n */\n constructor(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n\n get right() { return this.x + this.width; }\n get bottom() { return this.y + this.height; }\n get top() { return this.y; }\n get left() { return this.x; }\n}\n\n/**\n * Depth traverse the DOM tree starting at `start`, and ending at `end`.\n * @param {Node} start\n * @param {Node} end\n * @returns {Generator<Node>}\n */\nexport function* walkBetweenNodes(start, end) {\n let done = false;\n\n /**\n * @param {Node} node\n */\n function* walk(node, {children = true, parents = true, siblings = true} = {}) {\n if (node === end) {\n done = true;\n yield node;\n return;\n }\n\n // yield self\n yield node;\n\n // First iterate children (depth-first traversal)\n if (children && node.firstChild) {\n yield* walk(node.firstChild, {children: true, parents: false, siblings: true});\n if (done) return;\n }\n\n // Then iterate siblings\n if (siblings) {\n for (let sib = node.nextSibling; sib; sib = sib.nextSibling) {\n yield* walk(sib, {children: true, parents: false, siblings: false});\n if (done) return;\n }\n }\n\n // Finally, move up the tree\n if (parents && node.parentNode) {\n yield* walk(node.parentNode, {children: false, parents: true, siblings: true});\n if (done) return;\n }\n }\n\n yield* walk(start);\n}\n","/**\n * @template T\n */\nexport class Cache {\n constructor(maxSize = 10) {\n this.maxSize = maxSize;\n /** @type {T[]} */\n this.entries = [];\n }\n\n /**\n * @param {T} entry\n */\n add(entry) {\n if (this.entries.length >= this.maxSize) {\n this.entries.shift();\n }\n this.entries.push(entry);\n }\n}\n","/**\n * @typedef {String} StringWithVars\n * A template string with {{foo}} style variables\n * Also supports filters, like {{bookPath|urlencode}} (See APPLY_FILTERS for the\n * supported list of filters)\n **/\n\n/**\n * @param {StringWithVars|String} template\n * @param { {[varName: string]: { toString: () => string} } } vars\n * @param { {[varName: string]: { toString: () => string} } } [overrides]\n * @returns {StringWithVars|string}\n */\nexport function applyVariables(template, vars, overrides = {}, possibleFilters = APPLY_FILTERS) {\n return template?.replace(/\\{\\{([^}]*?)\\}\\}/g, ($0, $1) => {\n if (!$1) return $0;\n /** @type {string} */\n const expression = $1;\n const [varName, ...filterNames] = expression.split('|').map(x => x.trim());\n const defined = varName in overrides || varName in vars;\n\n // If it's not defined, don't expand it at all\n if (!defined) return $0;\n\n const value = varName in overrides ? overrides[varName]\n : varName in vars ? vars[varName] : null;\n const filters = filterNames.map(n => possibleFilters[n]);\n return filters.reduce((acc, cur) => cur(acc), value && value.toString());\n });\n}\n\n/** @type { {[filterName: String]:( string => string)} } */\nexport const APPLY_FILTERS = {\n urlencode: encodeURIComponent,\n};\n"],"names":["PROPER_FUNCTION_NAME","fails","whitespaces","module","exports","METHOD_NAME","name","$","$trim","target","proto","forced","forcedStringTrimMethod","trim","this","BookReaderPlugin","br","_classCallCheck","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","SelectionObserver","selector","handler","_this","_defineProperty","sel","window","getSelection","selecting","toString","anchorNode","closest","isCollapsed","document","addEventListener","_onSelectionChange","removeEventListener","genFilter","_marked2","_regeneratorRuntime","mark","genMap","_marked3","lookAroundWindow","_marked4","zip","_marked5","walkBetweenNodes","_slicedToArray","r","e","Array","isArray","_arrayWithHoles","l","t","Symbol","iterator","n","i","u","a","f","o","call","next","done","push","length","return","_iterableToArrayLimit","_unsupportedIterableToArray","TypeError","_nonIterableRest","_createForOfIteratorHelper","_n","F","s","_arrayLikeToArray","slice","constructor","from","test","prototype","hasOwnProperty","defineProperty","c","asyncIterator","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_defineProperties","_toPropertyKey","_createClass","_callSuper","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","bind","_setPrototypeOf","toPrimitive","String","_toPrimitive","BookReader","TextSelectionPlugin","_BookReaderPlugin","enabled","fullDjvuXmlUrl","singlePageDjvuXmlUrl","jsonp","maxProtectedWords","Cache","selection","rangeCount","range","getRangeAt","startInBr","startContainer","parentElement","endInBr","endContainer","lastAllowedWord","iterable","index","_step7","_iterator7","x","err","genAt","node","_node$classList","classList","contains","parentNode","newRange","createRange","setStart","startOffset","setEnd","firstChild","textContent","removeAllRanges","addRange","textSelectingMode","concat","defaultMode","rtl","pageProgression","selectionObserver","_inherits","_this2","loadData","attach","selectEvent","_this2$br$plugins$arc","plugins","archiveAnalytics","sendEvent","refs","$br","find","removeClass","addClass","protected","_limitSelection","body","on","toArray","some","el","containsNode","preventDefault","mode","constModeThumb","page","createTextLayer","djvuPagesPromise","ajax","url","applyVariables","vars","dataType","cache","xhrFields","withCredentials","error","res","xmlMap","parseXML","_getPageText","_callee","cachedEntry","xmlDoc","result","XMLpagesArr","_context","pageTextCache","entries","response","pageIndex","add","t0","undefined","_x","$container","event","clipboardData","setData","textLayer","_this3","$pageContainer","style","pointerEvents","css","off","startedMouseDown","mouseIsDown","skipNextMouseup","is","stopPropagation","_this4","_this5","$textLayer","each","interceptCopy","_createTextLayer","_callee2","XMLpage","totalWords","ratioW","ratioH","ocrParagraphs","paragEls","paragraphRects","yAdded","_iterator","_step","_step$value","ocrParagraph","paragEl","ocrParagBounds","realRect","_ocrParagBounds","ocrLeft","ocrRight","ocrTop","newStartMargin","newTop","_this6","_context2","getPageText","recursivelyAddCoords","maxWordRendered","console","log","createDIVPageLayer","parseFloat","width","height","transform","setAttribute","map","renderParagraph","appendChild","determineRealRects","attr","split","get","right","left","top","marginTop","append","stopPageFlip","trigger","_x2","createElement","_$$attr$split$map2","paragLeft","paragBottom","paragRight","paragTop","wordHeightArr","lines","_step2","_iterator2","augmentLine","_step2$value","prevLine","line","nextLine","isLastLineOfParagraph","ocrElement","lineEl","_step5","_iterator5","words","_step5$value","wordIndex","currWord","_$$attr$split$map4","bottom","wordHeight","lastWord","endsWith","newLeft","firstWord","wordEl","space","createTextNode","hasHyphen","lastWordEl","children","sort","b","paragWordHeight","Math","floor","fontSize","_step3","wordRects","_iterator3","querySelectorAll","_step3$value","ocrWord","_$$attr$split$map8","ocrWidth","diff","letterSpacing","_step4","spaceRects","ocrLines","lineEls","ySoFar","_iterator4","_step6","_step4$value","ocrLine","xSoFar","_iterator6","_step6$value","wordRect","_$$attr$split$map10","previousElementSibling","min","_arrayWithoutHoles","w","_iterableToArray","_nonIterableSpread","lineHeight","parentEl","initals","position","visibility","rects","Map","origRect","getBoundingClientRect","Rect","scrollX","scrollY","removeChild","fn","_iterator8","_step8","_context3","_marked","gen","_iterator9","_step9","_context4","cur","_iterator10","_step10","_context5","gen1","gen2","it1","it2","r1","r2","_context6","xmlEl","_step12","_iterator12","_step13","childCoords","_iterator13","child","boundingCoords","bounds","_step11","leftMost","Infinity","bottomMost","rightMost","topMost","_iterator11","_step11$value","max","determineBounds","abs","join","registerPlugin","start","end","walk","_context8","_ref","_ref$children","_ref$parents","parents","_ref$siblings","siblings","_callee3","sib","_context7","nextSibling","maxSize","entry","shift","template","overrides","possibleFilters","APPLY_FILTERS","replace","$0","$1","_expression$split$map2","varName","filterNames","reduce","acc","urlencode","encodeURIComponent"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see plugin.translate.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[444],{1041:function(e,t,r){function n(e){return n="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},n(e)}function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i(n.key),n)}}function i(e){var t=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,"string");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}r.d(t,{S:function(){return a}}),r(2675),r(9463),r(2259),r(5700),r(3792),r(9572),r(8130),r(9085),r(6099),r(7764),r(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}()},6735:function(e,t,r){r(2675),r(9463),r(6412),r(2259),r(8125),r(3792),r(4490),r(4782),r(4554),r(4731),r(479),r(9085),r(2811),r(3851),r(875),r(3362),r(825),r(888),r(8781),r(2953),r(5700),r(8706),r(2008),r(113),r(3418),r(2062),r(9572),r(2010),r(8130),r(6099),r(8459),r(8940),r(7495),r(7764),r(5440),r(3500);var n=r(420),o=r(1041),i=r(9696),a=(r(739),r(6034),r(4565));"undefined"!=typeof window&&window.Worker||(globalThis.Worker=class{#e;constructor(e){this.#e=new Promise((async t=>{const{Worker:r}=await import("node:worker_threads");t(new r(e))}))}addEventListener(e,t){this.#e.then((r=>r.on(e,(e=>t({data:e})))))}postMessage(e){this.#e.then((t=>t.postMessage(e)))}terminate(){this.#e.then((e=>e.terminate()))}});class s extends Error{}class c{constructor(e){this.options=e||{},this.registryUrl=this.options.registryUrl||"https://bergamot.s3.amazonaws.com/models/index.json",this.downloadTimeout="downloadTimeout"in this.options?parseInt(this.options.downloadTimeout):6e4,this.registry=this.loadModelRegistery(),this.buffers=new Map,this.pivotLanguage="pivotLanguage"in this.options?e.pivotLanguage:"en",this.models=new Map,this.onerror=this.options.onerror||(e=>console.error("WASM Translation Worker error:",e))}async loadWorker(){const e=this.options.workerUrl?new Worker(this.options.workerUrl):new Worker(new URL(r.p+r.u(474),r.b));let t=0;const n=new Map,o=(r,...o)=>new Promise(((i,a)=>{const s=++t;n.set(s,{accept:i,reject:a,callsite:{message:`${r}(${o.map((e=>String(e))).join(", ")})`,stack:(new Error).stack}}),e.postMessage({id:s,name:r,args:o})}));return e.addEventListener("message",(function({data:{id:e,result:t,error:r}}){if(!n.has(e))throw console.debug("Received message with unknown id:",arguments[0]),new Error(`BergamotTranslator received response from worker to unknown call '${e}'`);const{accept:o,reject:i,callsite:a}=n.get(e);n.delete(e),void 0!==r?i(Object.assign(new Error,r,{message:r.message+` (response to ${a.message})`,stack:r.stack?`${r.stack}\n${a.stack}`:a.stack})):o(t)})),e.addEventListener("error",this.onerror.bind(this)),await o("initialize",this.options),{worker:e,exports:new Proxy({},{get(e,t,r){if("then"!==t)return(...e)=>o(t,...e)}})}}async loadModelRegistery(){const e=await fetch(this.registryUrl,{credentials:"omit"}),t=await e.json();return Array.from(Object.entries(t),(([e,t])=>({from:e.substring(0,2),to:e.substring(2,4),files:t})))}getTranslationModel({from:e,to:t},r){const n=JSON.stringify({from:e,to:t});if(!this.buffers.has(n)){const o=this.loadTranslationModel({from:e,to:t},r);this.buffers.set(n,o),o.catch((e=>this.buffers.delete(n)))}return this.buffers.get(n)}async loadTranslationModel({from:e,to:t},r){performance.mark(`loadTranslationModule.${JSON.stringify({from:e,to:t})}`);const n=(await this.registry).filter((r=>r.from==e&&r.to==t));if(!n)throw new Error(`No model for '${e}' -> '${t}'`);const o=n[0].files,i=()=>reject(new s("abort signal")),a=new Promise(((e,t)=>{r?.signal&&r.signal.addEventListener("abort",i)})),c=Object.fromEntries(await Promise.race([Promise.all(Object.entries(o).map((async([n,o])=>{if(void 0===o||void 0===o.name)return[n,null];try{return[n,await this.fetch(o.name,o.expectedSha256Hash,r)]}catch(r){throw new Error(`Could not fetch ${o.name} for ${e}->${t} model`,{cause:r})}}))),a]));r?.signal&&r.signal.removeEventListener("abort",i),performance.measure("loadTranslationModel",`loadTranslationModule.${JSON.stringify({from:e,to:t})}`);let l=[];if(c.vocab)l=[c.vocab];else{if(!c.trgvocab||!c.srcvocab)throw new Error(`Could not identify vocab files for ${e}->${t} model among: ${Array.from(Object.keys(o)).join(" ")}`);l=[c.srcvocab,c.trgvocab]}let u={};return o.model.name.endsWith("intgemm8.bin")&&(u["gemm-precision"]="int8shiftAll"),o.qualityModel&&(u["skip-cost"]=!1),o.config&&Object.assign(u,o.config),{model:c.model,shortlist:c.lex,vocabs:l,qualityModel:c.qualityModel,config:u}}async fetch(e,t,r){const n=new AbortController,o=()=>n.abort(),i=this.downloadTimeout?setTimeout(o,this.downloadTimeout):null;try{r?.signal&&r.signal.addEventListener("abort",o);const i={credentials:"omit",signal:n.signal};t&&(i.integrity=`sha256-${this.hexToBase64(t)}`),"undefined"==typeof window&&delete i.integrity;const a=await fetch(e,i);return await a.arrayBuffer()}finally{i&&clearTimeout(i),r?.signal&&r.signal.removeEventListener("abort",o)}}hexToBase64(e){return btoa(e.match(/\w{2}/g).map((function(e){return String.fromCharCode(parseInt(e,16))})).join(""))}getModels({from:e,to:t}){const r=JSON.stringify({from:e,to:t});return this.models.has(r)||this.models.set(r,this.findModels(e,t)),this.models.get(r)}async findModels(e,t){const r=await this.registry;let n=[],o=[],i=[];if(r.forEach((r=>{r.from===e&&r.to===t?n.push(r):r.from===e&&r.to===this.pivotLanguage?o.push(r):r.to===t&&r.from===this.pivotLanguage&&i.push(r)})),n.length)return[n[0]];if(o.length&&i.length)return[o[0],i[0]];throw new Error(`No model available to translate from '${e}' to '${t}'`)}}class l{constructor(e,t){t||(t=new c(e)),this.backing=t,this.workers=[],this.workerLimit=Math.max(e?.workers||0,1),this.queue=[],this.batchSerial=0,this.batchSize=Math.max(e?.batchSize||8,1),this.onerror=e?.onerror||(e=>console.error("WASM Translation Worker error:",e))}async delete(){this.remove((()=>!0)),this.workers.forEach((({worker:e})=>e.terminate()))}notify(){setTimeout((async()=>{if(!this.queue.length)return;let e=this.workers.find((e=>e.idle));if(!e&&this.workers.length<this.workerLimit)try{const t={idle:!1};this.workers.push(t),Object.assign(t,await this.backing.loadWorker()),e=t}catch(e){this.onerror(new Error(`Could not initialise translation worker: ${e.message}`))}if(!e)return;const t=this.queue.shift();e.idle=!1;try{await this.consumeBatch(t,e.exports)}catch(e){t.requests.forEach((({reject:t})=>t(e)))}e.idle=!0,this.queue.length&&this.notify()}))}translate(e){const{from:t,to:r,priority:n}=e;return new Promise((async(o,i)=>{try{const a=JSON.stringify({from:t,to:r}),s=await this.backing.getModels(e);this.enqueue({key:a,models:s,request:e,resolve:o,reject:i,priority:n}),this.notify()}catch(e){i(e)}}))}remove(e){const t=this.queue;this.queue=[],t.forEach((t=>{t.requests.forEach((({request:r,resolve:n,reject:o})=>{e(r)?o(Object.assign(new s("removed by filter"),{request:r})):this.enqueue({key:t.key,priority:t.priority,models:t.models,request:r,resolve:n,reject:o})}))}))}enqueue({key:e,models:t,request:r,resolve:n,reject:o,priority:i}){void 0===i&&(i=0);let a=this.queue.find((t=>t.key===e&&t.priority===i&&t.requests.length<this.batchSize));a||(a={id:++this.batchSerial,key:e,priority:i,models:t,requests:[]},this.queue.push(a),this.queue.sort(((e,t)=>e.priority-t.priority))),a.requests.push({request:r,resolve:n,reject:o})}async consumeBatch(e,t){performance.mark("BergamotBatchTranslator.start"),await Promise.all(e.models.map((async({from:e,to:r})=>{if(!await t.hasTranslationModel({from:e,to:r})){const n=await this.backing.getTranslationModel({from:e,to:r});await t.loadTranslationModel({from:e,to:r},n)}})));const r=await t.translate({models:e.models.map((({from:e,to:t})=>({from:e,to:t}))),texts:e.requests.map((({request:{text:e,html:t,qualityScores:r}})=>({text:e.toString(),html:!!t,qualityScores:!!r})))});e.requests.forEach((({request:e,resolve:t,reject:n},o)=>{t({request:e,...r[o]})})),performance.measure("BergamotBatchTranslator","BergamotBatchTranslator.start")}}function u(e){return u="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},u(e)}function f(){f=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function h(e,t,r,n){var i=t&&t.prototype instanceof b?t:b,a=Object.create(i.prototype),s=new M(n||[]);return o(a,"_invoke",{value:j(e,r,s)}),a}function p(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=h;var d="suspendedStart",m="suspendedYield",y="executing",g="completed",v={};function b(){}function w(){}function k(){}var E={};l(E,a,(function(){return this}));var L=Object.getPrototypeOf,x=L&&L(L(A([])));x&&x!==r&&n.call(x,a)&&(E=x);var S=k.prototype=b.prototype=Object.create(E);function P(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function T(e,t){function r(o,i,a,s){var c=p(e[o],e,i);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==u(f)&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(f).then((function(e){l.value=e,a(l)}),(function(e){return r("throw",e,a,s)}))}s(c.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function j(t,r,n){var o=d;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===g){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var c=O(s,n);if(c){if(c===v)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===d)throw o=g,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=p(t,r,n);if("normal"===l.type){if(o=n.done?g:m,l.arg===v)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=g,n.method="throw",n.arg=l.arg)}}}function O(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,O(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=p(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function C(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function _(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function M(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function A(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(u(t)+" is not iterable")}return w.prototype=k,o(S,"constructor",{value:k,configurable:!0}),o(k,"constructor",{value:w,configurable:!0}),w.displayName=l(k,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===w||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,k):(e.__proto__=k,l(e,c,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},P(T.prototype),l(T.prototype,s,(function(){return this})),t.AsyncIterator=T,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new T(h(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},P(S),l(S,c,"Generator"),l(S,a,(function(){return this})),l(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=A,M.prototype={constructor:M,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(_),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return s.type="throw",s.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(c&&l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),_(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;_(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:A(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function h(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function p(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){h(i,n,o,a,s,"next",e)}function s(e){h(i,n,o,a,s,"throw",e)}a(void 0)}))}}function d(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,y(n.key),n)}}function m(e,t,r){return(t=y(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function y(e){var t=function(e,t){if("object"!=u(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==u(t)?t:t+""}var g,v,b,w,k,E,L={bg:"Bulgarian",ca:"Catalan",cs:"Czech",nl:"Dutch",en:"English",et:"Estonian",de:"German",fr:"French",is:"Icelandic",it:"Italian",nb:"Norwegian Bokmål",nn:"Norwegian Nynorsk",fa:"Persian",pl:"Polish",pt:"Portuguese",ru:"Russian",es:"Spanish",uk:"Ukrainian"},x=function(){return e=function e(){var t=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),m(this,"alreadyTranslated",new a.l(100)),m(this,"modelRegistry",{}),m(this,"currentlyTranslating",{}),m(this,"fromLanguages",[]),m(this,"toLanguages",[]),m(this,"active",!1),m(this,"publicPath",""),m(this,"getTranslation",function(){var e=p(f().mark((function e(r,n,o,i,a,s){var c,l,u,h,p;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.active=!0,r!=n&&r&&n){e.next=3;break}return e.abrupt("return");case 3:if(c="".concat(r).concat(n,"-").concat(o,":").concat(i),!(l=t.alreadyTranslated.entries.find((function(e){return e.index==c})))){e.next=7;break}return e.abrupt("return",l.response);case 7:if(!(c in t.currentlyTranslating)){e.next=9;break}return e.abrupt("return",t.currentlyTranslating[c].promise);case 9:if(u=null,h=null,p=new Promise((function(e,t){u=e,h=t})),t.currentlyTranslating[c]={promise:p,resolve:u,reject:h},a){e.next=16;break}return t.currentlyTranslating[c].reject("No text was provided"),e.abrupt("return",p);case 16:return t.translator.translate({to:n,from:r,text:a,html:!1,priority:s}).then((function(e){var r=e;t.currentlyTranslating[c].resolve(r.target.text)})),e.abrupt("return",p);case 18:case"end":return e.stop()}}),e)})));return function(t,r,n,o,i,a){return e.apply(this,arguments)}}());var r={code:"en",name:"English",type:"prod"};this.fromLanguages.push(r),this.toLanguages.push(r)},t=[{key:"initWorker",value:(r=p(f().mark((function e(){var t,r,n,o,i,a,s,c,u,h,p,d,m,y,g,v,b=this;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.initPromise){e.next=2;break}return e.abrupt("return",this.initPromise);case 2:return this.initPromise=new Promise((function(e,t){b._initResolve=e,b._initReject=t})),t="https://cors.archive.org/cors/mozilla-translate-models/",e.next=6,fetch(t+"registry.json").then((function(e){return e.json()}));case 6:for(r=e.sent,n=0,o=Object.values(r);n<o.length;n++)for(i=o[n],a=0,s=Object.values(i);a<s.length;a++)(c=s[a]).name=t+c.name;return this.translator=new l({registryUrl:"data:application/json,".concat(encodeURIComponent(JSON.stringify(r))),workers:2,batchSize:4,workerUrl:this.publicPath+"/translator-worker.js"}),e.next=11,this.translator.backing.registry;case 11:for(u=e.sent,h={},p=0,d=Object.values(u);p<d.length;p++)m=d[p],y=m.from,g=m.to,v=m.files,h["".concat(y).concat(g)]=v,"en"!==y&&this.fromLanguages.push({code:y,name:L[y],type:"prod"}),"en"!==g&&this.toLanguages.push({code:g,name:L[g],type:"prod"});return this._initResolve([this.modelRegistry]),e.abrupt("return",this.initPromise);case 16:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})}],t&&d(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}(),S=r(1669);function P(e){return P="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},P(e)}function T(e){return function(e){if(Array.isArray(e))return z(e)}(e)||q(e)||F(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(){j=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var o=t.placement;if(t.kind===n&&("static"===o||"prototype"===o)){var i="static"===o?e:r;this.defineClassElement(i,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],o={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,o)}),this),e.forEach((function(e){if(!_(e))return r.push(e);var t=this.decorateElement(e,o);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var i=this.decorateConstructor(r,t);return n.push.apply(n,i.finishers),i.finishers=n,i},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],o=e.decorators,i=o.length-1;i>=0;i--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,o[i])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u<l.length;u++)this.addElementPlacement(l[u],t);r.push.apply(r,l)}}return{element:e,finishers:n,extras:r}},decorateConstructor:function(e,t){for(var r=[],n=t.length-1;n>=0;n--){var o=this.fromClassDescriptor(e),i=this.toClassDescriptor((0,t[n])(o)||o);if(void 0!==i.finisher&&r.push(i.finisher),void 0!==i.elements){e=i.elements;for(var a=0;a<e.length-1;a++)for(var s=a+1;s<e.length;s++)if(e[a].key===e[s].key&&e[a].placement===e[s].placement)throw new TypeError("Duplicated element ("+e[a].key+")")}}return{elements:e,finishers:r}},fromElementDescriptor:function(e){var t={kind:e.kind,key:e.key,placement:e.placement,descriptor:e.descriptor};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),"field"===e.kind&&(t.initializer=e.initializer),t},toElementDescriptors:function(e){if(void 0!==e)return(t=e,function(e){if(Array.isArray(e))return e}(t)||q(t)||F(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(e){var t=this.toElementDescriptor(e);return this.disallowProperty(e,"finisher","An element descriptor"),this.disallowProperty(e,"extras","An element descriptor"),t}),this);var t},toElementDescriptor:function(e){var t=e.kind+"";if("method"!==t&&"field"!==t)throw new TypeError('An element descriptor\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "'+t+'"');var r=Q(e.key),n=e.placement+"";if("static"!==n&&"prototype"!==n&&"own"!==n)throw new TypeError('An element descriptor\'s .placement property must be one of "static", "prototype" or "own", but a decorator created an element descriptor with .placement "'+n+'"');var o=e.descriptor;this.disallowProperty(e,"elements","An element descriptor");var i={kind:t,key:r,placement:n,descriptor:Object.assign({},o)};return"field"!==t?this.disallowProperty(e,"initializer","A method descriptor"):(this.disallowProperty(o,"get","The property descriptor of a field descriptor"),this.disallowProperty(o,"set","The property descriptor of a field descriptor"),this.disallowProperty(o,"value","The property descriptor of a field descriptor"),i.initializer=e.initializer),i},toElementFinisherExtras:function(e){return{element:this.toElementDescriptor(e),finisher:A(e,"finisher"),extras:this.toElementDescriptors(e.extras)}},fromClassDescriptor:function(e){var t={kind:"class",elements:e.map(this.fromElementDescriptor,this)};return Object.defineProperty(t,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),t},toClassDescriptor:function(e){var t=e.kind+"";if("class"!==t)throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator created a class descriptor with .kind "'+t+'"');this.disallowProperty(e,"key","A class descriptor"),this.disallowProperty(e,"placement","A class descriptor"),this.disallowProperty(e,"descriptor","A class descriptor"),this.disallowProperty(e,"initializer","A class descriptor"),this.disallowProperty(e,"extras","A class descriptor");var r=A(e,"finisher");return{elements:this.toElementDescriptors(e.elements),finisher:r}},runClassFinishers:function(e,t){for(var r=0;r<t.length;r++){var n=(0,t[r])(e);if(void 0!==n){if("function"!=typeof n)throw new TypeError("Finishers must return a constructor.");e=n}}return e},disallowProperty:function(e,t,r){if(void 0!==e[t])throw new TypeError(r+" can't have a ."+t+" property.")}};return e}function O(e){var t,r=Q(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function C(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function _(e){return e.decorators&&e.decorators.length}function M(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function A(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function q(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function R(){return R="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=V(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},R.apply(null,arguments)}function B(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function N(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=F(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function F(e,t){if(e){if("string"==typeof e)return z(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?z(e,t):void 0}}function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function D(){D=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function u(e,t,r,n){var i=t&&t.prototype instanceof g?t:g,a=Object.create(i.prototype),s=new _(n||[]);return o(a,"_invoke",{value:T(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var h="suspendedStart",p="suspendedYield",d="executing",m="completed",y={};function g(){}function v(){}function b(){}var w={};l(w,a,(function(){return this}));var k=Object.getPrototypeOf,E=k&&k(k(M([])));E&&E!==r&&n.call(E,a)&&(w=E);var L=b.prototype=g.prototype=Object.create(w);function x(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function r(o,i,a,s){var c=f(e[o],e,i);if("throw"!==c.type){var l=c.arg,u=l.value;return u&&"object"==P(u)&&n.call(u,"__await")?t.resolve(u.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(u).then((function(e){l.value=e,a(l)}),(function(e){return r("throw",e,a,s)}))}s(c.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function T(t,r,n){var o=h;return function(i,a){if(o===d)throw Error("Generator is already running");if(o===m){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var c=j(s,n);if(c){if(c===y)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var l=f(t,r,n);if("normal"===l.type){if(o=n.done?m:p,l.arg===y)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=m,n.method="throw",n.arg=l.arg)}}}function j(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,j(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,y):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function M(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(P(t)+" is not iterable")}return v.prototype=b,o(L,"constructor",{value:b,configurable:!0}),o(b,"constructor",{value:v,configurable:!0}),v.displayName=l(b,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,l(e,c,"GeneratorFunction")),e.prototype=Object.create(L),e},t.awrap=function(e){return{__await:e}},x(S.prototype),l(S.prototype,s,(function(){return this})),t.AsyncIterator=S,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new S(u(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(L),l(L,c,"Generator"),l(L,a,(function(){return this})),l(L,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=M,_.prototype={constructor:_,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(C),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return s.type="throw",s.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(c&&l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),C(r),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;C(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:M(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),y}},t}function I(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function $(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){I(i,n,o,a,s,"next",e)}function s(e){I(i,n,o,a,s,"throw",e)}a(void 0)}))}}function G(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function W(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Q(n.key),n)}}function U(e,t,r){return t&&W(e.prototype,t),r&&W(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function H(e,t,r){return t=V(t),function(e,t){if(t&&("object"==P(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,J()?Reflect.construct(t,r||[],V(e).constructor):t.apply(e,r))}function J(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(J=function(){return!!e})()}function V(e){return V=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},V(e)}function Y(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&&Z(e,t)}function Z(e,t){return Z=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Z(e,t)}function K(e,t,r){return(t=Q(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Q(e){var t=function(e,t){if("object"!=P(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=P(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==P(t)?t:t+""}var X,ee,te,re,ne,oe,ie,ae=window.BookReader,se=function(e){function t(){var e;G(this,t);for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return K(e=H(this,t,[].concat(n)),"options",{enabled:!0,panelDisclaimerText:"Translations are in alpha"}),K(e,"translationManager",new x),K(e,"worker",void 0),K(e,"toLanguages",[]),K(e,"langFromCode","en"),K(e,"langToCode",void 0),K(e,"_panel",void 0),K(e,"getParagraphsOnPage",(function(e){return e?Array.from(e.querySelectorAll(".BRtextLayer > .BRparagraphElement")):[]})),K(e,"handleFromLangChange",function(){var t=$(D().mark((function t(r){var n;return D().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.clearAllTranslations(),n=r.detail.value,e.langFromCode=n,e.translationManager.toLanguages.some((function(e){return e.code===n}))||e.translationManager.toLanguages.push({code:n,name:L[n]}),e._panel.toLanguages=e.translationManager.toLanguages,console.log(e.langFromCode,e.langToCode),e.langFromCode!==e.langToCode&&e.translateActivePageContainerElements();case 7:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()),K(e,"handleToLangChange",function(){var t=$(D().mark((function t(r){return D().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.clearAllTranslations(),e.langToCode=r.detail.value,e.translateActivePageContainerElements();case 3:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()),e}return Y(t,e),U(t,[{key:"init",value:(o=$(D().mark((function e(){var t=this;return D().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.options.enabled){e.next=2;break}return e.abrupt("return");case 2:return this.translationManager.publicPath=this.br.options.imagesBaseURL.replace(/\/+$/,"")+"/..",this.br.on("textLayerRendered",function(){var e=$(D().mark((function e(r,n){var o,i;return D().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.pageIndex,o=n.pageContainer,t.translationManager){e.next=3;break}return e.abrupt("return");case 3:t.translationManager.active&&(i=o.$container[0],t.translateRenderedLayer(i));case 4:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}()),this.br.on("pageVisible",(function(e,r){var n=r.pageContainerEl;if(t.translationManager.active){var o,i=N(n.querySelectorAll(".BRtranslateLayer > .BRparagraphElement"));try{for(i.s();!(o=i.n()).done;){var a=o.value;a.textContent&&t.fitVisiblePage(a)}}catch(e){i.e(e)}finally{i.f()}}})),e.next=7,this.translationManager.initWorker();case 7:this._render(),this.langToCode=this.translationManager.toLanguages[0].code;case 9:case"end":return e.stop()}}),e,this)}))),function(){return o.apply(this,arguments)})},{key:"translateActivePageContainerElements",value:function(){var e,t=this.br.getActivePageContainerElements(),r=t.filter((function(e){return e.classList.contains("BRpage-visible")})),n=t.filter((function(e){return!e.classList.contains("BRpage-visible")})),o=N(r);try{for(o.s();!(e=o.n()).done;){var i=e.value;this.translateRenderedLayer(i,0)}}catch(e){o.e(e)}finally{o.f()}var a,s=N(n);try{for(s.s();!(a=s.n()).done;){var c=a.value;this.translateRenderedLayer(c,1e3)}}catch(e){s.e(e)}finally{s.f()}}},{key:"translateRenderedLayer",value:(r=$(D().mark((function e(t,r){var n,o,i,a,s=this;return D().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.br.mode!=this.br.constModeThumb){e.next=2;break}return e.abrupt("return");case 2:n=t.dataset.index,t.querySelector(".BRPageLayer.BRtranslateLayer")?o=t.querySelector(".BRPageLayer.BRtranslateLayer"):((o=document.createElement("div")).classList.add("BRPageLayer","BRtranslateLayer"),o.setAttribute("lang","".concat(this.langToCode)),t.prepend(o)),(i=t.querySelector(".BRtextLayer")).classList.add("showingTranslation"),S(o).css({width:S(i).css("width"),height:S(i).css("height"),transform:S(i).css("transform"),"pointer-events":S(i).css("pointer-events"),"z-index":3}),(a=this.getParagraphsOnPage(t)).forEach(function(){var e=$(D().mark((function e(i,c){var l,u,f,h,p,d,m,y,g;return D().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((l=t.querySelector("[data-translate-index='".concat(n,"-").concat(c,"']")))||((l=document.createElement("p")).setAttribute("data-translate-index","".concat(n,"-").concat(c)),l.className="BRparagraphElement",u=a[c],f="".concat(parseInt(S(u).css("font-size")),"px"),S(l).css({"margin-left":S(u).css("margin-left"),"margin-top":S(u).css("margin-top"),top:S(u).css("top"),height:S(u).css("height"),width:S(u).css("width"),"font-size":f}),l.addEventListener("mousedown",(function(e){e.stopPropagation(),e.stopImmediatePropagation()})),l.addEventListener("mouseup",(function(e){e.stopPropagation(),e.stopImmediatePropagation()})),l.addEventListener("dragstart",(function(e){e.preventDefault()})),o.append(l)),0===i.textContent.length){e.next=15;break}return d=parseFloat(n)+r+c,e.next=6,s.translationManager.getTranslation(s.langFromCode,s.langToCode,n,c,i.textContent,d);case 6:m=e.sent,null===(h=l.firstElementChild)||void 0===h||h.remove(),y=null===(p=a[c])||void 0===p||null===(p=p.firstChild)||void 0===p?void 0:p.firstChild,(g=document.createElement("span")).className="BRlineElement",g.textContent=m,l.appendChild(g),S(g).css({"text-indent":S(y).css("padding-left")}),t.classList.contains("BRpage-visible")&&s.fitVisiblePage(l);case 15:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}());case 9:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"clearAllTranslations",value:function(){document.querySelectorAll(".BRtranslateLayer").forEach((function(e){return e.remove()}))}},{key:"fitVisiblePage",value:function(e){var t=e.parentElement;if("none"==S(t).css("transform")){var r=e.getAttribute("data-translate-index").split("-")[0],n=document.querySelector("[data-index='".concat(r,"'] .BRtextLayer"));S(t).css({transform:n.style.transform})}for(var o=parseInt(S(e).css("font-size"));e.clientHeight<e.scrollHeight&&o>0;)o--,S(e).css({"font-size":"".concat(o,"px")});var i=e.firstElementChild.clientHeight,a=e.scrollHeight;if(i<a){var s=a/(i/o);S(e).css({"line-height":"".concat(s,"px"),overflow:"visible"})}}},{key:"_render",value:function(){var e=this;this.br.shell.menuProviders.translate={id:"translate",icon:(0,n.qy)(g||(g=B(["<img src='",'/translate.svg\' width="26"/>'])),this.br.options.imagesBaseURL),label:"Translate",component:(0,n.qy)(v||(v=B(['<br-translate-panel\n @connected="','"\n @langFromChanged="','"\n @langToChanged="','"\n .fromLanguages="','"\n .toLanguages="','"\n .disclaimerMessage="','"\n class="translate-panel"\n />'])),(function(t){e._panel=t.target,e._panel.fromLanguages=e.translationManager.fromLanguages,e._panel.toLanguages=e.translationManager.toLanguages}),this.handleFromLangChange,this.handleToLangChange,this.translationManager.fromLanguages,this.translationManager.toLanguages,this.options.panelDisclaimerText)},this.br.shell.updateMenuContents()}}]);var r,o}(o.S);null==ae||ae.registerPlugin("translate",se),X=[(0,i.EM)("br-translate-panel")],ee=n.WF,ne=j(),te=function(e){ne.initializeInstanceElements(e,ie.elements)},re=function(e){function t(){var e;G(this,t);for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return e=H(this,t,[].concat(n)),te(e),e}return Y(t,e),U(t)}(ee),oe={F:re,d:[{kind:"field",decorators:[(0,i.MZ)({type:Array})],key:"fromLanguages",value:function(){return[]}},{kind:"field",decorators:[(0,i.MZ)({type:Array})],key:"toLanguages",value:function(){return[]}},{kind:"field",decorators:[(0,i.MZ)({type:String})],key:"prevSelectedLang",value:function(){return""}},{kind:"field",decorators:[(0,i.MZ)({type:String})],key:"disclaimerMessage",value:function(){return""}},{kind:"method",key:"createRenderRoot",value:function(){return this}},{kind:"method",key:"connectedCallback",value:function(){var e,t,r,n,o;(e=re,t="connectedCallback",r=this,o=R(V(1&(n=3)?e.prototype:e),t,r),2&n&&"function"==typeof o?function(e){return o.apply(r,e)}:o)([]),this.dispatchEvent(new CustomEvent("connected"))}},{kind:"method",key:"render",value:function(){var e=this.prevSelectedLang&&(this.prevSelectedLang!==this._getSelectedLang("to")||this._getSelectedLang("from")===this._getSelectedLang("to"));return(0,n.qy)(b||(b=B(['<div class="app">\n <div class="panel panel--from">\n <label>\n From\n <select id="lang-from" name="from" class="lang-select" @change="','">\n ','\n </select>\n </label>\n </div>\n <div class="panel panel--to">\n <label>\n To\n <select id="lang-to" name="to" class="lang-select" @change="','">\n ',"\n </select>\n </label>\n ",'\n </div>\n <div class="footer" id="status"></div>\n <br/>\n <div class="disclaimer" id="disclaimerMessage"> '," </div>\n </div>"])),this._onLangFromChange,this.fromLanguages.map((function(e){return(0,n.qy)(w||(w=B(['<option value="','">',"</option>"])),e.code,e.name)})),this._onLangToChange,this.toLanguages.map((function(e){return(0,n.qy)(k||(k=B(['<option value="','">',"</option>"])),e.code,e.name)})),e?(0,n.qy)(E||(E=B(['<button class="prev-lang-btn" @click="','">\n ',"\n </button>"])),this._onPrevLangClick,this._getLangName(this.prevSelectedLang)):"",this.disclaimerMessage)}},{kind:"method",key:"_onLangFromChange",value:function(e){var t=new CustomEvent("langFromChanged",{detail:{value:e.target.value},bubbles:!0,composed:!0});this.dispatchEvent(t),this._getSelectedLang("to")!==this._getSelectedLang("from")&&(this.prevSelectedLang=this._getSelectedLang("from"))}},{kind:"method",key:"_onLangToChange",value:function(e){var t=new CustomEvent("langToChanged",{detail:{value:e.target.value},bubbles:!0,composed:!0});this.dispatchEvent(t),this._getSelectedLang("from")!==e.target.value&&(this.prevSelectedLang=this._getSelectedLang("from"))}},{kind:"method",key:"_onPrevLangClick",value:function(){var e=this.prevSelectedLang;if(e!=this._getSelectedLang("from")){this.prevSelectedLang=this._getSelectedLang("to");var t=new CustomEvent("langToChanged",{detail:{value:e},bubbles:!0,composed:!0});this.dispatchEvent(t);var r=this.querySelector("#lang-to");r&&(r.value=e)}else console.log("_onPrevLangClick: will not change since prevLang is the same as the current 'To' language code")}},{kind:"method",key:"_getSelectedLang",value:function(e){var t=this.querySelector("#lang-".concat(e));return t?t.value:""}},{kind:"method",key:"_getLangName",value:function(e){var t=[].concat(T(this.fromLanguages),T(this.toLanguages)).find((function(t){return t.code===e}));return t?t.name:""}}]},ie=ne.decorateClass(function(e){for(var t=[],r=function(e){return"method"===e.kind&&e.key===i.key&&e.placement===i.placement},n=0;n<e.length;n++){var o,i=e[n];if("method"===i.kind&&(o=t.find(r)))if(M(i.descriptor)||M(o.descriptor)){if(_(i)||_(o))throw new ReferenceError("Duplicated methods ("+i.key+") can't be decorated.");o.descriptor=i.descriptor}else{if(_(i)){if(_(o))throw new ReferenceError("Decorators can't be placed on different accessors with for the same property ("+i.key+").");o.decorators=i.decorators}C(i,o)}else t.push(i)}return t}(oe.d.map(O)),X),ne.initializeClassElements(oe.F,ie.elements),ne.runClassFinishers(oe.F,ie.finishers)},4565:function(e,t,r){function n(e){return n="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},n(e)}function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i(n.key),n)}}function i(e){var t=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,"string");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}r.d(t,{l:function(){return a}}),r(2675),r(9463),r(2259),r(5700),r(3792),r(9572),r(8130),r(6099),r(7764),r(2953);var a=function(){return e=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.maxSize=t,this.entries=[]},(t=[{key:"add",value:function(e){this.entries.length>=this.maxSize&&this.entries.shift(),this.entries.push(e)}}])&&o(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()}},function(e){e(e.s=6735)}]);
|
|
3
|
+
//# sourceMappingURL=plugin.translate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|