@internetarchive/bookreader 5.0.0-11-multiple-files → 5.0.0-110

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/BookReader/474.js +2 -0
  2. package/BookReader/474.js.map +1 -0
  3. package/BookReader/BookReader.css +616 -1467
  4. package/BookReader/BookReader.js +2 -21564
  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 +1907 -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 -12
  56. package/BookReader/icons/2up.svg +1 -15
  57. package/BookReader/icons/advance.svg +3 -26
  58. package/BookReader/icons/chevron-right.svg +1 -1
  59. package/BookReader/icons/close-circle-dark.svg +1 -0
  60. package/BookReader/icons/close-circle.svg +1 -1
  61. package/BookReader/icons/fullscreen.svg +1 -17
  62. package/BookReader/icons/fullscreen_exit.svg +1 -17
  63. package/BookReader/icons/hamburger.svg +1 -15
  64. package/BookReader/icons/left-arrow.svg +1 -12
  65. package/BookReader/icons/magnify-minus.svg +1 -16
  66. package/BookReader/icons/magnify-plus.svg +1 -17
  67. package/BookReader/icons/magnify.svg +1 -15
  68. package/BookReader/icons/pause.svg +1 -23
  69. package/BookReader/icons/play.svg +1 -22
  70. package/BookReader/icons/playback-speed.svg +1 -34
  71. package/BookReader/icons/read-aloud.svg +1 -22
  72. package/BookReader/icons/review.svg +3 -22
  73. package/BookReader/icons/slider-toggle.svg +1 -0
  74. package/BookReader/icons/thumbnails.svg +1 -17
  75. package/BookReader/icons/voice.svg +1 -0
  76. package/BookReader/icons/volume-full.svg +1 -22
  77. package/BookReader/images/BRicons.svg +5 -94
  78. package/BookReader/images/books_graphic.svg +1 -177
  79. package/BookReader/images/hypothesis.ico +0 -0
  80. package/BookReader/images/icon_book.svg +1 -12
  81. package/BookReader/images/icon_bookmark.svg +1 -12
  82. package/BookReader/images/icon_experiment.svg +1 -0
  83. package/BookReader/images/icon_gear.svg +1 -14
  84. package/BookReader/images/icon_hamburger.svg +1 -20
  85. package/BookReader/images/icon_home.svg +1 -21
  86. package/BookReader/images/icon_info.svg +1 -11
  87. package/BookReader/images/icon_one_page.svg +1 -8
  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 -15
  91. package/BookReader/images/icon_search_button.svg +1 -8
  92. package/BookReader/images/icon_share.svg +1 -9
  93. package/BookReader/images/icon_skip-ahead.svg +1 -6
  94. package/BookReader/images/icon_skip-back.svg +2 -13
  95. package/BookReader/images/icon_speaker.svg +1 -18
  96. package/BookReader/images/icon_speaker_open.svg +1 -10
  97. package/BookReader/images/icon_thumbnails.svg +1 -12
  98. package/BookReader/images/icon_toc.svg +1 -5
  99. package/BookReader/images/icon_two_pages.svg +1 -9
  100. package/BookReader/images/marker_chap-off.svg +1 -11
  101. package/BookReader/images/marker_chap-on.svg +1 -11
  102. package/BookReader/images/marker_srch-on.svg +1 -11
  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 -172
  108. package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
  109. package/BookReader/plugins/plugin.autoplay.js +1 -165
  110. package/BookReader/plugins/plugin.autoplay.js.map +1 -1
  111. package/BookReader/plugins/plugin.chapters.js +19 -301
  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 -74
  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 -368
  122. package/BookReader/plugins/plugin.resume.js.map +1 -1
  123. package/BookReader/plugins/plugin.search.js +2 -1420
  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 +2 -1080
  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 +137 -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 +2 -9193
  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 +1 -269
  136. package/BookReader/plugins/plugin.url.js.map +1 -1
  137. package/BookReader/plugins/plugin.vendor-fullscreen.js +1 -379
  138. package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
  139. package/BookReader/plugins/translator-worker.js +2 -0
  140. package/BookReader/plugins/translator-worker.js.map +1 -0
  141. package/BookReader/silence.mp3 +0 -0
  142. package/BookReader/translator-worker.js +475 -0
  143. package/BookReader/webcomponents-bundle.js +3 -0
  144. package/BookReader/webcomponents-bundle.js.LICENSE.txt +9 -0
  145. package/BookReader/webcomponents-bundle.js.map +1 -0
  146. package/README.md +14 -3
  147. package/jsconfig.json +19 -0
  148. package/package.json +92 -70
  149. package/src/BookReader/BookModel.js +92 -46
  150. package/src/BookReader/DragScrollable.js +233 -0
  151. package/src/BookReader/ImageCache.js +49 -16
  152. package/src/BookReader/Mode1Up.js +66 -356
  153. package/src/BookReader/Mode1UpLit.js +392 -0
  154. package/src/BookReader/Mode2Up.js +87 -1315
  155. package/src/BookReader/Mode2UpLit.js +788 -0
  156. package/src/BookReader/ModeAbstract.js +43 -0
  157. package/src/BookReader/ModeCoordinateSpace.js +29 -0
  158. package/src/BookReader/ModeSmoothZoom.js +312 -0
  159. package/src/BookReader/ModeThumb.js +30 -16
  160. package/src/BookReader/Navbar/Navbar.js +201 -76
  161. package/src/BookReader/PageContainer.js +120 -23
  162. package/src/BookReader/ReduceSet.js +3 -3
  163. package/src/BookReader/Toolbar/Toolbar.js +19 -41
  164. package/src/BookReader/events.js +3 -3
  165. package/src/BookReader/options.js +94 -17
  166. package/src/BookReader/utils/HTMLDimensionsCacher.js +44 -0
  167. package/src/BookReader/utils/ScrollClassAdder.js +31 -0
  168. package/src/BookReader/utils/SelectionObserver.js +45 -0
  169. package/src/BookReader/utils/classes.js +1 -1
  170. package/src/BookReader/utils.js +141 -13
  171. package/src/BookReader.js +711 -1241
  172. package/src/BookReaderPlugin.js +52 -0
  173. package/src/assets/icons/close-circle-dark.svg +1 -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 -17
  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 +33 -27
  188. package/src/css/_BRnav.scss +74 -70
  189. package/src/css/_BRpages.scss +171 -42
  190. package/src/css/_BRsearch.scss +69 -235
  191. package/src/css/_BRtoolbar.scss +5 -5
  192. package/src/css/_TextSelection.scss +129 -24
  193. package/src/css/_colorbox.scss +2 -2
  194. package/src/css/_controls.scss +24 -7
  195. package/src/css/_icons.scss +14 -1
  196. package/src/{BookNavigator/assets → css}/button-base.js +10 -3
  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 +29 -25
  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 +44 -32
  209. package/src/{BookNavigator → plugins}/bookmarks/bookmarks-list.js +48 -49
  210. package/src/{BookNavigator → plugins}/bookmarks/bookmarks-loginCTA.js +5 -10
  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 +310 -201
  217. package/src/plugins/plugin.experiments.js +321 -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 +53 -50
  221. package/src/plugins/plugin.text_selection.js +522 -219
  222. package/src/plugins/plugin.vendor-fullscreen.js +7 -7
  223. package/src/plugins/search/plugin.search.js +380 -360
  224. package/src/{BookNavigator → plugins}/search/search-provider.js +94 -32
  225. package/src/{BookNavigator → plugins}/search/search-results.js +108 -90
  226. package/src/plugins/search/utils.js +50 -0
  227. package/src/plugins/search/view.js +79 -210
  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 +21 -31
  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 +191 -0
  238. package/src/plugins/{plugin.url.js → url/plugin.url.js} +47 -18
  239. package/src/util/TextSelectionManager.js +282 -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 -49
  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 -28
  253. package/.github/workflows/npm-publish.yml +0 -47
  254. package/.testcaferc.json +0 -5
  255. package/BookReader/bookreader-component-bundle.js +0 -14330
  256. package/BookReader/bookreader-component-bundle.js.LICENSE.txt +0 -38
  257. package/BookReader/bookreader-component-bundle.js.map +0 -1
  258. package/BookReader/icons/sort-ascending.svg +0 -1
  259. package/BookReader/icons/sort-descending.svg +0 -1
  260. package/BookReader/jquery-1.10.1.js +0 -108
  261. package/BookReader/jquery-1.10.1.js.LICENSE.txt +0 -24
  262. package/BookReader/plugins/plugin.menu_toggle.js +0 -369
  263. package/BookReader/plugins/plugin.menu_toggle.js.map +0 -1
  264. package/BookReader/plugins/plugin.mobile_nav.js +0 -335
  265. package/BookReader/plugins/plugin.mobile_nav.js.map +0 -1
  266. package/BookReaderDemo/BookReaderDemo.css +0 -41
  267. package/BookReaderDemo/BookReaderJSAdvanced.js +0 -115
  268. package/BookReaderDemo/BookReaderJSAutoplay.js +0 -56
  269. package/BookReaderDemo/BookReaderJSSimple.js +0 -55
  270. package/BookReaderDemo/IIIFBookReader.js +0 -207
  271. package/BookReaderDemo/assets/v5/Bookreader-logo-cool-grad.svg +0 -1
  272. package/BookReaderDemo/assets/v5/Bookreader-logo-flat.svg +0 -1
  273. package/BookReaderDemo/assets/v5/Bookreader-logo-hex-cool-grad.png +0 -0
  274. package/BookReaderDemo/assets/v5/Bookreader-logo-hex-flat.png +0 -0
  275. package/BookReaderDemo/assets/v5/Bookreader-logo-lines.png +0 -0
  276. package/BookReaderDemo/assets/v5/Bookreader-logo-lines.svg +0 -1
  277. package/BookReaderDemo/assets/v5/Bookreader-logo-warm.svg +0 -1
  278. package/BookReaderDemo/assets/v5/bookreader-logo-renders@1x.png +0 -0
  279. package/BookReaderDemo/assets/v5/bookreader-logo-renders@2x.png +0 -0
  280. package/BookReaderDemo/assets/v5/bookreader-v5-screenshot.png +0 -0
  281. package/BookReaderDemo/bookreader-template-bundle.js +0 -7178
  282. package/BookReaderDemo/demo-advanced.html +0 -33
  283. package/BookReaderDemo/demo-autoplay.html +0 -38
  284. package/BookReaderDemo/demo-embed-iframe-src.html +0 -84
  285. package/BookReaderDemo/demo-embed.html +0 -26
  286. package/BookReaderDemo/demo-fullscreen-mobile.html +0 -36
  287. package/BookReaderDemo/demo-fullscreen.html +0 -33
  288. package/BookReaderDemo/demo-iiif.html +0 -34
  289. package/BookReaderDemo/demo-iiif.js +0 -26
  290. package/BookReaderDemo/demo-internetarchive.html +0 -74
  291. package/BookReaderDemo/demo-multiple.html +0 -43
  292. package/BookReaderDemo/demo-plugin-menu-toggle.html +0 -34
  293. package/BookReaderDemo/demo-preview-pages.html +0 -1092
  294. package/BookReaderDemo/demo-simple.html +0 -34
  295. package/BookReaderDemo/demo-vendor-fullscreen.html +0 -36
  296. package/BookReaderDemo/immersion-1up.html +0 -64
  297. package/BookReaderDemo/immersion-mode.html +0 -35
  298. package/BookReaderDemo/toggle_controls.html +0 -53
  299. package/BookReaderDemo/view_mode.html +0 -39
  300. package/BookReaderDemo/viewmode-cycle.html +0 -41
  301. package/CHANGELOG.md +0 -476
  302. package/CONTRIBUTING.md +0 -7
  303. package/codecov.yml +0 -17
  304. package/index.html +0 -31
  305. package/karma.conf.js +0 -23
  306. package/screenshot.png +0 -0
  307. package/scripts/postversion.js +0 -10
  308. package/scripts/preversion.js +0 -14
  309. package/scripts/version.js +0 -26
  310. package/src/BookNavigator/BookModel.js +0 -14
  311. package/src/BookNavigator/BookNavigator.js +0 -451
  312. package/src/BookNavigator/assets/book-loader.js +0 -27
  313. package/src/BookNavigator/assets/icon_checkmark.js +0 -6
  314. package/src/BookNavigator/assets/icon_close.js +0 -3
  315. package/src/BookNavigator/assets/icon_sort_ascending.js +0 -5
  316. package/src/BookNavigator/assets/icon_sort_descending.js +0 -5
  317. package/src/BookNavigator/bookmarks/bookmarks-provider.js +0 -53
  318. package/src/BookNavigator/br-fullscreen-mgr.js +0 -83
  319. package/src/BookNavigator/downloads/downloads-provider.js +0 -66
  320. package/src/BookNavigator/search/a-search-result.js +0 -55
  321. package/src/BookNavigator/volumes/volumes-provider.js +0 -75
  322. package/src/BookNavigator/volumes/volumes.js +0 -161
  323. package/src/BookReader/DebugConsole.js +0 -54
  324. package/src/BookReaderComponent/BookReaderComponent.js +0 -112
  325. package/src/ItemNavigator/ItemNavigator.js +0 -372
  326. package/src/ItemNavigator/providers/sharing.js +0 -29
  327. package/src/assets/icons/sort-ascending.svg +0 -1
  328. package/src/assets/icons/sort-descending.svg +0 -1
  329. package/src/css/_MobileNav.scss +0 -194
  330. package/src/dragscrollable-br.js +0 -261
  331. package/src/plugins/menu_toggle/plugin.menu_toggle.js +0 -324
  332. package/src/plugins/plugin.mobile_nav.js +0 -287
  333. package/tests/BookReader/BookModel.test.js +0 -312
  334. package/tests/BookReader/BookReaderPublicFunctions.test.js +0 -171
  335. package/tests/BookReader/DebugConsole.test.js +0 -25
  336. package/tests/BookReader/ImageCache.test.js +0 -150
  337. package/tests/BookReader/Mode1Up.test.js +0 -164
  338. package/tests/BookReader/Mode2Up.test.js +0 -247
  339. package/tests/BookReader/Navbar/Navbar.test.js +0 -169
  340. package/tests/BookReader/PageContainer.test.js +0 -115
  341. package/tests/BookReader/ReduceSet.test.js +0 -38
  342. package/tests/BookReader/Toolbar/Toolbar.test.js +0 -26
  343. package/tests/BookReader/utils/classes.test.js +0 -88
  344. package/tests/BookReader/utils.test.js +0 -109
  345. package/tests/BookReader.options.test.js +0 -39
  346. package/tests/BookReader.test.js +0 -301
  347. package/tests/e2e/README.md +0 -75
  348. package/tests/e2e/autoplay.test.js +0 -13
  349. package/tests/e2e/base.test.js +0 -35
  350. package/tests/e2e/helpers/base.js +0 -258
  351. package/tests/e2e/helpers/debug.js +0 -13
  352. package/tests/e2e/helpers/desktopSearch.js +0 -72
  353. package/tests/e2e/helpers/mobileSearch.js +0 -85
  354. package/tests/e2e/helpers/mockSearch.js +0 -93
  355. package/tests/e2e/helpers/rightToLeft.js +0 -29
  356. package/tests/e2e/ia-production/ia-prod-base.js +0 -17
  357. package/tests/e2e/models/BookReader.js +0 -11
  358. package/tests/e2e/models/Navigation.js +0 -56
  359. package/tests/e2e/rightToLeft.test.js +0 -20
  360. package/tests/e2e/viewmode.test.js +0 -37
  361. package/tests/karma/BookNavigator/book-navigator.test.js +0 -132
  362. package/tests/karma/BookNavigator/bookmarks/bookmark-edit.test.js +0 -133
  363. package/tests/karma/BookNavigator/bookmarks/bookmarks-list.test.js +0 -222
  364. package/tests/karma/BookNavigator/search-results.test.js +0 -240
  365. package/tests/karma/BookNavigator/visual-adjustments.test.js +0 -201
  366. package/tests/karma/BookNavigator/volumes.test.js +0 -133
  367. package/tests/plugins/menu_toggle/plugin.menu_toggle.test.js +0 -68
  368. package/tests/plugins/plugin.archive_analytics.test.js +0 -23
  369. package/tests/plugins/plugin.autoplay.test.js +0 -52
  370. package/tests/plugins/plugin.chapters.test.js +0 -130
  371. package/tests/plugins/plugin.iframe.test.js +0 -42
  372. package/tests/plugins/plugin.mobile_nav.test.js +0 -66
  373. package/tests/plugins/plugin.resume.test.js +0 -98
  374. package/tests/plugins/plugin.text_selection.test.js +0 -203
  375. package/tests/plugins/plugin.url.test.js +0 -129
  376. package/tests/plugins/plugin.vendor-fullscreen.test.js +0 -65
  377. package/tests/plugins/search/plugin.search.test.js +0 -166
  378. package/tests/plugins/search/plugin.search.view.test.js +0 -106
  379. package/tests/plugins/tts/AbstractTTSEngine.test.js +0 -153
  380. package/tests/plugins/tts/FestivalTTSEngine.test.js +0 -59
  381. package/tests/plugins/tts/PageChunk.test.js +0 -57
  382. package/tests/plugins/tts/PageChunkIterator.test.js +0 -179
  383. package/tests/plugins/tts/WebTTSEngine.test.js +0 -126
  384. package/tests/plugins/tts/utils.test.js +0 -133
  385. package/tests/util/browserSniffing.test.js +0 -56
  386. package/tests/util/docCookies.test.js +0 -15
  387. package/tests/util/strings.test.js +0 -63
  388. package/tests/utils.js +0 -42
  389. package/webpack.config.js +0 -86
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins/plugin.experiments.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.object.from-entries.js","webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.experiments.js"],"sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://tc39.es/ecma262/#sec-object.fromentries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","// @ts-check\n/** @typedef {import(\"./BookReader.js\").default} BookReader */\n\n/**\n * @template TOptions\n */\nexport class BookReaderPlugin {\n /**\n * @param {BookReader} br\n */\n constructor(br) {\n /** @type {BookReader} */\n this.br = br;\n /** @type {TOptions} */\n this.options;\n }\n\n /**\n * @abstract\n * @param {TOptions} options\n **/\n setup(options) {\n this.options = Object.assign({}, this.options, options);\n }\n\n /** @abstract */\n init() {}\n\n /**\n * @abstract\n * @protected\n * @param {import (\"./BookReader/PageContainer.js\").PageContainer} pageContainer\n */\n _configurePageContainer(pageContainer) {\n }\n\n /**\n * @abstract\n * @protected\n * @param {JQuery<HTMLElement>} $toolbarElement\n */\n _configureToolbar($toolbarElement) {\n }\n\n /** @abstract @protected */\n _bindNavigationHandlers() {}\n\n /**\n * @param {JQuery<HTMLElement>} $navBar\n */\n extendNavBar($navBar) {}\n}\n","// @ts-check\nimport { css, html, LitElement } from 'lit';\nimport { BookReaderPlugin } from '../BookReaderPlugin.js';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { sleep } from '../BookReader/utils.js';\n\n// @ts-ignore\nconst BookReader = /** @type {typeof import('@/src/BookReader.js').default} */(window.BookReader);\n\nclass ExperimentModel {\n /** @type {string} test */\n name;\n /** @type {string} */\n title;\n /** @type {string} */\n description;\n /** @type {string} */\n icon;\n /** @type {boolean} */\n enabled;\n /** @type {string} */\n learnMore;\n\n /** @type {import(\"@/src/BookReader.js\").default} */\n br;\n\n assetRoot = '/BookReader/';\n\n enabledLoading = false;\n\n /**\n * @param {string} path\n */\n buildAssetPath(path) {\n return `${this.assetRoot}${path}`;\n }\n\n /**\n * @param {object} param0\n * @param {boolean} param0.manual Whether the experiment was enabled manually\n */\n async enable({ manual }) { }\n async disable() { }\n}\n\nexport class ExperimentsPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n\n /** Where the state of this plugin is saved in localStorage */\n localStorageKey: 'BrExperiments',\n\n /** The experiments that should be shown in the experiments panel */\n enabledExperiments: ['translate'],\n }\n\n /** @type {ExperimentModel[]} */\n allExperiments = [\n new class extends ExperimentModel {\n name = 'translate';\n title = 'Translate Plugin';\n description = \"Translate books directly in your browser.\";\n learnMore = 'https://mozilla.github.io/translations/';\n icon = 'images/translate.svg';\n enabled = false;\n async enable({ manual = false}) {\n if (BookReader.PLUGINS.translate) return;\n\n await importAsScript(this.buildAssetPath('plugins/plugin.translate.js'));\n this.br.initializePlugin('translate');\n }\n async disable() {\n // need to reload to remove translate plugin script\n // Sleep so that the event loop can finish processing before the reload\n sleep(0).then(() => {\n window.location.reload();\n });\n }\n }(),\n new class extends ExperimentModel {\n name = 'hypothesis';\n title = 'Hypothes.is';\n description = 'Create public, collaborative, or fully private annotations on books and the web.';\n learnMore = 'https://web.hypothes.is/about/';\n icon = 'images/hypothesis.ico';\n enabled = false;\n\n async enable({ manual = false }) {\n // Hypothesis configs ; see https://h.readthedocs.io/projects/client/en/latest/publishers/config.html\n const configScript = document.createElement('script');\n configScript.type = 'application/json';\n configScript.className = 'js-hypothesis-config';\n configScript.textContent = JSON.stringify({\n // Open the sidebar if this is the first time enabling\n openSidebar: manual,\n assetRoot: this.buildAssetPath('hypothesis/'),\n });\n\n document.head.appendChild(configScript);\n return importAsScript(this.buildAssetPath('hypothesis/build/boot.js'));\n // For testing\n // return importAsScript('http://localhost:3001/hypothesis');\n }\n\n async disable() {\n // need to reload to remove the Hypothesis script\n // Sleep so that the event loop can finish processing before the reload\n sleep(0).then(() => {\n window.location.reload();\n });\n }\n }(),\n ]\n\n /** @type {BrExperimentsPanel} */\n _panel;\n\n async init() {\n if (!this.options.enabled) {\n return;\n }\n\n for (const experiment of this.allExperiments) {\n // TODO: imagesBaseURL should be replaced with assetRoot everywhere\n experiment.assetRoot = this.br.options.imagesBaseURL.replace(/images\\/$/, '');\n experiment.icon = experiment.buildAssetPath(experiment.icon);\n experiment.br = this.br;\n }\n\n this._loadExperimentStates();\n await Promise.resolve();\n this._render();\n }\n\n _loadExperimentStates() {\n const savedStates = JSON.parse(localStorage.getItem(this.options.localStorageKey) || '{}');\n this.allExperiments.forEach(experiment => {\n if (savedStates[experiment.name] !== undefined) {\n experiment.enabled = savedStates[experiment.name];\n if (experiment.enabled) {\n experiment.enable({ manual: false });\n }\n }\n });\n }\n\n _saveExperimentStates() {\n const states = Object.fromEntries(\n this.allExperiments.map(experiment => [experiment.name, experiment.enabled]),\n );\n localStorage.setItem(this.options.localStorageKey, JSON.stringify(states));\n }\n\n /**\n * @param {ExperimentModel} experiment\n * @param {boolean} enabled\n */\n async _toggleExperiment(experiment, enabled) {\n experiment.enabledLoading = true;\n this.br.plugins.archiveAnalytics?.sendEvent(`BRExperiment-${experiment.name}`, enabled ? 'Enable' : 'Disable');\n this._panel.requestUpdate();\n\n if (enabled) {\n await experiment.enable({ manual: true });\n } else {\n await experiment.disable();\n }\n experiment.enabledLoading = false;\n experiment.enabled = enabled;\n this._panel.requestUpdate();\n }\n\n _render() {\n this.br.shell.menuProviders['experiments'] = {\n id: 'experiments',\n icon: html`\n <img src=\"${this.br.options.imagesBaseURL}/icon_experiment.svg\" alt=\"\" width=\"26\"/>\n `,\n label: 'Experiments',\n component: html`<br-experiments-panel\n .experiments=\"${this.allExperiments.filter(experiment => this.options.enabledExperiments.includes(experiment.name))}\"\n @connected=\"${e => this._panel = e.target}\"\n @toggle=\"${async e => {\n await this._toggleExperiment(e.detail.experiment, e.detail.enabled);\n this._saveExperimentStates();\n }}\"\n />`,\n };\n this.br.shell.updateMenuContents();\n }\n}\nBookReader?.registerPlugin('experiments', ExperimentsPlugin);\n\n@customElement('br-experiments-panel')\nexport class BrExperimentsPanel extends LitElement {\n\n /** @type {ExperimentModel[]} */\n @property({ type: Array }) experiments = [];\n\n render() {\n return html`\n <div style=\"padding: 10px\">\n ${this.experiments.map(\n experiment => html`\n <br-experiment-toggle\n .icon=\"${experiment.icon}\"\n .title=\"${experiment.title}\"\n .description=\"${experiment.description}\"\n .enabled=\"${experiment.enabled}\"\n .loading=\"${experiment.enabledLoading}\"\n .learnMore=\"${experiment.learnMore}\"\n @toggle=\"${e => this._dispatchToggle(experiment, e.detail.enabled)}\"\n ></br-experiment-toggle>\n `,\n )}\n </div>\n `;\n }\n\n /**\n * @param {ExperimentModel} experiment\n * @param {boolean} enabled\n */\n async _dispatchToggle(experiment, enabled) {\n this.dispatchEvent(new CustomEvent('toggle', {\n detail: { experiment, enabled },\n }));\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.dispatchEvent(new CustomEvent('connected'));\n }\n}\n\n@customElement('br-experiment-toggle')\nexport class BrExperimentToggle extends LitElement {\n @property({ type: String }) icon = '';\n @property({ type: String }) title = '';\n @property({ type: String }) description = '';\n @property({ type: Boolean }) enabled = false;\n @property({ type: Boolean }) loading = false;\n @property({ type: String }) learnMore = '';\n\n /**\n * We want to disable the button immediately if loading, but only display\n * the loading indicator after 200ms.\n */\n @state() _longLoading = false;\n\n /** @override */\n update(changedProperties) {\n super.update(changedProperties);\n if (changedProperties.has('loading')) {\n if (this.loading) {\n sleep(500).then(() => {\n if (this.loading) {\n this._longLoading = true;\n this.requestUpdate();\n }\n });\n } else {\n this._longLoading = false;\n }\n }\n }\n\n render() {\n return html`\n <div class=\"experiment-card\" style=\"margin-bottom: 10px;\">\n <div style=\"display: flex; align-items: center; gap: 10px;\">\n <img src=\"${this.icon}\" style=\"width: 20px; height: 20px;\" alt=\"\" />\n <div style=\"flex-grow: 1; font-weight: bold;\">${this.title}</div>\n </div>\n <p style=\"opacity: 0.9\">\n ${this.description}\n ${this.learnMore ? html`<a href=\"${this.learnMore}\" target=\"_blank\">Learn more</a>.` : ''}\n </p>\n <div style=\"display: flex\">\n <div style=\"flex-grow: 1;\"></div>\n <button @click=\"${this._dispatchToggle}\" .disabled=\"${this.loading}\">\n ${this._longLoading ? 'Loading…' : this.enabled ? 'Disable' : 'Enable'}\n </button>\n </div>\n </div>\n `;\n }\n\n static get styles() {\n return css`\n .experiment-card {\n border-radius: 8px;\n background-color: #fff2;\n padding: 10px;\n display: flex;\n flex-direction: column;\n }\n\n .experiment-card p {\n margin: 6px 0;\n }\n `;\n }\n\n _dispatchToggle() {\n this.dispatchEvent(new CustomEvent('toggle', { detail: { enabled: !this.enabled } }));\n }\n}\n\n/**\n * @param {string} url\n */\nasync function importAsScript(url) {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = url;\n script.onload = () => resolve();\n script.onerror = () => reject(new Error(`Failed to load script: ${url}`));\n document.head.appendChild(script);\n });\n}\n"],"names":["$","iterate","createProperty","target","stat","fromEntries","iterable","obj","k","v","AS_ENTRIES","BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","create","_regeneratorDefine2","f","p","y","G","a","d","bind","length","l","TypeError","call","done","return","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_defineProperties","_toPropertyKey","_createClass","_defineProperty","_typeof","toPrimitive","String","_toPrimitive","BookReader","window","ExperimentModel","path","concat","assetRoot","_enable","_callee","_ref","_context","manual","_x","_disable","_callee2","_context2","ExperimentsPlugin","_BookReaderPlugin","_this","_len","args","Array","_key","_callSuper","enabled","localStorageKey","enabledExperiments","_ExperimentModel2","_class","_this2","_len2","_key2","_inherits","_enable2","_callee3","_ref2","_context3","PLUGINS","translate","importAsScript","buildAssetPath","initializePlugin","_x2","_disable2","_callee4","_context4","sleep","location","reload","_ExperimentModel3","_class2","_this3","_len3","_key3","_enable3","_callee5","_ref3","_ref3$manual","configScript","_context5","document","createElement","type","className","textContent","JSON","stringify","openSidebar","head","appendChild","_x3","_disable3","_callee6","_context6","_init","_callee7","_iterator","_step","experiment","_context7","_createForOfIteratorHelper","allExperiments","s","imagesBaseURL","replace","icon","err","_loadExperimentStates","_render","savedStates","parse","localStorage","getItem","forEach","undefined","name","enable","states","map","setItem","_toggleExperiment2","_callee8","_this$br$plugins$arch","_context8","enabledLoading","plugins","archiveAnalytics","sendEvent","_panel","requestUpdate","disable","_x4","_x5","_this4","shell","menuProviders","id","html","_templateObject","_taggedTemplateLiteral","label","component","_templateObject2","filter","includes","_ref4","_callee9","_context9","_toggleExperiment","detail","_saveExperimentStates","_x6","updateMenuContents","_x9","_importAsScript","_callee1","url","_context1","reject","script","src","onload","onerror","Error","registerPlugin","_decorate","customElement","_initialize","_LitElement","_dispatchToggle2","BrExperimentsPanel","_LitElement2","_this5","_len4","_key4","F","kind","decorators","property","_this6","_templateObject3","experiments","_templateObject4","title","description","learnMore","_dispatchToggle","_callee0","_context0","dispatchEvent","CustomEvent","_x7","_x8","_superPropGet","LitElement","_initialize2","_LitElement3","BrExperimentToggle","_LitElement4","_this7","_len5","_key5","Boolean","state","changedProperties","_this8","has","loading","_longLoading","_templateObject5","_templateObject6","static","css","_templateObject7"],"sourceRoot":""}
@@ -1,75 +1,2 @@
1
- (self["webpackChunk_internetarchive_bookreader"] = self["webpackChunk_internetarchive_bookreader"] || []).push([["plugins/plugin.iframe.js"],{
2
-
3
- /***/ "./src/plugins/plugin.iframe.js":
4
- /*!**************************************!*\
5
- !*** ./src/plugins/plugin.iframe.js ***!
6
- \**************************************/
7
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8
-
9
- "use strict";
10
- __webpack_require__.r(__webpack_exports__);
11
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12
- /* harmony export */ "_attachEventListeners": function() { return /* binding */ _attachEventListeners; }
13
- /* harmony export */ });
14
- /* global BookReader */
15
-
16
- /**
17
- * Plugin for two-way communication between a BookReader in an IFrame and the
18
- * parent web page
19
- */
20
- var MESSAGE_TYPE_FRAGMENT_CHANGE = 'bookReaderFragmentChange';
21
-
22
- BookReader.prototype.init = function (super_) {
23
- return function () {
24
- super_.call(this);
25
-
26
- _attachEventListeners(this);
27
- };
28
- }(BookReader.prototype.init);
29
- /**
30
- * @private
31
- * Using window.postMessage() and event listeners, the plugin notifies the
32
- * parent window when pages change, and the parent window can also
33
- * explicitly request a page change by sending its own message.
34
- *
35
- * @param {BookReader} br
36
- * @param {Window?} [parent]
37
- */
38
-
39
-
40
- function _attachEventListeners(br) {
41
- var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.parent;
42
-
43
- // Not embedded, abort
44
- if (!parent) {
45
- return;
46
- }
47
-
48
- br.bind(BookReader.eventNames.fragmentChange, function () {
49
- var fragment = br.fragmentFromParams(br.paramsFromCurrent());
50
- parent.postMessage({
51
- type: MESSAGE_TYPE_FRAGMENT_CHANGE,
52
- fragment: fragment
53
- }, '*');
54
- });
55
- window.addEventListener('message', function (event) {
56
- // Not a recognized message type, abort
57
- if (!event.data || event.data.type !== MESSAGE_TYPE_FRAGMENT_CHANGE) {
58
- return;
59
- }
60
-
61
- br.updateFromParams(br.paramsFromFragment(event.data.fragment));
62
- });
63
- }
64
-
65
- /***/ })
66
-
67
- },
68
- /******/ function(__webpack_require__) { // webpackRuntimeModules
69
- /******/ "use strict";
70
- /******/
71
- /******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
72
- /******/ var __webpack_exports__ = (__webpack_exec__("./src/plugins/plugin.iframe.js"));
73
- /******/ }
74
- ]);
1
+ "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[240],{7038:function(e,a,t){var n,r="bookReaderFragmentChange";BookReader.prototype.init=(n=BookReader.prototype.init,function(){n.call(this),function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window.parent;a&&(e.bind(BookReader.eventNames.fragmentChange,function(){var t=e.fragmentFromParams(e.paramsFromCurrent());a.postMessage({type:r,fragment:t},"*")}),window.addEventListener("message",function(a){a.data&&a.data.type===r&&e.updateFromParams(e.paramsFromFragment(a.data.fragment))}))}(this)})}},function(e){e(e.s=7038)}]);
75
2
  //# sourceMappingURL=plugin.iframe.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://@internetarchive/bookreader/./src/plugins/plugin.iframe.js"],"names":["MESSAGE_TYPE_FRAGMENT_CHANGE","BookReader","prototype","init","super_","call","_attachEventListeners","br","parent","window","bind","eventNames","fragmentChange","fragment","fragmentFromParams","paramsFromCurrent","postMessage","type","addEventListener","event","data","updateFromParams","paramsFromFragment"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;AACA;AACA;AACA;AAEA,IAAMA,4BAA4B,GAAG,0BAArC;;AAEAC,UAAU,CAACC,SAAX,CAAqBC,IAArB,GAA6B,UAAUC,MAAV,EAAkB;AAC7C,SAAO,YAAY;AACjBA,UAAM,CAACC,IAAP,CAAY,IAAZ;;AACAC,yBAAqB,CAAC,IAAD,CAArB;AACD,GAHD;AAID,CAL2B,CAKzBL,UAAU,CAACC,SAAX,CAAqBC,IALI,CAA5B;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASG,qBAAT,CAA+BC,EAA/B,EAA2D;AAAA,MAAxBC,MAAwB,uEAAfC,MAAM,CAACD,MAAQ;;AAChE;AACA,MAAI,CAACA,MAAL,EAAa;AACX;AACD;;AAEDD,IAAE,CAACG,IAAH,CAAQT,UAAU,CAACU,UAAX,CAAsBC,cAA9B,EAA8C,YAAM;AAClD,QAAMC,QAAQ,GAAGN,EAAE,CAACO,kBAAH,CAAsBP,EAAE,CAACQ,iBAAH,EAAtB,CAAjB;AAEAP,UAAM,CAACQ,WAAP,CACE;AAAEC,UAAI,EAAEjB,4BAAR;AAAsCa,cAAQ,EAARA;AAAtC,KADF,EAEE,GAFF;AAID,GAPD;AASAJ,QAAM,CAACS,gBAAP,CAAwB,SAAxB,EAAmC,UAAAC,KAAK,EAAI;AAC1C;AACA,QAAI,CAACA,KAAK,CAACC,IAAP,IAAeD,KAAK,CAACC,IAAN,CAAWH,IAAX,KAAoBjB,4BAAvC,EAAqE;AACnE;AACD;;AAEDO,MAAE,CAACc,gBAAH,CAAoBd,EAAE,CAACe,kBAAH,CAAsBH,KAAK,CAACC,IAAN,CAAWP,QAAjC,CAApB;AACD,GAPD;AAQD,C","file":"plugins/plugin.iframe.js","sourcesContent":["/* global BookReader */\n/**\n * Plugin for two-way communication between a BookReader in an IFrame and the\n * parent web page\n */\n\nconst MESSAGE_TYPE_FRAGMENT_CHANGE = 'bookReaderFragmentChange';\n\nBookReader.prototype.init = (function (super_) {\n return function () {\n super_.call(this);\n _attachEventListeners(this);\n };\n})(BookReader.prototype.init);\n\n/**\n * @private\n * Using window.postMessage() and event listeners, the plugin notifies the\n * parent window when pages change, and the parent window can also\n * explicitly request a page change by sending its own message.\n *\n * @param {BookReader} br\n * @param {Window?} [parent]\n */\nexport function _attachEventListeners(br, parent = window.parent) {\n // Not embedded, abort\n if (!parent) {\n return;\n }\n\n br.bind(BookReader.eventNames.fragmentChange, () => {\n const fragment = br.fragmentFromParams(br.paramsFromCurrent());\n\n parent.postMessage(\n { type: MESSAGE_TYPE_FRAGMENT_CHANGE, fragment },\n '*'\n );\n });\n\n window.addEventListener('message', event => {\n // Not a recognized message type, abort\n if (!event.data || event.data.type !== MESSAGE_TYPE_FRAGMENT_CHANGE) {\n return;\n }\n\n br.updateFromParams(br.paramsFromFragment(event.data.fragment));\n });\n}\n"],"sourceRoot":""}
1
+ {"version":3,"file":"plugins/plugin.iframe.js","mappings":"+IAMA,IAEuCA,EAFjCC,EAA+B,2BAErCC,WAAWC,UAAUC,MAAkBJ,EAKpCE,WAAWC,UAAUC,KAJf,WACLJ,EAAOK,KAAKC,MAcT,SAA+BC,GAA4B,IAAxBC,EAAMC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGG,OAAOJ,OAEnDA,IAILD,EAAGM,KAAKX,WAAWY,WAAWC,eAAgB,WAC5C,IAAMC,EAAWT,EAAGU,mBAAmBV,EAAGW,qBAE1CV,EAAOW,YACL,CAAEC,KAAMnB,EAA8Be,SAAAA,GACtC,IAEJ,GAEAJ,OAAOS,iBAAiB,UAAW,SAAAC,GAE5BA,EAAMC,MAAQD,EAAMC,KAAKH,OAASnB,GAIvCM,EAAGiB,iBAAiBjB,EAAGkB,mBAAmBH,EAAMC,KAAKP,UACvD,GACF,CApCIU,CAAsBpB,KACxB,E","sources":["webpack://@internetarchive/bookreader/./src/plugins/plugin.iframe.js"],"sourcesContent":["/* global BookReader */\n/**\n * Plugin for two-way communication between a BookReader in an IFrame and the\n * parent web page\n */\n\nconst MESSAGE_TYPE_FRAGMENT_CHANGE = 'bookReaderFragmentChange';\n\nBookReader.prototype.init = (function (super_) {\n return function () {\n super_.call(this);\n _attachEventListeners(this);\n };\n})(BookReader.prototype.init);\n\n/**\n * @private\n * Using window.postMessage() and event listeners, the plugin notifies the\n * parent window when pages change, and the parent window can also\n * explicitly request a page change by sending its own message.\n *\n * @param {BookReader} br\n * @param {Window?} [parent]\n */\nexport function _attachEventListeners(br, parent = window.parent) {\n // Not embedded, abort\n if (!parent) {\n return;\n }\n\n br.bind(BookReader.eventNames.fragmentChange, () => {\n const fragment = br.fragmentFromParams(br.paramsFromCurrent());\n\n parent.postMessage(\n { type: MESSAGE_TYPE_FRAGMENT_CHANGE, fragment },\n '*',\n );\n });\n\n window.addEventListener('message', event => {\n // Not a recognized message type, abort\n if (!event.data || event.data.type !== MESSAGE_TYPE_FRAGMENT_CHANGE) {\n return;\n }\n\n br.updateFromParams(br.paramsFromFragment(event.data.fragment));\n });\n}\n"],"names":["super_","MESSAGE_TYPE_FRAGMENT_CHANGE","BookReader","prototype","init","call","this","br","parent","arguments","length","undefined","window","bind","eventNames","fragmentChange","fragment","fragmentFromParams","paramsFromCurrent","postMessage","type","addEventListener","event","data","updateFromParams","paramsFromFragment","_attachEventListeners"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[69],{1041:function(t,e,n){function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function r(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,i(o.key),o)}}function i(t){var e=function(t){if("object"!=o(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==o(e)?e:e+""}n.d(e,{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 t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.br=e,this.options},(e=[{key:"setup",value:function(t){this.options=Object.assign({},this.options,t)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(t){}},{key:"_configureToolbar",value:function(t){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(t){}}])&&r(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()},8847:function(t,e,n){n(2675),n(9463),n(2259),n(5700),n(8706),n(3792),n(2062),n(9572),n(8130),n(9085),n(3851),n(875),n(9432),n(6099),n(825),n(888),n(7764),n(3500),n(2953);var o=n(1041);function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function i(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,l(o.key),o)}}function a(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(a=function(){return!!t})()}function u(){return u="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,n){var o=function(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=c(t)););return t}(t,e);if(o){var r=Object.getOwnPropertyDescriptor(o,e);return r.get?r.get.call(arguments.length<3?t:n):r.value}},u.apply(null,arguments)}function c(t){return c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},c(t)}function f(t,e){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},f(t,e)}function l(t){var e=function(t){if("object"!=r(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==r(e)?e:e+""}var s=window.BookReader,p=function(t){function e(){var t,n,o,i;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);for(var u=arguments.length,f=new Array(u),s=0;s<u;s++)f[s]=arguments[s];return t=function(t,e,n){return e=c(e),function(t,e){if(e&&("object"==r(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,a()?Reflect.construct(e,n||[],c(t).constructor):e.apply(t,n))}(this,e,[].concat(f)),n=t,i={enabled:!0,manifest:null},(o=l(o="options"))in n?Object.defineProperty(n,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[o]=i,t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&f(t,e)}(e,t),n=e,o=[{key:"setup",value:function(t){var n,o,r;(n=e,o=this,"function"==typeof(r=u(c(1&3?n.prototype:n),"setup",o))?function(t){return r.apply(o,t)}:r)([t]),this.manifest=this.options.manifest,this.options.enabled&&Object.assign(this.br.options,this.load())}},{key:"load",value:function(){if("http://iiif.io/api/presentation/2/context.json"==this.manifest["@context"]){var t=this.manifest;return this.manifestToBookReaderV2(t)}if("http://iiif.io/api/presentation/3/context.json"==this.manifest["@context"]){var e=this.manifest;return this.manifestToBookReaderV3(e)}throw new Error("Unsupported IIIF context "+this.manifest["@context"])}},{key:"manifestToBookReaderV3",value:function(t){var e={bookTitle:b(t.label),pageProgression:"right-to-left"==t.viewingDirection?"rl":"lr",metadata:(t.metadata||[]).map(function(t){return{label:b(t.label),value:b(t.value)}}),data:[],getPageURI:function(e,n,o){var r=Math.floor(100/n),i=t.items[e].items[0].items[0].body,a=(i instanceof Array?i[0]:i).service[0].id;return"".concat(a,"/full/pct:").concat(r,"/0/default.jpg")}};"top-to-bottom"!=t.viewingDirection&&"bottom-to-top"!=t.viewingDirection||console.warn("Unsupported viewingDirection",t.viewingDirection);var n=[];return t.items.forEach(function(o,r){var i=t.items[r].items[0].items[0].body,a={uri:(i instanceof Array?i[0]:i).service[0].id,width:o.width,height:o.height,pageNum:b(o.label)};n.push(a),r%2==0&&(e.data.push(n),n=[])}),n.length>0&&e.data.push(n),e}},{key:"manifestToBookReaderV2",value:function(t){var e,n={bookTitle:t.label,metadata:t.metadata,thumbnail:null===(e=t.thumbnail)||void 0===e?void 0:e["@id"],data:[],getPageURI:function(e,n,o){var r=Math.floor(100/n),i=t.sequences[0].canvases[e].images[0].resource.service["@id"];return"".concat(i,"/full/pct:").concat(r,"/0/default.jpg")}},o=[];return t.sequences[0].canvases.forEach(function(t,e){var r={uri:t.images[0].resource.service["@id"],width:t.width,height:t.height,pageNum:t.label};o.push(r),e%2==0&&(n.data.push(o),o=[])}),o.length>0&&n.data.push(o),n}}],o&&i(n.prototype,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,o}(o.S);function b(t){var e=Object.keys(t)[0];return(t[navigator.language]||t[e])[0]}null==s||s.registerPlugin("iiif",p)}},function(t){t(t.s=8847)}]);
2
+ //# sourceMappingURL=plugin.iiif.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins/plugin.iiif.js","mappings":"w6BAMO,IAAMA,EAAgB,WAW3B,O,EAPA,SAAAA,EAAYC,I,4FAAIC,CAAA,KAAAF,GAEdG,KAAKF,GAAKA,EAEVE,KAAKC,OACP,G,EAEA,EAAAC,IAAA,QAAAC,MAIA,SAAMF,GACJD,KAAKC,QAAUG,OAAOC,OAAO,CAAC,EAAGL,KAAKC,QAASA,EACjD,GAEA,CAAAC,IAAA,OAAAC,MACA,WAAQ,GAER,CAAAD,IAAA,0BAAAC,MAKA,SAAwBG,GACxB,GAEA,CAAAJ,IAAA,oBAAAC,MAKA,SAAkBI,GAClB,GAEA,CAAAL,IAAA,0BAAAC,MACA,WAA2B,GAE3B,CAAAD,IAAA,eAAAC,MAGA,SAAaK,GAAU,M,6EAAC,CA5CG,E,0iDCH7B,IAAMC,EAAmEC,OAAOD,WAEnEE,EAAU,SAAAC,GAAA,SAAAD,IAAA,IAAAE,E,mGAAAd,CAAA,KAAAY,GAAA,QAAAG,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAKpB,OALoBN,E,qYAAAO,CAAA,KAAAT,EAAA,GAAAU,OAAAJ,I,EAAAJ,E,EACX,CACRS,SAAS,EAETC,SAAU,O,MAJS,c,wFAKpBV,CAAA,Q,qRAAAW,CAAAb,EAAAC,G,EAAAD,E,EAAA,EAAAT,IAAA,QAAAC,MAED,SAAMF,G,aACJU,E,EAAA,K,2BAAA,E,eAAA,Q,wCAAA,CAAYV,IACZD,KAAKuB,SAAWvB,KAAKC,QAAQsB,SAEzBvB,KAAKC,QAAQqB,SACflB,OAAOC,OAAOL,KAAKF,GAAGG,QAASD,KAAKyB,OAExC,GAAC,CAAAvB,IAAA,OAAAC,MAED,WACE,GAAiC,kDAA7BH,KAAKuB,SAAS,YAAiE,CACjF,IAAMA,EAAkEvB,KAAKuB,SAC7E,OAAOvB,KAAK0B,uBAAuBH,EACrC,CAAO,GAAiC,kDAA7BvB,KAAKuB,SAAS,YAAiE,CACxF,IAAMA,EAAkEvB,KAAKuB,SAC7E,OAAOvB,KAAK2B,uBAAuBJ,EACrC,CACE,MAAM,IAAIK,MAAM,4BAA8B5B,KAAKuB,SAAS,YAEhE,GAEA,CAAArB,IAAA,yBAAAC,MAGA,SAAuBoB,GAErB,IAAMM,EAAO,CACXC,UAAWC,EAA2BR,EAASS,OAC/CC,gBAA8C,iBAA7BV,EAASW,iBAAsC,KAAO,KAEvEC,UAAWZ,EAASY,UAAY,IAAIC,IAAI,SAACD,GACvC,MAAO,CACLH,MAAOD,EAA2BI,EAASH,OAC3C7B,MAAO4B,EAA2BI,EAAShC,OAE/C,GACAkC,KAAM,GAINC,WAAU,SAACC,EAAWC,EAAQC,GAC5B,IAAMC,EAAUC,KAAKC,MAAM,IAAUJ,GAC/BK,EAAUtB,EAASuB,MAAMP,GAAWO,MAAM,GAAGA,MAAM,GAAGC,KAEtDC,GADOH,aAAmB3B,MAAQ2B,EAAQ,GAAKA,GACpCI,QAAQ,GAAGC,GAC5B,MAAO,GAAP7B,OAAU2B,EAAG,cAAA3B,OAAaqB,EAAO,iBACnC,GAG+B,iBAA7BnB,EAASW,kBAAoE,iBAA7BX,EAASW,kBAC3DiB,QAAQC,KAAK,+BAAgC7B,EAASW,kBAGxD,IAAImB,EAAS,GAqBb,OApBA9B,EAASuB,MAAMQ,QAAQ,SAACC,EAAMC,GAC5B,IAAMX,EAAUtB,EAASuB,MAAMU,GAAOV,MAAM,GAAGA,MAAM,GAAGC,KAIlDU,EAAW,CACfT,KAJWH,aAAmB3B,MAAQ2B,EAAQ,GAAKA,GACpCI,QAAQ,GAAGC,GAI1BQ,MAAOH,EAAKG,MACZC,OAAQJ,EAAKI,OACbC,QAAS7B,EAA2BwB,EAAKvB,QAE3CqB,EAAOQ,KAAKJ,GACRD,EAAQ,GAAK,IACf3B,EAAKQ,KAAKwB,KAAKR,GACfA,EAAS,GAEb,GACIA,EAAOrC,OAAS,GAClBa,EAAKQ,KAAKwB,KAAKR,GAEVxB,CACT,GAEA,CAAA3B,IAAA,yBAAAC,MAGA,SAAuBoB,GAAU,IAAAuC,EAEzBjC,EAAO,CACXC,UAAWP,EAASS,MACpBG,SAAUZ,EAASY,SACnB4B,UAA6B,QAApBD,EAAEvC,EAASwC,iBAAS,IAAAD,OAAA,EAAlBA,EAAqB,OAEhCzB,KAAM,GAINC,WAAU,SAACC,EAAWC,EAAQC,GAC5B,IAAMC,EAAUC,KAAKC,MAAM,IAAUJ,GAC/BQ,EAAMzB,EAASyC,UAAU,GAAGC,SAAS1B,GAAW2B,OAAO,GAAGC,SAASlB,QAAQ,OACjF,MAAO,GAAP5B,OAAU2B,EAAG,cAAA3B,OAAaqB,EAAO,iBACnC,GAGEW,EAAS,GAkBb,OAjBA9B,EAASyC,UAAU,GAAGC,SAASX,QAAQ,SAACc,EAAQZ,GAE9C,IAAMC,EAAW,CACfT,IAAKoB,EAAOF,OAAO,GAAGC,SAASlB,QAAQ,OACvCS,MAAOU,EAAOV,MACdC,OAAQS,EAAOT,OACfC,QAASQ,EAAOpC,OAElBqB,EAAOQ,KAAKJ,GACRD,EAAQ,GAAK,IACf3B,EAAKQ,KAAKwB,KAAKR,GACfA,EAAS,GAEb,GACIA,EAAOrC,OAAS,GAClBa,EAAKQ,KAAKwB,KAAKR,GAEVxB,CACT,I,gFAAC,CA5HoB,CAAShC,EAAAA,GAkIhC,SAASkC,EAA2BsC,GAClC,IAAMC,EAAUlE,OAAOmE,KAAKF,GAAqB,GACjD,OAAQA,EAAoBG,UAAUC,WAAaJ,EAAoBC,IAAU,EACnF,CAEA7D,SAAAA,EAAYiE,eAAe,OAAQ/D,E","sources":["webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.iiif.js"],"sourcesContent":["// @ts-check\n/** @typedef {import(\"./BookReader.js\").default} BookReader */\n\n/**\n * @template TOptions\n */\nexport class BookReaderPlugin {\n /**\n * @param {BookReader} br\n */\n constructor(br) {\n /** @type {BookReader} */\n this.br = br;\n /** @type {TOptions} */\n this.options;\n }\n\n /**\n * @abstract\n * @param {TOptions} options\n **/\n setup(options) {\n this.options = Object.assign({}, this.options, options);\n }\n\n /** @abstract */\n init() {}\n\n /**\n * @abstract\n * @protected\n * @param {import (\"./BookReader/PageContainer.js\").PageContainer} pageContainer\n */\n _configurePageContainer(pageContainer) {\n }\n\n /**\n * @abstract\n * @protected\n * @param {JQuery<HTMLElement>} $toolbarElement\n */\n _configureToolbar($toolbarElement) {\n }\n\n /** @abstract @protected */\n _bindNavigationHandlers() {}\n\n /**\n * @param {JQuery<HTMLElement>} $navBar\n */\n extendNavBar($navBar) {}\n}\n","// @ts-check\nimport { BookReaderPlugin } from '../BookReaderPlugin.js';\n\nconst BookReader = /** @type {typeof import('../BookReader').default} */(window.BookReader);\n\nexport class IiifPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n /** @type {import('@iiif/presentation-3').Manifest | import('@iiif/presentation-2').Manifest} */\n manifest: null,\n }\n\n setup(options) {\n super.setup(options);\n this.manifest = this.options.manifest;\n\n if (this.options.enabled) {\n Object.assign(this.br.options, this.load());\n }\n }\n\n load() {\n if (this.manifest[\"@context\"] == \"http://iiif.io/api/presentation/2/context.json\") {\n const manifest = /** @type {import('@iiif/presentation-2').Manifest} */(this.manifest);\n return this.manifestToBookReaderV2(manifest);\n } else if (this.manifest[\"@context\"] == \"http://iiif.io/api/presentation/3/context.json\") {\n const manifest = /** @type {import('@iiif/presentation-3').Manifest} */(this.manifest);\n return this.manifestToBookReaderV3(manifest);\n } else {\n throw new Error(\"Unsupported IIIF context \" + this.manifest[\"@context\"]);\n }\n }\n\n /**\n * @param {import('@iiif/presentation-3').Manifest} manifest\n */\n manifestToBookReaderV3(manifest) {\n /** @type {import('../BookReader/options.js').BookReaderOptions} */\n const book = {\n bookTitle: resolveInternationalString(manifest.label),\n pageProgression: manifest.viewingDirection == \"right-to-left\" ? \"rl\" : \"lr\",\n // numLeafs: manifest.items.length,\n metadata: (manifest.metadata || []).map((metadata) => {\n return {\n label: resolveInternationalString(metadata.label),\n value: resolveInternationalString(metadata.value),\n };\n }),\n data: [],\n /**\n * @this {import('../BookReader.js').default}\n */\n getPageURI(pageIndex, reduce, rotate) {\n const percent = Math.floor(100 * 1 / reduce);\n const bodyArr = manifest.items[pageIndex].items[0].items[0].body;\n const body = bodyArr instanceof Array ? bodyArr[0] : bodyArr;\n const uri = body.service[0].id;\n return `${uri}/full/pct:${percent}/0/default.jpg`;\n },\n };\n\n if (manifest.viewingDirection == \"top-to-bottom\" || manifest.viewingDirection == \"bottom-to-top\") {\n console.warn(\"Unsupported viewingDirection\", manifest.viewingDirection);\n }\n\n let spread = [];\n manifest.items.forEach((item, index) => {\n const bodyArr = manifest.items[index].items[0].items[0].body;\n const body = bodyArr instanceof Array ? bodyArr[0] : bodyArr;\n const uri = body.service[0].id;\n /** @type {import('../BookReader/options.js').PageData} */\n const pageData = {\n uri,\n width: item.width,\n height: item.height,\n pageNum: resolveInternationalString(item.label),\n };\n spread.push(pageData);\n if (index % 2 == 0) {\n book.data.push(spread);\n spread = [];\n }\n });\n if (spread.length > 0) {\n book.data.push(spread);\n }\n return book;\n }\n\n /**\n * @param {import('@iiif/presentation-2').Manifest} manifest\n */\n manifestToBookReaderV2(manifest) {\n /** @type {import('../BookReader/options.js').BookReaderOptions} */\n const book = {\n bookTitle: manifest.label,\n metadata: manifest.metadata,\n thumbnail: manifest.thumbnail?.['@id'],\n // numLeafs: manifest.sequences[0].canvases.length,\n data: [],\n /**\n * @this {import('../BookReader.js').default}\n */\n getPageURI(pageIndex, reduce, rotate) {\n const percent = Math.floor(100 * 1 / reduce);\n const uri = manifest.sequences[0].canvases[pageIndex].images[0].resource.service['@id'];\n return `${uri}/full/pct:${percent}/0/default.jpg`;\n },\n };\n\n let spread = [];\n manifest.sequences[0].canvases.forEach((canvas, index) => {\n /** @type {import('../BookReader/options.js').PageData} */\n const pageData = {\n uri: canvas.images[0].resource.service['@id'],\n width: canvas.width,\n height: canvas.height,\n pageNum: canvas.label,\n };\n spread.push(pageData);\n if (index % 2 == 0) {\n book.data.push(spread);\n spread = [];\n }\n });\n if (spread.length > 0) {\n book.data.push(spread);\n }\n return book;\n }\n}\n\n/**\n * @param {import('@iiif/presentation-3').InternationalString} internationalString\n */\nfunction resolveInternationalString(internationalString) {\n const anyLang = Object.keys(internationalString)[0];\n return (internationalString[navigator.language] || internationalString[anyLang])[0];\n}\n\nBookReader?.registerPlugin('iiif', IiifPlugin);\n"],"names":["BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","BookReader","window","IiifPlugin","_BookReaderPlugin","_this","_len","arguments","length","args","Array","_key","_callSuper","concat","enabled","manifest","_inherits","load","manifestToBookReaderV2","manifestToBookReaderV3","Error","book","bookTitle","resolveInternationalString","label","pageProgression","viewingDirection","metadata","map","data","getPageURI","pageIndex","reduce","rotate","percent","Math","floor","bodyArr","items","body","uri","service","id","console","warn","spread","forEach","item","index","pageData","width","height","pageNum","push","_manifest$thumbnail","thumbnail","sequences","canvases","images","resource","canvas","internationalString","anyLang","keys","navigator","language","registerPlugin"],"sourceRoot":""}
@@ -1,369 +1,2 @@
1
- (self["webpackChunk_internetarchive_bookreader"] = self["webpackChunk_internetarchive_bookreader"] || []).push([["plugins/plugin.resume.js"],{
2
-
3
- /***/ "./src/plugins/plugin.resume.js":
4
- /*!**************************************!*\
5
- !*** ./src/plugins/plugin.resume.js ***!
6
- \**************************************/
7
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8
-
9
- "use strict";
10
- __webpack_require__.r(__webpack_exports__);
11
- /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
12
- /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);
13
- /* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.match.js */ "./node_modules/core-js/modules/es.string.match.js");
14
- /* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_1__);
15
- /* harmony import */ var _util_docCookies_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/docCookies.js */ "./src/util/docCookies.js");
16
- /* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "jquery");
17
-
18
-
19
-
20
- /* global BookReader */
21
-
22
- /** @deprecated Exposed for backward compatibility */
23
-
24
- BookReader.docCookies = _util_docCookies_js__WEBPACK_IMPORTED_MODULE_2__;
25
- /**
26
- * Plugin to remember the current page number in a cookie
27
- */
28
-
29
- jQuery.extend(BookReader.defaultOptions, {
30
- enablePageResume: true,
31
-
32
- /** @type {string|null} eg '/', '/details/id' */
33
- resumeCookiePath: null
34
- });
35
- /** @override */
36
-
37
- BookReader.prototype.init = function (super_) {
38
- return function () {
39
- var _this = this;
40
-
41
- super_.call(this);
42
-
43
- if (this.options.enablePageResume) {
44
- this.bind(BookReader.eventNames.fragmentChange, function () {
45
- var params = _this.paramsFromCurrent();
46
-
47
- _this.updateResumeValue(params.index);
48
- });
49
- }
50
- };
51
- }(BookReader.prototype.init);
52
- /**
53
- * Gets page resume value, for remembering reader's page
54
- * Can be overridden for different implementation
55
- *
56
- * @return {number|null}
57
- */
58
-
59
-
60
- BookReader.prototype.getResumeValue = function () {
61
- var val = BookReader.docCookies.getItem('br-resume');
62
- if (val !== null) return parseInt(val);else return null;
63
- };
64
- /**
65
- * Return cookie path using pathname up to /page/... or /mode/...
66
- * using window.location.pathname for urlPathPart:
67
- * - matches encoding
68
- * - ignores querystring part
69
- * - ignores fragment part (after #)
70
- * @param {string} urlPathPart - window.location.pathname
71
- */
72
-
73
-
74
- BookReader.prototype.getCookiePath = function (urlPathPart) {
75
- return urlPathPart.match('.+?(?=/page/|/mode/|$)')[0];
76
- };
77
- /**
78
- * Sets page resume value, for remembering reader's page
79
- * Can be overridden for different implementation
80
- *
81
- * @param {Number} index leaf index
82
- * @param {string} [cookieName]
83
- */
84
-
85
-
86
- BookReader.prototype.updateResumeValue = function (index, cookieName) {
87
- var ttl = new Date(+new Date() + 12096e5); // 2 weeks
88
- // For multiple files in item, leave resumeCookiePath blank
89
- // It's likely we can remove resumeCookiePath using getCookiePath()
90
-
91
- var path = this.options.resumeCookiePath || this.getCookiePath(window.location.pathname);
92
- BookReader.docCookies.setItem(cookieName || 'br-resume', index, ttl, path, null, false);
93
- };
94
-
95
- /***/ }),
96
-
97
- /***/ "./src/util/docCookies.js":
98
- /*!********************************!*\
99
- !*** ./src/util/docCookies.js ***!
100
- \********************************/
101
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
102
-
103
- "use strict";
104
- __webpack_require__.r(__webpack_exports__);
105
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
106
- /* harmony export */ "getItem": function() { return /* binding */ getItem; },
107
- /* harmony export */ "setItem": function() { return /* binding */ setItem; },
108
- /* harmony export */ "removeItem": function() { return /* binding */ removeItem; }
109
- /* harmony export */ });
110
- /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
111
- /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);
112
- /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
113
- /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__);
114
- /* harmony import */ var core_js_modules_es_regexp_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.regexp.constructor.js */ "./node_modules/core-js/modules/es.regexp.constructor.js");
115
- /* harmony import */ var core_js_modules_es_regexp_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_constructor_js__WEBPACK_IMPORTED_MODULE_2__);
116
- /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
117
- /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_3__);
118
-
119
-
120
-
121
-
122
-
123
- /**
124
- * Helper module use to get, set and remove item from cookie
125
- *
126
- * See more:
127
- * https://developer.mozilla.org/en-US/docs/Web/API/document.cookie
128
- * https://developer.mozilla.org/User:fusionchess
129
- * https://github.com/madmurphy/cookies.js
130
- * This framework is released under the GNU Public License, version 3 or later.
131
- * http://www.gnu.org/licenses/gpl-3.0-standalone.html
132
- */
133
-
134
- /**
135
- * Get specific key's value stored in cookie
136
- *
137
- * @param {string} sKey
138
- *
139
- * @returns {string|null}
140
- */
141
- function getItem(sKey) {
142
- if (!sKey) return null;
143
- return decodeURIComponent( // eslint-disable-next-line no-useless-escape
144
- document.cookie.replace(new RegExp('(?:(?:^|.*;)\\s*' + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, '\\$&') + '\\s*\\=\\s*([^;]*).*$)|^.*$'), '$1')) || null;
145
- }
146
- /**
147
- * Set specific key's value in cookie
148
- *
149
- * @param {string} sKey cookie name
150
- * @param {string} sValue cookie value
151
- * @param {string} [vEnd] expire|max-age
152
- * @param {string} [sPath] path of current item
153
- * @param {string} [sDomain] domain name
154
- * @param {boolean} [bSecure]
155
- *
156
- * @returns {true}
157
- */
158
-
159
- function setItem(sKey, sValue, vEnd, sPath, sDomain, bSecure) {
160
- document.cookie = encodeURIComponent(sKey) + '=' + encodeURIComponent(sValue) + (vEnd ? "; expires=".concat(vEnd.toUTCString()) : '') + (sDomain ? "; domain=".concat(sDomain) : '') + (sPath ? "; path=".concat(sPath) : '') + (bSecure ? "; secure" : '');
161
- return true;
162
- }
163
- /**
164
- * BROKEN Remove specific key's value from cookie
165
- * @fixme hasItem isn't even implemented! This will always error.
166
- * @param {string} sKey cookie name
167
- * @param {string} [sPath] path of current item
168
- * @param {string} [sDomain]
169
- *
170
- * @returns {boolean}
171
- */
172
-
173
- function removeItem(sKey, sPath, sDomain) {
174
- // eslint-disable-next-line
175
- if (!hasItem(sKey)) return false;
176
- document.cookie = encodeURIComponent(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + (sDomain ? "; domain=".concat(sDomain) : '') + (sPath ? "; path=".concat(sPath) : '');
177
- return true;
178
- }
179
-
180
- /***/ }),
181
-
182
- /***/ "./node_modules/core-js/internals/inherit-if-required.js":
183
- /*!***************************************************************!*\
184
- !*** ./node_modules/core-js/internals/inherit-if-required.js ***!
185
- \***************************************************************/
186
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
187
-
188
- var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
189
- var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "./node_modules/core-js/internals/object-set-prototype-of.js");
190
-
191
- // makes subclassing work correct for wrapped built-ins
192
- module.exports = function ($this, dummy, Wrapper) {
193
- var NewTarget, NewTargetPrototype;
194
- if (
195
- // it can work only with native `setPrototypeOf`
196
- setPrototypeOf &&
197
- // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
198
- typeof (NewTarget = dummy.constructor) == 'function' &&
199
- NewTarget !== Wrapper &&
200
- isObject(NewTargetPrototype = NewTarget.prototype) &&
201
- NewTargetPrototype !== Wrapper.prototype
202
- ) setPrototypeOf($this, NewTargetPrototype);
203
- return $this;
204
- };
205
-
206
-
207
- /***/ }),
208
-
209
- /***/ "./node_modules/core-js/modules/es.regexp.constructor.js":
210
- /*!***************************************************************!*\
211
- !*** ./node_modules/core-js/modules/es.regexp.constructor.js ***!
212
- \***************************************************************/
213
- /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
214
-
215
- var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
216
- var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
217
- var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js");
218
- var inheritIfRequired = __webpack_require__(/*! ../internals/inherit-if-required */ "./node_modules/core-js/internals/inherit-if-required.js");
219
- var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f;
220
- var getOwnPropertyNames = __webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js").f;
221
- var isRegExp = __webpack_require__(/*! ../internals/is-regexp */ "./node_modules/core-js/internals/is-regexp.js");
222
- var getFlags = __webpack_require__(/*! ../internals/regexp-flags */ "./node_modules/core-js/internals/regexp-flags.js");
223
- var stickyHelpers = __webpack_require__(/*! ../internals/regexp-sticky-helpers */ "./node_modules/core-js/internals/regexp-sticky-helpers.js");
224
- var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
225
- var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
226
- var enforceInternalState = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js").enforce;
227
- var setSpecies = __webpack_require__(/*! ../internals/set-species */ "./node_modules/core-js/internals/set-species.js");
228
- var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
229
-
230
- var MATCH = wellKnownSymbol('match');
231
- var NativeRegExp = global.RegExp;
232
- var RegExpPrototype = NativeRegExp.prototype;
233
- var re1 = /a/g;
234
- var re2 = /a/g;
235
-
236
- // "new" should create a new object, old webkit bug
237
- var CORRECT_NEW = new NativeRegExp(re1) !== re1;
238
-
239
- var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;
240
-
241
- var FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {
242
- re2[MATCH] = false;
243
- // RegExp constructor can alter flags and IsRegExp works correct with @@match
244
- return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';
245
- })));
246
-
247
- // `RegExp` constructor
248
- // https://tc39.es/ecma262/#sec-regexp-constructor
249
- if (FORCED) {
250
- var RegExpWrapper = function RegExp(pattern, flags) {
251
- var thisIsRegExp = this instanceof RegExpWrapper;
252
- var patternIsRegExp = isRegExp(pattern);
253
- var flagsAreUndefined = flags === undefined;
254
- var sticky;
255
-
256
- if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {
257
- return pattern;
258
- }
259
-
260
- if (CORRECT_NEW) {
261
- if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;
262
- } else if (pattern instanceof RegExpWrapper) {
263
- if (flagsAreUndefined) flags = getFlags.call(pattern);
264
- pattern = pattern.source;
265
- }
266
-
267
- if (UNSUPPORTED_Y) {
268
- sticky = !!flags && flags.indexOf('y') > -1;
269
- if (sticky) flags = flags.replace(/y/g, '');
270
- }
271
-
272
- var result = inheritIfRequired(
273
- CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),
274
- thisIsRegExp ? this : RegExpPrototype,
275
- RegExpWrapper
276
- );
277
-
278
- if (UNSUPPORTED_Y && sticky) {
279
- var state = enforceInternalState(result);
280
- state.sticky = true;
281
- }
282
-
283
- return result;
284
- };
285
- var proxy = function (key) {
286
- key in RegExpWrapper || defineProperty(RegExpWrapper, key, {
287
- configurable: true,
288
- get: function () { return NativeRegExp[key]; },
289
- set: function (it) { NativeRegExp[key] = it; }
290
- });
291
- };
292
- var keys = getOwnPropertyNames(NativeRegExp);
293
- var index = 0;
294
- while (keys.length > index) proxy(keys[index++]);
295
- RegExpPrototype.constructor = RegExpWrapper;
296
- RegExpWrapper.prototype = RegExpPrototype;
297
- redefine(global, 'RegExp', RegExpWrapper);
298
- }
299
-
300
- // https://tc39.es/ecma262/#sec-get-regexp-@@species
301
- setSpecies('RegExp');
302
-
303
-
304
- /***/ }),
305
-
306
- /***/ "./node_modules/core-js/modules/es.string.match.js":
307
- /*!*********************************************************!*\
308
- !*** ./node_modules/core-js/modules/es.string.match.js ***!
309
- \*********************************************************/
310
- /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
311
-
312
- "use strict";
313
-
314
- var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js");
315
- var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
316
- var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
317
- var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
318
- var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ "./node_modules/core-js/internals/advance-string-index.js");
319
- var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ "./node_modules/core-js/internals/regexp-exec-abstract.js");
320
-
321
- // @@match logic
322
- fixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {
323
- return [
324
- // `String.prototype.match` method
325
- // https://tc39.es/ecma262/#sec-string.prototype.match
326
- function match(regexp) {
327
- var O = requireObjectCoercible(this);
328
- var matcher = regexp == undefined ? undefined : regexp[MATCH];
329
- return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
330
- },
331
- // `RegExp.prototype[@@match]` method
332
- // https://tc39.es/ecma262/#sec-regexp.prototype-@@match
333
- function (regexp) {
334
- var res = maybeCallNative(nativeMatch, regexp, this);
335
- if (res.done) return res.value;
336
-
337
- var rx = anObject(regexp);
338
- var S = String(this);
339
-
340
- if (!rx.global) return regExpExec(rx, S);
341
-
342
- var fullUnicode = rx.unicode;
343
- rx.lastIndex = 0;
344
- var A = [];
345
- var n = 0;
346
- var result;
347
- while ((result = regExpExec(rx, S)) !== null) {
348
- var matchStr = String(result[0]);
349
- A[n] = matchStr;
350
- if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
351
- n++;
352
- }
353
- return n === 0 ? null : A;
354
- }
355
- ];
356
- });
357
-
358
-
359
- /***/ })
360
-
361
- },
362
- /******/ function(__webpack_require__) { // webpackRuntimeModules
363
- /******/ "use strict";
364
- /******/
365
- /******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
366
- /******/ var __webpack_exports__ = (__webpack_exec__("./src/plugins/plugin.resume.js"));
367
- /******/ }
368
- ]);
1
+ "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[555],{1041:function(e,t,n){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 r(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,i(o.key),o)}}function i(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+""}n.d(t,{S:function(){return u}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var u=function(){return 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){}}])&&r(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()},4442:function(e,t,n){var o={};n.r(o),n.d(o,{areCookiesBlocked:function(){return u},getItem:function(){return f},removeItem:function(){return s},setItem:function(){return l}}),n(2675),n(9463),n(2259),n(3792),n(875),n(6099),n(825),n(7764),n(2953),n(5700),n(8706),n(9572),n(8130),n(8940),n(7495),n(1761);var r=n(8340),i=n(1041);function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;try{return e.cookie,!1}catch(e){return!0}}n(4864),n(8781),n(5440);var c,a=u();function f(e){return a||!e?null:decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(e).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null}function l(e,t,n,o,r,i){return!a&&(document.cookie=encodeURIComponent(e)+"="+encodeURIComponent(t)+(n?"; expires=".concat(n.toUTCString()):"")+(r?"; domain=".concat(r):"")+(o?"; path=".concat(o):"")+(i?"; secure":""),!0)}function s(e,t,n){return!a&&!!hasItem(e)&&(document.cookie=encodeURIComponent(e)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT"+(n?"; domain=".concat(n):"")+(t?"; path=".concat(t):""),!0)}function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function y(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,d(o.key),o)}}function b(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(b=function(){return!!e})()}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}function v(e,t){return v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},v(e,t)}function d(e){var t=function(e){if("object"!=p(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=p(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==p(t)?t:t+""}BookReader.docCookies=o;var h=function(e){function t(){var e,n,o,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,u=new Array(i),c=0;c<i;c++)u[c]=arguments[c];return e=function(e,t,n){return t=m(t),function(e,t){if(t&&("object"==p(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,b()?Reflect.construct(t,n||[],m(e).constructor):t.apply(e,n))}(this,t,[].concat(u)),n=e,r={enabled:!0,cookiePath:null},(o=d(o="options"))in n?Object.defineProperty(n,o,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[o]=r,e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&v(e,t)}(t,e),n=t,(o=[{key:"init",value:function(){var e=this;this.options.enabled&&this.br.bind(r.q.fragmentChange,function(){var t=e.br.paramsFromCurrent();e.updateResumeValue(t.index)})}},{key:"getResumeValue",value:function(){var e=BookReader.docCookies.getItem("br-resume");return null!==e?parseInt(e):null}},{key:"getCookiePath",value:function(e){return e.match(".+?(?=/page/|/mode/|$)")[0]}},{key:"updateResumeValue",value:function(e,t){var n=new Date(+new Date+12096e5),o=this.options.cookiePath||this.getCookiePath(window.location.pathname);BookReader.docCookies.setItem(t||"br-resume",e,n,o,null,!1)}}])&&y(n.prototype,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,o}(i.S);null===(c=BookReader)||void 0===c||c.registerPlugin("resume",h)}},function(e){e(e.s=4442)}]);
369
2
  //# sourceMappingURL=plugin.resume.js.map