@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,52 @@
1
+ /* COLORBOX POP-UP */
2
+
3
+ #colorbox, #cboxOverlay, #cboxWrapper {
4
+ position: absolute;
5
+ top: 0;
6
+ left: 0;
7
+ z-index: $brZindexPopup;
8
+ }
9
+ #cboxOverlay {
10
+ position: fixed;
11
+ width: 100%;
12
+ height: 100%;
13
+ background: #000;
14
+ opacity:0.75; filter:Alpha(Opacity=75);
15
+ }
16
+ #cboxMiddleLeft, #cboxBottomLeft { clear:left; }
17
+ #cboxContent { position:relative; }
18
+ #cboxLoadedContent { overflow: hidden!important; }
19
+ #cboxLoadedContent iframe { display: block; border: 0; }
20
+ #cboxTitle { margin: 0; display: none !important; }
21
+ #cboxLoadingOverlay, #cboxLoadingGraphic {
22
+ position: absolute;
23
+ top: 25px;
24
+ left: 25px;
25
+ width: 100%;
26
+ }
27
+ #cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow { cursor:pointer; }
28
+ #cboxClose { display: none !important; }
29
+
30
+ #colorbox{
31
+ background: white;
32
+ border: 2px solid #ccc;
33
+ -webkit-border-radius:12px;
34
+ -moz-border-radius:12px;
35
+ border-radius:12px;
36
+ -webkit-box-shadow: 0px 0px 27px 6px rgba(66, 66, 66, 0.8);
37
+ -moz-box-shadow: 0px 0px 27px 6px rgba(66, 66, 66, 0.8);
38
+ box-shadow: 0px 0px 27px 6px rgba(66, 66, 66, 0.8);
39
+ }
40
+ #cboxWrapper {}
41
+ #cboxContent {
42
+ padding:0;
43
+ }
44
+ #cboxLoadedContent{
45
+ margin:0;
46
+ }
47
+ #cboxLoadingOverlay{background:transparent;}
48
+
49
+ .shift{
50
+ position: absolute !important;
51
+ left: -10000px !important;
52
+ }
@@ -0,0 +1,244 @@
1
+ .BRcontrols {
2
+ width: 100%;
3
+
4
+ .tooltip {
5
+ display: none;
6
+ position: absolute;
7
+ width: auto;
8
+ left: 50%;
9
+ bottom: calc(100% + 10px);
10
+ transform: translateX(-50%);
11
+ padding: 5px 10px;
12
+ font-weight: bold;
13
+ white-space: nowrap;
14
+ color: $controlsText;
15
+ border-radius: 3px;
16
+ background: $tooltipBG;
17
+ }
18
+
19
+ .full .tooltip {
20
+ left: auto;
21
+ right: 0;
22
+ transform: translateX(0);
23
+ }
24
+
25
+ .BRfullscreenActive & {
26
+ .icon-fullscreen {
27
+ background-image: url("icons/fullscreen_exit.svg");
28
+ }
29
+ }
30
+
31
+ select.playback-speed {
32
+ width: 24px;
33
+ padding-top: 18px;
34
+ -moz-appearance: none;
35
+ -webkit-appearance: none;
36
+ appearance: none;
37
+ font-size: 10px;
38
+ text-align: center;
39
+ text-align-last: center;
40
+ color: $controlsText;
41
+ border: none;
42
+ cursor: pointer;
43
+ background: transparent url("icons/playback-speed.svg") 50% 0 no-repeat;
44
+ option {
45
+ background: $controlsBG;
46
+ }
47
+ }
48
+
49
+ .active {
50
+ background: $activeButtonBG;
51
+ }
52
+
53
+ li {
54
+ position: relative;
55
+ }
56
+
57
+ .controls {
58
+ position: relative;
59
+ z-index: 2;
60
+ display: flex;
61
+ padding: 2px 10px;
62
+ margin: 0;
63
+ list-style: none;
64
+ background: $controlsBG;
65
+ @media (max-width: $brBreakPointMobile) {
66
+ padding-left: 0;
67
+ }
68
+ }
69
+
70
+ .controls button {
71
+ width: 30px;
72
+ height: 30px;
73
+ }
74
+
75
+ @keyframes slideUp {
76
+ from {
77
+ opacity: 0;
78
+ transform: translateY(10px);
79
+ }
80
+ to {
81
+ opacity: 1;
82
+ transform: translateY(0);
83
+ }
84
+ }
85
+
86
+ .read-aloud {
87
+ display: none;
88
+ position: absolute;
89
+ bottom: 100%;
90
+ right: 0;
91
+ left: 0;
92
+ z-index: 1;
93
+ padding: 5px 0;
94
+ margin: 0;
95
+ align-items: center;
96
+ justify-content: center;
97
+ list-style: none;
98
+ background: $controlsBG;
99
+
100
+ &.visible {
101
+ display: flex;
102
+ animation: slideUp 0.2s;
103
+ }
104
+
105
+ li {
106
+ padding: 0 10px;
107
+ }
108
+
109
+ [name="play"] {
110
+ .icon-pause {
111
+ display: none;
112
+ }
113
+ &.playing {
114
+ .icon-play {
115
+ display: none;
116
+ }
117
+ .icon-pause {
118
+ display: inline-block;
119
+ }
120
+ }
121
+ }
122
+ }
123
+
124
+ .scrubber {
125
+ display: flex;
126
+ width: 100%;
127
+ height: 30px;
128
+ }
129
+
130
+ .frame {
131
+ position: relative;
132
+ width: 100%;
133
+ }
134
+
135
+ .color-fill {
136
+ position: absolute;
137
+ top: 50%;
138
+ left: 0;
139
+ transform: translateY(-50%);
140
+ width: 100%;
141
+ height: 8px;
142
+ border-radius: 8px;
143
+ }
144
+
145
+ .scrubber input[type=range] {
146
+ position: absolute;
147
+ top: 50%;
148
+ left: 0;
149
+ transform: translateY(-50%);
150
+ width: 100%;
151
+ background-color: transparent;
152
+ -webkit-appearance: none;
153
+ }
154
+
155
+ .scrubber input[type=range]:focus {
156
+ outline: none;
157
+ }
158
+
159
+ .scrubber input[type=range]::-webkit-slider-runnable-track {
160
+ background: transparent;
161
+ border: 0px solid rgba(204, 204, 204, 0);
162
+ border: 0;
163
+ border-radius: 8px;
164
+ width: 100%;
165
+ height: 8px;
166
+ cursor: pointer;
167
+ }
168
+
169
+ .scrubber input[type=range]::-webkit-slider-thumb {
170
+ margin-top: -4px;
171
+ width: 16px;
172
+ height: 16px;
173
+ background: #ffffff;
174
+ border: 0px solid rgba(0, 0, 0, 0);
175
+ border: 0;
176
+ border-radius: 8px;
177
+ cursor: pointer;
178
+ -webkit-appearance: none;
179
+ }
180
+
181
+ .scrubber input[type=range]::-moz-range-track {
182
+ background: #666666;
183
+ border: 0px solid rgba(204, 204, 204, 0);
184
+ border: 0;
185
+ border-radius: 8px;
186
+ width: 100%;
187
+ height: 8px;
188
+ cursor: pointer;
189
+ }
190
+
191
+ .scrubber input[type=range]::-moz-range-progress {
192
+ height: 8px;
193
+ background: #ccc;
194
+ }
195
+
196
+ .scrubber input[type=range]::-ms-track {
197
+ border: none;
198
+ color: transparent;
199
+ background: #666;
200
+ }
201
+
202
+ .scrubber input[type=range]::-ms-fill-lower {
203
+ background: #ccc;
204
+ }
205
+
206
+ .scrubber input[type=range]::-ms-tooltip {
207
+ display: none;
208
+ }
209
+
210
+ .scrubber input[type=range]::-moz-range-thumb {
211
+ width: 16px;
212
+ height: 16px;
213
+ background: #ffffff;
214
+ border: 0px solid rgba(0, 0, 0, 0);
215
+ border: 0;
216
+ border-radius: 8px;
217
+ cursor: pointer;
218
+ }
219
+
220
+ .scrubber p {
221
+ padding: 0 20px 0 13px;
222
+ margin: 0;
223
+ align-self: stretch;
224
+ font-weight: 700;
225
+ line-height: 26px;
226
+ color: $controlsText;
227
+ @media (max-width: $brBreakPointMobile) {
228
+ padding: 0;
229
+ }
230
+ }
231
+
232
+ /* BookReader defaults overrides */
233
+ .BRnavline {
234
+ top: -4px;
235
+ }
236
+
237
+ .scrubber .BRpager.ui-slider {
238
+ top: 10px;
239
+ background-color: $trackColor;
240
+ }
241
+ .scrubber .BRpager.ui-slider .ui-slider-range {
242
+ background-color: $trackFillColor;
243
+ }
244
+ }
@@ -0,0 +1,121 @@
1
+ .icon {
2
+ display: inline-block;
3
+ background: transparent 50% 50% no-repeat;
4
+ }
5
+
6
+ .icon.hflip {
7
+ transform: scaleX(-1);
8
+ }
9
+
10
+ .active .icon {
11
+ filter: brightness(.2);
12
+ }
13
+
14
+ .icon-read-aloud {
15
+ width: 20px;
16
+ height: 16px;
17
+ background-image: url("icons/read-aloud.svg");
18
+ }
19
+
20
+ .icon-onepg {
21
+ width: 11px;
22
+ height: 19px;
23
+ background-image: url("icons/1up.svg");
24
+ }
25
+
26
+ .icon-twopg {
27
+ width: 20px;
28
+ height: 19px;
29
+ background-image: url("icons/2up.svg");
30
+ }
31
+
32
+ .icon-fullscreen,
33
+ .icon-fullscreen-exit {
34
+ width: 18px;
35
+ height: 18px;
36
+ background-image: url("icons/fullscreen.svg");
37
+ }
38
+
39
+ .icon-fullscreen-exit {
40
+ background-image: url("icons/fullscreen-exit.svg");
41
+ }
42
+
43
+ .icon-thumb {
44
+ width: 17px;
45
+ height: 19px;
46
+ background-image: url("icons/thumbnails.svg");
47
+ }
48
+
49
+ .icon-playback-speed {
50
+ width: 24px;
51
+ height: 32px;
52
+ background-image: url("icons/playback-speed.svg");
53
+ }
54
+
55
+ .icon-review,
56
+ .icon-advance {
57
+ width: 21px;
58
+ height: 19px;
59
+ background-image: url("icons/review.svg");
60
+ }
61
+
62
+ .icon-advance {
63
+ background-image: url("icons/advance.svg");
64
+ }
65
+
66
+ .icon-volume-full {
67
+ width: 23px;
68
+ height: 22px;
69
+ background-image: url("icons/volume-full.svg");
70
+ }
71
+
72
+ .icon-play,
73
+ .icon-pause {
74
+ width: 40px;
75
+ height: 40px;
76
+ background-image: url("icons/play.svg");
77
+ }
78
+
79
+ .icon-pause {
80
+ background-image: url("icons/pause.svg");
81
+ }
82
+
83
+ .icon-left-arrow {
84
+ width: 12px;
85
+ height: 14px;
86
+ background-image: url("icons/left-arrow.svg");
87
+ }
88
+
89
+ .icon-magnify {
90
+ position: relative;
91
+ width: 18px;
92
+ height: 18px;
93
+ background-image: url("icons/magnify-minus.svg");
94
+ &.plus{
95
+ background-image: url("icons/magnify-plus.svg");
96
+ }
97
+ }
98
+
99
+ .icon-search {
100
+ width: 19px;
101
+ height: 19px;
102
+ background-image: url("images/icon_search_button.svg");
103
+ }
104
+
105
+ .icon-chevron {
106
+ width: 5px;
107
+ height: 8px;
108
+ background-image: url("icons/chevron-right.svg");
109
+ }
110
+
111
+ .icon-close {
112
+ width: 12px;
113
+ height: 12px;
114
+ background-image: url("icons/close-circle.svg");
115
+ }
116
+
117
+ .icon-close-dark {
118
+ width: 12px;
119
+ height: 12px;
120
+ background-image: url("icons/close-circle-dark.svg");
121
+ }
@@ -0,0 +1,261 @@
1
+ /*
2
+ * jQuery dragscrollable Plugin
3
+ * version: 1.0 (25-Jun-2009)
4
+ * Copyright (c) 2009 Miquel Herrera
5
+ *
6
+ * Portions Copyright (c) 2010 Reg Braithwaite
7
+ * Copyright (c) 2010 Internet Archive / Michael Ang
8
+ * Copyright (c) 2016 Internet Archive / Richard Caceres
9
+ *
10
+ * Dual licensed under the MIT and GPL licenses:
11
+ * http://www.opensource.org/licenses/mit-license.php
12
+ * http://www.gnu.org/licenses/gpl.html
13
+ *
14
+ * Modified by richard@archive.org 2016
15
+ * - Added check to disable on touch enabled devices
16
+ * - Change dragend handler to bind using event "capturing" instead of "bubbling"
17
+ */
18
+ (function($) { // secure $ jQuery alias
19
+
20
+ /**
21
+ * Adds the ability to manage elements scroll by dragging
22
+ * one or more of its descendant elements. Options parameter
23
+ * allow to specifically select which inner elements will
24
+ * respond to the drag events.
25
+ *
26
+ * options properties:
27
+ * ------------------------------------------------------------------------
28
+ * dragSelector | jquery selector to apply to each wrapped element
29
+ * | to find which will be the dragging elements.
30
+ * | Defaults to '>:first' which is the first child of
31
+ * | scrollable element
32
+ * ------------------------------------------------------------------------
33
+ * acceptPropagatedEvent| Will the dragging element accept propagated
34
+ * | events? default is yes, a propagated mouse event
35
+ * | on a inner element will be accepted and processed.
36
+ * | If set to false, only events originated on the
37
+ * | draggable elements will be processed.
38
+ * ------------------------------------------------------------------------
39
+ * preventDefault | Prevents the event to propagate further effectivey
40
+ * | disabling other default actions. Defaults to true
41
+ * ------------------------------------------------------------------------
42
+ * scrollWindow | Scroll the window rather than the element
43
+ * | Defaults to false
44
+ * ------------------------------------------------------------------------
45
+ *
46
+ * usage examples:
47
+ *
48
+ * To add the scroll by drag to the element id=viewport when dragging its
49
+ * first child accepting any propagated events
50
+ * $('#viewport').dragscrollable();
51
+ *
52
+ * To add the scroll by drag ability to any element div of class viewport
53
+ * when dragging its first descendant of class dragMe responding only to
54
+ * evcents originated on the '.dragMe' elements.
55
+ * $('div.viewport').dragscrollable({dragSelector:'.dragMe:first',
56
+ * acceptPropagatedEvent: false});
57
+ *
58
+ * Notice that some 'viewports' could be nested within others but events
59
+ * would not interfere as acceptPropagatedEvent is set to false.
60
+ *
61
+ */
62
+
63
+ var append_namespace = function (string_of_events, ns) {
64
+
65
+ /* IE doesn't have map
66
+ return string_of_events
67
+ .split(' ')
68
+ .map(function (name) { return name + ns; })
69
+ .join(' ');
70
+ */
71
+ var pieces = string_of_events.split(' ');
72
+ var ret = new Array();
73
+ for (var i = 0; i < pieces.length; i++) {
74
+ ret.push(pieces[i] + ns);
75
+ }
76
+ return ret.join(' ');
77
+ };
78
+
79
+ var left_top = function(event) {
80
+
81
+ var x;
82
+ var y;
83
+ if (typeof(event.clientX) != 'undefined') {
84
+ x = event.clientX;
85
+ y = event.clientY;
86
+ }
87
+ else if (typeof(event.screenX) != 'undefined') {
88
+ x = event.screenX;
89
+ y = event.screenY;
90
+ }
91
+ else if (typeof(event.targetTouches) != 'undefined') {
92
+ x = event.targetTouches[0].pageX;
93
+ y = event.targetTouches[0].pageY;
94
+ }
95
+ else if (typeof(event.originalEvent) == 'undefined') {
96
+ var str = '';
97
+ for (const i in event) {
98
+ str += ', ' + i + ': ' + event[i];
99
+ }
100
+ console.error("don't understand x and y for " + event.type + ' event: ' + str);
101
+ }
102
+ else if (typeof(event.originalEvent.clientX) != 'undefined') {
103
+ x = event.originalEvent.clientX;
104
+ y = event.originalEvent.clientY;
105
+ }
106
+ else if (typeof(event.originalEvent.screenX) != 'undefined') {
107
+ x = event.originalEvent.screenX;
108
+ y = event.originalEvent.screenY;
109
+ }
110
+ else if (typeof(event.originalEvent.targetTouches) != 'undefined') {
111
+ x = event.originalEvent.targetTouches[0].pageX;
112
+ y = event.originalEvent.targetTouches[0].pageY;
113
+ }
114
+
115
+ return {left: x, top:y};
116
+ };
117
+
118
+ $.fn.dragscrollable = function( options ) {
119
+
120
+ var handling_element = $(this);
121
+
122
+ var settings = $.extend(
123
+ {
124
+ dragSelector:'>:first',
125
+ acceptPropagatedEvent: true,
126
+ preventDefault: true,
127
+ dragstart: 'mousedown touchstart',
128
+ dragcontinue: 'mousemove touchmove',
129
+ dragend: 'mouseup touchend', // mouseleave
130
+ dragMinDistance: 5,
131
+ namespace: '.ds',
132
+ scrollWindow: false,
133
+ },options || {});
134
+
135
+ settings.dragstart = append_namespace(settings.dragstart, settings.namespace);
136
+ settings.dragcontinue = append_namespace(settings.dragcontinue, settings.namespace);
137
+ //settings.dragend = append_namespace(settings.dragend, settings.namespace);
138
+
139
+ var shouldAbort = function() {
140
+ var isTouchDevice = !!('ontouchstart' in window) || !!('msmaxtouchpoints' in window.navigator);
141
+ return isTouchDevice;
142
+ };
143
+
144
+ var dragContinueHandlerProxy;
145
+
146
+ var dragscroll = {
147
+ dragStartHandler : function(event) {
148
+ if (shouldAbort()) { return true; }
149
+
150
+ // mousedown, left click, check propagation
151
+ if (event.which > 1 ||
152
+ (!event.data.acceptPropagatedEvent && event.target != this)) {
153
+ return false;
154
+ }
155
+
156
+ event.data.firstCoord = left_top(event);
157
+ // Initial coordinates will be the last when dragging
158
+ event.data.lastCoord = event.data.firstCoord;
159
+
160
+ handling_element
161
+ .bind(settings.dragcontinue, event.data, dragscroll.dragContinueHandler)
162
+ //.bind(settings.dragend, event.data, dragscroll.dragEndHandler)
163
+ ;
164
+
165
+ // Note, we bind using addEventListener so we can use "capture" binding
166
+ // instead of "bubble" binding
167
+ dragContinueHandlerProxy = function(e) {
168
+ e.data = event.data;
169
+ dragscroll.dragEndHandler(e);
170
+ };
171
+ $.each(settings.dragend.split(' '), function(idx, val) {
172
+ handling_element.get(0).addEventListener(val, dragContinueHandlerProxy, true);
173
+ });
174
+
175
+ if (event.data.preventDefault) {
176
+ event.preventDefault();
177
+ return false;
178
+ }
179
+ },
180
+ dragContinueHandler : function(event) { // User is dragging
181
+ // console.log('drag continue');
182
+ if (shouldAbort()) { return true; }
183
+
184
+ var lt = left_top(event);
185
+
186
+ // How much did the mouse move?
187
+ var delta = {left: (lt.left - event.data.lastCoord.left),
188
+ top: (lt.top - event.data.lastCoord.top)};
189
+
190
+ var scrollTarget = event.data.scrollable;
191
+ if (event.data.scrollWindow) {
192
+ scrollTarget = $(window);
193
+ }
194
+ // Set the scroll position relative to what ever the scroll is now
195
+ scrollTarget.scrollLeft( scrollTarget.scrollLeft() - delta.left );
196
+ scrollTarget.scrollTop( scrollTarget.scrollTop() - delta.top );
197
+
198
+ // Save where the cursor is
199
+ event.data.lastCoord = lt;
200
+
201
+ if (event.data.preventDefault) {
202
+ event.preventDefault();
203
+ return false;
204
+ }
205
+ },
206
+ dragEndHandler : function(event) { // Stop scrolling
207
+ //console.log('dragEndHandler');
208
+
209
+ if (shouldAbort()) { return true; }
210
+
211
+ handling_element
212
+ .unbind(settings.dragcontinue)
213
+ // Note, for some reason, even though I removeEventListener below,
214
+ // this call to unbind is still necessary. I don't know why.
215
+ .unbind(settings.dragend)
216
+ ;
217
+
218
+ // Note, we bind using addEventListener so we can use "capture" binding
219
+ // instead of "bubble" binding
220
+ $.each(settings.dragend.split(' '), function(idx, val) {
221
+ handling_element.get(0).removeEventListener(val, dragContinueHandlerProxy, true);
222
+ });
223
+
224
+ // How much did the mouse move total?
225
+ var delta = {left: Math.abs(event.data.lastCoord.left - event.data.firstCoord.left),
226
+ top: Math.abs(event.data.lastCoord.top - event.data.firstCoord.top)};
227
+ var distance = Math.max(delta.left, delta.top);
228
+
229
+ // Allow event to propagate if min distance was not achieved
230
+ if (event.data.preventDefault && distance > settings.dragMinDistance) {
231
+ event.preventDefault();
232
+ event.stopImmediatePropagation();
233
+ event.stopPropagation();
234
+ return false;
235
+ }
236
+ }
237
+ };
238
+
239
+ // set up the initial events
240
+ return this.each(function() {
241
+ // closure object data for each scrollable element
242
+ var data = {scrollable : $(this),
243
+ acceptPropagatedEvent : settings.acceptPropagatedEvent,
244
+ preventDefault : settings.preventDefault,
245
+ scrollWindow : settings.scrollWindow };
246
+ // Set mouse initiating event on the desired descendant
247
+ $(this).find(settings.dragSelector).
248
+ bind(settings.dragstart, data, dragscroll.dragStartHandler);
249
+ });
250
+ }; //end plugin dragscrollable
251
+
252
+ // Note, this probably doesn't work anymore with our modifications - Nov/8/2016
253
+ $.fn.removedragscrollable = function (namespace) {
254
+ if (typeof(namespace) == 'undefined')
255
+ namespace = '.ds';
256
+ return this.each(function() {
257
+ $(document).find('*').andSelf().unbind(namespace);
258
+ });
259
+ };
260
+
261
+ })( jQuery ); // confine scope
@@ -0,0 +1,4 @@
1
+ import $ from 'jquery';
2
+
3
+ window.jQuery = $;
4
+ window.$ = $;