pdfjs-dist 2.0.487 → 2.1.266

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 (161) hide show
  1. package/bower.json +1 -1
  2. package/build/pdf.js +15564 -9476
  3. package/build/pdf.js.map +1 -1
  4. package/build/pdf.min.js +1 -1
  5. package/build/pdf.worker.js +46644 -36309
  6. package/build/pdf.worker.js.map +1 -1
  7. package/build/pdf.worker.min.js +1 -1
  8. package/external/url/url-lib.js +627 -0
  9. package/image_decoders/pdf.image_decoders.js +11430 -0
  10. package/image_decoders/pdf.image_decoders.js.map +1 -0
  11. package/image_decoders/pdf.image_decoders.min.js +1 -0
  12. package/lib/core/annotation.js +406 -131
  13. package/lib/core/arithmetic_decoder.js +275 -245
  14. package/lib/core/bidi.js +65 -6
  15. package/lib/core/ccitt.js +173 -18
  16. package/lib/core/ccitt_stream.js +15 -6
  17. package/lib/core/cff_parser.js +376 -53
  18. package/lib/core/charsets.js +5 -4
  19. package/lib/core/chunked_stream.js +387 -149
  20. package/lib/core/cmap.js +310 -75
  21. package/lib/core/colorspace.js +874 -594
  22. package/lib/core/crypto.js +290 -45
  23. package/lib/core/document.js +545 -260
  24. package/lib/core/encodings.js +19 -10
  25. package/lib/core/evaluator.js +725 -147
  26. package/lib/core/font_renderer.js +360 -91
  27. package/lib/core/fonts.js +791 -186
  28. package/lib/core/function.js +284 -71
  29. package/lib/core/glyphlist.js +3 -2
  30. package/lib/core/image.js +168 -61
  31. package/lib/core/jbig2.js +479 -66
  32. package/lib/core/jbig2_stream.js +19 -8
  33. package/lib/core/jpeg_stream.js +38 -13
  34. package/lib/core/jpg.js +252 -29
  35. package/lib/core/jpx.js +396 -6
  36. package/lib/core/jpx_stream.js +18 -6
  37. package/lib/core/metrics.js +4 -4
  38. package/lib/core/murmurhash3.js +24 -6
  39. package/lib/core/obj.js +1137 -475
  40. package/lib/core/operator_list.js +108 -6
  41. package/lib/core/parser.js +321 -68
  42. package/lib/core/pattern.js +145 -13
  43. package/lib/core/pdf_manager.js +321 -133
  44. package/lib/core/primitives.js +75 -22
  45. package/lib/core/ps_parser.js +134 -45
  46. package/lib/core/standard_fonts.js +10 -10
  47. package/lib/core/stream.js +313 -34
  48. package/lib/core/type1_parser.js +143 -13
  49. package/lib/core/unicode.js +31 -4
  50. package/lib/core/worker.js +210 -66
  51. package/lib/display/annotation_layer.js +361 -123
  52. package/lib/display/api.js +1454 -729
  53. package/lib/display/api_compatibility.js +11 -13
  54. package/lib/display/canvas.js +324 -29
  55. package/lib/display/content_disposition.js +83 -32
  56. package/lib/display/dom_utils.js +226 -41
  57. package/lib/display/fetch_stream.js +208 -84
  58. package/lib/display/font_loader.js +465 -236
  59. package/lib/display/metadata.js +38 -16
  60. package/lib/display/network.js +216 -51
  61. package/lib/display/network_utils.js +32 -19
  62. package/lib/display/node_stream.js +352 -169
  63. package/lib/display/pattern_helper.js +58 -7
  64. package/lib/display/svg.js +242 -29
  65. package/lib/display/text_layer.js +132 -18
  66. package/lib/display/transport_stream.js +171 -42
  67. package/lib/display/webgl.js +64 -18
  68. package/lib/display/worker_options.js +5 -4
  69. package/lib/display/xml_parser.js +166 -53
  70. package/lib/examples/node/domstubs.js +57 -4
  71. package/lib/pdf.js +21 -4
  72. package/lib/pdf.worker.js +5 -3
  73. package/lib/shared/compatibility.js +158 -564
  74. package/lib/shared/global_scope.js +2 -2
  75. package/lib/shared/is_node.js +4 -4
  76. package/lib/shared/message_handler.js +521 -0
  77. package/lib/shared/streams_polyfill.js +21 -17
  78. package/lib/shared/url_polyfill.js +56 -0
  79. package/lib/shared/util.js +295 -650
  80. package/lib/test/unit/annotation_spec.js +629 -345
  81. package/lib/test/unit/api_spec.js +555 -253
  82. package/lib/test/unit/bidi_spec.js +7 -7
  83. package/lib/test/unit/cff_parser_spec.js +40 -11
  84. package/lib/test/unit/clitests_helper.js +9 -7
  85. package/lib/test/unit/cmap_spec.js +80 -26
  86. package/lib/test/unit/colorspace_spec.js +99 -52
  87. package/lib/test/unit/crypto_spec.js +17 -5
  88. package/lib/test/unit/custom_spec.js +41 -53
  89. package/lib/test/unit/display_svg_spec.js +33 -17
  90. package/lib/test/unit/document_spec.js +3 -3
  91. package/lib/test/unit/dom_utils_spec.js +9 -9
  92. package/lib/test/unit/encodings_spec.js +25 -45
  93. package/lib/test/unit/evaluator_spec.js +34 -9
  94. package/lib/test/unit/function_spec.js +17 -5
  95. package/lib/test/unit/jasmine-boot.js +31 -18
  96. package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
  97. package/lib/test/unit/metadata_spec.js +71 -11
  98. package/lib/test/unit/murmurhash3_spec.js +3 -3
  99. package/lib/test/unit/network_spec.js +20 -5
  100. package/lib/test/unit/network_utils_spec.js +41 -14
  101. package/lib/test/unit/node_stream_spec.js +51 -27
  102. package/lib/test/unit/parser_spec.js +35 -8
  103. package/lib/test/unit/pdf_find_controller_spec.js +230 -0
  104. package/lib/test/unit/pdf_find_utils_spec.js +63 -0
  105. package/lib/test/unit/pdf_history_spec.js +21 -9
  106. package/lib/test/unit/primitives_spec.js +24 -4
  107. package/lib/test/unit/stream_spec.js +12 -4
  108. package/lib/test/unit/test_utils.js +90 -27
  109. package/lib/test/unit/testreporter.js +21 -3
  110. package/lib/test/unit/type1_parser_spec.js +8 -6
  111. package/lib/test/unit/ui_utils_spec.js +452 -14
  112. package/lib/test/unit/unicode_spec.js +14 -11
  113. package/lib/test/unit/util_spec.js +131 -9
  114. package/lib/web/annotation_layer_builder.js +39 -22
  115. package/lib/web/app.js +1240 -582
  116. package/lib/web/app_options.js +71 -41
  117. package/lib/web/base_viewer.js +508 -179
  118. package/lib/web/chromecom.js +261 -117
  119. package/lib/web/debugger.js +166 -22
  120. package/lib/web/download_manager.js +31 -13
  121. package/lib/web/firefox_print_service.js +17 -9
  122. package/lib/web/firefoxcom.js +283 -79
  123. package/lib/web/genericcom.js +89 -30
  124. package/lib/web/genericl10n.js +142 -30
  125. package/lib/web/grab_to_pan.js +26 -4
  126. package/lib/web/interfaces.js +170 -47
  127. package/lib/web/overlay_manager.js +235 -85
  128. package/lib/web/password_prompt.js +21 -13
  129. package/lib/web/pdf_attachment_viewer.js +38 -18
  130. package/lib/web/pdf_cursor_tools.js +39 -16
  131. package/lib/web/pdf_document_properties.js +80 -30
  132. package/lib/web/pdf_find_bar.js +84 -40
  133. package/lib/web/pdf_find_controller.js +495 -184
  134. package/lib/web/pdf_find_utils.js +111 -0
  135. package/lib/web/pdf_history.js +190 -53
  136. package/lib/web/pdf_link_service.js +137 -76
  137. package/lib/web/pdf_outline_viewer.js +73 -22
  138. package/lib/web/pdf_page_view.js +196 -63
  139. package/lib/web/pdf_presentation_mode.js +99 -34
  140. package/lib/web/pdf_print_service.js +57 -11
  141. package/lib/web/pdf_rendering_queue.js +27 -5
  142. package/lib/web/pdf_sidebar.js +120 -67
  143. package/lib/web/pdf_sidebar_resizer.js +42 -16
  144. package/lib/web/pdf_single_page_viewer.js +74 -66
  145. package/lib/web/pdf_thumbnail_view.js +103 -32
  146. package/lib/web/pdf_thumbnail_viewer.js +64 -24
  147. package/lib/web/pdf_viewer.component.js +112 -32
  148. package/lib/web/pdf_viewer.js +91 -52
  149. package/lib/web/preferences.js +275 -80
  150. package/lib/web/secondary_toolbar.js +165 -40
  151. package/lib/web/text_layer_builder.js +162 -65
  152. package/lib/web/toolbar.js +78 -43
  153. package/lib/web/ui_utils.js +462 -136
  154. package/lib/web/view_history.js +215 -67
  155. package/lib/web/viewer_compatibility.js +4 -13
  156. package/package.json +5 -4
  157. package/web/pdf_viewer.css +58 -1
  158. package/web/pdf_viewer.js +6346 -3919
  159. package/web/pdf_viewer.js.map +1 -1
  160. package/lib/test/unit/fonts_spec.js +0 -81
  161. package/lib/web/dom_events.js +0 -137
@@ -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 2017 Mozilla Foundation
5
+ * Copyright 2018 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.
@@ -19,295 +19,524 @@
19
19
  * @licend The above is the entire license notice for the
20
20
  * Javascript code in this page
21
21
  */
22
- 'use strict';
22
+ "use strict";
23
23
 
24
24
  Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
- exports.FontLoader = exports.FontFaceObject = undefined;
28
-
29
- var _util = require('../shared/util');
30
-
31
- function FontLoader(docId) {
32
- this.docId = docId;
33
- this.styleElement = null;
34
- this.nativeFontFaces = [];
35
- this.loadTestFontId = 0;
36
- this.loadingContext = {
37
- requests: [],
38
- nextRequestId: 0
39
- };
40
- }
41
- FontLoader.prototype = {
42
- insertRule: function fontLoaderInsertRule(rule) {
43
- var styleElement = this.styleElement;
44
- if (!styleElement) {
45
- styleElement = this.styleElement = document.createElement('style');
46
- styleElement.id = 'PDFJS_FONT_STYLE_TAG_' + this.docId;
47
- document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement);
48
- }
49
- var styleSheet = styleElement.sheet;
50
- styleSheet.insertRule(rule, styleSheet.cssRules.length);
51
- },
52
- clear: function fontLoaderClear() {
53
- if (this.styleElement) {
54
- this.styleElement.remove();
55
- this.styleElement = null;
27
+ exports.FontLoader = exports.FontFaceObject = void 0;
28
+
29
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
30
+
31
+ var _util = require("../shared/util");
32
+
33
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34
+
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); }
36
+
37
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
38
+
39
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
40
+
41
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
42
+
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); }
44
+
45
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
46
+
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); } }
48
+
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); }); }; }
50
+
51
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
52
+
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); } }
54
+
55
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
56
+
57
+ var BaseFontLoader =
58
+ /*#__PURE__*/
59
+ function () {
60
+ function BaseFontLoader(_ref) {
61
+ var docId = _ref.docId,
62
+ onUnsupportedFeature = _ref.onUnsupportedFeature;
63
+
64
+ _classCallCheck(this, BaseFontLoader);
65
+
66
+ if (this.constructor === BaseFontLoader) {
67
+ (0, _util.unreachable)('Cannot initialize BaseFontLoader.');
56
68
  }
57
- this.nativeFontFaces.forEach(function (nativeFontFace) {
58
- document.fonts.delete(nativeFontFace);
59
- });
60
- this.nativeFontFaces.length = 0;
69
+
70
+ this.docId = docId;
71
+ this._onUnsupportedFeature = onUnsupportedFeature;
72
+ this.nativeFontFaces = [];
73
+ this.styleElement = null;
61
74
  }
62
- };
63
- {
64
- var getLoadTestFont = function getLoadTestFont() {
65
- return atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQ' + 'AABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwA' + 'AAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbm' + 'FtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAA' + 'AADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6A' + 'ABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAA' + 'MQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAA' + 'AAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAA' + 'AAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQ' + 'AAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMA' + 'AQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAA' + 'EAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAA' + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAA' + 'AAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgc' + 'A/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF' + 'hYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQA' + 'AAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAg' + 'ABAAAAAAAAAAAD6AAAAAAAAA==');
66
- };
67
- Object.defineProperty(FontLoader.prototype, 'loadTestFont', {
68
- get: function get() {
69
- return (0, _util.shadow)(this, 'loadTestFont', getLoadTestFont());
70
- },
71
-
72
- configurable: true
73
- });
74
- FontLoader.prototype.addNativeFontFace = function fontLoader_addNativeFontFace(nativeFontFace) {
75
- this.nativeFontFaces.push(nativeFontFace);
76
- document.fonts.add(nativeFontFace);
77
- };
78
- FontLoader.prototype.bind = function fontLoaderBind(fonts, callback) {
79
- var rules = [];
80
- var fontsToLoad = [];
81
- var fontLoadPromises = [];
82
- var getNativeFontPromise = function getNativeFontPromise(nativeFontFace) {
83
- return nativeFontFace.loaded.catch(function (e) {
84
- (0, _util.warn)('Failed to load font "' + nativeFontFace.family + '": ' + e);
85
- });
86
- };
87
- var isFontLoadingAPISupported = FontLoader.isFontLoadingAPISupported && !FontLoader.isSyncFontLoadingSupported;
88
- for (var i = 0, ii = fonts.length; i < ii; i++) {
89
- var font = fonts[i];
90
- if (font.attached || font.loading === false) {
91
- continue;
92
- }
93
- font.attached = true;
94
- if (isFontLoadingAPISupported) {
95
- var nativeFontFace = font.createNativeFontFace();
96
- if (nativeFontFace) {
97
- this.addNativeFontFace(nativeFontFace);
98
- fontLoadPromises.push(getNativeFontPromise(nativeFontFace));
99
- }
100
- } else {
101
- var rule = font.createFontFaceRule();
102
- if (rule) {
103
- this.insertRule(rule);
104
- rules.push(rule);
105
- fontsToLoad.push(font);
106
- }
75
+
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);
107
91
  }
92
+
93
+ var styleSheet = styleElement.sheet;
94
+ styleSheet.insertRule(rule, styleSheet.cssRules.length);
108
95
  }
109
- var request = this.queueLoadingCallback(callback);
110
- if (isFontLoadingAPISupported) {
111
- Promise.all(fontLoadPromises).then(function () {
112
- request.complete();
96
+ }, {
97
+ key: "clear",
98
+ value: function clear() {
99
+ this.nativeFontFaces.forEach(function (nativeFontFace) {
100
+ document.fonts.delete(nativeFontFace);
113
101
  });
114
- } else if (rules.length > 0 && !FontLoader.isSyncFontLoadingSupported) {
115
- this.prepareFontLoadEvent(rules, fontsToLoad, request);
116
- } else {
117
- request.complete();
118
- }
119
- };
120
- FontLoader.prototype.queueLoadingCallback = function FontLoader_queueLoadingCallback(callback) {
121
- function LoadLoader_completeRequest() {
122
- (0, _util.assert)(!request.end, 'completeRequest() cannot be called twice');
123
- request.end = Date.now();
124
- while (context.requests.length > 0 && context.requests[0].end) {
125
- var otherRequest = context.requests.shift();
126
- setTimeout(otherRequest.callback, 0);
102
+ this.nativeFontFaces.length = 0;
103
+
104
+ if (this.styleElement) {
105
+ this.styleElement.remove();
106
+ this.styleElement = null;
127
107
  }
128
108
  }
129
- var context = this.loadingContext;
130
- var requestId = 'pdfjs-font-loading-' + context.nextRequestId++;
131
- var request = {
132
- id: requestId,
133
- complete: LoadLoader_completeRequest,
134
- callback: callback,
135
- started: Date.now()
136
- };
137
- context.requests.push(request);
138
- return request;
139
- };
140
- FontLoader.prototype.prepareFontLoadEvent = function fontLoaderPrepareFontLoadEvent(rules, fonts, request) {
141
- function int32(data, offset) {
142
- return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;
143
- }
144
- function spliceString(s, offset, remove, insert) {
145
- var chunk1 = s.substr(0, offset);
146
- var chunk2 = s.substr(offset + remove);
147
- return chunk1 + insert + chunk2;
148
- }
149
- var i, ii;
150
- var canvas = document.createElement('canvas');
151
- canvas.width = 1;
152
- canvas.height = 1;
153
- var ctx = canvas.getContext('2d');
154
- var called = 0;
155
- function isFontReady(name, callback) {
156
- called++;
157
- if (called > 30) {
158
- (0, _util.warn)('Load test font never loaded.');
159
- callback();
160
- return;
161
- }
162
- ctx.font = '30px ' + name;
163
- ctx.fillText('.', 0, 20);
164
- var imageData = ctx.getImageData(0, 0, 1, 1);
165
- if (imageData.data[3] > 0) {
166
- callback();
167
- return;
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");
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");
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");
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
+ case "end":
194
+ return _context.stop();
195
+ }
196
+ }
197
+ }, _callee, this, [[7, 12]]);
198
+ }));
199
+
200
+ function bind(_x) {
201
+ return _bind.apply(this, arguments);
168
202
  }
169
- setTimeout(isFontReady.bind(null, name, callback));
203
+
204
+ return bind;
205
+ }()
206
+ }, {
207
+ key: "_queueLoadingCallback",
208
+ value: function _queueLoadingCallback(callback) {
209
+ (0, _util.unreachable)('Abstract method `_queueLoadingCallback`.');
170
210
  }
171
- var loadTestFontId = 'lt' + Date.now() + this.loadTestFontId++;
172
- var data = this.loadTestFont;
173
- var COMMENT_OFFSET = 976;
174
- data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);
175
- var CFF_CHECKSUM_OFFSET = 16;
176
- var XXXX_VALUE = 0x58585858;
177
- var checksum = int32(data, CFF_CHECKSUM_OFFSET);
178
- for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {
179
- checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;
211
+ }, {
212
+ key: "_prepareFontLoadEvent",
213
+ value: function _prepareFontLoadEvent(rules, fontsToLoad, request) {
214
+ (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.');
180
215
  }
181
- if (i < loadTestFontId.length) {
182
- checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0;
216
+ }, {
217
+ key: "isFontLoadingAPISupported",
218
+ get: function get() {
219
+ (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.');
183
220
  }
184
- data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));
185
- var url = 'url(data:font/opentype;base64,' + btoa(data) + ');';
186
- var rule = '@font-face { font-family:"' + loadTestFontId + '";src:' + url + '}';
187
- this.insertRule(rule);
188
- var names = [];
189
- for (i = 0, ii = fonts.length; i < ii; i++) {
190
- names.push(fonts[i].loadedName);
221
+ }, {
222
+ key: "isSyncFontLoadingSupported",
223
+ get: function get() {
224
+ (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.');
191
225
  }
192
- names.push(loadTestFontId);
193
- var div = document.createElement('div');
194
- div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;');
195
- for (i = 0, ii = names.length; i < ii; ++i) {
196
- var span = document.createElement('span');
197
- span.textContent = 'Hi';
198
- span.style.fontFamily = names[i];
199
- div.appendChild(span);
226
+ }, {
227
+ key: "_loadTestFont",
228
+ get: function get() {
229
+ (0, _util.unreachable)('Abstract method `_loadTestFont`.');
200
230
  }
201
- document.body.appendChild(div);
202
- isFontReady(loadTestFontId, function () {
203
- document.body.removeChild(div);
204
- request.complete();
205
- });
206
- };
207
- }
208
- {
209
- FontLoader.isFontLoadingAPISupported = typeof document !== 'undefined' && !!document.fonts;
210
- }
231
+ }]);
232
+
233
+ return BaseFontLoader;
234
+ }();
235
+
236
+ var FontLoader;
237
+ exports.FontLoader = FontLoader;
211
238
  {
212
- var isSyncFontLoadingSupported = function isSyncFontLoadingSupported() {
213
- if (typeof navigator === 'undefined') {
214
- return true;
215
- }
216
- var supported = false;
217
- var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
218
- if (m && m[1] >= 14) {
219
- supported = true;
239
+ exports.FontLoader = FontLoader =
240
+ /*#__PURE__*/
241
+ function (_BaseFontLoader) {
242
+ _inherits(GenericFontLoader, _BaseFontLoader);
243
+
244
+ function GenericFontLoader(docId) {
245
+ var _this2;
246
+
247
+ _classCallCheck(this, GenericFontLoader);
248
+
249
+ _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId));
250
+ _this2.loadingContext = {
251
+ requests: [],
252
+ nextRequestId: 0
253
+ };
254
+ _this2.loadTestFontId = 0;
255
+ return _this2;
220
256
  }
221
- return supported;
222
- };
223
- Object.defineProperty(FontLoader, 'isSyncFontLoadingSupported', {
224
- get: function get() {
225
- return (0, _util.shadow)(FontLoader, 'isSyncFontLoadingSupported', isSyncFontLoadingSupported());
226
- },
227
257
 
228
- enumerable: true,
229
- configurable: true
230
- });
258
+ _createClass(GenericFontLoader, [{
259
+ key: "_queueLoadingCallback",
260
+ value: function _queueLoadingCallback(callback) {
261
+ function completeRequest() {
262
+ (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.');
263
+ request.done = true;
264
+
265
+ while (context.requests.length > 0 && context.requests[0].done) {
266
+ var otherRequest = context.requests.shift();
267
+ setTimeout(otherRequest.callback, 0);
268
+ }
269
+ }
270
+
271
+ var context = this.loadingContext;
272
+ var request = {
273
+ id: "pdfjs-font-loading-".concat(context.nextRequestId++),
274
+ done: false,
275
+ complete: completeRequest,
276
+ callback: callback
277
+ };
278
+ context.requests.push(request);
279
+ return request;
280
+ }
281
+ }, {
282
+ key: "_prepareFontLoadEvent",
283
+ value: function _prepareFontLoadEvent(rules, fonts, request) {
284
+ function int32(data, offset) {
285
+ return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;
286
+ }
287
+
288
+ function spliceString(s, offset, remove, insert) {
289
+ var chunk1 = s.substring(0, offset);
290
+ var chunk2 = s.substring(offset + remove);
291
+ return chunk1 + insert + chunk2;
292
+ }
293
+
294
+ var i, ii;
295
+ var canvas = document.createElement('canvas');
296
+ canvas.width = 1;
297
+ canvas.height = 1;
298
+ var ctx = canvas.getContext('2d');
299
+ var called = 0;
300
+
301
+ function isFontReady(name, callback) {
302
+ called++;
303
+
304
+ if (called > 30) {
305
+ (0, _util.warn)('Load test font never loaded.');
306
+ callback();
307
+ return;
308
+ }
309
+
310
+ ctx.font = '30px ' + name;
311
+ ctx.fillText('.', 0, 20);
312
+ var imageData = ctx.getImageData(0, 0, 1, 1);
313
+
314
+ if (imageData.data[3] > 0) {
315
+ callback();
316
+ return;
317
+ }
318
+
319
+ setTimeout(isFontReady.bind(null, name, callback));
320
+ }
321
+
322
+ var loadTestFontId = "lt".concat(Date.now()).concat(this.loadTestFontId++);
323
+ var data = this._loadTestFont;
324
+ var COMMENT_OFFSET = 976;
325
+ data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);
326
+ var CFF_CHECKSUM_OFFSET = 16;
327
+ var XXXX_VALUE = 0x58585858;
328
+ var checksum = int32(data, CFF_CHECKSUM_OFFSET);
329
+
330
+ for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {
331
+ checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;
332
+ }
333
+
334
+ if (i < loadTestFontId.length) {
335
+ checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0;
336
+ }
337
+
338
+ data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));
339
+ var url = "url(data:font/opentype;base64,".concat(btoa(data), ");");
340
+ var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(url, "}");
341
+ this.insertRule(rule);
342
+ var names = [];
343
+
344
+ for (i = 0, ii = fonts.length; i < ii; i++) {
345
+ names.push(fonts[i].loadedName);
346
+ }
347
+
348
+ names.push(loadTestFontId);
349
+ var div = document.createElement('div');
350
+ div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;');
351
+
352
+ for (i = 0, ii = names.length; i < ii; ++i) {
353
+ var span = document.createElement('span');
354
+ span.textContent = 'Hi';
355
+ span.style.fontFamily = names[i];
356
+ div.appendChild(span);
357
+ }
358
+
359
+ document.body.appendChild(div);
360
+ isFontReady(loadTestFontId, function () {
361
+ document.body.removeChild(div);
362
+ request.complete();
363
+ });
364
+ }
365
+ }, {
366
+ key: "isFontLoadingAPISupported",
367
+ get: function get() {
368
+ var supported = typeof document !== 'undefined' && !!document.fonts;
369
+
370
+ if (supported && typeof navigator !== 'undefined') {
371
+ var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
372
+
373
+ if (m && m[1] < 63) {
374
+ supported = false;
375
+ }
376
+ }
377
+
378
+ return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported);
379
+ }
380
+ }, {
381
+ key: "isSyncFontLoadingSupported",
382
+ get: function get() {
383
+ var supported = false;
384
+
385
+ if (typeof navigator === 'undefined') {
386
+ supported = true;
387
+ } else {
388
+ var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
389
+
390
+ if (m && m[1] >= 14) {
391
+ supported = true;
392
+ }
393
+ }
394
+
395
+ return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported);
396
+ }
397
+ }, {
398
+ key: "_loadTestFont",
399
+ get: function get() {
400
+ var getLoadTestFont = function getLoadTestFont() {
401
+ 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==');
402
+ };
403
+
404
+ return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont());
405
+ }
406
+ }]);
407
+
408
+ return GenericFontLoader;
409
+ }(BaseFontLoader);
231
410
  }
232
411
  var IsEvalSupportedCached = {
233
412
  get value() {
234
413
  return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)());
235
414
  }
415
+
236
416
  };
237
- var FontFaceObject = function FontFaceObjectClosure() {
238
- function FontFaceObject(translatedData, _ref) {
239
- var _ref$isEvalSupported = _ref.isEvalSupported,
240
- isEvalSupported = _ref$isEvalSupported === undefined ? true : _ref$isEvalSupported,
241
- _ref$disableFontFace = _ref.disableFontFace,
242
- disableFontFace = _ref$disableFontFace === undefined ? false : _ref$disableFontFace,
243
- _ref$fontRegistry = _ref.fontRegistry,
244
- fontRegistry = _ref$fontRegistry === undefined ? null : _ref$fontRegistry;
417
+
418
+ var FontFaceObject =
419
+ /*#__PURE__*/
420
+ function () {
421
+ function FontFaceObject(translatedData, _ref2) {
422
+ var _ref2$isEvalSupported = _ref2.isEvalSupported,
423
+ isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported,
424
+ _ref2$disableFontFace = _ref2.disableFontFace,
425
+ disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace,
426
+ _ref2$ignoreErrors = _ref2.ignoreErrors,
427
+ ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors,
428
+ _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature,
429
+ onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe,
430
+ _ref2$fontRegistry = _ref2.fontRegistry,
431
+ fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry;
432
+
433
+ _classCallCheck(this, FontFaceObject);
245
434
 
246
435
  this.compiledGlyphs = Object.create(null);
436
+
247
437
  for (var i in translatedData) {
248
438
  this[i] = translatedData[i];
249
439
  }
440
+
250
441
  this.isEvalSupported = isEvalSupported !== false;
251
442
  this.disableFontFace = disableFontFace === true;
443
+ this.ignoreErrors = ignoreErrors === true;
444
+ this._onUnsupportedFeature = onUnsupportedFeature;
252
445
  this.fontRegistry = fontRegistry;
253
446
  }
254
- FontFaceObject.prototype = {
255
- createNativeFontFace: function FontFaceObject_createNativeFontFace() {
447
+
448
+ _createClass(FontFaceObject, [{
449
+ key: "createNativeFontFace",
450
+ value: function createNativeFontFace() {
256
451
  if (!this.data || this.disableFontFace) {
257
452
  return null;
258
453
  }
454
+
259
455
  var nativeFontFace = new FontFace(this.loadedName, this.data, {});
456
+
260
457
  if (this.fontRegistry) {
261
458
  this.fontRegistry.registerFont(this);
262
459
  }
460
+
263
461
  return nativeFontFace;
264
- },
265
- createFontFaceRule: function FontFaceObject_createFontFaceRule() {
462
+ }
463
+ }, {
464
+ key: "createFontFaceRule",
465
+ value: function createFontFaceRule() {
266
466
  if (!this.data || this.disableFontFace) {
267
467
  return null;
268
468
  }
469
+
269
470
  var data = (0, _util.bytesToString)(new Uint8Array(this.data));
270
- var fontName = this.loadedName;
271
- var url = 'url(data:' + this.mimetype + ';base64,' + btoa(data) + ');';
272
- var rule = '@font-face { font-family:"' + fontName + '";src:' + url + '}';
471
+ var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");");
472
+ var rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}");
473
+
273
474
  if (this.fontRegistry) {
274
475
  this.fontRegistry.registerFont(this, url);
275
476
  }
477
+
276
478
  return rule;
277
- },
278
- getPathGenerator: function FontFaceObject_getPathGenerator(objs, character) {
279
- if (!(character in this.compiledGlyphs)) {
280
- var cmds = objs.get(this.loadedName + '_path_' + character);
281
- var current, i, len;
282
- if (this.isEvalSupported && IsEvalSupportedCached.value) {
283
- var args,
284
- js = '';
285
- for (i = 0, len = cmds.length; i < len; i++) {
286
- current = cmds[i];
287
- if (current.args !== undefined) {
288
- args = current.args.join(',');
289
- } else {
290
- args = '';
291
- }
292
- js += 'c.' + current.cmd + '(' + args + ');\n';
479
+ }
480
+ }, {
481
+ key: "getPathGenerator",
482
+ value: function getPathGenerator(objs, character) {
483
+ if (this.compiledGlyphs[character] !== undefined) {
484
+ return this.compiledGlyphs[character];
485
+ }
486
+
487
+ var cmds, current;
488
+
489
+ try {
490
+ cmds = objs.get(this.loadedName + '_path_' + character);
491
+ } catch (ex) {
492
+ if (!this.ignoreErrors) {
493
+ throw ex;
494
+ }
495
+
496
+ if (this._onUnsupportedFeature) {
497
+ this._onUnsupportedFeature({
498
+ featureId: _util.UNSUPPORTED_FEATURES.font
499
+ });
500
+ }
501
+
502
+ (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\"."));
503
+ return this.compiledGlyphs[character] = function (c, size) {};
504
+ }
505
+
506
+ if (this.isEvalSupported && IsEvalSupportedCached.value) {
507
+ var args,
508
+ js = '';
509
+
510
+ for (var i = 0, ii = cmds.length; i < ii; i++) {
511
+ current = cmds[i];
512
+
513
+ if (current.args !== undefined) {
514
+ args = current.args.join(',');
515
+ } else {
516
+ args = '';
293
517
  }
294
- this.compiledGlyphs[character] = new Function('c', 'size', js);
295
- } else {
296
- this.compiledGlyphs[character] = function (c, size) {
297
- for (i = 0, len = cmds.length; i < len; i++) {
298
- current = cmds[i];
299
- if (current.cmd === 'scale') {
300
- current.args = [size, -size];
301
- }
302
- c[current.cmd].apply(c, current.args);
303
- }
304
- };
518
+
519
+ js += 'c.' + current.cmd + '(' + args + ');\n';
305
520
  }
521
+
522
+ return this.compiledGlyphs[character] = new Function('c', 'size', js);
306
523
  }
307
- return this.compiledGlyphs[character];
524
+
525
+ return this.compiledGlyphs[character] = function (c, size) {
526
+ for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) {
527
+ current = cmds[_i];
528
+
529
+ if (current.cmd === 'scale') {
530
+ current.args = [size, -size];
531
+ }
532
+
533
+ c[current.cmd].apply(c, current.args);
534
+ }
535
+ };
308
536
  }
309
- };
537
+ }]);
538
+
310
539
  return FontFaceObject;
311
540
  }();
312
- exports.FontFaceObject = FontFaceObject;
313
- exports.FontLoader = FontLoader;
541
+
542
+ exports.FontFaceObject = FontFaceObject;