@internetarchive/bookreader 5.0.0-5-multiple-files → 5.0.0-50-a1

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 (289) hide show
  1. package/.eslintrc.js +17 -15
  2. package/.github/workflows/node.js.yml +77 -6
  3. package/.github/workflows/npm-publish.yml +6 -20
  4. package/.testcaferc.js +10 -0
  5. package/BookReader/BookReader.css +131 -339
  6. package/BookReader/BookReader.js +2 -21564
  7. package/BookReader/BookReader.js.LICENSE.txt +24 -0
  8. package/BookReader/BookReader.js.map +1 -1
  9. package/BookReader/ia-bookreader-bundle.js +1493 -0
  10. package/BookReader/ia-bookreader-bundle.js.LICENSE.txt +17 -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 +1 -304
  64. package/BookReader/plugins/plugin.chapters.js.map +1 -1
  65. package/BookReader/plugins/plugin.iframe.js +1 -74
  66. package/BookReader/plugins/plugin.iframe.js.map +1 -1
  67. package/BookReader/plugins/plugin.mobile_nav.js +1 -334
  68. package/BookReader/plugins/plugin.mobile_nav.js.map +1 -1
  69. package/BookReader/plugins/plugin.resume.js +1 -368
  70. package/BookReader/plugins/plugin.resume.js.map +1 -1
  71. package/BookReader/plugins/plugin.search.js +1 -1420
  72. package/BookReader/plugins/plugin.search.js.map +1 -1
  73. package/BookReader/plugins/plugin.text_selection.js +1 -1080
  74. package/BookReader/plugins/plugin.text_selection.js.map +1 -1
  75. package/BookReader/plugins/plugin.tts.js +2 -9193
  76. package/BookReader/plugins/plugin.tts.js.map +1 -1
  77. package/BookReader/plugins/plugin.url.js +1 -269
  78. package/BookReader/plugins/plugin.url.js.map +1 -1
  79. package/BookReader/plugins/plugin.vendor-fullscreen.js +1 -379
  80. package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
  81. package/BookReader/webcomponents-bundle.js +3 -0
  82. package/BookReader/webcomponents-bundle.js.LICENSE.txt +9 -0
  83. package/BookReader/webcomponents-bundle.js.map +1 -0
  84. package/BookReaderDemo/BookReaderDemo.css +14 -1
  85. package/BookReaderDemo/IADemoBr.js +148 -0
  86. package/BookReaderDemo/demo-advanced.html +2 -2
  87. package/BookReaderDemo/demo-autoplay.html +2 -1
  88. package/BookReaderDemo/demo-embed-iframe-src.html +2 -1
  89. package/BookReaderDemo/demo-fullscreen-mobile.html +2 -1
  90. package/BookReaderDemo/demo-fullscreen.html +2 -1
  91. package/BookReaderDemo/demo-iiif.html +2 -1
  92. package/BookReaderDemo/demo-internetarchive.html +84 -17
  93. package/BookReaderDemo/demo-multiple.html +2 -1
  94. package/BookReaderDemo/demo-preview-pages.html +2 -1
  95. package/BookReaderDemo/demo-simple.html +2 -1
  96. package/BookReaderDemo/demo-vendor-fullscreen.html +2 -1
  97. package/BookReaderDemo/ia-multiple-volumes-manifest.js +170 -0
  98. package/BookReaderDemo/immersion-1up.html +2 -1
  99. package/BookReaderDemo/immersion-mode.html +2 -1
  100. package/BookReaderDemo/toggle_controls.html +2 -1
  101. package/BookReaderDemo/view_mode.html +2 -1
  102. package/BookReaderDemo/viewmode-cycle.html +2 -3
  103. package/CHANGELOG.md +202 -0
  104. package/README.md +14 -1
  105. package/babel.config.js +18 -0
  106. package/codecov.yml +6 -0
  107. package/index.html +3 -0
  108. package/jsconfig.json +19 -0
  109. package/package.json +66 -56
  110. package/renovate.json +52 -0
  111. package/scripts/preversion.js +4 -1
  112. package/src/BookNavigator/assets/bookmark-colors.js +1 -1
  113. package/src/BookNavigator/assets/button-base.js +9 -2
  114. package/src/BookNavigator/assets/ia-logo.js +17 -0
  115. package/src/BookNavigator/assets/icon_checkmark.js +1 -1
  116. package/src/BookNavigator/assets/icon_close.js +1 -1
  117. package/src/BookNavigator/assets/icon_sort_asc.js +5 -0
  118. package/src/BookNavigator/assets/{icon_sort_ascending.js → icon_sort_desc.js} +2 -2
  119. package/src/BookNavigator/assets/icon_sort_neutral.js +5 -0
  120. package/src/BookNavigator/assets/icon_volumes.js +11 -0
  121. package/src/BookNavigator/book-navigator.js +583 -0
  122. package/src/BookNavigator/bookmarks/bookmark-button.js +3 -2
  123. package/src/BookNavigator/bookmarks/bookmark-edit.js +3 -4
  124. package/src/BookNavigator/bookmarks/bookmarks-list.js +2 -3
  125. package/src/BookNavigator/bookmarks/bookmarks-loginCTA.js +3 -8
  126. package/src/BookNavigator/bookmarks/bookmarks-provider.js +21 -8
  127. package/src/BookNavigator/bookmarks/ia-bookmarks.js +102 -66
  128. package/src/BookNavigator/delete-modal-actions.js +1 -1
  129. package/src/BookNavigator/downloads/downloads-provider.js +36 -21
  130. package/src/BookNavigator/downloads/downloads.js +41 -25
  131. package/src/BookNavigator/search/a-search-result.js +18 -13
  132. package/src/BookNavigator/search/search-provider.js +80 -28
  133. package/src/BookNavigator/search/search-results.js +10 -18
  134. package/src/BookNavigator/sharing.js +27 -0
  135. package/src/BookNavigator/visual-adjustments/visual-adjustments-provider.js +11 -10
  136. package/src/BookNavigator/visual-adjustments/visual-adjustments.js +3 -3
  137. package/src/BookNavigator/volumes/volumes-provider.js +93 -63
  138. package/src/BookNavigator/volumes/volumes.js +40 -46
  139. package/src/BookReader/BookModel.js +0 -29
  140. package/src/BookReader/DebugConsole.js +3 -3
  141. package/src/BookReader/DragScrollable.js +233 -0
  142. package/src/BookReader/Mode1Up.js +51 -351
  143. package/src/BookReader/Mode1UpLit.js +441 -0
  144. package/src/BookReader/Mode2Up.js +120 -105
  145. package/src/BookReader/ModeSmoothZoom.js +179 -0
  146. package/src/BookReader/ModeThumb.js +17 -11
  147. package/src/BookReader/Navbar/Navbar.js +10 -36
  148. package/src/BookReader/PageContainer.js +69 -6
  149. package/src/BookReader/ReduceSet.js +1 -1
  150. package/src/BookReader/Toolbar/Toolbar.js +10 -37
  151. package/src/BookReader/options.js +10 -0
  152. package/src/BookReader/utils/HTMLDimensionsCacher.js +44 -0
  153. package/src/BookReader/utils/ScrollClassAdder.js +31 -0
  154. package/src/BookReader/utils.js +92 -13
  155. package/src/BookReader.js +431 -620
  156. package/src/assets/icons/close-circle-dark.svg +1 -0
  157. package/src/assets/icons/magnify-minus.svg +3 -7
  158. package/src/assets/icons/magnify-plus.svg +3 -7
  159. package/src/assets/icons/voice.svg +1 -0
  160. package/src/css/BookReader.scss +0 -12
  161. package/src/css/_BRComponent.scss +1 -1
  162. package/src/css/_BRmain.scss +19 -24
  163. package/src/css/_BRnav.scss +4 -26
  164. package/src/css/_BRpages.scss +35 -0
  165. package/src/css/_BRsearch.scss +25 -216
  166. package/src/css/_TextSelection.scss +14 -17
  167. package/src/css/_colorbox.scss +2 -2
  168. package/src/css/_controls.scss +17 -5
  169. package/src/css/_icons.scss +6 -0
  170. package/src/ia-bookreader/ia-bookreader.js +224 -0
  171. package/src/plugins/plugin.autoplay.js +4 -4
  172. package/src/plugins/plugin.chapters.js +28 -35
  173. package/src/plugins/plugin.mobile_nav.js +11 -10
  174. package/src/plugins/plugin.resume.js +3 -3
  175. package/src/plugins/plugin.text_selection.js +26 -39
  176. package/src/plugins/plugin.vendor-fullscreen.js +4 -4
  177. package/src/plugins/search/plugin.search.js +174 -116
  178. package/src/plugins/search/view.js +63 -179
  179. package/src/plugins/tts/AbstractTTSEngine.js +46 -37
  180. package/src/plugins/tts/FestivalTTSEngine.js +13 -14
  181. package/src/plugins/tts/PageChunk.js +15 -21
  182. package/src/plugins/tts/PageChunkIterator.js +8 -12
  183. package/src/plugins/tts/WebTTSEngine.js +66 -69
  184. package/src/plugins/tts/plugin.tts.js +92 -109
  185. package/src/plugins/tts/utils.js +0 -9
  186. package/src/plugins/url/UrlPlugin.js +184 -0
  187. package/src/plugins/{plugin.url.js → url/plugin.url.js} +28 -6
  188. package/src/util/manifestGenerator.js +0 -0
  189. package/tests/e2e/README.md +37 -0
  190. package/tests/e2e/autoplay.test.js +2 -2
  191. package/tests/e2e/base.test.js +7 -7
  192. package/tests/e2e/helpers/base.js +9 -3
  193. package/tests/e2e/helpers/debug.js +1 -1
  194. package/tests/e2e/helpers/desktopSearch.js +14 -13
  195. package/tests/e2e/helpers/mobileSearch.js +3 -3
  196. package/tests/e2e/helpers/params.js +17 -0
  197. package/tests/e2e/models/Navigation.js +13 -4
  198. package/tests/e2e/rightToLeft.test.js +4 -5
  199. package/tests/e2e/viewmode.test.js +38 -33
  200. package/tests/jest/BookNavigator/book-navigator.test.js +634 -0
  201. package/tests/jest/BookNavigator/bookmarks/bookmark-button.test.js +43 -0
  202. package/tests/{karma → jest}/BookNavigator/bookmarks/bookmark-edit.test.js +25 -26
  203. package/tests/{karma → jest}/BookNavigator/bookmarks/bookmarks-list.test.js +41 -42
  204. package/tests/jest/BookNavigator/bookmarks/ia-bookmarks.test.js +45 -0
  205. package/tests/jest/BookNavigator/downloads/downloads-provider.test.js +67 -0
  206. package/tests/jest/BookNavigator/downloads/downloads.test.js +53 -0
  207. package/tests/jest/BookNavigator/search/search-provider.test.js +167 -0
  208. package/tests/{karma/BookNavigator → jest/BookNavigator/search}/search-results.test.js +102 -58
  209. package/tests/jest/BookNavigator/sharing/sharing-provider.test.js +49 -0
  210. package/tests/jest/BookNavigator/visual-adjustments.test.js +200 -0
  211. package/tests/jest/BookNavigator/volumes/volumes-provider.test.js +184 -0
  212. package/tests/jest/BookNavigator/volumes/volumes.test.js +97 -0
  213. package/tests/{BookReader → jest/BookReader}/BookModel.test.js +34 -14
  214. package/tests/jest/BookReader/BookReaderPublicFunctions.test.js +176 -0
  215. package/tests/{BookReader → jest/BookReader}/DebugConsole.test.js +1 -1
  216. package/tests/{BookReader → jest/BookReader}/ImageCache.test.js +4 -4
  217. package/tests/jest/BookReader/Mode1UpLit.test.js +92 -0
  218. package/tests/{BookReader → jest/BookReader}/Mode2Up.test.js +36 -15
  219. package/tests/jest/BookReader/ModeSmoothZoom.test.js +149 -0
  220. package/tests/jest/BookReader/ModeThumb.test.js +71 -0
  221. package/tests/{BookReader → jest/BookReader}/Navbar/Navbar.test.js +7 -7
  222. package/tests/{BookReader → jest/BookReader}/PageContainer.test.js +88 -6
  223. package/tests/{BookReader → jest/BookReader}/ReduceSet.test.js +1 -1
  224. package/tests/{BookReader → jest/BookReader}/Toolbar/Toolbar.test.js +2 -2
  225. package/tests/jest/BookReader/utils/HTMLDimensionsCacher.test.js +59 -0
  226. package/tests/jest/BookReader/utils/ScrollClassAdder.test.js +49 -0
  227. package/tests/{BookReader → jest/BookReader}/utils/classes.test.js +1 -1
  228. package/tests/jest/BookReader/utils.test.js +186 -0
  229. package/tests/jest/BookReader.keyboard.test.js +190 -0
  230. package/tests/{BookReader.options.test.js → jest/BookReader.options.test.js} +9 -1
  231. package/tests/{BookReader.test.js → jest/BookReader.test.js} +18 -37
  232. package/tests/{plugins → jest/plugins}/plugin.archive_analytics.test.js +2 -2
  233. package/tests/{plugins → jest/plugins}/plugin.autoplay.test.js +4 -4
  234. package/tests/{plugins → jest/plugins}/plugin.chapters.test.js +10 -11
  235. package/tests/{plugins → jest/plugins}/plugin.iframe.test.js +2 -2
  236. package/tests/{plugins → jest/plugins}/plugin.mobile_nav.test.js +5 -5
  237. package/tests/{plugins → jest/plugins}/plugin.resume.test.js +3 -3
  238. package/tests/{plugins → jest/plugins}/plugin.text_selection.test.js +39 -47
  239. package/tests/{plugins → jest/plugins}/plugin.vendor-fullscreen.test.js +2 -2
  240. package/tests/{plugins → jest/plugins}/search/plugin.search.test.js +63 -47
  241. package/tests/{plugins → jest/plugins}/search/plugin.search.view.test.js +35 -6
  242. package/tests/{plugins → jest/plugins}/tts/AbstractTTSEngine.test.js +9 -9
  243. package/tests/{plugins → jest/plugins}/tts/FestivalTTSEngine.test.js +4 -4
  244. package/tests/{plugins → jest/plugins}/tts/PageChunk.test.js +1 -1
  245. package/tests/{plugins → jest/plugins}/tts/PageChunkIterator.test.js +3 -3
  246. package/tests/{plugins → jest/plugins}/tts/WebTTSEngine.test.js +1 -1
  247. package/tests/{plugins → jest/plugins}/tts/utils.test.js +3 -28
  248. package/tests/jest/plugins/url/UrlPlugin.test.js +190 -0
  249. package/tests/{plugins → jest/plugins/url}/plugin.url.test.js +33 -14
  250. package/tests/{util → jest/util}/browserSniffing.test.js +1 -1
  251. package/tests/{util → jest/util}/docCookies.test.js +1 -1
  252. package/tests/{util → jest/util}/strings.test.js +1 -1
  253. package/tests/{utils.js → jest/utils.js} +38 -0
  254. package/webpack.config.js +11 -5
  255. package/.babelrc +0 -12
  256. package/.dependabot/config.yml +0 -6
  257. package/.testcaferc.json +0 -5
  258. package/BookReader/bookreader-component-bundle.js +0 -14275
  259. package/BookReader/bookreader-component-bundle.js.LICENSE.txt +0 -38
  260. package/BookReader/bookreader-component-bundle.js.map +0 -1
  261. package/BookReader/icons/sort-ascending.svg +0 -1
  262. package/BookReader/icons/sort-descending.svg +0 -1
  263. package/BookReader/jquery-1.10.1.js +0 -108
  264. package/BookReader/jquery-1.10.1.js.LICENSE.txt +0 -24
  265. package/BookReader/plugins/plugin.menu_toggle.js +0 -369
  266. package/BookReader/plugins/plugin.menu_toggle.js.map +0 -1
  267. package/BookReaderDemo/bookreader-template-bundle.js +0 -7178
  268. package/BookReaderDemo/demo-plugin-menu-toggle.html +0 -34
  269. package/karma.conf.js +0 -23
  270. package/src/BookNavigator/BookModel.js +0 -14
  271. package/src/BookNavigator/BookNavigator.js +0 -448
  272. package/src/BookNavigator/assets/book-loader.js +0 -27
  273. package/src/BookNavigator/assets/icon_sort_descending.js +0 -5
  274. package/src/BookNavigator/br-fullscreen-mgr.js +0 -83
  275. package/src/BookReaderComponent/BookReaderComponent.js +0 -112
  276. package/src/ItemNavigator/ItemNavigator.js +0 -373
  277. package/src/ItemNavigator/providers/sharing.js +0 -29
  278. package/src/assets/icons/sort-ascending.svg +0 -1
  279. package/src/assets/icons/sort-descending.svg +0 -1
  280. package/src/dragscrollable-br.js +0 -261
  281. package/src/plugins/menu_toggle/plugin.menu_toggle.js +0 -324
  282. package/tests/BookReader/BookReaderPublicFunctions.test.js +0 -171
  283. package/tests/BookReader/Mode1Up.test.js +0 -164
  284. package/tests/BookReader/utils.test.js +0 -109
  285. package/tests/e2e/ia-production/ia-prod-base.js +0 -17
  286. package/tests/karma/BookNavigator/book-navigator.test.js +0 -132
  287. package/tests/karma/BookNavigator/visual-adjustments.test.js +0 -201
  288. package/tests/karma/BookNavigator/volumes.test.js +0 -101
  289. package/tests/plugins/menu_toggle/plugin.menu_toggle.test.js +0 -68
@@ -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(3609),i=n(3609);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","refs","$brContainer","css","window","width","onePageMinBreakpoint","switchMode","jumpToIndex","currentIndex","animate","opacity","on","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":""}