@internetarchive/bookreader 5.0.0-9 → 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 +76 -11
- package/.github/workflows/npm-publish.yml +6 -20
- package/.testcaferc.js +10 -0
- package/BookReader/BookReader.css +404 -1125
- package/BookReader/BookReader.js +1 -1
- 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 -1
- package/BookReader/icons/2up.svg +1 -1
- package/BookReader/icons/advance.svg +1 -1
- package/BookReader/icons/chevron-right.svg +1 -1
- package/BookReader/icons/close-circle-dark.svg +1 -1
- package/BookReader/icons/close-circle.svg +1 -1
- package/BookReader/icons/fullscreen.svg +1 -1
- package/BookReader/icons/fullscreen_exit.svg +1 -1
- package/BookReader/icons/hamburger.svg +1 -1
- package/BookReader/icons/left-arrow.svg +1 -1
- package/BookReader/icons/magnify-minus.svg +1 -1
- package/BookReader/icons/magnify-plus.svg +1 -1
- package/BookReader/icons/magnify.svg +1 -1
- package/BookReader/icons/pause.svg +1 -1
- package/BookReader/icons/play.svg +1 -1
- package/BookReader/icons/playback-speed.svg +1 -1
- package/BookReader/icons/read-aloud.svg +1 -1
- package/BookReader/icons/review.svg +1 -1
- package/BookReader/icons/thumbnails.svg +1 -1
- package/BookReader/icons/voice.svg +1 -0
- package/BookReader/icons/volume-full.svg +1 -1
- package/BookReader/images/BRicons.svg +3 -3
- package/BookReader/images/books_graphic.svg +1 -1
- package/BookReader/images/icon_book.svg +1 -1
- package/BookReader/images/icon_bookmark.svg +1 -1
- package/BookReader/images/icon_gear.svg +1 -1
- package/BookReader/images/icon_hamburger.svg +1 -1
- package/BookReader/images/icon_home.svg +1 -1
- package/BookReader/images/icon_info.svg +1 -1
- package/BookReader/images/icon_one_page.svg +1 -1
- package/BookReader/images/icon_pause.svg +1 -1
- package/BookReader/images/icon_play.svg +1 -1
- package/BookReader/images/icon_playback-rate.svg +1 -1
- package/BookReader/images/icon_search_button.svg +1 -1
- package/BookReader/images/icon_share.svg +1 -1
- package/BookReader/images/icon_skip-ahead.svg +1 -1
- package/BookReader/images/icon_skip-back.svg +1 -1
- package/BookReader/images/icon_speaker.svg +1 -1
- package/BookReader/images/icon_speaker_open.svg +1 -1
- package/BookReader/images/icon_thumbnails.svg +1 -1
- package/BookReader/images/icon_toc.svg +1 -1
- package/BookReader/images/icon_two_pages.svg +1 -1
- package/BookReader/images/marker_chap-off.svg +1 -1
- package/BookReader/images/marker_chap-on.svg +1 -1
- package/BookReader/images/marker_srch-on.svg +1 -1
- 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 -1
- package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
- package/BookReader/plugins/plugin.autoplay.js +1 -1
- package/BookReader/plugins/plugin.autoplay.js.map +1 -1
- package/BookReader/plugins/plugin.chapters.js +25 -1
- 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 -1
- 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 -1
- package/BookReader/plugins/plugin.resume.js.map +1 -1
- package/BookReader/plugins/plugin.search.js +2 -1
- 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 -1
- 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 +1 -1
- 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 -1
- package/BookReader/plugins/plugin.url.js.map +1 -1
- package/BookReader/plugins/plugin.vendor-fullscreen.js +1 -1
- 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 +584 -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 +5 -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 +50 -28
- package/src/BookNavigator/search/search-results.js +24 -10
- 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 +544 -1078
- package/src/BookReaderPlugin.js +44 -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 -5
- 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 +16 -3
- package/src/css/_BRnav.scss +12 -42
- package/src/css/_BRpages.scss +170 -42
- package/src/css/_BRsearch.scss +68 -25
- 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 +1 -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 +151 -127
- package/src/plugins/search/utils.js +43 -0
- package/src/plugins/search/view.js +37 -59
- 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 → 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 +19 -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 -1450
- package/BookReader/bookreader-component-bundle.js.LICENSE.txt +0 -38
- package/BookReader/bookreader-component-bundle.js.map +0 -1
- package/BookReader/jquery-1.10.1.js +0 -2
- package/BookReader/jquery-1.10.1.js.LICENSE.txt +0 -24
- package/BookReader/plugins/plugin.menu_toggle.js +0 -2
- package/BookReader/plugins/plugin.menu_toggle.js.map +0 -1
- package/BookReader/plugins/plugin.mobile_nav.js +0 -2
- 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 -446
- package/src/BookNavigator/assets/book-loader.js +0 -27
- package/src/BookNavigator/br-fullscreen-mgr.js +0 -83
- package/src/BookNavigator/search/a-search-result.js +0 -55
- package/src/BookReader/DebugConsole.js +0 -54
- package/src/BookReaderComponent/BookReaderComponent.js +0 -112
- package/src/ItemNavigator/ItemNavigator.js +0 -376
- package/src/ItemNavigator/providers/sharing.js +0 -29
- 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/search/search-provider.test.js +0 -23
- package/tests/karma/BookNavigator/visual-adjustments.test.js +0 -201
- 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
@@ -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
|
-
})();
|
@@ -1,287 +0,0 @@
|
|
1
|
-
/* global BookReader */
|
2
|
-
/**
|
3
|
-
* Adds mobile navigation at responsive breakpoint
|
4
|
-
*/
|
5
|
-
|
6
|
-
import * as utils from '../BookReader/utils.js';
|
7
|
-
import 'jquery.mmenu/dist/js/jquery.mmenu.min.js';
|
8
|
-
import 'jquery.mmenu/dist/addons/navbars/jquery.mmenu.navbars.min.js';
|
9
|
-
|
10
|
-
//contains all filters and labels for checkboxs
|
11
|
-
const FILTERLIST = [
|
12
|
-
{
|
13
|
-
filter: "grayscale(100%)",
|
14
|
-
label: "Grayscale"
|
15
|
-
},
|
16
|
-
{
|
17
|
-
filter: "brightness(120%)",
|
18
|
-
label: "High brightness"
|
19
|
-
},
|
20
|
-
{
|
21
|
-
filter: "invert(100%)",
|
22
|
-
label: "Inverted (dark mode)"
|
23
|
-
},
|
24
|
-
{
|
25
|
-
filter: "contrast(120%)",
|
26
|
-
label: "High contrast"
|
27
|
-
},
|
28
|
-
]
|
29
|
-
|
30
|
-
jQuery.extend(BookReader.defaultOptions, {
|
31
|
-
enableMobileNav: true,
|
32
|
-
mobileNavTitle: 'Internet Archive',
|
33
|
-
mobileNavFullscreenOnly: false,
|
34
|
-
});
|
35
|
-
|
36
|
-
BookReader.prototype.setup = (function(super_) {
|
37
|
-
return function (options) {
|
38
|
-
super_.call(this, options);
|
39
|
-
|
40
|
-
this.enableMobileNav = options.enableMobileNav;
|
41
|
-
this.mobileNavTitle = options.mobileNavTitle;
|
42
|
-
this.mobileNavFullscreenOnly = options.mobileNavFullscreenOnly;
|
43
|
-
|
44
|
-
this.refs.$mmenu = null;
|
45
|
-
};
|
46
|
-
})(BookReader.prototype.setup);
|
47
|
-
|
48
|
-
|
49
|
-
// Extend initToolbar
|
50
|
-
BookReader.prototype.initToolbar = (function (super_) {
|
51
|
-
return function (mode, ui) {
|
52
|
-
let $mmenuEl;
|
53
|
-
if (this.enableMobileNav) {
|
54
|
-
const $drawerEl = this.buildMobileDrawerElement();
|
55
|
-
this.refs.$br.append($drawerEl);
|
56
|
-
|
57
|
-
// Render info into mobile info before mmenu
|
58
|
-
this.buildInfoDiv(this.$('.BRmobileInfo'));
|
59
|
-
this.buildShareDiv(this.$('.BRmobileShare'));
|
60
|
-
|
61
|
-
$mmenuEl = $drawerEl;
|
62
|
-
$mmenuEl.mmenu({
|
63
|
-
navbars: [
|
64
|
-
{ "position": "top" },
|
65
|
-
],
|
66
|
-
navbar: {
|
67
|
-
add: true,
|
68
|
-
title: this.mobileNavTitle,
|
69
|
-
titleLink: 'panel'
|
70
|
-
},
|
71
|
-
extensions: [ "panelshadow" ],
|
72
|
-
}, {
|
73
|
-
offCanvas: {
|
74
|
-
wrapPageIfNeeded: false,
|
75
|
-
zposition: 'next',
|
76
|
-
pageSelector: this.el,
|
77
|
-
}
|
78
|
-
});
|
79
|
-
|
80
|
-
const $BRpageviewField = $mmenuEl.find('.BRpageviewValue');
|
81
|
-
$mmenuEl.data('mmenu').bind('opened', () => {
|
82
|
-
// Update "Link to this page view" link
|
83
|
-
if ($BRpageviewField.length) {
|
84
|
-
$BRpageviewField.val(window.location.href);
|
85
|
-
}
|
86
|
-
});
|
87
|
-
|
88
|
-
//apply filters when checkboxs clicked
|
89
|
-
$drawerEl.find('.BRcheckbox-filters').click(() => applyFilters($drawerEl, this));
|
90
|
-
|
91
|
-
// Bind mobile switch buttons
|
92
|
-
$drawerEl.find('.DrawerLayoutButton.one_page_mode').click(
|
93
|
-
() => this.switchMode(this.constMode1up));
|
94
|
-
$drawerEl.find('.DrawerLayoutButton.two_page_mode').click(
|
95
|
-
() => this.switchMode(this.constMode2up));
|
96
|
-
$drawerEl.find('.DrawerLayoutButton.thumbnail_mode').click(
|
97
|
-
() => this.switchMode(this.constModeThumb));
|
98
|
-
|
99
|
-
if (this.mobileNavFullscreenOnly) {
|
100
|
-
$(document.body).addClass('BRbodyMobileNavEnabledFullscreen');
|
101
|
-
} else {
|
102
|
-
$(document.body).addClass('BRbodyMobileNavEnabled');
|
103
|
-
}
|
104
|
-
|
105
|
-
this.refs.$mmenu = $mmenuEl;
|
106
|
-
|
107
|
-
}
|
108
|
-
|
109
|
-
// Call the parent method at the end, because it binds events to DOM
|
110
|
-
super_.apply(this, arguments);
|
111
|
-
|
112
|
-
|
113
|
-
if (this.enableMobileNav) {
|
114
|
-
// Need to bind more, console after toolbar is initialized
|
115
|
-
this.$('.BRmobileHamburger').click(() => {
|
116
|
-
if ($mmenuEl.data('mmenu').getInstance().vars.opened) {
|
117
|
-
$mmenuEl.data('mmenu').close();
|
118
|
-
} else {
|
119
|
-
$mmenuEl.data('mmenu').open();
|
120
|
-
this.trigger("mobileNavOpen");
|
121
|
-
}
|
122
|
-
});
|
123
|
-
|
124
|
-
|
125
|
-
const closeMobileMenu = (e) => {
|
126
|
-
// Need to close the mobile menu to reset DOM & Style
|
127
|
-
// driven by menu plugin
|
128
|
-
const width = $( window ).width();
|
129
|
-
const mobileMenuIsOpen = $mmenuEl.data('mmenu').getInstance().vars.opened;
|
130
|
-
// $brBreakPointMobile: 800px;
|
131
|
-
if (mobileMenuIsOpen && (width >= 800)) {
|
132
|
-
$mmenuEl.data('mmenu').close ();
|
133
|
-
}
|
134
|
-
};
|
135
|
-
|
136
|
-
window.addEventListener('resize', utils.debounce(closeMobileMenu, 900));
|
137
|
-
}
|
138
|
-
};
|
139
|
-
})(BookReader.prototype.initToolbar);
|
140
|
-
|
141
|
-
|
142
|
-
BookReader.prototype.buildToolbarElement = (function (super_) {
|
143
|
-
return function () {
|
144
|
-
const $el = super_.call(this);
|
145
|
-
if (this.enableMobileNav) {
|
146
|
-
const escapedTitle = BookReader.util.escapeHTML(this.bookTitle);
|
147
|
-
const toolbar = `
|
148
|
-
<span class="BRmobileHamburgerWrapper">
|
149
|
-
<button class="BRmobileHamburger"></button>
|
150
|
-
<span class="BRtoolbarMobileTitle" title="${escapedTitle}">${escapedTitle}</span>
|
151
|
-
</span>
|
152
|
-
`;
|
153
|
-
$el
|
154
|
-
.addClass('responsive')
|
155
|
-
.prepend($(toolbar));
|
156
|
-
}
|
157
|
-
return $el;
|
158
|
-
};
|
159
|
-
})(BookReader.prototype.buildToolbarElement);
|
160
|
-
|
161
|
-
/**
|
162
|
-
* This method builds the html for the mobile drawer. It can be decorated to
|
163
|
-
* extend the default drawer.
|
164
|
-
* @return {jqueryElement}
|
165
|
-
*/
|
166
|
-
BookReader.prototype.buildMobileDrawerElement = function() {
|
167
|
-
let experimentalHtml = '';
|
168
|
-
//builds filters checkbox html
|
169
|
-
if (this.enableExperimentalControls) {
|
170
|
-
experimentalHtml = `
|
171
|
-
<p class="DrawerSettingsTitle">Visual Adjustment</p>
|
172
|
-
<div class="BRcheckbox-group-filters">
|
173
|
-
`;
|
174
|
-
FILTERLIST.forEach( (el, i) => {
|
175
|
-
const checkboxHtml = `
|
176
|
-
<input type="checkbox" class="BRcheckbox-filters" id="filter${i}">
|
177
|
-
<label for="filter${i}" class="BRcheckbox-label-filters">${el.label}</label><br>
|
178
|
-
|
179
|
-
`;
|
180
|
-
experimentalHtml = experimentalHtml.concat(checkboxHtml);
|
181
|
-
})
|
182
|
-
experimentalHtml = experimentalHtml.concat("</div>");
|
183
|
-
}
|
184
|
-
|
185
|
-
|
186
|
-
const settingsSection = `
|
187
|
-
<span>
|
188
|
-
<span class="DrawerIconWrapper">
|
189
|
-
<img class="DrawerIcon" src="${`${this.imagesBaseURL}icon_gear.svg`}" alt="settings-icon"/>
|
190
|
-
</span>
|
191
|
-
Settings
|
192
|
-
</span>
|
193
|
-
<div class=DrawerSettingsWrapper>
|
194
|
-
<div class="DrawerSettingsLayoutWrapper">
|
195
|
-
<button class="DrawerLayoutButton one_page_mode">
|
196
|
-
<img src="${this.imagesBaseURL}icon_one_page.svg" alt="Single Page"/>
|
197
|
-
<br>
|
198
|
-
One Page
|
199
|
-
</button>
|
200
|
-
<button class="DrawerLayoutButton two_page_mode TwoPagesButton">
|
201
|
-
<img src="${this.imagesBaseURL}icon_two_pages.svg" alt="Two Pages"/>
|
202
|
-
<br>
|
203
|
-
Two Pages
|
204
|
-
</button>
|
205
|
-
<button class="DrawerLayoutButton thumbnail_mode">
|
206
|
-
<img src="${this.imagesBaseURL}icon_thumbnails.svg" alt="Thumbnails"/>
|
207
|
-
<br>
|
208
|
-
Thumbnails
|
209
|
-
</button>
|
210
|
-
</div>
|
211
|
-
<br>
|
212
|
-
<div class="DrawerSettingsTitle">Zoom</div>
|
213
|
-
<button class='BRicon zoom_out'></button>
|
214
|
-
<button class='BRicon zoom_in'></button>
|
215
|
-
<br style="clear:both"><br><br>
|
216
|
-
${experimentalHtml}
|
217
|
-
</div>
|
218
|
-
`;
|
219
|
-
const moreInfo = `
|
220
|
-
<span>
|
221
|
-
<span class="DrawerIconWrapper ">
|
222
|
-
<img class="DrawerIcon" src="${this.imagesBaseURL}icon_info.svg" alt="info-icon"/>
|
223
|
-
</span>
|
224
|
-
About This Book
|
225
|
-
</span>
|
226
|
-
<div class="BRmobileInfo"></div>
|
227
|
-
`;
|
228
|
-
const share = `
|
229
|
-
<span>
|
230
|
-
<span class="DrawerIconWrapper">
|
231
|
-
<img class="DrawerIcon" src="${this.imagesBaseURL}icon_share.svg" alt="info-share"/>
|
232
|
-
</span>
|
233
|
-
Share This Book
|
234
|
-
</span>
|
235
|
-
<div class="BRmobileShare"></div>
|
236
|
-
`;
|
237
|
-
const navMenu = `
|
238
|
-
<nav id="BRmobileMenu" class="BRmobileMenu">
|
239
|
-
<ul>
|
240
|
-
<li class="BRmobileMenu__settings">${settingsSection}</li>
|
241
|
-
<li class="BRmobileMenu__moreInfoRow">${moreInfo}</li>
|
242
|
-
<li class="BRmobileMenu__share">${share}</li>
|
243
|
-
</ul>
|
244
|
-
</nav>
|
245
|
-
`;
|
246
|
-
|
247
|
-
const $el = $(navMenu);
|
248
|
-
return $el;
|
249
|
-
};
|
250
|
-
|
251
|
-
/**
|
252
|
-
* Mmenu moves itself out side of the root BookReader element, so we need to
|
253
|
-
* include it in the scoped $ function.
|
254
|
-
*/
|
255
|
-
BookReader.prototype.$ = (function (super_) {
|
256
|
-
return function (arg) {
|
257
|
-
let $results = super_.call(this, arg);
|
258
|
-
if (this.refs.$mmenu) {
|
259
|
-
$results = $results.add(this.refs.$mmenu.find(arg));
|
260
|
-
}
|
261
|
-
return $results;
|
262
|
-
};
|
263
|
-
})(BookReader.prototype.$);
|
264
|
-
|
265
|
-
/**
|
266
|
-
* Dynamically creates styles combining different filters for BookReaders imgs
|
267
|
-
* based on filters checkbox
|
268
|
-
*/
|
269
|
-
const applyFilters = (drawerEl, br) => {
|
270
|
-
let filterStr = "";
|
271
|
-
|
272
|
-
$('.BRcheckbox-filters').each(
|
273
|
-
(i, el) => {
|
274
|
-
br.refs.$br.removeClass("filter-applied");
|
275
|
-
if ($(el).is(':checked')) {
|
276
|
-
br.refs.$br.addClass($(el).attr("filter-applied"));
|
277
|
-
filterStr = filterStr + FILTERLIST[i].filter;
|
278
|
-
}
|
279
|
-
}
|
280
|
-
);
|
281
|
-
const filtersSheet = $("#filtersStyle")[0] || document.createElement('style');
|
282
|
-
filtersSheet.id = "filtersStyle";
|
283
|
-
filtersSheet.innerHTML = `.BRpagecontainer img {
|
284
|
-
filter: ${filterStr};
|
285
|
-
-webkit-filter: ${filterStr};}`;
|
286
|
-
document.body.appendChild(filtersSheet);
|
287
|
-
}
|