@internetarchive/bookreader 5.0.0-7-multiple-files → 5.0.0-70

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 (319) 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 +416 -1365
  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 +1509 -0
  10. package/BookReader/ia-bookreader-bundle.js.LICENSE.txt +19 -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.resume.js +1 -368
  69. package/BookReader/plugins/plugin.resume.js.map +1 -1
  70. package/BookReader/plugins/plugin.search.js +2 -1420
  71. package/BookReader/plugins/plugin.search.js.LICENSE.txt +1 -0
  72. package/BookReader/plugins/plugin.search.js.map +1 -1
  73. package/BookReader/plugins/plugin.text_selection.js +2 -1080
  74. package/BookReader/plugins/plugin.text_selection.js.LICENSE.txt +1 -0
  75. package/BookReader/plugins/plugin.text_selection.js.map +1 -1
  76. package/BookReader/plugins/plugin.tts.js +2 -9193
  77. package/BookReader/plugins/plugin.tts.js.LICENSE.txt +2 -0
  78. package/BookReader/plugins/plugin.tts.js.map +1 -1
  79. package/BookReader/plugins/plugin.url.js +1 -269
  80. package/BookReader/plugins/plugin.url.js.map +1 -1
  81. package/BookReader/plugins/plugin.vendor-fullscreen.js +1 -379
  82. package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
  83. package/BookReader/webcomponents-bundle.js +3 -0
  84. package/BookReader/webcomponents-bundle.js.LICENSE.txt +9 -0
  85. package/BookReader/webcomponents-bundle.js.map +1 -0
  86. package/BookReaderDemo/BookReaderDemo.css +16 -19
  87. package/BookReaderDemo/BookReaderJSAdvanced.js +0 -3
  88. package/BookReaderDemo/BookReaderJSAutoplay.js +4 -1
  89. package/BookReaderDemo/BookReaderJSSimple.js +1 -0
  90. package/BookReaderDemo/IADemoBr.js +147 -0
  91. package/BookReaderDemo/demo-advanced.html +2 -2
  92. package/BookReaderDemo/demo-autoplay.html +2 -3
  93. package/BookReaderDemo/demo-embed-iframe-src.html +2 -1
  94. package/BookReaderDemo/demo-fullscreen-mobile.html +3 -5
  95. package/BookReaderDemo/demo-fullscreen.html +2 -4
  96. package/BookReaderDemo/demo-iiif.html +2 -1
  97. package/BookReaderDemo/demo-iiif.js +0 -1
  98. package/BookReaderDemo/demo-internetarchive.html +213 -17
  99. package/BookReaderDemo/demo-multiple.html +2 -1
  100. package/BookReaderDemo/demo-preview-pages.html +2 -1
  101. package/BookReaderDemo/demo-simple.html +2 -1
  102. package/BookReaderDemo/demo-vendor-fullscreen.html +2 -4
  103. package/BookReaderDemo/ia-multiple-volumes-manifest.js +170 -0
  104. package/BookReaderDemo/immersion-1up.html +2 -2
  105. package/BookReaderDemo/immersion-mode.html +2 -4
  106. package/BookReaderDemo/toggle_controls.html +3 -2
  107. package/BookReaderDemo/view_mode.html +2 -1
  108. package/BookReaderDemo/viewmode-cycle.html +2 -3
  109. package/CHANGELOG.md +289 -0
  110. package/README.md +14 -1
  111. package/babel.config.js +20 -0
  112. package/codecov.yml +6 -0
  113. package/index.html +4 -1
  114. package/jsconfig.json +19 -0
  115. package/netlify.toml +9 -0
  116. package/package.json +71 -60
  117. package/renovate.json +52 -0
  118. package/scripts/preversion.js +4 -1
  119. package/src/BookNavigator/assets/bookmark-colors.js +1 -1
  120. package/src/BookNavigator/assets/button-base.js +9 -2
  121. package/src/BookNavigator/assets/ia-logo.js +17 -0
  122. package/src/BookNavigator/assets/icon_checkmark.js +1 -1
  123. package/src/BookNavigator/assets/icon_close.js +1 -1
  124. package/src/BookNavigator/assets/icon_sort_asc.js +5 -0
  125. package/src/BookNavigator/assets/{icon_sort_ascending.js → icon_sort_desc.js} +2 -2
  126. package/src/BookNavigator/assets/icon_sort_neutral.js +5 -0
  127. package/src/BookNavigator/assets/icon_volumes.js +11 -0
  128. package/src/BookNavigator/book-navigator.js +586 -0
  129. package/src/BookNavigator/bookmarks/bookmark-button.js +3 -2
  130. package/src/BookNavigator/bookmarks/bookmark-edit.js +3 -4
  131. package/src/BookNavigator/bookmarks/bookmarks-list.js +2 -3
  132. package/src/BookNavigator/bookmarks/bookmarks-loginCTA.js +3 -8
  133. package/src/BookNavigator/bookmarks/bookmarks-provider.js +27 -17
  134. package/src/BookNavigator/bookmarks/ia-bookmarks.js +116 -67
  135. package/src/BookNavigator/delete-modal-actions.js +1 -1
  136. package/src/BookNavigator/downloads/downloads-provider.js +36 -21
  137. package/src/BookNavigator/downloads/downloads.js +41 -25
  138. package/src/BookNavigator/search/search-provider.js +80 -28
  139. package/src/BookNavigator/search/search-results.js +28 -25
  140. package/src/BookNavigator/sharing.js +27 -0
  141. package/src/BookNavigator/visual-adjustments/visual-adjustments-provider.js +11 -10
  142. package/src/BookNavigator/visual-adjustments/visual-adjustments.js +3 -3
  143. package/src/BookNavigator/volumes/volumes-provider.js +88 -53
  144. package/src/BookNavigator/volumes/volumes.js +41 -14
  145. package/src/BookReader/BookModel.js +64 -34
  146. package/src/BookReader/DragScrollable.js +233 -0
  147. package/src/BookReader/Mode1Up.js +56 -351
  148. package/src/BookReader/Mode1UpLit.js +388 -0
  149. package/src/BookReader/Mode2Up.js +73 -1318
  150. package/src/BookReader/Mode2UpLit.js +776 -0
  151. package/src/BookReader/ModeCoordinateSpace.js +29 -0
  152. package/src/BookReader/ModeSmoothZoom.js +312 -0
  153. package/src/BookReader/ModeThumb.js +18 -12
  154. package/src/BookReader/Navbar/Navbar.js +12 -38
  155. package/src/BookReader/PageContainer.js +81 -6
  156. package/src/BookReader/ReduceSet.js +1 -1
  157. package/src/BookReader/Toolbar/Toolbar.js +10 -37
  158. package/src/BookReader/events.js +2 -3
  159. package/src/BookReader/options.js +24 -2
  160. package/src/BookReader/utils/HTMLDimensionsCacher.js +44 -0
  161. package/src/BookReader/utils/ScrollClassAdder.js +31 -0
  162. package/src/BookReader/utils/SelectionObserver.js +43 -0
  163. package/src/BookReader/utils.js +118 -13
  164. package/src/BookReader.js +446 -1062
  165. package/src/assets/icons/close-circle-dark.svg +1 -0
  166. package/src/assets/icons/magnify-minus.svg +3 -7
  167. package/src/assets/icons/magnify-plus.svg +3 -7
  168. package/src/assets/icons/voice.svg +1 -0
  169. package/src/css/BookReader.scss +1 -17
  170. package/src/css/_BRBookmarks.scss +1 -1
  171. package/src/css/_BRComponent.scss +1 -1
  172. package/src/css/_BRmain.scss +33 -24
  173. package/src/css/_BRnav.scss +11 -38
  174. package/src/css/_BRpages.scss +149 -40
  175. package/src/css/_BRsearch.scss +67 -226
  176. package/src/css/_TextSelection.scss +87 -27
  177. package/src/css/_colorbox.scss +2 -2
  178. package/src/css/_controls.scss +20 -7
  179. package/src/css/_icons.scss +7 -1
  180. package/src/ia-bookreader/ia-bookreader.js +224 -0
  181. package/src/plugins/plugin.archive_analytics.js +3 -3
  182. package/src/plugins/plugin.autoplay.js +5 -11
  183. package/src/plugins/plugin.chapters.js +211 -186
  184. package/src/plugins/plugin.resume.js +3 -3
  185. package/src/plugins/plugin.text_selection.js +464 -134
  186. package/src/plugins/plugin.vendor-fullscreen.js +4 -4
  187. package/src/plugins/search/plugin.search.js +175 -120
  188. package/src/plugins/search/utils.js +43 -0
  189. package/src/plugins/search/view.js +64 -202
  190. package/src/plugins/tts/AbstractTTSEngine.js +68 -40
  191. package/src/plugins/tts/FestivalTTSEngine.js +13 -14
  192. package/src/plugins/tts/PageChunk.js +15 -21
  193. package/src/plugins/tts/PageChunkIterator.js +8 -12
  194. package/src/plugins/tts/WebTTSEngine.js +87 -71
  195. package/src/plugins/tts/plugin.tts.js +95 -126
  196. package/src/plugins/tts/utils.js +0 -25
  197. package/src/plugins/url/UrlPlugin.js +191 -0
  198. package/src/plugins/{plugin.url.js → url/plugin.url.js} +45 -16
  199. package/src/util/browserSniffing.js +22 -0
  200. package/src/util/docCookies.js +21 -2
  201. package/tests/e2e/README.md +37 -0
  202. package/tests/e2e/autoplay.test.js +2 -2
  203. package/tests/e2e/base.test.js +8 -16
  204. package/tests/e2e/helpers/base.js +53 -48
  205. package/tests/e2e/helpers/debug.js +1 -1
  206. package/tests/e2e/helpers/params.js +17 -0
  207. package/tests/e2e/helpers/rightToLeft.js +8 -14
  208. package/tests/e2e/helpers/search.js +73 -0
  209. package/tests/e2e/models/Navigation.js +20 -37
  210. package/tests/e2e/rightToLeft.test.js +4 -5
  211. package/tests/e2e/viewmode.test.js +40 -33
  212. package/tests/jest/BookNavigator/book-navigator.test.js +658 -0
  213. package/tests/jest/BookNavigator/bookmarks/bookmark-button.test.js +43 -0
  214. package/tests/{karma → jest}/BookNavigator/bookmarks/bookmark-edit.test.js +25 -26
  215. package/tests/{karma → jest}/BookNavigator/bookmarks/bookmarks-list.test.js +41 -42
  216. package/tests/jest/BookNavigator/bookmarks/ia-bookmarks.test.js +45 -0
  217. package/tests/jest/BookNavigator/downloads/downloads-provider.test.js +67 -0
  218. package/tests/jest/BookNavigator/downloads/downloads.test.js +53 -0
  219. package/tests/jest/BookNavigator/search/search-provider.test.js +167 -0
  220. package/tests/{karma/BookNavigator → jest/BookNavigator/search}/search-results.test.js +109 -60
  221. package/tests/jest/BookNavigator/sharing/sharing-provider.test.js +49 -0
  222. package/tests/jest/BookNavigator/visual-adjustments.test.js +200 -0
  223. package/tests/jest/BookNavigator/volumes/volumes-provider.test.js +184 -0
  224. package/tests/jest/BookNavigator/volumes/volumes.test.js +97 -0
  225. package/tests/{BookReader → jest/BookReader}/BookModel.test.js +74 -14
  226. package/tests/jest/BookReader/BookReaderPublicFunctions.test.js +193 -0
  227. package/tests/{BookReader → jest/BookReader}/ImageCache.test.js +4 -4
  228. package/tests/jest/BookReader/Mode1UpLit.test.js +73 -0
  229. package/tests/jest/BookReader/Mode2Up.test.js +98 -0
  230. package/tests/jest/BookReader/Mode2UpLit.test.js +190 -0
  231. package/tests/jest/BookReader/ModeCoordinateSpace.test.js +16 -0
  232. package/tests/jest/BookReader/ModeSmoothZoom.test.js +218 -0
  233. package/tests/jest/BookReader/ModeThumb.test.js +71 -0
  234. package/tests/{BookReader → jest/BookReader}/Navbar/Navbar.test.js +10 -10
  235. package/tests/{BookReader → jest/BookReader}/PageContainer.test.js +88 -6
  236. package/tests/{BookReader → jest/BookReader}/ReduceSet.test.js +1 -1
  237. package/tests/{BookReader → jest/BookReader}/Toolbar/Toolbar.test.js +2 -2
  238. package/tests/jest/BookReader/utils/HTMLDimensionsCacher.test.js +59 -0
  239. package/tests/jest/BookReader/utils/ScrollClassAdder.test.js +49 -0
  240. package/tests/jest/BookReader/utils/SelectionObserver.test.js +43 -0
  241. package/tests/{BookReader → jest/BookReader}/utils/classes.test.js +1 -1
  242. package/tests/jest/BookReader/utils.test.js +229 -0
  243. package/tests/jest/BookReader.keyboard.test.js +190 -0
  244. package/tests/{BookReader.options.test.js → jest/BookReader.options.test.js} +9 -1
  245. package/tests/{BookReader.test.js → jest/BookReader.test.js} +26 -37
  246. package/tests/{plugins → jest/plugins}/plugin.archive_analytics.test.js +2 -2
  247. package/tests/{plugins → jest/plugins}/plugin.autoplay.test.js +4 -4
  248. package/tests/jest/plugins/plugin.chapters.test.js +145 -0
  249. package/tests/{plugins → jest/plugins}/plugin.iframe.test.js +2 -2
  250. package/tests/{plugins → jest/plugins}/plugin.resume.test.js +3 -3
  251. package/tests/jest/plugins/plugin.text_selection.test.js +317 -0
  252. package/tests/{plugins → jest/plugins}/plugin.vendor-fullscreen.test.js +2 -2
  253. package/tests/{plugins → jest/plugins}/search/plugin.search.test.js +26 -47
  254. package/tests/{plugins → jest/plugins}/search/plugin.search.view.test.js +39 -6
  255. package/tests/jest/plugins/search/utils.js +25 -0
  256. package/tests/jest/plugins/search/utils.test.js +29 -0
  257. package/tests/{plugins → jest/plugins}/tts/AbstractTTSEngine.test.js +29 -9
  258. package/tests/{plugins → jest/plugins}/tts/FestivalTTSEngine.test.js +4 -4
  259. package/tests/{plugins → jest/plugins}/tts/PageChunk.test.js +1 -1
  260. package/tests/{plugins → jest/plugins}/tts/PageChunkIterator.test.js +3 -3
  261. package/tests/{plugins → jest/plugins}/tts/WebTTSEngine.test.js +47 -1
  262. package/tests/{plugins → jest/plugins}/tts/utils.test.js +1 -60
  263. package/tests/jest/plugins/url/UrlPlugin.test.js +198 -0
  264. package/tests/{plugins → jest/plugins/url}/plugin.url.test.js +53 -14
  265. package/tests/jest/setup.js +3 -0
  266. package/tests/{util → jest/util}/browserSniffing.test.js +1 -1
  267. package/tests/jest/util/docCookies.test.js +24 -0
  268. package/tests/{util → jest/util}/strings.test.js +1 -1
  269. package/tests/{utils.js → jest/utils.js} +38 -0
  270. package/webpack.config.js +11 -6
  271. package/.babelrc +0 -12
  272. package/.dependabot/config.yml +0 -6
  273. package/.testcaferc.json +0 -5
  274. package/BookReader/bookreader-component-bundle.js +0 -14311
  275. package/BookReader/bookreader-component-bundle.js.LICENSE.txt +0 -38
  276. package/BookReader/bookreader-component-bundle.js.map +0 -1
  277. package/BookReader/icons/sort-ascending.svg +0 -1
  278. package/BookReader/icons/sort-descending.svg +0 -1
  279. package/BookReader/jquery-1.10.1.js +0 -108
  280. package/BookReader/jquery-1.10.1.js.LICENSE.txt +0 -24
  281. package/BookReader/plugins/plugin.menu_toggle.js +0 -369
  282. package/BookReader/plugins/plugin.menu_toggle.js.map +0 -1
  283. package/BookReader/plugins/plugin.mobile_nav.js +0 -335
  284. package/BookReader/plugins/plugin.mobile_nav.js.map +0 -1
  285. package/BookReaderDemo/bookreader-template-bundle.js +0 -7178
  286. package/BookReaderDemo/demo-plugin-menu-toggle.html +0 -34
  287. package/karma.conf.js +0 -23
  288. package/src/BookNavigator/BookModel.js +0 -14
  289. package/src/BookNavigator/BookNavigator.js +0 -452
  290. package/src/BookNavigator/assets/book-loader.js +0 -27
  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/BookReader/DebugConsole.js +0 -54
  295. package/src/BookReaderComponent/BookReaderComponent.js +0 -112
  296. package/src/ItemNavigator/ItemNavigator.js +0 -372
  297. package/src/ItemNavigator/providers/sharing.js +0 -29
  298. package/src/assets/icons/sort-ascending.svg +0 -1
  299. package/src/assets/icons/sort-descending.svg +0 -1
  300. package/src/css/_MobileNav.scss +0 -194
  301. package/src/dragscrollable-br.js +0 -261
  302. package/src/plugins/menu_toggle/plugin.menu_toggle.js +0 -324
  303. package/src/plugins/plugin.mobile_nav.js +0 -287
  304. package/tests/BookReader/BookReaderPublicFunctions.test.js +0 -171
  305. package/tests/BookReader/DebugConsole.test.js +0 -25
  306. package/tests/BookReader/Mode1Up.test.js +0 -164
  307. package/tests/BookReader/Mode2Up.test.js +0 -247
  308. package/tests/BookReader/utils.test.js +0 -109
  309. package/tests/e2e/helpers/desktopSearch.js +0 -72
  310. package/tests/e2e/helpers/mobileSearch.js +0 -85
  311. package/tests/e2e/ia-production/ia-prod-base.js +0 -17
  312. package/tests/karma/BookNavigator/book-navigator.test.js +0 -132
  313. package/tests/karma/BookNavigator/visual-adjustments.test.js +0 -201
  314. package/tests/karma/BookNavigator/volumes.test.js +0 -101
  315. package/tests/plugins/menu_toggle/plugin.menu_toggle.test.js +0 -68
  316. package/tests/plugins/plugin.chapters.test.js +0 -130
  317. package/tests/plugins/plugin.mobile_nav.test.js +0 -66
  318. package/tests/plugins/plugin.text_selection.test.js +0 -203
  319. package/tests/util/docCookies.test.js +0 -15
@@ -1,380 +1,2 @@
1
- (self["webpackChunk_internetarchive_bookreader"] = self["webpackChunk_internetarchive_bookreader"] || []).push([["plugins/plugin.vendor-fullscreen.js"],{
2
-
3
- /***/ "./src/plugins/plugin.vendor-fullscreen.js":
4
- /*!*************************************************!*\
5
- !*** ./src/plugins/plugin.vendor-fullscreen.js ***!
6
- \*************************************************/
7
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8
-
9
- "use strict";
10
- __webpack_require__.r(__webpack_exports__);
11
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12
- /* harmony export */ "getFullscreenElement": function() { return /* binding */ getFullscreenElement; },
13
- /* harmony export */ "isFullscreenActive": function() { return /* binding */ isFullscreenActive; },
14
- /* harmony export */ "exitFullscreen": function() { return /* binding */ exitFullscreen; },
15
- /* harmony export */ "requestFullscreen": function() { return /* binding */ requestFullscreen; },
16
- /* harmony export */ "fullscreenAllowed": function() { return /* binding */ fullscreenAllowed; },
17
- /* harmony export */ "bindFullscreenChangeListener": function() { return /* binding */ bindFullscreenChangeListener; },
18
- /* harmony export */ "isMobile": function() { return /* binding */ isMobile; }
19
- /* harmony export */ });
20
- /* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.trim.js */ "./node_modules/core-js/modules/es.string.trim.js");
21
- /* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_0__);
22
- /* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ "./node_modules/core-js/modules/es.array.join.js");
23
- /* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1__);
24
- /* provided dependency */ var jQuery = __webpack_require__(/*! jquery */ "jquery");
25
- /* provided dependency */ var $ = __webpack_require__(/*! jquery */ "jquery");
26
-
27
-
28
-
29
- /* global BookReader */
30
-
31
- /**
32
- * Toggles browser's native fullscreen mode if available device is not mobile
33
- */
34
- if (!isMobile()) {
35
- var EVENT_NAMESPACE = '.bookreader_vendor-fullscreen';
36
- jQuery.extend(BookReader.defaultOptions, {
37
- /** @type {boolean} */
38
- enableVendorFullscreenPlugin: true
39
- });
40
- /** @override */
41
-
42
- BookReader.prototype.setup = function (super_) {
43
- return function (options) {
44
- super_.call(this, options);
45
- this.isVendorFullscreenActive = false;
46
- };
47
- }(BookReader.prototype.setup);
48
- /** @override */
49
-
50
-
51
- BookReader.prototype.getInitialMode = function (super_) {
52
- return function (params) {
53
- var nextMode = super_.call(this, params);
54
-
55
- if (this.isVendorFullscreenActive) {
56
- nextMode = this.constMode1up;
57
- }
58
-
59
- return nextMode;
60
- };
61
- }(BookReader.prototype.getInitialMode);
62
- /** @override */
63
-
64
-
65
- BookReader.prototype.init = function (super_) {
66
- return function () {
67
- super_.call(this);
68
-
69
- if (!fullscreenAllowed()) {
70
- return;
71
- } // In fullscreen mode the colorbox and overlay need to be inside the fullscreen element to display properly.
72
-
73
-
74
- bindFullscreenChangeListener(this, function (e) {
75
- e.data.resize();
76
- e.data.updateBrClasses();
77
- var cboxOverlay = $('#cboxOverlay');
78
- var cbox = $('#colorbox');
79
-
80
- if (isFullscreenActive()) {
81
- // In full screen mode, the colorbox and overlay need
82
- // to be children of the fullscreen element to display properly.
83
- var $fullscreen = $(getFullscreenElement());
84
- $fullscreen.append(cboxOverlay).append(cbox);
85
- } else {
86
- // In non-fullscreen mode, the colorbox and overlay need
87
- // to be children of the main document body.
88
- $(document.body).append(cboxOverlay).append(cbox);
89
- }
90
- });
91
- };
92
- }(BookReader.prototype.init);
93
- /**
94
- * Start fullscreen mode
95
- */
96
-
97
-
98
- BookReader.prototype.enterFullWindow = function () {
99
- var _this = this;
100
-
101
- this.refs.$brContainer.css('opacity', 0);
102
- var windowWidth = $(window).width();
103
-
104
- if (windowWidth <= this.onePageMinBreakpoint) {
105
- this.switchMode(this.constMode1up);
106
- }
107
-
108
- this.isVendorFullscreenActive = true;
109
- this.updateBrClasses();
110
- this.resize();
111
- this.jumpToIndex(this.currentIndex());
112
- this.refs.$brContainer.animate({
113
- opacity: 1
114
- }, 400, 'linear');
115
- $(document).on("keyup.".concat(EVENT_NAMESPACE), function (e) {
116
- if (e.keyCode === 27) _this.exitFullScreen();
117
- });
118
- };
119
- /**
120
- * Exit from fullscreen mode
121
- */
122
-
123
-
124
- BookReader.prototype.exitFullWindow = function () {
125
- this.refs.$brContainer.css('opacity', 0);
126
- $(document).off('keyup' + EVENT_NAMESPACE);
127
- this.isFullscreenActive = false;
128
- this.updateBrClasses();
129
- this.resize();
130
- this.refs.$brContainer.animate({
131
- opacity: 1
132
- }, 400, 'linear');
133
- };
134
- /**
135
- * Returns true if fullscreen mode is enabled
136
- *
137
- * @returns {boolean}
138
- */
139
-
140
-
141
- BookReader.prototype.isFullscreen = function () {
142
- return isFullscreenActive() || this.isVendorFullscreenActive;
143
- };
144
- /**
145
- * Toggle screen
146
- */
147
-
148
-
149
- BookReader.prototype.toggleFullscreen = function () {
150
- if (this.isFullscreen()) {
151
- if (fullscreenAllowed()) {
152
- exitFullscreen();
153
- } else {
154
- this.exitFullWindow();
155
- }
156
- } else {
157
- if (fullscreenAllowed()) {
158
- requestFullscreen(this.refs.$br[0]);
159
- } else {
160
- this.enterFullWindow();
161
- }
162
- }
163
- };
164
- /** @deprecated */
165
-
166
-
167
- BookReader.util.isMobile = isMobile;
168
- /** @deprecated */
169
-
170
- BookReader.util.getFullscreenElement = getFullscreenElement;
171
- /** @deprecated */
172
-
173
- BookReader.util.bindFullscreenChangeListener = bindFullscreenChangeListener;
174
- /** @deprecated */
175
-
176
- BookReader.util.fullscreenAllowed = fullscreenAllowed;
177
- /** @deprecated */
178
-
179
- BookReader.util.requestFullscreen = requestFullscreen;
180
- /** @deprecated */
181
-
182
- BookReader.util.exitFullscreen = exitFullscreen;
183
- /** @deprecated */
184
-
185
- BookReader.util.isFullscreenActive = isFullscreenActive;
186
- }
187
- /**
188
- * Returns the DOM element being used for fullscreen.
189
- *
190
- * @returns {HTMLElement}
191
- * @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot/fullscreenElement
192
- */
193
-
194
-
195
- function getFullscreenElement() {
196
- return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;
197
- }
198
- /**
199
- * Returns true if the document is in fullscreen mode.
200
- *
201
- * @returns {boolean}
202
- */
203
-
204
- function isFullscreenActive() {
205
- var fullscreenElement = getFullscreenElement();
206
- return fullscreenElement !== null && fullscreenElement !== undefined;
207
- }
208
- /**
209
- * Exits fullscreen mode.
210
- *
211
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen
212
- */
213
-
214
- function exitFullscreen() {
215
- if (document.exitFullscreen) {
216
- document.exitFullscreen();
217
- } else if (document.webkitExitFullscreen) {
218
- document.webkitExitFullscreen();
219
- } else if (document.mozCancelFullScreen) {
220
- document.mozCancelFullScreen();
221
- } else if (document.msExitFullscreen) {
222
- document.msExitFullscreen();
223
- }
224
- }
225
- /**
226
- * Requests fullscreen mode for the given element
227
- *
228
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen
229
- */
230
-
231
- function requestFullscreen(element) {
232
- if (element.requestFullscreen) {
233
- element.requestFullscreen();
234
- } else if (element.webkitRequestFullscreen) {
235
- element.webkitRequestFullscreen();
236
- } else if (element.mozRequestFullScreen) {
237
- element.mozRequestFullScreen();
238
- } else if (element.msRequestFullscreen) {
239
- element.msRequestFullscreen();
240
- }
241
- }
242
- /**
243
- * Returns true if fullscreen mode is allowed on this device and document.
244
- *
245
- * @returns {boolean}
246
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenEnabled
247
- */
248
-
249
- function fullscreenAllowed() {
250
- return document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullScreenEnabled;
251
- }
252
- /**
253
- * jQuery-style binding to a fullscreenchange event.
254
- *
255
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenchange_event
256
- */
257
-
258
- function bindFullscreenChangeListener(data, fullscreenchangeListener) {
259
- var event = 'fullscreenchange ';
260
- var vendor_prefixes = ['webkit', 'moz', 'ms'];
261
- var all_events = $.trim(event + vendor_prefixes.join(event) + event);
262
- $(document).bind(all_events, data, fullscreenchangeListener);
263
- }
264
- /**
265
- * Returns true if current device is mobile
266
- *
267
- * @returns {boolean}
268
- */
269
-
270
- function isMobile() {
271
- return typeof window.orientation !== 'undefined' || navigator.userAgent.indexOf('IEMobile') !== -1;
272
- }
273
-
274
- /***/ }),
275
-
276
- /***/ "./node_modules/core-js/internals/string-trim-forced.js":
277
- /*!**************************************************************!*\
278
- !*** ./node_modules/core-js/internals/string-trim-forced.js ***!
279
- \**************************************************************/
280
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
281
-
282
- var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
283
- var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js");
284
-
285
- var non = '\u200B\u0085\u180E';
286
-
287
- // check that a method works with the correct list
288
- // of whitespaces and has a correct name
289
- module.exports = function (METHOD_NAME) {
290
- return fails(function () {
291
- return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;
292
- });
293
- };
294
-
295
-
296
- /***/ }),
297
-
298
- /***/ "./node_modules/core-js/internals/string-trim.js":
299
- /*!*******************************************************!*\
300
- !*** ./node_modules/core-js/internals/string-trim.js ***!
301
- \*******************************************************/
302
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
303
-
304
- var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
305
- var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js");
306
-
307
- var whitespace = '[' + whitespaces + ']';
308
- var ltrim = RegExp('^' + whitespace + whitespace + '*');
309
- var rtrim = RegExp(whitespace + whitespace + '*$');
310
-
311
- // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
312
- var createMethod = function (TYPE) {
313
- return function ($this) {
314
- var string = String(requireObjectCoercible($this));
315
- if (TYPE & 1) string = string.replace(ltrim, '');
316
- if (TYPE & 2) string = string.replace(rtrim, '');
317
- return string;
318
- };
319
- };
320
-
321
- module.exports = {
322
- // `String.prototype.{ trimLeft, trimStart }` methods
323
- // https://tc39.es/ecma262/#sec-string.prototype.trimstart
324
- start: createMethod(1),
325
- // `String.prototype.{ trimRight, trimEnd }` methods
326
- // https://tc39.es/ecma262/#sec-string.prototype.trimend
327
- end: createMethod(2),
328
- // `String.prototype.trim` method
329
- // https://tc39.es/ecma262/#sec-string.prototype.trim
330
- trim: createMethod(3)
331
- };
332
-
333
-
334
- /***/ }),
335
-
336
- /***/ "./node_modules/core-js/internals/whitespaces.js":
337
- /*!*******************************************************!*\
338
- !*** ./node_modules/core-js/internals/whitespaces.js ***!
339
- \*******************************************************/
340
- /***/ (function(module) {
341
-
342
- // a string of all valid unicode whitespaces
343
- module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' +
344
- '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
345
-
346
-
347
- /***/ }),
348
-
349
- /***/ "./node_modules/core-js/modules/es.string.trim.js":
350
- /*!********************************************************!*\
351
- !*** ./node_modules/core-js/modules/es.string.trim.js ***!
352
- \********************************************************/
353
- /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
354
-
355
- "use strict";
356
-
357
- var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
358
- var $trim = __webpack_require__(/*! ../internals/string-trim */ "./node_modules/core-js/internals/string-trim.js").trim;
359
- var forcedStringTrimMethod = __webpack_require__(/*! ../internals/string-trim-forced */ "./node_modules/core-js/internals/string-trim-forced.js");
360
-
361
- // `String.prototype.trim` method
362
- // https://tc39.es/ecma262/#sec-string.prototype.trim
363
- $({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {
364
- trim: function trim() {
365
- return $trim(this);
366
- }
367
- });
368
-
369
-
370
- /***/ })
371
-
372
- },
373
- /******/ function(__webpack_require__) { // webpackRuntimeModules
374
- /******/ "use strict";
375
- /******/
376
- /******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
377
- /******/ var __webpack_exports__ = (__webpack_exec__("./src/plugins/plugin.vendor-fullscreen.js"));
378
- /******/ }
379
- ]);
1
+ (self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[46],{8688:function(e,t,n){"use strict";n(3210),n(9600);var o,r=n(5311),i=n(5311);if(!m()){var u=".bookreader_vendor-fullscreen";r.extend(BookReader.defaultOptions,{enableVendorFullscreenPlugin:!0}),BookReader.prototype.setup=(o=BookReader.prototype.setup,function(e){o.call(this,e),this.isVendorFullscreenActive=!1}),BookReader.prototype.getInitialMode=function(e){return function(t){var n=e.call(this,t);return this.isVendorFullscreenActive&&(n=this.constMode1up),n}}(BookReader.prototype.getInitialMode),BookReader.prototype.init=function(e){return function(){e.call(this),d()&&p(this,(function(e){e.data.resize(),e.data.updateBrClasses();var t=i("#cboxOverlay"),n=i("#colorbox");s()?i(l()).append(t).append(n):i(document.body).append(t).append(n)}))}}(BookReader.prototype.init),BookReader.prototype.enterFullWindow=function(){var e=this;this.refs.$brContainer.css("opacity",0),i(window).width()<=this.onePageMinBreakpoint&&this.switchMode(this.constMode1up),this.isVendorFullscreenActive=!0,this.updateBrClasses(),this.resize(),this.jumpToIndex(this.currentIndex()),this.refs.$brContainer.animate({opacity:1},400,"linear"),i(document).on("keyup.".concat(u),(function(t){27===t.keyCode&&e.exitFullScreen()}))},BookReader.prototype.exitFullWindow=function(){this.refs.$brContainer.css("opacity",0),i(document).off("keyup"+u),this.isFullscreenActive=!1,this.updateBrClasses(),this.resize(),this.refs.$brContainer.animate({opacity:1},400,"linear")},BookReader.prototype.isFullscreen=function(){return s()||this.isVendorFullscreenActive},BookReader.prototype.toggleFullscreen=function(){this.isFullscreen()?d()?c():this.exitFullWindow():d()?a(this.refs.$br[0]):this.enterFullWindow()},BookReader.util.isMobile=m,BookReader.util.getFullscreenElement=l,BookReader.util.bindFullscreenChangeListener=p,BookReader.util.fullscreenAllowed=d,BookReader.util.requestFullscreen=a,BookReader.util.exitFullscreen=c,BookReader.util.isFullscreenActive=s}function l(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement}function s(){return null!=l()}function c(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen()}function a(e){e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.msRequestFullscreen&&e.msRequestFullscreen()}function d(){return document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullScreenEnabled}function p(e,t){var n="fullscreenchange ",o=(n+["webkit","moz","ms"].join(n)+n).trim();i(document).on(o,e,t)}function m(){return void 0!==window.orientation||-1!==navigator.userAgent.indexOf("IEMobile")}},6091:function(e,t,n){var o=n(6530).PROPER,r=n(7293),i=n(1361);e.exports=function(e){return r((function(){return!!i[e]()||"​…᠎"!=="​…᠎"[e]()||o&&i[e].name!==e}))}},3210:function(e,t,n){"use strict";var o=n(2109),r=n(3111).trim;o({target:"String",proto:!0,forced:n(6091)("trim")},{trim:function(){return r(this)}})}},function(e){e(e.s=8688)}]);
380
2
  //# sourceMappingURL=plugin.vendor-fullscreen.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://@internetarchive/bookreader/./src/plugins/plugin.vendor-fullscreen.js","webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim.js","webpack://@internetarchive/bookreader/./node_modules/core-js/internals/whitespaces.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.js"],"names":["isMobile","EVENT_NAMESPACE","jQuery","extend","BookReader","defaultOptions","enableVendorFullscreenPlugin","prototype","setup","super_","options","call","isVendorFullscreenActive","getInitialMode","params","nextMode","constMode1up","init","fullscreenAllowed","bindFullscreenChangeListener","e","data","resize","updateBrClasses","cboxOverlay","$","cbox","isFullscreenActive","$fullscreen","getFullscreenElement","append","document","body","enterFullWindow","refs","$brContainer","css","windowWidth","window","width","onePageMinBreakpoint","switchMode","jumpToIndex","currentIndex","animate","opacity","on","keyCode","exitFullScreen","exitFullWindow","off","isFullscreen","toggleFullscreen","exitFullscreen","requestFullscreen","$br","util","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","undefined","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","element","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullScreenEnabled","fullscreenchangeListener","event","vendor_prefixes","all_events","trim","join","bind","orientation","navigator","userAgent","indexOf"],"mappings":"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","file":"plugins/plugin.vendor-fullscreen.js","sourcesContent":["/* global BookReader */\n\n/**\n * Toggles browser's native fullscreen mode if available device is not mobile\n */\nif (!isMobile()) {\n const EVENT_NAMESPACE = '.bookreader_vendor-fullscreen';\n\n jQuery.extend(BookReader.defaultOptions, {\n /** @type {boolean} */\n enableVendorFullscreenPlugin: true\n });\n\n /** @override */\n BookReader.prototype.setup = (function(super_) {\n return function(options) {\n super_.call(this, options);\n\n this.isVendorFullscreenActive = false;\n };\n })(BookReader.prototype.setup);\n\n /** @override */\n BookReader.prototype.getInitialMode = (function(super_) {\n return function(params) {\n let nextMode = super_.call(this, params);\n if (this.isVendorFullscreenActive) {\n nextMode = this.constMode1up;\n }\n return nextMode;\n };\n })(BookReader.prototype.getInitialMode);\n\n /** @override */\n BookReader.prototype.init = (function(super_) {\n return function() {\n super_.call(this);\n\n if (!fullscreenAllowed()) {\n return;\n }\n // In fullscreen mode the colorbox and overlay need to be inside the fullscreen element to display properly.\n bindFullscreenChangeListener(this, (e) => {\n e.data.resize();\n e.data.updateBrClasses();\n const cboxOverlay = $('#cboxOverlay');\n const cbox = $('#colorbox');\n if (isFullscreenActive()) {\n // In full screen mode, the colorbox and overlay need\n // to be children of the fullscreen element to display properly.\n const $fullscreen = $(getFullscreenElement());\n $fullscreen.append(cboxOverlay).append(cbox);\n } else {\n // In non-fullscreen mode, the colorbox and overlay need\n // to be children of the main document body.\n $(document.body).append(cboxOverlay).append(cbox);\n }\n });\n }\n })(BookReader.prototype.init);\n\n /**\n * Start fullscreen mode\n */\n BookReader.prototype.enterFullWindow = function() {\n this.refs.$brContainer.css('opacity', 0);\n\n const windowWidth = $(window).width();\n if (windowWidth <= this.onePageMinBreakpoint) {\n this.switchMode(this.constMode1up);\n }\n\n this.isVendorFullscreenActive = true;\n this.updateBrClasses();\n\n this.resize();\n this.jumpToIndex(this.currentIndex());\n\n this.refs.$brContainer.animate({ opacity: 1 }, 400, 'linear');\n\n $(document).on(`keyup.${EVENT_NAMESPACE}`, e => {\n if (e.keyCode === 27) this.exitFullScreen();\n });\n };\n\n /**\n * Exit from fullscreen mode\n */\n BookReader.prototype.exitFullWindow = function() {\n this.refs.$brContainer.css('opacity', 0);\n\n $(document).off('keyup' + EVENT_NAMESPACE);\n\n this.isFullscreenActive = false;\n this.updateBrClasses()\n\n this.resize();\n this.refs.$brContainer.animate({ opacity: 1 }, 400, 'linear');\n };\n\n /**\n * Returns true if fullscreen mode is enabled\n *\n * @returns {boolean}\n */\n BookReader.prototype.isFullscreen = function() {\n return isFullscreenActive() || this.isVendorFullscreenActive;\n };\n\n /**\n * Toggle screen\n */\n BookReader.prototype.toggleFullscreen = function() {\n if (this.isFullscreen()) {\n if (fullscreenAllowed()) {\n exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n } else {\n if (fullscreenAllowed()) {\n requestFullscreen(this.refs.$br[0]);\n } else {\n this.enterFullWindow();\n }\n }\n };\n\n /** @deprecated */\n BookReader.util.isMobile = isMobile;\n\n /** @deprecated */\n BookReader.util.getFullscreenElement = getFullscreenElement;\n\n /** @deprecated */\n BookReader.util.bindFullscreenChangeListener = bindFullscreenChangeListener;\n\n /** @deprecated */\n BookReader.util.fullscreenAllowed = fullscreenAllowed;\n\n /** @deprecated */\n BookReader.util.requestFullscreen = requestFullscreen;\n\n /** @deprecated */\n BookReader.util.exitFullscreen = exitFullscreen;\n\n /** @deprecated */\n BookReader.util.isFullscreenActive = isFullscreenActive;\n}\n\n\n/**\n * Returns the DOM element being used for fullscreen.\n *\n * @returns {HTMLElement}\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot/fullscreenElement\n */\nexport function getFullscreenElement() {\n return document.fullscreenElement ||\n document.webkitFullscreenElement ||\n document.mozFullScreenElement ||\n document.msFullscreenElement;\n}\n\n/**\n * Returns true if the document is in fullscreen mode.\n *\n * @returns {boolean}\n */\nexport function isFullscreenActive() {\n const fullscreenElement = getFullscreenElement();\n return fullscreenElement !== null && fullscreenElement !== undefined;\n}\n\n/**\n * Exits fullscreen mode.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen\n */\nexport function exitFullscreen() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n}\n\n/**\n * Requests fullscreen mode for the given element\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen\n */\nexport function requestFullscreen(element) {\n if (element.requestFullscreen) {\n element.requestFullscreen();\n } else if (element.webkitRequestFullscreen) {\n element.webkitRequestFullscreen();\n } else if (element.mozRequestFullScreen) {\n element.mozRequestFullScreen();\n } else if (element.msRequestFullscreen) {\n element.msRequestFullscreen();\n }\n}\n\n/**\n * Returns true if fullscreen mode is allowed on this device and document.\n *\n * @returns {boolean}\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenEnabled\n */\nexport function fullscreenAllowed() {\n return (document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullScreenEnabled);\n}\n\n/**\n * jQuery-style binding to a fullscreenchange event.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenchange_event\n */\nexport function bindFullscreenChangeListener(\n data, fullscreenchangeListener\n) {\n const event = 'fullscreenchange ';\n const vendor_prefixes = [\n 'webkit',\n 'moz',\n 'ms'\n ];\n const all_events = $.trim(event + vendor_prefixes.join(event) + event);\n $(document).bind(all_events, data, fullscreenchangeListener);\n}\n\n/**\n * Returns true if current device is mobile\n *\n * @returns {boolean}\n */\nexport function isMobile() {\n return (typeof window.orientation !== 'undefined') || (navigator.userAgent.indexOf('IEMobile') !== -1);\n}\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n"],"sourceRoot":""}
1
+ {"version":3,"file":"plugins/plugin.vendor-fullscreen.js","mappings":"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","sources":["webpack://@internetarchive/bookreader/./src/plugins/plugin.vendor-fullscreen.js","webpack://@internetarchive/bookreader/./node_modules/core-js/internals/string-trim-forced.js","webpack://@internetarchive/bookreader/./node_modules/core-js/modules/es.string.trim.js"],"sourcesContent":["/* global BookReader */\n\n/**\n * Toggles browser's native fullscreen mode if available device is not mobile\n */\nif (!isMobile()) {\n const EVENT_NAMESPACE = '.bookreader_vendor-fullscreen';\n\n jQuery.extend(BookReader.defaultOptions, {\n /** @type {boolean} */\n enableVendorFullscreenPlugin: true\n });\n\n /** @override */\n BookReader.prototype.setup = (function(super_) {\n return function(options) {\n super_.call(this, options);\n\n this.isVendorFullscreenActive = false;\n };\n })(BookReader.prototype.setup);\n\n /** @override */\n BookReader.prototype.getInitialMode = (function(super_) {\n return function(params) {\n let nextMode = super_.call(this, params);\n if (this.isVendorFullscreenActive) {\n nextMode = this.constMode1up;\n }\n return nextMode;\n };\n })(BookReader.prototype.getInitialMode);\n\n /** @override */\n BookReader.prototype.init = (function(super_) {\n return function() {\n super_.call(this);\n\n if (!fullscreenAllowed()) {\n return;\n }\n // In fullscreen mode the colorbox and overlay need to be inside the fullscreen element to display properly.\n bindFullscreenChangeListener(this, (e) => {\n e.data.resize();\n e.data.updateBrClasses();\n const cboxOverlay = $('#cboxOverlay');\n const cbox = $('#colorbox');\n if (isFullscreenActive()) {\n // In full screen mode, the colorbox and overlay need\n // to be children of the fullscreen element to display properly.\n const $fullscreen = $(getFullscreenElement());\n $fullscreen.append(cboxOverlay).append(cbox);\n } else {\n // In non-fullscreen mode, the colorbox and overlay need\n // to be children of the main document body.\n $(document.body).append(cboxOverlay).append(cbox);\n }\n });\n };\n })(BookReader.prototype.init);\n\n /**\n * Start fullscreen mode\n */\n BookReader.prototype.enterFullWindow = function() {\n this.refs.$brContainer.css('opacity', 0);\n\n const windowWidth = $(window).width();\n if (windowWidth <= this.onePageMinBreakpoint) {\n this.switchMode(this.constMode1up);\n }\n\n this.isVendorFullscreenActive = true;\n this.updateBrClasses();\n\n this.resize();\n this.jumpToIndex(this.currentIndex());\n\n this.refs.$brContainer.animate({ opacity: 1 }, 400, 'linear');\n\n $(document).on(`keyup.${EVENT_NAMESPACE}`, e => {\n if (e.keyCode === 27) this.exitFullScreen();\n });\n };\n\n /**\n * Exit from fullscreen mode\n */\n BookReader.prototype.exitFullWindow = function() {\n this.refs.$brContainer.css('opacity', 0);\n\n $(document).off('keyup' + EVENT_NAMESPACE);\n\n this.isFullscreenActive = false;\n this.updateBrClasses();\n\n this.resize();\n this.refs.$brContainer.animate({ opacity: 1 }, 400, 'linear');\n };\n\n /**\n * Returns true if fullscreen mode is enabled\n *\n * @returns {boolean}\n */\n BookReader.prototype.isFullscreen = function() {\n return isFullscreenActive() || this.isVendorFullscreenActive;\n };\n\n /**\n * Toggle screen\n */\n BookReader.prototype.toggleFullscreen = function() {\n if (this.isFullscreen()) {\n if (fullscreenAllowed()) {\n exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n } else {\n if (fullscreenAllowed()) {\n requestFullscreen(this.refs.$br[0]);\n } else {\n this.enterFullWindow();\n }\n }\n };\n\n /** @deprecated */\n BookReader.util.isMobile = isMobile;\n\n /** @deprecated */\n BookReader.util.getFullscreenElement = getFullscreenElement;\n\n /** @deprecated */\n BookReader.util.bindFullscreenChangeListener = bindFullscreenChangeListener;\n\n /** @deprecated */\n BookReader.util.fullscreenAllowed = fullscreenAllowed;\n\n /** @deprecated */\n BookReader.util.requestFullscreen = requestFullscreen;\n\n /** @deprecated */\n BookReader.util.exitFullscreen = exitFullscreen;\n\n /** @deprecated */\n BookReader.util.isFullscreenActive = isFullscreenActive;\n}\n\n\n/**\n * Returns the DOM element being used for fullscreen.\n *\n * @returns {HTMLElement}\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot/fullscreenElement\n */\nexport function getFullscreenElement() {\n return document.fullscreenElement ||\n document.webkitFullscreenElement ||\n document.mozFullScreenElement ||\n document.msFullscreenElement;\n}\n\n/**\n * Returns true if the document is in fullscreen mode.\n *\n * @returns {boolean}\n */\nexport function isFullscreenActive() {\n const fullscreenElement = getFullscreenElement();\n return fullscreenElement !== null && fullscreenElement !== undefined;\n}\n\n/**\n * Exits fullscreen mode.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen\n */\nexport function exitFullscreen() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n}\n\n/**\n * Requests fullscreen mode for the given element\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen\n */\nexport function requestFullscreen(element) {\n if (element.requestFullscreen) {\n element.requestFullscreen();\n } else if (element.webkitRequestFullscreen) {\n element.webkitRequestFullscreen();\n } else if (element.mozRequestFullScreen) {\n element.mozRequestFullScreen();\n } else if (element.msRequestFullscreen) {\n element.msRequestFullscreen();\n }\n}\n\n/**\n * Returns true if fullscreen mode is allowed on this device and document.\n *\n * @returns {boolean}\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenEnabled\n */\nexport function fullscreenAllowed() {\n return (document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullScreenEnabled);\n}\n\n/**\n * jQuery-style binding to a fullscreenchange event.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenchange_event\n */\nexport function bindFullscreenChangeListener(\n data, fullscreenchangeListener\n) {\n const event = 'fullscreenchange ';\n const vendor_prefixes = [\n 'webkit',\n 'moz',\n 'ms'\n ];\n const all_events = (event + vendor_prefixes.join(event) + event).trim();\n $(document).on(all_events, data, fullscreenchangeListener);\n}\n\n/**\n * Returns true if current device is mobile\n *\n * @returns {boolean}\n */\nexport function isMobile() {\n return (typeof window.orientation !== 'undefined') || (navigator.userAgent.indexOf('IEMobile') !== -1);\n}\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n"],"names":["super_","isMobile","EVENT_NAMESPACE","jQuery","extend","BookReader","defaultOptions","enableVendorFullscreenPlugin","prototype","setup","options","call","this","isVendorFullscreenActive","getInitialMode","params","nextMode","constMode1up","init","fullscreenAllowed","bindFullscreenChangeListener","e","data","resize","updateBrClasses","cboxOverlay","$","cbox","isFullscreenActive","getFullscreenElement","append","document","body","enterFullWindow","_this","refs","$brContainer","css","window","width","onePageMinBreakpoint","switchMode","jumpToIndex","currentIndex","animate","opacity","on","concat","keyCode","exitFullScreen","exitFullWindow","off","isFullscreen","toggleFullscreen","exitFullscreen","requestFullscreen","$br","util","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","element","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullScreenEnabled","fullscreenchangeListener","event","all_events","join","trim","orientation","navigator","userAgent","indexOf","PROPER_FUNCTION_NAME","fails","whitespaces","module","exports","METHOD_NAME","name","$trim","target","proto","forced","forcedStringTrimMethod"],"sourceRoot":""}