@internetarchive/bookreader 5.0.0-82 → 5.0.0-83

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 (95) hide show
  1. package/.eslintrc.js +9 -9
  2. package/.github/workflows/node.js.yml +9 -7
  3. package/BookReader/BookReader.css +2 -2
  4. package/BookReader/BookReader.js +1 -1
  5. package/BookReader/BookReader.js.map +1 -1
  6. package/BookReader/ia-bookreader-bundle.js +32 -32
  7. package/BookReader/ia-bookreader-bundle.js.map +1 -1
  8. package/BookReader/plugins/plugin.archive_analytics.js.map +1 -1
  9. package/BookReader/plugins/plugin.autoplay.js.map +1 -1
  10. package/BookReader/plugins/plugin.chapters.js +1 -1
  11. package/BookReader/plugins/plugin.chapters.js.map +1 -1
  12. package/BookReader/plugins/plugin.iframe.js.map +1 -1
  13. package/BookReader/plugins/plugin.iiif.js +1 -1
  14. package/BookReader/plugins/plugin.iiif.js.map +1 -1
  15. package/BookReader/plugins/plugin.search.js +1 -1
  16. package/BookReader/plugins/plugin.search.js.map +1 -1
  17. package/BookReader/plugins/plugin.text_selection.js +1 -1
  18. package/BookReader/plugins/plugin.text_selection.js.map +1 -1
  19. package/BookReader/plugins/plugin.tts.js +1 -1
  20. package/BookReader/plugins/plugin.tts.js.map +1 -1
  21. package/BookReader/plugins/plugin.url.js +1 -1
  22. package/BookReader/plugins/plugin.url.js.map +1 -1
  23. package/BookReader/plugins/plugin.vendor-fullscreen.js.map +1 -1
  24. package/BookReaderDemo/IADemoBr.js +10 -3
  25. package/BookReaderDemo/demo-iiif.html +1 -1
  26. package/BookReaderDemo/demo-internetarchive.html +1 -1
  27. package/CHANGELOG.md +12 -0
  28. package/babel.config.js +5 -5
  29. package/package.json +16 -18
  30. package/renovate.json +1 -1
  31. package/src/BookNavigator/book-navigator.js +8 -8
  32. package/src/BookNavigator/bookmarks/bookmarks-loginCTA.js +1 -1
  33. package/src/BookNavigator/bookmarks/bookmarks-provider.js +1 -1
  34. package/src/BookNavigator/bookmarks/ia-bookmarks.js +1 -1
  35. package/src/BookNavigator/downloads/downloads.js +1 -1
  36. package/src/BookNavigator/search/search-provider.js +2 -2
  37. package/src/BookNavigator/search/search-results.js +1 -1
  38. package/src/BookNavigator/sharing.js +1 -1
  39. package/src/BookNavigator/viewable-files.js +1 -1
  40. package/src/BookNavigator/visual-adjustments/visual-adjustments.js +3 -3
  41. package/src/BookReader/BookModel.js +1 -1
  42. package/src/BookReader/DragScrollable.js +2 -2
  43. package/src/BookReader/ModeSmoothZoom.js +5 -5
  44. package/src/BookReader/ModeThumb.js +2 -2
  45. package/src/BookReader/Navbar/Navbar.js +4 -4
  46. package/src/BookReader/ReduceSet.js +2 -2
  47. package/src/BookReader/Toolbar/Toolbar.js +4 -4
  48. package/src/BookReader/options.js +10 -10
  49. package/src/BookReader/utils/classes.js +1 -1
  50. package/src/BookReader.js +12 -12
  51. package/src/css/_BRicon.scss +8 -2
  52. package/src/ia-bookreader/ia-bookreader.js +1 -1
  53. package/src/plugins/plugin.archive_analytics.js +1 -1
  54. package/src/plugins/plugin.autoplay.js +2 -2
  55. package/src/plugins/plugin.chapters.js +3 -3
  56. package/src/plugins/plugin.iframe.js +1 -1
  57. package/src/plugins/plugin.iiif.js +9 -5
  58. package/src/plugins/plugin.text_selection.js +2 -2
  59. package/src/plugins/plugin.vendor-fullscreen.js +3 -3
  60. package/src/plugins/search/plugin.search.js +16 -11
  61. package/src/plugins/search/view.js +4 -1
  62. package/src/plugins/tts/AbstractTTSEngine.js +1 -1
  63. package/src/plugins/tts/FestivalTTSEngine.js +3 -3
  64. package/src/plugins/tts/PageChunk.js +2 -2
  65. package/src/plugins/tts/WebTTSEngine.js +1 -1
  66. package/src/plugins/tts/plugin.tts.js +1 -1
  67. package/src/plugins/tts/utils.js +1 -1
  68. package/src/plugins/url/plugin.url.js +1 -1
  69. package/tests/e2e/helpers/mockSearch.js +13 -13
  70. package/tests/jest/BookNavigator/book-navigator.test.js +27 -27
  71. package/tests/jest/BookNavigator/downloads/downloads-provider.test.js +5 -5
  72. package/tests/jest/BookNavigator/downloads/downloads.test.js +3 -3
  73. package/tests/jest/BookNavigator/search/search-provider.test.js +15 -15
  74. package/tests/jest/BookNavigator/search/search-results.test.js +1 -1
  75. package/tests/jest/BookNavigator/sharing/sharing-provider.test.js +5 -5
  76. package/tests/jest/BookNavigator/viewable-files/viewable-files-provider.test.js +8 -8
  77. package/tests/jest/BookReader/BookReaderPublicFunctions.test.js +3 -3
  78. package/tests/jest/BookReader/Mode1UpLit.test.js +2 -2
  79. package/tests/jest/BookReader/Mode2UpLit.test.js +3 -3
  80. package/tests/jest/BookReader/ModeSmoothZoom.test.js +4 -4
  81. package/tests/jest/BookReader/Navbar/Navbar.test.js +16 -16
  82. package/tests/jest/BookReader/Toolbar/Toolbar.test.js +1 -1
  83. package/tests/jest/BookReader.keyboard.test.js +1 -1
  84. package/tests/jest/BookReader.options.test.js +1 -1
  85. package/tests/jest/BookReader.test.js +4 -4
  86. package/tests/jest/plugins/plugin.chapters.test.js +3 -3
  87. package/tests/jest/plugins/plugin.iframe.test.js +2 -2
  88. package/tests/jest/plugins/plugin.text_selection.test.js +1 -1
  89. package/tests/jest/plugins/search/plugin.search.view.test.js +6 -6
  90. package/tests/jest/plugins/search/utils.js +3 -3
  91. package/tests/jest/plugins/tts/AbstractTTSEngine.test.js +1 -1
  92. package/tests/jest/plugins/tts/WebTTSEngine.test.js +2 -2
  93. package/tests/jest/plugins/url/UrlPlugin.test.js +2 -2
  94. package/tests/jest/plugins/url/plugin.url.test.js +6 -6
  95. package/webpack.config.js +6 -6
@@ -5,7 +5,7 @@
5
5
  <meta name="apple-mobile-web-app-capable" content="yes">
6
6
 
7
7
  <!-- WC dependencies -->
8
- <script type="text/javascript" src="https://polyfill.io/v3/polyfill.min.js?features=es2015%2Ces5%2CglobalThis"></script>
8
+ <script type="text/javascript" src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es2015%2Ces5%2CglobalThis"></script>
9
9
  <script type="text/javascript" src="https://unpkg.com/lit@2.1.2/polyfill-support.js"></script>
10
10
  <script type="text/javascript" src="https://unpkg.com/@webcomponents/webcomponentsjs@2.2.10/webcomponents-bundle.js"></script>
11
11
 
@@ -8,7 +8,7 @@
8
8
  <meta name="apple-mobile-web-app-capable" content="yes">
9
9
 
10
10
  <!-- WC dependencies -->
11
- <script type="text/javascript" src="https://polyfill.io/v3/polyfill.min.js?features=es2015%2Ces5%2CglobalThis"></script>
11
+ <script type="text/javascript" src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es2015%2Ces5%2CglobalThis"></script>
12
12
  <script type="text/javascript" src="https://unpkg.com/lit@2.1.2/polyfill-support.js"></script>
13
13
  <script type="text/javascript" src="https://unpkg.com/@webcomponents/webcomponentsjs@2.2.10/webcomponents-bundle.js"></script>
14
14
 
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ # 5.0.0-83
2
+ - Fix: Fix typo in search-results.js @sahalbelam
3
+ - Dev: Bump cache action to v4 @williamtheaker
4
+ - Fix: Fix toolbar requiring SearchView.init having already been called @cdrini
5
+ - Dev: Replace deprecated codecov npm package with github action @cdrini
6
+ - Dev: Add eslint trailing comma rule @cdrini
7
+ - Fix: Fix IIIF plugin missing last page + error when metadata unspecified @glorieux-f
8
+ - Fix: Remove polyfill.io from demo files @cdrini
9
+ - Dev: Update build dependencies @cdrini
10
+ - Dev: Update some dev deps @cdrini
11
+ - Fix: Switch to new Thorium URL @rebecca-shoptaw
12
+
1
13
  # 5.0.0-82
2
14
  - Feature: New option to control unviewable page image: `unviewablePageURI` @cdrini
3
15
 
package/babel.config.js CHANGED
@@ -6,15 +6,15 @@ module.exports = {
6
6
  process.env.NODE_ENV == "development" ? { targets: "last 2 Chrome versions, last 2 Firefox versions, last 2 Safari versions, last 2 Edge versions" } : {
7
7
  targets: "> 2%, ie 11, edge 14, samsung > 9, OperaMini all, UCAndroid > 12, Safari >= 9",
8
8
  useBuiltIns: "usage",
9
- corejs: 3
10
- }
11
- ]
9
+ corejs: 3,
10
+ },
11
+ ],
12
12
  ],
13
13
  plugins: [
14
14
  ["@babel/plugin-proposal-decorators", {
15
15
  version: "2018-09",
16
- decoratorsBeforeExport: true
16
+ decoratorsBeforeExport: true,
17
17
  }],
18
18
  ["@babel/plugin-proposal-class-properties"],
19
- ]
19
+ ],
20
20
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@internetarchive/bookreader",
3
- "version": "5.0.0-82",
3
+ "version": "5.0.0-83",
4
4
  "description": "The Internet Archive BookReader.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -40,21 +40,20 @@
40
40
  "lit": "^2.5.0"
41
41
  },
42
42
  "devDependencies": {
43
- "@babel/core": "7.24.7",
44
- "@babel/eslint-parser": "7.24.7",
43
+ "@babel/core": "7.25.8",
44
+ "@babel/eslint-parser": "7.25.7",
45
45
  "@babel/plugin-proposal-class-properties": "7.18.6",
46
- "@babel/plugin-proposal-decorators": "7.24.7",
47
- "@babel/preset-env": "7.24.7",
46
+ "@babel/plugin-proposal-decorators": "7.25.7",
47
+ "@babel/preset-env": "7.25.8",
48
48
  "@iiif/presentation-2": "^1.0.4",
49
49
  "@iiif/presentation-3": "^2.1.3",
50
50
  "@open-wc/testing-helpers": "3.0.1",
51
- "@types/jest": "29.5.12",
51
+ "@types/jest": "29.5.13",
52
52
  "@webcomponents/webcomponentsjs": "^2.6.0",
53
- "babel-loader": "9.1.3",
54
- "codecov": "^3.8.3",
55
- "concurrently": "8.2.2",
56
- "core-js": "3.37.1",
57
- "cpx2": "4.2.3",
53
+ "babel-loader": "9.2.1",
54
+ "concurrently": "9.0.1",
55
+ "core-js": "3.38.1",
56
+ "cpx2": "8.0.0",
58
57
  "eslint": "^7.32.0",
59
58
  "eslint-plugin-no-jquery": "^2.7.0",
60
59
  "eslint-plugin-testcafe": "^0.2.1",
@@ -70,13 +69,13 @@
70
69
  "jquery.browser": "0.1.0",
71
70
  "live-server": "1.2.2",
72
71
  "regenerator-runtime": "0.14.1",
73
- "sass": "1.77.6",
74
- "sinon": "18.0.0",
72
+ "sass": "1.79.5",
73
+ "sinon": "19.0.2",
75
74
  "soundmanager2": "2.97.20170602",
76
75
  "svgo": "3.3.2",
77
- "testcafe": "3.6.1",
76
+ "testcafe": "3.6.2",
78
77
  "testcafe-browser-provider-browserstack": "^1.13.2-alpha.1",
79
- "webpack": "5.92.0",
78
+ "webpack": "5.95.0",
80
79
  "webpack-cli": "5.1.4"
81
80
  },
82
81
  "jest": {
@@ -118,9 +117,8 @@
118
117
  "test:e2e": "npm run build && npx testcafe",
119
118
  "test:e2e:dev": "npx testcafe --live --dev",
120
119
  "DOCS:update:test-deps": "If CI succeeds, these should be good to update",
121
- "update:test-deps": "npm i @babel/eslint-parser@latest @open-wc/testing-helpers@latest @types/jest@latest codecov@latest eslint@7 eslint-plugin-testcafe@latest jest@latest sinon@latest testcafe@latest",
120
+ "update:test-deps": "npm i @babel/eslint-parser@latest @open-wc/testing-helpers@latest @types/jest@latest eslint@7 eslint-plugin-testcafe@latest jest@latest sinon@latest testcafe@latest",
122
121
  "DOCS:update:build-deps": "These can cause strange changes, so do an npm run build + check file size (git diff --stat), and check the site is as expected",
123
- "update:build-deps": "npm i @babel/core@latest @babel/preset-env@latest @babel/plugin-proposal-class-properties@latest @babel/plugin-proposal-decorators@latest babel-loader@latest core-js@latest regenerator-runtime@latest sass@latest svgo@latest webpack@latest webpack-cli@latest",
124
- "codecov": "npx codecov"
122
+ "update:build-deps": "npm i @babel/core@latest @babel/preset-env@latest @babel/plugin-proposal-class-properties@latest @babel/plugin-proposal-decorators@latest babel-loader@latest core-js@latest regenerator-runtime@latest sass@latest svgo@latest webpack@latest webpack-cli@latest"
125
123
  }
126
124
  }
package/renovate.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "@babel/eslint-parser",
10
10
  "@open-wc/testing-helpers",
11
11
  "@types/jest",
12
- "codecov",
12
+ "codecov/codecov-action",
13
13
  "eslint",
14
14
  "eslint-plugin-no-jquery",
15
15
  "eslint-plugin-testcafe",
@@ -71,14 +71,14 @@ export class BookNavigator extends LitElement {
71
71
  'volumes',
72
72
  'chapters',
73
73
  'search',
74
- 'bookmarks'
74
+ 'bookmarks',
75
75
  ];
76
76
  }
77
77
 
78
78
  disconnectedCallback() {
79
79
  this.sharedObserver.removeObserver({
80
80
  target: this.mainBRContainer,
81
- handler: this.sharedObserverHandler
81
+ handler: this.sharedObserverHandler,
82
82
  });
83
83
  }
84
84
 
@@ -148,7 +148,7 @@ export class BookNavigator extends LitElement {
148
148
  item: this.itemMD,
149
149
  signedIn: this.signedIn,
150
150
  isAdmin: this.isAdmin,
151
- onProviderChange: () => {}
151
+ onProviderChange: () => {},
152
152
  };
153
153
  }
154
154
 
@@ -220,7 +220,7 @@ export class BookNavigator extends LitElement {
220
220
  const method = Object.keys(bookmarks).length ? 'add' : 'remove';
221
221
  this[`${method}MenuShortcut`]('bookmarks');
222
222
  this.updateMenuContents();
223
- }
223
+ },
224
224
  });
225
225
  }
226
226
 
@@ -240,7 +240,7 @@ export class BookNavigator extends LitElement {
240
240
  this.updateSideMenu('volumes', 'open');
241
241
  });
242
242
  }
243
- }
243
+ },
244
244
  });
245
245
  }
246
246
 
@@ -311,7 +311,7 @@ export class BookNavigator extends LitElement {
311
311
  */
312
312
  updateMenuContents() {
313
313
  const {
314
- search, downloads, visualAdjustments, share, bookmarks, volumes, chapters
314
+ search, downloads, visualAdjustments, share, bookmarks, volumes, chapters,
315
315
  } = this.menuProviders;
316
316
  const availableMenus = [volumes, chapters, search, bookmarks, visualAdjustments, share].filter((menu) => !!menu);
317
317
 
@@ -460,7 +460,7 @@ export class BookNavigator extends LitElement {
460
460
  window.archive_analytics?.send_event(
461
461
  'BookReader',
462
462
  `contextmenu-${this.bookIsRestricted ? 'restricted' : 'unrestricted'}`,
463
- e.target?.classList?.value
463
+ e.target?.classList?.value,
464
464
  );
465
465
  if (!this.bookIsRestricted) {
466
466
  return;
@@ -479,7 +479,7 @@ export class BookNavigator extends LitElement {
479
479
  this.sharedObserverHandler = { handleResize: this.handleResize.bind(this) };
480
480
  this.sharedObserver?.addObserver({
481
481
  target: this.mainBRContainer,
482
- handler: this.sharedObserverHandler
482
+ handler: this.sharedObserverHandler,
483
483
  });
484
484
  }
485
485
 
@@ -4,7 +4,7 @@ import buttonStyles from '../assets/button-base.js';
4
4
  class BookmarksLogin extends LitElement {
5
5
  static get properties() {
6
6
  return {
7
- url: { type: String }
7
+ url: { type: String },
8
8
  };
9
9
  }
10
10
 
@@ -27,7 +27,7 @@ export default class BookmarksProvider {
27
27
  this.component.modal = modal;
28
28
  this.component.loginOptions = {
29
29
  loginClicked: this.bookmarksLoginClicked,
30
- loginUrl
30
+ loginUrl,
31
31
  };
32
32
  this.bindEvents();
33
33
 
@@ -62,7 +62,7 @@ class IABookmarks extends LitElement {
62
62
  editedBookmark: { type: Object },
63
63
  deleteModalConfig: { type: Object},
64
64
  modal: { attribute: false },
65
- loginOptions: { type: Object, attribute: false }
65
+ loginOptions: { type: Object, attribute: false },
66
66
  };
67
67
  }
68
68
 
@@ -75,7 +75,7 @@ export class IABookDownloads extends LitElement {
75
75
  <ul>
76
76
  <li><a href="https://librarysimplified.org/simplye/" rel="noopener noreferrer nofollow" target="_blank">Install SimplyE</a></li>
77
77
  <li><a href="https://www.demarque.com/en-aldiko" rel="noopener noreferrer nofollow" target="_blank">Install Aldiko</a></li>
78
- <li><a href="https://www.edrlab.org/software/thorium-reader/" rel="noopener noreferrer nofollow" target="_blank">Install Thorium</a></li>
78
+ <li><a href="https://thorium.edrlab.org/" rel="noopener noreferrer nofollow" target="_blank">Install Thorium</a></li>
79
79
  </ul>
80
80
  `;
81
81
  }
@@ -13,7 +13,7 @@ let searchState = {
13
13
  export default class SearchProvider {
14
14
  constructor({
15
15
  onProviderChange,
16
- bookreader
16
+ bookreader,
17
17
  }) {
18
18
  /* search menu events */
19
19
  this.onBookSearchInitiated = this.onBookSearchInitiated.bind(this);
@@ -72,7 +72,7 @@ export default class SearchProvider {
72
72
  errorMessage: '',
73
73
  };
74
74
  const updateMenuFor = {
75
- searchCanceled: true
75
+ searchCanceled: true,
76
76
  };
77
77
  this.updateMenu(updateMenuFor);
78
78
 
@@ -28,7 +28,7 @@ export class IABookSearchResults extends LitElement {
28
28
  this.query = '';
29
29
  this.queryInProgress = false;
30
30
  this.renderHeader = false;
31
- this.renderSearchAllFields = false;
31
+ this.renderSearchAllFiles = false;
32
32
  this.displayResultImages = false;
33
33
  this.errorMessage = '';
34
34
 
@@ -6,7 +6,7 @@ export default class SharingProvider {
6
6
  constructor({
7
7
  item,
8
8
  baseHost,
9
- bookreader
9
+ bookreader,
10
10
  }) {
11
11
  const { identifier, creator, title } = item?.metadata;
12
12
  const creatorToUse = Array.isArray(creator) ? creator[0] : creator;
@@ -9,7 +9,7 @@ import '@internetarchive/ia-item-navigator/dist/src/menus/viewable-files';
9
9
  const sortTypes = {
10
10
  title_asc: 'title_asc',
11
11
  title_desc: 'title_desc',
12
- default: 'default'
12
+ default: 'default',
13
13
  };
14
14
  export default class ViewableFilesProvider {
15
15
  /**
@@ -43,7 +43,7 @@ export class IABookVisualAdjustments extends LitElement {
43
43
  get activeOptions() {
44
44
  return this.options.reduce(
45
45
  (results, option) => (option.active ? [...results, option.id] : results),
46
- []
46
+ [],
47
47
  );
48
48
  }
49
49
 
@@ -71,7 +71,7 @@ export class IABookVisualAdjustments extends LitElement {
71
71
  bubbles: true,
72
72
  composed: true,
73
73
  detail,
74
- })
74
+ }),
75
75
  );
76
76
  }
77
77
 
@@ -93,7 +93,7 @@ export class IABookVisualAdjustments extends LitElement {
93
93
  changeActiveStateFor(optionName) {
94
94
  const updatedOptions = [...this.options];
95
95
  const checkedOption = updatedOptions.find(
96
- (option) => option.id === optionName
96
+ (option) => option.id === optionName,
97
97
  );
98
98
  checkedOption.active = !checkedOption.active;
99
99
  this.options = updatedOptions;
@@ -45,7 +45,7 @@ export class BookModel {
45
45
 
46
46
  this._medianPageSize = {
47
47
  width: widths[Math.floor(widths.length / 2)],
48
- height: heights[Math.floor(heights.length / 2)]
48
+ height: heights[Math.floor(heights.length / 2)],
49
49
  };
50
50
  return this._medianPageSize;
51
51
  }
@@ -179,7 +179,7 @@ export class DragScrollable {
179
179
  // How much did the mouse move?
180
180
  const delta = {
181
181
  left: (lt.left - this.lastCoord.left),
182
- top: (lt.top - this.lastCoord.top)
182
+ top: (lt.top - this.lastCoord.top),
183
183
  };
184
184
 
185
185
  const scrollTarget = this.settings.scrollWindow ? $(window) : this.handling_element;
@@ -218,7 +218,7 @@ export class DragScrollable {
218
218
  // How much did the mouse move total?
219
219
  const delta = {
220
220
  left: Math.abs(this.lastCoord.left - this.firstCoord.left),
221
- top: Math.abs(this.lastCoord.top - this.firstCoord.top)
221
+ top: Math.abs(this.lastCoord.top - this.firstCoord.top),
222
222
  };
223
223
  const distance = Math.max(delta.left, delta.top);
224
224
 
@@ -65,7 +65,7 @@ export class ModeSmoothZoom {
65
65
  listeners: {
66
66
  start: this._pinchStart,
67
67
  end: this._pinchEnd,
68
- }
68
+ },
69
69
  });
70
70
  if (isSamsungInternet()) {
71
71
  // Samsung internet pinch-zoom will not work unless we disable
@@ -79,7 +79,7 @@ export class ModeSmoothZoom {
79
79
  minSpeed: 100,
80
80
  allowResume: true,
81
81
  },
82
- listeners: { move: this._dragMove }
82
+ listeners: { move: this._dragMove },
83
83
  });
84
84
  }
85
85
 
@@ -134,7 +134,7 @@ export class ModeSmoothZoom {
134
134
  start: this._pinchStart,
135
135
  move: this._pinchMove,
136
136
  end: this._pinchEnd,
137
- }
137
+ },
138
138
  });
139
139
  }
140
140
 
@@ -159,7 +159,7 @@ export class ModeSmoothZoom {
159
159
  listeners: {
160
160
  start: this._pinchStart,
161
161
  end: this._pinchEnd,
162
- }
162
+ },
163
163
  });
164
164
  // Want this to happen after the pinchMoveFrame,
165
165
  // if one is in progress; otherwise setting oldScale
@@ -185,7 +185,7 @@ export class ModeSmoothZoom {
185
185
  this.mode.$container.style.overflow = "hidden";
186
186
  this.pinchMoveFramePromiseRes = null;
187
187
  this.pinchMoveFramePromise = new Promise(
188
- (res) => (this.pinchMoveFramePromiseRes = res)
188
+ (res) => (this.pinchMoveFramePromiseRes = res),
189
189
  );
190
190
  this.updateScaleCenter({
191
191
  clientX: this.lastEvent.clientX,
@@ -252,7 +252,7 @@ export class ModeThumb {
252
252
  this.br.thumbColumns = clamp(
253
253
  this.br.thumbColumns,
254
254
  this.br.options.thumbMinZoomColumns,
255
- this.br.options.thumbMaxZoomColumns
255
+ this.br.options.thumbMaxZoomColumns,
256
256
  );
257
257
 
258
258
  if (this.br.thumbColumns != oldColumns) {
@@ -280,7 +280,7 @@ export class ModeThumb {
280
280
  this.br.refs.$brContainer.empty();
281
281
  this.br.refs.$brContainer.css({
282
282
  overflowY: 'scroll',
283
- overflowX: 'auto'
283
+ overflowX: 'auto',
284
284
  });
285
285
 
286
286
  this.br.refs.$brPageViewEl = $("<div class='BRpageview'></div>");
@@ -22,11 +22,11 @@ export class Navbar {
22
22
 
23
23
  /** @type {Object} controls will be switch over "this.maximumControls" */
24
24
  this.minimumControls = [
25
- 'viewmode'
25
+ 'viewmode',
26
26
  ];
27
27
  /** @type {Object} controls will be switch over "this.minimumControls" */
28
28
  this.maximumControls = [
29
- 'book_left', 'book_right', 'zoom_in', 'zoom_out', 'onepg', 'twopg', 'thumb'
29
+ 'book_left', 'book_right', 'zoom_in', 'zoom_out', 'onepg', 'twopg', 'thumb',
30
30
  ];
31
31
 
32
32
  this.updateNavIndexThrottled = throttle(this.updateNavIndex.bind(this), 250, false);
@@ -115,7 +115,7 @@ export class Navbar {
115
115
  this.updateViewModeButton(
116
116
  $button,
117
117
  currentViewModeButton.className,
118
- currentViewModeButton.title
118
+ currentViewModeButton.title,
119
119
  );
120
120
  });
121
121
  }
@@ -218,7 +218,7 @@ export class Navbar {
218
218
  min: 0,
219
219
  max: br.book.getNumLeafs() - 1,
220
220
  value: br.currentIndex(),
221
- range: "min"
221
+ range: "min",
222
222
  });
223
223
 
224
224
  $slider.on('slide', (event, ui) => {
@@ -7,7 +7,7 @@
7
7
  /** @type {ReduceSet} */
8
8
  export const IntegerReduceSet = {
9
9
  floor: Math.floor,
10
- decr(n) { return n - 1; }
10
+ decr(n) { return n - 1; },
11
11
  };
12
12
 
13
13
  /** @type {ReduceSet} */
@@ -17,7 +17,7 @@ export const Pow2ReduceSet = {
17
17
  },
18
18
  decr(n) {
19
19
  return 2 ** (Math.log2(n) - 1);
20
- }
20
+ },
21
21
  };
22
22
 
23
23
  export const NAMED_REDUCE_SETS = {
@@ -53,7 +53,7 @@ export class Toolbar {
53
53
  $('<a>')
54
54
  .attr({href: br.bookUrl, title: br.bookUrlTitle})
55
55
  .addClass('BRreturn')
56
- .html(br.bookUrlText || br.bookTitle)
56
+ .html(br.bookUrlText || br.bookTitle),
57
57
  );
58
58
  } else if (br.bookTitle) {
59
59
  $titleSectionEl.append(br.bookUrlText || br.bookTitle);
@@ -113,7 +113,7 @@ export class Toolbar {
113
113
  onLoad: () => {
114
114
  br.trigger(EVENTS.stop);
115
115
  br.$('.BRpageviewValue').val(window.location.href);
116
- }
116
+ },
117
117
  });
118
118
  br.$('.info').colorbox({
119
119
  inline: true,
@@ -121,7 +121,7 @@ export class Toolbar {
121
121
  href: br.$('.BRinfo'),
122
122
  onLoad: () => {
123
123
  br.trigger(EVENTS.stop);
124
- }
124
+ },
125
125
  });
126
126
  }
127
127
 
@@ -213,7 +213,7 @@ export class Toolbar {
213
213
  $form.find('.twitter-share-button').on("click", () => {
214
214
  const params = $.param({
215
215
  url: this._getSocialShareUrl(),
216
- text: br.bookTitle
216
+ text: br.bookTitle,
217
217
  });
218
218
  const url = 'https://twitter.com/intent/tweet?' + params;
219
219
  createPopup(url, 600, 400, 'Share');
@@ -65,7 +65,7 @@ export const DEFAULT_OPTIONS = {
65
65
  {reduce: 2, autofit: null},
66
66
  {reduce: 3, autofit: null},
67
67
  {reduce: 4, autofit: null},
68
- {reduce: 6, autofit: null}
68
+ {reduce: 6, autofit: null},
69
69
  ],
70
70
 
71
71
  /** Object to hold parameters related to 1up mode */
@@ -83,7 +83,7 @@ export const DEFAULT_OPTIONS = {
83
83
  /** Width of book spine $$$ consider sizing based on book length */
84
84
  bookSpineDivWidth: 64,
85
85
  /** @type {AutoFitValues} */
86
- autofit: 'auto'
86
+ autofit: 'auto',
87
87
  },
88
88
 
89
89
  onePageMinBreakpoint: 800,
@@ -225,31 +225,31 @@ export const DEFAULT_OPTIONS = {
225
225
  visible: true,
226
226
  label: 'Flip left',
227
227
  className: 'book_left',
228
- iconClassName: 'left-arrow'
228
+ iconClassName: 'left-arrow',
229
229
  },
230
230
  bookRight: {
231
231
  visible: true,
232
232
  label: 'Flip right',
233
233
  className: 'book_right',
234
- iconClassName: 'left-arrow hflip'
234
+ iconClassName: 'left-arrow hflip',
235
235
  },
236
236
  onePage: {
237
237
  visible: true,
238
238
  label: 'One-page view',
239
239
  className: 'onepg',
240
- iconClassName: 'onepg'
240
+ iconClassName: 'onepg',
241
241
  },
242
242
  twoPage: {
243
243
  visible: true,
244
244
  label: 'Two-page view',
245
245
  className: 'twopg',
246
- iconClassName: 'twopg'
246
+ iconClassName: 'twopg',
247
247
  },
248
248
  thumbnail: {
249
249
  visible: true,
250
250
  label: 'Thumbnail view',
251
251
  className: 'thumb',
252
- iconClassName: 'thumb'
252
+ iconClassName: 'thumb',
253
253
  },
254
254
  viewmode: {
255
255
  visible: true,
@@ -260,19 +260,19 @@ export const DEFAULT_OPTIONS = {
260
260
  visible: true,
261
261
  label: 'Zoom out',
262
262
  className: 'zoom_out',
263
- iconClassName: 'magnify'
263
+ iconClassName: 'magnify',
264
264
  },
265
265
  zoomIn: {
266
266
  visible: true,
267
267
  label: 'Zoom in',
268
268
  className: 'zoom_in',
269
- iconClassName: 'magnify plus'
269
+ iconClassName: 'magnify plus',
270
270
  },
271
271
  fullScreen: {
272
272
  visible: true,
273
273
  label: 'Toggle fullscreen',
274
274
  className: 'full',
275
- iconClassName: 'fullscreen'
275
+ iconClassName: 'fullscreen',
276
276
  },
277
277
  },
278
278
 
@@ -31,6 +31,6 @@ export function exposeOverrideable(FromClass, fromMethod, fromTransform, ToClass
31
31
  return overrideFn.apply(newThis, arguments);
32
32
  };
33
33
  wrapper = overrideFn;
34
- }
34
+ },
35
35
  });
36
36
  }