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,418 +26,292 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.FontLoader = exports.FontFaceObject = void 0;
28
28
 
29
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
29
+ var _util = require("../shared/util.js");
30
30
 
31
- var _util = require("../shared/util");
31
+ class BaseFontLoader {
32
+ constructor({
33
+ docId,
34
+ onUnsupportedFeature,
35
+ ownerDocument = globalThis.document
36
+ }) {
37
+ if (this.constructor === BaseFontLoader) {
38
+ (0, _util.unreachable)("Cannot initialize BaseFontLoader.");
39
+ }
32
40
 
33
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
41
+ this.docId = docId;
42
+ this._onUnsupportedFeature = onUnsupportedFeature;
43
+ this._document = ownerDocument;
44
+ this.nativeFontFaces = [];
45
+ this.styleElement = null;
46
+ }
34
47
 
35
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
48
+ addNativeFontFace(nativeFontFace) {
49
+ this.nativeFontFaces.push(nativeFontFace);
36
50
 
37
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
51
+ this._document.fonts.add(nativeFontFace);
52
+ }
38
53
 
39
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
54
+ insertRule(rule) {
55
+ let styleElement = this.styleElement;
40
56
 
41
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
57
+ if (!styleElement) {
58
+ styleElement = this.styleElement = this._document.createElement("style");
59
+ styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;
42
60
 
43
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
61
+ this._document.documentElement.getElementsByTagName("head")[0].appendChild(styleElement);
62
+ }
44
63
 
45
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
64
+ const styleSheet = styleElement.sheet;
65
+ styleSheet.insertRule(rule, styleSheet.cssRules.length);
66
+ }
46
67
 
47
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
68
+ clear() {
69
+ this.nativeFontFaces.forEach(nativeFontFace => {
70
+ this._document.fonts.delete(nativeFontFace);
71
+ });
72
+ this.nativeFontFaces.length = 0;
48
73
 
49
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
74
+ if (this.styleElement) {
75
+ this.styleElement.remove();
76
+ this.styleElement = null;
77
+ }
78
+ }
50
79
 
51
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
80
+ async bind(font) {
81
+ if (font.attached || font.missingFile) {
82
+ return;
83
+ }
52
84
 
53
- 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); } }
85
+ font.attached = true;
54
86
 
55
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
87
+ if (this.isFontLoadingAPISupported) {
88
+ const nativeFontFace = font.createNativeFontFace();
56
89
 
57
- var BaseFontLoader =
58
- /*#__PURE__*/
59
- function () {
60
- function BaseFontLoader(_ref) {
61
- var docId = _ref.docId,
62
- onUnsupportedFeature = _ref.onUnsupportedFeature;
90
+ if (nativeFontFace) {
91
+ this.addNativeFontFace(nativeFontFace);
63
92
 
64
- _classCallCheck(this, BaseFontLoader);
93
+ try {
94
+ await nativeFontFace.loaded;
95
+ } catch (ex) {
96
+ this._onUnsupportedFeature({
97
+ featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative
98
+ });
65
99
 
66
- if (this.constructor === BaseFontLoader) {
67
- (0, _util.unreachable)('Cannot initialize BaseFontLoader.');
100
+ (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);
101
+ font.disableFontFace = true;
102
+ throw ex;
103
+ }
104
+ }
105
+
106
+ return;
68
107
  }
69
108
 
70
- this.docId = docId;
71
- this._onUnsupportedFeature = onUnsupportedFeature;
72
- this.nativeFontFaces = [];
73
- this.styleElement = null;
74
- }
109
+ const rule = font.createFontFaceRule();
75
110
 
76
- _createClass(BaseFontLoader, [{
77
- key: "addNativeFontFace",
78
- value: function addNativeFontFace(nativeFontFace) {
79
- this.nativeFontFaces.push(nativeFontFace);
80
- document.fonts.add(nativeFontFace);
81
- }
82
- }, {
83
- key: "insertRule",
84
- value: function insertRule(rule) {
85
- var styleElement = this.styleElement;
86
-
87
- if (!styleElement) {
88
- styleElement = this.styleElement = document.createElement('style');
89
- styleElement.id = "PDFJS_FONT_STYLE_TAG_".concat(this.docId);
90
- document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement);
111
+ if (rule) {
112
+ this.insertRule(rule);
113
+
114
+ if (this.isSyncFontLoadingSupported) {
115
+ return;
91
116
  }
92
117
 
93
- var styleSheet = styleElement.sheet;
94
- styleSheet.insertRule(rule, styleSheet.cssRules.length);
95
- }
96
- }, {
97
- key: "clear",
98
- value: function clear() {
99
- this.nativeFontFaces.forEach(function (nativeFontFace) {
100
- document.fonts["delete"](nativeFontFace);
101
- });
102
- this.nativeFontFaces.length = 0;
118
+ await new Promise(resolve => {
119
+ const request = this._queueLoadingCallback(resolve);
103
120
 
104
- if (this.styleElement) {
105
- this.styleElement.remove();
106
- this.styleElement = null;
107
- }
121
+ this._prepareFontLoadEvent([rule], [font], request);
122
+ });
108
123
  }
109
- }, {
110
- key: "bind",
111
- value: function () {
112
- var _bind = _asyncToGenerator(
113
- /*#__PURE__*/
114
- _regenerator["default"].mark(function _callee(font) {
115
- var _this = this;
116
-
117
- var nativeFontFace, rule;
118
- return _regenerator["default"].wrap(function _callee$(_context) {
119
- while (1) {
120
- switch (_context.prev = _context.next) {
121
- case 0:
122
- if (!(font.attached || font.missingFile)) {
123
- _context.next = 2;
124
- break;
125
- }
126
-
127
- return _context.abrupt("return", undefined);
128
-
129
- case 2:
130
- font.attached = true;
131
-
132
- if (!this.isFontLoadingAPISupported) {
133
- _context.next = 19;
134
- break;
135
- }
136
-
137
- nativeFontFace = font.createNativeFontFace();
138
-
139
- if (!nativeFontFace) {
140
- _context.next = 18;
141
- break;
142
- }
143
-
144
- this.addNativeFontFace(nativeFontFace);
145
- _context.prev = 7;
146
- _context.next = 10;
147
- return nativeFontFace.loaded;
148
-
149
- case 10:
150
- _context.next = 18;
151
- break;
152
-
153
- case 12:
154
- _context.prev = 12;
155
- _context.t0 = _context["catch"](7);
156
-
157
- this._onUnsupportedFeature({
158
- featureId: _util.UNSUPPORTED_FEATURES.font
159
- });
160
-
161
- (0, _util.warn)("Failed to load font '".concat(nativeFontFace.family, "': '").concat(_context.t0, "'."));
162
- font.disableFontFace = true;
163
- throw _context.t0;
164
-
165
- case 18:
166
- return _context.abrupt("return", undefined);
167
-
168
- case 19:
169
- rule = font.createFontFaceRule();
170
-
171
- if (!rule) {
172
- _context.next = 25;
173
- break;
174
- }
175
-
176
- this.insertRule(rule);
177
-
178
- if (!this.isSyncFontLoadingSupported) {
179
- _context.next = 24;
180
- break;
181
- }
182
-
183
- return _context.abrupt("return", undefined);
184
-
185
- case 24:
186
- return _context.abrupt("return", new Promise(function (resolve) {
187
- var request = _this._queueLoadingCallback(resolve);
188
-
189
- _this._prepareFontLoadEvent([rule], [font], request);
190
- }));
191
-
192
- case 25:
193
- return _context.abrupt("return", undefined);
194
-
195
- case 26:
196
- case "end":
197
- return _context.stop();
198
- }
199
- }
200
- }, _callee, this, [[7, 12]]);
201
- }));
202
-
203
- function bind(_x) {
204
- return _bind.apply(this, arguments);
205
- }
124
+ }
206
125
 
207
- return bind;
208
- }()
209
- }, {
210
- key: "_queueLoadingCallback",
211
- value: function _queueLoadingCallback(callback) {
212
- (0, _util.unreachable)('Abstract method `_queueLoadingCallback`.');
213
- }
214
- }, {
215
- key: "_prepareFontLoadEvent",
216
- value: function _prepareFontLoadEvent(rules, fontsToLoad, request) {
217
- (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.');
218
- }
219
- }, {
220
- key: "isFontLoadingAPISupported",
221
- get: function get() {
222
- (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.');
223
- }
224
- }, {
225
- key: "isSyncFontLoadingSupported",
226
- get: function get() {
227
- (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.');
228
- }
229
- }, {
230
- key: "_loadTestFont",
231
- get: function get() {
232
- (0, _util.unreachable)('Abstract method `_loadTestFont`.');
233
- }
234
- }]);
126
+ _queueLoadingCallback(callback) {
127
+ (0, _util.unreachable)("Abstract method `_queueLoadingCallback`.");
128
+ }
235
129
 
236
- return BaseFontLoader;
237
- }();
130
+ get isFontLoadingAPISupported() {
131
+ const supported = typeof this._document !== "undefined" && !!this._document.fonts;
132
+ return (0, _util.shadow)(this, "isFontLoadingAPISupported", supported);
133
+ }
238
134
 
239
- var FontLoader;
240
- exports.FontLoader = FontLoader;
241
- {
242
- exports.FontLoader = FontLoader =
243
- /*#__PURE__*/
244
- function (_BaseFontLoader) {
245
- _inherits(GenericFontLoader, _BaseFontLoader);
135
+ get isSyncFontLoadingSupported() {
136
+ (0, _util.unreachable)("Abstract method `isSyncFontLoadingSupported`.");
137
+ }
246
138
 
247
- function GenericFontLoader(docId) {
248
- var _this2;
139
+ get _loadTestFont() {
140
+ (0, _util.unreachable)("Abstract method `_loadTestFont`.");
141
+ }
142
+
143
+ _prepareFontLoadEvent(rules, fontsToLoad, request) {
144
+ (0, _util.unreachable)("Abstract method `_prepareFontLoadEvent`.");
145
+ }
249
146
 
250
- _classCallCheck(this, GenericFontLoader);
147
+ }
251
148
 
252
- _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId));
253
- _this2.loadingContext = {
149
+ let FontLoader;
150
+ exports.FontLoader = FontLoader;
151
+ {
152
+ exports.FontLoader = FontLoader = class GenericFontLoader extends BaseFontLoader {
153
+ constructor(params) {
154
+ super(params);
155
+ this.loadingContext = {
254
156
  requests: [],
255
157
  nextRequestId: 0
256
158
  };
257
- _this2.loadTestFontId = 0;
258
- return _this2;
159
+ this.loadTestFontId = 0;
259
160
  }
260
161
 
261
- _createClass(GenericFontLoader, [{
262
- key: "_queueLoadingCallback",
263
- value: function _queueLoadingCallback(callback) {
264
- function completeRequest() {
265
- (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.');
266
- request.done = true;
267
-
268
- while (context.requests.length > 0 && context.requests[0].done) {
269
- var otherRequest = context.requests.shift();
270
- setTimeout(otherRequest.callback, 0);
271
- }
272
- }
162
+ get isSyncFontLoadingSupported() {
163
+ let supported = false;
273
164
 
274
- var context = this.loadingContext;
275
- var request = {
276
- id: "pdfjs-font-loading-".concat(context.nextRequestId++),
277
- done: false,
278
- complete: completeRequest,
279
- callback: callback
280
- };
281
- context.requests.push(request);
282
- return request;
283
- }
284
- }, {
285
- key: "_prepareFontLoadEvent",
286
- value: function _prepareFontLoadEvent(rules, fonts, request) {
287
- function int32(data, offset) {
288
- return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;
165
+ if (typeof navigator === "undefined") {
166
+ supported = true;
167
+ } else {
168
+ const m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
169
+
170
+ if (m && m[1] >= 14) {
171
+ supported = true;
289
172
  }
173
+ }
174
+
175
+ return (0, _util.shadow)(this, "isSyncFontLoadingSupported", supported);
176
+ }
177
+
178
+ _queueLoadingCallback(callback) {
179
+ function completeRequest() {
180
+ (0, _util.assert)(!request.done, "completeRequest() cannot be called twice.");
181
+ request.done = true;
290
182
 
291
- function spliceString(s, offset, remove, insert) {
292
- var chunk1 = s.substring(0, offset);
293
- var chunk2 = s.substring(offset + remove);
294
- return chunk1 + insert + chunk2;
183
+ while (context.requests.length > 0 && context.requests[0].done) {
184
+ const otherRequest = context.requests.shift();
185
+ setTimeout(otherRequest.callback, 0);
295
186
  }
187
+ }
296
188
 
297
- var i, ii;
298
- var canvas = document.createElement('canvas');
299
- canvas.width = 1;
300
- canvas.height = 1;
301
- var ctx = canvas.getContext('2d');
302
- var called = 0;
189
+ const context = this.loadingContext;
190
+ const request = {
191
+ id: `pdfjs-font-loading-${context.nextRequestId++}`,
192
+ done: false,
193
+ complete: completeRequest,
194
+ callback
195
+ };
196
+ context.requests.push(request);
197
+ return request;
198
+ }
303
199
 
304
- function isFontReady(name, callback) {
305
- called++;
200
+ get _loadTestFont() {
201
+ const getLoadTestFont = function () {
202
+ return atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA" + "FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA" + "ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA" + "AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1" + "AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD" + "6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM" + "AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D" + "IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA" + "AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA" + "AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB" + "AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY" + "AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA" + "AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA" + "AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC" + "AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3" + "Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj" + "FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");
203
+ };
306
204
 
307
- if (called > 30) {
308
- (0, _util.warn)('Load test font never loaded.');
309
- callback();
310
- return;
311
- }
205
+ return (0, _util.shadow)(this, "_loadTestFont", getLoadTestFont());
206
+ }
312
207
 
313
- ctx.font = '30px ' + name;
314
- ctx.fillText('.', 0, 20);
315
- var imageData = ctx.getImageData(0, 0, 1, 1);
208
+ _prepareFontLoadEvent(rules, fonts, request) {
209
+ function int32(data, offset) {
210
+ return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;
211
+ }
316
212
 
317
- if (imageData.data[3] > 0) {
318
- callback();
319
- return;
320
- }
213
+ function spliceString(s, offset, remove, insert) {
214
+ const chunk1 = s.substring(0, offset);
215
+ const chunk2 = s.substring(offset + remove);
216
+ return chunk1 + insert + chunk2;
217
+ }
321
218
 
322
- setTimeout(isFontReady.bind(null, name, callback));
323
- }
219
+ let i, ii;
324
220
 
325
- var loadTestFontId = "lt".concat(Date.now()).concat(this.loadTestFontId++);
326
- var data = this._loadTestFont;
327
- var COMMENT_OFFSET = 976;
328
- data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);
329
- var CFF_CHECKSUM_OFFSET = 16;
330
- var XXXX_VALUE = 0x58585858;
331
- var checksum = int32(data, CFF_CHECKSUM_OFFSET);
221
+ const canvas = this._document.createElement("canvas");
332
222
 
333
- for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {
334
- checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;
335
- }
223
+ canvas.width = 1;
224
+ canvas.height = 1;
225
+ const ctx = canvas.getContext("2d");
226
+ let called = 0;
227
+
228
+ function isFontReady(name, callback) {
229
+ called++;
336
230
 
337
- if (i < loadTestFontId.length) {
338
- checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0;
231
+ if (called > 30) {
232
+ (0, _util.warn)("Load test font never loaded.");
233
+ callback();
234
+ return;
339
235
  }
340
236
 
341
- data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));
342
- var url = "url(data:font/opentype;base64,".concat(btoa(data), ");");
343
- var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(url, "}");
344
- this.insertRule(rule);
345
- var names = [];
237
+ ctx.font = "30px " + name;
238
+ ctx.fillText(".", 0, 20);
239
+ const imageData = ctx.getImageData(0, 0, 1, 1);
346
240
 
347
- for (i = 0, ii = fonts.length; i < ii; i++) {
348
- names.push(fonts[i].loadedName);
241
+ if (imageData.data[3] > 0) {
242
+ callback();
243
+ return;
349
244
  }
350
245
 
351
- names.push(loadTestFontId);
352
- var div = document.createElement('div');
353
- div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;');
246
+ setTimeout(isFontReady.bind(null, name, callback));
247
+ }
354
248
 
355
- for (i = 0, ii = names.length; i < ii; ++i) {
356
- var span = document.createElement('span');
357
- span.textContent = 'Hi';
358
- span.style.fontFamily = names[i];
359
- div.appendChild(span);
360
- }
249
+ const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;
250
+ let data = this._loadTestFont;
251
+ const COMMENT_OFFSET = 976;
252
+ data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);
253
+ const CFF_CHECKSUM_OFFSET = 16;
254
+ const XXXX_VALUE = 0x58585858;
255
+ let checksum = int32(data, CFF_CHECKSUM_OFFSET);
361
256
 
362
- document.body.appendChild(div);
363
- isFontReady(loadTestFontId, function () {
364
- document.body.removeChild(div);
365
- request.complete();
366
- });
257
+ for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {
258
+ checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;
367
259
  }
368
- }, {
369
- key: "isFontLoadingAPISupported",
370
- get: function get() {
371
- var supported = typeof document !== 'undefined' && !!document.fonts;
372
260
 
373
- if (supported && typeof navigator !== 'undefined') {
374
- var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
261
+ if (i < loadTestFontId.length) {
262
+ checksum = checksum - XXXX_VALUE + int32(loadTestFontId + "XXX", i) | 0;
263
+ }
375
264
 
376
- if (m && m[1] < 63) {
377
- supported = false;
378
- }
379
- }
265
+ data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));
266
+ const url = `url(data:font/opentype;base64,${btoa(data)});`;
267
+ const rule = `@font-face {font-family:"${loadTestFontId}";src:${url}}`;
268
+ this.insertRule(rule);
269
+ const names = [];
380
270
 
381
- return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported);
271
+ for (i = 0, ii = fonts.length; i < ii; i++) {
272
+ names.push(fonts[i].loadedName);
382
273
  }
383
- }, {
384
- key: "isSyncFontLoadingSupported",
385
- get: function get() {
386
- var supported = false;
387
274
 
388
- if (typeof navigator === 'undefined') {
389
- supported = true;
390
- } else {
391
- var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
275
+ names.push(loadTestFontId);
392
276
 
393
- if (m && m[1] >= 14) {
394
- supported = true;
395
- }
396
- }
277
+ const div = this._document.createElement("div");
397
278
 
398
- return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported);
399
- }
400
- }, {
401
- key: "_loadTestFont",
402
- get: function get() {
403
- var getLoadTestFont = function getLoadTestFont() {
404
- return atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA' + 'FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA' + 'ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA' + 'AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1' + 'AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD' + '6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM' + 'AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D' + 'IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA' + 'AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA' + 'AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB' + 'AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY' + 'AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA' + 'AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA' + 'AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC' + 'AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3' + 'Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj' + 'FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==');
405
- };
406
-
407
- return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont());
279
+ div.style.visibility = "hidden";
280
+ div.style.width = div.style.height = "10px";
281
+ div.style.position = "absolute";
282
+ div.style.top = div.style.left = "0px";
283
+
284
+ for (i = 0, ii = names.length; i < ii; ++i) {
285
+ const span = this._document.createElement("span");
286
+
287
+ span.textContent = "Hi";
288
+ span.style.fontFamily = names[i];
289
+ div.appendChild(span);
408
290
  }
409
- }]);
410
291
 
411
- return GenericFontLoader;
412
- }(BaseFontLoader);
413
- }
414
- var IsEvalSupportedCached = {
415
- get value() {
416
- return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)());
417
- }
292
+ this._document.body.appendChild(div);
293
+
294
+ isFontReady(loadTestFontId, () => {
295
+ this._document.body.removeChild(div);
418
296
 
419
- };
420
-
421
- var FontFaceObject =
422
- /*#__PURE__*/
423
- function () {
424
- function FontFaceObject(translatedData, _ref2) {
425
- var _ref2$isEvalSupported = _ref2.isEvalSupported,
426
- isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported,
427
- _ref2$disableFontFace = _ref2.disableFontFace,
428
- disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace,
429
- _ref2$ignoreErrors = _ref2.ignoreErrors,
430
- ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors,
431
- _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature,
432
- onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe,
433
- _ref2$fontRegistry = _ref2.fontRegistry,
434
- fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry;
435
-
436
- _classCallCheck(this, FontFaceObject);
297
+ request.complete();
298
+ });
299
+ }
437
300
 
301
+ };
302
+ }
303
+
304
+ class FontFaceObject {
305
+ constructor(translatedData, {
306
+ isEvalSupported = true,
307
+ disableFontFace = false,
308
+ ignoreErrors = false,
309
+ onUnsupportedFeature = null,
310
+ fontRegistry = null
311
+ }) {
438
312
  this.compiledGlyphs = Object.create(null);
439
313
 
440
- for (var i in translatedData) {
314
+ for (const i in translatedData) {
441
315
  this[i] = translatedData[i];
442
316
  }
443
317
 
@@ -448,98 +322,92 @@ function () {
448
322
  this.fontRegistry = fontRegistry;
449
323
  }
450
324
 
451
- _createClass(FontFaceObject, [{
452
- key: "createNativeFontFace",
453
- value: function createNativeFontFace() {
454
- if (!this.data || this.disableFontFace) {
455
- return null;
456
- }
457
-
458
- var nativeFontFace = new FontFace(this.loadedName, this.data, {});
325
+ createNativeFontFace() {
326
+ if (!this.data || this.disableFontFace) {
327
+ return null;
328
+ }
459
329
 
460
- if (this.fontRegistry) {
461
- this.fontRegistry.registerFont(this);
462
- }
330
+ const nativeFontFace = new FontFace(this.loadedName, this.data, {});
463
331
 
464
- return nativeFontFace;
332
+ if (this.fontRegistry) {
333
+ this.fontRegistry.registerFont(this);
465
334
  }
466
- }, {
467
- key: "createFontFaceRule",
468
- value: function createFontFaceRule() {
469
- if (!this.data || this.disableFontFace) {
470
- return null;
471
- }
472
335
 
473
- var data = (0, _util.bytesToString)(new Uint8Array(this.data));
474
- var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");");
475
- var rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}");
336
+ return nativeFontFace;
337
+ }
476
338
 
477
- if (this.fontRegistry) {
478
- this.fontRegistry.registerFont(this, url);
479
- }
339
+ createFontFaceRule() {
340
+ if (!this.data || this.disableFontFace) {
341
+ return null;
342
+ }
480
343
 
481
- return rule;
344
+ const data = (0, _util.bytesToString)(new Uint8Array(this.data));
345
+ const url = `url(data:${this.mimetype};base64,${btoa(data)});`;
346
+ const rule = `@font-face {font-family:"${this.loadedName}";src:${url}}`;
347
+
348
+ if (this.fontRegistry) {
349
+ this.fontRegistry.registerFont(this, url);
482
350
  }
483
- }, {
484
- key: "getPathGenerator",
485
- value: function getPathGenerator(objs, character) {
486
- if (this.compiledGlyphs[character] !== undefined) {
487
- return this.compiledGlyphs[character];
488
- }
489
351
 
490
- var cmds, current;
352
+ return rule;
353
+ }
491
354
 
492
- try {
493
- cmds = objs.get(this.loadedName + '_path_' + character);
494
- } catch (ex) {
495
- if (!this.ignoreErrors) {
496
- throw ex;
497
- }
355
+ getPathGenerator(objs, character) {
356
+ if (this.compiledGlyphs[character] !== undefined) {
357
+ return this.compiledGlyphs[character];
358
+ }
498
359
 
499
- if (this._onUnsupportedFeature) {
500
- this._onUnsupportedFeature({
501
- featureId: _util.UNSUPPORTED_FEATURES.font
502
- });
503
- }
360
+ let cmds, current;
504
361
 
505
- (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\"."));
506
- return this.compiledGlyphs[character] = function (c, size) {};
362
+ try {
363
+ cmds = objs.get(this.loadedName + "_path_" + character);
364
+ } catch (ex) {
365
+ if (!this.ignoreErrors) {
366
+ throw ex;
507
367
  }
508
368
 
509
- if (this.isEvalSupported && IsEvalSupportedCached.value) {
510
- var args,
511
- js = '';
369
+ if (this._onUnsupportedFeature) {
370
+ this._onUnsupportedFeature({
371
+ featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath
372
+ });
373
+ }
512
374
 
513
- for (var i = 0, ii = cmds.length; i < ii; i++) {
514
- current = cmds[i];
375
+ (0, _util.warn)(`getPathGenerator - ignoring character: "${ex}".`);
376
+ return this.compiledGlyphs[character] = function (c, size) {};
377
+ }
378
+
379
+ if (this.isEvalSupported && _util.IsEvalSupportedCached.value) {
380
+ let args,
381
+ js = "";
515
382
 
516
- if (current.args !== undefined) {
517
- args = current.args.join(',');
518
- } else {
519
- args = '';
520
- }
383
+ for (let i = 0, ii = cmds.length; i < ii; i++) {
384
+ current = cmds[i];
521
385
 
522
- js += 'c.' + current.cmd + '(' + args + ');\n';
386
+ if (current.args !== undefined) {
387
+ args = current.args.join(",");
388
+ } else {
389
+ args = "";
523
390
  }
524
391
 
525
- return this.compiledGlyphs[character] = new Function('c', 'size', js);
392
+ js += "c." + current.cmd + "(" + args + ");\n";
526
393
  }
527
394
 
528
- return this.compiledGlyphs[character] = function (c, size) {
529
- for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) {
530
- current = cmds[_i];
395
+ return this.compiledGlyphs[character] = new Function("c", "size", js);
396
+ }
531
397
 
532
- if (current.cmd === 'scale') {
533
- current.args = [size, -size];
534
- }
398
+ return this.compiledGlyphs[character] = function (c, size) {
399
+ for (let i = 0, ii = cmds.length; i < ii; i++) {
400
+ current = cmds[i];
535
401
 
536
- c[current.cmd].apply(c, current.args);
402
+ if (current.cmd === "scale") {
403
+ current.args = [size, -size];
537
404
  }
538
- };
539
- }
540
- }]);
541
405
 
542
- return FontFaceObject;
543
- }();
406
+ c[current.cmd].apply(c, current.args);
407
+ }
408
+ };
409
+ }
410
+
411
+ }
544
412
 
545
413
  exports.FontFaceObject = FontFaceObject;