pdfjs-dist 2.2.228 → 2.6.347

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.

Potentially problematic release.


This version of pdfjs-dist might be problematic. Click here for more details.

Files changed (229) hide show
  1. package/README.md +4 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +8816 -19300
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +22 -1
  6. package/build/pdf.worker.entry.js +5 -3
  7. package/build/pdf.worker.js +27185 -35746
  8. package/build/pdf.worker.js.map +1 -1
  9. package/build/pdf.worker.min.js +22 -1
  10. package/es5/build/pdf.js +26665 -0
  11. package/es5/build/pdf.js.map +1 -0
  12. package/es5/build/pdf.min.js +22 -0
  13. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  14. package/es5/build/pdf.worker.js +61231 -0
  15. package/es5/build/pdf.worker.js.map +1 -0
  16. package/es5/build/pdf.worker.min.js +22 -0
  17. package/es5/image_decoders/pdf.image_decoders.js +12529 -0
  18. package/es5/image_decoders/pdf.image_decoders.js.map +1 -0
  19. package/es5/image_decoders/pdf.image_decoders.min.js +22 -0
  20. package/es5/web/images/annotation-check.svg +11 -0
  21. package/es5/web/images/annotation-comment.svg +16 -0
  22. package/es5/web/images/annotation-help.svg +26 -0
  23. package/es5/web/images/annotation-insert.svg +10 -0
  24. package/es5/web/images/annotation-key.svg +11 -0
  25. package/es5/web/images/annotation-newparagraph.svg +11 -0
  26. package/es5/web/images/annotation-noicon.svg +7 -0
  27. package/es5/web/images/annotation-note.svg +42 -0
  28. package/es5/web/images/annotation-paragraph.svg +16 -0
  29. package/es5/web/images/loading-icon.gif +0 -0
  30. package/es5/web/images/shadow.png +0 -0
  31. package/es5/web/pdf_viewer.css +406 -0
  32. package/es5/web/pdf_viewer.js +7886 -0
  33. package/es5/web/pdf_viewer.js.map +1 -0
  34. package/image_decoders/pdf.image_decoders.js +1498 -4832
  35. package/image_decoders/pdf.image_decoders.js.map +1 -1
  36. package/image_decoders/pdf.image_decoders.min.js +22 -1
  37. package/lib/README.md +7 -0
  38. package/lib/core/annotation.js +1144 -927
  39. package/lib/core/arithmetic_decoder.js +81 -97
  40. package/lib/core/bidi.js +54 -46
  41. package/lib/core/ccitt.js +88 -81
  42. package/lib/core/ccitt_stream.js +15 -14
  43. package/lib/core/cff_parser.js +747 -716
  44. package/lib/core/charsets.js +4 -4
  45. package/lib/core/chunked_stream.js +462 -553
  46. package/lib/core/cmap.js +231 -277
  47. package/lib/core/colorspace.js +715 -857
  48. package/lib/core/core_utils.js +57 -52
  49. package/lib/core/crypto.js +416 -437
  50. package/lib/core/document.js +629 -670
  51. package/lib/core/encodings.js +15 -15
  52. package/lib/core/evaluator.js +3229 -2800
  53. package/lib/core/font_renderer.js +135 -178
  54. package/lib/core/fonts.js +602 -534
  55. package/lib/core/function.js +355 -279
  56. package/lib/core/glyphlist.js +4527 -4526
  57. package/lib/core/image.js +442 -439
  58. package/lib/core/image_utils.js +221 -61
  59. package/lib/core/jbig2.js +325 -316
  60. package/lib/core/jbig2_stream.js +18 -17
  61. package/lib/core/jpeg_stream.js +21 -26
  62. package/lib/core/jpg.js +289 -233
  63. package/lib/core/jpx.js +161 -143
  64. package/lib/core/jpx_stream.js +28 -28
  65. package/lib/core/metrics.js +2928 -2928
  66. package/lib/core/murmurhash3.js +87 -102
  67. package/lib/core/obj.js +1343 -1300
  68. package/lib/core/operator_list.js +90 -67
  69. package/lib/core/parser.js +990 -987
  70. package/lib/core/pattern.js +105 -77
  71. package/lib/core/pdf_manager.js +149 -316
  72. package/lib/core/primitives.js +156 -104
  73. package/lib/core/ps_parser.js +175 -214
  74. package/lib/core/standard_fonts.js +237 -236
  75. package/lib/core/stream.js +94 -74
  76. package/lib/core/type1_parser.js +89 -69
  77. package/lib/core/unicode.js +1654 -1654
  78. package/lib/core/worker.js +275 -290
  79. package/lib/core/worker_stream.js +101 -210
  80. package/lib/core/writer.js +242 -0
  81. package/lib/display/annotation_layer.js +772 -1041
  82. package/lib/display/annotation_storage.js +89 -0
  83. package/lib/display/api.js +1575 -1868
  84. package/lib/display/api_compatibility.js +12 -17
  85. package/lib/display/canvas.js +370 -222
  86. package/lib/display/content_disposition.js +40 -59
  87. package/lib/display/display_utils.js +341 -536
  88. package/lib/display/fetch_stream.js +188 -304
  89. package/lib/display/font_loader.js +282 -414
  90. package/lib/display/metadata.js +81 -99
  91. package/lib/display/network.js +362 -511
  92. package/lib/display/network_utils.js +25 -18
  93. package/lib/display/node_stream.js +283 -465
  94. package/lib/display/node_utils.js +87 -0
  95. package/lib/display/optional_content_config.js +184 -0
  96. package/lib/display/pattern_helper.js +93 -44
  97. package/lib/display/svg.js +1163 -1401
  98. package/lib/display/text_layer.js +154 -137
  99. package/lib/display/transport_stream.js +237 -375
  100. package/lib/display/webgl.js +70 -83
  101. package/lib/display/worker_options.js +3 -3
  102. package/lib/display/xml_parser.js +303 -392
  103. package/lib/examples/node/domstubs.js +37 -37
  104. package/lib/pdf.js +220 -58
  105. package/lib/pdf.worker.js +14 -6
  106. package/lib/shared/compatibility.js +3 -246
  107. package/lib/shared/is_node.js +7 -6
  108. package/lib/shared/message_handler.js +327 -332
  109. package/lib/shared/util.js +271 -306
  110. package/lib/test/unit/annotation_spec.js +1902 -763
  111. package/lib/test/unit/annotation_storage_spec.js +83 -0
  112. package/lib/test/unit/api_spec.js +790 -592
  113. package/lib/test/unit/bidi_spec.js +7 -7
  114. package/lib/test/unit/cff_parser_spec.js +73 -72
  115. package/lib/test/unit/clitests_helper.js +7 -9
  116. package/lib/test/unit/cmap_spec.js +86 -88
  117. package/lib/test/unit/colorspace_spec.js +346 -154
  118. package/lib/test/unit/core_utils_spec.js +125 -105
  119. package/lib/test/unit/crypto_spec.js +232 -185
  120. package/lib/test/unit/custom_spec.js +150 -24
  121. package/lib/test/unit/display_svg_spec.js +34 -39
  122. package/lib/test/unit/display_utils_spec.js +139 -149
  123. package/lib/test/unit/document_spec.js +128 -17
  124. package/lib/test/unit/encodings_spec.js +12 -34
  125. package/lib/test/unit/evaluator_spec.js +112 -91
  126. package/lib/test/unit/fetch_stream_spec.js +31 -29
  127. package/lib/test/unit/function_spec.js +206 -204
  128. package/lib/test/unit/jasmine-boot.js +48 -32
  129. package/lib/test/unit/message_handler_spec.js +173 -159
  130. package/lib/test/unit/metadata_spec.js +71 -71
  131. package/lib/test/unit/murmurhash3_spec.js +12 -12
  132. package/lib/test/unit/network_spec.js +13 -11
  133. package/lib/test/unit/network_utils_spec.js +158 -144
  134. package/lib/test/unit/node_stream_spec.js +76 -90
  135. package/lib/test/unit/parser_spec.js +108 -114
  136. package/lib/test/unit/pdf_find_controller_spec.js +55 -86
  137. package/lib/test/unit/pdf_find_utils_spec.js +32 -32
  138. package/lib/test/unit/pdf_history_spec.js +32 -32
  139. package/lib/test/unit/primitives_spec.js +337 -156
  140. package/lib/test/unit/stream_spec.js +16 -14
  141. package/lib/test/unit/test_utils.js +91 -304
  142. package/lib/test/unit/testreporter.js +33 -22
  143. package/lib/test/unit/type1_parser_spec.js +42 -42
  144. package/lib/test/unit/ui_utils_spec.js +299 -461
  145. package/lib/test/unit/unicode_spec.js +42 -42
  146. package/lib/test/unit/util_spec.js +129 -149
  147. package/lib/test/unit/writer_spec.js +84 -0
  148. package/lib/web/annotation_layer_builder.js +78 -111
  149. package/lib/web/app.js +1542 -1267
  150. package/lib/web/app_options.js +76 -91
  151. package/lib/web/base_tree_viewer.js +100 -0
  152. package/lib/web/base_viewer.js +869 -834
  153. package/lib/web/chromecom.js +165 -252
  154. package/lib/web/debugger.js +149 -205
  155. package/lib/web/download_manager.js +34 -58
  156. package/lib/web/firefox_print_service.js +62 -34
  157. package/lib/web/firefoxcom.js +206 -374
  158. package/lib/web/genericcom.js +26 -108
  159. package/lib/web/genericl10n.js +24 -153
  160. package/lib/web/grab_to_pan.js +30 -30
  161. package/lib/web/interfaces.js +80 -254
  162. package/lib/web/overlay_manager.js +70 -246
  163. package/lib/web/password_prompt.js +38 -64
  164. package/lib/web/pdf_attachment_viewer.js +150 -126
  165. package/lib/web/pdf_cursor_tools.js +75 -102
  166. package/lib/web/pdf_document_properties.js +229 -383
  167. package/lib/web/pdf_find_bar.js +136 -170
  168. package/lib/web/pdf_find_controller.js +492 -548
  169. package/lib/web/pdf_find_utils.js +13 -13
  170. package/lib/web/pdf_history.js +397 -406
  171. package/lib/web/pdf_layer_viewer.js +208 -0
  172. package/lib/web/pdf_link_service.js +304 -348
  173. package/lib/web/pdf_outline_viewer.js +119 -212
  174. package/lib/web/pdf_page_view.js +474 -513
  175. package/lib/web/pdf_presentation_mode.js +308 -357
  176. package/lib/web/pdf_print_service.js +96 -110
  177. package/lib/web/pdf_rendering_queue.js +87 -108
  178. package/lib/web/pdf_sidebar.js +286 -302
  179. package/lib/web/pdf_sidebar_resizer.js +92 -119
  180. package/lib/web/pdf_single_page_viewer.js +77 -126
  181. package/lib/web/pdf_thumbnail_view.js +289 -297
  182. package/lib/web/pdf_thumbnail_viewer.js +202 -206
  183. package/lib/web/pdf_viewer.component.js +20 -21
  184. package/lib/web/pdf_viewer.js +55 -115
  185. package/lib/web/preferences.js +69 -273
  186. package/lib/web/secondary_toolbar.js +164 -196
  187. package/lib/web/text_layer_builder.js +284 -319
  188. package/lib/web/toolbar.js +217 -210
  189. package/lib/web/ui_utils.js +274 -421
  190. package/lib/web/view_history.js +52 -226
  191. package/lib/web/viewer_compatibility.js +21 -6
  192. package/package.json +4 -9
  193. package/types/display/annotation_layer.d.ts +61 -0
  194. package/types/display/annotation_storage.d.ts +36 -0
  195. package/types/display/api.d.ts +1107 -0
  196. package/types/display/api_compatibility.d.ts +1 -0
  197. package/types/display/canvas.d.ts +4 -0
  198. package/types/display/content_disposition.d.ts +7 -0
  199. package/types/display/display_utils.d.ts +243 -0
  200. package/types/display/fetch_stream.d.ts +67 -0
  201. package/types/display/font_loader.d.ts +19 -0
  202. package/types/display/metadata.d.ts +9 -0
  203. package/types/display/network.d.ts +80 -0
  204. package/types/display/network_utils.d.ts +14 -0
  205. package/types/display/node_stream.d.ts +72 -0
  206. package/types/display/node_utils.d.ts +6 -0
  207. package/types/display/optional_content_config.d.ts +12 -0
  208. package/types/display/pattern_helper.d.ts +5 -0
  209. package/types/display/svg.d.ts +2 -0
  210. package/types/display/text_layer.d.ts +83 -0
  211. package/types/display/transport_stream.d.ts +57 -0
  212. package/types/display/webgl.d.ts +20 -0
  213. package/types/display/worker_options.d.ts +27 -0
  214. package/types/display/xml_parser.d.ts +35 -0
  215. package/types/pdf.d.ts +33 -0
  216. package/types/shared/compatibility.d.ts +1 -0
  217. package/types/shared/is_node.d.ts +1 -0
  218. package/types/shared/message_handler.d.ts +62 -0
  219. package/types/shared/util.d.ts +421 -0
  220. package/web/images/shadow.png +0 -0
  221. package/web/pdf_viewer.css +29 -27
  222. package/web/pdf_viewer.js +3524 -4746
  223. package/web/pdf_viewer.js.map +1 -1
  224. package/webpack.js +6 -5
  225. package/external/streams/streams-lib.js +0 -3962
  226. package/external/url/url-lib.js +0 -627
  227. package/lib/shared/streams_polyfill.js +0 -43
  228. package/lib/shared/url_polyfill.js +0 -56
  229. package/web/images/texture.png +0 -0
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2019 Mozilla Foundation
5
+ * Copyright 2020 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -26,41 +26,25 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.PDFPresentationMode = void 0;
28
28
 
29
- var _ui_utils = require("./ui_utils");
30
-
31
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
32
-
33
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
34
-
35
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
36
-
37
- var DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS = 1500;
38
- var DELAY_BEFORE_HIDING_CONTROLS = 3000;
39
- var ACTIVE_SELECTOR = 'pdfPresentationMode';
40
- var CONTROLS_SELECTOR = 'pdfPresentationModeControls';
41
- var MOUSE_SCROLL_COOLDOWN_TIME = 50;
42
- var PAGE_SWITCH_THRESHOLD = 0.1;
43
- var SWIPE_MIN_DISTANCE_THRESHOLD = 50;
44
- var SWIPE_ANGLE_THRESHOLD = Math.PI / 6;
45
-
46
- var PDFPresentationMode =
47
- /*#__PURE__*/
48
- function () {
49
- function PDFPresentationMode(_ref) {
50
- var _this = this;
51
-
52
- var container = _ref.container,
53
- _ref$viewer = _ref.viewer,
54
- viewer = _ref$viewer === void 0 ? null : _ref$viewer,
55
- pdfViewer = _ref.pdfViewer,
56
- eventBus = _ref.eventBus,
57
- _ref$contextMenuItems = _ref.contextMenuItems,
58
- contextMenuItems = _ref$contextMenuItems === void 0 ? null : _ref$contextMenuItems;
59
-
60
- _classCallCheck(this, PDFPresentationMode);
61
-
29
+ var _ui_utils = require("./ui_utils.js");
30
+
31
+ const DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS = 1500;
32
+ const DELAY_BEFORE_HIDING_CONTROLS = 3000;
33
+ const ACTIVE_SELECTOR = "pdfPresentationMode";
34
+ const CONTROLS_SELECTOR = "pdfPresentationModeControls";
35
+ const MOUSE_SCROLL_COOLDOWN_TIME = 50;
36
+ const PAGE_SWITCH_THRESHOLD = 0.1;
37
+ const SWIPE_MIN_DISTANCE_THRESHOLD = 50;
38
+ const SWIPE_ANGLE_THRESHOLD = Math.PI / 6;
39
+
40
+ class PDFPresentationMode {
41
+ constructor({
42
+ container,
43
+ pdfViewer,
44
+ eventBus,
45
+ contextMenuItems = null
46
+ }) {
62
47
  this.container = container;
63
- this.viewer = viewer || container.firstElementChild;
64
48
  this.pdfViewer = pdfViewer;
65
49
  this.eventBus = eventBus;
66
50
  this.active = false;
@@ -71,403 +55,370 @@ function () {
71
55
  this.touchSwipeState = null;
72
56
 
73
57
  if (contextMenuItems) {
74
- contextMenuItems.contextFirstPage.addEventListener('click', function () {
75
- _this.contextMenuOpen = false;
76
-
77
- _this.eventBus.dispatch('firstpage', {
78
- source: _this
58
+ contextMenuItems.contextFirstPage.addEventListener("click", () => {
59
+ this.contextMenuOpen = false;
60
+ this.eventBus.dispatch("firstpage", {
61
+ source: this
79
62
  });
80
63
  });
81
- contextMenuItems.contextLastPage.addEventListener('click', function () {
82
- _this.contextMenuOpen = false;
83
-
84
- _this.eventBus.dispatch('lastpage', {
85
- source: _this
64
+ contextMenuItems.contextLastPage.addEventListener("click", () => {
65
+ this.contextMenuOpen = false;
66
+ this.eventBus.dispatch("lastpage", {
67
+ source: this
86
68
  });
87
69
  });
88
- contextMenuItems.contextPageRotateCw.addEventListener('click', function () {
89
- _this.contextMenuOpen = false;
90
-
91
- _this.eventBus.dispatch('rotatecw', {
92
- source: _this
70
+ contextMenuItems.contextPageRotateCw.addEventListener("click", () => {
71
+ this.contextMenuOpen = false;
72
+ this.eventBus.dispatch("rotatecw", {
73
+ source: this
93
74
  });
94
75
  });
95
- contextMenuItems.contextPageRotateCcw.addEventListener('click', function () {
96
- _this.contextMenuOpen = false;
97
-
98
- _this.eventBus.dispatch('rotateccw', {
99
- source: _this
76
+ contextMenuItems.contextPageRotateCcw.addEventListener("click", () => {
77
+ this.contextMenuOpen = false;
78
+ this.eventBus.dispatch("rotateccw", {
79
+ source: this
100
80
  });
101
81
  });
102
82
  }
103
83
  }
104
84
 
105
- _createClass(PDFPresentationMode, [{
106
- key: "request",
107
- value: function request() {
108
- if (this.switchInProgress || this.active || !this.viewer.hasChildNodes()) {
109
- return false;
110
- }
85
+ request() {
86
+ if (this.switchInProgress || this.active || !this.pdfViewer.pagesCount) {
87
+ return false;
88
+ }
111
89
 
112
- this._addFullscreenChangeListeners();
90
+ this._addFullscreenChangeListeners();
113
91
 
114
- this._setSwitchInProgress();
92
+ this._setSwitchInProgress();
115
93
 
116
- this._notifyStateChange();
94
+ this._notifyStateChange();
117
95
 
118
- if (this.container.requestFullscreen) {
119
- this.container.requestFullscreen();
120
- } else if (this.container.mozRequestFullScreen) {
121
- this.container.mozRequestFullScreen();
122
- } else if (this.container.webkitRequestFullscreen) {
123
- this.container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
124
- } else if (this.container.msRequestFullscreen) {
125
- this.container.msRequestFullscreen();
126
- } else {
127
- return false;
128
- }
96
+ if (this.container.requestFullscreen) {
97
+ this.container.requestFullscreen();
98
+ } else if (this.container.mozRequestFullScreen) {
99
+ this.container.mozRequestFullScreen();
100
+ } else if (this.container.webkitRequestFullscreen) {
101
+ this.container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
102
+ } else if (this.container.msRequestFullscreen) {
103
+ this.container.msRequestFullscreen();
104
+ } else {
105
+ return false;
106
+ }
129
107
 
130
- this.args = {
131
- page: this.pdfViewer.currentPageNumber,
132
- previousScale: this.pdfViewer.currentScaleValue
133
- };
134
- return true;
108
+ this.args = {
109
+ page: this.pdfViewer.currentPageNumber,
110
+ previousScale: this.pdfViewer.currentScaleValue
111
+ };
112
+ return true;
113
+ }
114
+
115
+ _mouseWheel(evt) {
116
+ if (!this.active) {
117
+ return;
135
118
  }
136
- }, {
137
- key: "_mouseWheel",
138
- value: function _mouseWheel(evt) {
139
- if (!this.active) {
140
- return;
141
- }
142
119
 
143
- evt.preventDefault();
144
- var delta = (0, _ui_utils.normalizeWheelEventDelta)(evt);
145
- var currentTime = new Date().getTime();
146
- var storedTime = this.mouseScrollTimeStamp;
120
+ evt.preventDefault();
121
+ const delta = (0, _ui_utils.normalizeWheelEventDelta)(evt);
122
+ const currentTime = new Date().getTime();
123
+ const storedTime = this.mouseScrollTimeStamp;
147
124
 
148
- if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) {
149
- return;
150
- }
125
+ if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) {
126
+ return;
127
+ }
151
128
 
152
- if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) {
153
- this._resetMouseScrollState();
154
- }
129
+ if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) {
130
+ this._resetMouseScrollState();
131
+ }
155
132
 
156
- this.mouseScrollDelta += delta;
133
+ this.mouseScrollDelta += delta;
157
134
 
158
- if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) {
159
- var totalDelta = this.mouseScrollDelta;
135
+ if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) {
136
+ const totalDelta = this.mouseScrollDelta;
160
137
 
161
- this._resetMouseScrollState();
138
+ this._resetMouseScrollState();
162
139
 
163
- var success = totalDelta > 0 ? this._goToPreviousPage() : this._goToNextPage();
140
+ const success = totalDelta > 0 ? this._goToPreviousPage() : this._goToNextPage();
164
141
 
165
- if (success) {
166
- this.mouseScrollTimeStamp = currentTime;
167
- }
142
+ if (success) {
143
+ this.mouseScrollTimeStamp = currentTime;
168
144
  }
169
145
  }
170
- }, {
171
- key: "_goToPreviousPage",
172
- value: function _goToPreviousPage() {
173
- var page = this.pdfViewer.currentPageNumber;
146
+ }
174
147
 
175
- if (page <= 1) {
176
- return false;
177
- }
148
+ get isFullscreen() {
149
+ return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement);
150
+ }
178
151
 
179
- this.pdfViewer.currentPageNumber = page - 1;
180
- return true;
152
+ _goToPreviousPage() {
153
+ const page = this.pdfViewer.currentPageNumber;
154
+
155
+ if (page <= 1) {
156
+ return false;
181
157
  }
182
- }, {
183
- key: "_goToNextPage",
184
- value: function _goToNextPage() {
185
- var page = this.pdfViewer.currentPageNumber;
186
158
 
187
- if (page >= this.pdfViewer.pagesCount) {
188
- return false;
189
- }
159
+ this.pdfViewer.currentPageNumber = page - 1;
160
+ return true;
161
+ }
162
+
163
+ _goToNextPage() {
164
+ const page = this.pdfViewer.currentPageNumber;
190
165
 
191
- this.pdfViewer.currentPageNumber = page + 1;
192
- return true;
166
+ if (page >= this.pdfViewer.pagesCount) {
167
+ return false;
193
168
  }
194
- }, {
195
- key: "_notifyStateChange",
196
- value: function _notifyStateChange() {
197
- this.eventBus.dispatch('presentationmodechanged', {
198
- source: this,
199
- active: this.active,
200
- switchInProgress: !!this.switchInProgress
201
- });
169
+
170
+ this.pdfViewer.currentPageNumber = page + 1;
171
+ return true;
172
+ }
173
+
174
+ _notifyStateChange() {
175
+ this.eventBus.dispatch("presentationmodechanged", {
176
+ source: this,
177
+ active: this.active,
178
+ switchInProgress: !!this.switchInProgress
179
+ });
180
+ }
181
+
182
+ _setSwitchInProgress() {
183
+ if (this.switchInProgress) {
184
+ clearTimeout(this.switchInProgress);
202
185
  }
203
- }, {
204
- key: "_setSwitchInProgress",
205
- value: function _setSwitchInProgress() {
206
- var _this2 = this;
207
186
 
208
- if (this.switchInProgress) {
209
- clearTimeout(this.switchInProgress);
210
- }
187
+ this.switchInProgress = setTimeout(() => {
188
+ this._removeFullscreenChangeListeners();
211
189
 
212
- this.switchInProgress = setTimeout(function () {
213
- _this2._removeFullscreenChangeListeners();
190
+ delete this.switchInProgress;
214
191
 
215
- delete _this2.switchInProgress;
192
+ this._notifyStateChange();
193
+ }, DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS);
194
+ }
216
195
 
217
- _this2._notifyStateChange();
218
- }, DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS);
219
- }
220
- }, {
221
- key: "_resetSwitchInProgress",
222
- value: function _resetSwitchInProgress() {
223
- if (this.switchInProgress) {
224
- clearTimeout(this.switchInProgress);
225
- delete this.switchInProgress;
226
- }
196
+ _resetSwitchInProgress() {
197
+ if (this.switchInProgress) {
198
+ clearTimeout(this.switchInProgress);
199
+ delete this.switchInProgress;
227
200
  }
228
- }, {
229
- key: "_enter",
230
- value: function _enter() {
231
- var _this3 = this;
201
+ }
232
202
 
233
- this.active = true;
203
+ _enter() {
204
+ this.active = true;
234
205
 
235
- this._resetSwitchInProgress();
206
+ this._resetSwitchInProgress();
236
207
 
237
- this._notifyStateChange();
208
+ this._notifyStateChange();
238
209
 
239
- this.container.classList.add(ACTIVE_SELECTOR);
240
- setTimeout(function () {
241
- _this3.pdfViewer.currentPageNumber = _this3.args.page;
242
- _this3.pdfViewer.currentScaleValue = 'page-fit';
243
- }, 0);
210
+ this.container.classList.add(ACTIVE_SELECTOR);
211
+ setTimeout(() => {
212
+ this.pdfViewer.currentPageNumber = this.args.page;
213
+ this.pdfViewer.currentScaleValue = "page-fit";
214
+ }, 0);
244
215
 
245
- this._addWindowListeners();
216
+ this._addWindowListeners();
246
217
 
247
- this._showControls();
218
+ this._showControls();
248
219
 
249
- this.contextMenuOpen = false;
250
- this.container.setAttribute('contextmenu', 'viewerContextMenu');
251
- window.getSelection().removeAllRanges();
252
- }
253
- }, {
254
- key: "_exit",
255
- value: function _exit() {
256
- var _this4 = this;
220
+ this.contextMenuOpen = false;
221
+ this.container.setAttribute("contextmenu", "viewerContextMenu");
222
+ window.getSelection().removeAllRanges();
223
+ }
257
224
 
258
- var page = this.pdfViewer.currentPageNumber;
259
- this.container.classList.remove(ACTIVE_SELECTOR);
260
- setTimeout(function () {
261
- _this4.active = false;
225
+ _exit() {
226
+ const page = this.pdfViewer.currentPageNumber;
227
+ this.container.classList.remove(ACTIVE_SELECTOR);
228
+ setTimeout(() => {
229
+ this.active = false;
262
230
 
263
- _this4._removeFullscreenChangeListeners();
231
+ this._removeFullscreenChangeListeners();
264
232
 
265
- _this4._notifyStateChange();
233
+ this._notifyStateChange();
266
234
 
267
- _this4.pdfViewer.currentScaleValue = _this4.args.previousScale;
268
- _this4.pdfViewer.currentPageNumber = page;
269
- _this4.args = null;
270
- }, 0);
235
+ this.pdfViewer.currentScaleValue = this.args.previousScale;
236
+ this.pdfViewer.currentPageNumber = page;
237
+ this.args = null;
238
+ }, 0);
271
239
 
272
- this._removeWindowListeners();
240
+ this._removeWindowListeners();
273
241
 
274
- this._hideControls();
242
+ this._hideControls();
275
243
 
276
- this._resetMouseScrollState();
244
+ this._resetMouseScrollState();
277
245
 
278
- this.container.removeAttribute('contextmenu');
246
+ this.container.removeAttribute("contextmenu");
247
+ this.contextMenuOpen = false;
248
+ }
249
+
250
+ _mouseDown(evt) {
251
+ if (this.contextMenuOpen) {
279
252
  this.contextMenuOpen = false;
253
+ evt.preventDefault();
254
+ return;
280
255
  }
281
- }, {
282
- key: "_mouseDown",
283
- value: function _mouseDown(evt) {
284
- if (this.contextMenuOpen) {
285
- this.contextMenuOpen = false;
286
- evt.preventDefault();
287
- return;
288
- }
289
256
 
290
- if (evt.button === 0) {
291
- var isInternalLink = evt.target.href && evt.target.classList.contains('internalLink');
257
+ if (evt.button === 0) {
258
+ const isInternalLink = evt.target.href && evt.target.classList.contains("internalLink");
292
259
 
293
- if (!isInternalLink) {
294
- evt.preventDefault();
260
+ if (!isInternalLink) {
261
+ evt.preventDefault();
295
262
 
296
- if (evt.shiftKey) {
297
- this._goToPreviousPage();
298
- } else {
299
- this._goToNextPage();
300
- }
263
+ if (evt.shiftKey) {
264
+ this._goToPreviousPage();
265
+ } else {
266
+ this._goToNextPage();
301
267
  }
302
268
  }
303
269
  }
304
- }, {
305
- key: "_contextMenu",
306
- value: function _contextMenu() {
307
- this.contextMenuOpen = true;
308
- }
309
- }, {
310
- key: "_showControls",
311
- value: function _showControls() {
312
- var _this5 = this;
313
-
314
- if (this.controlsTimeout) {
315
- clearTimeout(this.controlsTimeout);
316
- } else {
317
- this.container.classList.add(CONTROLS_SELECTOR);
318
- }
270
+ }
319
271
 
320
- this.controlsTimeout = setTimeout(function () {
321
- _this5.container.classList.remove(CONTROLS_SELECTOR);
272
+ _contextMenu() {
273
+ this.contextMenuOpen = true;
274
+ }
322
275
 
323
- delete _this5.controlsTimeout;
324
- }, DELAY_BEFORE_HIDING_CONTROLS);
276
+ _showControls() {
277
+ if (this.controlsTimeout) {
278
+ clearTimeout(this.controlsTimeout);
279
+ } else {
280
+ this.container.classList.add(CONTROLS_SELECTOR);
325
281
  }
326
- }, {
327
- key: "_hideControls",
328
- value: function _hideControls() {
329
- if (!this.controlsTimeout) {
330
- return;
331
- }
332
282
 
333
- clearTimeout(this.controlsTimeout);
283
+ this.controlsTimeout = setTimeout(() => {
334
284
  this.container.classList.remove(CONTROLS_SELECTOR);
335
285
  delete this.controlsTimeout;
286
+ }, DELAY_BEFORE_HIDING_CONTROLS);
287
+ }
288
+
289
+ _hideControls() {
290
+ if (!this.controlsTimeout) {
291
+ return;
336
292
  }
337
- }, {
338
- key: "_resetMouseScrollState",
339
- value: function _resetMouseScrollState() {
340
- this.mouseScrollTimeStamp = 0;
341
- this.mouseScrollDelta = 0;
342
- }
343
- }, {
344
- key: "_touchSwipe",
345
- value: function _touchSwipe(evt) {
346
- if (!this.active) {
347
- return;
348
- }
349
293
 
350
- if (evt.touches.length > 1) {
351
- this.touchSwipeState = null;
352
- return;
353
- }
294
+ clearTimeout(this.controlsTimeout);
295
+ this.container.classList.remove(CONTROLS_SELECTOR);
296
+ delete this.controlsTimeout;
297
+ }
354
298
 
355
- switch (evt.type) {
356
- case 'touchstart':
357
- this.touchSwipeState = {
358
- startX: evt.touches[0].pageX,
359
- startY: evt.touches[0].pageY,
360
- endX: evt.touches[0].pageX,
361
- endY: evt.touches[0].pageY
362
- };
363
- break;
364
-
365
- case 'touchmove':
366
- if (this.touchSwipeState === null) {
367
- return;
368
- }
369
-
370
- this.touchSwipeState.endX = evt.touches[0].pageX;
371
- this.touchSwipeState.endY = evt.touches[0].pageY;
372
- evt.preventDefault();
373
- break;
374
-
375
- case 'touchend':
376
- if (this.touchSwipeState === null) {
377
- return;
378
- }
379
-
380
- var delta = 0;
381
- var dx = this.touchSwipeState.endX - this.touchSwipeState.startX;
382
- var dy = this.touchSwipeState.endY - this.touchSwipeState.startY;
383
- var absAngle = Math.abs(Math.atan2(dy, dx));
384
-
385
- if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) {
386
- delta = dx;
387
- } else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) {
388
- delta = dy;
389
- }
390
-
391
- if (delta > 0) {
392
- this._goToPreviousPage();
393
- } else if (delta < 0) {
394
- this._goToNextPage();
395
- }
396
-
397
- break;
398
- }
399
- }
400
- }, {
401
- key: "_addWindowListeners",
402
- value: function _addWindowListeners() {
403
- this.showControlsBind = this._showControls.bind(this);
404
- this.mouseDownBind = this._mouseDown.bind(this);
405
- this.mouseWheelBind = this._mouseWheel.bind(this);
406
- this.resetMouseScrollStateBind = this._resetMouseScrollState.bind(this);
407
- this.contextMenuBind = this._contextMenu.bind(this);
408
- this.touchSwipeBind = this._touchSwipe.bind(this);
409
- window.addEventListener('mousemove', this.showControlsBind);
410
- window.addEventListener('mousedown', this.mouseDownBind);
411
- window.addEventListener('wheel', this.mouseWheelBind);
412
- window.addEventListener('keydown', this.resetMouseScrollStateBind);
413
- window.addEventListener('contextmenu', this.contextMenuBind);
414
- window.addEventListener('touchstart', this.touchSwipeBind);
415
- window.addEventListener('touchmove', this.touchSwipeBind);
416
- window.addEventListener('touchend', this.touchSwipeBind);
417
- }
418
- }, {
419
- key: "_removeWindowListeners",
420
- value: function _removeWindowListeners() {
421
- window.removeEventListener('mousemove', this.showControlsBind);
422
- window.removeEventListener('mousedown', this.mouseDownBind);
423
- window.removeEventListener('wheel', this.mouseWheelBind);
424
- window.removeEventListener('keydown', this.resetMouseScrollStateBind);
425
- window.removeEventListener('contextmenu', this.contextMenuBind);
426
- window.removeEventListener('touchstart', this.touchSwipeBind);
427
- window.removeEventListener('touchmove', this.touchSwipeBind);
428
- window.removeEventListener('touchend', this.touchSwipeBind);
429
- delete this.showControlsBind;
430
- delete this.mouseDownBind;
431
- delete this.mouseWheelBind;
432
- delete this.resetMouseScrollStateBind;
433
- delete this.contextMenuBind;
434
- delete this.touchSwipeBind;
435
- }
436
- }, {
437
- key: "_fullscreenChange",
438
- value: function _fullscreenChange() {
439
- if (this.isFullscreen) {
440
- this._enter();
441
- } else {
442
- this._exit();
443
- }
299
+ _resetMouseScrollState() {
300
+ this.mouseScrollTimeStamp = 0;
301
+ this.mouseScrollDelta = 0;
302
+ }
303
+
304
+ _touchSwipe(evt) {
305
+ if (!this.active) {
306
+ return;
444
307
  }
445
- }, {
446
- key: "_addFullscreenChangeListeners",
447
- value: function _addFullscreenChangeListeners() {
448
- this.fullscreenChangeBind = this._fullscreenChange.bind(this);
449
- window.addEventListener('fullscreenchange', this.fullscreenChangeBind);
450
- window.addEventListener('mozfullscreenchange', this.fullscreenChangeBind);
451
- window.addEventListener('webkitfullscreenchange', this.fullscreenChangeBind);
452
- window.addEventListener('MSFullscreenChange', this.fullscreenChangeBind);
308
+
309
+ if (evt.touches.length > 1) {
310
+ this.touchSwipeState = null;
311
+ return;
453
312
  }
454
- }, {
455
- key: "_removeFullscreenChangeListeners",
456
- value: function _removeFullscreenChangeListeners() {
457
- window.removeEventListener('fullscreenchange', this.fullscreenChangeBind);
458
- window.removeEventListener('mozfullscreenchange', this.fullscreenChangeBind);
459
- window.removeEventListener('webkitfullscreenchange', this.fullscreenChangeBind);
460
- window.removeEventListener('MSFullscreenChange', this.fullscreenChangeBind);
461
- delete this.fullscreenChangeBind;
313
+
314
+ switch (evt.type) {
315
+ case "touchstart":
316
+ this.touchSwipeState = {
317
+ startX: evt.touches[0].pageX,
318
+ startY: evt.touches[0].pageY,
319
+ endX: evt.touches[0].pageX,
320
+ endY: evt.touches[0].pageY
321
+ };
322
+ break;
323
+
324
+ case "touchmove":
325
+ if (this.touchSwipeState === null) {
326
+ return;
327
+ }
328
+
329
+ this.touchSwipeState.endX = evt.touches[0].pageX;
330
+ this.touchSwipeState.endY = evt.touches[0].pageY;
331
+ evt.preventDefault();
332
+ break;
333
+
334
+ case "touchend":
335
+ if (this.touchSwipeState === null) {
336
+ return;
337
+ }
338
+
339
+ let delta = 0;
340
+ const dx = this.touchSwipeState.endX - this.touchSwipeState.startX;
341
+ const dy = this.touchSwipeState.endY - this.touchSwipeState.startY;
342
+ const absAngle = Math.abs(Math.atan2(dy, dx));
343
+
344
+ if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) {
345
+ delta = dx;
346
+ } else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) {
347
+ delta = dy;
348
+ }
349
+
350
+ if (delta > 0) {
351
+ this._goToPreviousPage();
352
+ } else if (delta < 0) {
353
+ this._goToNextPage();
354
+ }
355
+
356
+ break;
462
357
  }
463
- }, {
464
- key: "isFullscreen",
465
- get: function get() {
466
- return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement);
358
+ }
359
+
360
+ _addWindowListeners() {
361
+ this.showControlsBind = this._showControls.bind(this);
362
+ this.mouseDownBind = this._mouseDown.bind(this);
363
+ this.mouseWheelBind = this._mouseWheel.bind(this);
364
+ this.resetMouseScrollStateBind = this._resetMouseScrollState.bind(this);
365
+ this.contextMenuBind = this._contextMenu.bind(this);
366
+ this.touchSwipeBind = this._touchSwipe.bind(this);
367
+ window.addEventListener("mousemove", this.showControlsBind);
368
+ window.addEventListener("mousedown", this.mouseDownBind);
369
+ window.addEventListener("wheel", this.mouseWheelBind, {
370
+ passive: false
371
+ });
372
+ window.addEventListener("keydown", this.resetMouseScrollStateBind);
373
+ window.addEventListener("contextmenu", this.contextMenuBind);
374
+ window.addEventListener("touchstart", this.touchSwipeBind);
375
+ window.addEventListener("touchmove", this.touchSwipeBind);
376
+ window.addEventListener("touchend", this.touchSwipeBind);
377
+ }
378
+
379
+ _removeWindowListeners() {
380
+ window.removeEventListener("mousemove", this.showControlsBind);
381
+ window.removeEventListener("mousedown", this.mouseDownBind);
382
+ window.removeEventListener("wheel", this.mouseWheelBind, {
383
+ passive: false
384
+ });
385
+ window.removeEventListener("keydown", this.resetMouseScrollStateBind);
386
+ window.removeEventListener("contextmenu", this.contextMenuBind);
387
+ window.removeEventListener("touchstart", this.touchSwipeBind);
388
+ window.removeEventListener("touchmove", this.touchSwipeBind);
389
+ window.removeEventListener("touchend", this.touchSwipeBind);
390
+ delete this.showControlsBind;
391
+ delete this.mouseDownBind;
392
+ delete this.mouseWheelBind;
393
+ delete this.resetMouseScrollStateBind;
394
+ delete this.contextMenuBind;
395
+ delete this.touchSwipeBind;
396
+ }
397
+
398
+ _fullscreenChange() {
399
+ if (this.isFullscreen) {
400
+ this._enter();
401
+ } else {
402
+ this._exit();
467
403
  }
468
- }]);
404
+ }
405
+
406
+ _addFullscreenChangeListeners() {
407
+ this.fullscreenChangeBind = this._fullscreenChange.bind(this);
408
+ window.addEventListener("fullscreenchange", this.fullscreenChangeBind);
409
+ window.addEventListener("mozfullscreenchange", this.fullscreenChangeBind);
410
+ window.addEventListener("webkitfullscreenchange", this.fullscreenChangeBind);
411
+ window.addEventListener("MSFullscreenChange", this.fullscreenChangeBind);
412
+ }
413
+
414
+ _removeFullscreenChangeListeners() {
415
+ window.removeEventListener("fullscreenchange", this.fullscreenChangeBind);
416
+ window.removeEventListener("mozfullscreenchange", this.fullscreenChangeBind);
417
+ window.removeEventListener("webkitfullscreenchange", this.fullscreenChangeBind);
418
+ window.removeEventListener("MSFullscreenChange", this.fullscreenChangeBind);
419
+ delete this.fullscreenChangeBind;
420
+ }
469
421
 
470
- return PDFPresentationMode;
471
- }();
422
+ }
472
423
 
473
424
  exports.PDFPresentationMode = PDFPresentationMode;