@internetarchive/bookreader 5.0.0-8-multiple-files → 5.0.0-80

Sign up to get free protection for your applications and to get access to all the features.
Files changed (321) hide show
  1. package/.eslintrc.js +17 -15
  2. package/.github/workflows/node.js.yml +78 -6
  3. package/.github/workflows/npm-publish.yml +6 -20
  4. package/.testcaferc.js +10 -0
  5. package/BookReader/BookReader.css +442 -1393
  6. package/BookReader/BookReader.js +2 -21564
  7. package/BookReader/BookReader.js.LICENSE.txt +20 -20
  8. package/BookReader/BookReader.js.map +1 -1
  9. package/BookReader/ia-bookreader-bundle.js +1782 -0
  10. package/BookReader/ia-bookreader-bundle.js.LICENSE.txt +7 -0
  11. package/BookReader/ia-bookreader-bundle.js.map +1 -0
  12. package/BookReader/icons/1up.svg +1 -12
  13. package/BookReader/icons/2up.svg +1 -15
  14. package/BookReader/icons/advance.svg +3 -26
  15. package/BookReader/icons/chevron-right.svg +1 -1
  16. package/BookReader/icons/close-circle-dark.svg +1 -0
  17. package/BookReader/icons/close-circle.svg +1 -1
  18. package/BookReader/icons/fullscreen.svg +1 -17
  19. package/BookReader/icons/fullscreen_exit.svg +1 -17
  20. package/BookReader/icons/hamburger.svg +1 -15
  21. package/BookReader/icons/left-arrow.svg +1 -12
  22. package/BookReader/icons/magnify-minus.svg +1 -16
  23. package/BookReader/icons/magnify-plus.svg +1 -17
  24. package/BookReader/icons/magnify.svg +1 -15
  25. package/BookReader/icons/pause.svg +1 -23
  26. package/BookReader/icons/play.svg +1 -22
  27. package/BookReader/icons/playback-speed.svg +1 -34
  28. package/BookReader/icons/read-aloud.svg +1 -22
  29. package/BookReader/icons/review.svg +3 -22
  30. package/BookReader/icons/thumbnails.svg +1 -17
  31. package/BookReader/icons/voice.svg +1 -0
  32. package/BookReader/icons/volume-full.svg +1 -22
  33. package/BookReader/images/BRicons.svg +5 -94
  34. package/BookReader/images/books_graphic.svg +1 -177
  35. package/BookReader/images/icon_book.svg +1 -12
  36. package/BookReader/images/icon_bookmark.svg +1 -12
  37. package/BookReader/images/icon_gear.svg +1 -14
  38. package/BookReader/images/icon_hamburger.svg +1 -20
  39. package/BookReader/images/icon_home.svg +1 -21
  40. package/BookReader/images/icon_info.svg +1 -11
  41. package/BookReader/images/icon_one_page.svg +1 -8
  42. package/BookReader/images/icon_pause.svg +1 -1
  43. package/BookReader/images/icon_play.svg +1 -1
  44. package/BookReader/images/icon_playback-rate.svg +1 -15
  45. package/BookReader/images/icon_search_button.svg +1 -8
  46. package/BookReader/images/icon_share.svg +1 -9
  47. package/BookReader/images/icon_skip-ahead.svg +1 -6
  48. package/BookReader/images/icon_skip-back.svg +2 -13
  49. package/BookReader/images/icon_speaker.svg +1 -18
  50. package/BookReader/images/icon_speaker_open.svg +1 -10
  51. package/BookReader/images/icon_thumbnails.svg +1 -12
  52. package/BookReader/images/icon_toc.svg +1 -5
  53. package/BookReader/images/icon_two_pages.svg +1 -9
  54. package/BookReader/images/marker_chap-off.svg +1 -11
  55. package/BookReader/images/marker_chap-on.svg +1 -11
  56. package/BookReader/images/marker_srch-on.svg +1 -11
  57. package/BookReader/jquery-3.js +2 -0
  58. package/BookReader/jquery-3.js.LICENSE.txt +24 -0
  59. package/BookReader/plugins/plugin.archive_analytics.js +1 -172
  60. package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
  61. package/BookReader/plugins/plugin.autoplay.js +1 -165
  62. package/BookReader/plugins/plugin.autoplay.js.map +1 -1
  63. package/BookReader/plugins/plugin.chapters.js +22 -301
  64. package/BookReader/plugins/plugin.chapters.js.LICENSE.txt +1 -0
  65. package/BookReader/plugins/plugin.chapters.js.map +1 -1
  66. package/BookReader/plugins/plugin.iframe.js +1 -74
  67. package/BookReader/plugins/plugin.iframe.js.map +1 -1
  68. package/BookReader/plugins/plugin.iiif.js +2 -0
  69. package/BookReader/plugins/plugin.iiif.js.map +1 -0
  70. package/BookReader/plugins/plugin.resume.js +1 -368
  71. package/BookReader/plugins/plugin.resume.js.map +1 -1
  72. package/BookReader/plugins/plugin.search.js +2 -1420
  73. package/BookReader/plugins/plugin.search.js.LICENSE.txt +1 -0
  74. package/BookReader/plugins/plugin.search.js.map +1 -1
  75. package/BookReader/plugins/plugin.text_selection.js +2 -1080
  76. package/BookReader/plugins/plugin.text_selection.js.LICENSE.txt +1 -0
  77. package/BookReader/plugins/plugin.text_selection.js.map +1 -1
  78. package/BookReader/plugins/plugin.tts.js +2 -9193
  79. package/BookReader/plugins/plugin.tts.js.LICENSE.txt +2 -0
  80. package/BookReader/plugins/plugin.tts.js.map +1 -1
  81. package/BookReader/plugins/plugin.url.js +1 -269
  82. package/BookReader/plugins/plugin.url.js.map +1 -1
  83. package/BookReader/plugins/plugin.vendor-fullscreen.js +1 -379
  84. package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
  85. package/BookReader/webcomponents-bundle.js +3 -0
  86. package/BookReader/webcomponents-bundle.js.LICENSE.txt +9 -0
  87. package/BookReader/webcomponents-bundle.js.map +1 -0
  88. package/BookReaderDemo/BookReaderDemo.css +18 -19
  89. package/BookReaderDemo/BookReaderJSAdvanced.js +0 -3
  90. package/BookReaderDemo/BookReaderJSAutoplay.js +4 -1
  91. package/BookReaderDemo/BookReaderJSSimple.js +1 -0
  92. package/BookReaderDemo/IADemoBr.js +147 -0
  93. package/BookReaderDemo/demo-advanced.html +2 -2
  94. package/BookReaderDemo/demo-autoplay.html +2 -3
  95. package/BookReaderDemo/demo-embed-iframe-src.html +2 -1
  96. package/BookReaderDemo/demo-fullscreen-mobile.html +3 -5
  97. package/BookReaderDemo/demo-fullscreen.html +2 -4
  98. package/BookReaderDemo/demo-iiif.html +99 -12
  99. package/BookReaderDemo/demo-internetarchive.html +214 -18
  100. package/BookReaderDemo/demo-multiple.html +2 -1
  101. package/BookReaderDemo/demo-preview-pages.html +2 -1
  102. package/BookReaderDemo/demo-simple.html +2 -1
  103. package/BookReaderDemo/demo-vendor-fullscreen.html +2 -4
  104. package/BookReaderDemo/ia-multiple-volumes-manifest.js +170 -0
  105. package/BookReaderDemo/immersion-1up.html +2 -2
  106. package/BookReaderDemo/immersion-mode.html +2 -4
  107. package/BookReaderDemo/toggle_controls.html +3 -2
  108. package/BookReaderDemo/view_mode.html +2 -1
  109. package/BookReaderDemo/viewmode-cycle.html +2 -3
  110. package/CHANGELOG.md +545 -33
  111. package/README.md +14 -1
  112. package/babel.config.js +20 -0
  113. package/codecov.yml +6 -0
  114. package/index.html +4 -1
  115. package/jsconfig.json +19 -0
  116. package/netlify.toml +9 -0
  117. package/package.json +70 -60
  118. package/renovate.json +52 -0
  119. package/scripts/preversion.js +0 -1
  120. package/src/BookNavigator/assets/bookmark-colors.js +1 -1
  121. package/src/BookNavigator/assets/button-base.js +9 -2
  122. package/src/BookNavigator/assets/ia-logo.js +17 -0
  123. package/src/BookNavigator/assets/icon_checkmark.js +1 -1
  124. package/src/BookNavigator/assets/icon_close.js +1 -1
  125. package/src/BookNavigator/book-navigator.js +590 -0
  126. package/src/BookNavigator/bookmarks/bookmark-button.js +3 -2
  127. package/src/BookNavigator/bookmarks/bookmark-edit.js +3 -4
  128. package/src/BookNavigator/bookmarks/bookmarks-list.js +2 -3
  129. package/src/BookNavigator/bookmarks/bookmarks-loginCTA.js +3 -8
  130. package/src/BookNavigator/bookmarks/bookmarks-provider.js +27 -17
  131. package/src/BookNavigator/bookmarks/ia-bookmarks.js +116 -67
  132. package/src/BookNavigator/delete-modal-actions.js +1 -1
  133. package/src/BookNavigator/downloads/downloads-provider.js +36 -21
  134. package/src/BookNavigator/downloads/downloads.js +41 -25
  135. package/src/BookNavigator/search/search-provider.js +80 -28
  136. package/src/BookNavigator/search/search-results.js +28 -25
  137. package/src/BookNavigator/sharing.js +27 -0
  138. package/src/BookNavigator/viewable-files.js +95 -0
  139. package/src/BookNavigator/visual-adjustments/visual-adjustments-provider.js +11 -10
  140. package/src/BookNavigator/visual-adjustments/visual-adjustments.js +3 -3
  141. package/src/BookReader/BookModel.js +64 -34
  142. package/src/BookReader/DragScrollable.js +233 -0
  143. package/src/BookReader/Mode1Up.js +56 -351
  144. package/src/BookReader/Mode1UpLit.js +388 -0
  145. package/src/BookReader/Mode2Up.js +73 -1318
  146. package/src/BookReader/Mode2UpLit.js +776 -0
  147. package/src/BookReader/ModeCoordinateSpace.js +29 -0
  148. package/src/BookReader/ModeSmoothZoom.js +312 -0
  149. package/src/BookReader/ModeThumb.js +18 -12
  150. package/src/BookReader/Navbar/Navbar.js +14 -40
  151. package/src/BookReader/PageContainer.js +81 -6
  152. package/src/BookReader/ReduceSet.js +1 -1
  153. package/src/BookReader/Toolbar/Toolbar.js +10 -37
  154. package/src/BookReader/events.js +2 -3
  155. package/src/BookReader/options.js +27 -2
  156. package/src/BookReader/utils/HTMLDimensionsCacher.js +44 -0
  157. package/src/BookReader/utils/ScrollClassAdder.js +31 -0
  158. package/src/BookReader/utils/SelectionObserver.js +45 -0
  159. package/src/BookReader/utils.js +118 -13
  160. package/src/BookReader.js +446 -1062
  161. package/src/assets/icons/close-circle-dark.svg +1 -0
  162. package/src/assets/icons/magnify-minus.svg +3 -7
  163. package/src/assets/icons/magnify-plus.svg +3 -7
  164. package/src/assets/icons/voice.svg +1 -0
  165. package/src/css/BookReader.scss +1 -17
  166. package/src/css/_BRBookmarks.scss +1 -1
  167. package/src/css/_BRComponent.scss +1 -1
  168. package/src/css/_BRmain.scss +33 -27
  169. package/src/css/_BRnav.scss +12 -39
  170. package/src/css/_BRpages.scss +149 -40
  171. package/src/css/_BRsearch.scss +68 -230
  172. package/src/css/_BRtoolbar.scss +5 -5
  173. package/src/css/_TextSelection.scss +87 -27
  174. package/src/css/_colorbox.scss +2 -2
  175. package/src/css/_controls.scss +20 -7
  176. package/src/css/_icons.scss +7 -1
  177. package/src/ia-bookreader/ia-bookreader.js +224 -0
  178. package/src/plugins/plugin.archive_analytics.js +3 -3
  179. package/src/plugins/plugin.autoplay.js +5 -11
  180. package/src/plugins/plugin.chapters.js +237 -191
  181. package/src/plugins/plugin.iiif.js +151 -0
  182. package/src/plugins/plugin.resume.js +3 -3
  183. package/src/plugins/plugin.text_selection.js +464 -134
  184. package/src/plugins/plugin.vendor-fullscreen.js +4 -4
  185. package/src/plugins/search/plugin.search.js +175 -120
  186. package/src/plugins/search/utils.js +43 -0
  187. package/src/plugins/search/view.js +64 -202
  188. package/src/plugins/tts/AbstractTTSEngine.js +71 -40
  189. package/src/plugins/tts/FestivalTTSEngine.js +13 -14
  190. package/src/plugins/tts/PageChunk.js +15 -21
  191. package/src/plugins/tts/PageChunkIterator.js +8 -12
  192. package/src/plugins/tts/WebTTSEngine.js +87 -71
  193. package/src/plugins/tts/plugin.tts.js +96 -127
  194. package/src/plugins/tts/utils.js +15 -25
  195. package/src/plugins/url/UrlPlugin.js +191 -0
  196. package/src/plugins/{plugin.url.js → url/plugin.url.js} +45 -16
  197. package/src/util/browserSniffing.js +22 -0
  198. package/src/util/docCookies.js +21 -2
  199. package/tests/e2e/README.md +37 -0
  200. package/tests/e2e/autoplay.test.js +2 -2
  201. package/tests/e2e/base.test.js +8 -16
  202. package/tests/e2e/helpers/base.js +53 -48
  203. package/tests/e2e/helpers/debug.js +1 -1
  204. package/tests/e2e/helpers/params.js +17 -0
  205. package/tests/e2e/helpers/rightToLeft.js +8 -14
  206. package/tests/e2e/helpers/search.js +73 -0
  207. package/tests/e2e/models/Navigation.js +20 -37
  208. package/tests/e2e/rightToLeft.test.js +4 -5
  209. package/tests/e2e/viewmode.test.js +40 -33
  210. package/tests/jest/BookNavigator/book-navigator.test.js +661 -0
  211. package/tests/jest/BookNavigator/bookmarks/bookmark-button.test.js +43 -0
  212. package/tests/{karma → jest}/BookNavigator/bookmarks/bookmark-edit.test.js +25 -26
  213. package/tests/{karma → jest}/BookNavigator/bookmarks/bookmarks-list.test.js +41 -42
  214. package/tests/jest/BookNavigator/bookmarks/ia-bookmarks.test.js +45 -0
  215. package/tests/jest/BookNavigator/downloads/downloads-provider.test.js +67 -0
  216. package/tests/jest/BookNavigator/downloads/downloads.test.js +53 -0
  217. package/tests/jest/BookNavigator/search/search-provider.test.js +167 -0
  218. package/tests/{karma/BookNavigator → jest/BookNavigator/search}/search-results.test.js +109 -60
  219. package/tests/jest/BookNavigator/sharing/sharing-provider.test.js +49 -0
  220. package/tests/jest/BookNavigator/viewable-files/viewable-files-provider.test.js +80 -0
  221. package/tests/jest/BookNavigator/visual-adjustments.test.js +200 -0
  222. package/tests/{BookReader → jest/BookReader}/BookModel.test.js +74 -14
  223. package/tests/jest/BookReader/BookReaderPublicFunctions.test.js +193 -0
  224. package/tests/{BookReader → jest/BookReader}/ImageCache.test.js +4 -4
  225. package/tests/jest/BookReader/Mode1UpLit.test.js +73 -0
  226. package/tests/jest/BookReader/Mode2Up.test.js +98 -0
  227. package/tests/jest/BookReader/Mode2UpLit.test.js +190 -0
  228. package/tests/jest/BookReader/ModeCoordinateSpace.test.js +16 -0
  229. package/tests/jest/BookReader/ModeSmoothZoom.test.js +218 -0
  230. package/tests/jest/BookReader/ModeThumb.test.js +71 -0
  231. package/tests/{BookReader → jest/BookReader}/Navbar/Navbar.test.js +10 -10
  232. package/tests/{BookReader → jest/BookReader}/PageContainer.test.js +88 -6
  233. package/tests/{BookReader → jest/BookReader}/ReduceSet.test.js +1 -1
  234. package/tests/{BookReader → jest/BookReader}/Toolbar/Toolbar.test.js +2 -2
  235. package/tests/jest/BookReader/utils/HTMLDimensionsCacher.test.js +59 -0
  236. package/tests/jest/BookReader/utils/ScrollClassAdder.test.js +49 -0
  237. package/tests/jest/BookReader/utils/SelectionObserver.test.js +57 -0
  238. package/tests/{BookReader → jest/BookReader}/utils/classes.test.js +1 -1
  239. package/tests/jest/BookReader/utils.test.js +229 -0
  240. package/tests/jest/BookReader.keyboard.test.js +190 -0
  241. package/tests/{BookReader.options.test.js → jest/BookReader.options.test.js} +9 -1
  242. package/tests/{BookReader.test.js → jest/BookReader.test.js} +26 -37
  243. package/tests/{plugins → jest/plugins}/plugin.archive_analytics.test.js +2 -2
  244. package/tests/{plugins → jest/plugins}/plugin.autoplay.test.js +4 -4
  245. package/tests/jest/plugins/plugin.chapters.test.js +195 -0
  246. package/tests/{plugins → jest/plugins}/plugin.iframe.test.js +2 -2
  247. package/tests/{plugins → jest/plugins}/plugin.resume.test.js +3 -3
  248. package/tests/jest/plugins/plugin.text_selection.test.js +317 -0
  249. package/tests/{plugins → jest/plugins}/plugin.vendor-fullscreen.test.js +2 -2
  250. package/tests/{plugins → jest/plugins}/search/plugin.search.test.js +26 -47
  251. package/tests/{plugins → jest/plugins}/search/plugin.search.view.test.js +39 -6
  252. package/tests/jest/plugins/search/utils.js +25 -0
  253. package/tests/jest/plugins/search/utils.test.js +29 -0
  254. package/tests/{plugins → jest/plugins}/tts/AbstractTTSEngine.test.js +29 -9
  255. package/tests/{plugins → jest/plugins}/tts/FestivalTTSEngine.test.js +4 -4
  256. package/tests/{plugins → jest/plugins}/tts/PageChunk.test.js +1 -1
  257. package/tests/{plugins → jest/plugins}/tts/PageChunkIterator.test.js +3 -3
  258. package/tests/{plugins → jest/plugins}/tts/WebTTSEngine.test.js +47 -1
  259. package/tests/{plugins → jest/plugins}/tts/utils.test.js +1 -60
  260. package/tests/jest/plugins/url/UrlPlugin.test.js +198 -0
  261. package/tests/{plugins → jest/plugins/url}/plugin.url.test.js +53 -14
  262. package/tests/jest/setup.js +3 -0
  263. package/tests/{util → jest/util}/browserSniffing.test.js +1 -1
  264. package/tests/jest/util/docCookies.test.js +24 -0
  265. package/tests/{util → jest/util}/strings.test.js +1 -1
  266. package/tests/{utils.js → jest/utils.js} +38 -0
  267. package/webpack.config.js +12 -6
  268. package/.babelrc +0 -12
  269. package/.dependabot/config.yml +0 -6
  270. package/.testcaferc.json +0 -5
  271. package/BookReader/bookreader-component-bundle.js +0 -14312
  272. package/BookReader/bookreader-component-bundle.js.LICENSE.txt +0 -38
  273. package/BookReader/bookreader-component-bundle.js.map +0 -1
  274. package/BookReader/icons/sort-ascending.svg +0 -1
  275. package/BookReader/icons/sort-descending.svg +0 -1
  276. package/BookReader/jquery-1.10.1.js +0 -108
  277. package/BookReader/jquery-1.10.1.js.LICENSE.txt +0 -24
  278. package/BookReader/plugins/plugin.menu_toggle.js +0 -369
  279. package/BookReader/plugins/plugin.menu_toggle.js.map +0 -1
  280. package/BookReader/plugins/plugin.mobile_nav.js +0 -335
  281. package/BookReader/plugins/plugin.mobile_nav.js.map +0 -1
  282. package/BookReaderDemo/IIIFBookReader.js +0 -207
  283. package/BookReaderDemo/bookreader-template-bundle.js +0 -7178
  284. package/BookReaderDemo/demo-iiif.js +0 -26
  285. package/BookReaderDemo/demo-plugin-menu-toggle.html +0 -34
  286. package/karma.conf.js +0 -23
  287. package/src/BookNavigator/BookModel.js +0 -14
  288. package/src/BookNavigator/BookNavigator.js +0 -452
  289. package/src/BookNavigator/assets/book-loader.js +0 -27
  290. package/src/BookNavigator/assets/icon_sort_ascending.js +0 -5
  291. package/src/BookNavigator/assets/icon_sort_descending.js +0 -5
  292. package/src/BookNavigator/br-fullscreen-mgr.js +0 -83
  293. package/src/BookNavigator/search/a-search-result.js +0 -55
  294. package/src/BookNavigator/volumes/volumes-provider.js +0 -76
  295. package/src/BookNavigator/volumes/volumes.js +0 -161
  296. package/src/BookReader/DebugConsole.js +0 -54
  297. package/src/BookReaderComponent/BookReaderComponent.js +0 -112
  298. package/src/ItemNavigator/ItemNavigator.js +0 -372
  299. package/src/ItemNavigator/providers/sharing.js +0 -29
  300. package/src/assets/icons/sort-ascending.svg +0 -1
  301. package/src/assets/icons/sort-descending.svg +0 -1
  302. package/src/css/_MobileNav.scss +0 -194
  303. package/src/dragscrollable-br.js +0 -261
  304. package/src/plugins/menu_toggle/plugin.menu_toggle.js +0 -324
  305. package/src/plugins/plugin.mobile_nav.js +0 -287
  306. package/tests/BookReader/BookReaderPublicFunctions.test.js +0 -171
  307. package/tests/BookReader/DebugConsole.test.js +0 -25
  308. package/tests/BookReader/Mode1Up.test.js +0 -164
  309. package/tests/BookReader/Mode2Up.test.js +0 -247
  310. package/tests/BookReader/utils.test.js +0 -109
  311. package/tests/e2e/helpers/desktopSearch.js +0 -72
  312. package/tests/e2e/helpers/mobileSearch.js +0 -85
  313. package/tests/e2e/ia-production/ia-prod-base.js +0 -17
  314. package/tests/karma/BookNavigator/book-navigator.test.js +0 -132
  315. package/tests/karma/BookNavigator/visual-adjustments.test.js +0 -201
  316. package/tests/karma/BookNavigator/volumes.test.js +0 -101
  317. package/tests/plugins/menu_toggle/plugin.menu_toggle.test.js +0 -68
  318. package/tests/plugins/plugin.chapters.test.js +0 -130
  319. package/tests/plugins/plugin.mobile_nav.test.js +0 -66
  320. package/tests/plugins/plugin.text_selection.test.js +0 -203
  321. package/tests/util/docCookies.test.js +0 -15
@@ -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([[810],{2815:function(e,n,a){var i;a(4043),a(2462),a(5311).extend(BookReader.defaultOptions,{enableArchiveAnalytics:!0,debugArchiveAnaltyics:!1}),BookReader.prototype.init=(i=BookReader.prototype.init,function(){var e=this;i.call(this),this.options.enableArchiveAnalytics&&this.bind(BookReader.eventNames.fragmentChange,(function(){return e.archiveAnalyticsSendFragmentChange()}))}),BookReader.prototype.archiveAnalyticsSendFragmentChange=function(){if(window.archive_analytics){var e=this.archiveAnalyticsSendFragmentChange.prevFragment,n=this.paramsFromCurrent(),a=this.fragmentFromParams(n);if(e!=a){var i={bookreader:"user_changed_view",itemid:this.bookId,cache_bust:Math.random(),offsite:1,details:0};try{i.offsite=window.top.location.hostname.match(/\.archive.org$/)?0:1,i.details=!i.offsite&&window.top.location.pathname.match(/^\/details\//)?1:0}catch(e){}window.archive_analytics.send_ping(i,null,"augment_for_ao_site");var t=this.options.lendingInfo&&this.options.lendingInfo.loanId?{loanId:this.options.lendingInfo.loanId}:{};window.archive_analytics.send_event("BookReader","UserChangedView",window.location.pathname,t),this.archiveAnalyticsSendFragmentChange.prevFragment=a}}},BookReader.prototype.archiveAnalyticsSendEvent=function(e,n,a,i){this.options.enableArchiveAnalytics&&(this.options.debugArchiveAnaltyics&&console.log("archiveAnalyticsSendEvent",arguments,window.archive_analytics),window.archive_analytics&&(i=i||{},"number"==typeof a&&(i.ev=a),window.archive_analytics.send_event(e,n,null,i)))}}},function(e){e(e.s=2815)}]);
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":"mJAUsCA,E,wBAN/BC,OAAOC,WAAWC,eAAgB,CACvCC,wBAAwB,EAExBC,uBAAuB,IAGzBH,WAAWI,UAAUC,MAAiBP,EAQnCE,WAAWI,UAAUC,KAPf,WAAW,IAAAC,EAAA,KAChBR,EAAOS,KAAKC,MAERA,KAAKC,QAAQP,wBACfM,KAAKE,KAAKV,WAAWW,WAAWC,gBAAgB,kBAAMN,EAAKO,oCAAoC,GAEnG,GAIFb,WAAWI,UAAUS,mCAAqC,WACxD,GAAKC,OAAOC,kBAAZ,CAIA,IAAMC,EAAeR,KAAKK,mCAAmCG,aAEvDC,EAAST,KAAKU,oBACdC,EAAcX,KAAKY,mBAAmBH,GAE5C,GAAID,GAAgBG,EAAa,CAC/B,IAAME,EAAS,CACbC,WAAY,oBACZC,OAAQf,KAAKgB,OACbC,WAAYC,KAAKC,SAGnBN,QAAiB,EACjBA,QAAiB,GACjB,IACEA,EAAOO,QAAUd,OAAOe,IAAIC,SAASC,SAASC,MAAM,kBAChD,EACA,EACJX,EAAOY,SACJZ,EAAOO,SAAWd,OAAOe,IAAIC,SAASI,SAASF,MAAM,gBAClD,EACA,CACR,CAAE,MAAOG,GAAI,CAIbrB,OAAOC,kBAAkBqB,UAAUf,EAAQ,KAAM,uBAGjD,IAAMgB,EAAwB7B,KAAKC,QAAQ6B,aAAe9B,KAAKC,QAAQ6B,YAAYC,OAC/E,CAAEA,OAAQ/B,KAAKC,QAAQ6B,YAAYC,QACnC,CAAC,EACLzB,OAAOC,kBAAkByB,WAAW,aAAc,kBAAmB1B,OAAOgB,SAASI,SAAUG,GAE/F7B,KAAKK,mCAAmCG,aAAeG,CACzD,CArCA,CAsCF,EASAnB,WAAWI,UAAUqC,0BAA4B,SAASC,EAAUC,EAAQC,EAAOP,GAC5E7B,KAAKC,QAAQP,yBAEdM,KAAKC,QAAQN,uBACf0C,QAAQC,IAAI,4BAA6BC,UAAWjC,OAAOC,mBAGxDD,OAAOC,oBAEZsB,EAAwBA,GAAyB,CAAC,EAC7B,iBAAVO,IACTP,EAAsBW,GAAKJ,GAE7B9B,OAAOC,kBAAkByB,WAAWE,EAAUC,EAAQ,KAAMN,IAC9D,C","sources":["webpack://@internetarchive/bookreader/./src/plugins/plugin.archive_analytics.js"],"sourcesContent":["/* global BookReader */\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 window.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 window.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"],"names":["super_","extend","BookReader","defaultOptions","enableArchiveAnalytics","debugArchiveAnaltyics","prototype","init","_this","call","this","options","bind","eventNames","fragmentChange","archiveAnalyticsSendFragmentChange","window","archive_analytics","prevFragment","params","paramsFromCurrent","newFragment","fragmentFromParams","values","bookreader","itemid","bookId","cache_bust","Math","random","offsite","top","location","hostname","match","details","pathname","e","send_ping","additionalEventParams","lendingInfo","loanId","send_event","archiveAnalyticsSendEvent","category","action","value","console","log","arguments","ev"],"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([[320],{2024:function(t,e,i){i(8077),i(228);var o,a=i(5311),n=i(5311);a.extend(BookReader.defaultOptions,{enableAutoPlayPlugin:!0}),BookReader.prototype.setup=(o=BookReader.prototype.setup,function(t){o.call(this,t),this.auto=!1,this.autoTimer=null,this.flipDelay=5e3}),BookReader.prototype.init=function(t){return function(e){var i=this;t.call(this,e),this.options.enableAutoPlayPlugin&&this.bind(BookReader.eventNames.stop,(function(){return i.autoStop()}))}}(BookReader.prototype.init),BookReader.prototype.bindNavigationHandlers=function(t){return function(){var e=this;if(t.call(this),this.options.enableAutoPlayPlugin){var i=this.$(".BRicon");i.filter(".play").click((function(){return e.autoToggle(),!1})),i.filter(".pause").click((function(){return e.autoToggle(),!1}))}}}(BookReader.prototype.bindNavigationHandlers),BookReader.prototype.autoToggle=function(t){var e=this;if(this.options.enableAutoPlayPlugin){var i=n.extend({flipSpeed:this.flipSpeed,flipDelay:this.flipDelay},t);this.flipSpeed="number"==typeof i.flipSpeed?i.flipSpeed:this.flipSpeed,this.flipDelay="number"==typeof i.flipDelay?i.flipDelay:this.flipDelay,this.trigger(BookReader.eventNames.stop);var o=!1;this.constMode2up!=this.mode&&(o=!0,this.switchMode(this.constMode2up)),null==this.autoTimer?("rl"==this.pageProgression&&o||this.next({triggerStop:!1}),this.$(".play").hide(),this.$(".pause").show(),this.autoTimer=setInterval((function(){e.animating||(Math.max(e.twoPage.currentIndexL,e.twoPage.currentIndexR)>=e.book.getNumLeafs()-1?e.prev({triggerStop:!1}):e.next({triggerStop:!1}))}),this.flipDelay)):this.autoStop()}},BookReader.prototype.autoStop=function(){this.options.enableAutoPlayPlugin&&null!=this.autoTimer&&(clearInterval(this.autoTimer),this.flipSpeed="fast",this.$(".pause").hide(),this.$(".play").show(),this.autoTimer=null)}}},function(t){t(t.s=2024)}]);
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":"kKAYuCA,E,oBAPvCC,EAAOC,OAAOC,WAAWC,eAAgB,CACvCC,sBAAsB,IAMxBF,WAAWG,UAAUC,OAAkBP,EAQpCG,WAAWG,UAAUC,MAPf,SAAUC,GACfR,EAAOS,KAAKC,KAAMF,GAElBE,KAAKC,MAAY,EACjBD,KAAKE,UAAY,KACjBF,KAAKG,UAAY,GACnB,GAMFV,WAAWG,UAAUQ,KAAQ,SAASd,GACpC,OAAO,SAAUQ,GAAS,IAAAO,EAAA,KACxBf,EAAOS,KAAKC,KAAMF,GAEbE,KAAKF,QAAQH,sBAClBK,KAAKM,KAAKb,WAAWc,WAAWC,MAAM,kBAAMH,EAAKI,UAAU,GAC7D,CACF,CAP6B,CAO1BhB,WAAWG,UAAUQ,MAKxBX,WAAWG,UAAUc,uBAA0B,SAASpB,GACtD,OAAO,WAAW,IAAAqB,EAAA,KAGhB,GAFArB,EAAOS,KAAKC,MAEPA,KAAKF,QAAQH,qBAAlB,CAEA,IAAMiB,EAASZ,KAAKa,EAAE,WAEtBD,EAAOE,OAAO,SAASC,OAAM,WAE3B,OADAJ,EAAKK,cACE,CACT,IAEAJ,EAAOE,OAAO,UAAUC,OAAM,WAE5B,OADAJ,EAAKK,cACE,CACT,GAZ8C,CAahD,CACF,CAlB+C,CAkB5CvB,WAAWG,UAAUc,wBAQxBjB,WAAWG,UAAUoB,WAAa,SAASC,GAAW,IAAAC,EAAA,KACpD,GAAKlB,KAAKF,QAAQH,qBAAlB,CAEA,IAAMG,EAAUe,EAAErB,OAAO,CACvB2B,UAAWnB,KAAKmB,UAChBhB,UAAWH,KAAKG,WACfc,GAEHjB,KAAKmB,UAAyC,iBAAtBrB,EAAQqB,UAAyBrB,EAAQqB,UAAYnB,KAAKmB,UAClFnB,KAAKG,UAAyC,iBAAtBL,EAAQK,UAAyBL,EAAQK,UAAYH,KAAKG,UAClFH,KAAKoB,QAAQ3B,WAAWc,WAAWC,MAEnC,IAAIa,GAAiB,EACjBrB,KAAKsB,cAAgBtB,KAAKuB,OAC5BF,GAAiB,EACjBrB,KAAKwB,WAAWxB,KAAKsB,eAGnB,MAAQtB,KAAKE,WAKV,MAAQF,KAAKyB,iBAAoBJ,GAIpCrB,KAAK0B,KAAK,CAAEC,aAAa,IAG3B3B,KAAKa,EAAE,SAASe,OAChB5B,KAAKa,EAAE,UAAUgB,OACjB7B,KAAKE,UAAY4B,aAAY,WACvBZ,EAAKa,YAELC,KAAKC,IAAIf,EAAKgB,QAAQC,cAAejB,EAAKgB,QAAQE,gBAAkBlB,EAAKmB,KAAKC,cAAgB,EAChGpB,EAAKqB,KAAK,CAAEZ,aAAa,IAEzBT,EAAKQ,KAAK,CAAEC,aAAa,IAE7B,GAAG3B,KAAKG,YAERH,KAAKS,UAzCuC,CA2ChD,EAKAhB,WAAWG,UAAUa,SAAW,WACzBT,KAAKF,QAAQH,sBAEd,MAAQK,KAAKE,YACfsC,cAAcxC,KAAKE,WACnBF,KAAKmB,UAAY,OACjBnB,KAAKa,EAAE,UAAUe,OACjB5B,KAAKa,EAAE,SAASgB,OAChB7B,KAAKE,UAAY,KAErB,C","sources":["webpack://@internetarchive/bookreader/./src/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 const jIcons = this.$('.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 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.next({ triggerStop: false });\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.book.getNumLeafs() - 1) {\n this.prev({ triggerStop: false }); // $$$ really what we want?\n } else {\n this.next({ triggerStop: false });\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"],"names":["super_","jQuery","extend","BookReader","defaultOptions","enableAutoPlayPlugin","prototype","setup","options","call","this","auto","autoTimer","flipDelay","init","_this","bind","eventNames","stop","autoStop","bindNavigationHandlers","_this2","jIcons","$","filter","click","autoToggle","overrides","_this3","flipSpeed","trigger","bComingFrom1up","constMode2up","mode","switchMode","pageProgression","next","triggerStop","hide","show","setInterval","animating","Math","max","twoPage","currentIndexL","currentIndexR","book","getNumLeafs","prev","clearInterval"],"sourceRoot":""}