@internetarchive/bookreader 5.0.0-11 → 5.0.0-111

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.
Files changed (381) hide show
  1. package/BookReader/474.js +2 -0
  2. package/BookReader/474.js.map +1 -0
  3. package/BookReader/BookReader.css +649 -1225
  4. package/BookReader/BookReader.js +1 -1
  5. package/BookReader/BookReader.js.LICENSE.txt +20 -20
  6. package/BookReader/BookReader.js.map +1 -1
  7. package/BookReader/bergamot-translator-worker.js +2966 -0
  8. package/BookReader/bergamot-translator-worker.wasm +0 -0
  9. package/BookReader/hypothesis/LICENSE +50 -0
  10. package/BookReader/hypothesis/README.md +55 -0
  11. package/BookReader/hypothesis/build/boot.js +1 -0
  12. package/BookReader/hypothesis/build/manifest.json +20 -0
  13. package/BookReader/hypothesis/build/scripts/annotator.bundle.js +184 -0
  14. package/BookReader/hypothesis/build/scripts/annotator.bundle.js.map +1 -0
  15. package/BookReader/hypothesis/build/scripts/sidebar.bundle.js +798 -0
  16. package/BookReader/hypothesis/build/scripts/sidebar.bundle.js.map +1 -0
  17. package/BookReader/hypothesis/build/scripts/ui-playground.bundle.js +711 -0
  18. package/BookReader/hypothesis/build/scripts/ui-playground.bundle.js.map +1 -0
  19. package/BookReader/hypothesis/build/styles/annotator.css +2235 -0
  20. package/BookReader/hypothesis/build/styles/annotator.css.map +1 -0
  21. package/BookReader/hypothesis/build/styles/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  22. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  23. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  24. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  25. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  26. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-Bold.woff2 +0 -0
  27. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  28. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-Italic.woff2 +0 -0
  29. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Main-Regular.woff2 +0 -0
  30. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  31. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Math-Italic.woff2 +0 -0
  32. package/BookReader/hypothesis/build/styles/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  33. package/BookReader/hypothesis/build/styles/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  34. package/BookReader/hypothesis/build/styles/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  35. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Script-Regular.woff2 +0 -0
  36. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  37. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  38. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  39. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  40. package/BookReader/hypothesis/build/styles/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  41. package/BookReader/hypothesis/build/styles/highlights.css +2 -0
  42. package/BookReader/hypothesis/build/styles/highlights.css.map +1 -0
  43. package/BookReader/hypothesis/build/styles/katex.min.css +2 -0
  44. package/BookReader/hypothesis/build/styles/katex.min.css.map +1 -0
  45. package/BookReader/hypothesis/build/styles/pdfjs-overrides.css +2 -0
  46. package/BookReader/hypothesis/build/styles/pdfjs-overrides.css.map +1 -0
  47. package/BookReader/hypothesis/build/styles/sidebar.css +2731 -0
  48. package/BookReader/hypothesis/build/styles/sidebar.css.map +1 -0
  49. package/BookReader/hypothesis/build/styles/ui-playground.css +2659 -0
  50. package/BookReader/hypothesis/build/styles/ui-playground.css.map +1 -0
  51. package/BookReader/hypothesis/package.json +126 -0
  52. package/BookReader/ia-bookreader-bundle.js +1904 -0
  53. package/BookReader/ia-bookreader-bundle.js.LICENSE.txt +19 -0
  54. package/BookReader/ia-bookreader-bundle.js.map +1 -0
  55. package/BookReader/icons/1up.svg +1 -1
  56. package/BookReader/icons/2up.svg +1 -1
  57. package/BookReader/icons/advance.svg +1 -1
  58. package/BookReader/icons/chevron-right.svg +1 -1
  59. package/BookReader/icons/close-circle-dark.svg +1 -1
  60. package/BookReader/icons/close-circle.svg +1 -1
  61. package/BookReader/icons/fullscreen.svg +1 -1
  62. package/BookReader/icons/fullscreen_exit.svg +1 -1
  63. package/BookReader/icons/hamburger.svg +1 -1
  64. package/BookReader/icons/left-arrow.svg +1 -1
  65. package/BookReader/icons/magnify-minus.svg +1 -1
  66. package/BookReader/icons/magnify-plus.svg +1 -1
  67. package/BookReader/icons/magnify.svg +1 -1
  68. package/BookReader/icons/pause.svg +1 -1
  69. package/BookReader/icons/play.svg +1 -1
  70. package/BookReader/icons/playback-speed.svg +1 -1
  71. package/BookReader/icons/read-aloud.svg +1 -1
  72. package/BookReader/icons/review.svg +1 -1
  73. package/BookReader/icons/slider-toggle.svg +1 -0
  74. package/BookReader/icons/thumbnails.svg +1 -1
  75. package/BookReader/icons/voice.svg +1 -0
  76. package/BookReader/icons/volume-full.svg +1 -1
  77. package/BookReader/images/BRicons.svg +3 -3
  78. package/BookReader/images/books_graphic.svg +1 -1
  79. package/BookReader/images/hypothesis.ico +0 -0
  80. package/BookReader/images/icon_book.svg +1 -1
  81. package/BookReader/images/icon_bookmark.svg +1 -1
  82. package/BookReader/images/icon_experiment.svg +1 -0
  83. package/BookReader/images/icon_gear.svg +1 -1
  84. package/BookReader/images/icon_hamburger.svg +1 -1
  85. package/BookReader/images/icon_home.svg +1 -1
  86. package/BookReader/images/icon_info.svg +1 -1
  87. package/BookReader/images/icon_one_page.svg +1 -1
  88. package/BookReader/images/icon_pause.svg +1 -1
  89. package/BookReader/images/icon_play.svg +1 -1
  90. package/BookReader/images/icon_playback-rate.svg +1 -1
  91. package/BookReader/images/icon_search_button.svg +1 -1
  92. package/BookReader/images/icon_share.svg +1 -1
  93. package/BookReader/images/icon_skip-ahead.svg +1 -1
  94. package/BookReader/images/icon_skip-back.svg +1 -1
  95. package/BookReader/images/icon_speaker.svg +1 -1
  96. package/BookReader/images/icon_speaker_open.svg +1 -1
  97. package/BookReader/images/icon_thumbnails.svg +1 -1
  98. package/BookReader/images/icon_toc.svg +1 -1
  99. package/BookReader/images/icon_two_pages.svg +1 -1
  100. package/BookReader/images/marker_chap-off.svg +1 -1
  101. package/BookReader/images/marker_chap-on.svg +1 -1
  102. package/BookReader/images/marker_srch-on.svg +1 -1
  103. package/BookReader/images/translate.svg +1 -0
  104. package/BookReader/images/unviewable_page.png +0 -0
  105. package/BookReader/jquery-3.js +2 -0
  106. package/BookReader/jquery-3.js.LICENSE.txt +24 -0
  107. package/BookReader/plugins/plugin.archive_analytics.js +1 -1
  108. package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
  109. package/BookReader/plugins/plugin.autoplay.js +1 -1
  110. package/BookReader/plugins/plugin.autoplay.js.map +1 -1
  111. package/BookReader/plugins/plugin.chapters.js +22 -1
  112. package/BookReader/plugins/plugin.chapters.js.LICENSE.txt +1 -0
  113. package/BookReader/plugins/plugin.chapters.js.map +1 -1
  114. package/BookReader/plugins/plugin.experiments.js +3 -0
  115. package/BookReader/plugins/plugin.experiments.js.LICENSE.txt +1 -0
  116. package/BookReader/plugins/plugin.experiments.js.map +1 -0
  117. package/BookReader/plugins/plugin.iframe.js +1 -1
  118. package/BookReader/plugins/plugin.iframe.js.map +1 -1
  119. package/BookReader/plugins/plugin.iiif.js +2 -0
  120. package/BookReader/plugins/plugin.iiif.js.map +1 -0
  121. package/BookReader/plugins/plugin.resume.js +1 -1
  122. package/BookReader/plugins/plugin.resume.js.map +1 -1
  123. package/BookReader/plugins/plugin.search.js +2 -1
  124. package/BookReader/plugins/plugin.search.js.LICENSE.txt +1 -0
  125. package/BookReader/plugins/plugin.search.js.map +1 -1
  126. package/BookReader/plugins/plugin.text_selection.js +24 -1
  127. package/BookReader/plugins/plugin.text_selection.js.LICENSE.txt +1 -0
  128. package/BookReader/plugins/plugin.text_selection.js.map +1 -1
  129. package/BookReader/plugins/plugin.translate.js +159 -0
  130. package/BookReader/plugins/plugin.translate.js.LICENSE.txt +1 -0
  131. package/BookReader/plugins/plugin.translate.js.map +1 -0
  132. package/BookReader/plugins/plugin.tts.js +1 -1
  133. package/BookReader/plugins/plugin.tts.js.LICENSE.txt +2 -0
  134. package/BookReader/plugins/plugin.tts.js.map +1 -1
  135. package/BookReader/plugins/plugin.url.js +2 -1
  136. package/BookReader/plugins/plugin.url.js.LICENSE.txt +1 -0
  137. package/BookReader/plugins/plugin.url.js.map +1 -1
  138. package/BookReader/plugins/plugin.vendor-fullscreen.js +1 -1
  139. package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
  140. package/BookReader/plugins/translator-worker.js +2 -0
  141. package/BookReader/plugins/translator-worker.js.map +1 -0
  142. package/BookReader/silence.mp3 +0 -0
  143. package/BookReader/translator-worker.js +475 -0
  144. package/BookReader/webcomponents-bundle.js +3 -0
  145. package/BookReader/webcomponents-bundle.js.LICENSE.txt +9 -0
  146. package/BookReader/webcomponents-bundle.js.map +1 -0
  147. package/README.md +14 -3
  148. package/jsconfig.json +19 -0
  149. package/package.json +93 -70
  150. package/src/BookReader/BookModel.js +92 -46
  151. package/src/BookReader/DragScrollable.js +233 -0
  152. package/src/BookReader/ImageCache.js +49 -16
  153. package/src/BookReader/Mode1Up.js +66 -365
  154. package/src/BookReader/Mode1UpLit.js +392 -0
  155. package/src/BookReader/Mode2Up.js +87 -1315
  156. package/src/BookReader/Mode2UpLit.js +786 -0
  157. package/src/BookReader/ModeAbstract.js +43 -0
  158. package/src/BookReader/ModeCoordinateSpace.js +29 -0
  159. package/src/BookReader/ModeSmoothZoom.js +312 -0
  160. package/src/BookReader/ModeThumb.js +29 -15
  161. package/src/BookReader/Navbar/Navbar.js +201 -76
  162. package/src/BookReader/PageContainer.js +120 -23
  163. package/src/BookReader/ReduceSet.js +2 -2
  164. package/src/BookReader/Toolbar/Toolbar.js +18 -40
  165. package/src/BookReader/events.js +3 -3
  166. package/src/BookReader/options.js +94 -17
  167. package/src/BookReader/utils/HTMLDimensionsCacher.js +44 -0
  168. package/src/BookReader/utils/ScrollClassAdder.js +31 -0
  169. package/src/BookReader/utils/SelectionObserver.js +53 -0
  170. package/src/BookReader/utils/classes.js +1 -1
  171. package/src/BookReader/utils.js +136 -12
  172. package/src/BookReader.js +695 -1228
  173. package/src/BookReaderPlugin.js +52 -0
  174. package/src/assets/icons/magnify-minus.svg +3 -7
  175. package/src/assets/icons/magnify-plus.svg +3 -7
  176. package/src/assets/icons/slider-toggle.svg +1 -0
  177. package/src/assets/icons/voice.svg +1 -0
  178. package/src/assets/images/hypothesis.ico +0 -0
  179. package/src/assets/images/icon_experiment.svg +1 -0
  180. package/src/assets/images/translate.svg +1 -0
  181. package/src/assets/images/unviewable_page.png +0 -0
  182. package/src/assets/silence.mp3 +0 -0
  183. package/src/css/BookReader.scss +1 -5
  184. package/src/css/_BRBookmarks.scss +1 -1
  185. package/src/css/_BRComponent.scss +1 -1
  186. package/src/css/_BRicon.scss +8 -2
  187. package/src/css/_BRmain.scss +16 -3
  188. package/src/css/_BRnav.scss +74 -70
  189. package/src/css/_BRpages.scss +171 -42
  190. package/src/css/_BRsearch.scss +69 -30
  191. package/src/css/_BRtoolbar.scss +5 -5
  192. package/src/css/_TextSelection.scss +188 -24
  193. package/src/css/_colorbox.scss +2 -2
  194. package/src/css/_controls.scss +24 -7
  195. package/src/css/_icons.scss +8 -1
  196. package/src/{BookNavigator/assets → css}/button-base.js +2 -2
  197. package/src/css/icon_checkmark.js +9 -0
  198. package/src/css/sharedStyles.js +15 -0
  199. package/src/ia-bookreader/downloads/downloads-provider.js +81 -0
  200. package/src/{BookNavigator → ia-bookreader}/downloads/downloads.js +25 -5
  201. package/src/ia-bookreader/ia-bookreader.js +666 -0
  202. package/src/ia-bookreader/sharing.js +27 -0
  203. package/src/ia-bookreader/viewable-files.js +98 -0
  204. package/src/{BookNavigator → ia-bookreader}/visual-adjustments/visual-adjustments-provider.js +17 -17
  205. package/src/{BookNavigator → ia-bookreader}/visual-adjustments/visual-adjustments.js +75 -67
  206. package/src/{BookNavigator → plugins}/bookmarks/bookmark-button.js +4 -3
  207. package/src/{BookNavigator/assets → plugins/bookmarks}/bookmark-colors.js +1 -1
  208. package/src/{BookNavigator → plugins}/bookmarks/bookmark-edit.js +43 -31
  209. package/src/{BookNavigator → plugins}/bookmarks/bookmarks-list.js +48 -49
  210. package/src/{BookNavigator → plugins}/bookmarks/bookmarks-loginCTA.js +3 -3
  211. package/src/plugins/bookmarks/bookmarks-provider.js +63 -0
  212. package/src/{BookNavigator → plugins/bookmarks}/delete-modal-actions.js +1 -1
  213. package/src/{BookNavigator → plugins}/bookmarks/ia-bookmarks.js +117 -68
  214. package/src/plugins/plugin.archive_analytics.js +84 -78
  215. package/src/plugins/plugin.autoplay.js +99 -104
  216. package/src/plugins/plugin.chapters.js +319 -205
  217. package/src/plugins/plugin.experiments.js +339 -0
  218. package/src/plugins/plugin.iframe.js +1 -1
  219. package/src/plugins/plugin.iiif.js +141 -0
  220. package/src/plugins/plugin.resume.js +54 -51
  221. package/src/plugins/plugin.text_selection.js +539 -219
  222. package/src/plugins/plugin.vendor-fullscreen.js +5 -5
  223. package/src/plugins/search/plugin.search.js +374 -392
  224. package/src/{BookNavigator → plugins}/search/search-provider.js +59 -27
  225. package/src/{BookNavigator → plugins}/search/search-results.js +105 -76
  226. package/src/plugins/search/utils.js +50 -0
  227. package/src/plugins/search/view.js +50 -68
  228. package/src/plugins/translate/TranslationManager.js +164 -0
  229. package/src/plugins/translate/plugin.translate.js +512 -0
  230. package/src/plugins/tts/AbstractTTSEngine.js +78 -49
  231. package/src/plugins/tts/FestivalTTSEngine.js +20 -30
  232. package/src/plugins/tts/PageChunk.js +33 -21
  233. package/src/plugins/tts/PageChunkIterator.js +11 -17
  234. package/src/plugins/tts/WebTTSEngine.js +131 -91
  235. package/src/plugins/tts/plugin.tts.js +345 -350
  236. package/src/plugins/tts/utils.js +77 -49
  237. package/src/plugins/url/UrlPlugin.js +211 -0
  238. package/src/plugins/{plugin.url.js → url/plugin.url.js} +105 -20
  239. package/src/util/TextSelectionManager.js +532 -0
  240. package/src/util/browserSniffing.js +33 -1
  241. package/src/util/cache.js +20 -0
  242. package/src/util/docCookies.js +21 -2
  243. package/src/util/lit.js +15 -0
  244. package/src/util/strings.js +1 -0
  245. package/.babelrc +0 -12
  246. package/.dependabot/config.yml +0 -6
  247. package/.eslintrc.js +0 -50
  248. package/.gitattributes +0 -2
  249. package/.github/ISSUE_TEMPLATE/bug.md +0 -32
  250. package/.github/ISSUE_TEMPLATE/feature-request.md +0 -30
  251. package/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -15
  252. package/.github/workflows/node.js.yml +0 -37
  253. package/.github/workflows/npm-publish.yml +0 -47
  254. package/.testcaferc.json +0 -5
  255. package/BookReader/bookreader-component-bundle.js +0 -1450
  256. package/BookReader/bookreader-component-bundle.js.LICENSE.txt +0 -38
  257. package/BookReader/bookreader-component-bundle.js.map +0 -1
  258. package/BookReader/jquery-1.10.1.js +0 -2
  259. package/BookReader/jquery-1.10.1.js.LICENSE.txt +0 -24
  260. package/BookReader/plugins/plugin.menu_toggle.js +0 -2
  261. package/BookReader/plugins/plugin.menu_toggle.js.map +0 -1
  262. package/BookReader/plugins/plugin.mobile_nav.js +0 -2
  263. package/BookReader/plugins/plugin.mobile_nav.js.map +0 -1
  264. package/BookReaderDemo/BookReaderDemo.css +0 -41
  265. package/BookReaderDemo/BookReaderJSAdvanced.js +0 -115
  266. package/BookReaderDemo/BookReaderJSAutoplay.js +0 -56
  267. package/BookReaderDemo/BookReaderJSSimple.js +0 -55
  268. package/BookReaderDemo/IIIFBookReader.js +0 -207
  269. package/BookReaderDemo/assets/v5/Bookreader-logo-cool-grad.svg +0 -1
  270. package/BookReaderDemo/assets/v5/Bookreader-logo-flat.svg +0 -1
  271. package/BookReaderDemo/assets/v5/Bookreader-logo-hex-cool-grad.png +0 -0
  272. package/BookReaderDemo/assets/v5/Bookreader-logo-hex-flat.png +0 -0
  273. package/BookReaderDemo/assets/v5/Bookreader-logo-lines.png +0 -0
  274. package/BookReaderDemo/assets/v5/Bookreader-logo-lines.svg +0 -1
  275. package/BookReaderDemo/assets/v5/Bookreader-logo-warm.svg +0 -1
  276. package/BookReaderDemo/assets/v5/bookreader-logo-renders@1x.png +0 -0
  277. package/BookReaderDemo/assets/v5/bookreader-logo-renders@2x.png +0 -0
  278. package/BookReaderDemo/assets/v5/bookreader-v5-screenshot.png +0 -0
  279. package/BookReaderDemo/bookreader-template-bundle.js +0 -7178
  280. package/BookReaderDemo/demo-advanced.html +0 -33
  281. package/BookReaderDemo/demo-autoplay.html +0 -38
  282. package/BookReaderDemo/demo-embed-iframe-src.html +0 -84
  283. package/BookReaderDemo/demo-embed.html +0 -26
  284. package/BookReaderDemo/demo-fullscreen-mobile.html +0 -36
  285. package/BookReaderDemo/demo-fullscreen.html +0 -33
  286. package/BookReaderDemo/demo-iiif.html +0 -34
  287. package/BookReaderDemo/demo-iiif.js +0 -26
  288. package/BookReaderDemo/demo-internetarchive.html +0 -74
  289. package/BookReaderDemo/demo-multiple.html +0 -43
  290. package/BookReaderDemo/demo-plugin-menu-toggle.html +0 -34
  291. package/BookReaderDemo/demo-preview-pages.html +0 -1092
  292. package/BookReaderDemo/demo-simple.html +0 -34
  293. package/BookReaderDemo/demo-vendor-fullscreen.html +0 -36
  294. package/BookReaderDemo/immersion-1up.html +0 -64
  295. package/BookReaderDemo/immersion-mode.html +0 -35
  296. package/BookReaderDemo/toggle_controls.html +0 -53
  297. package/BookReaderDemo/view_mode.html +0 -39
  298. package/BookReaderDemo/viewmode-cycle.html +0 -41
  299. package/CHANGELOG.md +0 -495
  300. package/CONTRIBUTING.md +0 -7
  301. package/codecov.yml +0 -17
  302. package/index.html +0 -31
  303. package/karma.conf.js +0 -23
  304. package/screenshot.png +0 -0
  305. package/scripts/postversion.js +0 -10
  306. package/scripts/preversion.js +0 -14
  307. package/scripts/version.js +0 -26
  308. package/src/BookNavigator/BookModel.js +0 -14
  309. package/src/BookNavigator/BookNavigator.js +0 -446
  310. package/src/BookNavigator/assets/book-loader.js +0 -27
  311. package/src/BookNavigator/assets/icon_checkmark.js +0 -6
  312. package/src/BookNavigator/assets/icon_close.js +0 -3
  313. package/src/BookNavigator/bookmarks/bookmarks-provider.js +0 -53
  314. package/src/BookNavigator/br-fullscreen-mgr.js +0 -83
  315. package/src/BookNavigator/downloads/downloads-provider.js +0 -66
  316. package/src/BookNavigator/search/a-search-result.js +0 -55
  317. package/src/BookReader/DebugConsole.js +0 -54
  318. package/src/BookReaderComponent/BookReaderComponent.js +0 -112
  319. package/src/ItemNavigator/ItemNavigator.js +0 -376
  320. package/src/ItemNavigator/providers/sharing.js +0 -29
  321. package/src/css/_MobileNav.scss +0 -194
  322. package/src/dragscrollable-br.js +0 -261
  323. package/src/plugins/menu_toggle/plugin.menu_toggle.js +0 -324
  324. package/src/plugins/plugin.mobile_nav.js +0 -287
  325. package/tests/BookReader/BookModel.test.js +0 -312
  326. package/tests/BookReader/BookReaderPublicFunctions.test.js +0 -171
  327. package/tests/BookReader/DebugConsole.test.js +0 -25
  328. package/tests/BookReader/ImageCache.test.js +0 -150
  329. package/tests/BookReader/Mode1Up.test.js +0 -164
  330. package/tests/BookReader/Mode2Up.test.js +0 -247
  331. package/tests/BookReader/Navbar/Navbar.test.js +0 -169
  332. package/tests/BookReader/PageContainer.test.js +0 -115
  333. package/tests/BookReader/ReduceSet.test.js +0 -38
  334. package/tests/BookReader/Toolbar/Toolbar.test.js +0 -26
  335. package/tests/BookReader/utils/classes.test.js +0 -88
  336. package/tests/BookReader/utils.test.js +0 -109
  337. package/tests/BookReader.options.test.js +0 -39
  338. package/tests/BookReader.test.js +0 -301
  339. package/tests/e2e/README.md +0 -75
  340. package/tests/e2e/autoplay.test.js +0 -13
  341. package/tests/e2e/base.test.js +0 -35
  342. package/tests/e2e/helpers/base.js +0 -263
  343. package/tests/e2e/helpers/debug.js +0 -13
  344. package/tests/e2e/helpers/desktopSearch.js +0 -72
  345. package/tests/e2e/helpers/mobileSearch.js +0 -85
  346. package/tests/e2e/helpers/mockSearch.js +0 -93
  347. package/tests/e2e/helpers/rightToLeft.js +0 -29
  348. package/tests/e2e/ia-production/ia-prod-base.js +0 -17
  349. package/tests/e2e/models/BookReader.js +0 -11
  350. package/tests/e2e/models/Navigation.js +0 -56
  351. package/tests/e2e/rightToLeft.test.js +0 -20
  352. package/tests/e2e/viewmode.test.js +0 -37
  353. package/tests/karma/BookNavigator/book-navigator.test.js +0 -132
  354. package/tests/karma/BookNavigator/bookmarks/bookmark-edit.test.js +0 -133
  355. package/tests/karma/BookNavigator/bookmarks/bookmarks-list.test.js +0 -222
  356. package/tests/karma/BookNavigator/search/search-provider.test.js +0 -23
  357. package/tests/karma/BookNavigator/search/search-results.test.js +0 -240
  358. package/tests/karma/BookNavigator/visual-adjustments.test.js +0 -201
  359. package/tests/plugins/menu_toggle/plugin.menu_toggle.test.js +0 -68
  360. package/tests/plugins/plugin.archive_analytics.test.js +0 -23
  361. package/tests/plugins/plugin.autoplay.test.js +0 -52
  362. package/tests/plugins/plugin.chapters.test.js +0 -130
  363. package/tests/plugins/plugin.iframe.test.js +0 -42
  364. package/tests/plugins/plugin.mobile_nav.test.js +0 -66
  365. package/tests/plugins/plugin.resume.test.js +0 -98
  366. package/tests/plugins/plugin.text_selection.test.js +0 -203
  367. package/tests/plugins/plugin.url.test.js +0 -129
  368. package/tests/plugins/plugin.vendor-fullscreen.test.js +0 -65
  369. package/tests/plugins/search/plugin.search.test.js +0 -173
  370. package/tests/plugins/search/plugin.search.view.test.js +0 -106
  371. package/tests/plugins/tts/AbstractTTSEngine.test.js +0 -153
  372. package/tests/plugins/tts/FestivalTTSEngine.test.js +0 -59
  373. package/tests/plugins/tts/PageChunk.test.js +0 -57
  374. package/tests/plugins/tts/PageChunkIterator.test.js +0 -179
  375. package/tests/plugins/tts/WebTTSEngine.test.js +0 -126
  376. package/tests/plugins/tts/utils.test.js +0 -133
  377. package/tests/util/browserSniffing.test.js +0 -56
  378. package/tests/util/docCookies.test.js +0 -15
  379. package/tests/util/strings.test.js +0 -63
  380. package/tests/utils.js +0 -42
  381. package/webpack.config.js +0 -86
@@ -0,0 +1,159 @@
1
+ /*! For license information please see plugin.translate.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[444],{8248:function(e,t,n){var r,o=n(5215),i=n(420),a=n(9696);!function(e){e.processing="processing",e.complete="complete"}(r||(r={}));let s=class extends i.WF{constructor(){super(...arguments),this.mode="processing"}render(){return i.qy`
3
+ <div class="${this.mode}">
4
+ <svg
5
+ viewBox="0 0 120 120"
6
+ preserveAspectRatio="none"
7
+ version="1.1"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ xmlns:xlink="http://www.w3.org/1999/xlink"
10
+ aria-labelledby="indicatorTitle indicatorDescription"
11
+ >
12
+ <title id="indicatorTitle">Activity Indicator</title>
13
+ <desc id="indicatorDescription">
14
+ A rotating activity indicator with three dots in the middle.
15
+ </desc>
16
+ <g
17
+ id="icons/check-ring---squared"
18
+ stroke="none"
19
+ stroke-width="1"
20
+ fill="none"
21
+ fill-rule="evenodd"
22
+ >
23
+ <path
24
+ id="completed-ring"
25
+ class="loaded-indicator"
26
+ d="M60,10 C70.5816709,10 80.3955961,13.2871104 88.4763646,18.8959201 L78.3502633,29.0214223 C72.9767592,25.8315427 66.7022695,24 60,24 C40.117749,24 24,40.117749 24,60 C24,79.882251 40.117749,96 60,96 C79.882251,96 96,79.882251 96,60 L95.995,59.46 L108.327675,47.128668 C109.350926,50.9806166 109.925886,55.015198 109.993301,59.1731586 L110,60 C110,87.6142375 87.6142375,110 60,110 C32.3857625,110 10,87.6142375 10,60 C10,32.3857625 32.3857625,10 60,10 Z"
27
+ ></path>
28
+ <polygon
29
+ id="check"
30
+ class="loaded-indicator"
31
+ transform="translate(75.000000, 41.500000) rotate(44.000000) translate(-75.000000, -41.500000) "
32
+ points="96 85 54 85 54 65 76 64.999 76 -2 96 -2"
33
+ ></polygon>
34
+ <path
35
+ id="activity-ring"
36
+ class="activity-indicator"
37
+ d="M60,10 C69.8019971,10 78.9452178,12.8205573 86.6623125,17.6943223 L76.4086287,27.9484118 C71.4880919,25.4243078 65.9103784,24 60,24 C40.117749,24 24,40.117749 24,60 C24,79.882251 40.117749,96 60,96 C79.882251,96 96,79.882251 96,60 C96,53.3014663 94.1704984,47.0302355 90.9839104,41.6587228 L101.110332,31.5326452 C106.715332,39.6116982 110,49.4222615 110,60 C110,87.6142375 87.6142375,110 60,110 C32.3857625,110 10,87.6142375 10,60 C10,32.3857625 32.3857625,10 60,10 Z"
38
+ ></path>
39
+ <g
40
+ id="activity-dots"
41
+ class="activity-indicator"
42
+ transform="translate(40.000000, 55.000000)"
43
+ >
44
+ <circle id="left-dot" cx="5" cy="5" r="5"></circle>
45
+ <circle id="middle-dot" cx="20" cy="5" r="5"></circle>
46
+ <circle id="right-dot" cx="35" cy="5" r="5"></circle>
47
+ </g>
48
+ </g>
49
+ </svg>
50
+ </div>
51
+ `}static get styles(){const e=i.AH`var(--activityIndicatorCheckmarkColor, #31A481)`,t=i.AH`var(--activityIndicatorCompletedRingColor, #31A481)`,n=i.AH`var(--activityIndicatorLoadingRingColor, #333333)`,r=i.AH`var(--activityIndicatorLoadingDotColor, #333333)`;return i.AH`
52
+ #completed-ring {
53
+ fill: ${t};
54
+ }
55
+
56
+ #check {
57
+ fill: ${e};
58
+ }
59
+
60
+ #activity-ring {
61
+ fill: ${n};
62
+ }
63
+
64
+ #activity-dots {
65
+ fill: ${r};
66
+ }
67
+
68
+ .activity-indicator {
69
+ opacity: 0;
70
+ transition: opacity 0.25s ease-out;
71
+ }
72
+
73
+ .processing .activity-indicator {
74
+ opacity: 1;
75
+ }
76
+
77
+ .loaded-indicator {
78
+ opacity: 1;
79
+ transition: opacity 0.25s ease-out;
80
+ }
81
+
82
+ .processing .loaded-indicator {
83
+ opacity: 0;
84
+ }
85
+
86
+ .image {
87
+ border: 1px solid red;
88
+ display: inline-block;
89
+ }
90
+
91
+ .processing #activity-ring {
92
+ animation: rotate 1.3s infinite linear;
93
+ transform-origin: 50px 50px;
94
+ transform-box: fill-box;
95
+ }
96
+
97
+ .processing #left-dot {
98
+ opacity: 0;
99
+ animation: dot 1.3s infinite;
100
+ animation-delay: 0.2s;
101
+ }
102
+
103
+ .processing #middle-dot {
104
+ opacity: 0;
105
+ animation: dot 1.3s infinite;
106
+ animation-delay: 0.4s;
107
+ }
108
+
109
+ .processing #right-dot {
110
+ opacity: 0;
111
+ animation: dot 1.3s infinite;
112
+ animation-delay: 0.6s;
113
+ }
114
+
115
+ @keyframes rotate {
116
+ 0% {
117
+ transform: rotate(-360deg);
118
+ }
119
+ 100% {
120
+ /* This frame is supposed to be inferred, but Safari doesn't rotate it unless we're explicit */
121
+ transform: rotate(0deg);
122
+ }
123
+ }
124
+
125
+ @keyframes dot {
126
+ 0% {
127
+ opacity: 0;
128
+ }
129
+ 25% {
130
+ opacity: 1;
131
+ }
132
+ 100% {
133
+ opacity: 0;
134
+ }
135
+ }
136
+ `}};(0,o.Cg)([(0,a.MZ)({type:String})],s.prototype,"mode",void 0),s=(0,o.Cg)([(0,a.EM)("ia-activity-indicator")],s)},90:function(e,t,n){var r=n(420),o=r.qy`
137
+ <svg
138
+ viewBox="0 0 100 100"
139
+ xmlns="http://www.w3.org/2000/svg"
140
+ >
141
+ <g class="fill-color">
142
+ <path d="M70.6784759,10 L70.6784759,21.3240186 C64.5020053,21.66334 58.9104278,22.5826126 53.9037433,24.0818363 C48.8970588,25.5810601 44.8495989,27.4085163 41.7613636,29.5642049 C38.6731283,31.7198935 35.9982175,34.0552229 33.736631,36.5701929 C31.4750446,39.085163 29.8217469,41.5657574 28.776738,44.011976 C27.7317291,46.4581947 26.9173351,48.6848525 26.3335561,50.6919494 C25.7497772,52.6990464 25.4088681,54.3324462 25.3108289,55.592149 L25.2372995,57.4085163 C29.0296346,54.1661122 33.1751337,51.5524507 37.6737968,49.5675316 C42.1724599,47.5826126 46.2934492,46.3118208 50.0367647,45.7551564 C53.7800802,45.1984919 57.2571301,44.8713684 60.4679144,44.7737858 C63.6786988,44.6762031 66.1831551,44.7726769 67.9812834,45.0632069 L70.6784759,45.499002 L70.6784759,57.4051896 L100,33.3765802 L70.6784759,10 Z M76.4438503,62.4883566 L82.8609626,57.1157685 C82.9099822,57.0669772 82.9946524,57.0303837 83.1149733,57.005988 C83.2352941,56.9815924 83.4536542,56.9571967 83.7700535,56.9328011 C84.0864528,56.9084054 84.3905971,56.9449989 84.6824866,57.0425815 C84.9743761,57.1401641 85.217246,57.2854291 85.4110963,57.4783766 C85.6049465,57.671324 85.7263815,57.8409847 85.7754011,57.9873586 L85.8489305,58.2035928 L85.8489305,90 L0,90 L0,17.910845 L43.1784759,17.910845 C43.2765152,17.9596363 43.410205,18.0317143 43.5795455,18.1270792 C43.7488859,18.222444 43.9438503,18.4519849 44.1644385,18.8157019 C44.3850267,19.1794189 44.469697,19.5542249 44.4184492,19.9401198 C44.4184492,20.2794411 44.3092692,20.582169 44.0909091,20.8483034 C43.872549,21.1144378 43.6664439,21.3206919 43.4725936,21.4670659 L43.1818182,21.6134398 C40.557041,23.06609 38.2954545,24.396762 36.3970588,25.6054558 L30.7820856,29.8170326 L11.5274064,29.8170326 L11.5274064,78.1669993 L74.1811497,78.1669993 L74.1811497,65.5355955 C74.1811497,65.1009093 74.3995098,64.6407186 74.8362299,64.1550233 L76.4438503,62.4883566 Z" id="Shape"></path>
143
+ </g>
144
+ </svg>
145
+ `;class i extends r.WF{static get styles(){return r.AH`
146
+ :host {
147
+ width: var(--iconWidth, 'auto');
148
+ height: var(--iconHeight, 'auto');
149
+ }
150
+
151
+ .fill-color {
152
+ fill: var(--iconFillColor);
153
+ }
154
+
155
+ .stroke-color {
156
+ stroke: var(--iconStrokeColor);
157
+ }
158
+ `}render(){return o}}customElements.define("ia-icon-share",i)},5215:function(e,t,n){function r(e,t,n,r){var o,i=arguments.length,a=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}n.d(t,{Cg:function(){return r}}),Object.create,Object.create},706:function(e,t,n){var r=n(350).PROPER,o=n(9039),i=n(7452);e.exports=function(e){return o(function(){return!!i[e]()||"​…᠎"!=="​…᠎"[e]()||r&&i[e].name!==e})}},8543:function(e,t,n){var r=n(6518),o=n(9565),i=n(7476),a=n(3994),s=n(2529),l=n(7750),c=n(8014),u=n(655),d=n(8551),f=n(34),h=n(2195),p=n(788),g=n(1034),m=n(5966),y=n(6840),v=n(9039),b=n(8227),w=n(2293),k=n(7829),S=n(6682),C=n(1181),E=n(6395),T=b("matchAll"),x="RegExp String",j=x+" Iterator",L=C.set,P=C.getterFor(j),O=RegExp.prototype,M=TypeError,A=i("".indexOf),_=i("".matchAll),R=!!_&&!v(function(){_("a",/./)}),z=a(function(e,t,n,r){L(this,{type:j,regexp:e,string:t,global:n,unicode:r,done:!1})},x,function(){var e=P(this);if(e.done)return s(void 0,!0);var t=e.regexp,n=e.string,r=S(t,n);return null===r?(e.done=!0,s(void 0,!0)):e.global?(""===u(r[0])&&(t.lastIndex=k(n,c(t.lastIndex),e.unicode)),s(r,!1)):(e.done=!0,s(r,!1))}),B=function(e){var t,n,r,o=d(this),i=u(e),a=w(o,RegExp),s=u(g(o));return t=new a(a===RegExp?o.source:o,s),n=!!~A(s,"g"),r=!!~A(s,"u")||!!~A(s,"v"),t.lastIndex=c(o.lastIndex),new z(t,i,n,r)};r({target:"String",proto:!0,forced:R},{matchAll:function(e){var t,n,r,i,a=l(this);if(f(e)){if(p(e)&&(t=u(l(g(e))),!~A(t,"g")))throw new M("`.matchAll` does not allow non-global regexes");if(R)return _(a,e);if(void 0===(r=m(e,T))&&E&&"RegExp"===h(e)&&(r=B),r)return o(r,e,a)}else if(R)return _(a,e);return n=u(a),i=new RegExp(e,"g"),E?o(B,i,n):i[T](n)}}),E||T in O||y(O,T,B)},5906:function(e,t,n){var r=n(6518),o=n(9504),i=n(5397),a=n(8981),s=n(655),l=n(6198),c=o([].push),u=o([].join);r({target:"String",stat:!0},{raw:function(e){var t=i(a(e).raw),n=l(t);if(!n)return"";for(var r=arguments.length,o=[],d=0;;){if(c(o,s(t[d++])),d===n)return u(o,"");d<r&&c(o,s(arguments[d]))}}})},2762:function(e,t,n){var r=n(6518),o=n(3802).trim;r({target:"String",proto:!0,forced:n(706)("trim")},{trim:function(){return o(this)}})},8344:function(e,t,n){n(8543)},1041:function(e,t,n){function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}function i(e){var t=function(e){if("object"!=r(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}n.d(t,{S:function(){return a}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var a=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.br=t,this.options},(t=[{key:"setup",value:function(e){this.options=Object.assign({},this.options,e)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(e){}},{key:"_configureToolbar",value:function(e){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(e){}}])&&o(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()},6735:function(e,t,n){n(2675),n(9463),n(2259),n(8125),n(4782),n(4554),n(4731),n(479),n(9085),n(2811),n(3851),n(875),n(825),n(888),n(8781),n(5700),n(8706),n(2008),n(113),n(3418),n(3792),n(2062),n(9572),n(2010),n(8130),n(6099),n(8459),n(8940),n(3362),n(7495),n(7764),n(5440),n(3500),n(2953);var r=n(420),o=n(1041),i=n(9696),a=(n(739),n(6034),n(4565));"undefined"!=typeof window&&window.Worker||(globalThis.Worker=class{#e;constructor(e){this.#e=new Promise(async t=>{const{Worker:n}=await import("node:worker_threads");t(new n(e))})}addEventListener(e,t){this.#e.then(n=>n.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 l{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(n.p+n.u(474),n.b));let t=0;const r=new Map,o=(n,...o)=>new Promise((i,a)=>{const s=++t;r.set(s,{accept:i,reject:a,callsite:{message:`${n}(${o.map(e=>String(e)).join(", ")})`,stack:(new Error).stack}}),e.postMessage({id:s,name:n,args:o})});return e.addEventListener("message",function({data:{id:e,result:t,error:n}}){if(!r.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}=r.get(e);r.delete(e),void 0!==n?i(Object.assign(new Error,n,{message:n.message+` (response to ${a.message})`,stack:n.stack?`${n.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,n){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])=>{const n=e.match(/^([a-z]{2}(-[a-z]+)?)([a-z]{2}(-[a-z]+)?)/i);return{from:n[1],to:n[3],files:t}})}getTranslationModel({from:e,to:t},n){const r=JSON.stringify({from:e,to:t});if(!this.buffers.has(r)){const o=this.loadTranslationModel({from:e,to:t},n);this.buffers.set(r,o),o.catch(e=>this.buffers.delete(r))}return this.buffers.get(r)}async loadTranslationModel({from:e,to:t},n){performance.mark(`loadTranslationModule.${JSON.stringify({from:e,to:t})}`);const r=(await this.registry).filter(n=>n.from==e&&n.to==t);if(!r)throw new Error(`No model for '${e}' -> '${t}'`);const o=r[0].files,i=()=>reject(new s("abort signal")),a=new Promise((e,t)=>{n?.signal&&n.signal.addEventListener("abort",i)}),l=Object.fromEntries(await Promise.race([Promise.all(Object.entries(o).map(async([r,o])=>{if(void 0===o||void 0===o.name)return[r,null];try{return[r,await this.fetch(o.name,o.expectedSha256Hash,n)]}catch(n){throw new Error(`Could not fetch ${o.name} for ${e}->${t} model`,{cause:n})}})),a]));n?.signal&&n.signal.removeEventListener("abort",i),performance.measure("loadTranslationModel",`loadTranslationModule.${JSON.stringify({from:e,to:t})}`);let c=[];if(l.vocab)c=[l.vocab];else{if(!l.trgvocab||!l.srcvocab)throw new Error(`Could not identify vocab files for ${e}->${t} model among: ${Array.from(Object.keys(o)).join(" ")}`);c=[l.srcvocab,l.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:l.model,shortlist:l.lex,vocabs:c,qualityModel:l.qualityModel,config:u}}async fetch(e,t,n){const r=new AbortController,o=()=>r.abort(),i=this.downloadTimeout?setTimeout(o,this.downloadTimeout):null;try{n?.signal&&n.signal.addEventListener("abort",o);const i={credentials:"omit",signal:r.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),n?.signal&&n.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 n=JSON.stringify({from:e,to:t});return this.models.has(n)||this.models.set(n,this.findModels(e,t)),this.models.get(n)}async findModels(e,t){const n=await this.registry;let r=[],o=[],i=[];if(n.forEach(n=>{n.from===e&&n.to===t?r.push(n):n.from===e&&n.to===this.pivotLanguage?o.push(n):n.to===t&&n.from===this.pivotLanguage&&i.push(n)}),r.length)return[r[0]];if(o.length&&i.length)return[o[0],i[0]];throw new Error(`No model available to translate from '${e}' to '${t}'`)}}class c{constructor(e,t){t||(t=new l(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:n,priority:r}=e;return new Promise(async(o,i)=>{try{const a=JSON.stringify({from:t,to:n}),s=await this.backing.getModels(e);this.enqueue({key:a,models:s,request:e,resolve:o,reject:i,priority:r}),this.notify()}catch(e){i(e)}})}remove(e){const t=this.queue;this.queue=[],t.forEach(t=>{t.requests.forEach(({request:n,resolve:r,reject:o})=>{e(n)?o(Object.assign(new s("removed by filter"),{request:n})):this.enqueue({key:t.key,priority:t.priority,models:t.models,request:n,resolve:r,reject:o})})})}enqueue({key:e,models:t,request:n,resolve:r,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:n,resolve:r,reject:o})}async consumeBatch(e,t){performance.mark("BergamotBatchTranslator.start"),await Promise.all(e.models.map(async({from:e,to:n})=>{if(!await t.hasTranslationModel({from:e,to:n})){const r=await this.backing.getTranslationModel({from:e,to:n});await t.loadTranslationModel({from:e,to:n},r)}}));const n=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:n}})=>({text:e.toString(),html:!!t,qualityScores:!!n}))});e.requests.forEach(({request:e,resolve:t,reject:r},o)=>{t({request:e,...n[o]})}),performance.measure("BergamotBatchTranslator","BergamotBatchTranslator.start")}}var u=n(4160);function d(e){return d="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},d(e)}function f(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var l=r&&r.prototype instanceof s?r:s,c=Object.create(l.prototype);return h(c,"_invoke",function(n,r,o){var i,s,l,c=0,u=o||[],d=!1,f={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,n){return i=t,s=0,l=e,f.n=n,a}};function h(n,r){for(s=n,l=r,t=0;!d&&c&&!o&&t<u.length;t++){var o,i=u[t],h=f.p,p=i[2];n>3?(o=p===r)&&(l=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=n<2&&h<i[1])?(s=0,f.v=r,f.n=i[1]):h<p&&(o=n<3||i[0]>r||r>p)&&(i[4]=n,i[5]=r,f.n=p,s=0))}if(o||n>1)return a;throw d=!0,r}return function(o,u,p){if(c>1)throw TypeError("Generator is already running");for(d&&1===u&&h(u,p),s=u,l=p;(t=s<2?e:l)||!d;){i||(s?s<3?(s>1&&(f.n=-1),h(s,l)):f.n=l:f.v=l);try{if(c=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(l=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(d=f.n<0)?l:n.call(r,f))!==a)break}catch(t){i=e,s=1,l=t}finally{c=1}}return{value:t,done:d}}}(n,o,i),!0),c}var a={};function s(){}function l(){}function c(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(h(t={},r,function(){return this}),t),d=c.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,h(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e}return l.prototype=c,h(d,"constructor",c),h(c,"constructor",l),l.displayName="GeneratorFunction",h(c,o,"GeneratorFunction"),h(d),h(d,o,"Generator"),h(d,r,function(){return this}),h(d,"toString",function(){return"[object Generator]"}),(f=function(){return{w:i,m:p}})()}function h(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}h=function(e,t,n,r){function i(t,n){h(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},h(e,t,n,r)}function p(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function g(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){p(i,r,o,a,s,"next",e)}function s(e){p(i,r,o,a,s,"throw",e)}a(void 0)})}}function m(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,v(r.key),r)}}function y(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(e){var t=function(e){if("object"!=d(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=d(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==d(t)?t:t+""}var b,w,k,S,C,E,T,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),y(this,"alreadyTranslated",new a.l(100)),y(this,"modelRegistry",{}),y(this,"currentlyTranslating",{}),y(this,"fromLanguages",[]),y(this,"toLanguages",[]),y(this,"active",!1),y(this,"publicPath",""),y(this,"getTranslation",function(){var e=g(f().m(function e(n,r,o,i,a,s){var l,c,u,d,h;return f().w(function(e){for(;;)switch(e.n){case 0:if(t.active=!0,n!=r&&n&&r){e.n=1;break}return e.a(2);case 1:if(l="".concat(n).concat(r,"-").concat(o,":").concat(i),!(c=t.alreadyTranslated.entries.find(function(e){return e.index==l}))){e.n=2;break}return e.a(2,c.response);case 2:if(!(l in t.currentlyTranslating)){e.n=3;break}return e.a(2,t.currentlyTranslating[l].promise);case 3:if(u=null,d=null,h=new Promise(function(e,t){u=e,d=t}),t.currentlyTranslating[l]={promise:h,resolve:u,reject:d},a){e.n=4;break}return t.currentlyTranslating[l].reject("No text was provided"),e.a(2,h);case 4:return t.translator.translate({to:r,from:n,text:a,html:!1,priority:s}).then(function(e){var n=e;t.currentlyTranslating[l].resolve(n.target.text),t.alreadyTranslated.add({index:l,response:n.target.text}),delete t.currentlyTranslating[l]}),e.a(2,h)}},e)}));return function(t,n,r,o,i,a){return e.apply(this,arguments)}}()),y(this,"getTranslationModel",function(){var e=g(f().m(function e(n,r){return f().w(function(e){for(;;)if(0===e.n)return e.a(2,t.translator.backing.getTranslationModel({from:n,to:r}).catch(function(e){console.error("An error occurred while trying to retreive the ".concat(n,"-").concat(r," model"))}))},e)}));return function(t,n){return e.apply(this,arguments)}}());var n={code:"en",name:"English (en)",type:"prod"};this.fromLanguages.push(n),this.toLanguages.push(n)},t=[{key:"initWorker",value:(n=g(f().m(function e(){var t,n,r,o,i,a,s,l,d,h,p,g,m,y,v,b,w,k,S=this;return f().w(function(e){for(;;)switch(e.n){case 0:if(!this.initPromise){e.n=1;break}return e.a(2,this.initPromise);case 1:return this.initPromise=new Promise(function(e,t){S._initResolve=e,S._initReject=t}),t="https://cors.archive.org/cors/mozilla-translate-models/firefox_models/",e.n=2,fetch(t+"registry.json").then(function(e){return e.json()});case 2:for(n=e.v,r=0,o=Object.values(n);r<o.length;r++)for(i=o[r],a=0,s=Object.values(i);a<s.length;a++)(l=s[a]).name=t+l.name;return this.translator=new c({registryUrl:"data:application/json,".concat(encodeURIComponent(JSON.stringify(n))),workers:2,batchSize:4,workerUrl:this.publicPath+"/translator-worker.js"}),e.n=3,this.translator.backing.registry;case 3:for(d=e.v,h={},p=0,g=Object.values(d);p<g.length;p++)m=g[p],y=m.from,v=m.to,b=m.files,h["".concat(y).concat(v)]=b,"en"!==y&&(w="".concat((0,u._4)(y)," (").concat((0,u.YH)(y),")"),this.fromLanguages.push({code:y,name:w,type:"prod"})),"en"!==v&&(k="".concat((0,u._4)(v)," (").concat((0,u.YH)(v),")"),this.toLanguages.push({code:v,name:k,type:"prod"}));return this._initResolve([this.modelRegistry]),e.a(2,this.initPromise)}},e,this)})),function(){return n.apply(this,arguments)})}],t&&m(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}(),j=n(8004),L=n(593),P=(n(8248),n(1669));function O(e){return O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},O(e)}function M(e){return function(e){if(Array.isArray(e))return H(e)}(e)||F(e)||$(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 A(){A=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(n){t.forEach(function(t){t.kind===n&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var n=e.prototype;["method","field"].forEach(function(r){t.forEach(function(t){var o=t.placement;if(t.kind===r&&("static"===o||"prototype"===o)){var i="static"===o?e:n;this.defineClassElement(i,t)}},this)},this)},defineClassElement:function(e,t){var n=t.descriptor;if("field"===t.kind){var r=t.initializer;n={enumerable:n.enumerable,writable:n.writable,configurable:n.configurable,value:void 0===r?void 0:r.call(e)}}Object.defineProperty(e,t.key,n)},decorateClass:function(e,t){var n=[],r=[],o={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,o)},this),e.forEach(function(e){if(!z(e))return n.push(e);var t=this.decorateElement(e,o);n.push(t.element),n.push.apply(n,t.extras),r.push.apply(r,t.finishers)},this),!t)return{elements:n,finishers:r};var i=this.decorateConstructor(n,t);return r.push.apply(r,i.finishers),i.finishers=r,i},addElementPlacement:function(e,t,n){var r=t[e.placement];if(!n&&-1!==r.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");r.push(e.key)},decorateElement:function(e,t){for(var n=[],r=[],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),l=this.toElementFinisherExtras((0,o[i])(s)||s);e=l.element,this.addElementPlacement(e,t),l.finisher&&r.push(l.finisher);var c=l.extras;if(c){for(var u=0;u<c.length;u++)this.addElementPlacement(c[u],t);n.push.apply(n,c)}}return{element:e,finishers:r,extras:n}},decorateConstructor:function(e,t){for(var n=[],r=t.length-1;r>=0;r--){var o=this.fromClassDescriptor(e),i=this.toClassDescriptor((0,t[r])(o)||o);if(void 0!==i.finisher&&n.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:n}},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)||F(t)||$(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 n=re(e.key),r=e.placement+"";if("static"!==r&&"prototype"!==r&&"own"!==r)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 "'+r+'"');var o=e.descriptor;this.disallowProperty(e,"elements","An element descriptor");var i={kind:t,key:n,placement:r,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:I(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 n=I(e,"finisher");return{elements:this.toElementDescriptors(e.elements),finisher:n}},runClassFinishers:function(e,t){for(var n=0;n<t.length;n++){var r=(0,t[n])(e);if(void 0!==r){if("function"!=typeof r)throw new TypeError("Finishers must return a constructor.");e=r}}return e},disallowProperty:function(e,t,n){if(void 0!==e[t])throw new TypeError(n+" can't have a ."+t+" property.")}};return e}function _(e){var t,n=re(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 r={kind:"field"===e.kind?"field":"method",key:n,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(r.decorators=e.decorators),"field"===e.kind&&(r.initializer=e.value),r}function R(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function z(e){return e.decorators&&e.decorators.length}function B(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function I(e,t){var n=e[t];if(void 0!==n&&"function"!=typeof n)throw new TypeError("Expected '"+t+"' to be a function");return n}function F(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function D(){return D="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Q(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},D.apply(null,arguments)}function N(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function q(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=$(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},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(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function $(e,t){if(e){if("string"==typeof e)return H(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?H(e,t):void 0}}function H(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function G(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var l=r&&r.prototype instanceof s?r:s,c=Object.create(l.prototype);return W(c,"_invoke",function(n,r,o){var i,s,l,c=0,u=o||[],d=!1,f={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,n){return i=t,s=0,l=e,f.n=n,a}};function h(n,r){for(s=n,l=r,t=0;!d&&c&&!o&&t<u.length;t++){var o,i=u[t],h=f.p,p=i[2];n>3?(o=p===r)&&(l=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=n<2&&h<i[1])?(s=0,f.v=r,f.n=i[1]):h<p&&(o=n<3||i[0]>r||r>p)&&(i[4]=n,i[5]=r,f.n=p,s=0))}if(o||n>1)return a;throw d=!0,r}return function(o,u,p){if(c>1)throw TypeError("Generator is already running");for(d&&1===u&&h(u,p),s=u,l=p;(t=s<2?e:l)||!d;){i||(s?s<3?(s>1&&(f.n=-1),h(s,l)):f.n=l:f.v=l);try{if(c=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(l=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(d=f.n<0)?l:n.call(r,f))!==a)break}catch(t){i=e,s=1,l=t}finally{c=1}}return{value:t,done:d}}}(n,o,i),!0),c}var a={};function s(){}function l(){}function c(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(W(t={},r,function(){return this}),t),d=c.prototype=s.prototype=Object.create(u);function f(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,W(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e}return l.prototype=c,W(d,"constructor",c),W(c,"constructor",l),l.displayName="GeneratorFunction",W(c,o,"GeneratorFunction"),W(d),W(d,o,"Generator"),W(d,r,function(){return this}),W(d,"toString",function(){return"[object Generator]"}),(G=function(){return{w:i,m:f}})()}function W(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}W=function(e,t,n,r){function i(t,n){W(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},W(e,t,n,r)}function K(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function U(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){K(i,r,o,a,s,"next",e)}function s(e){K(i,r,o,a,s,"throw",e)}a(void 0)})}}function Z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function V(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,re(r.key),r)}}function J(e,t,n){return t&&V(e.prototype,t),n&&V(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Y(e,t,n){return t=Q(t),function(e,t){if(t&&("object"==O(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,X()?Reflect.construct(t,n||[],Q(e).constructor):t.apply(e,n))}function X(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(X=function(){return!!e})()}function Q(e){return Q=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Q(e)}function ee(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&&te(e,t)}function te(e,t){return te=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},te(e,t)}function ne(e,t,n){return(t=re(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function re(e){var t=function(e){if("object"!=O(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=O(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==O(t)?t:t+""}var oe,ie,ae,se,le,ce,ue,de=window.BookReader,fe=function(e){function t(){var e;Z(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return ne(e=Y(this,t,[].concat(r)),"options",{enabled:!0,panelDisclaimerText:"Translations are in alpha"}),ne(e,"translationManager",new x),ne(e,"worker",void 0),ne(e,"toLanguages",[]),ne(e,"langFromCode",void 0),ne(e,"langToCode",void 0),ne(e,"_panel",void 0),ne(e,"userToggleTranslate",void 0),ne(e,"loadingModel",!0),ne(e,"textSelectionManager",new L.bg(".BRtranslateLayer",e.br,{selectionElement:[".BRlineElement"]},1)),ne(e,"getParagraphsOnPage",function(e){return e?Array.from(e.querySelectorAll(".BRtextLayer > .BRparagraphElement")):[]}),ne(e,"handleFromLangChange",function(){var t=U(G().m(function t(n){var r;return G().w(function(t){for(;;)switch(t.n){case 0:e.clearAllTranslations(),r=n.detail.value,e.langFromCode=r,e._panel.requestUpdate(),e.translationManager.toLanguages.some(function(e){return e.code===r})||e.translationManager.toLanguages.push({code:r,name:e.translationManager.fromLanguages.find(function(e){return e.code==r}).name}),e._panel.toLanguages=e.translationManager.toLanguages,console.log(e.langFromCode,e.langToCode),e._render(),e.langFromCode!==e.langToCode&&e.translateActivePageContainerElements();case 1:return t.a(2)}},t)}));return function(e){return t.apply(this,arguments)}}()),ne(e,"handleToLangChange",function(){var t=U(G().m(function t(n){return G().w(function(t){for(;;)switch(t.n){case 0:e.clearAllTranslations(),e.langToCode=n.detail.value,e._render(),e.translateActivePageContainerElements();case 1:return t.a(2)}},t)}));return function(e){return t.apply(this,arguments)}}()),ne(e,"handleToggleTranslation",U(G().m(function t(){return G().w(function(t){for(;;)switch(t.n){case 0:e.userToggleTranslate=!e.userToggleTranslate,e.translationManager.active=e.userToggleTranslate,e._render(),e.userToggleTranslate?(e.br.trigger("translationEnabled",{}),e.translateActivePageContainerElements(),e.textSelectionManager.attach()):(e.clearAllTranslations(),e.br.trigger("translationDisabled",{}),e.textSelectionManager.detach());case 1:return t.a(2)}},t)}))),e}return ee(t,e),J(t,[{key:"init",value:(i=U(G().m(function e(){var t,n=this;return G().w(function(e){for(;;)switch(e.n){case 0:if(t=(0,u.YH)(this.br.options.bookLanguage.replace(/[.,/#!$%^&*;:{}=\-_`~()]/g,"")),this.langFromCode=null!=t?t:"en",this.textSelectionManager.init(),this.options.enabled){e.n=1;break}return e.a(2);case 1:return this.translationManager.publicPath=this.br.options.imagesBaseURL.replace(/\/+$/,"")+"/..",this.br.on("textLayerRendered",function(){var e=U(G().m(function e(t,r){var o,i;return G().w(function(e){for(;;)switch(e.n){case 0:if(r.pageIndex,o=r.pageContainer,n.translationManager){e.n=1;break}return e.a(2);case 1:n.translationManager.active&&(i=o.$container[0],n.translateRenderedLayer(i));case 2:return e.a(2)}},e)}));return function(t,n){return e.apply(this,arguments)}}()),this.br.on("pageVisible",function(e,t){var r=t.pageContainerEl;if(n.translationManager.active){var o,i=q(r.querySelectorAll(".BRtranslateLayer > .BRparagraphElement"));try{for(i.s();!(o=i.n()).done;){var a=o.value;a.textContent&&n.fitVisiblePage(a)}}catch(e){i.e(e)}finally{i.f()}}}),e.n=2,this.translationManager.initWorker();case 2:this.langToCode=this.translationManager.toLanguages[0].code,this._render();case 3:return e.a(2)}},e,this)})),function(){return i.apply(this,arguments)})},{key:"translateActivePageContainerElements",value:function(){var e,t=this.br.getActivePageContainerElements(),n=t.filter(function(e){return e.classList.contains("BRpage-visible")}),r=t.filter(function(e){return!e.classList.contains("BRpage-visible")}),o=q(n);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=q(r);try{for(s.s();!(a=s.n()).done;){var l=a.value;this.translateRenderedLayer(l,1e3)}}catch(e){s.e(e)}finally{s.f()}}},{key:"translateRenderedLayer",value:(o=U(G().m(function e(t,n){var r,o,i,a,s,l,c=this;return G().w(function(e){for(;;)switch(e.n){case 0:if(this.br.mode!=this.br.constModeThumb&&this.userToggleTranslate&&this.langFromCode!=this.langToCode){e.n=1;break}return e.a(2);case 1:return o=t.dataset.index,t.querySelector(".BRPageLayer.BRtranslateLayer")?i=t.querySelector(".BRPageLayer.BRtranslateLayer"):((i=document.createElement("div")).classList.add("BRPageLayer","BRtranslateLayer","BRtranslateLayerLoading"),i.setAttribute("lang","".concat(this.langToCode)),t.prepend(i)),a=t.querySelector(".BRtextLayer"),P(i).css({width:a.style.width,height:a.style.height,transform:a.style.transform,"pointer-events":a.style.pointerEvents,"z-index":3}),a.classList.add("showingTranslation"),s=this.getParagraphsOnPage(t),l=s.map(function(){var e=U(G().m(function e(r,a){var l,u,d,f,h,p,g,m,y;return G().w(function(e){for(;;)switch(e.n){case 0:if((l=t.querySelector("[data-translate-index='".concat(o,"-").concat(a,"']")))||((l=document.createElement("p")).setAttribute("data-translate-index","".concat(o,"-").concat(a)),l.className="BRparagraphElement",u=s[a],r.classList.contains("ocr-role-header-footer")&&(l.ariaHidden="true",l.classList.add("ocr-role-header-footer")),d="".concat(parseInt(P(u).css("font-size")),"px"),P(l).css({"margin-left":P(u).css("margin-left"),"margin-top":P(u).css("margin-top"),top:P(u).css("top"),height:P(u).css("height"),width:P(u).css("width"),"font-size":d}),i.append(l)),0===r.textContent.length){e.n=2;break}return p=parseFloat(o)+n+a,c.translationManager.getTranslationModel(c.langFromCode,c.langToCode).then(function(){c._panel.loadingModel=!1,c.loadingModel=!1}),e.n=1,c.translationManager.getTranslation(c.langFromCode,c.langToCode,o,a,r.textContent,p);case 1:g=e.v,null===(f=l.firstElementChild)||void 0===f||f.remove(),m=null===(h=s[a])||void 0===h||null===(h=h.firstChild)||void 0===h?void 0:h.firstChild,(y=document.createElement("span")).className="BRlineElement",y.textContent=g,l.appendChild(y),P(y).css({"text-indent":P(m).css("padding-left")}),t.classList.contains("BRpage-visible")&&c.fitVisiblePage(l);case 2:return e.a(2)}},e)}));return function(t,n){return e.apply(this,arguments)}}()),null===(r=this.textSelectionManager)||void 0===r||r.stopPageFlip(this.br.refs.$brContainer),e.n=2,Promise.all(l);case 2:this.br.trigger("translateLayerRendered",{leafIndex:o,translateLayer:i});case 3:return e.a(2)}},e,this)})),function(e,t){return o.apply(this,arguments)})},{key:"getTranslateLayers",value:(n=U(G().m(function e(t){var n,r,o=this;return G().w(function(e){for(;;)switch(e.n){case 0:if(n=this.br.getActivePageContainerElementsForIndex(t),!(r=P(n).filter("[data-index='".concat(t,"']")).find(".BRtranslateLayer")).length){e.n=1;break}return e.a(2,r.toArray());case 1:return e.a(2,new Promise(function(e,n){var r=function(){var n=U(G().m(function n(i,a){return G().w(function(n){for(;;)switch(n.n){case 0:a.leafIndex==t&&(o.br.off("translateLayerRendered",r),e([a.translateLayer]));case 1:return n.a(2)}},n)}));return function(e,t){return n.apply(this,arguments)}}();o.br.on("translateLayerRendered",r)}))}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"clearAllTranslations",value:function(){document.querySelectorAll(".BRtranslateLayer").forEach(function(e){return e.remove()}),document.querySelectorAll(".showingTranslation").forEach(function(e){return e.classList.remove("showingTranslation")})}},{key:"fitVisiblePage",value:function(e){for(var t=parseInt(P(e).css("font-size"));e.clientHeight<e.scrollHeight&&t>0;)t--,P(e).css({"font-size":"".concat(t,"px")});var n=e.firstElementChild.clientHeight,r=e.scrollHeight;if(n<r){var o=r/(n/t);P(e).css({"line-height":"".concat(o,"px"),overflow:"visible"})}}},{key:"_render",value:function(){var e=this;this.br.shell.menuProviders.translate={id:"translate",icon:(0,r.qy)(b||(b=N(["<img src='",'/translate.svg\' width="26"/>'])),this.br.options.imagesBaseURL),label:"Translate",component:(0,r.qy)(w||(w=N(['<br-translate-panel\n @connected="','"\n @langFromChanged="','"\n @langToChanged="','"\n @toggleTranslation="','"\n .fromLanguages="','"\n .toLanguages="','"\n .disclaimerMessage="','"\n .userTranslationActive=',"\n .detectedFromLang=","\n .detectedToLang=","\n .loadingModel=",'\n class="translate-panel"\n />'])),function(t){e._panel=t.target,e._panel.fromLanguages=e.translationManager.fromLanguages,e._panel.toLanguages=e.translationManager.toLanguages,e._panel.userTranslationActive=e.userToggleTranslate,e._panel.detectedToLang=e.langToCode,e._panel.detectedFromLang=e.langFromCode,e._panel.loadingModel=e.loadingModel},this.handleFromLangChange,this.handleToLangChange,this.handleToggleTranslation,this.translationManager.fromLanguages,this.translationManager.toLanguages,this.options.panelDisclaimerText,this.userToggleTranslate,this.langFromCode,this.langToCode,this.loadingModel)},this.br.shell.updateMenuContents()}}]);var n,o,i}(o.S);null==de||de.registerPlugin("translate",fe),oe=[(0,i.EM)("br-translate-panel")],ie=r.WF,le=A(),ae=function(e){le.initializeInstanceElements(e,ue.elements)},se=function(e){function t(){var e;Z(this,t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return e=Y(this,t,[].concat(r)),ae(e),e}return ee(t,e),J(t)}(ie),ce={F:se,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:"field",decorators:[(0,i.MZ)({type:Boolean})],key:"userTranslationActive",value:function(){return!1}},{kind:"field",decorators:[(0,i.MZ)({type:String})],key:"detectedFromLang",value:function(){return""}},{kind:"field",decorators:[(0,i.MZ)({type:String})],key:"detectedToLang",value:function(){return""}},{kind:"field",decorators:[(0,i.MZ)({type:Boolean})],key:"loadingModel",value:void 0},{kind:"method",key:"createRenderRoot",value:function(){return this}},{kind:"method",key:"connectedCallback",value:function(){var e,t,n,r,o;(e=se,t="connectedCallback",n=this,o=D(Q(1&(r=3)?e.prototype:e),t,n),2&r&&"function"==typeof o?function(e){return o.apply(n,e)}:o)([]),this.dispatchEvent(new CustomEvent("connected"))}},{kind:"method",key:"render",value:function(){var e=this;return(0,r.qy)(k||(k=N(['<div class="app" style="margin-top: 5%;padding-right: 5px;">\n <div\n class="disclaimer"\n id="disclaimerMessage"\n style="background-color: rgba(255,255,255,0.1);padding: 10px;border-radius: 8px;font-size: 12px;margin-bottom: 10px;color: rgba(255,255,255, 0.9);"\n >','</div>\n\n <div class="panel panel--to" style="padding: 0 10px;">\n <label>\n <span style="font-size: 12px;color: #ccc;">Translate To</span>\n <select id="lang-to" name="to" class="lang-select" style="display:block; width:100%;" @change="','">\n ','\n </select>\n </label>\n </div>\n\n <div class="panel panel--start" style="text-align: right;padding: 0 10px;/*! font-size: 18px; */margin-top: 10px;">\n <button class="start-translation-brn" @click="','">\n ','\n </button>\n </div>\n\n <div class="panel panel--from" style="font-size: 12px;color: #ccc;text-align: center;padding: 8px 10px;">\n <details style="display: contents">\n <summary style="text-decoration: underline white; cursor:pointer; display:inline-block"> \n <i>\n Source: '," ",' \n </i> Change \n </summary>\n <select id="lang-from" name="from" class="lang-select" value=',' @change="','" style="width:65%; margin-top: 3%; margin-bottom: 3%">\n ','\n </select>\n </details>\n <div class="footer" id="status" style="margin-top:5%">\n ','\n </div>\n\n <div class="lang-models-loading"> \n ',"\n </div>\n </div>"])),this.disclaimerMessage,this._onLangToChange,(0,j.sortBy)(this.toLanguages,function(e){return e.name.toLowerCase()}).map(function(t){return(0,r.qy)(S||(S=N(['<option value="','" \n ?selected=',"\n > "," </option>"])),t.code,t.code==e.detectedToLang,t.name?t.name:t.code)}),this._toggleTranslation,this.userTranslationActive?"Stop Translating":"Translate",this._getLangName(this.detectedFromLang),this.prevSelectedLang?"":"(detected)",this.detectedFromLang,this._onLangFromChange,(0,j.sortBy)(this.fromLanguages,function(e){return e.name.toLowerCase()}).map(function(t){return(0,r.qy)(C||(C=N(['<option value="','"\n ?selected=',"\n >"," </option>"])),t.code,t.code==e.detectedFromLang,t.name?t.name:t.code)}),this._statusWarning(),this._languageModelStatus())}},{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")),this.loadingModel=!0,this.detectedFromLang=e.target.value}},{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")),this.loadingModel=!0,this.detectedToLang=e.target.value}},{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(M(this.fromLanguages),M(this.toLanguages)).find(function(t){return t.code===e});return t?t.name:""}},{kind:"method",key:"_toggleTranslation",value:function(e){var t=new CustomEvent("toggleTranslation",{detail:{value:e.target.value},bubbles:!0,composed:!0});this.userTranslationActive=!this.userTranslationActive,this.dispatchEvent(t)}},{kind:"method",key:"_statusWarning",value:function(){return this.detectedFromLang==this.detectedToLang?"Translate To language is the same as the Source language":""}},{kind:"method",key:"_languageModelStatus",value:function(){return this.userTranslationActive?this.loadingModel?(0,r.qy)(E||(E=N(['\n <ia-activity-indicator mode="processing" style="display:block; width: 40px; height: 40px; margin: 0 auto;"></ia-activity-indicator>\n <p>Downloading language model</p>\n ']))):(0,r.qy)(T||(T=N(["<p>Language model loaded</p>"]))):""}}]},ue=le.decorateClass(function(e){for(var t=[],n=function(e){return"method"===e.kind&&e.key===i.key&&e.placement===i.placement},r=0;r<e.length;r++){var o,i=e[r];if("method"===i.kind&&(o=t.find(n)))if(B(i.descriptor)||B(o.descriptor)){if(z(i)||z(o))throw new ReferenceError("Duplicated methods ("+i.key+") can't be decorated.");o.descriptor=i.descriptor}else{if(z(i)){if(z(o))throw new ReferenceError("Decorators can't be placed on different accessors with for the same property ("+i.key+").");o.decorators=i.decorators}R(i,o)}else t.push(i)}return t}(ce.d.map(_)),oe),le.initializeClassElements(ce.F,ue.elements),le.runClassFinishers(ce.F,ue.finishers)},4160:function(e,t,n){n.d(t,{$x:function(){return y},EF:function(){return u},ND:function(){return m},m0:function(){return d},YH:function(){return h},_4:function(){return p}}),n(2675),n(9463),n(2259),n(3418),n(4423),n(3792),n(4782),n(2010),n(875),n(6099),n(3362),n(7495),n(8781),n(1699),n(7764),n(1761),n(2953);var r=[],o={},i={},a={};[["Serbian","српски језик","sr","srp","srp"],["Romanian, Moldavian, Moldovan","Română","ro","ron","rum"],["Sichuan Yi, Nuosu","ꆈꌠ꒿ Nuosuhxop","ii","iii","iii"],["Tahitian","Reo Tahiti","ty","tah","tah"],["Tagalog","Wikang Tagalog","tl","tgl","tgl"],["Yiddish","ייִדיש","yi","yid","yid"],["Akan","Akan","ak","aka","aka"],["Malay","Bahasa Melayu, بهاس ملايو","ms","msa","may"],["Arabic","العربية","ar","ara","ara"],["Norwegian","Norsk","no","nor","nor"],["Ojibwa","ᐊᓂᔑᓈᐯᒧᐎᓐ","oj","oji","oji"],["Fulah","Fulfulde, Pulaar, Pular","ff","ful","ful"],["Persian","فارسی","fa","fas","per"],["Albanian","Shqip","sq","sqi","alb"],["Aymara","aymar aru","ay","aym","aym"],["Azerbaijani","azərbaycan dili","az","aze","aze"],["Chinese","中文 (Zhōngwén), 汉语, 漢語","zh","zho","chi"],["Cree","ᓀᐦᐃᔭᐍᐏᐣ","cr","cre","cre"],["Estonian","eesti, eesti keel","et","est","est"],["Guaraní","Avañe'ẽ","gn","grn","grn"],["Inupiaq","Iñupiaq, Iñupiatun","ik","ipk","ipk"],["Inuktitut","ᐃᓄᒃᑎᑐᑦ","iu","iku","iku"],["Kanuri","Kanuri","kr","kau","kau"],["Komi","коми кыв","kv","kom","kom"],["Kongo","Kikongo","kg","kon","kon"],["Kurdish","Kurdî, أۇزبېك","ku","kur","kur"],["Latvian","latviešu valoda","lv","lav","lav"],["Malagasy","fiteny malagasy","mg","mlg","mlg"],["Mongolian","Монгол хэл","mn","mon","mon"],["Oromo","Afaan Oromoo","om","orm","orm"],["Pashto, Pushto","پښتو","ps","pus","pus"],["Quechua","Runa Simi, Kichwa","qu","que","que"],["Sardinian","sardu","sc","srd","srd"],["Swahili","Kiswahili","sw","swa","swa"],["Uzbek","Oʻzbek, Ўзбек, ","uz","uzb","uzb"],["Zhuang, Chuang","Saɯ cueŋƅ, Saw cuengh","za","zha","zha"],["Bislama","Bislama","bi","bis","bis"],["Norwegian Bokmål","Norsk Bokmål","nb","nob","nob"],["Norwegian Nynorsk","Norsk Nynorsk","nn","nno","nno"],["Indonesian","Bahasa Indonesia","id","ind","ind"],["Twi","Twi","tw","twi","twi"],["Esperanto","Esperanto","eo","epo","epo"],["Interlingua","Interlingua","ia","ina","ina"],["Interlingue","Originally called Occidental; then Interlingue after WWII","ie","ile","ile"],["Ido","Ido","io","ido","ido"],["Volapük","Volapük","vo","vol","vol"],["Bihari languages","भोजपुरी","bh","bih","bih"],["Hebrew (modern)","עברית","he","heb","heb"],["Sanskrit","संस्कृतम्","sa","san","san"],["Church Slavic, Church Slavonic, Old Church Slavonic, Old Slavonic, Old Bulgarian","ѩзыкъ словѣньскъ","cu","chu","chu"],["Pali","पाऴि","pi","pli","pli"],["Avestan","avesta","ae","ave","ave"],["Latin","latine, lingua latina","la","lat","lat"],["Armenian","Հայերեն","hy","hye","arm"],["Swati","SiSwati","ss","ssw","ssw"],["Tibetan","བོད་ཡིག","bo","bod","tib"],["South Ndebele","isiNdebele","nr","nbl","nbl"],["Slovene","Slovenski Jezik, Slovenščina","sl","slv","slv"],["Oriya","ଓଡ଼ିଆ","or","ori","ori"],["North Ndebele","isiNdebele","nd","nde","nde"],["Nauru","Dorerin Naoero","na","nau","nau"],["Maori","te reo Māori","mi","mri","mao"],["Marathi","मराठी","mr","mar","mar"],["Luba-Katanga","Kiluba","lu","lub","lub"],["Rundi","Ikirundi","rn","run","run"],["Central Khmer","ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ","km","khm","khm"],["Western Frisian","Frysk","fy","fry","fry"],["Bengali","বাংলা","bn","ben","ben"],["Avaric","авар мацӀ, магӀарул мацӀ","av","ava","ava"],["Abkhazian","аҧсуа бызшәа, аҧсшәа","ab","abk","abk"],["Afar","Afaraf","aa","aar","aar"],["Afrikaans","Afrikaans","af","afr","afr"],["Amharic","አማርኛ","am","amh","amh"],["Aragonese","aragonés","an","arg","arg"],["Assamese","অসমীয়া","as","asm","asm"],["Bambara","bamanankan","bm","bam","bam"],["Bashkir","башҡорт теле","ba","bak","bak"],["Basque","euskara, euskera","eu","eus","baq"],["Belarusian","беларуская мова","be","bel","bel"],["Bosnian","bosanski jezik","bs","bos","bos"],["Breton","brezhoneg","br","bre","bre"],["Bulgarian","български език","bg","bul","bul"],["Burmese","ဗမာစာ","my","mya","bur"],["Catalan, Valencian","català, valencià","ca","cat","cat"],["Chamorro","Chamoru","ch","cha","cha"],["Chechen","нохчийн мотт","ce","che","che"],["Chichewa, Chewa, Nyanja","chiCheŵa, chinyanja","ny","nya","nya"],["Chuvash","чӑваш чӗлхи","cv","chv","chv"],["Cornish","Kernewek","kw","cor","cor"],["Corsican","corsu, lingua corsa","co","cos","cos"],["Croatian","hrvatski jezik","hr","hrv","hrv"],["Czech","čeština, český jazyk","cs","ces","cze"],["Danish","dansk","da","dan","dan"],["Divehi, Dhivehi, Maldivian","ދިވެހި","dv","div","div"],["Dutch, Flemish","Nederlands, Vlaams","nl","nld","dut"],["Dzongkha","རྫོང་ཁ","dz","dzo","dzo"],["English","English","en","eng","eng"],["Ewe","Eʋegbe","ee","ewe","ewe"],["Faroese","føroyskt","fo","fao","fao"],["Fijian","vosa Vakaviti","fj","fij","fij"],["Finnish","suomi, suomen kieli","fi","fin","fin"],["French","français, langue française","fr","fra","fre"],["Galician","Galego","gl","glg","glg"],["Georgian","ქართული","ka","kat","geo"],["German","Deutsch","de","deu","ger"],["Greek (modern)","ελληνικά","el","ell","gre"],["Gujarati","ગુજરાતી","gu","guj","guj"],["Haitian, Haitian Creole","Kreyòl ayisyen","ht","hat","hat"],["Hausa","(Hausa) هَوُسَ","ha","hau","hau"],["Herero","Otjiherero","hz","her","her"],["Hindi","हिन्दी, हिंदी","hi","hin","hin"],["Hiri Motu","Hiri Motu","ho","hmo","hmo"],["Hungarian","magyar","hu","hun","hun"],["Irish","Gaeilge","ga","gle","gle"],["Igbo","Asụsụ Igbo","ig","ibo","ibo"],["Icelandic","Íslenska","is","isl","ice"],["Italian","Italiano","it","ita","ita"],["Japanese","日本語 (にほんご)","ja","jpn","jpn"],["Javanese","ꦧꦱꦗꦮ, Basa Jawa","jv","jav","jav"],["Kalaallisut, Greenlandic","kalaallisut, kalaallit oqaasii","kl","kal","kal"],["Kannada","ಕನ್ನಡ","kn","kan","kan"],["Kashmiri","कश्मीरी, كشميري","ks","kas","kas"],["Kazakh","қазақ тілі","kk","kaz","kaz"],["Kikuyu, Gikuyu","Gĩkũyũ","ki","kik","kik"],["Kinyarwanda","Ikinyarwanda","rw","kin","kin"],["Kirghiz, Kyrgyz","Кыргызча, Кыргыз тили","ky","kir","kir"],["Korean","한국어","ko","kor","kor"],["Kuanyama, Kwanyama","Kuanyama","kj","kua","kua"],["Luxembourgish, Letzeburgesch","Lëtzebuergesch","lb","ltz","ltz"],["Ganda","Luganda","lg","lug","lug"],["Limburgan, Limburger, Limburgish","Limburgs","li","lim","lim"],["Lingala","Lingála","ln","lin","lin"],["Lao","ພາສາລາວ","lo","lao","lao"],["Lithuanian","lietuvių kalba","lt","lit","lit"],["Manx","Gaelg, Gailck","gv","glv","glv"],["Macedonian","македонски јазик","mk","mkd","mac"],["Malayalam","മലയാളം","ml","mal","mal"],["Maltese","Malti","mt","mlt","mlt"],["Marshallese","Kajin M̧ajeļ","mh","mah","mah"],["Navajo, Navaho","Diné bizaad","nv","nav","nav"],["Nepali","नेपाली","ne","nep","nep"],["Ndonga","Owambo","ng","ndo","ndo"],["Occitan","occitan, lenga d'òc","oc","oci","oci"],["Ossetian, Ossetic","ирон æвзаг","os","oss","oss"],["Panjabi, Punjabi","ਪੰਜਾਬੀ","pa","pan","pan"],["Polish","język polski, polszczyzna","pl","pol","pol"],["Portuguese","Português","pt","por","por"],["Romansh","Rumantsch Grischun","rm","roh","roh"],["Russian","русский","ru","rus","rus"],["Sindhi","सिन्धी, سنڌي، سندھی","sd","snd","snd"],["Northern Sami","Davvisámegiella","se","sme","sme"],["Samoan","gagana fa'a Samoa","sm","smo","smo"],["Sango","yângâ tî sängö","sg","sag","sag"],["Gaelic, Scottish Gaelic","Gàidhlig","gd","gla","gla"],["Shona","chiShona","sn","sna","sna"],["Sinhala, Sinhalese","සිංහල","si","sin","sin"],["Slovak","Slovenčina, Slovenský Jazyk","sk","slk","slo"],["Somali","Soomaaliga, af Soomaali","so","som","som"],["Southern Sotho","Sesotho","st","sot","sot"],["Spanish, Castilian","Español","es","spa","spa"],["Sundanese","Basa Sunda","su","sun","sun"],["Swedish","Svenska","sv","swe","swe"],["Tamil","தமிழ்","ta","tam","tam"],["Telugu","తెలుగు","te","tel","tel"],["Tajik","тоҷикӣ, toçikī, تاجیکی","tg","tgk","tgk"],["Thai","ไทย","th","tha","tha"],["Tigrinya","ትግርኛ","ti","tir","tir"],["Turkmen","Türkmen, Түркмен","tk","tuk","tuk"],["Tswana","Setswana","tn","tsn","tsn"],["Tongan (Tonga Islands)","Faka Tonga","to","ton","ton"],["Turkish","Türkçe","tr","tur","tur"],["Tsonga","Xitsonga","ts","tso","tso"],["Tatar","татар теле, tatar tele","tt","tat","tat"],["Uighur, Uyghur","ئۇيغۇرچە, Uyghurche","ug","uig","uig"],["Ukrainian","Українська","uk","ukr","ukr"],["Urdu","اردو","ur","urd","urd"],["Venda","Tshivenḓa","ve","ven","ven"],["Vietnamese","Tiếng Việt","vi","vie","vie"],["Walloon","Walon","wa","wln","wln"],["Welsh","Cymraeg","cy","cym","wel"],["Wolof","Wollof","wo","wol","wol"],["Xhosa","isiXhosa","xh","xho","xho"],["Yoruba","Yorùbá","yo","yor","yor"],["Zulu","isiZulu","zu","zul","zul"]].forEach(e=>{var t={name:e[0],nativeName:e[1],iso639_1:e[2],iso639_2T:e[3],iso639_2B:e[4]};o[e[2]]=i[e[3]]=a[e[4]]=t,r.push(t)});var s=r;function l(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},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(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u(e){var t=e.match(/\S+/g);return t?t.length:0}function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:navigator.userAgent;return/android/i.test(e)}var f={"zh-hans":"中文 (Zhōngwén)"};function h(e){if(!e)return null;if(e=e.toLocaleLowerCase(),f[e])return e;var t=g(e,["iso639_1"])||g(e,["iso639_2T"])||g(e,["iso639_2B","name","nativeName"]);return t?t.iso639_1:null}function p(e){if(!e)return null;if(e=e.toLocaleLowerCase(),f[e])return f[e];var t=g(e,["iso639_1"])||g(e,["iso639_2T"])||g(e,["iso639_2B","name","nativeName"]);return null!=t&&t.nativeName?t.nativeName.split(", ")[0]:null}function g(e,t){if(!e)return null;e=e.toLowerCase();var n,r=l(s);try{for(r.s();!(n=r.n()).done;){var o,i=n.value,a=l(t);try{for(a.s();!(o=a.n()).done;){var c;if(null!==(c=i[o.value])&&void 0!==c&&c.toLowerCase().split(", ").includes(e))return i}}catch(e){a.e(e)}finally{a.f()}}}catch(e){r.e(e)}finally{r.f()}return null}function m(){try{return!!window.localStorage}catch(e){return!1}}var y=-1!=location.toString().indexOf("_debugReadAloud=true")},593:function(e,t,n){n.d(t,{bg:function(){return $}}),n(5700),n(2675),n(9463),n(2259),n(8125),n(8706),n(113),n(3418),n(4423),n(3792),n(8598),n(2062),n(4782),n(4554),n(9572),n(4731),n(479),n(8130),n(2010),n(9085),n(2811),n(875),n(6099),n(3362),n(825),n(4864),n(7495),n(8781),n(1699),n(7764),n(1761),n(5906),n(5440),n(744),n(2762),n(8344),n(3500),n(2953);var r=n(1669);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,s(r.key),r)}}function a(e,t,n){return(t=s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}var l,c,u,d,f,h=function(){return e=function e(t,n){var o=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"selecting",!1),a(this,"startedInSelector",!1),a(this,"target",null),a(this,"lastKnownFocusNode",null),a(this,"_onSelectionChange",function(){var e=window.getSelection();if(!o.selecting&&e.toString()){var t=r(e.anchorNode).closest(o.selector)[0];if(!t)return;o.target=t,o.selecting=!0,o.lastKnownFocusNode=e.focusNode,o.handler("started",o.target)}o.selecting&&(o.lastKnownFocusNode!=e.focusNode||e.toString()&&!e.isCollapsed)&&(o.lastKnownFocusNode=e.focusNode,o.handler("focusChanged",o.target)),!o.selecting||!e.isCollapsed&&e.toString()&&r(e.anchorNode).closest(o.selector)[0]||(o.selecting=!1,o.handler("cleared",o.target))}),this.selector=t,this.handler=n},(t=[{key:"attach",value:function(){document.addEventListener("selectionchange",this._onSelectionChange)}},{key:"detach",value:function(){document.removeEventListener("selectionchange",this._onSelectionChange)}}])&&i(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}(),p=n(420),g=n(9696),m=(n(90),n(1669));function y(e){return y="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},y(e)}function v(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(v=function(){return!!e})()}function b(e){return b=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},b(e)}function w(e,t){return w=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},w(e,t)}function k(){k=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(n){t.forEach(function(t){t.kind===n&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var n=e.prototype;["method","field"].forEach(function(r){t.forEach(function(t){var o=t.placement;if(t.kind===r&&("static"===o||"prototype"===o)){var i="static"===o?e:n;this.defineClassElement(i,t)}},this)},this)},defineClassElement:function(e,t){var n=t.descriptor;if("field"===t.kind){var r=t.initializer;n={enumerable:n.enumerable,writable:n.writable,configurable:n.configurable,value:void 0===r?void 0:r.call(e)}}Object.defineProperty(e,t.key,n)},decorateClass:function(e,t){var n=[],r=[],o={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,o)},this),e.forEach(function(e){if(!E(e))return n.push(e);var t=this.decorateElement(e,o);n.push(t.element),n.push.apply(n,t.extras),r.push.apply(r,t.finishers)},this),!t)return{elements:n,finishers:r};var i=this.decorateConstructor(n,t);return r.push.apply(r,i.finishers),i.finishers=r,i},addElementPlacement:function(e,t,n){var r=t[e.placement];if(!n&&-1!==r.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");r.push(e.key)},decorateElement:function(e,t){for(var n=[],r=[],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),l=this.toElementFinisherExtras((0,o[i])(s)||s);e=l.element,this.addElementPlacement(e,t),l.finisher&&r.push(l.finisher);var c=l.extras;if(c){for(var u=0;u<c.length;u++)this.addElementPlacement(c[u],t);n.push.apply(n,c)}}return{element:e,finishers:r,extras:n}},decorateConstructor:function(e,t){for(var n=[],r=t.length-1;r>=0;r--){var o=this.fromClassDescriptor(e),i=this.toClassDescriptor((0,t[r])(o)||o);if(void 0!==i.finisher&&n.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:n}},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)||R(t)||_(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 n=q(e.key),r=e.placement+"";if("static"!==r&&"prototype"!==r&&"own"!==r)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 "'+r+'"');var o=e.descriptor;this.disallowProperty(e,"elements","An element descriptor");var i={kind:t,key:n,placement:r,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:x(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 n=x(e,"finisher");return{elements:this.toElementDescriptors(e.elements),finisher:n}},runClassFinishers:function(e,t){for(var n=0;n<t.length;n++){var r=(0,t[n])(e);if(void 0!==r){if("function"!=typeof r)throw new TypeError("Finishers must return a constructor.");e=r}}return e},disallowProperty:function(e,t,n){if(void 0!==e[t])throw new TypeError(n+" can't have a ."+t+" property.")}};return e}function S(e){var t,n=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 r={kind:"field"===e.kind?"field":"method",key:n,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(r.decorators=e.decorators),"field"===e.kind&&(r.initializer=e.value),r}function C(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function E(e){return e.decorators&&e.decorators.length}function T(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function x(e,t){var n=e[t];if(void 0!==n&&"function"!=typeof n)throw new TypeError("Expected '"+t+"' to be a function");return n}function j(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(y(e)+" is not iterable")}function L(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function i(n,r,o,i){var l=r&&r.prototype instanceof s?r:s,c=Object.create(l.prototype);return P(c,"_invoke",function(n,r,o){var i,s,l,c=0,u=o||[],d=!1,f={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,n){return i=t,s=0,l=e,f.n=n,a}};function h(n,r){for(s=n,l=r,t=0;!d&&c&&!o&&t<u.length;t++){var o,i=u[t],h=f.p,p=i[2];n>3?(o=p===r)&&(l=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=n<2&&h<i[1])?(s=0,f.v=r,f.n=i[1]):h<p&&(o=n<3||i[0]>r||r>p)&&(i[4]=n,i[5]=r,f.n=p,s=0))}if(o||n>1)return a;throw d=!0,r}return function(o,u,p){if(c>1)throw TypeError("Generator is already running");for(d&&1===u&&h(u,p),s=u,l=p;(t=s<2?e:l)||!d;){i||(s?s<3?(s>1&&(f.n=-1),h(s,l)):f.n=l:f.v=l);try{if(c=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(l=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(d=f.n<0)?l:n.call(r,f))!==a)break}catch(t){i=e,s=1,l=t}finally{c=1}}return{value:t,done:d}}}(n,o,i),!0),c}var a={};function s(){}function l(){}function c(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(P(t={},r,function(){return this}),t),d=c.prototype=s.prototype=Object.create(u);function f(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,P(e,o,"GeneratorFunction")),e.prototype=Object.create(d),e}return l.prototype=c,P(d,"constructor",c),P(c,"constructor",l),l.displayName="GeneratorFunction",P(c,o,"GeneratorFunction"),P(d),P(d,o,"Generator"),P(d,r,function(){return this}),P(d,"toString",function(){return"[object Generator]"}),(L=function(){return{w:i,m:f}})()}function P(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}P=function(e,t,n,r){function i(t,n){P(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},P(e,t,n,r)}var O=L().m(G),M=L().m(W);function A(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=_(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},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(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function _(e,t){if(e){if("string"==typeof e)return z(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?z(e,t):void 0}}function R(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function B(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function I(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function F(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,q(r.key),r)}}function D(e,t,n){return t&&F(e.prototype,t),n&&F(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function N(e,t,n){return(t=q(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function q(e){var t=function(e){if("object"!=y(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=y(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==y(t)?t:t+""}var $=function(){return D(function e(t,n,r,o){var i=this,a=r.selectionElement;I(this,e),N(this,"options",{maxProtectedWords:200}),N(this,"selectMenu",void 0),N(this,"selectionMenuEnabled",!1),N(this,"_onSelectionChange",function(e,t){if("started"===e)i.textSelectingMode(t);else if("cleared"===e)i.defaultMode(t);else if("focusChanged"!==e)throw new Error("Unknown type ".concat(e))}),N(this,"_limitSelection",function(){var e=window.getSelection();if(e.rangeCount){var t=e.getRangeAt(0),n=!!t.startContainer.parentElement.closest(".BRcontainer"),r=!!t.endContainer.parentElement.closest(".BRcontainer");if(n||r)if(n&&r){var o=function(e,t){var n,r=0,o=A(e);try{for(o.s();!(n=o.n()).done;){var i=n.value;if(r==t)return i;r++}}catch(e){o.e(e)}finally{o.f()}}(G(W(t.startContainer,t.endContainer),function(e){var t;return null===(t=e.classList)||void 0===t?void 0:t.contains(i.selectionElement[0].replace(".",""))}),i.options.maxProtectedWords-1);if(o&&t.endContainer.parentNode!=o){var a=document.createRange();a.setStart(t.startContainer,t.startOffset),a.setEnd(o.firstChild,o.textContent.length),e.removeAllRanges(),e.addRange(a)}}else e.removeAllRanges()}}),this.layer=t,this.br=n,this.selectionElement=a,this.selectionObserver=new h(this.layer,this._onSelectionChange),this.options.maxProtectedWords=o||200,this.selectMenu=new X(n),this.selectMenu.className="br-select-menu__root"},[{key:"init",value:function(){var e=this;this.attach(),new h(this.layer,function(t){var n;"started"==t&&(null===(n=e.br.plugins.archiveAnalytics)||void 0===n||n.sendEvent("BookReader","SelectStart"),e.br.refs.$br.find(".BRpagecontainer--hasSelection").removeClass("BRpagecontainer--hasSelection"),m(window.getSelection().anchorNode).closest(".BRpagecontainer").addClass("BRpagecontainer--hasSelection"),e.selectMenu.showMenu()),"focusChanged"==t&&(e.mouseIsDown?e.selectMenu.hideMenu():window.getSelection().toString()&&e.selectMenu.showMenu()),"cleared"==t&&e.selectMenu.hideMenu()}).attach()}},{key:"attach",value:function(){var e=this;this.selectionObserver.attach(),this.selectionMenuEnabled&&this.renderSelectionMenu(),this.br.protected&&(document.addEventListener("selectionchange",this._limitSelection),m(document.body).on("contextmenu dragstart copy",function(t){var n=document.getSelection();if(null!=n&&n.toString()&&m(e.layer).toArray().some(function(e){return n.containsNode(e,!0)}))return t.preventDefault(),!1}))}},{key:"detach",value:function(){this.selectionObserver.detach(),this.br.protected&&document.removeEventListener("selectionchange",this._limitSelection)}},{key:"renderSelectionMenu",value:function(){document.querySelector(".br-select-menu__option")||document.body.append(this.selectMenu)}},{key:"interceptCopy",value:function(e){e[0].addEventListener("copy",function(e){var t=document.getSelection();e.clipboardData.setData("text/plain",t.toString()),e.preventDefault()})}},{key:"stopPageFlip",value:function(e){var t=this,n=e.find(this.layer);n.length&&(n.each(function(e,n){return t.defaultMode(n)}),this.br.protected||this.interceptCopy(e))}},{key:"defaultMode",value:function(e){var t=this,n=m(e).closest(".BRpagecontainer");e.style.pointerEvents="none",n.find("img").css("pointer-events","auto"),m(e).off(".textSelectPluginHandler");var r=this.mouseIsDown,o=this.mouseIsDown;r&&(e.style.pointerEvents="auto"),m(e).on("mousedown.textSelectPluginHandler",function(e){t.mouseIsDown=!0,t.selectMenu.hideMenu(),m(e.target).is(t.selectionElement.join(", "))&&e.stopPropagation()}),m(e).on("mouseup.textSelectPluginHandler",function(n){t.mouseIsDown=!1,t.selectMenu.hideMenu(),e.style.pointerEvents="none",o&&(o=!1,n.stopPropagation())})}},{key:"textSelectingMode",value:function(e){var t=this,n=m(e).closest(".BRpagecontainer");e.style.pointerEvents="all",n.find("img").css("pointer-events","none"),m(e).off(".textSelectPluginHandler"),m(e).on("mousedown.textSelectPluginHandler",function(e){1==e.which&&(t.mouseIsDown=!0,e.stopPropagation(),t.selectMenu.hideMenu())}),m(e).on("mouseup.textSelectPluginHandler",function(e){t.mouseIsDown=!1,1==e.which&&(e.stopPropagation(),t.selectMenu.showMenu())})}}])}();function H(e,t){var n=e.toString().replace(/[\s]+/g," ").trim().split(" "),r=e.direction,o="backward"==r?e.focusNode:e.anchorNode,i="backward"==r?e.anchorNode:e.focusNode,a=o.textContent.replace(/[\s]+/g,"")?o.textContent:n[0],s=i.textContent.replace(/[\s]+/g,"")?i.textContent:n[n.length-1],u=RegExp.escape(a),h=RegExp.escape(s),p=new RegExp(String.raw(l||(l=B(["(?<=(",").*?)(",")"])),u,h),"gis"),g=new RegExp(String.raw(c||(c=B(["(",")(?=.*?(","))"])),u,h),"gis"),m=t.map(function(e){return e.textContent}).join(" ").replace(/\s+/g," "),y=m.matchAll(p).toArray(),v=m.matchAll(g).toArray();if(1==y.length&&1==v.length)return"text=".concat(encodeURIComponent(a),",").concat(encodeURIComponent(s));var b=document.createRange();b.setStart(t[0].firstElementChild,0),b.setEnd(o,0);var w=document.createRange();w.setStart(i,i.textContent.length);var k=function(e){for(;e.lastElementChild;)e=e.lastElementChild;return e}(t[t.length-1]);w.setEnd(k,Math.max(0,k.textContent.length-1));var S=function(e,t){t=t.trim();var n=new RegExp(String.raw(f||(f=B(["((^|s+)S+){1,","}s*?$"],["((^|\\s+)\\S+){1,","}\\s*?$"])),3)),r=t.match(n);return r?r[0].trim():""}(0,b.toString()).replace(/[ ]+/g," ").trim().replace(/^[^\n]*\n/gm,""),C=function(e,t){t=t.trim();var n=new RegExp(String.raw(d||(d=B(["^(S+(s+|$)){1,","}"],["^(\\S+(\\s+|$)){1,","}"])),3)),r=t.match(n);return r?r[0].trim():""}(0,w.toString()).replace(/[ ]+/g," ").trim().replace(/\n[^\n]*$/gm,""),E=e.toString().replace(/\s+/g," ").trim().split(/\s/g);0!=o.textContent.trim().length&&(o.textContent.includes(E[0])?E[0]=o.textContent:E.unshift(o.textContent)),0!=i.textContent.trim().length&&(i.textContent.includes(E[E.length-1])||E.push(i.textContent),E[E.length-1]=i.textContent);var T=[E.join(" ")];E.length>6&&(T=[E.slice(0,3).join(" "),E.slice(-3).join(" ")]);var x,j=[];return S&&j.push("".concat(S,"-")),j.push.apply(j,function(e){if(Array.isArray(e))return z(e)}(x=T)||R(x)||_(x)||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.")}()),C&&j.push("-".concat(C)),"text=".concat(j.map(encodeURIComponent).join(","))}function G(e,t){var n,r,o,i;return L().w(function(a){for(;;)switch(a.p=a.n){case 0:n=A(e),a.p=1,n.s();case 2:if((r=n.n()).done){a.n=4;break}if(o=r.value,!t(o)){a.n=3;break}return a.n=3,o;case 3:a.n=2;break;case 4:a.n=6;break;case 5:a.p=5,i=a.v,n.e(i);case 6:return a.p=6,n.f(),a.f(6);case 7:return a.a(2)}},O,null,[[1,5,6,7]])}function W(e,t){var n,r;return L().w(function(o){for(;;)switch(o.n){case 0:return r=function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=o.children,a=void 0===i||i,s=o.parents,l=void 0===s||s,c=o.siblings,u=void 0===c||c;return L().m(function o(){var i;return L().w(function(o){for(;;)switch(o.n){case 0:if(e!==t){o.n=2;break}return n=!0,o.n=1,e;case 1:return o.a(2);case 2:return o.n=3,e;case 3:if(!a||!e.firstChild){o.n=5;break}return o.d(j(r(e.firstChild,{children:!0,parents:!1,siblings:!0})),4);case 4:if(!n){o.n=5;break}return o.a(2);case 5:if(!u){o.n=9;break}i=e.nextSibling;case 6:if(!i){o.n=9;break}return o.d(j(r(i,{children:!0,parents:!1,siblings:!1})),7);case 7:if(!n){o.n=8;break}return o.a(2);case 8:i=i.nextSibling,o.n=6;break;case 9:if(!l||!e.parentNode){o.n=11;break}return o.d(j(r(e.parentNode,{children:!1,parents:!0,siblings:!0})),10);case 10:if(!n){o.n=11;break}return o.a(2);case 11:return o.a(2)}},o)})()},n=!1,o.d(j(r(e)),1);case 1:return o.a(2)}},M)}var K,U,Z,V,J,Y,X=(K=[(0,g.EM)("br-select-menu")],U=p.WF,V=k(),Z=function(e){V.initializeInstanceElements(e,Y.elements)},J={F:function(e){function t(e){var n;return I(this,t),n=function(e,t,n){return t=b(t),function(e,t){if(t&&("object"==y(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,v()?Reflect.construct(t,n||[],b(e).constructor):t.apply(e,n))}(this,t),Z(n),n.br=e,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&w(e,t)}(t,e),D(t)}(U),d:[{kind:"field",key:"br",value:void 0},{kind:"method",key:"createRenderRoot",value:function(){return this}},{kind:"method",key:"render",value:function(){return(0,p.qy)(u||(u=B(["\n <button @click=",' class="br-select-menu__option">\n <ia-icon-share class="br-select-menu__icon" aria-hidden="true"></ia-icon-share>\n <span class="br-select-menu__label">Copy Link to Highlight</span>\n </button>\n '])),this.handleCopyLinkToHighlight)}},{kind:"method",key:"handleCopyLinkToHighlight",value:function(e){e.preventDefault();var t=this.br.readQueryString(),n=window.getSelection(),r=n.anchorNode.parentElement.closest(".BRtextLayer"),o=H(n,Array.from(document.querySelectorAll(".BRpage-visible"))),i=t;t.includes("text=")?i=t.replace(/(text=)[\w\W\d%]+/,o):i+="".concat(i?"&":"?").concat(o);var a=window.location,s=a.pathname.toString().replace(/(?<=\/page\/)\d+(?=\/)/,r.parentElement.getAttribute("data-page-num")),l="".concat(a.origin).concat(s).concat(i).concat((null==a?void 0:a.hash)||"");navigator.clipboard.writeText(l)}},{kind:"method",key:"showMenu",value:function(){var e;if(null===(e=this.br.plugins.translate)||void 0===e||!e.userToggleTranslate){var t=window.getSelection(),n=t.anchorNode.parentElement,r=t.focusNode.parentElement,o=n.getBoundingClientRect(),i=r.getBoundingClientRect(),a=o.top-30,s=o.left-60;"backward"==t.direction&&(a=i.top-30,s=i.left-60),this.style.top="".concat(a,"px"),this.style.left="".concat(s,"px"),this.style.zIndex="1",this.style.position="absolute",this.style.display="block"}}},{kind:"field",key:"hideMenu",value:function(){var e=this;return function(){e.style.display="none"}}}]},Y=V.decorateClass(function(e){for(var t=[],n=function(e){return"method"===e.kind&&e.key===i.key&&e.placement===i.placement},r=0;r<e.length;r++){var o,i=e[r];if("method"===i.kind&&(o=t.find(n)))if(T(i.descriptor)||T(o.descriptor)){if(E(i)||E(o))throw new ReferenceError("Duplicated methods ("+i.key+") can't be decorated.");o.descriptor=i.descriptor}else{if(E(i)){if(E(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}(J.d.map(S)),K),V.initializeClassElements(J.F,Y.elements),V.runClassFinishers(J.F,Y.finishers))},4565:function(e,t,n){function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}function i(e){var t=function(e){if("object"!=r(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}n.d(t,{l:function(){return a}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(6099),n(7764),n(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)}]);
159
+ //# sourceMappingURL=plugin.translate.js.map
@@ -0,0 +1 @@
1
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */