@internetarchive/bookreader 5.0.0-18

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 (428) hide show
  1. package/.eslintrc.js +58 -0
  2. package/.gitattributes +2 -0
  3. package/.github/ISSUE_TEMPLATE/bug.md +32 -0
  4. package/.github/ISSUE_TEMPLATE/feature-request.md +30 -0
  5. package/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +15 -0
  6. package/.github/dependabot.yml +8 -0
  7. package/.github/workflows/node.js.yml +37 -0
  8. package/.github/workflows/npm-publish.yml +47 -0
  9. package/.testcaferc.json +5 -0
  10. package/BookReader/BookReader.css +2983 -0
  11. package/BookReader/BookReader.js +3 -0
  12. package/BookReader/BookReader.js.LICENSE.txt +117 -0
  13. package/BookReader/BookReader.js.map +1 -0
  14. package/BookReader/bookreader-component-bundle.js +1436 -0
  15. package/BookReader/bookreader-component-bundle.js.LICENSE.txt +27 -0
  16. package/BookReader/bookreader-component-bundle.js.map +1 -0
  17. package/BookReader/icons/1up.svg +1 -0
  18. package/BookReader/icons/2up.svg +1 -0
  19. package/BookReader/icons/advance.svg +3 -0
  20. package/BookReader/icons/chevron-right.svg +1 -0
  21. package/BookReader/icons/close-circle-dark.svg +1 -0
  22. package/BookReader/icons/close-circle.svg +1 -0
  23. package/BookReader/icons/fullscreen.svg +1 -0
  24. package/BookReader/icons/fullscreen_exit.svg +1 -0
  25. package/BookReader/icons/hamburger.svg +1 -0
  26. package/BookReader/icons/left-arrow.svg +1 -0
  27. package/BookReader/icons/magnify-minus.svg +1 -0
  28. package/BookReader/icons/magnify-plus.svg +1 -0
  29. package/BookReader/icons/magnify.svg +1 -0
  30. package/BookReader/icons/pause.svg +1 -0
  31. package/BookReader/icons/play.svg +1 -0
  32. package/BookReader/icons/playback-speed.svg +1 -0
  33. package/BookReader/icons/read-aloud.svg +1 -0
  34. package/BookReader/icons/review.svg +3 -0
  35. package/BookReader/icons/thumbnails.svg +1 -0
  36. package/BookReader/icons/volume-full.svg +1 -0
  37. package/BookReader/images/BRicons.png +0 -0
  38. package/BookReader/images/BRicons.svg +5 -0
  39. package/BookReader/images/BRicons_ia.png +0 -0
  40. package/BookReader/images/back_pages.png +0 -0
  41. package/BookReader/images/book_bottom_icon.png +0 -0
  42. package/BookReader/images/book_down_icon.png +0 -0
  43. package/BookReader/images/book_left_icon.png +0 -0
  44. package/BookReader/images/book_leftmost_icon.png +0 -0
  45. package/BookReader/images/book_right_icon.png +0 -0
  46. package/BookReader/images/book_rightmost_icon.png +0 -0
  47. package/BookReader/images/book_top_icon.png +0 -0
  48. package/BookReader/images/book_up_icon.png +0 -0
  49. package/BookReader/images/books_graphic.svg +1 -0
  50. package/BookReader/images/booksplit.png +0 -0
  51. package/BookReader/images/control_pause_icon.png +0 -0
  52. package/BookReader/images/control_play_icon.png +0 -0
  53. package/BookReader/images/embed_icon.png +0 -0
  54. package/BookReader/images/icon-home-ia.png +0 -0
  55. package/BookReader/images/icon_OL-logo-xs.png +0 -0
  56. package/BookReader/images/icon_alert-xs.png +0 -0
  57. package/BookReader/images/icon_book.svg +1 -0
  58. package/BookReader/images/icon_bookmark.svg +1 -0
  59. package/BookReader/images/icon_close-pop.png +0 -0
  60. package/BookReader/images/icon_download.png +0 -0
  61. package/BookReader/images/icon_gear.svg +1 -0
  62. package/BookReader/images/icon_hamburger.svg +1 -0
  63. package/BookReader/images/icon_home.png +0 -0
  64. package/BookReader/images/icon_home.svg +1 -0
  65. package/BookReader/images/icon_home_ia.png +0 -0
  66. package/BookReader/images/icon_indicator.png +0 -0
  67. package/BookReader/images/icon_info.svg +1 -0
  68. package/BookReader/images/icon_one_page.svg +1 -0
  69. package/BookReader/images/icon_pause.svg +1 -0
  70. package/BookReader/images/icon_play.svg +1 -0
  71. package/BookReader/images/icon_playback-rate.svg +1 -0
  72. package/BookReader/images/icon_return.png +0 -0
  73. package/BookReader/images/icon_search_button.svg +1 -0
  74. package/BookReader/images/icon_share.svg +1 -0
  75. package/BookReader/images/icon_skip-ahead.svg +1 -0
  76. package/BookReader/images/icon_skip-back.svg +2 -0
  77. package/BookReader/images/icon_speaker.svg +1 -0
  78. package/BookReader/images/icon_speaker_open.svg +1 -0
  79. package/BookReader/images/icon_thumbnails.svg +1 -0
  80. package/BookReader/images/icon_toc.svg +1 -0
  81. package/BookReader/images/icon_two_pages.svg +1 -0
  82. package/BookReader/images/icon_zoomer.png +0 -0
  83. package/BookReader/images/loading.gif +0 -0
  84. package/BookReader/images/logo_icon.png +0 -0
  85. package/BookReader/images/marker_chap-off.png +0 -0
  86. package/BookReader/images/marker_chap-off.svg +1 -0
  87. package/BookReader/images/marker_chap-off_ia.png +0 -0
  88. package/BookReader/images/marker_chap-on.png +0 -0
  89. package/BookReader/images/marker_chap-on.svg +1 -0
  90. package/BookReader/images/marker_srch-on.svg +1 -0
  91. package/BookReader/images/marker_srchchap-off.png +0 -0
  92. package/BookReader/images/marker_srchchap-on.png +0 -0
  93. package/BookReader/images/nav_control-dn.png +0 -0
  94. package/BookReader/images/nav_control-dn_ia.png +0 -0
  95. package/BookReader/images/nav_control-up.png +0 -0
  96. package/BookReader/images/nav_control-up_ia.png +0 -0
  97. package/BookReader/images/nav_control.png +0 -0
  98. package/BookReader/images/one_page_mode_icon.png +0 -0
  99. package/BookReader/images/paper-badge.png +0 -0
  100. package/BookReader/images/print_icon.png +0 -0
  101. package/BookReader/images/progressbar.gif +0 -0
  102. package/BookReader/images/right_edges.png +0 -0
  103. package/BookReader/images/slider.png +0 -0
  104. package/BookReader/images/slider_ia.png +0 -0
  105. package/BookReader/images/thumbnail_mode_icon.png +0 -0
  106. package/BookReader/images/transparent.png +0 -0
  107. package/BookReader/images/two_page_mode_icon.png +0 -0
  108. package/BookReader/images/zoom_in_icon.png +0 -0
  109. package/BookReader/images/zoom_out_icon.png +0 -0
  110. package/BookReader/jquery-1.10.1.js +2 -0
  111. package/BookReader/jquery-1.10.1.js.LICENSE.txt +24 -0
  112. package/BookReader/plugins/plugin.archive_analytics.js +2 -0
  113. package/BookReader/plugins/plugin.archive_analytics.js.map +1 -0
  114. package/BookReader/plugins/plugin.autoplay.js +2 -0
  115. package/BookReader/plugins/plugin.autoplay.js.map +1 -0
  116. package/BookReader/plugins/plugin.chapters.js +2 -0
  117. package/BookReader/plugins/plugin.chapters.js.map +1 -0
  118. package/BookReader/plugins/plugin.iframe.js +2 -0
  119. package/BookReader/plugins/plugin.iframe.js.map +1 -0
  120. package/BookReader/plugins/plugin.mobile_nav.js +2 -0
  121. package/BookReader/plugins/plugin.mobile_nav.js.map +1 -0
  122. package/BookReader/plugins/plugin.resume.js +2 -0
  123. package/BookReader/plugins/plugin.resume.js.map +1 -0
  124. package/BookReader/plugins/plugin.search.js +2 -0
  125. package/BookReader/plugins/plugin.search.js.map +1 -0
  126. package/BookReader/plugins/plugin.text_selection.js +2 -0
  127. package/BookReader/plugins/plugin.text_selection.js.map +1 -0
  128. package/BookReader/plugins/plugin.tts.js +3 -0
  129. package/BookReader/plugins/plugin.tts.js.LICENSE.txt +27 -0
  130. package/BookReader/plugins/plugin.tts.js.map +1 -0
  131. package/BookReader/plugins/plugin.url.js +2 -0
  132. package/BookReader/plugins/plugin.url.js.map +1 -0
  133. package/BookReader/plugins/plugin.vendor-fullscreen.js +2 -0
  134. package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -0
  135. package/BookReaderDemo/BookReaderDemo.css +41 -0
  136. package/BookReaderDemo/BookReaderJSAdvanced.js +115 -0
  137. package/BookReaderDemo/BookReaderJSAutoplay.js +56 -0
  138. package/BookReaderDemo/BookReaderJSSimple.js +55 -0
  139. package/BookReaderDemo/IIIFBookReader.js +207 -0
  140. package/BookReaderDemo/assets/v5/Bookreader-logo-cool-grad.svg +1 -0
  141. package/BookReaderDemo/assets/v5/Bookreader-logo-flat.svg +1 -0
  142. package/BookReaderDemo/assets/v5/Bookreader-logo-hex-cool-grad.png +0 -0
  143. package/BookReaderDemo/assets/v5/Bookreader-logo-hex-flat.png +0 -0
  144. package/BookReaderDemo/assets/v5/Bookreader-logo-lines.png +0 -0
  145. package/BookReaderDemo/assets/v5/Bookreader-logo-lines.svg +1 -0
  146. package/BookReaderDemo/assets/v5/Bookreader-logo-warm.svg +1 -0
  147. package/BookReaderDemo/assets/v5/bookreader-logo-renders@1x.png +0 -0
  148. package/BookReaderDemo/assets/v5/bookreader-logo-renders@2x.png +0 -0
  149. package/BookReaderDemo/assets/v5/bookreader-v5-screenshot.png +0 -0
  150. package/BookReaderDemo/bookreader-template-bundle.js +7178 -0
  151. package/BookReaderDemo/demo-advanced.html +32 -0
  152. package/BookReaderDemo/demo-autoplay.html +38 -0
  153. package/BookReaderDemo/demo-embed-iframe-src.html +84 -0
  154. package/BookReaderDemo/demo-embed.html +26 -0
  155. package/BookReaderDemo/demo-fullscreen-mobile.html +36 -0
  156. package/BookReaderDemo/demo-fullscreen.html +33 -0
  157. package/BookReaderDemo/demo-iiif.html +34 -0
  158. package/BookReaderDemo/demo-iiif.js +26 -0
  159. package/BookReaderDemo/demo-internetarchive.html +74 -0
  160. package/BookReaderDemo/demo-multiple.html +43 -0
  161. package/BookReaderDemo/demo-preview-pages.html +1092 -0
  162. package/BookReaderDemo/demo-simple.html +34 -0
  163. package/BookReaderDemo/demo-vendor-fullscreen.html +36 -0
  164. package/BookReaderDemo/immersion-1up.html +64 -0
  165. package/BookReaderDemo/immersion-mode.html +35 -0
  166. package/BookReaderDemo/toggle_controls.html +53 -0
  167. package/BookReaderDemo/view_mode.html +39 -0
  168. package/BookReaderDemo/viewmode-cycle.html +41 -0
  169. package/CHANGELOG.md +540 -0
  170. package/CONTRIBUTING.md +7 -0
  171. package/LICENSE +661 -0
  172. package/README.md +205 -0
  173. package/babel.config.js +18 -0
  174. package/codecov.yml +17 -0
  175. package/index.html +31 -0
  176. package/jsconfig.json +14 -0
  177. package/karma.conf.js +23 -0
  178. package/package.json +129 -0
  179. package/screenshot.png +0 -0
  180. package/scripts/postversion.js +10 -0
  181. package/scripts/preversion.js +14 -0
  182. package/scripts/version.js +26 -0
  183. package/src/BookNavigator/BookModel.js +14 -0
  184. package/src/BookNavigator/BookNavigator.js +468 -0
  185. package/src/BookNavigator/assets/book-loader.js +27 -0
  186. package/src/BookNavigator/assets/bookmark-colors.js +15 -0
  187. package/src/BookNavigator/assets/button-base.js +61 -0
  188. package/src/BookNavigator/assets/icon_checkmark.js +6 -0
  189. package/src/BookNavigator/assets/icon_close.js +3 -0
  190. package/src/BookNavigator/assets/icon_sort_asc.js +5 -0
  191. package/src/BookNavigator/assets/icon_sort_desc.js +5 -0
  192. package/src/BookNavigator/assets/icon_sort_neutral.js +5 -0
  193. package/src/BookNavigator/assets/icon_volumes.js +11 -0
  194. package/src/BookNavigator/bookmarks/bookmark-button.js +64 -0
  195. package/src/BookNavigator/bookmarks/bookmark-edit.js +215 -0
  196. package/src/BookNavigator/bookmarks/bookmarks-list.js +285 -0
  197. package/src/BookNavigator/bookmarks/bookmarks-loginCTA.js +28 -0
  198. package/src/BookNavigator/bookmarks/bookmarks-provider.js +53 -0
  199. package/src/BookNavigator/bookmarks/ia-bookmarks.js +500 -0
  200. package/src/BookNavigator/br-fullscreen-mgr.js +83 -0
  201. package/src/BookNavigator/delete-modal-actions.js +49 -0
  202. package/src/BookNavigator/downloads/downloads-provider.js +76 -0
  203. package/src/BookNavigator/downloads/downloads.js +138 -0
  204. package/src/BookNavigator/search/a-search-result.js +55 -0
  205. package/src/BookNavigator/search/search-provider.js +180 -0
  206. package/src/BookNavigator/search/search-results.js +360 -0
  207. package/src/BookNavigator/visual-adjustments/visual-adjustments-provider.js +93 -0
  208. package/src/BookNavigator/visual-adjustments/visual-adjustments.js +280 -0
  209. package/src/BookNavigator/volumes/volumes-provider.js +83 -0
  210. package/src/BookNavigator/volumes/volumes.js +178 -0
  211. package/src/BookReader/BookModel.js +518 -0
  212. package/src/BookReader/DebugConsole.js +54 -0
  213. package/src/BookReader/ImageCache.js +116 -0
  214. package/src/BookReader/Mode1Up.js +90 -0
  215. package/src/BookReader/Mode1UpLit.js +434 -0
  216. package/src/BookReader/Mode2Up.js +1372 -0
  217. package/src/BookReader/ModeSmoothZoom.js +177 -0
  218. package/src/BookReader/ModeThumb.js +336 -0
  219. package/src/BookReader/Navbar/Navbar.js +339 -0
  220. package/src/BookReader/PageContainer.js +120 -0
  221. package/src/BookReader/ReduceSet.js +26 -0
  222. package/src/BookReader/Toolbar/Toolbar.js +384 -0
  223. package/src/BookReader/events.js +20 -0
  224. package/src/BookReader/options.js +320 -0
  225. package/src/BookReader/utils/HTMLDimensionsCacher.js +44 -0
  226. package/src/BookReader/utils/classes.js +36 -0
  227. package/src/BookReader/utils.js +240 -0
  228. package/src/BookReader.js +2546 -0
  229. package/src/BookReaderComponent/BookReaderComponent.js +112 -0
  230. package/src/ItemNavigator/ItemNavigator.js +376 -0
  231. package/src/ItemNavigator/providers/sharing.js +33 -0
  232. package/src/assets/icons/1up.svg +12 -0
  233. package/src/assets/icons/2up.svg +15 -0
  234. package/src/assets/icons/advance.svg +26 -0
  235. package/src/assets/icons/chevron-right.svg +1 -0
  236. package/src/assets/icons/close-circle-dark.svg +1 -0
  237. package/src/assets/icons/close-circle.svg +1 -0
  238. package/src/assets/icons/fullscreen.svg +17 -0
  239. package/src/assets/icons/fullscreen_exit.svg +17 -0
  240. package/src/assets/icons/hamburger.svg +15 -0
  241. package/src/assets/icons/left-arrow.svg +12 -0
  242. package/src/assets/icons/magnify-minus.svg +16 -0
  243. package/src/assets/icons/magnify-plus.svg +17 -0
  244. package/src/assets/icons/magnify.svg +15 -0
  245. package/src/assets/icons/pause.svg +23 -0
  246. package/src/assets/icons/play.svg +22 -0
  247. package/src/assets/icons/playback-speed.svg +34 -0
  248. package/src/assets/icons/read-aloud.svg +22 -0
  249. package/src/assets/icons/review.svg +22 -0
  250. package/src/assets/icons/thumbnails.svg +17 -0
  251. package/src/assets/icons/volume-full.svg +22 -0
  252. package/src/assets/images/BRicons.png +0 -0
  253. package/src/assets/images/BRicons.svg +94 -0
  254. package/src/assets/images/BRicons_ia.png +0 -0
  255. package/src/assets/images/back_pages.png +0 -0
  256. package/src/assets/images/book_bottom_icon.png +0 -0
  257. package/src/assets/images/book_down_icon.png +0 -0
  258. package/src/assets/images/book_left_icon.png +0 -0
  259. package/src/assets/images/book_leftmost_icon.png +0 -0
  260. package/src/assets/images/book_right_icon.png +0 -0
  261. package/src/assets/images/book_rightmost_icon.png +0 -0
  262. package/src/assets/images/book_top_icon.png +0 -0
  263. package/src/assets/images/book_up_icon.png +0 -0
  264. package/src/assets/images/books_graphic.svg +177 -0
  265. package/src/assets/images/booksplit.png +0 -0
  266. package/src/assets/images/control_pause_icon.png +0 -0
  267. package/src/assets/images/control_play_icon.png +0 -0
  268. package/src/assets/images/embed_icon.png +0 -0
  269. package/src/assets/images/icon-home-ia.png +0 -0
  270. package/src/assets/images/icon_OL-logo-xs.png +0 -0
  271. package/src/assets/images/icon_alert-xs.png +0 -0
  272. package/src/assets/images/icon_book.svg +12 -0
  273. package/src/assets/images/icon_bookmark.svg +12 -0
  274. package/src/assets/images/icon_close-pop.png +0 -0
  275. package/src/assets/images/icon_download.png +0 -0
  276. package/src/assets/images/icon_gear.svg +14 -0
  277. package/src/assets/images/icon_hamburger.svg +20 -0
  278. package/src/assets/images/icon_home.png +0 -0
  279. package/src/assets/images/icon_home.svg +21 -0
  280. package/src/assets/images/icon_home_ia.png +0 -0
  281. package/src/assets/images/icon_indicator.png +0 -0
  282. package/src/assets/images/icon_info.svg +11 -0
  283. package/src/assets/images/icon_one_page.svg +8 -0
  284. package/src/assets/images/icon_pause.svg +1 -0
  285. package/src/assets/images/icon_play.svg +1 -0
  286. package/src/assets/images/icon_playback-rate.svg +15 -0
  287. package/src/assets/images/icon_return.png +0 -0
  288. package/src/assets/images/icon_search_button.svg +8 -0
  289. package/src/assets/images/icon_share.svg +9 -0
  290. package/src/assets/images/icon_skip-ahead.svg +6 -0
  291. package/src/assets/images/icon_skip-back.svg +13 -0
  292. package/src/assets/images/icon_speaker.svg +18 -0
  293. package/src/assets/images/icon_speaker_open.svg +10 -0
  294. package/src/assets/images/icon_thumbnails.svg +12 -0
  295. package/src/assets/images/icon_toc.svg +5 -0
  296. package/src/assets/images/icon_two_pages.svg +9 -0
  297. package/src/assets/images/icon_zoomer.png +0 -0
  298. package/src/assets/images/loading.gif +0 -0
  299. package/src/assets/images/logo_icon.png +0 -0
  300. package/src/assets/images/marker_chap-off.png +0 -0
  301. package/src/assets/images/marker_chap-off.svg +11 -0
  302. package/src/assets/images/marker_chap-off_ia.png +0 -0
  303. package/src/assets/images/marker_chap-on.png +0 -0
  304. package/src/assets/images/marker_chap-on.svg +11 -0
  305. package/src/assets/images/marker_srch-on.svg +11 -0
  306. package/src/assets/images/marker_srchchap-off.png +0 -0
  307. package/src/assets/images/marker_srchchap-on.png +0 -0
  308. package/src/assets/images/nav_control-dn.png +0 -0
  309. package/src/assets/images/nav_control-dn_ia.png +0 -0
  310. package/src/assets/images/nav_control-up.png +0 -0
  311. package/src/assets/images/nav_control-up_ia.png +0 -0
  312. package/src/assets/images/nav_control.png +0 -0
  313. package/src/assets/images/one_page_mode_icon.png +0 -0
  314. package/src/assets/images/paper-badge.png +0 -0
  315. package/src/assets/images/print_icon.png +0 -0
  316. package/src/assets/images/progressbar.gif +0 -0
  317. package/src/assets/images/right_edges.png +0 -0
  318. package/src/assets/images/slider.png +0 -0
  319. package/src/assets/images/slider_ia.png +0 -0
  320. package/src/assets/images/thumbnail_mode_icon.png +0 -0
  321. package/src/assets/images/transparent.png +0 -0
  322. package/src/assets/images/two_page_mode_icon.png +0 -0
  323. package/src/assets/images/zoom_in_icon.png +0 -0
  324. package/src/assets/images/zoom_out_icon.png +0 -0
  325. package/src/css/BookReader.scss +89 -0
  326. package/src/css/_BRBookmarks.scss +29 -0
  327. package/src/css/_BRComponent.scss +13 -0
  328. package/src/css/_BRfloat.scss +197 -0
  329. package/src/css/_BRicon.scss +48 -0
  330. package/src/css/_BRmain.scss +251 -0
  331. package/src/css/_BRnav.scss +382 -0
  332. package/src/css/_BRpages.scss +139 -0
  333. package/src/css/_BRsearch.scss +226 -0
  334. package/src/css/_BRtoolbar.scss +84 -0
  335. package/src/css/_BRvendor.scss +5 -0
  336. package/src/css/_MobileNav.scss +194 -0
  337. package/src/css/_TextSelection.scss +32 -0
  338. package/src/css/_colorbox.scss +52 -0
  339. package/src/css/_controls.scss +244 -0
  340. package/src/css/_icons.scss +121 -0
  341. package/src/dragscrollable-br.js +261 -0
  342. package/src/jquery-wrapper.js +4 -0
  343. package/src/plugins/plugin.archive_analytics.js +86 -0
  344. package/src/plugins/plugin.autoplay.js +129 -0
  345. package/src/plugins/plugin.chapters.js +251 -0
  346. package/src/plugins/plugin.iframe.js +48 -0
  347. package/src/plugins/plugin.mobile_nav.js +287 -0
  348. package/src/plugins/plugin.resume.js +68 -0
  349. package/src/plugins/plugin.text_selection.js +291 -0
  350. package/src/plugins/plugin.url.js +198 -0
  351. package/src/plugins/plugin.vendor-fullscreen.js +247 -0
  352. package/src/plugins/search/plugin.search.js +439 -0
  353. package/src/plugins/search/view.js +440 -0
  354. package/src/plugins/tts/AbstractTTSEngine.js +242 -0
  355. package/src/plugins/tts/FestivalTTSEngine.js +169 -0
  356. package/src/plugins/tts/PageChunk.js +107 -0
  357. package/src/plugins/tts/PageChunkIterator.js +163 -0
  358. package/src/plugins/tts/WebTTSEngine.js +352 -0
  359. package/src/plugins/tts/plugin.tts.js +335 -0
  360. package/src/plugins/tts/tooltip_dict.js +15 -0
  361. package/src/plugins/tts/utils.js +91 -0
  362. package/src/util/browserSniffing.js +30 -0
  363. package/src/util/debouncer.js +26 -0
  364. package/src/util/docCookies.js +67 -0
  365. package/src/util/strings.js +34 -0
  366. package/tests/BookReader/BookModel.test.js +312 -0
  367. package/tests/BookReader/BookReaderPublicFunctions.test.js +164 -0
  368. package/tests/BookReader/DebugConsole.test.js +25 -0
  369. package/tests/BookReader/ImageCache.test.js +150 -0
  370. package/tests/BookReader/Mode1UpLit.test.js +87 -0
  371. package/tests/BookReader/Mode2Up.test.js +245 -0
  372. package/tests/BookReader/ModeSmoothZoom.test.js +149 -0
  373. package/tests/BookReader/Navbar/Navbar.test.js +169 -0
  374. package/tests/BookReader/PageContainer.test.js +187 -0
  375. package/tests/BookReader/ReduceSet.test.js +38 -0
  376. package/tests/BookReader/Toolbar/Toolbar.test.js +26 -0
  377. package/tests/BookReader/utils/HTMLDimensionsCacher.test.js +59 -0
  378. package/tests/BookReader/utils/classes.test.js +88 -0
  379. package/tests/BookReader/utils.test.js +136 -0
  380. package/tests/BookReader.options.test.js +39 -0
  381. package/tests/BookReader.test.js +301 -0
  382. package/tests/e2e/README.md +75 -0
  383. package/tests/e2e/autoplay.test.js +13 -0
  384. package/tests/e2e/base.test.js +35 -0
  385. package/tests/e2e/helpers/base.js +263 -0
  386. package/tests/e2e/helpers/debug.js +13 -0
  387. package/tests/e2e/helpers/desktopSearch.js +72 -0
  388. package/tests/e2e/helpers/mobileSearch.js +85 -0
  389. package/tests/e2e/helpers/mockSearch.js +93 -0
  390. package/tests/e2e/helpers/rightToLeft.js +29 -0
  391. package/tests/e2e/ia-production/ia-prod-base.js +17 -0
  392. package/tests/e2e/models/BookReader.js +11 -0
  393. package/tests/e2e/models/Navigation.js +56 -0
  394. package/tests/e2e/rightToLeft.test.js +20 -0
  395. package/tests/e2e/viewmode.test.js +37 -0
  396. package/tests/karma/BookNavigator/book-navigator.test.js +180 -0
  397. package/tests/karma/BookNavigator/bookmarks/bookmark-edit.test.js +133 -0
  398. package/tests/karma/BookNavigator/bookmarks/bookmarks-list.test.js +222 -0
  399. package/tests/karma/BookNavigator/downloads/downloads-provider.test.js +64 -0
  400. package/tests/karma/BookNavigator/downloads/downloads.test.js +54 -0
  401. package/tests/karma/BookNavigator/search/search-provider.test.js +23 -0
  402. package/tests/karma/BookNavigator/search/search-results.test.js +240 -0
  403. package/tests/karma/BookNavigator/sharing/sharing-provider.test.js +40 -0
  404. package/tests/karma/BookNavigator/visual-adjustments.test.js +201 -0
  405. package/tests/karma/BookNavigator/volumes/volumes-provider.test.js +160 -0
  406. package/tests/karma/BookNavigator/volumes/volumes.test.js +98 -0
  407. package/tests/plugins/plugin.archive_analytics.test.js +23 -0
  408. package/tests/plugins/plugin.autoplay.test.js +52 -0
  409. package/tests/plugins/plugin.chapters.test.js +130 -0
  410. package/tests/plugins/plugin.iframe.test.js +42 -0
  411. package/tests/plugins/plugin.mobile_nav.test.js +66 -0
  412. package/tests/plugins/plugin.resume.test.js +98 -0
  413. package/tests/plugins/plugin.text_selection.test.js +193 -0
  414. package/tests/plugins/plugin.url.test.js +129 -0
  415. package/tests/plugins/plugin.vendor-fullscreen.test.js +65 -0
  416. package/tests/plugins/search/plugin.search.test.js +173 -0
  417. package/tests/plugins/search/plugin.search.view.test.js +106 -0
  418. package/tests/plugins/tts/AbstractTTSEngine.test.js +153 -0
  419. package/tests/plugins/tts/FestivalTTSEngine.test.js +59 -0
  420. package/tests/plugins/tts/PageChunk.test.js +57 -0
  421. package/tests/plugins/tts/PageChunkIterator.test.js +179 -0
  422. package/tests/plugins/tts/WebTTSEngine.test.js +126 -0
  423. package/tests/plugins/tts/utils.test.js +133 -0
  424. package/tests/util/browserSniffing.test.js +56 -0
  425. package/tests/util/docCookies.test.js +15 -0
  426. package/tests/util/strings.test.js +63 -0
  427. package/tests/utils.js +80 -0
  428. package/webpack.config.js +85 -0
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg width="58px" height="43px" viewBox="0 0 58 43" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-labelledby="mobile2upTitleID mobile2upDescID">
3
+ <title id="mobile2upTitleID">Two pages icon</title>
4
+ <desc id="mobile2upDescID">An illustration of two rectangles in a row representing an open book</desc>
5
+ <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(1, 1)">
6
+ <rect stroke="#fff" stroke-width="2" x="0" y="0" width="56" height="40" rx="1"></rect>
7
+ <rect fill="#fff" x="27" y="0" width="2" height="40"></rect>
8
+ </g>
9
+ </svg>
Binary file
Binary file
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="20px" height="25px" viewBox="0 0 20 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 51.1 (57501) - http://www.bohemiancoding.com/sketch -->
4
+ <title>pin icon copy</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <defs></defs>
7
+ <g id="pin-icon-copy" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <path d="M10,0.500000134 C14.9705627,0.500000134 18.9999999,4.5294373 19,9.5 C19,15.5 10,24.5 10,24.5 C10,24.5 1,15.5 1,9.5 C1.00000007,4.5294373 5.0294373,0.500000134 10,0.500000134 Z" id="pin" stroke="#898989" fill="#FFFFFF" fill-rule="nonzero"></path>
9
+ <path d="M10,13.25 C12.0710678,13.25 13.75,11.5710678 13.75,9.5 C13.75,7.42893219 12.0710678,5.75 10,5.75 C7.92893219,5.75 6.25,7.42893219 6.25,9.5 C6.25,11.5710678 7.92893219,13.25 10,13.25 Z" id="Path" fill="#898989"></path>
10
+ </g>
11
+ </svg>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="20px" height="25px" viewBox="0 0 20 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 51.1 (57501) - http://www.bohemiancoding.com/sketch -->
4
+ <title>pin icon copy</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <defs></defs>
7
+ <g id="pin-icon-copy" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <path d="M10,0.500000134 C14.9705627,0.500000134 18.9999999,4.5294373 19,9.5 C19,15.5 10,24.5 10,24.5 C10,24.5 1,15.5 1,9.5 C1.00000007,4.5294373 5.0294373,0.500000134 10,0.500000134 Z" id="pin" stroke="#898989" fill="#B8B8B8" fill-rule="nonzero"></path>
9
+ <path d="M10,13.25 C12.0710678,13.25 13.75,11.5710678 13.75,9.5 C13.75,7.42893219 12.0710678,5.75 10,5.75 C7.92893219,5.75 6.25,7.42893219 6.25,9.5 C6.25,11.5710678 7.92893219,13.25 10,13.25 Z" id="Path" fill="#FFFFFF"></path>
10
+ </g>
11
+ </svg>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="20px" height="25px" viewBox="0 0 20 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 51.1 (57501) - http://www.bohemiancoding.com/sketch -->
4
+ <title>pin icon</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <defs></defs>
7
+ <g id="pin-icon" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <path d="M10,0.500000134 C14.9705627,0.500000134 18.9999999,4.5294373 19,9.5 C19,15.5 10,24.5 10,24.5 C10,24.5 1,15.5 1,9.5 C1.00000007,4.5294373 5.0294373,0.500000134 10,0.500000134 Z" id="pin" stroke="#FFFFFF" fill="#0000FF" fill-rule="nonzero"></path>
9
+ <path d="M10,13.25 C12.0710678,13.25 13.75,11.5710678 13.75,9.5 C13.75,7.42893219 12.0710678,5.75 10,5.75 C7.92893219,5.75 6.25,7.42893219 6.25,9.5 C6.25,11.5710678 7.92893219,13.25 10,13.25 Z" id="Path" fill="#FFFFFF"></path>
10
+ </g>
11
+ </svg>
Binary file
Binary file
Binary file
@@ -0,0 +1,89 @@
1
+ /* Variables */
2
+ $brFontSizeBase: 14px;
3
+ $brFontSizeLarger: 16px;
4
+ $brFontSizeSmaller: 12px;
5
+ $brFontFamily: "Helvetica Neue", Arial, Verdana, sans-serif;
6
+
7
+ $brColorThemeblue: #0074D1;
8
+ $brColorThemeBlue2: #4990E2;
9
+ $brColorThemeBlue3: rgb(74,144,226);
10
+ $brColorThemeBlueDarker: rgb(36,94,131);
11
+ $brColorDarkGreyBg: #333;
12
+ $brColorMainBg: black;
13
+
14
+ $brColorBirdBook: #FEFDEB;
15
+ $brColorPlaceholderBg: $brColorBirdBook;
16
+
17
+ // "Controls" are the navbar and toolbar
18
+
19
+ $brColorControlsLightBg: white;
20
+ $brColorLightBorder: #979797;
21
+ $brColorDarkBorder: #4D4D4D;
22
+
23
+ $brNavHeightDesktop: 34px; //40px; //34px;
24
+ $brNavHeightMobile: $brNavHeightDesktop;
25
+
26
+ $brBreakPointMobile: 800px;
27
+ $brBreakPointMid: 1050px;
28
+
29
+ $brIconSpriteWidth: 40px;
30
+ $brIconWidthDesktop: 34px;
31
+ $brIconWidthMobile: 40px; //34px;
32
+
33
+ $brZindexBase: 1;
34
+ $brZindexPopup: 3000;
35
+ $brZindexFullscreen: 2000;
36
+
37
+ $gray13: #222;
38
+ $gray20: #333;
39
+ $gray40: #666;
40
+ $gray80: #ccc;
41
+ $white: #fff;
42
+ $darkBlue: #272958;
43
+ $mediumBlue: #428bca;
44
+ $lightBlue: #adaedc;
45
+ $controlsText: $white;
46
+ $controlsBG: $gray20;
47
+ $iconStroke: $white;
48
+ $tooltipBG: $gray20;
49
+ $activeButtonBG: $white;
50
+ $controlsBorder: $gray13;
51
+ $trackColor: $gray40;
52
+ $trackFillColor: $gray80;
53
+ $mobileMenuBG: #151515;
54
+
55
+ $tooltipBG: $gray20;
56
+ $tooltipText: $white;
57
+ $searchMarkerBG: $mediumBlue;
58
+ $searchResultText: $lightBlue;
59
+ $searchResultBG: $darkBlue;
60
+
61
+ @mixin brDarkControls {
62
+ background-color: $brColorDarkGreyBg;
63
+ color: white;
64
+ a { color: white; }
65
+ }
66
+ @mixin brLightControls {
67
+ background-color: $brColorControlsLightBg;
68
+ color: black;
69
+ a { color: black; }
70
+ }
71
+
72
+ // These are the main root elements in BookReader
73
+ $brScope: ".BookReader, .BRmobileMenu, .BRfloat";
74
+
75
+ @import 'colorbox';
76
+ @import 'BRmain';
77
+ @import 'BRpages';
78
+ @import 'BRicon';
79
+ @import 'BRfloat';
80
+ @import 'BRnav';
81
+ @import 'BRtoolbar';
82
+ @import 'BRsearch';
83
+ @import 'MobileNav';
84
+ @import 'BRvendor';
85
+ @import 'icons';
86
+ @import 'controls';
87
+ @import 'TextSelection';
88
+ @import 'BRComponent';
89
+ @import 'BRBookmarks';
@@ -0,0 +1,29 @@
1
+ /* BOOKMARKS - on page */
2
+ .BRpagecontainer .bookmark-button {
3
+ position: absolute;
4
+ top: 0;
5
+ right: 0;
6
+ z-index: 2;
7
+ opacity: 0;
8
+ }
9
+ .BRtwopageview .BRpagecontainer[data-side="L"] .bookmark-button {
10
+ right: auto;
11
+ left: 0;
12
+ }
13
+
14
+ .BRpagecontainer .bookmark-button.filled {
15
+ opacity: 1;
16
+ }
17
+
18
+ .BRpagecontainer .bookmark-button.default {
19
+ --iconFillColor: var(--defaultBookmarkColor, #eb3223);
20
+ }
21
+ .BRpagecontainer .bookmark-button.blue {
22
+ --iconFillColor: var(--blueBookmarkColor, #0023f5);
23
+ }
24
+ .BRpagecontainer .bookmark-button.red {
25
+ --iconFillColor: var(--redBookmarkColor, #eb3223);
26
+ }
27
+ .BRpagecontainer .bookmark-button.green {
28
+ --iconFillColor: var(--greenBookmarkColor, #75ef4c);
29
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Hide modal-manager that loads item-navigator-modal
3
+ * loading bookmarks related alert messages
4
+ */
5
+ #item-navigator-modal {
6
+ display: none
7
+ }
8
+
9
+ .BRpagecontainer {
10
+ --iconWidth: 16px;
11
+ --iconHeight: 24px;
12
+ --iconFillColor: #000;
13
+ }
@@ -0,0 +1,197 @@
1
+ /**
2
+ * BRfloat is the modal popup used in bookreader
3
+ */
4
+ .BRfloat {
5
+ color: rgb(52,52,52);;
6
+ }
7
+ .BRfloat a.title {
8
+ text-decoration: none;
9
+ }
10
+
11
+ .BRfloat .floatShut {
12
+ position:absolute;
13
+ top: 4px;
14
+ right: 8px;
15
+ display:block;
16
+ width:32px;
17
+ height:32px;
18
+ border: none;
19
+ background-color: transparent;
20
+ background-image:url("images/icon_close-pop.png");
21
+ background-position:0 0;
22
+ background-repeat:no-repeat;
23
+ }
24
+ .BRfloat .floatShut:hover {
25
+ background-position:0 -32px;
26
+ }
27
+ .BRfloat fieldset {
28
+ padding: 10px 15px;
29
+ border: none;
30
+ }
31
+ .BRfloat fieldset.sub {
32
+ margin-top: 0px;
33
+ padding: 10px;
34
+ }
35
+ .BRfloat fieldset.center {
36
+ text-align: center;
37
+ padding: 10px 20px 30px;
38
+ }
39
+ .BRfloat label {
40
+ display: block;
41
+ font-weight: 700;
42
+ font-size: 1em;
43
+ margin: 5px 0;
44
+ }
45
+ .BRfloat label.sub {
46
+ display: inline;
47
+ padding: 10px 30px 10px 0;
48
+ font-weight: normal;
49
+ font-size: 1em;
50
+ color: #666;
51
+ }
52
+ .BRfloat input[type=text],
53
+ .BRfloat textarea {
54
+ display: block;
55
+ margin-top: 10px;
56
+ width: 100%;
57
+ padding: 3px;
58
+ border: 2px inset;
59
+ font-family: "Lucida Grande", "Verdana", "Arial", sans-serif;
60
+ font-size: .8em;
61
+ line-height: 1.25;
62
+ font-weight: normal;
63
+ }
64
+ .BRfloat textarea {
65
+ height: 55px;
66
+ }
67
+
68
+ .BRfloat p {
69
+ margin: 15px 15px 0;
70
+ }
71
+ .BRfloat p.meta {
72
+ font-size: 1.1em;
73
+ color: #748d36;
74
+ margin: 10px 0 0;
75
+ }
76
+
77
+ .BRfloatCover {
78
+ float: left;
79
+ padding: 0 20px 30px 0;
80
+ }
81
+
82
+ .BRfloatHead {
83
+ font-size: 1.2em;
84
+ }
85
+ .BRfloatHead h2 {
86
+ display: inline;
87
+ font-size: 1.3em;
88
+ }
89
+ .BRfloatMeta p {
90
+ margin: 0;
91
+ padding: 0;
92
+ font-size: 1.1em;
93
+ line-height: 1.5em;
94
+ }
95
+ .BRfloatMeta p.moreInfo {
96
+ line-height: 15px;
97
+ margin-top: 30px;
98
+ }
99
+ .BRfloatMeta p.moreInfo span {
100
+ background: url("images/icon_OL-logo-xs.png") no-repeat;
101
+ display: block;
102
+ float: left;
103
+ width: 26px;
104
+ height: 15px;
105
+ }
106
+ .BRfloatMeta h3 {
107
+ font-size: 1.1em;
108
+ font-weight: 700;
109
+ line-height: 1.5em;
110
+ margin-top: 30px;
111
+ color: #333;
112
+ }
113
+ .BRfloatMeta ul.links {
114
+ float: left;
115
+ clear: right;
116
+ }
117
+ .BRfloatMeta ul.links li {
118
+ list-style-type: none;
119
+ display: block;
120
+ float: left;
121
+ font-size: 1.1em;
122
+ line-height: 1.5em;
123
+ }
124
+ .BRfloatMeta ul.links li span {
125
+ padding: 0 10px;
126
+ }
127
+ .BRfloatFoot a.problem, a.problem-icon {
128
+ background: url("images/icon_alert-xs.png") no-repeat;
129
+ padding-left: 20px;
130
+ }
131
+
132
+ .BRfloatHead,
133
+ .BRfloatBody {
134
+ width: 100%;
135
+ box-sizing: border-box;
136
+ text-align: center;
137
+ }
138
+
139
+
140
+ /* Desktop Only */
141
+ @media (min-width: ($brBreakPointMobile + 1)) {
142
+ .BRfloat .message,
143
+ .BRfloatBody {
144
+ padding: 10px 15px 10px 15px;
145
+ font-size: $brFontSizeLarger;
146
+ line-height: normal;
147
+ margin-top: 0;
148
+ margin-bottom: 0px;
149
+ }
150
+ .BRfloatHead {
151
+ box-sizing: border-box;
152
+ line-height: normal;
153
+ padding: 10px;
154
+ font-size: $brFontSizeLarger;
155
+ font-weight: 700;
156
+ text-align: center;
157
+ border-bottom:1px solid rgb(216,216,216);
158
+ }
159
+ .BRfloatFoot {
160
+ padding: 10px;
161
+ margin-bottom: 10px;
162
+ }
163
+ }
164
+
165
+
166
+ /* Mobile Only (with some responsiveness) */
167
+ @media (max-width: $brBreakPointMobile) {
168
+ .BRfloatBody, { padding: 10px 10px; }
169
+ .BRfloat .message,
170
+ .BRfloatBody,
171
+ .BRfloatHead, {
172
+ box-sizing: border-box;
173
+ line-height: normal;
174
+ border-bottom:1px solid rgb(216,216,216);
175
+ padding: 10px;
176
+ min-height: initial;
177
+ font-size: $brFontSizeBase;
178
+ font-weight: 700;
179
+ text-align: center;
180
+ }
181
+ .BRfloatFoot {
182
+ padding: 10px 10px 0 10px;
183
+ border-top: 1px solid #ccc;
184
+ }
185
+ .BRfloatFoot .BRaction { margin-bottom: 10px; }
186
+ }
187
+
188
+ @media (min-width: ($brBreakPointMobile + 1)) {
189
+ .BRfloat { max-width: initial; width:455px; }
190
+ .BRfloat.wide { max-width: initial; width:555px; }
191
+ }
192
+ @media (max-width: $brBreakPointMobile) and (min-width: 341px) {
193
+ .BRfloat { max-width: initial; width:340px; }
194
+ }
195
+ @media (max-width: 340px) {
196
+ .BRfloat { max-width: 95%; width:95%; }
197
+ }
@@ -0,0 +1,48 @@
1
+ @mixin sprite-offet($index) {
2
+ width: $brIconWidthDesktop;
3
+ height: $brIconWidthDesktop;
4
+ background-position: (-1 * $index) * $brIconSpriteWidth - (($brIconSpriteWidth - $brIconWidthDesktop) * .5) center;
5
+
6
+ @media (max-width: $brBreakPointMobile) {
7
+ width: $brIconWidthMobile;
8
+ height: $brIconWidthMobile;
9
+ background-position: (-1 * $index) * $brIconSpriteWidth - (($brIconSpriteWidth - $brIconWidthMobile) * .5) center;
10
+ }
11
+ }
12
+
13
+ .BRToolbarButton, .BRicon {
14
+ position: relative;
15
+ transition-duration: .2s;
16
+ transition-property: background-color, border;
17
+ &:hover {
18
+ background-color: rgba(50,50,50,.2);
19
+ }
20
+ &:active {
21
+ background-color: rgba(255,255,255,.2);
22
+ background-color: rgba(50,50,50,.4);
23
+ }
24
+ }
25
+
26
+ .BRicon {
27
+ padding: 0;
28
+ margin: 0;
29
+ vertical-align: middle;
30
+ border: none;
31
+ cursor: pointer;
32
+ background-color: transparent;
33
+ background-image: url(images/BRicons.svg);
34
+ background-repeat: no-repeat;
35
+ }
36
+ i.BRicon { display: inline-block; }
37
+ .BRicon.logo { @include sprite-offet(0); }
38
+ .BRicon.info { @include sprite-offet(1); }
39
+ .BRicon.share { @include sprite-offet(3); }
40
+ // We can only transition these because they are adjacent
41
+ .BRicon.read { @include sprite-offet(5); transition-property: background-color, border, background-position; }
42
+ .BRicon.unread { @include sprite-offet(7); transition-property: background-color, border, background-position; }
43
+ .BRicon.fit { @include sprite-offet(9); }
44
+ .BRicon.download { @include sprite-offet(38); }
45
+ .BRicon.return { @include sprite-offet(26); }
46
+ .BRicon.fb { @include sprite-offet(40); }
47
+ .BRicon.twitter { @include sprite-offet(41); }
48
+ .BRicon.email { @include sprite-offet(42); }