@internetarchive/bookreader 5.0.0-9-multiple-files → 5.0.0-90

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 (333) hide show
  1. package/.eslintrc.js +21 -19
  2. package/.github/workflows/node.js.yml +81 -7
  3. package/.github/workflows/npm-publish.yml +6 -20
  4. package/.testcaferc.js +10 -0
  5. package/BookReader/BookReader.css +505 -1442
  6. package/BookReader/BookReader.js +2 -21564
  7. package/BookReader/BookReader.js.LICENSE.txt +20 -20
  8. package/BookReader/BookReader.js.map +1 -1
  9. package/BookReader/ia-bookreader-bundle.js +1782 -0
  10. package/BookReader/ia-bookreader-bundle.js.LICENSE.txt +7 -0
  11. package/BookReader/ia-bookreader-bundle.js.map +1 -0
  12. package/BookReader/icons/1up.svg +1 -12
  13. package/BookReader/icons/2up.svg +1 -15
  14. package/BookReader/icons/advance.svg +3 -26
  15. package/BookReader/icons/chevron-right.svg +1 -1
  16. package/BookReader/icons/close-circle-dark.svg +1 -0
  17. package/BookReader/icons/close-circle.svg +1 -1
  18. package/BookReader/icons/fullscreen.svg +1 -17
  19. package/BookReader/icons/fullscreen_exit.svg +1 -17
  20. package/BookReader/icons/hamburger.svg +1 -15
  21. package/BookReader/icons/left-arrow.svg +1 -12
  22. package/BookReader/icons/magnify-minus.svg +1 -16
  23. package/BookReader/icons/magnify-plus.svg +1 -17
  24. package/BookReader/icons/magnify.svg +1 -15
  25. package/BookReader/icons/pause.svg +1 -23
  26. package/BookReader/icons/play.svg +1 -22
  27. package/BookReader/icons/playback-speed.svg +1 -34
  28. package/BookReader/icons/read-aloud.svg +1 -22
  29. package/BookReader/icons/review.svg +3 -22
  30. package/BookReader/icons/thumbnails.svg +1 -17
  31. package/BookReader/icons/voice.svg +1 -0
  32. package/BookReader/icons/volume-full.svg +1 -22
  33. package/BookReader/images/BRicons.svg +5 -94
  34. package/BookReader/images/books_graphic.svg +1 -177
  35. package/BookReader/images/icon_book.svg +1 -12
  36. package/BookReader/images/icon_bookmark.svg +1 -12
  37. package/BookReader/images/icon_gear.svg +1 -14
  38. package/BookReader/images/icon_hamburger.svg +1 -20
  39. package/BookReader/images/icon_home.svg +1 -21
  40. package/BookReader/images/icon_info.svg +1 -11
  41. package/BookReader/images/icon_one_page.svg +1 -8
  42. package/BookReader/images/icon_pause.svg +1 -1
  43. package/BookReader/images/icon_play.svg +1 -1
  44. package/BookReader/images/icon_playback-rate.svg +1 -15
  45. package/BookReader/images/icon_search_button.svg +1 -8
  46. package/BookReader/images/icon_share.svg +1 -9
  47. package/BookReader/images/icon_skip-ahead.svg +1 -6
  48. package/BookReader/images/icon_skip-back.svg +2 -13
  49. package/BookReader/images/icon_speaker.svg +1 -18
  50. package/BookReader/images/icon_speaker_open.svg +1 -10
  51. package/BookReader/images/icon_thumbnails.svg +1 -12
  52. package/BookReader/images/icon_toc.svg +1 -5
  53. package/BookReader/images/icon_two_pages.svg +1 -9
  54. package/BookReader/images/marker_chap-off.svg +1 -11
  55. package/BookReader/images/marker_chap-on.svg +1 -11
  56. package/BookReader/images/marker_srch-on.svg +1 -11
  57. package/BookReader/images/unviewable_page.png +0 -0
  58. package/BookReader/jquery-3.js +2 -0
  59. package/BookReader/jquery-3.js.LICENSE.txt +24 -0
  60. package/BookReader/plugins/plugin.archive_analytics.js +1 -172
  61. package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
  62. package/BookReader/plugins/plugin.autoplay.js +1 -165
  63. package/BookReader/plugins/plugin.autoplay.js.map +1 -1
  64. package/BookReader/plugins/plugin.chapters.js +22 -301
  65. package/BookReader/plugins/plugin.chapters.js.LICENSE.txt +1 -0
  66. package/BookReader/plugins/plugin.chapters.js.map +1 -1
  67. package/BookReader/plugins/plugin.iframe.js +1 -74
  68. package/BookReader/plugins/plugin.iframe.js.map +1 -1
  69. package/BookReader/plugins/plugin.iiif.js +2 -0
  70. package/BookReader/plugins/plugin.iiif.js.map +1 -0
  71. package/BookReader/plugins/plugin.resume.js +1 -368
  72. package/BookReader/plugins/plugin.resume.js.map +1 -1
  73. package/BookReader/plugins/plugin.search.js +2 -1420
  74. package/BookReader/plugins/plugin.search.js.LICENSE.txt +1 -0
  75. package/BookReader/plugins/plugin.search.js.map +1 -1
  76. package/BookReader/plugins/plugin.text_selection.js +2 -1080
  77. package/BookReader/plugins/plugin.text_selection.js.LICENSE.txt +1 -0
  78. package/BookReader/plugins/plugin.text_selection.js.map +1 -1
  79. package/BookReader/plugins/plugin.tts.js +2 -9193
  80. package/BookReader/plugins/plugin.tts.js.LICENSE.txt +2 -0
  81. package/BookReader/plugins/plugin.tts.js.map +1 -1
  82. package/BookReader/plugins/plugin.url.js +1 -269
  83. package/BookReader/plugins/plugin.url.js.map +1 -1
  84. package/BookReader/plugins/plugin.vendor-fullscreen.js +1 -379
  85. package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
  86. package/BookReader/webcomponents-bundle.js +3 -0
  87. package/BookReader/webcomponents-bundle.js.LICENSE.txt +9 -0
  88. package/BookReader/webcomponents-bundle.js.map +1 -0
  89. package/BookReaderDemo/BookReaderDemo.css +18 -19
  90. package/BookReaderDemo/BookReaderJSAdvanced.js +0 -3
  91. package/BookReaderDemo/BookReaderJSSimple.js +1 -0
  92. package/BookReaderDemo/IADemoBr.js +144 -0
  93. package/BookReaderDemo/demo-advanced.html +2 -2
  94. package/BookReaderDemo/demo-embed-iframe-src.html +2 -1
  95. package/BookReaderDemo/demo-fullscreen-mobile.html +3 -5
  96. package/BookReaderDemo/demo-fullscreen.html +2 -4
  97. package/BookReaderDemo/demo-iiif.html +99 -12
  98. package/BookReaderDemo/demo-internetarchive.html +214 -18
  99. package/BookReaderDemo/demo-multiple.html +2 -1
  100. package/BookReaderDemo/demo-preview-pages.html +526 -525
  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 +595 -33
  110. package/README.md +14 -1
  111. package/babel.config.js +20 -0
  112. package/codecov.yml +6 -0
  113. package/index.html +5 -2
  114. package/jsconfig.json +19 -0
  115. package/netlify.toml +9 -0
  116. package/package.json +70 -62
  117. package/renovate.json +52 -0
  118. package/scripts/preversion.js +0 -1
  119. package/src/BookNavigator/assets/bookmark-colors.js +1 -1
  120. package/src/BookNavigator/assets/button-base.js +10 -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/book-navigator.js +590 -0
  125. package/src/BookNavigator/bookmarks/bookmark-button.js +3 -2
  126. package/src/BookNavigator/bookmarks/bookmark-edit.js +3 -4
  127. package/src/BookNavigator/bookmarks/bookmarks-list.js +2 -3
  128. package/src/BookNavigator/bookmarks/bookmarks-loginCTA.js +4 -9
  129. package/src/BookNavigator/bookmarks/bookmarks-provider.js +27 -17
  130. package/src/BookNavigator/bookmarks/ia-bookmarks.js +116 -67
  131. package/src/BookNavigator/delete-modal-actions.js +1 -1
  132. package/src/BookNavigator/downloads/downloads-provider.js +36 -21
  133. package/src/BookNavigator/downloads/downloads.js +29 -25
  134. package/src/BookNavigator/search/search-provider.js +80 -28
  135. package/src/BookNavigator/search/search-results.js +29 -26
  136. package/src/BookNavigator/sharing.js +27 -0
  137. package/src/BookNavigator/viewable-files.js +95 -0
  138. package/src/BookNavigator/visual-adjustments/visual-adjustments-provider.js +13 -12
  139. package/src/BookNavigator/visual-adjustments/visual-adjustments.js +7 -7
  140. package/src/BookReader/BookModel.js +76 -41
  141. package/src/BookReader/DragScrollable.js +233 -0
  142. package/src/BookReader/ImageCache.js +48 -15
  143. package/src/BookReader/Mode1Up.js +56 -351
  144. package/src/BookReader/Mode1UpLit.js +388 -0
  145. package/src/BookReader/Mode2Up.js +73 -1318
  146. package/src/BookReader/Mode2UpLit.js +777 -0
  147. package/src/BookReader/ModeCoordinateSpace.js +29 -0
  148. package/src/BookReader/ModeSmoothZoom.js +312 -0
  149. package/src/BookReader/ModeThumb.js +19 -13
  150. package/src/BookReader/Navbar/Navbar.js +70 -54
  151. package/src/BookReader/PageContainer.js +116 -22
  152. package/src/BookReader/ReduceSet.js +3 -3
  153. package/src/BookReader/Toolbar/Toolbar.js +14 -41
  154. package/src/BookReader/events.js +2 -3
  155. package/src/BookReader/options.js +73 -15
  156. package/src/BookReader/utils/HTMLDimensionsCacher.js +44 -0
  157. package/src/BookReader/utils/ScrollClassAdder.js +31 -0
  158. package/src/BookReader/utils/SelectionObserver.js +45 -0
  159. package/src/BookReader/utils/classes.js +1 -1
  160. package/src/BookReader/utils.js +128 -13
  161. package/src/BookReader.js +562 -1078
  162. package/src/BookReaderPlugin.js +44 -0
  163. package/src/assets/icons/close-circle-dark.svg +1 -0
  164. package/src/assets/icons/magnify-minus.svg +3 -7
  165. package/src/assets/icons/magnify-plus.svg +3 -7
  166. package/src/assets/icons/voice.svg +1 -0
  167. package/src/assets/images/unviewable_page.png +0 -0
  168. package/src/css/BookReader.scss +1 -17
  169. package/src/css/_BRBookmarks.scss +1 -1
  170. package/src/css/_BRComponent.scss +1 -1
  171. package/src/css/_BRicon.scss +8 -2
  172. package/src/css/_BRmain.scss +33 -27
  173. package/src/css/_BRnav.scss +12 -42
  174. package/src/css/_BRpages.scss +170 -42
  175. package/src/css/_BRsearch.scss +68 -230
  176. package/src/css/_BRtoolbar.scss +5 -5
  177. package/src/css/_TextSelection.scss +87 -27
  178. package/src/css/_colorbox.scss +2 -2
  179. package/src/css/_controls.scss +24 -7
  180. package/src/css/_icons.scss +7 -1
  181. package/src/ia-bookreader/ia-bookreader.js +224 -0
  182. package/src/plugins/plugin.archive_analytics.js +84 -78
  183. package/src/plugins/plugin.autoplay.js +99 -104
  184. package/src/plugins/plugin.chapters.js +237 -191
  185. package/src/plugins/plugin.iframe.js +1 -1
  186. package/src/plugins/plugin.iiif.js +141 -0
  187. package/src/plugins/plugin.resume.js +53 -50
  188. package/src/plugins/plugin.text_selection.js +503 -175
  189. package/src/plugins/plugin.vendor-fullscreen.js +7 -7
  190. package/src/plugins/search/plugin.search.js +183 -121
  191. package/src/plugins/search/utils.js +43 -0
  192. package/src/plugins/search/view.js +67 -202
  193. package/src/plugins/tts/AbstractTTSEngine.js +75 -45
  194. package/src/plugins/tts/FestivalTTSEngine.js +21 -31
  195. package/src/plugins/tts/PageChunk.js +16 -23
  196. package/src/plugins/tts/PageChunkIterator.js +11 -17
  197. package/src/plugins/tts/WebTTSEngine.js +88 -72
  198. package/src/plugins/tts/plugin.tts.js +310 -350
  199. package/src/plugins/tts/utils.js +16 -26
  200. package/src/plugins/url/UrlPlugin.js +191 -0
  201. package/src/plugins/{plugin.url.js → url/plugin.url.js} +47 -18
  202. package/src/util/browserSniffing.js +22 -0
  203. package/src/util/docCookies.js +21 -2
  204. package/src/util/strings.js +1 -0
  205. package/tests/e2e/README.md +37 -0
  206. package/tests/e2e/autoplay.test.js +9 -6
  207. package/tests/e2e/base.test.js +8 -16
  208. package/tests/e2e/helpers/base.js +55 -50
  209. package/tests/e2e/helpers/debug.js +1 -1
  210. package/tests/e2e/helpers/mockSearch.js +19 -22
  211. package/tests/e2e/helpers/params.js +17 -0
  212. package/tests/e2e/helpers/rightToLeft.js +8 -14
  213. package/tests/e2e/helpers/search.js +73 -0
  214. package/tests/e2e/models/Navigation.js +20 -37
  215. package/tests/e2e/rightToLeft.test.js +4 -5
  216. package/tests/e2e/viewmode.test.js +40 -33
  217. package/tests/jest/BookNavigator/book-navigator.test.js +661 -0
  218. package/tests/jest/BookNavigator/bookmarks/bookmark-button.test.js +43 -0
  219. package/tests/{karma → jest}/BookNavigator/bookmarks/bookmark-edit.test.js +25 -26
  220. package/tests/{karma → jest}/BookNavigator/bookmarks/bookmarks-list.test.js +41 -42
  221. package/tests/jest/BookNavigator/bookmarks/ia-bookmarks.test.js +45 -0
  222. package/tests/jest/BookNavigator/downloads/downloads-provider.test.js +67 -0
  223. package/tests/jest/BookNavigator/downloads/downloads.test.js +53 -0
  224. package/tests/jest/BookNavigator/search/search-provider.test.js +167 -0
  225. package/tests/{karma/BookNavigator → jest/BookNavigator/search}/search-results.test.js +109 -60
  226. package/tests/jest/BookNavigator/sharing/sharing-provider.test.js +49 -0
  227. package/tests/jest/BookNavigator/viewable-files/viewable-files-provider.test.js +80 -0
  228. package/tests/jest/BookNavigator/visual-adjustments.test.js +200 -0
  229. package/tests/{BookReader → jest/BookReader}/BookModel.test.js +74 -14
  230. package/tests/jest/BookReader/BookReaderPublicFunctions.test.js +193 -0
  231. package/tests/{BookReader → jest/BookReader}/ImageCache.test.js +4 -4
  232. package/tests/jest/BookReader/Mode1UpLit.test.js +73 -0
  233. package/tests/jest/BookReader/Mode2Up.test.js +98 -0
  234. package/tests/jest/BookReader/Mode2UpLit.test.js +190 -0
  235. package/tests/jest/BookReader/ModeCoordinateSpace.test.js +16 -0
  236. package/tests/jest/BookReader/ModeSmoothZoom.test.js +218 -0
  237. package/tests/jest/BookReader/ModeThumb.test.js +71 -0
  238. package/tests/{BookReader → jest/BookReader}/Navbar/Navbar.test.js +42 -29
  239. package/tests/jest/BookReader/PageContainer.test.js +238 -0
  240. package/tests/{BookReader → jest/BookReader}/ReduceSet.test.js +1 -1
  241. package/tests/{BookReader → jest/BookReader}/Toolbar/Toolbar.test.js +3 -3
  242. package/tests/jest/BookReader/utils/HTMLDimensionsCacher.test.js +59 -0
  243. package/tests/jest/BookReader/utils/ScrollClassAdder.test.js +49 -0
  244. package/tests/jest/BookReader/utils/SelectionObserver.test.js +57 -0
  245. package/tests/{BookReader → jest/BookReader}/utils/classes.test.js +1 -1
  246. package/tests/jest/BookReader/utils.test.js +250 -0
  247. package/tests/jest/BookReader.keyboard.test.js +190 -0
  248. package/tests/{BookReader.options.test.js → jest/BookReader.options.test.js} +10 -2
  249. package/tests/{BookReader.test.js → jest/BookReader.test.js} +43 -53
  250. package/tests/jest/plugins/plugin.archive_analytics.test.js +20 -0
  251. package/tests/jest/plugins/plugin.autoplay.test.js +35 -0
  252. package/tests/jest/plugins/plugin.chapters.test.js +195 -0
  253. package/tests/{plugins → jest/plugins}/plugin.iframe.test.js +4 -4
  254. package/tests/{plugins → jest/plugins}/plugin.resume.test.js +22 -35
  255. package/tests/jest/plugins/plugin.text_selection.test.js +316 -0
  256. package/tests/{plugins → jest/plugins}/plugin.vendor-fullscreen.test.js +2 -2
  257. package/tests/{plugins → jest/plugins}/search/plugin.search.test.js +26 -47
  258. package/tests/{plugins → jest/plugins}/search/plugin.search.view.test.js +42 -9
  259. package/tests/jest/plugins/search/utils.js +25 -0
  260. package/tests/jest/plugins/search/utils.test.js +29 -0
  261. package/tests/{plugins → jest/plugins}/tts/AbstractTTSEngine.test.js +30 -10
  262. package/tests/{plugins → jest/plugins}/tts/FestivalTTSEngine.test.js +4 -4
  263. package/tests/{plugins → jest/plugins}/tts/PageChunk.test.js +1 -1
  264. package/tests/{plugins → jest/plugins}/tts/PageChunkIterator.test.js +3 -3
  265. package/tests/{plugins → jest/plugins}/tts/WebTTSEngine.test.js +47 -1
  266. package/tests/{plugins → jest/plugins}/tts/utils.test.js +1 -60
  267. package/tests/jest/plugins/url/UrlPlugin.test.js +198 -0
  268. package/tests/{plugins → jest/plugins/url}/plugin.url.test.js +57 -18
  269. package/tests/jest/setup.js +3 -0
  270. package/tests/{util → jest/util}/browserSniffing.test.js +1 -1
  271. package/tests/jest/util/docCookies.test.js +24 -0
  272. package/tests/{util → jest/util}/strings.test.js +1 -1
  273. package/tests/{utils.js → jest/utils.js} +38 -0
  274. package/webpack.config.js +16 -10
  275. package/.babelrc +0 -12
  276. package/.dependabot/config.yml +0 -6
  277. package/.testcaferc.json +0 -5
  278. package/BookReader/bookreader-component-bundle.js +0 -14330
  279. package/BookReader/bookreader-component-bundle.js.LICENSE.txt +0 -38
  280. package/BookReader/bookreader-component-bundle.js.map +0 -1
  281. package/BookReader/icons/sort-ascending.svg +0 -1
  282. package/BookReader/icons/sort-descending.svg +0 -1
  283. package/BookReader/jquery-1.10.1.js +0 -108
  284. package/BookReader/jquery-1.10.1.js.LICENSE.txt +0 -24
  285. package/BookReader/plugins/plugin.menu_toggle.js +0 -369
  286. package/BookReader/plugins/plugin.menu_toggle.js.map +0 -1
  287. package/BookReader/plugins/plugin.mobile_nav.js +0 -335
  288. package/BookReader/plugins/plugin.mobile_nav.js.map +0 -1
  289. package/BookReaderDemo/BookReaderJSAutoplay.js +0 -56
  290. package/BookReaderDemo/IIIFBookReader.js +0 -207
  291. package/BookReaderDemo/bookreader-template-bundle.js +0 -7178
  292. package/BookReaderDemo/demo-autoplay.html +0 -38
  293. package/BookReaderDemo/demo-iiif.js +0 -26
  294. package/BookReaderDemo/demo-plugin-menu-toggle.html +0 -34
  295. package/karma.conf.js +0 -23
  296. package/src/BookNavigator/BookModel.js +0 -14
  297. package/src/BookNavigator/BookNavigator.js +0 -452
  298. package/src/BookNavigator/assets/book-loader.js +0 -27
  299. package/src/BookNavigator/assets/icon_sort_ascending.js +0 -5
  300. package/src/BookNavigator/assets/icon_sort_descending.js +0 -5
  301. package/src/BookNavigator/br-fullscreen-mgr.js +0 -83
  302. package/src/BookNavigator/search/a-search-result.js +0 -55
  303. package/src/BookNavigator/volumes/volumes-provider.js +0 -108
  304. package/src/BookNavigator/volumes/volumes.js +0 -162
  305. package/src/BookReader/DebugConsole.js +0 -54
  306. package/src/BookReaderComponent/BookReaderComponent.js +0 -112
  307. package/src/ItemNavigator/ItemNavigator.js +0 -372
  308. package/src/ItemNavigator/providers/sharing.js +0 -29
  309. package/src/assets/icons/sort-ascending.svg +0 -1
  310. package/src/assets/icons/sort-descending.svg +0 -1
  311. package/src/css/_MobileNav.scss +0 -194
  312. package/src/dragscrollable-br.js +0 -261
  313. package/src/plugins/menu_toggle/plugin.menu_toggle.js +0 -324
  314. package/src/plugins/plugin.mobile_nav.js +0 -287
  315. package/tests/BookReader/BookReaderPublicFunctions.test.js +0 -171
  316. package/tests/BookReader/DebugConsole.test.js +0 -25
  317. package/tests/BookReader/Mode1Up.test.js +0 -164
  318. package/tests/BookReader/Mode2Up.test.js +0 -247
  319. package/tests/BookReader/PageContainer.test.js +0 -115
  320. package/tests/BookReader/utils.test.js +0 -109
  321. package/tests/e2e/helpers/desktopSearch.js +0 -72
  322. package/tests/e2e/helpers/mobileSearch.js +0 -85
  323. package/tests/e2e/ia-production/ia-prod-base.js +0 -17
  324. package/tests/karma/BookNavigator/book-navigator.test.js +0 -132
  325. package/tests/karma/BookNavigator/visual-adjustments.test.js +0 -201
  326. package/tests/karma/BookNavigator/volumes.test.js +0 -133
  327. package/tests/plugins/menu_toggle/plugin.menu_toggle.test.js +0 -68
  328. package/tests/plugins/plugin.archive_analytics.test.js +0 -23
  329. package/tests/plugins/plugin.autoplay.test.js +0 -52
  330. package/tests/plugins/plugin.chapters.test.js +0 -130
  331. package/tests/plugins/plugin.mobile_nav.test.js +0 -66
  332. package/tests/plugins/plugin.text_selection.test.js +0 -203
  333. package/tests/util/docCookies.test.js +0 -15
@@ -1,1081 +1,3 @@
1
- (self["webpackChunk_internetarchive_bookreader"] = self["webpackChunk_internetarchive_bookreader"] || []).push([["plugins/plugin.text_selection.js"],{
2
-
3
- /***/ "./src/plugins/plugin.text_selection.js":
4
- /*!**********************************************!*\
5
- !*** ./src/plugins/plugin.text_selection.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 */ "DEFAULT_OPTIONS": function() { return /* binding */ DEFAULT_OPTIONS; },
13
- /* harmony export */ "Cache": function() { return /* binding */ Cache; },
14
- /* harmony export */ "TextSelectionPlugin": function() { return /* binding */ TextSelectionPlugin; },
15
- /* harmony export */ "BookreaderWithTextSelection": function() { return /* binding */ BookreaderWithTextSelection; }
16
- /* harmony export */ });
17
- /* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! regenerator-runtime/runtime.js */ "./node_modules/regenerator-runtime/runtime.js");
18
- /* harmony import */ var regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime_js__WEBPACK_IMPORTED_MODULE_0__);
19
- /* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
20
- /* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_1__);
21
- /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
22
- /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__);
23
- /* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ "./node_modules/core-js/modules/web.dom-collections.iterator.js");
24
- /* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_3__);
25
- /* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
26
- /* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_4__);
27
- /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
28
- /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5__);
29
- /* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ "./node_modules/core-js/modules/es.array.concat.js");
30
- /* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_6__);
31
- /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
32
- /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_7__);
33
- /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
34
- /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_8__);
35
- /* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js");
36
- /* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_9__);
37
- /* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.object.assign.js */ "./node_modules/core-js/modules/es.object.assign.js");
38
- /* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_10__);
39
- /* harmony import */ var core_js_modules_es_promise_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.promise.js */ "./node_modules/core-js/modules/es.promise.js");
40
- /* harmony import */ var core_js_modules_es_promise_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_js__WEBPACK_IMPORTED_MODULE_11__);
41
- /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
42
- /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_12__);
43
- /* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
44
- /* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_13__);
45
- /* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ "./node_modules/core-js/modules/es.symbol.iterator.js");
46
- /* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_14__);
47
- /* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ "./node_modules/core-js/modules/es.string.iterator.js");
48
- /* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_15__);
49
- /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
50
- /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_16__);
51
- /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ "./node_modules/core-js/modules/es.function.name.js");
52
- /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_17__);
53
- /* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! core-js/modules/es.array.from.js */ "./node_modules/core-js/modules/es.array.from.js");
54
- /* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_18__);
55
- /* harmony import */ var core_js_modules_es_object_get_prototype_of_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! core-js/modules/es.object.get-prototype-of.js */ "./node_modules/core-js/modules/es.object.get-prototype-of.js");
56
- /* harmony import */ var core_js_modules_es_object_get_prototype_of_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_prototype_of_js__WEBPACK_IMPORTED_MODULE_19__);
57
- /* harmony import */ var core_js_modules_es_reflect_construct_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! core-js/modules/es.reflect.construct.js */ "./node_modules/core-js/modules/es.reflect.construct.js");
58
- /* harmony import */ var core_js_modules_es_reflect_construct_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_reflect_construct_js__WEBPACK_IMPORTED_MODULE_20__);
59
- /* harmony import */ var core_js_modules_es_reflect_get_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! core-js/modules/es.reflect.get.js */ "./node_modules/core-js/modules/es.reflect.get.js");
60
- /* harmony import */ var core_js_modules_es_reflect_get_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_reflect_get_js__WEBPACK_IMPORTED_MODULE_21__);
61
- /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptor.js */ "./node_modules/core-js/modules/es.object.get-own-property-descriptor.js");
62
- /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_22__);
63
- /* harmony import */ var _util_browserSniffing_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../util/browserSniffing.js */ "./src/util/browserSniffing.js");
64
- /* harmony import */ var _util_strings_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../util/strings.js */ "./src/util/strings.js");
65
- /* provided dependency */ var $ = __webpack_require__(/*! jquery */ "jquery");
66
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
67
-
68
- function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
69
-
70
- function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
71
-
72
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
73
-
74
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
75
-
76
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
77
-
78
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
79
-
80
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
81
-
82
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
83
-
84
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
85
-
86
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
87
-
88
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
89
-
90
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
91
-
92
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
93
-
94
- function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
95
-
96
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
97
-
98
-
99
-
100
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
101
-
102
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
103
-
104
-
105
-
106
-
107
-
108
-
109
-
110
-
111
-
112
-
113
-
114
-
115
-
116
-
117
-
118
-
119
-
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
128
-
129
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
130
-
131
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
132
-
133
- //@ts-check
134
-
135
-
136
- /** @typedef {import('../util/strings.js').StringWithVars} StringWithVars */
137
-
138
- var BookReader =
139
- /** @type {typeof import('../BookReader').default} */
140
- window.BookReader;
141
- var DEFAULT_OPTIONS = {
142
- enabled: true,
143
-
144
- /** @type {StringWithVars} The URL to fetch the entire DJVU xml. Supports options.vars */
145
- fullDjvuXmlUrl: null,
146
-
147
- /** @type {StringWithVars} The URL to fetch a single page of the DJVU xml. Supports options.vars. Also has {{pageIndex}} */
148
- singlePageDjvuXmlUrl: null
149
- };
150
- /** @typedef {typeof DEFAULT_OPTIONS} TextSelectionPluginOptions */
151
-
152
- /**
153
- * @template T
154
- */
155
-
156
- var Cache = /*#__PURE__*/function () {
157
- function Cache() {
158
- var maxSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
159
-
160
- _classCallCheck(this, Cache);
161
-
162
- this.maxSize = maxSize;
163
- /** @type {T[]} */
164
-
165
- this.entries = [];
166
- }
167
- /**
168
- * @param {T} entry
169
- */
170
-
171
-
172
- _createClass(Cache, [{
173
- key: "add",
174
- value: function add(entry) {
175
- if (this.entries.length >= this.maxSize) {
176
- this.entries.shift();
177
- }
178
-
179
- this.entries.push(entry);
180
- }
181
- }]);
182
-
183
- return Cache;
184
- }();
185
- var TextSelectionPlugin = /*#__PURE__*/function () {
186
- function TextSelectionPlugin() {
187
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_OPTIONS;
188
- var optionVariables = arguments.length > 1 ? arguments[1] : undefined;
189
- var avoidTspans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : (0,_util_browserSniffing_js__WEBPACK_IMPORTED_MODULE_23__.isFirefox)();
190
- var pointerEventsOnParagraph = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : (0,_util_browserSniffing_js__WEBPACK_IMPORTED_MODULE_23__.isSafari)();
191
-
192
- _classCallCheck(this, TextSelectionPlugin);
193
-
194
- this.options = options;
195
- this.optionVariables = optionVariables;
196
- /**@type {PromiseLike<JQuery<HTMLElement>|undefined>} */
197
-
198
- this.djvuPagesPromise = null; // Using text elements instead of tspans for words because Firefox does not allow svg tspan stretch.
199
- // Tspans are necessary on Chrome because they prevent newline character after every word when copying
200
-
201
- this.svgParagraphElement = "text";
202
- this.svgWordElement = "tspan";
203
- this.insertNewlines = avoidTspans; // Safari has a bug where `pointer-events` doesn't work on `<tspans>`. So
204
- // there we will set `pointer-events: all` on the paragraph element. We don't
205
- // do this everywhere, because it's a worse experience. Thanks Safari :/
206
-
207
- this.pointerEventsOnParagraph = pointerEventsOnParagraph;
208
-
209
- if (avoidTspans) {
210
- this.svgParagraphElement = "g";
211
- this.svgWordElement = "text";
212
- }
213
- /** @type {Cache<{index: number, response: any}>} */
214
-
215
-
216
- this.pageTextCache = new Cache();
217
- /**
218
- * Sometimes there are too many words on a page, and the browser becomes near
219
- * unusable. For now don't render text layer for pages with too many words.
220
- */
221
-
222
- this.maxWordRendered = 2500;
223
- }
224
-
225
- _createClass(TextSelectionPlugin, [{
226
- key: "init",
227
- value: function init() {
228
- // Only fetch the full djvu xml if the single page url isn't there
229
- if (this.options.singlePageDjvuXmlUrl) return;
230
- this.djvuPagesPromise = $.ajax({
231
- type: "GET",
232
- url: (0,_util_strings_js__WEBPACK_IMPORTED_MODULE_24__.applyVariables)(this.options.fullDjvuXmlUrl, this.optionVariables),
233
- dataType: "html",
234
- error: function error(e) {
235
- return undefined;
236
- }
237
- }).then(function (res) {
238
- try {
239
- var xmlMap = $.parseXML(res);
240
- return xmlMap && $(xmlMap).find("OBJECT");
241
- } catch (e) {
242
- return undefined;
243
- }
244
- });
245
- }
246
- /**
247
- * @param {number} index
248
- * @returns {Promise<HTMLElement|undefined>}
249
- */
250
-
251
- }, {
252
- key: "getPageText",
253
- value: function () {
254
- var _getPageText = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(index) {
255
- var _this = this;
256
-
257
- var cachedEntry, XMLpagesArr;
258
- return regeneratorRuntime.wrap(function _callee$(_context) {
259
- while (1) {
260
- switch (_context.prev = _context.next) {
261
- case 0:
262
- if (!this.options.singlePageDjvuXmlUrl) {
263
- _context.next = 7;
264
- break;
265
- }
266
-
267
- cachedEntry = this.pageTextCache.entries.find(function (x) {
268
- return x.index == index;
269
- });
270
-
271
- if (!cachedEntry) {
272
- _context.next = 4;
273
- break;
274
- }
275
-
276
- return _context.abrupt("return", cachedEntry.response);
277
-
278
- case 4:
279
- return _context.abrupt("return", $.ajax({
280
- type: "GET",
281
- url: (0,_util_strings_js__WEBPACK_IMPORTED_MODULE_24__.applyVariables)(this.options.singlePageDjvuXmlUrl, this.optionVariables, {
282
- pageIndex: index
283
- }),
284
- dataType: "html",
285
- error: function error(e) {
286
- return undefined;
287
- }
288
- }).then(function (res) {
289
- try {
290
- var xmlDoc = $.parseXML(res);
291
- var result = xmlDoc && $(xmlDoc).find("OBJECT")[0];
292
-
293
- _this.pageTextCache.add({
294
- index: index,
295
- response: result
296
- });
297
-
298
- return result;
299
- } catch (e) {
300
- return undefined;
301
- }
302
- }));
303
-
304
- case 7:
305
- _context.next = 9;
306
- return this.djvuPagesPromise;
307
-
308
- case 9:
309
- XMLpagesArr = _context.sent;
310
-
311
- if (!XMLpagesArr) {
312
- _context.next = 12;
313
- break;
314
- }
315
-
316
- return _context.abrupt("return", XMLpagesArr[index]);
317
-
318
- case 12:
319
- case "end":
320
- return _context.stop();
321
- }
322
- }
323
- }, _callee, this);
324
- }));
325
-
326
- function getPageText(_x) {
327
- return _getPageText.apply(this, arguments);
328
- }
329
-
330
- return getPageText;
331
- }()
332
- /**
333
- * Intercept copied text to remove any styling applied to it
334
- * @param {JQuery} $container
335
- */
336
-
337
- }, {
338
- key: "interceptCopy",
339
- value: function interceptCopy($container) {
340
- $container[0].addEventListener('copy', function (event) {
341
- var selection = document.getSelection();
342
- event.clipboardData.setData('text/plain', selection.toString());
343
- event.preventDefault();
344
- });
345
- }
346
- /**
347
- * Applies mouse events when in default mode
348
- * @param {SVGElement} svg
349
- */
350
-
351
- }, {
352
- key: "defaultMode",
353
- value: function defaultMode(svg) {
354
- var _this2 = this;
355
-
356
- svg.classList.remove("selectingSVG");
357
- $(svg).on("mousedown.textSelectPluginHandler", function (event) {
358
- if (!$(event.target).is(".BRwordElement")) return;
359
- event.stopPropagation();
360
- svg.classList.add("selectingSVG");
361
- $(svg).one("mouseup.textSelectPluginHandler", function (event) {
362
- if (window.getSelection().toString() != "") {
363
- event.stopPropagation();
364
- $(svg).off(".textSelectPluginHandler");
365
-
366
- _this2.textSelectingMode(svg);
367
- } else svg.classList.remove("selectingSVG");
368
- });
369
- });
370
- }
371
- /**
372
- * Applies mouse events when in textSelecting mode
373
- * @param {SVGElement} svg
374
- */
375
-
376
- }, {
377
- key: "textSelectingMode",
378
- value: function textSelectingMode(svg) {
379
- var _this3 = this;
380
-
381
- $(svg).on('mousedown.textSelectPluginHandler', function (event) {
382
- if (!$(event.target).is(".BRwordElement")) {
383
- if (window.getSelection().toString() != "") window.getSelection().removeAllRanges();
384
- }
385
-
386
- event.stopPropagation();
387
- });
388
- $(svg).on('mouseup.textSelectPluginHandler', function (event) {
389
- event.stopPropagation();
390
-
391
- if (window.getSelection().toString() == "") {
392
- $(svg).off(".textSelectPluginHandler");
393
-
394
- _this3.defaultMode(svg);
395
- }
396
- });
397
- }
398
- /**
399
- * Initializes text selection modes if there is an svg on the page
400
- * @param {JQuery} $container
401
- */
402
-
403
- }, {
404
- key: "stopPageFlip",
405
- value: function stopPageFlip($container) {
406
- var _this4 = this;
407
-
408
- /** @type {JQuery<SVGElement>} */
409
- var $svg = $container.find('svg.textSelectionSVG');
410
- if (!$svg.length) return;
411
- $svg.each(function (i, s) {
412
- return _this4.defaultMode(s);
413
- });
414
- this.interceptCopy($container);
415
- }
416
- /**
417
- * @param {number} pageIndex
418
- * @param {JQuery} $container
419
- */
420
-
421
- }, {
422
- key: "createTextLayer",
423
- value: function () {
424
- var _createTextLayer = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(pageIndex, $container) {
425
- var _this5 = this;
426
-
427
- var $svgLayers, XMLpage, XMLwidth, XMLheight, totalWords, svg;
428
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
429
- while (1) {
430
- switch (_context2.prev = _context2.next) {
431
- case 0:
432
- $svgLayers = $container.find('.textSelectionSVG');
433
-
434
- if (!$svgLayers.length) {
435
- _context2.next = 3;
436
- break;
437
- }
438
-
439
- return _context2.abrupt("return");
440
-
441
- case 3:
442
- _context2.next = 5;
443
- return this.getPageText(pageIndex);
444
-
445
- case 5:
446
- XMLpage = _context2.sent;
447
-
448
- if (XMLpage) {
449
- _context2.next = 8;
450
- break;
451
- }
452
-
453
- return _context2.abrupt("return");
454
-
455
- case 8:
456
- XMLwidth = $(XMLpage).attr("width");
457
- XMLheight = $(XMLpage).attr("height");
458
- totalWords = $(XMLpage).find("WORD").length;
459
-
460
- if (!(totalWords > this.maxWordRendered)) {
461
- _context2.next = 14;
462
- break;
463
- }
464
-
465
- console.log("Page ".concat(pageIndex, " has too many words (").concat(totalWords, " > ").concat(this.maxWordRendered, "). Not rendering text layer."));
466
- return _context2.abrupt("return");
467
-
468
- case 14:
469
- svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
470
- svg.setAttribute("xmlns", "http://www.w3.org/2000/svg");
471
- svg.setAttribute("viewBox", "0 0 ".concat(XMLwidth, " ").concat(XMLheight));
472
- $container.append(svg);
473
- svg.setAttribute('class', 'textSelectionSVG');
474
- svg.setAttribute('preserveAspectRatio', 'none');
475
- $(svg).css({
476
- "width": "100%",
477
- "position": "absolute",
478
- "height": "100%",
479
- "top": "0",
480
- "left": "0"
481
- });
482
- $(XMLpage).find("PARAGRAPH").each(function (i, paragraph) {
483
- // Adding text element for each paragraph in the page
484
- var words = $(paragraph).find("WORD");
485
- if (!words.length) return;
486
- var paragSvg = document.createElementNS("http://www.w3.org/2000/svg", _this5.svgParagraphElement);
487
- paragSvg.setAttribute("class", "BRparagElement");
488
-
489
- if (_this5.pointerEventsOnParagraph) {
490
- paragSvg.style.pointerEvents = "all";
491
- }
492
-
493
- var wordHeightArr = [];
494
-
495
- for (var _i = 0; _i < words.length; _i++) {
496
- // Adding tspan for each word in paragraph
497
- var currWord = words[_i]; // eslint-disable-next-line no-unused-vars
498
-
499
- var _$$attr$split$map = $(currWord).attr("coords").split(',').map(parseFloat),
500
- _$$attr$split$map2 = _slicedToArray(_$$attr$split$map, 4),
501
- left = _$$attr$split$map2[0],
502
- bottom = _$$attr$split$map2[1],
503
- right = _$$attr$split$map2[2],
504
- top = _$$attr$split$map2[3];
505
-
506
- var wordHeight = bottom - top;
507
- wordHeightArr.push(wordHeight);
508
- var wordTspan = document.createElementNS("http://www.w3.org/2000/svg", _this5.svgWordElement);
509
- wordTspan.setAttribute("class", "BRwordElement");
510
- wordTspan.setAttribute("x", left.toString());
511
- wordTspan.setAttribute("y", bottom.toString());
512
- wordTspan.setAttribute("textLength", (right - left).toString());
513
- wordTspan.setAttribute("lengthAdjust", "spacingAndGlyphs");
514
- wordTspan.textContent = currWord.textContent;
515
- paragSvg.appendChild(wordTspan); // Adding spaces after words except at the end of the paragraph
516
- // TODO: assumes left-to-right text
517
-
518
- if (_i < words.length - 1) {
519
- var nextWord = words[_i + 1]; // eslint-disable-next-line no-unused-vars
520
-
521
- var _$$attr$split$map3 = $(nextWord).attr("coords").split(',').map(parseFloat),
522
- _$$attr$split$map4 = _slicedToArray(_$$attr$split$map3, 4),
523
- leftNext = _$$attr$split$map4[0],
524
- bottomNext = _$$attr$split$map4[1],
525
- rightNext = _$$attr$split$map4[2],
526
- topNext = _$$attr$split$map4[3];
527
-
528
- var spaceTspan = document.createElementNS("http://www.w3.org/2000/svg", _this5.svgWordElement);
529
- spaceTspan.setAttribute("class", "BRwordElement");
530
- spaceTspan.setAttribute("x", right.toString());
531
- spaceTspan.setAttribute("y", bottom.toString());
532
- if (leftNext - right > 0) spaceTspan.setAttribute("textLength", (leftNext - right).toString());
533
- spaceTspan.setAttribute("lengthAdjust", "spacingAndGlyphs");
534
- spaceTspan.textContent = " ";
535
- paragSvg.appendChild(spaceTspan);
536
- } // Adds newline at the end of paragraph on Firefox
537
-
538
-
539
- if (_i == words.length - 1 && _this5.insertNewlines) {
540
- paragSvg.appendChild(document.createTextNode("\n"));
541
- }
542
- }
543
-
544
- wordHeightArr.sort();
545
- var paragWordHeight = wordHeightArr[Math.floor(wordHeightArr.length * 0.85)];
546
- paragSvg.setAttribute("font-size", paragWordHeight.toString());
547
- svg.appendChild(paragSvg);
548
- });
549
- this.stopPageFlip($container);
550
-
551
- case 23:
552
- case "end":
553
- return _context2.stop();
554
- }
555
- }
556
- }, _callee2, this);
557
- }));
558
-
559
- function createTextLayer(_x2, _x3) {
560
- return _createTextLayer.apply(this, arguments);
561
- }
562
-
563
- return createTextLayer;
564
- }()
565
- }]);
566
-
567
- return TextSelectionPlugin;
568
- }();
569
- var BookreaderWithTextSelection = /*#__PURE__*/function (_BookReader) {
570
- _inherits(BookreaderWithTextSelection, _BookReader);
571
-
572
- var _super = _createSuper(BookreaderWithTextSelection);
573
-
574
- function BookreaderWithTextSelection() {
575
- _classCallCheck(this, BookreaderWithTextSelection);
576
-
577
- return _super.apply(this, arguments);
578
- }
579
-
580
- _createClass(BookreaderWithTextSelection, [{
581
- key: "init",
582
- value: function init() {
583
- var options = Object.assign({}, DEFAULT_OPTIONS, this.options.plugins.textSelection);
584
-
585
- if (options.enabled) {
586
- this.textSelectionPlugin = new TextSelectionPlugin(options, this.options.vars); // Write this back; this way the plugin is the source of truth, and BR just
587
- // contains a reference to it.
588
-
589
- this.options.plugins.textSelection = options;
590
- this.textSelectionPlugin.init();
591
- }
592
-
593
- _get(_getPrototypeOf(BookreaderWithTextSelection.prototype), "init", this).call(this);
594
- }
595
- /**
596
- * @param {number} index
597
- */
598
-
599
- }, {
600
- key: "_createPageContainer",
601
- value: function _createPageContainer(index) {
602
- var pageContainer = _get(_getPrototypeOf(BookreaderWithTextSelection.prototype), "_createPageContainer", this).call(this, index); // Disable if thumb mode; it's too janky
603
- // index can be -1 for "pre-cover" region
604
- // Added checking of lastPageIndex to avoid loop around index value
605
-
606
-
607
- var lastPageIndex = this.getNumLeafs() - 1;
608
-
609
- if (this.mode !== this.constModeThumb && index >= 0 && index <= lastPageIndex) {
610
- var _this$textSelectionPl;
611
-
612
- (_this$textSelectionPl = this.textSelectionPlugin) === null || _this$textSelectionPl === void 0 ? void 0 : _this$textSelectionPl.createTextLayer(index, pageContainer.$container);
613
- }
614
-
615
- return pageContainer;
616
- }
617
- }]);
618
-
619
- return BookreaderWithTextSelection;
620
- }(BookReader);
621
- window.BookReader = BookreaderWithTextSelection;
622
- /* harmony default export */ __webpack_exports__["default"] = (BookreaderWithTextSelection);
623
-
624
- /***/ }),
625
-
626
- /***/ "./src/util/browserSniffing.js":
627
- /*!*************************************!*\
628
- !*** ./src/util/browserSniffing.js ***!
629
- \*************************************/
630
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
631
-
632
- "use strict";
633
- __webpack_require__.r(__webpack_exports__);
634
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
635
- /* harmony export */ "isChrome": function() { return /* binding */ isChrome; },
636
- /* harmony export */ "isFirefox": function() { return /* binding */ isFirefox; },
637
- /* harmony export */ "isSafari": function() { return /* binding */ isSafari; }
638
- /* harmony export */ });
639
- /**
640
- * Checks whether the current browser is a Chrome/Chromium browser
641
- * Code from https://stackoverflow.com/a/4565120/2317712
642
- * @param {string} [userAgent]
643
- * @param {string} [vendor]
644
- * @return {boolean}
645
- */
646
- function isChrome() {
647
- var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : navigator.userAgent;
648
- var vendor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : navigator.vendor;
649
- return /chrome/i.test(userAgent) && /google inc/i.test(vendor);
650
- }
651
- /**
652
- * Checks whether the current browser is firefox
653
- * @param {string} [userAgent]
654
- * @return {boolean}
655
- */
656
-
657
- function isFirefox() {
658
- var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : navigator.userAgent;
659
- return /firefox/i.test(userAgent);
660
- }
661
- /**
662
- * Checks whether the current browser is safari
663
- * https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent#Browser_Name
664
- * @param {string} [userAgent]
665
- * @return {boolean}
666
- */
667
-
668
- function isSafari() {
669
- var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : navigator.userAgent;
670
- return /safari/i.test(userAgent) && !/chrome|chromium/i.test(userAgent);
671
- }
672
-
673
- /***/ }),
674
-
675
- /***/ "./src/util/strings.js":
676
- /*!*****************************!*\
677
- !*** ./src/util/strings.js ***!
678
- \*****************************/
679
- /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
680
-
681
- "use strict";
682
- __webpack_require__.r(__webpack_exports__);
683
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
684
- /* harmony export */ "applyVariables": function() { return /* binding */ applyVariables; },
685
- /* harmony export */ "APPLY_FILTERS": function() { return /* binding */ APPLY_FILTERS; }
686
- /* harmony export */ });
687
- /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
688
- /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);
689
- /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
690
- /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__);
691
- /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ "./node_modules/core-js/modules/es.array.map.js");
692
- /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_2__);
693
- /* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js");
694
- /* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3__);
695
- /* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.string.trim.js */ "./node_modules/core-js/modules/es.string.trim.js");
696
- /* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_4__);
697
- /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js");
698
- /* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_5__);
699
- /* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.array.reduce.js */ "./node_modules/core-js/modules/es.array.reduce.js");
700
- /* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_6__);
701
- /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
702
- /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_7__);
703
- /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
704
- /* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_8__);
705
- /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
706
- /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_9__);
707
- /* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ "./node_modules/core-js/modules/es.symbol.description.js");
708
- /* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_10__);
709
- /* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ "./node_modules/core-js/modules/es.symbol.iterator.js");
710
- /* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_11__);
711
- /* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ "./node_modules/core-js/modules/es.array.iterator.js");
712
- /* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_12__);
713
- /* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ "./node_modules/core-js/modules/es.string.iterator.js");
714
- /* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_13__);
715
- /* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ "./node_modules/core-js/modules/web.dom-collections.iterator.js");
716
- /* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_14__);
717
- /* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! core-js/modules/es.array.from.js */ "./node_modules/core-js/modules/es.array.from.js");
718
- /* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_15__);
719
- /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ "./node_modules/core-js/modules/es.function.name.js");
720
- /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_16__);
721
- function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
722
-
723
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
724
-
725
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
726
-
727
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
728
-
729
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
730
-
731
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
732
-
733
-
734
-
735
-
736
-
737
-
738
-
739
-
740
-
741
-
742
-
743
-
744
-
745
-
746
-
747
-
748
-
749
-
750
-
751
- /**
752
- * @typedef {String} StringWithVars
753
- * A template string with {{foo}} style variables
754
- * Also supports filters, like {{bookPath|urlencode}} (See APPLY_FILTERS for the
755
- * supported list of filters)
756
- **/
757
-
758
- /**
759
- * @param {StringWithVars|String} template
760
- * @param { {[varName: string]: { toString: () => string} } } vars
761
- * @param { {[varName: string]: { toString: () => string} } } [overrides]
762
- */
763
- function applyVariables(template, vars) {
764
- var overrides = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
765
- var possibleFilters = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : APPLY_FILTERS;
766
- return template === null || template === void 0 ? void 0 : template.replace(/\{\{([^}]*?)\}\}/g, function ($0, $1) {
767
- if (!$1) return $0;
768
- /** @type {string} */
769
-
770
- var expression = $1;
771
-
772
- var _expression$split$map = expression.split('|').map(function (x) {
773
- return x.trim();
774
- }),
775
- _expression$split$map2 = _toArray(_expression$split$map),
776
- varName = _expression$split$map2[0],
777
- filterNames = _expression$split$map2.slice(1);
778
-
779
- var defined = varName in overrides || varName in vars; // If it's not defined, don't expand it at all
780
-
781
- if (!defined) return $0;
782
- var value = varName in overrides ? overrides[varName] : varName in vars ? vars[varName] : null;
783
- var filters = filterNames.map(function (n) {
784
- return possibleFilters[n];
785
- });
786
- return filters.reduce(function (acc, cur) {
787
- return cur(acc);
788
- }, value && value.toString());
789
- });
790
- }
791
- /** @type { {[filterName: String]:( string => string)} } */
792
-
793
- var APPLY_FILTERS = {
794
- urlencode: encodeURIComponent
795
- };
796
-
797
- /***/ }),
798
-
799
- /***/ "./node_modules/core-js/internals/function-bind.js":
800
- /*!*********************************************************!*\
801
- !*** ./node_modules/core-js/internals/function-bind.js ***!
802
- \*********************************************************/
803
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
804
-
805
- "use strict";
806
-
807
- var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js");
808
- var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
809
-
810
- var slice = [].slice;
811
- var factories = {};
812
-
813
- var construct = function (C, argsLength, args) {
814
- if (!(argsLength in factories)) {
815
- for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';
816
- // eslint-disable-next-line no-new-func -- we have no proper alternatives, IE8- only
817
- factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');
818
- } return factories[argsLength](C, args);
819
- };
820
-
821
- // `Function.prototype.bind` method implementation
822
- // https://tc39.es/ecma262/#sec-function.prototype.bind
823
- module.exports = Function.bind || function bind(that /* , ...args */) {
824
- var fn = aFunction(this);
825
- var partArgs = slice.call(arguments, 1);
826
- var boundFunction = function bound(/* args... */) {
827
- var args = partArgs.concat(slice.call(arguments));
828
- return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);
829
- };
830
- if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;
831
- return boundFunction;
832
- };
833
-
834
-
835
- /***/ }),
836
-
837
- /***/ "./node_modules/core-js/internals/string-trim-forced.js":
838
- /*!**************************************************************!*\
839
- !*** ./node_modules/core-js/internals/string-trim-forced.js ***!
840
- \**************************************************************/
841
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
842
-
843
- var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
844
- var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js");
845
-
846
- var non = '\u200B\u0085\u180E';
847
-
848
- // check that a method works with the correct list
849
- // of whitespaces and has a correct name
850
- module.exports = function (METHOD_NAME) {
851
- return fails(function () {
852
- return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;
853
- });
854
- };
855
-
856
-
857
- /***/ }),
858
-
859
- /***/ "./node_modules/core-js/internals/string-trim.js":
860
- /*!*******************************************************!*\
861
- !*** ./node_modules/core-js/internals/string-trim.js ***!
862
- \*******************************************************/
863
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
864
-
865
- var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
866
- var whitespaces = __webpack_require__(/*! ../internals/whitespaces */ "./node_modules/core-js/internals/whitespaces.js");
867
-
868
- var whitespace = '[' + whitespaces + ']';
869
- var ltrim = RegExp('^' + whitespace + whitespace + '*');
870
- var rtrim = RegExp(whitespace + whitespace + '*$');
871
-
872
- // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
873
- var createMethod = function (TYPE) {
874
- return function ($this) {
875
- var string = String(requireObjectCoercible($this));
876
- if (TYPE & 1) string = string.replace(ltrim, '');
877
- if (TYPE & 2) string = string.replace(rtrim, '');
878
- return string;
879
- };
880
- };
881
-
882
- module.exports = {
883
- // `String.prototype.{ trimLeft, trimStart }` methods
884
- // https://tc39.es/ecma262/#sec-string.prototype.trimstart
885
- start: createMethod(1),
886
- // `String.prototype.{ trimRight, trimEnd }` methods
887
- // https://tc39.es/ecma262/#sec-string.prototype.trimend
888
- end: createMethod(2),
889
- // `String.prototype.trim` method
890
- // https://tc39.es/ecma262/#sec-string.prototype.trim
891
- trim: createMethod(3)
892
- };
893
-
894
-
895
- /***/ }),
896
-
897
- /***/ "./node_modules/core-js/internals/whitespaces.js":
898
- /*!*******************************************************!*\
899
- !*** ./node_modules/core-js/internals/whitespaces.js ***!
900
- \*******************************************************/
901
- /***/ (function(module) {
902
-
903
- // a string of all valid unicode whitespaces
904
- module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' +
905
- '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
906
-
907
-
908
- /***/ }),
909
-
910
- /***/ "./node_modules/core-js/modules/es.object.assign.js":
911
- /*!**********************************************************!*\
912
- !*** ./node_modules/core-js/modules/es.object.assign.js ***!
913
- \**********************************************************/
914
- /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
915
-
916
- var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
917
- var assign = __webpack_require__(/*! ../internals/object-assign */ "./node_modules/core-js/internals/object-assign.js");
918
-
919
- // `Object.assign` method
920
- // https://tc39.es/ecma262/#sec-object.assign
921
- // eslint-disable-next-line es/no-object-assign -- required for testing
922
- $({ target: 'Object', stat: true, forced: Object.assign !== assign }, {
923
- assign: assign
924
- });
925
-
926
-
927
- /***/ }),
928
-
929
- /***/ "./node_modules/core-js/modules/es.object.get-prototype-of.js":
930
- /*!********************************************************************!*\
931
- !*** ./node_modules/core-js/modules/es.object.get-prototype-of.js ***!
932
- \********************************************************************/
933
- /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
934
-
935
- var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
936
- var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
937
- var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
938
- var nativeGetPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js");
939
- var CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ "./node_modules/core-js/internals/correct-prototype-getter.js");
940
-
941
- var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });
942
-
943
- // `Object.getPrototypeOf` method
944
- // https://tc39.es/ecma262/#sec-object.getprototypeof
945
- $({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {
946
- getPrototypeOf: function getPrototypeOf(it) {
947
- return nativeGetPrototypeOf(toObject(it));
948
- }
949
- });
950
-
951
-
952
-
953
- /***/ }),
954
-
955
- /***/ "./node_modules/core-js/modules/es.reflect.construct.js":
956
- /*!**************************************************************!*\
957
- !*** ./node_modules/core-js/modules/es.reflect.construct.js ***!
958
- \**************************************************************/
959
- /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
960
-
961
- var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
962
- var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
963
- var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js");
964
- var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
965
- var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
966
- var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js");
967
- var bind = __webpack_require__(/*! ../internals/function-bind */ "./node_modules/core-js/internals/function-bind.js");
968
- var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
969
-
970
- var nativeConstruct = getBuiltIn('Reflect', 'construct');
971
-
972
- // `Reflect.construct` method
973
- // https://tc39.es/ecma262/#sec-reflect.construct
974
- // MS Edge supports only 2 arguments and argumentsList argument is optional
975
- // FF Nightly sets third argument as `new.target`, but does not create `this` from it
976
- var NEW_TARGET_BUG = fails(function () {
977
- function F() { /* empty */ }
978
- return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);
979
- });
980
- var ARGS_BUG = !fails(function () {
981
- nativeConstruct(function () { /* empty */ });
982
- });
983
- var FORCED = NEW_TARGET_BUG || ARGS_BUG;
984
-
985
- $({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {
986
- construct: function construct(Target, args /* , newTarget */) {
987
- aFunction(Target);
988
- anObject(args);
989
- var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
990
- if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);
991
- if (Target == newTarget) {
992
- // w/o altered newTarget, optimization for 0-4 arguments
993
- switch (args.length) {
994
- case 0: return new Target();
995
- case 1: return new Target(args[0]);
996
- case 2: return new Target(args[0], args[1]);
997
- case 3: return new Target(args[0], args[1], args[2]);
998
- case 4: return new Target(args[0], args[1], args[2], args[3]);
999
- }
1000
- // w/o altered newTarget, lot of arguments case
1001
- var $args = [null];
1002
- $args.push.apply($args, args);
1003
- return new (bind.apply(Target, $args))();
1004
- }
1005
- // with altered newTarget, not support built-in constructors
1006
- var proto = newTarget.prototype;
1007
- var instance = create(isObject(proto) ? proto : Object.prototype);
1008
- var result = Function.apply.call(Target, instance, args);
1009
- return isObject(result) ? result : instance;
1010
- }
1011
- });
1012
-
1013
-
1014
- /***/ }),
1015
-
1016
- /***/ "./node_modules/core-js/modules/es.reflect.get.js":
1017
- /*!********************************************************!*\
1018
- !*** ./node_modules/core-js/modules/es.reflect.get.js ***!
1019
- \********************************************************/
1020
- /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1021
-
1022
- var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
1023
- var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
1024
- var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
1025
- var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
1026
- var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js");
1027
- var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js");
1028
-
1029
- // `Reflect.get` method
1030
- // https://tc39.es/ecma262/#sec-reflect.get
1031
- function get(target, propertyKey /* , receiver */) {
1032
- var receiver = arguments.length < 3 ? target : arguments[2];
1033
- var descriptor, prototype;
1034
- if (anObject(target) === receiver) return target[propertyKey];
1035
- if (descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey)) return has(descriptor, 'value')
1036
- ? descriptor.value
1037
- : descriptor.get === undefined
1038
- ? undefined
1039
- : descriptor.get.call(receiver);
1040
- if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);
1041
- }
1042
-
1043
- $({ target: 'Reflect', stat: true }, {
1044
- get: get
1045
- });
1046
-
1047
-
1048
- /***/ }),
1049
-
1050
- /***/ "./node_modules/core-js/modules/es.string.trim.js":
1051
- /*!********************************************************!*\
1052
- !*** ./node_modules/core-js/modules/es.string.trim.js ***!
1053
- \********************************************************/
1054
- /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1055
-
1056
- "use strict";
1057
-
1058
- var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
1059
- var $trim = __webpack_require__(/*! ../internals/string-trim */ "./node_modules/core-js/internals/string-trim.js").trim;
1060
- var forcedStringTrimMethod = __webpack_require__(/*! ../internals/string-trim-forced */ "./node_modules/core-js/internals/string-trim-forced.js");
1061
-
1062
- // `String.prototype.trim` method
1063
- // https://tc39.es/ecma262/#sec-string.prototype.trim
1064
- $({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {
1065
- trim: function trim() {
1066
- return $trim(this);
1067
- }
1068
- });
1069
-
1070
-
1071
- /***/ })
1072
-
1073
- },
1074
- /******/ function(__webpack_require__) { // webpackRuntimeModules
1075
- /******/ "use strict";
1076
- /******/
1077
- /******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
1078
- /******/ var __webpack_exports__ = (__webpack_exec__("./src/plugins/plugin.text_selection.js"));
1079
- /******/ }
1080
- ]);
1
+ /*! For license information please see plugin.text_selection.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunk_internetarchive_bookreader=self.webpackChunk_internetarchive_bookreader||[]).push([[326],{472:function(t,e,r){function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,i(n.key),n)}}function i(t){var e=function(t,e){if("object"!=n(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var o=r.call(t,"string");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}r.d(e,{S:function(){return a}}),r(2675),r(9463),r(2259),r(5700),r(3792),r(9572),r(8130),r(9085),r(6099),r(7764),r(2953);var a=function(){return t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.br=e,this.options},(e=[{key:"setup",value:function(t){this.options=Object.assign({},this.options,t)}},{key:"init",value:function(){}},{key:"_configurePageContainer",value:function(t){}},{key:"_bindNavigationHandlers",value:function(){}},{key:"extendNavBar",value:function(t){}}])&&o(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()},477:function(t,e,r){r(2675),r(9463),r(6412),r(2259),r(5700),r(8125),r(8706),r(113),r(3418),r(3792),r(8598),r(2062),r(4490),r(4782),r(6910),r(9572),r(2010),r(4731),r(6033),r(479),r(8130),r(9085),r(875),r(6099),r(8459),r(3362),r(825),r(7495),r(8781),r(9449),r(7764),r(2762),r(3500),r(2953);var n=r(1774),o=r(1669);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function a(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,l(n.key),n)}}function c(t,e,r){return(e=l(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function l(t){var e=function(t,e){if("object"!=i(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==i(e)?e:e+""}var u=function(){return t=function t(e,r){var n=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),c(this,"selecting",!1),c(this,"startedInSelector",!1),c(this,"target",null),c(this,"_onSelectionChange",(function(){var t=window.getSelection();if(!n.selecting&&t.toString()){var e=o(t.anchorNode).closest(n.selector)[0];if(!e)return;n.target=e,n.selecting=!0,n.handler("started",n.target)}!n.selecting||!t.isCollapsed&&t.toString()&&o(t.anchorNode).closest(n.selector)[0]||(n.selecting=!1,n.handler("cleared",n.target))})),this.selector=e,this.handler=r},(e=[{key:"attach",value:function(){document.addEventListener("selectionchange",this._onSelectionChange)}},{key:"detach",value:function(){document.removeEventListener("selectionchange",this._onSelectionChange)}}])&&a(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}(),s=r(472),f=r(1743),p=r(1669);function h(t){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h(t)}var d=x().mark(M),y=x().mark(N),v=x().mark(W);function m(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,c=[],l=!0,u=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(c.push(n.value),c.length!==e);l=!0);}catch(t){u=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(t,e)||b(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=b(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function b(t,e){if(t){if("string"==typeof t)return w(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?w(t,e):void 0}}function w(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function x(){x=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var i=e&&e.prototype instanceof g?e:g,a=Object.create(i.prototype),c=new _(n||[]);return o(a,"_invoke",{value:C(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=s;var p="suspendedStart",d="suspendedYield",y="executing",v="completed",m={};function g(){}function b(){}function w(){}var S={};u(S,a,(function(){return this}));var E=Object.getPrototypeOf,k=E&&E(E(T([])));k&&k!==r&&n.call(k,a)&&(S=k);var P=w.prototype=g.prototype=Object.create(S);function j(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(o,i,a,c){var l=f(t[o],t,i);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==h(s)&&n.call(s,"__await")?e.resolve(s.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(s).then((function(t){u.value=t,a(u)}),(function(t){return r("throw",t,a,c)}))}c(l.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function C(e,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===v){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var l=L(c,n);if(l){if(l===m)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var u=f(e,r,n);if("normal"===u.type){if(o=n.done?v:d,u.arg===m)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=v,n.method="throw",n.arg=u.arg)}}}function L(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,L(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function R(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(R,this),this.reset(!0)}function T(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o<e.length;)if(n.call(e,o))return r.value=e[o],r.done=!1,r;return r.value=t,r.done=!0,r};return i.next=i}}throw new TypeError(h(e)+" is not iterable")}return b.prototype=w,o(P,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:b,configurable:!0}),b.displayName=u(w,l,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===b||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,u(t,l,"GeneratorFunction")),t.prototype=Object.create(P),t},e.awrap=function(t){return{__await:t}},j(O.prototype),u(O.prototype,c,(function(){return this})),e.AsyncIterator=O,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new O(s(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},j(P),u(P,l,"Generator"),u(P,a,(function(){return this})),u(P,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=T,_.prototype={constructor:_,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(A),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function o(n,o){return c.type="throw",c.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(l&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),m},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),A(r),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:T(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),m}},e}function S(t,e,r,n,o,i,a){try{var c=t[i](a),l=c.value}catch(t){return void r(t)}c.done?e(l):Promise.resolve(l).then(n,o)}function E(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){S(i,n,o,a,c,"next",t)}function c(t){S(i,n,o,a,c,"throw",t)}a(void 0)}))}}function k(t,e,r){return e=j(e),function(t,e){if(e&&("object"==h(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,P()?Reflect.construct(e,r||[],j(t).constructor):e.apply(t,r))}function P(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(P=function(){return!!t})()}function j(t){return j=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},j(t)}function O(t,e){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},O(t,e)}function C(t,e,r){return(e=_(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function L(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function R(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,_(n.key),n)}}function A(t,e,r){return e&&R(t.prototype,e),r&&R(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function _(t){var e=function(t,e){if("object"!=h(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=h(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==h(e)?e:e+""}var T=window.BookReader,B=function(){return A((function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;L(this,t),this.maxSize=e,this.entries=[]}),[{key:"add",value:function(t){this.entries.length>=this.maxSize&&this.entries.shift(),this.entries.push(t)}}])}(),I=function(t){function e(t){var r;return L(this,e),C(r=k(this,e,[t]),"options",{enabled:!0,fullDjvuXmlUrl:null,singlePageDjvuXmlUrl:null,jsonp:!1}),C(r,"djvuPagesPromise",null),C(r,"pageTextCache",new B),C(r,"maxWordRendered",2500),C(r,"_onSelectionChange",(function(t,e){if("started"===t)r.textSelectingMode(e);else{if("cleared"!==t)throw new Error("Unknown type ".concat(t));r.defaultMode(e)}})),r.rtl="rl"===r.br.pageProgression,r.selectionObserver=new u(".BRtextLayer",r._onSelectionChange),r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&O(t,e)}(e,t),A(e,[{key:"init",value:function(){var t=this;this.options.enabled&&(this.loadData(),this.selectionObserver.attach(),new u(".BRtextLayer",(function(e){var r;"started"==e&&(null===(r=t.br._plugins.archiveAnalytics)||void 0===r||r.sendEvent("BookReader","SelectStart"),t.br.refs.$br.find(".BRpagecontainer--hasSelection").removeClass("BRpagecontainer--hasSelection"),p(window.getSelection().anchorNode).closest(".BRpagecontainer").addClass("BRpagecontainer--hasSelection"))})).attach())}},{key:"_configurePageContainer",value:function(t){return this.br.mode!==this.br.constModeThumb&&t.page&&this.createTextLayer(t),t}},{key:"loadData",value:function(){this.options.singlePageDjvuXmlUrl||(this.djvuPagesPromise=p.ajax({type:"GET",url:(0,f.g)(this.options.fullDjvuXmlUrl,this.br.options.vars),dataType:this.options.jsonp?"jsonp":"html",cache:!0,xhrFields:{withCredentials:this.br.protected},error:function(t){}}).then((function(t){try{var e=p.parseXML(t);return e&&p(e).find("OBJECT")}catch(t){return}})))}},{key:"getPageText",value:(o=E(x().mark((function t(e){var r,n,o,i,a;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.options.singlePageDjvuXmlUrl){t.next=19;break}if(!(r=this.pageTextCache.entries.find((function(t){return t.index==e})))){t.next=4;break}return t.abrupt("return",r.response);case 4:return t.next=6,p.ajax({type:"GET",url:(0,f.g)(this.options.singlePageDjvuXmlUrl,this.br.options.vars,{pageIndex:e}),dataType:this.options.jsonp?"jsonp":"html",cache:!0,xhrFields:{withCredentials:this.br.protected},error:function(t){}});case 6:return n=t.sent,t.prev=7,o=p.parseXML(n),i=o&&p(o).find("OBJECT")[0],this.pageTextCache.add({index:e,response:i}),t.abrupt("return",i);case 14:return t.prev=14,t.t0=t.catch(7),t.abrupt("return",void 0);case 17:t.next=24;break;case 19:return t.next=21,this.djvuPagesPromise;case 21:if(!(a=t.sent)){t.next=24;break}return t.abrupt("return",a[e]);case 24:case"end":return t.stop()}}),t,this,[[7,14]])}))),function(t){return o.apply(this,arguments)})},{key:"interceptCopy",value:function(t){t[0].addEventListener("copy",(function(t){var e=document.getSelection();t.clipboardData.setData("text/plain",e.toString()),t.preventDefault()}))}},{key:"defaultMode",value:function(t){var e=this,r=p(t).closest(".BRpagecontainer");t.style.pointerEvents="none",r.find("img").css("pointer-events","auto"),p(t).off(".textSelectPluginHandler");var n=this.mouseIsDown,o=this.mouseIsDown;n&&(t.style.pointerEvents="auto"),p(t).on("mousedown.textSelectPluginHandler",(function(t){e.mouseIsDown=!0,p(t.target).is(".BRwordElement, .BRspace")&&t.stopPropagation()})),p(t).on("mouseup.textSelectPluginHandler",(function(r){e.mouseIsDown=!1,t.style.pointerEvents="none",o&&(o=!1,r.stopPropagation())}))}},{key:"textSelectingMode",value:function(t){var e=this,r=p(t).closest(".BRpagecontainer");t.style.pointerEvents="all",r.find("img").css("pointer-events","none"),p(t).off(".textSelectPluginHandler"),p(t).on("mousedown.textSelectPluginHandler",(function(t){e.mouseIsDown=!0,t.stopPropagation()})),p(t).on("mouseup.textSelectPluginHandler",(function(t){e.mouseIsDown=!1,t.stopPropagation()}))}},{key:"stopPageFlip",value:function(t){var e=this,r=t.find(".BRtextLayer");r.length&&(r.each((function(t,r){return e.defaultMode(r)})),this.interceptCopy(t))}},{key:"createTextLayer",value:(r=E(x().mark((function t(e){var r,o,i,a,c,l,u,s,f,h,d,y,v,b,w,S,E,k,P,j,O,C,L,R,A=this;return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.page.index,!(o=e.$container).find(".BRtextLayer").length){t.next=5;break}return t.abrupt("return");case 5:return t.next=7,this.getPageText(r);case 7:if(i=t.sent){t.next=10;break}return t.abrupt("return");case 10:if(G(i),!((a=p(i).find("WORD").length)>this.maxWordRendered)){t.next=15;break}return console.log("Page ".concat(r," has too many words (").concat(a," > ").concat(this.maxWordRendered,"). Not rendering text layer.")),t.abrupt("return");case 15:c=(0,n.Ql)(e.page,"BRtextLayer"),l=parseFloat(e.$container[0].style.width)/e.page.width,u=parseFloat(e.$container[0].style.height)/e.page.height,c.style.transform="scale(".concat(l,", ").concat(u,")"),c.setAttribute("dir",this.rtl?"rtl":"ltr"),s=p(i).find("PARAGRAPH[coords]").toArray(),f=s.map((function(t){var e=A.renderParagraph(t);return c.appendChild(e),e})),h=D(c,".BRparagraphElement"),d=0,y=g(W(s,f));try{for(y.s();!(v=y.n()).done;)b=m(v.value,2),w=b[0],S=b[1],E=p(w).attr("coords").split(",").map(parseFloat),k=h.get(S),P=m(E,4),j=P[0],O=P[2],C=P[3],L=this.rtl?k.right-O:j-k.left,R=C-(k.top+d),S.style[this.rtl?"marginRight":"marginLeft"]="".concat(L,"px"),S.style.marginTop="".concat(R,"px"),d+=R,c.appendChild(S)}catch(t){y.e(t)}finally{y.f()}o.append(c),this.stopPageFlip(o);case 28:case"end":return t.stop()}}),t,this)}))),function(t){return r.apply(this,arguments)})},{key:"renderParagraph",value:function(t){var e=document.createElement("p");e.classList.add("BRparagraphElement");var r=m(p(t).attr("coords").split(",").map(parseFloat),4),n=r[0],o=r[1],i=r[2],a=r[3],c=[],l=p(t).find("LINE[coords]").toArray();if(!l.length)return e;var u,s=g(N(M(l,F)));try{for(s.s();!(u=s.n()).done;){var f=m(u.value,3),h=f[0],d=f[1],y=f[2],v=d.ocrElement==l[l.length-1],x=document.createElement("span");x.classList.add("BRlineElement");var S,E=g(d.words.entries());try{for(E.s();!(S=E.n()).done;){var k=m(S.value,2),P=k[0],j=k[1],O=m(p(j).attr("coords").split(",").map(parseFloat),4),C=O[1],L=O[2],R=O[3],A=C-R;if(c.push(A),0==P&&null!=h&&h.lastWord.textContent.trim().endsWith("-")){var _=m(p((y||h).firstWord).attr("coords").split(",").map(parseFloat),3)[0];p(j).attr("coords","".concat(_,",").concat(C,",").concat(L,",").concat(R))}var T=document.createElement("span");if(T.setAttribute("class","BRwordElement"),T.textContent=j.textContent.trim(),P>0){var B=document.createElement("span");B.classList.add("BRspace"),B.textContent=" ",x.append(B),x.appendChild(document.createTextNode(" "))}x.appendChild(T)}}catch(t){E.e(t)}finally{E.f()}var I=d.lastWord.textContent.trim().endsWith("-"),G=x.children[x.children.length-1];I&&!v&&(G.textContent=G.textContent.trim().slice(0,-1),G.classList.add("BRwordElement--hyphen")),e.appendChild(x),v||I||e.appendChild(document.createTextNode(" "))}}catch(t){s.e(t)}finally{s.f()}c.sort((function(t,e){return t-e}));var H=c[Math.floor(.85*c.length)]+4;e.style.left="".concat(n,"px"),e.style.top="".concat(a,"px"),e.style.width="".concat(i-n,"px"),e.style.height="".concat(o-a,"px"),e.style.fontSize="".concat(H,"px");var U,X=D(e,".BRwordElement"),$=g(W(p(t).find("WORD").toArray(),e.querySelectorAll(".BRwordElement")));try{for($.s();!(U=$.n()).done;){var q=m(U.value,2),z=q[0],Y=q[1],J=X.get(Y),Q=m(p(z).attr("coords").split(",").map(parseFloat),3),K=Q[0],V=Q[2]-K;z.textContent.endsWith(" ")&&(V=V*(z.textContent.length-1)/z.textContent.length);var Z=V-J.width;Y.style.letterSpacing="".concat(Z/(z.textContent.length-1),"px")}}catch(t){$.e(t)}finally{$.f()}X=D(e,".BRwordElement");var tt,et,rt=D(e,".BRspace"),nt=p(t).find("LINE[coords]").toArray(),ot=Array.from(e.querySelectorAll(".BRlineElement")),it=a,at=g(W(nt,ot));try{for(at.s();!(tt=at.n()).done;){var ct,lt=m(tt.value,2),ut=lt[0],st=lt[1],ft=p(ut).find("WORD").toArray(),pt=this.rtl?i:n,ht=g(W(ft,st.querySelectorAll(".BRwordElement")));try{for(ht.s();!(ct=ht.n()).done;){var dt=m(ct.value,2),yt=dt[0],vt=dt[1],mt=X.get(vt),gt=m(p(yt).attr("coords").split(",").map(parseFloat),3),bt=gt[0],wt=gt[2],xt=this.rtl?-(wt-pt):bt-pt;if(vt.previousElementSibling){var St=vt.previousElementSibling;St.style.letterSpacing="".concat(xt-rt.get(St).width,"px")}else vt.style[this.rtl?"paddingRight":"paddingLeft"]="".concat(xt,"px");this.rtl?pt-=xt+mt.width:pt+=xt+mt.width}}catch(t){ht.e(t)}finally{ht.f()}var Et=Math.min.apply(Math,function(t){if(Array.isArray(t))return w(t)}(et=ft.map((function(t){return parseFloat(p(t).attr("coords").split(",")[3])})))||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(et)||b(et)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())-it;st.previousElementSibling&&(st.previousElementSibling.style.lineHeight="".concat(Et,"px"),it+=Et)}}catch(t){at.e(t)}finally{at.f()}return ot[ot.length-1].style.lineHeight="".concat(o-it,"px"),e.appendChild(document.createElement("br")),e}}]);var r,o}(s.S);function D(t,e){var r={position:t.style.position,visibility:t.style.visibility,top:t.style.top,left:t.style.left,transform:t.style.transform};t.style.position="absolute",t.style.visibility="hidden",t.style.top="0",t.style.left="0",t.style.transform="none",document.body.appendChild(t);var n=new Map(Array.from(t.querySelectorAll(e)).map((function(t){var e=t.getBoundingClientRect();return[t,new H(e.left+window.scrollX,e.top+window.scrollY,e.width,e.height)]})));return document.body.removeChild(t),Object.assign(t.style,r),n}function F(t){var e=p(t).find("WORD").toArray();return{ocrElement:t,words:e,firstWord:e[0],lastWord:e[e.length-1]}}function M(t,e){var r,n,o;return x().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:r=g(t),i.prev=1,r.s();case 3:if((n=r.n()).done){i.next=9;break}return o=n.value,i.next=7,e(o);case 7:i.next=3;break;case 9:i.next=14;break;case 11:i.prev=11,i.t0=i.catch(1),r.e(i.t0);case 14:return i.prev=14,r.f(),i.finish(14);case 17:case"end":return i.stop()}}),d,null,[[1,11,14,17]])}function N(t){var e,r,n,o,i,a;return x().wrap((function(c){for(;;)switch(c.prev=c.next){case 0:e=void 0,r=void 0,n=void 0,o=g(t),c.prev=4,o.s();case 6:if((i=o.n()).done){c.next=17;break}if(a=i.value,void 0===r){c.next=12;break}return n=a,c.next=12,[e,r,n];case 12:e=r,r=a,n=void 0;case 15:c.next=6;break;case 17:c.next=22;break;case 19:c.prev=19,c.t0=c.catch(4),o.e(c.t0);case 22:return c.prev=22,o.f(),c.finish(22);case 25:if(void 0===r){c.next=28;break}return c.next=28,[e,r,n];case 28:case"end":return c.stop()}}),y,null,[[4,19,22,25]])}function W(t,e){var r,n,o,i;return x().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:r=t[Symbol.iterator](),n=e[Symbol.iterator]();case 2:if(o=r.next(),i=n.next(),!o.done||!i.done){a.next=7;break}return a.abrupt("return");case 7:if(!o.done&&!i.done){a.next=9;break}throw new Error("zip: one of the iterators is done");case 9:return a.next=11,[o.value,i.value];case 11:a.next=2;break;case 13:case"end":return a.stop()}}),v)}function G(t){if(!p(t).attr("coords")&&t.children){var e=p(t).children().toArray();if(0!==e.length){var r,n=g(e);try{for(n.s();!(r=n.n()).done;)G(r.value)}catch(t){n.e(t)}finally{n.f()}var o,i=[],a=g(e);try{for(a.s();!(o=a.n()).done;){var c=o.value;p(c).attr("coords")&&i.push(p(c).attr("coords").split(",").map(parseFloat))}}catch(t){a.e(t)}finally{a.f()}var l=function(t){var e,r=1/0,n=-1/0,o=-1/0,i=1/0,a=g(t);try{for(a.s();!(e=a.n()).done;){var c=m(e.value,4),l=c[0],u=c[1],s=c[2],f=c[3];r=Math.min(r,l),n=Math.max(n,u),o=Math.max(o,s),i=Math.min(i,f)}}catch(t){a.e(t)}finally{a.f()}return[r,n,o,i]}(i);Math.abs(l[0])!=1/0&&p(t).attr("coords",l.join(","))}}}null==T||T.registerPlugin("textSelection",I);var H=function(){return A((function t(e,r,n,o){L(this,t),this.x=e,this.y=r,this.width=n,this.height=o}),[{key:"right",get:function(){return this.x+this.width}},{key:"bottom",get:function(){return this.y+this.height}},{key:"top",get:function(){return this.y}},{key:"left",get:function(){return this.x}}])}()},1743:function(t,e,r){function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function o(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:i;return null==t?void 0:t.replace(/\{\{([^}]*?)\}\}/g,(function(t,i){if(!i)return t;var a,c=function(t){if(Array.isArray(t))return t}(a=i.split("|").map((function(t){return t.trim()})))||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(a)||function(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),l=c[0],u=c.slice(1);if(!(l in r)&&!(l in e))return t;var s=l in r?r[l]:l in e?e[l]:null;return u.map((function(t){return o[t]})).reduce((function(t,e){return e(t)}),s&&s.toString())}))}r.d(e,{g:function(){return o}}),r(2675),r(9463),r(2259),r(3418),r(3792),r(2062),r(2712),r(4782),r(2010),r(6099),r(7495),r(8781),r(7764),r(5440),r(2762),r(2953);var i={urlencode:encodeURIComponent}},706:function(t,e,r){var n=r(350).PROPER,o=r(9039),i=r(7452);t.exports=function(t){return o((function(){return!!i[t]()||"​…᠎"!=="​…᠎"[t]()||n&&i[t].name!==t}))}},2762:function(t,e,r){var n=r(6518),o=r(3802).trim;n({target:"String",proto:!0,forced:r(706)("trim")},{trim:function(){return o(this)}})}},function(t){t(t.s=477)}]);
1081
3
  //# sourceMappingURL=plugin.text_selection.js.map