@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.
- package/.eslintrc.js +21 -19
- package/.github/workflows/node.js.yml +81 -7
- package/.github/workflows/npm-publish.yml +6 -20
- package/.testcaferc.js +10 -0
- package/BookReader/BookReader.css +505 -1442
- package/BookReader/BookReader.js +2 -21564
- package/BookReader/BookReader.js.LICENSE.txt +20 -20
- package/BookReader/BookReader.js.map +1 -1
- package/BookReader/ia-bookreader-bundle.js +1782 -0
- package/BookReader/ia-bookreader-bundle.js.LICENSE.txt +7 -0
- package/BookReader/ia-bookreader-bundle.js.map +1 -0
- package/BookReader/icons/1up.svg +1 -12
- package/BookReader/icons/2up.svg +1 -15
- package/BookReader/icons/advance.svg +3 -26
- package/BookReader/icons/chevron-right.svg +1 -1
- package/BookReader/icons/close-circle-dark.svg +1 -0
- package/BookReader/icons/close-circle.svg +1 -1
- package/BookReader/icons/fullscreen.svg +1 -17
- package/BookReader/icons/fullscreen_exit.svg +1 -17
- package/BookReader/icons/hamburger.svg +1 -15
- package/BookReader/icons/left-arrow.svg +1 -12
- package/BookReader/icons/magnify-minus.svg +1 -16
- package/BookReader/icons/magnify-plus.svg +1 -17
- package/BookReader/icons/magnify.svg +1 -15
- package/BookReader/icons/pause.svg +1 -23
- package/BookReader/icons/play.svg +1 -22
- package/BookReader/icons/playback-speed.svg +1 -34
- package/BookReader/icons/read-aloud.svg +1 -22
- package/BookReader/icons/review.svg +3 -22
- package/BookReader/icons/thumbnails.svg +1 -17
- package/BookReader/icons/voice.svg +1 -0
- package/BookReader/icons/volume-full.svg +1 -22
- package/BookReader/images/BRicons.svg +5 -94
- package/BookReader/images/books_graphic.svg +1 -177
- package/BookReader/images/icon_book.svg +1 -12
- package/BookReader/images/icon_bookmark.svg +1 -12
- package/BookReader/images/icon_gear.svg +1 -14
- package/BookReader/images/icon_hamburger.svg +1 -20
- package/BookReader/images/icon_home.svg +1 -21
- package/BookReader/images/icon_info.svg +1 -11
- package/BookReader/images/icon_one_page.svg +1 -8
- package/BookReader/images/icon_pause.svg +1 -1
- package/BookReader/images/icon_play.svg +1 -1
- package/BookReader/images/icon_playback-rate.svg +1 -15
- package/BookReader/images/icon_search_button.svg +1 -8
- package/BookReader/images/icon_share.svg +1 -9
- package/BookReader/images/icon_skip-ahead.svg +1 -6
- package/BookReader/images/icon_skip-back.svg +2 -13
- package/BookReader/images/icon_speaker.svg +1 -18
- package/BookReader/images/icon_speaker_open.svg +1 -10
- package/BookReader/images/icon_thumbnails.svg +1 -12
- package/BookReader/images/icon_toc.svg +1 -5
- package/BookReader/images/icon_two_pages.svg +1 -9
- package/BookReader/images/marker_chap-off.svg +1 -11
- package/BookReader/images/marker_chap-on.svg +1 -11
- package/BookReader/images/marker_srch-on.svg +1 -11
- package/BookReader/images/unviewable_page.png +0 -0
- package/BookReader/jquery-3.js +2 -0
- package/BookReader/jquery-3.js.LICENSE.txt +24 -0
- package/BookReader/plugins/plugin.archive_analytics.js +1 -172
- package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
- package/BookReader/plugins/plugin.autoplay.js +1 -165
- package/BookReader/plugins/plugin.autoplay.js.map +1 -1
- package/BookReader/plugins/plugin.chapters.js +22 -301
- package/BookReader/plugins/plugin.chapters.js.LICENSE.txt +1 -0
- package/BookReader/plugins/plugin.chapters.js.map +1 -1
- package/BookReader/plugins/plugin.iframe.js +1 -74
- package/BookReader/plugins/plugin.iframe.js.map +1 -1
- package/BookReader/plugins/plugin.iiif.js +2 -0
- package/BookReader/plugins/plugin.iiif.js.map +1 -0
- package/BookReader/plugins/plugin.resume.js +1 -368
- package/BookReader/plugins/plugin.resume.js.map +1 -1
- package/BookReader/plugins/plugin.search.js +2 -1420
- package/BookReader/plugins/plugin.search.js.LICENSE.txt +1 -0
- package/BookReader/plugins/plugin.search.js.map +1 -1
- package/BookReader/plugins/plugin.text_selection.js +2 -1080
- package/BookReader/plugins/plugin.text_selection.js.LICENSE.txt +1 -0
- package/BookReader/plugins/plugin.text_selection.js.map +1 -1
- package/BookReader/plugins/plugin.tts.js +2 -9193
- package/BookReader/plugins/plugin.tts.js.LICENSE.txt +2 -0
- package/BookReader/plugins/plugin.tts.js.map +1 -1
- package/BookReader/plugins/plugin.url.js +1 -269
- package/BookReader/plugins/plugin.url.js.map +1 -1
- package/BookReader/plugins/plugin.vendor-fullscreen.js +1 -379
- package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
- package/BookReader/webcomponents-bundle.js +3 -0
- package/BookReader/webcomponents-bundle.js.LICENSE.txt +9 -0
- package/BookReader/webcomponents-bundle.js.map +1 -0
- package/BookReaderDemo/BookReaderDemo.css +18 -19
- package/BookReaderDemo/BookReaderJSAdvanced.js +0 -3
- package/BookReaderDemo/BookReaderJSSimple.js +1 -0
- package/BookReaderDemo/IADemoBr.js +144 -0
- package/BookReaderDemo/demo-advanced.html +2 -2
- package/BookReaderDemo/demo-embed-iframe-src.html +2 -1
- package/BookReaderDemo/demo-fullscreen-mobile.html +3 -5
- package/BookReaderDemo/demo-fullscreen.html +2 -4
- package/BookReaderDemo/demo-iiif.html +99 -12
- package/BookReaderDemo/demo-internetarchive.html +214 -18
- package/BookReaderDemo/demo-multiple.html +2 -1
- package/BookReaderDemo/demo-preview-pages.html +526 -525
- package/BookReaderDemo/demo-simple.html +2 -1
- package/BookReaderDemo/demo-vendor-fullscreen.html +2 -4
- package/BookReaderDemo/ia-multiple-volumes-manifest.js +170 -0
- package/BookReaderDemo/immersion-1up.html +2 -2
- package/BookReaderDemo/immersion-mode.html +2 -4
- package/BookReaderDemo/toggle_controls.html +3 -2
- package/BookReaderDemo/view_mode.html +2 -1
- package/BookReaderDemo/viewmode-cycle.html +2 -3
- package/CHANGELOG.md +595 -33
- package/README.md +14 -1
- package/babel.config.js +20 -0
- package/codecov.yml +6 -0
- package/index.html +5 -2
- package/jsconfig.json +19 -0
- package/netlify.toml +9 -0
- package/package.json +70 -62
- package/renovate.json +52 -0
- package/scripts/preversion.js +0 -1
- package/src/BookNavigator/assets/bookmark-colors.js +1 -1
- package/src/BookNavigator/assets/button-base.js +10 -2
- package/src/BookNavigator/assets/ia-logo.js +17 -0
- package/src/BookNavigator/assets/icon_checkmark.js +1 -1
- package/src/BookNavigator/assets/icon_close.js +1 -1
- package/src/BookNavigator/book-navigator.js +590 -0
- package/src/BookNavigator/bookmarks/bookmark-button.js +3 -2
- package/src/BookNavigator/bookmarks/bookmark-edit.js +3 -4
- package/src/BookNavigator/bookmarks/bookmarks-list.js +2 -3
- package/src/BookNavigator/bookmarks/bookmarks-loginCTA.js +4 -9
- package/src/BookNavigator/bookmarks/bookmarks-provider.js +27 -17
- package/src/BookNavigator/bookmarks/ia-bookmarks.js +116 -67
- package/src/BookNavigator/delete-modal-actions.js +1 -1
- package/src/BookNavigator/downloads/downloads-provider.js +36 -21
- package/src/BookNavigator/downloads/downloads.js +29 -25
- package/src/BookNavigator/search/search-provider.js +80 -28
- package/src/BookNavigator/search/search-results.js +29 -26
- package/src/BookNavigator/sharing.js +27 -0
- package/src/BookNavigator/viewable-files.js +95 -0
- package/src/BookNavigator/visual-adjustments/visual-adjustments-provider.js +13 -12
- package/src/BookNavigator/visual-adjustments/visual-adjustments.js +7 -7
- package/src/BookReader/BookModel.js +76 -41
- package/src/BookReader/DragScrollable.js +233 -0
- package/src/BookReader/ImageCache.js +48 -15
- package/src/BookReader/Mode1Up.js +56 -351
- package/src/BookReader/Mode1UpLit.js +388 -0
- package/src/BookReader/Mode2Up.js +73 -1318
- package/src/BookReader/Mode2UpLit.js +777 -0
- package/src/BookReader/ModeCoordinateSpace.js +29 -0
- package/src/BookReader/ModeSmoothZoom.js +312 -0
- package/src/BookReader/ModeThumb.js +19 -13
- package/src/BookReader/Navbar/Navbar.js +70 -54
- package/src/BookReader/PageContainer.js +116 -22
- package/src/BookReader/ReduceSet.js +3 -3
- package/src/BookReader/Toolbar/Toolbar.js +14 -41
- package/src/BookReader/events.js +2 -3
- package/src/BookReader/options.js +73 -15
- package/src/BookReader/utils/HTMLDimensionsCacher.js +44 -0
- package/src/BookReader/utils/ScrollClassAdder.js +31 -0
- package/src/BookReader/utils/SelectionObserver.js +45 -0
- package/src/BookReader/utils/classes.js +1 -1
- package/src/BookReader/utils.js +128 -13
- package/src/BookReader.js +562 -1078
- package/src/BookReaderPlugin.js +44 -0
- package/src/assets/icons/close-circle-dark.svg +1 -0
- package/src/assets/icons/magnify-minus.svg +3 -7
- package/src/assets/icons/magnify-plus.svg +3 -7
- package/src/assets/icons/voice.svg +1 -0
- package/src/assets/images/unviewable_page.png +0 -0
- package/src/css/BookReader.scss +1 -17
- package/src/css/_BRBookmarks.scss +1 -1
- package/src/css/_BRComponent.scss +1 -1
- package/src/css/_BRicon.scss +8 -2
- package/src/css/_BRmain.scss +33 -27
- package/src/css/_BRnav.scss +12 -42
- package/src/css/_BRpages.scss +170 -42
- package/src/css/_BRsearch.scss +68 -230
- package/src/css/_BRtoolbar.scss +5 -5
- package/src/css/_TextSelection.scss +87 -27
- package/src/css/_colorbox.scss +2 -2
- package/src/css/_controls.scss +24 -7
- package/src/css/_icons.scss +7 -1
- package/src/ia-bookreader/ia-bookreader.js +224 -0
- package/src/plugins/plugin.archive_analytics.js +84 -78
- package/src/plugins/plugin.autoplay.js +99 -104
- package/src/plugins/plugin.chapters.js +237 -191
- package/src/plugins/plugin.iframe.js +1 -1
- package/src/plugins/plugin.iiif.js +141 -0
- package/src/plugins/plugin.resume.js +53 -50
- package/src/plugins/plugin.text_selection.js +503 -175
- package/src/plugins/plugin.vendor-fullscreen.js +7 -7
- package/src/plugins/search/plugin.search.js +183 -121
- package/src/plugins/search/utils.js +43 -0
- package/src/plugins/search/view.js +67 -202
- package/src/plugins/tts/AbstractTTSEngine.js +75 -45
- package/src/plugins/tts/FestivalTTSEngine.js +21 -31
- package/src/plugins/tts/PageChunk.js +16 -23
- package/src/plugins/tts/PageChunkIterator.js +11 -17
- package/src/plugins/tts/WebTTSEngine.js +88 -72
- package/src/plugins/tts/plugin.tts.js +310 -350
- package/src/plugins/tts/utils.js +16 -26
- package/src/plugins/url/UrlPlugin.js +191 -0
- package/src/plugins/{plugin.url.js → url/plugin.url.js} +47 -18
- package/src/util/browserSniffing.js +22 -0
- package/src/util/docCookies.js +21 -2
- package/src/util/strings.js +1 -0
- package/tests/e2e/README.md +37 -0
- package/tests/e2e/autoplay.test.js +9 -6
- package/tests/e2e/base.test.js +8 -16
- package/tests/e2e/helpers/base.js +55 -50
- package/tests/e2e/helpers/debug.js +1 -1
- package/tests/e2e/helpers/mockSearch.js +19 -22
- package/tests/e2e/helpers/params.js +17 -0
- package/tests/e2e/helpers/rightToLeft.js +8 -14
- package/tests/e2e/helpers/search.js +73 -0
- package/tests/e2e/models/Navigation.js +20 -37
- package/tests/e2e/rightToLeft.test.js +4 -5
- package/tests/e2e/viewmode.test.js +40 -33
- package/tests/jest/BookNavigator/book-navigator.test.js +661 -0
- package/tests/jest/BookNavigator/bookmarks/bookmark-button.test.js +43 -0
- package/tests/{karma → jest}/BookNavigator/bookmarks/bookmark-edit.test.js +25 -26
- package/tests/{karma → jest}/BookNavigator/bookmarks/bookmarks-list.test.js +41 -42
- package/tests/jest/BookNavigator/bookmarks/ia-bookmarks.test.js +45 -0
- package/tests/jest/BookNavigator/downloads/downloads-provider.test.js +67 -0
- package/tests/jest/BookNavigator/downloads/downloads.test.js +53 -0
- package/tests/jest/BookNavigator/search/search-provider.test.js +167 -0
- package/tests/{karma/BookNavigator → jest/BookNavigator/search}/search-results.test.js +109 -60
- package/tests/jest/BookNavigator/sharing/sharing-provider.test.js +49 -0
- package/tests/jest/BookNavigator/viewable-files/viewable-files-provider.test.js +80 -0
- package/tests/jest/BookNavigator/visual-adjustments.test.js +200 -0
- package/tests/{BookReader → jest/BookReader}/BookModel.test.js +74 -14
- package/tests/jest/BookReader/BookReaderPublicFunctions.test.js +193 -0
- package/tests/{BookReader → jest/BookReader}/ImageCache.test.js +4 -4
- package/tests/jest/BookReader/Mode1UpLit.test.js +73 -0
- package/tests/jest/BookReader/Mode2Up.test.js +98 -0
- package/tests/jest/BookReader/Mode2UpLit.test.js +190 -0
- package/tests/jest/BookReader/ModeCoordinateSpace.test.js +16 -0
- package/tests/jest/BookReader/ModeSmoothZoom.test.js +218 -0
- package/tests/jest/BookReader/ModeThumb.test.js +71 -0
- package/tests/{BookReader → jest/BookReader}/Navbar/Navbar.test.js +42 -29
- package/tests/jest/BookReader/PageContainer.test.js +238 -0
- package/tests/{BookReader → jest/BookReader}/ReduceSet.test.js +1 -1
- package/tests/{BookReader → jest/BookReader}/Toolbar/Toolbar.test.js +3 -3
- package/tests/jest/BookReader/utils/HTMLDimensionsCacher.test.js +59 -0
- package/tests/jest/BookReader/utils/ScrollClassAdder.test.js +49 -0
- package/tests/jest/BookReader/utils/SelectionObserver.test.js +57 -0
- package/tests/{BookReader → jest/BookReader}/utils/classes.test.js +1 -1
- package/tests/jest/BookReader/utils.test.js +250 -0
- package/tests/jest/BookReader.keyboard.test.js +190 -0
- package/tests/{BookReader.options.test.js → jest/BookReader.options.test.js} +10 -2
- package/tests/{BookReader.test.js → jest/BookReader.test.js} +43 -53
- package/tests/jest/plugins/plugin.archive_analytics.test.js +20 -0
- package/tests/jest/plugins/plugin.autoplay.test.js +35 -0
- package/tests/jest/plugins/plugin.chapters.test.js +195 -0
- package/tests/{plugins → jest/plugins}/plugin.iframe.test.js +4 -4
- package/tests/{plugins → jest/plugins}/plugin.resume.test.js +22 -35
- package/tests/jest/plugins/plugin.text_selection.test.js +316 -0
- package/tests/{plugins → jest/plugins}/plugin.vendor-fullscreen.test.js +2 -2
- package/tests/{plugins → jest/plugins}/search/plugin.search.test.js +26 -47
- package/tests/{plugins → jest/plugins}/search/plugin.search.view.test.js +42 -9
- package/tests/jest/plugins/search/utils.js +25 -0
- package/tests/jest/plugins/search/utils.test.js +29 -0
- package/tests/{plugins → jest/plugins}/tts/AbstractTTSEngine.test.js +30 -10
- package/tests/{plugins → jest/plugins}/tts/FestivalTTSEngine.test.js +4 -4
- package/tests/{plugins → jest/plugins}/tts/PageChunk.test.js +1 -1
- package/tests/{plugins → jest/plugins}/tts/PageChunkIterator.test.js +3 -3
- package/tests/{plugins → jest/plugins}/tts/WebTTSEngine.test.js +47 -1
- package/tests/{plugins → jest/plugins}/tts/utils.test.js +1 -60
- package/tests/jest/plugins/url/UrlPlugin.test.js +198 -0
- package/tests/{plugins → jest/plugins/url}/plugin.url.test.js +57 -18
- package/tests/jest/setup.js +3 -0
- package/tests/{util → jest/util}/browserSniffing.test.js +1 -1
- package/tests/jest/util/docCookies.test.js +24 -0
- package/tests/{util → jest/util}/strings.test.js +1 -1
- package/tests/{utils.js → jest/utils.js} +38 -0
- package/webpack.config.js +16 -10
- package/.babelrc +0 -12
- package/.dependabot/config.yml +0 -6
- package/.testcaferc.json +0 -5
- package/BookReader/bookreader-component-bundle.js +0 -14330
- package/BookReader/bookreader-component-bundle.js.LICENSE.txt +0 -38
- package/BookReader/bookreader-component-bundle.js.map +0 -1
- package/BookReader/icons/sort-ascending.svg +0 -1
- package/BookReader/icons/sort-descending.svg +0 -1
- package/BookReader/jquery-1.10.1.js +0 -108
- package/BookReader/jquery-1.10.1.js.LICENSE.txt +0 -24
- package/BookReader/plugins/plugin.menu_toggle.js +0 -369
- package/BookReader/plugins/plugin.menu_toggle.js.map +0 -1
- package/BookReader/plugins/plugin.mobile_nav.js +0 -335
- package/BookReader/plugins/plugin.mobile_nav.js.map +0 -1
- package/BookReaderDemo/BookReaderJSAutoplay.js +0 -56
- package/BookReaderDemo/IIIFBookReader.js +0 -207
- package/BookReaderDemo/bookreader-template-bundle.js +0 -7178
- package/BookReaderDemo/demo-autoplay.html +0 -38
- package/BookReaderDemo/demo-iiif.js +0 -26
- package/BookReaderDemo/demo-plugin-menu-toggle.html +0 -34
- package/karma.conf.js +0 -23
- package/src/BookNavigator/BookModel.js +0 -14
- package/src/BookNavigator/BookNavigator.js +0 -452
- package/src/BookNavigator/assets/book-loader.js +0 -27
- package/src/BookNavigator/assets/icon_sort_ascending.js +0 -5
- package/src/BookNavigator/assets/icon_sort_descending.js +0 -5
- package/src/BookNavigator/br-fullscreen-mgr.js +0 -83
- package/src/BookNavigator/search/a-search-result.js +0 -55
- package/src/BookNavigator/volumes/volumes-provider.js +0 -108
- package/src/BookNavigator/volumes/volumes.js +0 -162
- package/src/BookReader/DebugConsole.js +0 -54
- package/src/BookReaderComponent/BookReaderComponent.js +0 -112
- package/src/ItemNavigator/ItemNavigator.js +0 -372
- package/src/ItemNavigator/providers/sharing.js +0 -29
- package/src/assets/icons/sort-ascending.svg +0 -1
- package/src/assets/icons/sort-descending.svg +0 -1
- package/src/css/_MobileNav.scss +0 -194
- package/src/dragscrollable-br.js +0 -261
- package/src/plugins/menu_toggle/plugin.menu_toggle.js +0 -324
- package/src/plugins/plugin.mobile_nav.js +0 -287
- package/tests/BookReader/BookReaderPublicFunctions.test.js +0 -171
- package/tests/BookReader/DebugConsole.test.js +0 -25
- package/tests/BookReader/Mode1Up.test.js +0 -164
- package/tests/BookReader/Mode2Up.test.js +0 -247
- package/tests/BookReader/PageContainer.test.js +0 -115
- package/tests/BookReader/utils.test.js +0 -109
- package/tests/e2e/helpers/desktopSearch.js +0 -72
- package/tests/e2e/helpers/mobileSearch.js +0 -85
- package/tests/e2e/ia-production/ia-prod-base.js +0 -17
- package/tests/karma/BookNavigator/book-navigator.test.js +0 -132
- package/tests/karma/BookNavigator/visual-adjustments.test.js +0 -201
- package/tests/karma/BookNavigator/volumes.test.js +0 -133
- package/tests/plugins/menu_toggle/plugin.menu_toggle.test.js +0 -68
- package/tests/plugins/plugin.archive_analytics.test.js +0 -23
- package/tests/plugins/plugin.autoplay.test.js +0 -52
- package/tests/plugins/plugin.chapters.test.js +0 -130
- package/tests/plugins/plugin.mobile_nav.test.js +0 -66
- package/tests/plugins/plugin.text_selection.test.js +0 -203
- package/tests/util/docCookies.test.js +0 -15
package/src/dragscrollable-br.js
DELETED
@@ -1,261 +0,0 @@
|
|
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
|
@@ -1,324 +0,0 @@
|
|
1
|
-
|
2
|
-
/* global BookReader */
|
3
|
-
/**
|
4
|
-
* Plugin for managing menu visibility
|
5
|
-
* Enabling this plug-in:
|
6
|
-
* + removes the "menu tab" triangle
|
7
|
-
* + toggles nav at: book center tap/click
|
8
|
-
* + toggles nav at: black background tap/click
|
9
|
-
*
|
10
|
-
* Handles to events at CAPTURE phase
|
11
|
-
*
|
12
|
-
* This uses core BookReader functions and parameters to check its UI state:
|
13
|
-
* - br.refs = (at best) ui references that are present at any given time
|
14
|
-
* - br.navigationIsVisible() - checks using refs to confirm the navbar's presence
|
15
|
-
* - br.showNavigation() & br.hideNavigation()
|
16
|
-
* - br.constMode1up checks against br.mode;
|
17
|
-
*
|
18
|
-
* The list of BookReader custom events this plugin taps into are mainly
|
19
|
-
* listed in the `.init` function
|
20
|
-
*/
|
21
|
-
|
22
|
-
(function addMenuToggler() {
|
23
|
-
jQuery.extend(BookReader.defaultOptions, {
|
24
|
-
enableMenuToggle: true
|
25
|
-
});
|
26
|
-
|
27
|
-
/**
|
28
|
-
* `holdOffOnToggle` is used in fn `toggleRouter`
|
29
|
-
* to determine if menu toggle should happen
|
30
|
-
* set by `registerDragHandlers`
|
31
|
-
*/
|
32
|
-
let holdOffOnToggle = false;
|
33
|
-
|
34
|
-
/**
|
35
|
-
* Hides Nav arrow tab
|
36
|
-
*
|
37
|
-
* @param { object } br - BookReader instance
|
38
|
-
*/
|
39
|
-
function hideArrow(br) {
|
40
|
-
if (!br.refs || !br.refs.$BRnav) {
|
41
|
-
return;
|
42
|
-
}
|
43
|
-
const $menuTab = br.refs.$BRnav.children('.BRnavCntl');
|
44
|
-
$menuTab.css('display', 'none');
|
45
|
-
}
|
46
|
-
|
47
|
-
/**
|
48
|
-
* Sets up nav - hides arrow tab & adds click events
|
49
|
-
*
|
50
|
-
* @param { object } br - BookReader instance
|
51
|
-
*/
|
52
|
-
function setupNavForToggle(br) {
|
53
|
-
hideArrow(br);
|
54
|
-
registerClickHandlers(br);
|
55
|
-
}
|
56
|
-
|
57
|
-
/**
|
58
|
-
* Resets nav to always show
|
59
|
-
* hides arrow tab, removes click events, shows nav chrome
|
60
|
-
*
|
61
|
-
* @param { object } br - BookReader instance
|
62
|
-
*/
|
63
|
-
function alwaysShowNav(br) {
|
64
|
-
hideArrow(br);
|
65
|
-
removeClickHandlers(br);
|
66
|
-
br.showNavigation();
|
67
|
-
}
|
68
|
-
|
69
|
-
/**
|
70
|
-
* Removes click handlers on elements that house the book pages
|
71
|
-
*
|
72
|
-
* @param { object } br - BookReader instance
|
73
|
-
*/
|
74
|
-
const removeClickHandlers = function removeClickHandlers(br) {
|
75
|
-
if (br.refs.$brPageViewEl) {
|
76
|
-
br.refs.$brPageViewEl[0].removeEventListener('click', onBookClick, true);
|
77
|
-
}
|
78
|
-
if (br.refs.$brTwoPageView) {
|
79
|
-
br.refs.$brTwoPageView[0].removeEventListener('click', onBookClick, true);
|
80
|
-
}
|
81
|
-
}
|
82
|
-
|
83
|
-
/**
|
84
|
-
* Toggle functionality
|
85
|
-
* Responsible for calling native functions `hideNavigation` & `showNavigation`
|
86
|
-
* Makes sure only 1 toggle action is taken at a time using `togglingNav` switch.
|
87
|
-
*
|
88
|
-
* @params { object } br - bookreader instance
|
89
|
-
*/
|
90
|
-
let togglingNav = false; /* flag to make sure animations only fire once */
|
91
|
-
const toggleNav = function toggleNav(br) {
|
92
|
-
if (togglingNav) {
|
93
|
-
return;
|
94
|
-
}
|
95
|
-
|
96
|
-
togglingNav = true;
|
97
|
-
const navToggled = function navToggled() {
|
98
|
-
togglingNav = false;
|
99
|
-
window.removeEventListener('BookReader:navToggled', navToggled);
|
100
|
-
};
|
101
|
-
$(document).on('BookReader:navToggled', navToggled);
|
102
|
-
|
103
|
-
const menuIsShowing = br.navigationIsVisible();
|
104
|
-
if (menuIsShowing) {
|
105
|
-
br.hideNavigation();
|
106
|
-
} else {
|
107
|
-
br.showNavigation();
|
108
|
-
}
|
109
|
-
}
|
110
|
-
|
111
|
-
/**
|
112
|
-
* Check if div `BRcontainer` is scrollable.
|
113
|
-
* This normally happens when bookreader is zoomed in.
|
114
|
-
* not using br.refs, because `scrollWidth` & `offsetWidth` is not easily accessible.
|
115
|
-
*/
|
116
|
-
const isBRcontainerScrollable = function isBRcontainerScrollable() {
|
117
|
-
const brContainer = document.querySelector('.BRcontainer');
|
118
|
-
const scrollWidth = brContainer.scrollWidth;
|
119
|
-
const offsetWidth = brContainer.offsetWidth;
|
120
|
-
|
121
|
-
return scrollWidth > offsetWidth;
|
122
|
-
}
|
123
|
-
|
124
|
-
/**
|
125
|
-
* Confirms whether or not the click happened in the nav toggle zone
|
126
|
-
*
|
127
|
-
* @param { MouseEvent } event - JS click event object
|
128
|
-
* @param { DOM } book - DOM element that represents book
|
129
|
-
*/
|
130
|
-
const isCenterClick = function isCenterClick(event, book) {
|
131
|
-
const clickPosition = event.clientX;
|
132
|
-
const bookWidth = book.offsetWidth;
|
133
|
-
const leftOffset = book.offsetLeft
|
134
|
-
const bookEndPageFlipArea = Math.round(bookWidth / 3);
|
135
|
-
const leftThreshold = Math.round(bookEndPageFlipArea + leftOffset); // without it, the click area is small
|
136
|
-
const rightThreshold = Math.round(bookWidth - bookEndPageFlipArea + leftOffset);
|
137
|
-
const isOkOnRight = clickPosition > leftThreshold;
|
138
|
-
const isOkOnLeft = clickPosition < rightThreshold;
|
139
|
-
const isCenterClick = isOkOnRight && isOkOnLeft;
|
140
|
-
|
141
|
-
return isCenterClick;
|
142
|
-
}
|
143
|
-
|
144
|
-
/**
|
145
|
-
* Confirms whether or not the click happened in the background
|
146
|
-
*
|
147
|
-
* @param { DOM } element
|
148
|
-
*/
|
149
|
-
const isBackground = function isBackground(element) {
|
150
|
-
const isBackgroundClick = $(element).hasClass('BookReader')
|
151
|
-
|| $(element).hasClass('BRcontainer') /* main black theatre */
|
152
|
-
|| $(element).hasClass('BRemptypage') /* empty page placeholder */
|
153
|
-
|| $(element).hasClass('BRpageview') /* empty page placeholder, 1up */
|
154
|
-
|| $(element).hasClass('BRtwopageview'); /* empty page placeholder, 2up */
|
155
|
-
return isBackgroundClick;
|
156
|
-
};
|
157
|
-
|
158
|
-
/**
|
159
|
-
* Main hook into toggle functionality
|
160
|
-
* This is the only function that should be called by the event handlers
|
161
|
-
*
|
162
|
-
* @param { object } br - BookReader instance
|
163
|
-
* @param { MouseEvent } e - JS event object
|
164
|
-
* @param { boolean } atBookCenter - optional
|
165
|
-
*/
|
166
|
-
const toggleRouter = function toggleRouter (br, e, atBookCenter) {
|
167
|
-
if (holdOffOnToggle) {
|
168
|
-
return;
|
169
|
-
}
|
170
|
-
|
171
|
-
const book = isBRcontainerScrollable() ? br.refs.$brContainer[0] : e.currentTarget;
|
172
|
-
const is1UpMode = br.constMode1up === br.mode;
|
173
|
-
const validBookClick = is1UpMode || isCenterClick(e, book);
|
174
|
-
const isValidClickArea = atBookCenter ? validBookClick : isBackground(e.target);
|
175
|
-
if (isValidClickArea) {
|
176
|
-
toggleNav(br, atBookCenter);
|
177
|
-
|
178
|
-
if (atBookCenter) {
|
179
|
-
e.stopPropagation(); // don't turn the page. this takes prescendence
|
180
|
-
}
|
181
|
-
}
|
182
|
-
}
|
183
|
-
|
184
|
-
/**
|
185
|
-
* background click event handler
|
186
|
-
* @param { object } br - BookReader instance
|
187
|
-
* @param { MouseEvent } e - JS event object
|
188
|
-
*/
|
189
|
-
function onBackgroundClick(br, e) {
|
190
|
-
toggleRouter(br, e);
|
191
|
-
}
|
192
|
-
|
193
|
-
/**
|
194
|
-
* actual book container click event handler
|
195
|
-
*
|
196
|
-
* @param { object } br - BookReader instance
|
197
|
-
* @param { MouseEvent } e - JS event object
|
198
|
-
*/
|
199
|
-
function onBookClick(br, e) {
|
200
|
-
|
201
|
-
const atBookCenter = true;
|
202
|
-
toggleRouter(br, e, atBookCenter);
|
203
|
-
}
|
204
|
-
|
205
|
-
let initialX;
|
206
|
-
let initialY;
|
207
|
-
/**
|
208
|
-
* attaches mouseup & mousedown event handlers to assess if user is dragging
|
209
|
-
* sets `initialX`, `initialY`, and `holdOffOnToggle`
|
210
|
-
*/
|
211
|
-
function registerDragHandlers() {
|
212
|
-
const background = document.querySelector('.BookReader');
|
213
|
-
if (!background) {
|
214
|
-
return;
|
215
|
-
}
|
216
|
-
|
217
|
-
background.addEventListener('mousedown', function (e) {
|
218
|
-
initialX = e.screenX;
|
219
|
-
initialY = e.screenY;
|
220
|
-
|
221
|
-
holdOffOnToggle = true;
|
222
|
-
}, true);
|
223
|
-
background.addEventListener('mouseup', function (e) {
|
224
|
-
const isDrag = (Math.abs(initialX - e.screenX) > 5 || Math.abs(initialY - e.screenY) > 5);
|
225
|
-
|
226
|
-
if (!isDrag) {
|
227
|
-
holdOffOnToggle = false;
|
228
|
-
initialX = 0;
|
229
|
-
initialY = 0;
|
230
|
-
}
|
231
|
-
}, true);
|
232
|
-
}
|
233
|
-
|
234
|
-
/**
|
235
|
-
* attaches click handlers to background & book
|
236
|
-
* @param { object } br - BookReader instance
|
237
|
-
*/
|
238
|
-
function registerClickHandlers(br) {
|
239
|
-
const background = document.querySelector('.BookReader');
|
240
|
-
if (!background) {
|
241
|
-
return;
|
242
|
-
}
|
243
|
-
|
244
|
-
background.addEventListener('click', onBackgroundClick.bind(null, br), { capture: true, passive: true });
|
245
|
-
|
246
|
-
const desk = document.querySelector('.BRcontainer') || {};
|
247
|
-
const book = desk.firstChild;
|
248
|
-
|
249
|
-
if (book) {
|
250
|
-
book.addEventListener('click', onBookClick.bind(null, br), true);
|
251
|
-
registerDragHandlers();
|
252
|
-
}
|
253
|
-
}
|
254
|
-
|
255
|
-
/**
|
256
|
-
* Install menu toggle
|
257
|
-
* attaches event handlers, sets up DOM on load
|
258
|
-
*/
|
259
|
-
const installMenuToggle = function installMenuToggle(br) {
|
260
|
-
let hasNav = false;
|
261
|
-
|
262
|
-
try {
|
263
|
-
hasNav = br.navigationIsVisible();
|
264
|
-
} catch (error) {
|
265
|
-
hasNav = false;
|
266
|
-
}
|
267
|
-
|
268
|
-
if (!hasNav) {
|
269
|
-
return;
|
270
|
-
}
|
271
|
-
|
272
|
-
const menuToggleEventRegister = function menuToggleEventRegister(e) {
|
273
|
-
registerClickHandlers(br);
|
274
|
-
};
|
275
|
-
|
276
|
-
const setupDOMandHandlers = function setupDOMandHandlers(e) {
|
277
|
-
setupNavForToggle(br);
|
278
|
-
};
|
279
|
-
|
280
|
-
const persistNav = function persistNav(e) {
|
281
|
-
alwaysShowNav(br);
|
282
|
-
};
|
283
|
-
|
284
|
-
const whenToToggleNav = [
|
285
|
-
'BookReader:1PageViewSelected',
|
286
|
-
'BookReader:2PageViewSelected',
|
287
|
-
'BookReader:zoomIn',
|
288
|
-
'BookReader:zoomOut',
|
289
|
-
'BookReader:resize'
|
290
|
-
];
|
291
|
-
|
292
|
-
const whenTolwaysShowNavWhen = [
|
293
|
-
'BookReader:3PageViewSelected'
|
294
|
-
];
|
295
|
-
|
296
|
-
$(document).on(whenTolwaysShowNavWhen.join(' '), persistNav);
|
297
|
-
$(document).on(whenToToggleNav.join(' '), menuToggleEventRegister);
|
298
|
-
$(window).on('orientationchange', menuToggleEventRegister);
|
299
|
-
$(document).on('BookReader:fullscreenToggled', setupDOMandHandlers);
|
300
|
-
$(window).on('DOMContentLoaded', setupDOMandHandlers);
|
301
|
-
setupDOMandHandlers();
|
302
|
-
};
|
303
|
-
|
304
|
-
/**
|
305
|
-
* Add to BookReader
|
306
|
-
*/
|
307
|
-
BookReader.prototype.setup = (function(super_) {
|
308
|
-
return function(options) {
|
309
|
-
super_.call(this, options);
|
310
|
-
};
|
311
|
-
})(BookReader.prototype.setup);
|
312
|
-
|
313
|
-
/**
|
314
|
-
* Initialize plugin
|
315
|
-
*/
|
316
|
-
BookReader.prototype.init = (function(super_) {
|
317
|
-
return function() {
|
318
|
-
super_.call(this);
|
319
|
-
if (this.options.enableMenuToggle) {
|
320
|
-
installMenuToggle(this);
|
321
|
-
}
|
322
|
-
};
|
323
|
-
})(BookReader.prototype.init);
|
324
|
-
})();
|