@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
@@ -1,173 +1,2 @@
1
- (self["webpackChunk_internetarchive_bookreader"] = self["webpackChunk_internetarchive_bookreader"] || []).push([["plugins/plugin.archive_analytics.js"],{
2
-
3
- /***/ "./src/plugins/plugin.archive_analytics.js":
4
- /*!*************************************************!*\
5
- !*** ./src/plugins/plugin.archive_analytics.js ***!
6
- \*************************************************/
7
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8
-
9
- "use strict";
10
- __webpack_require__.r(__webpack_exports__);
11
- /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
12
- /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);
13
- /* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.match.js */ "./node_modules/core-js/modules/es.string.match.js");
14
- /* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_1__);
15
- /* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "jquery");
16
-
17
-
18
-
19
- /* global BookReader, archive_analytics */
20
-
21
- /**
22
- * Plugin for Archive.org analytics
23
- */
24
- jQuery.extend(BookReader.defaultOptions, {
25
- enableArchiveAnalytics: true,
26
-
27
- /** Provide a means of debugging, cause otherwise it's impossible to test locally */
28
- debugArchiveAnaltyics: false
29
- });
30
-
31
- BookReader.prototype.init = function (super_) {
32
- return function () {
33
- var _this = this;
34
-
35
- super_.call(this);
36
-
37
- if (this.options.enableArchiveAnalytics) {
38
- this.bind(BookReader.eventNames.fragmentChange, function () {
39
- return _this.archiveAnalyticsSendFragmentChange();
40
- });
41
- }
42
- };
43
- }(BookReader.prototype.init);
44
- /** @private */
45
-
46
-
47
- BookReader.prototype.archiveAnalyticsSendFragmentChange = function () {
48
- if (!window.archive_analytics) {
49
- return;
50
- }
51
-
52
- var prevFragment = this.archiveAnalyticsSendFragmentChange.prevFragment;
53
- var params = this.paramsFromCurrent();
54
- var newFragment = this.fragmentFromParams(params);
55
-
56
- if (prevFragment != newFragment) {
57
- var values = {
58
- bookreader: "user_changed_view",
59
- itemid: this.bookId,
60
- cache_bust: Math.random()
61
- }; // EEK! offsite embedding and /details/ page books look the same in analytics, otherwise!
62
-
63
- values.offsite = 1;
64
- values.details = 0;
65
-
66
- try {
67
- values.offsite = window.top.location.hostname.match(/\.archive.org$/) ? 0 : 1;
68
- values.details = !values.offsite && window.top.location.pathname.match(/^\/details\//) ? 1 : 0;
69
- } catch (e) {} // avoids embed cross site exceptions -- but on (+) side, means it is and keeps marked offite!
70
- // Send bookreader ping
71
-
72
-
73
- archive_analytics.send_ping(values, null, "augment_for_ao_site"); // Also send tracking event ping
74
-
75
- var additionalEventParams = this.options.lendingInfo && this.options.lendingInfo.loanId ? {
76
- loanId: this.options.lendingInfo.loanId
77
- } : {};
78
- archive_analytics.send_event('BookReader', 'UserChangedView', window.location.pathname, additionalEventParams);
79
- this.archiveAnalyticsSendFragmentChange.prevFragment = newFragment;
80
- }
81
- };
82
- /**
83
- * Sends a tracking "Event". See https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#events
84
- * @param {string} category
85
- * @param {string} action
86
- * @param {number} [value] (must be an int)
87
- * @param {Object} [additionalEventParams]
88
- */
89
-
90
-
91
- BookReader.prototype.archiveAnalyticsSendEvent = function (category, action, value, additionalEventParams) {
92
- if (!this.options.enableArchiveAnalytics) return;
93
-
94
- if (this.options.debugArchiveAnaltyics) {
95
- console.log("archiveAnalyticsSendEvent", arguments, window.archive_analytics);
96
- }
97
-
98
- if (!window.archive_analytics) return;
99
- additionalEventParams = additionalEventParams || {};
100
-
101
- if (typeof value == 'number') {
102
- additionalEventParams.ev = value;
103
- }
104
-
105
- window.archive_analytics.send_event(category, action, null, additionalEventParams);
106
- };
107
-
108
- /***/ }),
109
-
110
- /***/ "./node_modules/core-js/modules/es.string.match.js":
111
- /*!*********************************************************!*\
112
- !*** ./node_modules/core-js/modules/es.string.match.js ***!
113
- \*********************************************************/
114
- /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
115
-
116
- "use strict";
117
-
118
- var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js");
119
- var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
120
- var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
121
- var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
122
- var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ "./node_modules/core-js/internals/advance-string-index.js");
123
- var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ "./node_modules/core-js/internals/regexp-exec-abstract.js");
124
-
125
- // @@match logic
126
- fixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {
127
- return [
128
- // `String.prototype.match` method
129
- // https://tc39.es/ecma262/#sec-string.prototype.match
130
- function match(regexp) {
131
- var O = requireObjectCoercible(this);
132
- var matcher = regexp == undefined ? undefined : regexp[MATCH];
133
- return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
134
- },
135
- // `RegExp.prototype[@@match]` method
136
- // https://tc39.es/ecma262/#sec-regexp.prototype-@@match
137
- function (regexp) {
138
- var res = maybeCallNative(nativeMatch, regexp, this);
139
- if (res.done) return res.value;
140
-
141
- var rx = anObject(regexp);
142
- var S = String(this);
143
-
144
- if (!rx.global) return regExpExec(rx, S);
145
-
146
- var fullUnicode = rx.unicode;
147
- rx.lastIndex = 0;
148
- var A = [];
149
- var n = 0;
150
- var result;
151
- while ((result = regExpExec(rx, S)) !== null) {
152
- var matchStr = String(result[0]);
153
- A[n] = matchStr;
154
- if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
155
- n++;
156
- }
157
- return n === 0 ? null : A;
158
- }
159
- ];
160
- });
161
-
162
-
163
- /***/ })
164
-
165
- },
166
- /******/ function(__webpack_require__) { // webpackRuntimeModules
167
- /******/ "use strict";
168
- /******/
169
- /******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
170
- /******/ var __webpack_exports__ = (__webpack_exec__("./src/plugins/plugin.archive_analytics.js"));
171
- /******/ }
172
- ]);
1
+ "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[623],{1041:function(e,t,n){function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}function i(e){var t=function(e){if("object"!=r(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}n.d(t,{S:function(){return a}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var a=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.br=t,this.options},(t=[{key:"setup",value:function(e){this.options=Object.assign({},this.options,e)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(e){}},{key:"_configureToolbar",value:function(e){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(e){}}])&&o(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()},6165:function(e,t,n){n(2675),n(9463),n(2259),n(5700),n(8706),n(3792),n(9572),n(8130),n(875),n(6099),n(825),n(7495),n(7764),n(1761),n(2953);var r=n(1041);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,l(r.key),r)}}function a(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(a=function(){return!!e})()}function u(e){return u=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},u(e)}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}function f(e,t,n){return(t=l(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}var s=window.BookReader,y=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return f(e=function(e,t,n){return t=u(t),function(e,t){if(t&&("object"==o(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,a()?Reflect.construct(t,n||[],u(e).constructor):t.apply(e,n))}(this,t,[].concat(r)),"options",{enabled:!0,debug:!1}),f(e,"_prevFragment",null),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&c(e,t)}(t,e),n=t,r=[{key:"init",value:function(){var e=this;this.options.enabled&&this.br.bind(s.eventNames.fragmentChange,function(){return e.sendFragmentChange()})}},{key:"sendFragmentChange",value:function(){if(window.archive_analytics){var e=this._prevFragment,t=this.br.paramsFromCurrent(),n=this.br.fragmentFromParams(t);if(e!=n){var r,o={bookreader:"user_changed_view",itemid:this.br.bookId,cache_bust:Math.random(),offsite:1,details:0};try{o.offsite=window.top.location.hostname.match(/\.archive.org$/)?0:1,o.details=!o.offsite&&window.top.location.pathname.match(/^\/details\//)?1:0}catch(e){}window.archive_analytics.send_ping(o,null,"augment_for_ao_site");var i=null!==(r=this.br.options.lendingInfo)&&void 0!==r&&r.loanId?{loanId:this.br.options.lendingInfo.loanId}:{};window.archive_analytics.send_event("BookReader","UserChangedView",window.location.pathname,i),this._prevFragment=n}}}},{key:"sendEvent",value:function(e,t,n,r){this.options.enabled&&(this.options.debug&&console.log("archiveAnalyticsSendEvent",arguments,window.archive_analytics),window.archive_analytics&&(r=r||{},"number"==typeof n&&(r.ev=n),window.archive_analytics.send_event(e,t,null,r)))}}],r&&i(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(r.S);null==s||s.registerPlugin("archiveAnalytics",y)}},function(e){e(e.s=6165)}]);
173
2
  //# sourceMappingURL=plugin.archive_analytics.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://@internetarchive/bookreader/./src/plugins/plugin.archive_analytics.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.match.js"],"names":["jQuery","extend","BookReader","defaultOptions","enableArchiveAnalytics","debugArchiveAnaltyics","prototype","init","super_","call","options","bind","eventNames","fragmentChange","archiveAnalyticsSendFragmentChange","window","archive_analytics","prevFragment","params","paramsFromCurrent","newFragment","fragmentFromParams","values","bookreader","itemid","bookId","cache_bust","Math","random","offsite","details","top","location","hostname","match","pathname","e","send_ping","additionalEventParams","lendingInfo","loanId","send_event","archiveAnalyticsSendEvent","category","action","value","console","log","arguments","ev"],"mappings":"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","file":"plugins/plugin.archive_analytics.js","sourcesContent":["/* global BookReader, archive_analytics */\n/**\n * Plugin for Archive.org analytics\n */\njQuery.extend(BookReader.defaultOptions, {\n enableArchiveAnalytics: true,\n /** Provide a means of debugging, cause otherwise it's impossible to test locally */\n debugArchiveAnaltyics: false,\n});\n\nBookReader.prototype.init = (function(super_) {\n return function() {\n super_.call(this);\n\n if (this.options.enableArchiveAnalytics) {\n this.bind(BookReader.eventNames.fragmentChange, () => this.archiveAnalyticsSendFragmentChange());\n }\n };\n})(BookReader.prototype.init);\n\n/** @private */\nBookReader.prototype.archiveAnalyticsSendFragmentChange = function() {\n if (!window.archive_analytics) {\n return;\n }\n\n const prevFragment = this.archiveAnalyticsSendFragmentChange.prevFragment;\n\n const params = this.paramsFromCurrent();\n const newFragment = this.fragmentFromParams(params);\n\n if (prevFragment != newFragment) {\n const values = {\n bookreader: \"user_changed_view\",\n itemid: this.bookId,\n cache_bust: Math.random()\n };\n // EEK! offsite embedding and /details/ page books look the same in analytics, otherwise!\n values.offsite = 1;\n values.details = 0;\n try {\n values.offsite = window.top.location.hostname.match(/\\.archive.org$/)\n ? 0\n : 1;\n values.details =\n !values.offsite && window.top.location.pathname.match(/^\\/details\\//)\n ? 1\n : 0;\n } catch (e) {}\n // avoids embed cross site exceptions -- but on (+) side, means it is and keeps marked offite!\n\n // Send bookreader ping\n archive_analytics.send_ping(values, null, \"augment_for_ao_site\");\n\n // Also send tracking event ping\n const additionalEventParams = this.options.lendingInfo && this.options.lendingInfo.loanId\n ? { loanId: this.options.lendingInfo.loanId }\n : {};\n archive_analytics.send_event('BookReader', 'UserChangedView', window.location.pathname, additionalEventParams);\n\n this.archiveAnalyticsSendFragmentChange.prevFragment = newFragment;\n }\n};\n\n/**\n * Sends a tracking \"Event\". See https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#events\n * @param {string} category\n * @param {string} action\n * @param {number} [value] (must be an int)\n * @param {Object} [additionalEventParams]\n */\nBookReader.prototype.archiveAnalyticsSendEvent = function(category, action, value, additionalEventParams) {\n if (!this.options.enableArchiveAnalytics) return;\n\n if (this.options.debugArchiveAnaltyics) {\n console.log(\"archiveAnalyticsSendEvent\", arguments, window.archive_analytics);\n }\n\n if (!window.archive_analytics) return;\n\n additionalEventParams = additionalEventParams || {};\n if (typeof(value) == 'number') {\n additionalEventParams.ev = value;\n }\n window.archive_analytics.send_event(category, action, null, additionalEventParams);\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n"],"sourceRoot":""}
1
+ {"version":3,"file":"plugins/plugin.archive_analytics.js","mappings":"y6BAMO,IAAMA,EAAgB,WAW3B,O,EAPA,SAAAA,EAAYC,I,4FAAIC,CAAA,KAAAF,GAEdG,KAAKF,GAAKA,EAEVE,KAAKC,OACP,G,EAEA,EAAAC,IAAA,QAAAC,MAIA,SAAMF,GACJD,KAAKC,QAAUG,OAAOC,OAAO,CAAC,EAAGL,KAAKC,QAASA,EACjD,GAEA,CAAAC,IAAA,OAAAC,MACA,WAAQ,GAER,CAAAD,IAAA,0BAAAC,MAKA,SAAwBG,GACxB,GAEA,CAAAJ,IAAA,oBAAAC,MAKA,SAAkBI,GAClB,GAEA,CAAAL,IAAA,0BAAAC,MACA,WAA2B,GAE3B,CAAAD,IAAA,eAAAC,MAGA,SAAaK,GAAU,M,6EAAC,CA5CG,E,20CCH7B,IAAMC,EAAmEC,OAAOD,WAGnEE,EAAsB,SAAAC,GAAA,SAAAD,IAAA,IAAAE,G,4FAAAd,CAAA,KAAAY,GAAA,QAAAG,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAQb,OARaC,EAAAP,E,qYAAAQ,CAAA,KAAAV,EAAA,GAAAW,OAAAL,IAAA,UACvB,CACRM,SAAS,EAETC,OAAO,IAGTJ,EAAAP,EAAA,gBACgB,MAAIA,CAAA,Q,qRAAAY,CAAAd,EAAAC,G,EAAAD,E,EAAA,EAAAT,IAAA,OAAAC,MAGpB,WAAO,IAAAuB,EAAA,KACD1B,KAAKC,QAAQsB,SACfvB,KAAKF,GAAG6B,KAAKlB,EAAWmB,WAAWC,eAAgB,kBAAMH,EAAKI,oBAAoB,EAEtF,GAEA,CAAA5B,IAAA,qBAAAC,MACA,WACE,GAAKO,OAAOqB,kBAAZ,CAIA,IAAMC,EAAehC,KAAKiC,cAEpBC,EAASlC,KAAKF,GAAGqC,oBACjBC,EAAcpC,KAAKF,GAAGuC,mBAAmBH,GAE/C,GAAIF,GAAgBI,EAAa,KAAAE,EACzBC,EAAS,CACbC,WAAY,oBACZC,OAAQzC,KAAKF,GAAG4C,OAChBC,WAAYC,KAAKC,SAGnBN,QAAiB,EACjBA,QAAiB,GACjB,IACEA,EAAOO,QAAUpC,OAAOqC,IAAIC,SAASC,SAASC,MAAM,kBAChD,EACA,EACJX,EAAOY,SACJZ,EAAOO,SAAWpC,OAAOqC,IAAIC,SAASI,SAASF,MAAM,gBAClD,EACA,CACR,CAAE,MAAOG,GAAK,CAId3C,OAAOqB,kBAAkBuB,UAAUf,EAAQ,KAAM,uBAGjD,IAAMgB,EAAmD,QAA3BjB,EAAAtC,KAAKF,GAAGG,QAAQuD,mBAAW,IAAAlB,GAA3BA,EAA6BmB,OACvD,CAAEA,OAAQzD,KAAKF,GAAGG,QAAQuD,YAAYC,QACtC,CAAC,EACL/C,OAAOqB,kBAAkB2B,WAAW,aAAc,kBAAmBhD,OAAOsC,SAASI,SAAUG,GAE/FvD,KAAKiC,cAAgBG,CACvB,CArCA,CAsCF,GAEA,CAAAlC,IAAA,YAAAC,MAOA,SAAUwD,EAAUC,EAAQzD,EAAOoD,GAC5BvD,KAAKC,QAAQsB,UAEdvB,KAAKC,QAAQuB,OACfqC,QAAQC,IAAI,4BAA6B/C,UAAWL,OAAOqB,mBAGxDrB,OAAOqB,oBAEZwB,EAAwBA,GAAyB,CAAC,EAC5B,iBAAVpD,IACVoD,EAAsBQ,GAAK5D,GAE7BO,OAAOqB,kBAAkB2B,WAAWC,EAAUC,EAAQ,KAAML,IAC9D,I,gFAAC,CAlFgC,CAAS1D,EAAAA,GAqF5CY,SAAAA,EAAYuD,eAAe,mBAAoBrD,E","sources":["webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.archive_analytics.js"],"sourcesContent":["// @ts-check\n/** @typedef {import(\"./BookReader.js\").default} BookReader */\n\n/**\n * @template TOptions\n */\nexport class BookReaderPlugin {\n /**\n * @param {BookReader} br\n */\n constructor(br) {\n /** @type {BookReader} */\n this.br = br;\n /** @type {TOptions} */\n this.options;\n }\n\n /**\n * @abstract\n * @param {TOptions} options\n **/\n setup(options) {\n this.options = Object.assign({}, this.options, options);\n }\n\n /** @abstract */\n init() {}\n\n /**\n * @abstract\n * @protected\n * @param {import (\"./BookReader/PageContainer.js\").PageContainer} pageContainer\n */\n _configurePageContainer(pageContainer) {\n }\n\n /**\n * @abstract\n * @protected\n * @param {JQuery<HTMLElement>} $toolbarElement\n */\n _configureToolbar($toolbarElement) {\n }\n\n /** @abstract @protected */\n _bindNavigationHandlers() {}\n\n /**\n * @param {JQuery<HTMLElement>} $navBar\n */\n extendNavBar($navBar) {}\n}\n","// @ts-check\nimport { BookReaderPlugin } from \"../BookReaderPlugin.js\";\n\nconst BookReader = /** @type {typeof import('../BookReader').default} */(window.BookReader);\n\n\nexport class ArchiveAnalyticsPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n /** Provide a means of debugging, cause otherwise it's impossible to test locally */\n debug: false,\n }\n\n /** @type {string} */\n _prevFragment = null;\n\n /** @override */\n init() {\n if (this.options.enabled) {\n this.br.bind(BookReader.eventNames.fragmentChange, () => this.sendFragmentChange());\n }\n }\n\n /** @private */\n sendFragmentChange() {\n if (!window.archive_analytics) {\n return;\n }\n\n const prevFragment = this._prevFragment;\n\n const params = this.br.paramsFromCurrent();\n const newFragment = this.br.fragmentFromParams(params);\n\n if (prevFragment != newFragment) {\n const values = {\n bookreader: \"user_changed_view\",\n itemid: this.br.bookId,\n cache_bust: Math.random(),\n };\n // EEK! offsite embedding and /details/ page books look the same in analytics, otherwise!\n values.offsite = 1;\n values.details = 0;\n try {\n values.offsite = window.top.location.hostname.match(/\\.archive.org$/)\n ? 0\n : 1;\n values.details =\n !values.offsite && window.top.location.pathname.match(/^\\/details\\//)\n ? 1\n : 0;\n } catch (e) { }\n // avoids embed cross site exceptions -- but on (+) side, means it is and keeps marked offite!\n\n // Send bookreader ping\n window.archive_analytics.send_ping(values, null, \"augment_for_ao_site\");\n\n // Also send tracking event ping\n const additionalEventParams = this.br.options.lendingInfo?.loanId\n ? { loanId: this.br.options.lendingInfo.loanId }\n : {};\n window.archive_analytics.send_event('BookReader', 'UserChangedView', window.location.pathname, additionalEventParams);\n\n this._prevFragment = newFragment;\n }\n }\n\n /**\n * Sends a tracking \"Event\". See https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#events\n * @param {string} category\n * @param {string} action\n * @param {number} [value] (must be an int)\n * @param {Object} [additionalEventParams]\n */\n sendEvent(category, action, value, additionalEventParams) {\n if (!this.options.enabled) return;\n\n if (this.options.debug) {\n console.log(\"archiveAnalyticsSendEvent\", arguments, window.archive_analytics);\n }\n\n if (!window.archive_analytics) return;\n\n additionalEventParams = additionalEventParams || {};\n if (typeof (value) == 'number') {\n additionalEventParams.ev = value;\n }\n window.archive_analytics.send_event(category, action, null, additionalEventParams);\n }\n}\n\nBookReader?.registerPlugin('archiveAnalytics', ArchiveAnalyticsPlugin);\n"],"names":["BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","BookReader","window","ArchiveAnalyticsPlugin","_BookReaderPlugin","_this","_len","arguments","length","args","Array","_key","_defineProperty","_callSuper","concat","enabled","debug","_inherits","_this2","bind","eventNames","fragmentChange","sendFragmentChange","archive_analytics","prevFragment","_prevFragment","params","paramsFromCurrent","newFragment","fragmentFromParams","_this$br$options$lend","values","bookreader","itemid","bookId","cache_bust","Math","random","offsite","top","location","hostname","match","details","pathname","e","send_ping","additionalEventParams","lendingInfo","loanId","send_event","category","action","console","log","ev","registerPlugin"],"sourceRoot":""}
@@ -1,166 +1,2 @@
1
- (self["webpackChunk_internetarchive_bookreader"] = self["webpackChunk_internetarchive_bookreader"] || []).push([["plugins/plugin.autoplay.js"],{
2
-
3
- /***/ "./src/plugins/plugin.autoplay.js":
4
- /*!****************************************!*\
5
- !*** ./src/plugins/plugin.autoplay.js ***!
6
- \****************************************/
7
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8
-
9
- "use strict";
10
- __webpack_require__.r(__webpack_exports__);
11
- /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
12
- /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__);
13
- /* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.reduce.js */ "./node_modules/core-js/modules/es.array.reduce.js");
14
- /* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_1__);
15
- /* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "jquery");
16
- /* provided dependency */ var $ = __webpack_require__(/*! jquery */ "jquery");
17
-
18
-
19
-
20
- /*global BookReader */
21
-
22
- /**
23
- * Plugin which adds an autoplay feature. Useful for kiosk situations.
24
- */
25
- jQuery.extend(BookReader.defaultOptions, {
26
- enableAutoPlayPlugin: true
27
- });
28
- /**
29
- * @override BookReader.setup
30
- */
31
-
32
- BookReader.prototype.setup = function (super_) {
33
- return function (options) {
34
- super_.call(this, options);
35
- this.auto = false;
36
- this.autoTimer = null;
37
- this.flipDelay = 5000;
38
- };
39
- }(BookReader.prototype.setup);
40
- /**
41
- * @override BookReader.init
42
- */
43
-
44
-
45
- BookReader.prototype.init = function (super_) {
46
- return function (options) {
47
- var _this = this;
48
-
49
- super_.call(this, options);
50
- if (!this.options.enableAutoPlayPlugin) return;
51
- this.bind(BookReader.eventNames.stop, function () {
52
- return _this.autoStop();
53
- });
54
- };
55
- }(BookReader.prototype.init);
56
- /**
57
- * @override BookReader.bindNavigationHandlers
58
- */
59
-
60
-
61
- BookReader.prototype.bindNavigationHandlers = function (super_) {
62
- return function () {
63
- var _this2 = this;
64
-
65
- super_.call(this);
66
- if (!this.options.enableAutoPlayPlugin) return; // Note the mobile plugin attaches itself to body, so we need to select outside
67
-
68
- var jIcons = this.$('.BRicon').add('.BRmobileMenu .BRicon');
69
- jIcons.filter('.play').click(function () {
70
- _this2.autoToggle();
71
-
72
- return false;
73
- });
74
- jIcons.filter('.pause').click(function () {
75
- _this2.autoToggle();
76
-
77
- return false;
78
- });
79
- };
80
- }(BookReader.prototype.bindNavigationHandlers);
81
- /**
82
- * Starts autoplay mode
83
- * @param {object} overrides
84
- * @param {number} overrides.flipSpeed
85
- * @param {number} overrides.flipDelay
86
- */
87
-
88
-
89
- BookReader.prototype.autoToggle = function (overrides) {
90
- var _this3 = this;
91
-
92
- if (!this.options.enableAutoPlayPlugin) return;
93
- var options = $.extend({
94
- flipSpeed: this.flipSpeed,
95
- flipDelay: this.flipDelay
96
- }, overrides);
97
- this.flipSpeed = typeof options.flipSpeed === "number" ? options.flipSpeed : this.flipSpeed;
98
- this.flipDelay = typeof options.flipDelay === "number" ? options.flipDelay : this.flipDelay;
99
- this.trigger(BookReader.eventNames.stop);
100
- var bComingFrom1up = false;
101
-
102
- if (this.constMode2up != this.mode) {
103
- bComingFrom1up = true;
104
- this.switchMode(this.constMode2up);
105
- } // Change to autofit if book is too large
106
-
107
-
108
- if (this.reduce < this.twoPageGetAutofitReduce()) {
109
- this.zoom('auto');
110
- }
111
-
112
- if (null == this.autoTimer) {
113
- // $$$ Draw events currently cause layout problems when they occur during animation.
114
- // There is a specific problem when changing from 1-up immediately to autoplay in RTL so
115
- // we workaround for now by not triggering immediate animation in that case.
116
- // See https://bugs.launchpad.net/gnubook/+bug/328327
117
- if ('rl' == this.pageProgression && bComingFrom1up) {// don't flip immediately -- wait until timer fires
118
- } else {
119
- // flip immediately
120
- this.flipFwdToIndex();
121
- }
122
-
123
- this.$('.play').hide();
124
- this.$('.pause').show();
125
- this.autoTimer = setInterval(function () {
126
- if (_this3.animating) return;
127
-
128
- if (Math.max(_this3.twoPage.currentIndexL, _this3.twoPage.currentIndexR) >= _this3.lastDisplayableIndex()) {
129
- _this3.flipBackToIndex(1); // $$$ really what we want?
130
-
131
- } else {
132
- _this3.flipFwdToIndex();
133
- }
134
- }, this.flipDelay);
135
- } else {
136
- this.autoStop();
137
- }
138
- };
139
- /**
140
- * Stop autoplay mode, allowing animations to finish
141
- */
142
-
143
-
144
- BookReader.prototype.autoStop = function () {
145
- if (!this.options.enableAutoPlayPlugin) return;
146
-
147
- if (null != this.autoTimer) {
148
- clearInterval(this.autoTimer);
149
- this.flipSpeed = 'fast';
150
- this.$('.pause').hide();
151
- this.$('.play').show();
152
- this.autoTimer = null;
153
- }
154
- };
155
-
156
- /***/ })
157
-
158
- },
159
- /******/ function(__webpack_require__) { // webpackRuntimeModules
160
- /******/ "use strict";
161
- /******/
162
- /******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
163
- /******/ var __webpack_exports__ = (__webpack_exec__("./src/plugins/plugin.autoplay.js"));
164
- /******/ }
165
- ]);
1
+ "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[393],{1041:function(t,e,n){function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function o(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,i(r.key),r)}}function i(t){var e=function(t){if("object"!=r(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==r(e)?e:e+""}n.d(e,{S:function(){return u}}),n(2675),n(9463),n(2259),n(5700),n(3792),n(9572),n(8130),n(9085),n(6099),n(7764),n(2953);var u=function(){return t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.br=e,this.options},(e=[{key:"setup",value:function(t){this.options=Object.assign({},this.options,t)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(t){}},{key:"_configureToolbar",value:function(t){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(t){}}])&&o(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()},3387:function(t,e,n){n(2675),n(9463),n(2259),n(5700),n(8706),n(2008),n(3792),n(9572),n(8130),n(9085),n(875),n(6099),n(825),n(7495),n(7764),n(5746),n(2953),n(8408);var r=n(8340),o=n(8004);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function u(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,f(r.key),r)}}function a(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(a=function(){return!!t})()}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function s(t,e){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},s(t,e)}function c(t,e,n){return(e=f(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function f(t){var e=function(t){if("object"!=i(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==i(e)?e:e+""}var p=function(t){function e(){var t;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return c(t=function(t,e,n){return e=l(e),function(t,e){if(e&&("object"==i(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,a()?Reflect.construct(e,n||[],l(t).constructor):e.apply(t,n))}(this,e,[].concat(r)),"options",{enabled:!0,flipSpeed:1500,flipDelay:5e3,urlParams:!0}),c(t,"timer",null),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&s(t,e)}(e,t),n=e,f=[{key:"init",value:function(){var t=this;if(this.options.enabled&&(this.br.bind(r.q.stop,function(){return t.stop()}),this.options.urlParams)){var e=new URLSearchParams(window.location.search);e.get("flipSpeed")&&(this.options.flipSpeed=(0,o.parseAnimationSpeed)(e.get("flipSpeed"))||this.options.flipSpeed),e.get("flipDelay")&&(this.options.flipDelay=(0,o.parseAnimationSpeed)(e.get("flipDelay"))||this.options.flipDelay),"1"===e.get("autoflip")&&this.toggle()}}},{key:"_bindNavigationHandlers",value:function(){var t=this;if(this.options.enabled){var e=this.br.$(".BRicon");e.filter(".play").on("click",function(){return t.toggle(),!1}),e.filter(".pause").on("click",function(){return t.toggle(),!1})}}},{key:"toggle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(this.options.enabled){Object.assign(this.options,e),this.br.trigger(r.q.stop);var n=!1;this.br.constMode2up!=this.br.mode&&(n=!0,this.br.switchMode(this.br.constMode2up)),null==this.timer?("rl"==this.br.pageProgression&&n||this.br.next({triggerStop:!1,flipSpeed:this.options.flipSpeed}),this.br.$(".play").hide(),this.br.$(".pause").show(),this.timer=setInterval(function(){t.br.animating||(Math.max(t.br.twoPage.currentIndexL,t.br.twoPage.currentIndexR)>=t.br.book.getNumLeafs()-1?t.br.prev({triggerStop:!1,flipSpeed:t.options.flipSpeed}):t.br.next({triggerStop:!1,flipSpeed:t.options.flipSpeed}))},(0,o.parseAnimationSpeed)(this.options.flipDelay))):this.stop()}}},{key:"stop",value:function(){this.options.enabled&&null!=this.timer&&(clearInterval(this.timer),this.br.$(".pause").hide(),this.br.$(".play").show(),this.timer=null)}}],f&&u(n.prototype,f),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,f}(n(1041).S),b=window.BookReader;null==b||b.registerPlugin("autoplay",p)}},function(t){t(t.s=3387)}]);
166
2
  //# sourceMappingURL=plugin.autoplay.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://@internetarchive/bookreader/./src/plugins/plugin.autoplay.js"],"names":["jQuery","extend","BookReader","defaultOptions","enableAutoPlayPlugin","prototype","setup","super_","options","call","auto","autoTimer","flipDelay","init","bind","eventNames","stop","autoStop","bindNavigationHandlers","jIcons","$","add","filter","click","autoToggle","overrides","flipSpeed","trigger","bComingFrom1up","constMode2up","mode","switchMode","reduce","twoPageGetAutofitReduce","zoom","pageProgression","flipFwdToIndex","hide","show","setInterval","animating","Math","max","twoPage","currentIndexL","currentIndexR","lastDisplayableIndex","flipBackToIndex","clearInterval"],"mappings":"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","file":"plugins/plugin.autoplay.js","sourcesContent":["/*global BookReader */\n\n/**\n * Plugin which adds an autoplay feature. Useful for kiosk situations.\n */\njQuery.extend(BookReader.defaultOptions, {\n enableAutoPlayPlugin: true\n});\n\n/**\n * @override BookReader.setup\n */\nBookReader.prototype.setup = (function(super_) {\n return function (options) {\n super_.call(this, options);\n\n this.auto = false;\n this.autoTimer = null;\n this.flipDelay = 5000;\n };\n})(BookReader.prototype.setup);\n\n/**\n * @override BookReader.init\n */\nBookReader.prototype.init = (function(super_) {\n return function (options) {\n super_.call(this, options);\n\n if (!this.options.enableAutoPlayPlugin) return;\n this.bind(BookReader.eventNames.stop, () => this.autoStop());\n };\n})(BookReader.prototype.init);\n\n/**\n * @override BookReader.bindNavigationHandlers\n */\nBookReader.prototype.bindNavigationHandlers = (function(super_) {\n return function() {\n super_.call(this);\n\n if (!this.options.enableAutoPlayPlugin) return;\n\n // Note the mobile plugin attaches itself to body, so we need to select outside\n const jIcons = this.$('.BRicon').add('.BRmobileMenu .BRicon');\n\n jIcons.filter('.play').click(() => {\n this.autoToggle();\n return false;\n });\n\n jIcons.filter('.pause').click(() => {\n this.autoToggle();\n return false;\n });\n };\n})(BookReader.prototype.bindNavigationHandlers);\n\n/**\n * Starts autoplay mode\n * @param {object} overrides\n * @param {number} overrides.flipSpeed\n * @param {number} overrides.flipDelay\n */\nBookReader.prototype.autoToggle = function(overrides) {\n if (!this.options.enableAutoPlayPlugin) return;\n\n const options = $.extend({\n flipSpeed: this.flipSpeed,\n flipDelay: this.flipDelay\n }, overrides);\n\n this.flipSpeed = typeof options.flipSpeed === \"number\" ? options.flipSpeed : this.flipSpeed;\n this.flipDelay = typeof options.flipDelay === \"number\" ? options.flipDelay : this.flipDelay;\n this.trigger(BookReader.eventNames.stop);\n\n let bComingFrom1up = false;\n if (this.constMode2up != this.mode) {\n bComingFrom1up = true;\n this.switchMode(this.constMode2up);\n }\n\n // Change to autofit if book is too large\n if (this.reduce < this.twoPageGetAutofitReduce()) {\n this.zoom('auto');\n }\n\n if (null == this.autoTimer) {\n // $$$ Draw events currently cause layout problems when they occur during animation.\n // There is a specific problem when changing from 1-up immediately to autoplay in RTL so\n // we workaround for now by not triggering immediate animation in that case.\n // See https://bugs.launchpad.net/gnubook/+bug/328327\n if (('rl' == this.pageProgression) && bComingFrom1up) {\n // don't flip immediately -- wait until timer fires\n } else {\n // flip immediately\n this.flipFwdToIndex();\n }\n\n this.$('.play').hide();\n this.$('.pause').show();\n this.autoTimer = setInterval(() => {\n if (this.animating) return;\n\n if (Math.max(this.twoPage.currentIndexL, this.twoPage.currentIndexR) >= this.lastDisplayableIndex()) {\n this.flipBackToIndex(1); // $$$ really what we want?\n } else {\n this.flipFwdToIndex();\n }\n }, this.flipDelay);\n } else {\n this.autoStop();\n }\n};\n\n/**\n * Stop autoplay mode, allowing animations to finish\n */\nBookReader.prototype.autoStop = function() {\n if (!this.options.enableAutoPlayPlugin) return;\n\n if (null != this.autoTimer) {\n clearInterval(this.autoTimer);\n this.flipSpeed = 'fast';\n this.$('.pause').hide();\n this.$('.play').show();\n this.autoTimer = null;\n }\n};\n"],"sourceRoot":""}
1
+ {"version":3,"file":"plugins/plugin.autoplay.js","mappings":"y6BAMO,IAAMA,EAAgB,WAW3B,O,EAPA,SAAAA,EAAYC,I,4FAAIC,CAAA,KAAAF,GAEdG,KAAKF,GAAKA,EAEVE,KAAKC,OACP,G,EAEA,EAAAC,IAAA,QAAAC,MAIA,SAAMF,GACJD,KAAKC,QAAUG,OAAOC,OAAO,CAAC,EAAGL,KAAKC,QAASA,EACjD,GAEA,CAAAC,IAAA,OAAAC,MACA,WAAQ,GAER,CAAAD,IAAA,0BAAAC,MAKA,SAAwBG,GACxB,GAEA,CAAAJ,IAAA,oBAAAC,MAKA,SAAkBI,GAClB,GAEA,CAAAL,IAAA,0BAAAC,MACA,WAA2B,GAE3B,CAAAD,IAAA,eAAAC,MAGA,SAAaK,GAAU,M,6EAAC,CA5CG,E,62CCEtB,IAAMC,EAAc,SAAAC,GAAA,SAAAD,IAAA,IAAAE,G,4FAAAZ,CAAA,KAAAU,GAAA,QAAAG,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAcb,OAdaC,EAAAP,E,qYAAAQ,CAAA,KAAAV,EAAA,GAAAW,OAAAL,IAAA,UACf,CACRM,SAAS,EAKTC,UAAW,KAEXC,UAAW,IAEXC,WAAW,IACZN,EAAAP,EAAA,QAEO,MAAIA,CAAA,Q,qRAAAc,CAAAhB,EAAAC,G,EAAAD,E,EAAA,EAAAP,IAAA,OAAAC,MAGZ,WAAO,IAAAuB,EAAA,KACL,GAAK1B,KAAKC,QAAQoB,UAElBrB,KAAKF,GAAG6B,KAAKC,EAAAA,EAAOC,KAAM,kBAAMH,EAAKG,MAAM,GAEvC7B,KAAKC,QAAQuB,WAAW,CAC1B,IAAMA,EAAY,IAAIM,gBAAgBC,OAAOC,SAASC,QAClDT,EAAUU,IAAI,eAChBlC,KAAKC,QAAQqB,WAAYa,EAAAA,EAAAA,qBAAoBX,EAAUU,IAAI,eAAiBlC,KAAKC,QAAQqB,WAEvFE,EAAUU,IAAI,eAChBlC,KAAKC,QAAQsB,WAAYY,EAAAA,EAAAA,qBAAoBX,EAAUU,IAAI,eAAiBlC,KAAKC,QAAQsB,WAEzD,MAA9BC,EAAUU,IAAI,aAChBlC,KAAKoC,QAET,CACF,GAEA,CAAAlC,IAAA,0BAAAC,MACA,WAA0B,IAAAkC,EAAA,KACxB,GAAKrC,KAAKC,QAAQoB,QAAlB,CAEA,IAAMiB,EAAStC,KAAKF,GAAGyC,EAAE,WAEzBD,EAAOE,OAAO,SAASC,GAAG,QAAS,WAEjC,OADAJ,EAAKD,UACE,CACT,GAEAE,EAAOE,OAAO,UAAUC,GAAG,QAAS,WAElC,OADAJ,EAAKD,UACE,CACT,EAZiC,CAanC,GAEA,CAAAlC,IAAA,SAAAC,MAMA,WAAyB,IAAAuC,EAAA,KAAlBC,EAAS9B,UAAAC,OAAA,QAAA8B,IAAA/B,UAAA,GAAAA,UAAA,GAAG,KACjB,GAAKb,KAAKC,QAAQoB,QAAlB,CAEAjB,OAAOC,OAAOL,KAAKC,QAAS0C,GAC5B3C,KAAKF,GAAG+C,QAAQjB,EAAAA,EAAOC,MAEvB,IAAIiB,GAAiB,EACjB9C,KAAKF,GAAGiD,cAAgB/C,KAAKF,GAAGkD,OAClCF,GAAiB,EACjB9C,KAAKF,GAAGmD,WAAWjD,KAAKF,GAAGiD,eAGzB,MAAQ/C,KAAKkD,OAKV,MAAQlD,KAAKF,GAAGqD,iBAAoBL,GAIvC9C,KAAKF,GAAGsD,KAAK,CAAEC,aAAa,EAAO/B,UAAWtB,KAAKC,QAAQqB,YAG7DtB,KAAKF,GAAGyC,EAAE,SAASe,OACnBtD,KAAKF,GAAGyC,EAAE,UAAUgB,OACpBvD,KAAKkD,MAAQM,YAAY,WACnBd,EAAK5C,GAAG2D,YAERC,KAAKC,IAAIjB,EAAK5C,GAAG8D,QAAQC,cAAenB,EAAK5C,GAAG8D,QAAQE,gBAAkBpB,EAAK5C,GAAGiE,KAAKC,cAAgB,EACzGtB,EAAK5C,GAAGmE,KAAK,CAAEZ,aAAa,EAAO/B,UAAWoB,EAAKzC,QAAQqB,YAE3DoB,EAAK5C,GAAGsD,KAAK,CAAEC,aAAa,EAAO/B,UAAWoB,EAAKzC,QAAQqB,YAE/D,GAAGa,EAAAA,EAAAA,qBAAoBnC,KAAKC,QAAQsB,aAEpCvB,KAAK6B,MAnC0B,CAqCnC,GAEA,CAAA3B,IAAA,OAAAC,MAGA,WACOH,KAAKC,QAAQoB,SAEd,MAAQrB,KAAKkD,QACfgB,cAAclE,KAAKkD,OACnBlD,KAAKF,GAAGyC,EAAE,UAAUe,OACpBtD,KAAKF,GAAGyC,EAAE,SAASgB,OACnBvD,KAAKkD,MAAQ,KAEjB,I,gFAAC,CA/GwB,C,QAASrD,GAkH9BsE,EAAmEpC,OAAOoC,WAChFA,SAAAA,EAAYC,eAAe,WAAY3D,E","sources":["webpack://@internetarchive/bookreader/./src/BookReaderPlugin.js","webpack://@internetarchive/bookreader/./src/plugins/plugin.autoplay.js"],"sourcesContent":["// @ts-check\n/** @typedef {import(\"./BookReader.js\").default} BookReader */\n\n/**\n * @template TOptions\n */\nexport class BookReaderPlugin {\n /**\n * @param {BookReader} br\n */\n constructor(br) {\n /** @type {BookReader} */\n this.br = br;\n /** @type {TOptions} */\n this.options;\n }\n\n /**\n * @abstract\n * @param {TOptions} options\n **/\n setup(options) {\n this.options = Object.assign({}, this.options, options);\n }\n\n /** @abstract */\n init() {}\n\n /**\n * @abstract\n * @protected\n * @param {import (\"./BookReader/PageContainer.js\").PageContainer} pageContainer\n */\n _configurePageContainer(pageContainer) {\n }\n\n /**\n * @abstract\n * @protected\n * @param {JQuery<HTMLElement>} $toolbarElement\n */\n _configureToolbar($toolbarElement) {\n }\n\n /** @abstract @protected */\n _bindNavigationHandlers() {}\n\n /**\n * @param {JQuery<HTMLElement>} $navBar\n */\n extendNavBar($navBar) {}\n}\n","// @ts-check\nimport { EVENTS } from \"../BookReader/events.js\";\nimport { parseAnimationSpeed } from \"../BookReader/utils.js\";\nimport { BookReaderPlugin } from \"../BookReaderPlugin.js\";\n\n/**\n * Plugin which adds an autoplay feature. Useful for kiosk situations.\n */\nexport class AutoplayPlugin extends BookReaderPlugin {\n options = {\n enabled: true,\n /**\n * @type {number | 'fast' | 'slow'}\n * How quickly the flip animation should run.\n **/\n flipSpeed: 1500,\n /** How long to pause on each page between flips */\n flipDelay: 5000,\n /** Allow controlling the autoflip/speed/delay from the url */\n urlParams: true,\n }\n\n timer = null;\n\n /** @override */\n init() {\n if (!this.options.enabled) return;\n\n this.br.bind(EVENTS.stop, () => this.stop());\n\n if (this.options.urlParams) {\n const urlParams = new URLSearchParams(window.location.search);\n if (urlParams.get('flipSpeed')) {\n this.options.flipSpeed = parseAnimationSpeed(urlParams.get('flipSpeed')) || this.options.flipSpeed;\n }\n if (urlParams.get('flipDelay')) {\n this.options.flipDelay = parseAnimationSpeed(urlParams.get('flipDelay')) || this.options.flipDelay;\n }\n if (urlParams.get('autoflip') === '1') {\n this.toggle();\n }\n }\n }\n\n /** @override */\n _bindNavigationHandlers() {\n if (!this.options.enabled) return;\n\n const jIcons = this.br.$('.BRicon');\n\n jIcons.filter('.play').on('click', () => {\n this.toggle();\n return false;\n });\n\n jIcons.filter('.pause').on('click', () => {\n this.toggle();\n return false;\n });\n }\n\n /**\n * Starts autoplay mode\n * @param {object} overrides\n * @param {number} overrides.flipSpeed\n * @param {number} overrides.flipDelay\n */\n toggle(overrides = null) {\n if (!this.options.enabled) return;\n\n Object.assign(this.options, overrides);\n this.br.trigger(EVENTS.stop);\n\n let bComingFrom1up = false;\n if (this.br.constMode2up != this.br.mode) {\n bComingFrom1up = true;\n this.br.switchMode(this.br.constMode2up);\n }\n\n if (null == this.timer) {\n // $$$ Draw events currently cause layout problems when they occur during animation.\n // There is a specific problem when changing from 1-up immediately to autoplay in RTL so\n // we workaround for now by not triggering immediate animation in that case.\n // See https://bugs.launchpad.net/gnubook/+bug/328327\n if (('rl' == this.br.pageProgression) && bComingFrom1up) {\n // don't flip immediately -- wait until timer fires\n } else {\n // flip immediately\n this.br.next({ triggerStop: false, flipSpeed: this.options.flipSpeed });\n }\n\n this.br.$('.play').hide();\n this.br.$('.pause').show();\n this.timer = setInterval(() => {\n if (this.br.animating) return;\n\n if (Math.max(this.br.twoPage.currentIndexL, this.br.twoPage.currentIndexR) >= this.br.book.getNumLeafs() - 1) {\n this.br.prev({ triggerStop: false, flipSpeed: this.options.flipSpeed }); // $$$ really what we want?\n } else {\n this.br.next({ triggerStop: false, flipSpeed: this.options.flipSpeed });\n }\n }, parseAnimationSpeed(this.options.flipDelay));\n } else {\n this.stop();\n }\n }\n\n /**\n * Stop autoplay mode, allowing animations to finish\n */\n stop() {\n if (!this.options.enabled) return;\n\n if (null != this.timer) {\n clearInterval(this.timer);\n this.br.$('.pause').hide();\n this.br.$('.play').show();\n this.timer = null;\n }\n }\n}\n\nconst BookReader = /** @type {typeof import('../BookReader').default} */(window.BookReader);\nBookReader?.registerPlugin('autoplay', AutoplayPlugin);\n"],"names":["BookReaderPlugin","br","_classCallCheck","this","options","key","value","Object","assign","pageContainer","$toolbarElement","$navBar","AutoplayPlugin","_BookReaderPlugin","_this","_len","arguments","length","args","Array","_key","_defineProperty","_callSuper","concat","enabled","flipSpeed","flipDelay","urlParams","_inherits","_this2","bind","EVENTS","stop","URLSearchParams","window","location","search","get","parseAnimationSpeed","toggle","_this3","jIcons","$","filter","on","_this4","overrides","undefined","trigger","bComingFrom1up","constMode2up","mode","switchMode","timer","pageProgression","next","triggerStop","hide","show","setInterval","animating","Math","max","twoPage","currentIndexL","currentIndexR","book","getNumLeafs","prev","clearInterval","BookReader","registerPlugin"],"sourceRoot":""}