pdfjs-dist 2.0.943 → 2.4.456

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 (192) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/README.md +4 -0
  3. package/bower.json +1 -1
  4. package/build/pdf.js +8286 -14230
  5. package/build/pdf.js.map +1 -1
  6. package/build/pdf.min.js +22 -1
  7. package/build/pdf.worker.entry.js +5 -3
  8. package/build/pdf.worker.js +25500 -26628
  9. package/build/pdf.worker.js.map +1 -1
  10. package/build/pdf.worker.min.js +22 -1
  11. package/es5/build/pdf.js +25473 -0
  12. package/es5/build/pdf.js.map +1 -0
  13. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  14. package/es5/build/pdf.worker.js +57878 -0
  15. package/es5/build/pdf.worker.js.map +1 -0
  16. package/es5/web/images/annotation-check.svg +11 -0
  17. package/es5/web/images/annotation-comment.svg +16 -0
  18. package/es5/web/images/annotation-help.svg +26 -0
  19. package/es5/web/images/annotation-insert.svg +10 -0
  20. package/es5/web/images/annotation-key.svg +11 -0
  21. package/es5/web/images/annotation-newparagraph.svg +11 -0
  22. package/es5/web/images/annotation-noicon.svg +7 -0
  23. package/es5/web/images/annotation-note.svg +42 -0
  24. package/es5/web/images/annotation-paragraph.svg +16 -0
  25. package/es5/web/images/loading-icon.gif +0 -0
  26. package/es5/web/images/shadow.png +0 -0
  27. package/es5/web/images/texture.png +0 -0
  28. package/es5/web/pdf_viewer.css +407 -0
  29. package/es5/web/pdf_viewer.js +7757 -0
  30. package/es5/web/pdf_viewer.js.map +1 -0
  31. package/image_decoders/pdf.image_decoders.js +2887 -4094
  32. package/image_decoders/pdf.image_decoders.js.map +1 -1
  33. package/image_decoders/pdf.image_decoders.min.js +22 -1
  34. package/lib/README.md +7 -0
  35. package/lib/core/annotation.js +855 -778
  36. package/lib/core/arithmetic_decoder.js +325 -311
  37. package/lib/core/bidi.js +117 -50
  38. package/lib/core/ccitt.js +251 -89
  39. package/lib/core/ccitt_stream.js +26 -16
  40. package/lib/core/cff_parser.js +525 -197
  41. package/lib/core/charsets.js +6 -5
  42. package/lib/core/chunked_stream.js +541 -406
  43. package/lib/core/cmap.js +368 -253
  44. package/lib/core/colorspace.js +781 -800
  45. package/lib/core/core_utils.js +152 -0
  46. package/lib/core/crypto.js +609 -422
  47. package/lib/core/document.js +649 -481
  48. package/lib/core/encodings.js +33 -24
  49. package/lib/core/evaluator.js +1471 -736
  50. package/lib/core/font_renderer.js +289 -149
  51. package/lib/core/fonts.js +1067 -413
  52. package/lib/core/function.js +517 -287
  53. package/lib/core/glyphlist.js +4529 -4527
  54. package/lib/core/image.js +232 -114
  55. package/lib/core/image_utils.js +94 -0
  56. package/lib/core/jbig2.js +711 -342
  57. package/lib/core/jbig2_stream.js +31 -19
  58. package/lib/core/jpeg_stream.js +151 -26
  59. package/lib/core/jpg.js +433 -181
  60. package/lib/core/jpx.js +551 -143
  61. package/lib/core/jpx_stream.js +40 -28
  62. package/lib/core/metrics.js +2931 -2931
  63. package/lib/core/murmurhash3.js +104 -97
  64. package/lib/core/obj.js +1561 -1053
  65. package/lib/core/operator_list.js +192 -64
  66. package/lib/core/parser.js +1162 -864
  67. package/lib/core/pattern.js +224 -75
  68. package/lib/core/pdf_manager.js +154 -285
  69. package/lib/core/primitives.js +145 -69
  70. package/lib/core/ps_parser.js +212 -162
  71. package/lib/core/standard_fonts.js +245 -244
  72. package/lib/core/stream.js +353 -81
  73. package/lib/core/type1_parser.js +218 -68
  74. package/lib/core/unicode.js +1682 -1655
  75. package/lib/core/worker.js +233 -302
  76. package/lib/core/worker_stream.js +168 -0
  77. package/lib/display/annotation_layer.js +808 -862
  78. package/lib/display/api.js +1778 -1462
  79. package/lib/display/api_compatibility.js +14 -9
  80. package/lib/display/canvas.js +463 -140
  81. package/lib/display/content_disposition.js +86 -58
  82. package/lib/display/display_utils.js +524 -0
  83. package/lib/display/fetch_stream.js +202 -274
  84. package/lib/display/font_loader.js +311 -333
  85. package/lib/display/metadata.js +98 -88
  86. package/lib/display/network.js +343 -347
  87. package/lib/display/network_utils.js +46 -26
  88. package/lib/display/node_stream.js +326 -404
  89. package/lib/display/pattern_helper.js +168 -69
  90. package/lib/display/svg.js +1296 -885
  91. package/lib/display/text_layer.js +229 -103
  92. package/lib/display/transport_stream.js +290 -250
  93. package/lib/display/webgl.js +116 -83
  94. package/lib/display/worker_options.js +6 -5
  95. package/lib/display/xml_parser.js +358 -337
  96. package/lib/examples/node/domstubs.js +95 -39
  97. package/lib/pdf.js +49 -31
  98. package/lib/pdf.worker.js +7 -5
  99. package/lib/shared/compatibility.js +3 -145
  100. package/lib/shared/is_node.js +8 -7
  101. package/lib/shared/message_handler.js +367 -314
  102. package/lib/shared/util.js +421 -415
  103. package/lib/test/unit/annotation_spec.js +1570 -690
  104. package/lib/test/unit/api_spec.js +855 -493
  105. package/lib/test/unit/bidi_spec.js +12 -12
  106. package/lib/test/unit/cff_parser_spec.js +88 -61
  107. package/lib/test/unit/clitests_helper.js +9 -12
  108. package/lib/test/unit/cmap_spec.js +140 -88
  109. package/lib/test/unit/colorspace_spec.js +204 -152
  110. package/lib/test/unit/core_utils_spec.js +211 -0
  111. package/lib/test/unit/crypto_spec.js +194 -182
  112. package/lib/test/unit/custom_spec.js +50 -64
  113. package/lib/test/unit/display_svg_spec.js +53 -38
  114. package/lib/test/unit/display_utils_spec.js +263 -0
  115. package/lib/test/unit/document_spec.js +17 -22
  116. package/lib/test/unit/encodings_spec.js +15 -57
  117. package/lib/test/unit/evaluator_spec.js +90 -83
  118. package/lib/test/unit/fetch_stream_spec.js +111 -0
  119. package/lib/test/unit/function_spec.js +219 -205
  120. package/lib/test/unit/jasmine-boot.js +68 -39
  121. package/lib/test/unit/message_handler_spec.js +187 -160
  122. package/lib/test/unit/metadata_spec.js +87 -34
  123. package/lib/test/unit/murmurhash3_spec.js +13 -13
  124. package/lib/test/unit/network_spec.js +26 -59
  125. package/lib/test/unit/network_utils_spec.js +187 -121
  126. package/lib/test/unit/node_stream_spec.js +98 -90
  127. package/lib/test/unit/parser_spec.js +173 -131
  128. package/lib/test/unit/pdf_find_controller_spec.js +148 -67
  129. package/lib/test/unit/pdf_find_utils_spec.js +35 -34
  130. package/lib/test/unit/pdf_history_spec.js +45 -33
  131. package/lib/test/unit/primitives_spec.js +161 -126
  132. package/lib/test/unit/stream_spec.js +22 -15
  133. package/lib/test/unit/test_utils.js +149 -98
  134. package/lib/test/unit/testreporter.js +36 -18
  135. package/lib/test/unit/type1_parser_spec.js +46 -44
  136. package/lib/test/unit/ui_utils_spec.js +388 -372
  137. package/lib/test/unit/unicode_spec.js +49 -46
  138. package/lib/test/unit/util_spec.js +144 -248
  139. package/lib/web/annotation_layer_builder.js +75 -95
  140. package/lib/web/app.js +1538 -1147
  141. package/lib/web/app_options.js +116 -104
  142. package/lib/web/base_viewer.js +950 -775
  143. package/lib/web/chromecom.js +217 -225
  144. package/lib/web/debugger.js +236 -148
  145. package/lib/web/download_manager.js +50 -50
  146. package/lib/web/firefox_print_service.js +51 -33
  147. package/lib/web/firefoxcom.js +225 -352
  148. package/lib/web/genericcom.js +30 -93
  149. package/lib/web/genericl10n.js +26 -143
  150. package/lib/web/grab_to_pan.js +57 -33
  151. package/lib/web/interfaces.js +105 -232
  152. package/lib/web/overlay_manager.js +73 -227
  153. package/lib/web/password_prompt.js +44 -62
  154. package/lib/web/pdf_attachment_viewer.js +118 -123
  155. package/lib/web/pdf_cursor_tools.js +89 -93
  156. package/lib/web/pdf_document_properties.js +242 -281
  157. package/lib/web/pdf_find_bar.js +157 -163
  158. package/lib/web/pdf_find_controller.js +598 -454
  159. package/lib/web/pdf_find_utils.js +32 -16
  160. package/lib/web/pdf_history.js +481 -355
  161. package/lib/web/pdf_link_service.js +355 -323
  162. package/lib/web/pdf_outline_viewer.js +167 -152
  163. package/lib/web/pdf_page_view.js +511 -457
  164. package/lib/web/pdf_presentation_mode.js +347 -335
  165. package/lib/web/pdf_print_service.js +133 -103
  166. package/lib/web/pdf_rendering_queue.js +98 -100
  167. package/lib/web/pdf_sidebar.js +323 -299
  168. package/lib/web/pdf_sidebar_resizer.js +107 -108
  169. package/lib/web/pdf_single_page_viewer.js +94 -146
  170. package/lib/web/pdf_thumbnail_view.js +319 -269
  171. package/lib/web/pdf_thumbnail_viewer.js +219 -199
  172. package/lib/web/pdf_viewer.component.js +111 -32
  173. package/lib/web/pdf_viewer.js +61 -101
  174. package/lib/web/preferences.js +87 -272
  175. package/lib/web/secondary_toolbar.js +207 -220
  176. package/lib/web/text_layer_builder.js +322 -322
  177. package/lib/web/toolbar.js +227 -180
  178. package/lib/web/ui_utils.js +476 -421
  179. package/lib/web/view_history.js +59 -208
  180. package/lib/web/viewer_compatibility.js +9 -6
  181. package/package.json +2 -9
  182. package/web/pdf_viewer.css +36 -22
  183. package/web/pdf_viewer.js +4407 -4516
  184. package/web/pdf_viewer.js.map +1 -1
  185. package/webpack.js +14 -5
  186. package/external/streams/streams-lib.js +0 -3962
  187. package/external/url/url-lib.js +0 -627
  188. package/lib/display/dom_utils.js +0 -441
  189. package/lib/shared/streams_polyfill.js +0 -39
  190. package/lib/shared/url_polyfill.js +0 -50
  191. package/lib/test/unit/dom_utils_spec.js +0 -89
  192. package/lib/web/dom_events.js +0 -140
@@ -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 2018 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.
@@ -19,67 +19,57 @@
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.WebGLContext = undefined;
27
+ exports.WebGLContext = void 0;
28
28
 
29
- var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
29
+ var _util = require("../shared/util.js");
30
30
 
31
- var _util = require('../shared/util');
31
+ class WebGLContext {
32
+ constructor({
33
+ enable = false
34
+ }) {
35
+ this._enabled = enable === true;
36
+ }
32
37
 
33
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
38
+ get isEnabled() {
39
+ let enabled = this._enabled;
34
40
 
35
- var WebGLContext = function () {
36
- function WebGLContext(_ref) {
37
- var _ref$enable = _ref.enable,
38
- enable = _ref$enable === undefined ? false : _ref$enable;
41
+ if (enabled) {
42
+ enabled = WebGLUtils.tryInitGL();
43
+ }
39
44
 
40
- _classCallCheck(this, WebGLContext);
45
+ return (0, _util.shadow)(this, "isEnabled", enabled);
46
+ }
41
47
 
42
- this._enabled = enable === true;
48
+ composeSMask({
49
+ layer,
50
+ mask,
51
+ properties
52
+ }) {
53
+ return WebGLUtils.composeSMask(layer, mask, properties);
43
54
  }
44
55
 
45
- _createClass(WebGLContext, [{
46
- key: 'composeSMask',
47
- value: function composeSMask(_ref2) {
48
- var layer = _ref2.layer,
49
- mask = _ref2.mask,
50
- properties = _ref2.properties;
56
+ drawFigures({
57
+ width,
58
+ height,
59
+ backgroundColor,
60
+ figures,
61
+ context
62
+ }) {
63
+ return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);
64
+ }
51
65
 
52
- return WebGLUtils.composeSMask(layer, mask, properties);
53
- }
54
- }, {
55
- key: 'drawFigures',
56
- value: function drawFigures(_ref3) {
57
- var width = _ref3.width,
58
- height = _ref3.height,
59
- backgroundColor = _ref3.backgroundColor,
60
- figures = _ref3.figures,
61
- context = _ref3.context;
62
-
63
- return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);
64
- }
65
- }, {
66
- key: 'clear',
67
- value: function clear() {
68
- WebGLUtils.cleanup();
69
- }
70
- }, {
71
- key: 'isEnabled',
72
- get: function get() {
73
- var enabled = this._enabled;
74
- if (enabled) {
75
- enabled = WebGLUtils.tryInitGL();
76
- }
77
- return (0, _util.shadow)(this, 'isEnabled', enabled);
78
- }
79
- }]);
66
+ clear() {
67
+ WebGLUtils.cleanup();
68
+ }
69
+
70
+ }
80
71
 
81
- return WebGLContext;
82
- }();
72
+ exports.WebGLContext = WebGLContext;
83
73
 
84
74
  var WebGLUtils = function WebGLUtilsClosure() {
85
75
  function loadShader(gl, code, shaderType) {
@@ -87,31 +77,41 @@ var WebGLUtils = function WebGLUtilsClosure() {
87
77
  gl.shaderSource(shader, code);
88
78
  gl.compileShader(shader);
89
79
  var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
80
+
90
81
  if (!compiled) {
91
82
  var errorMsg = gl.getShaderInfoLog(shader);
92
- throw new Error('Error during shader compilation: ' + errorMsg);
83
+ throw new Error("Error during shader compilation: " + errorMsg);
93
84
  }
85
+
94
86
  return shader;
95
87
  }
88
+
96
89
  function createVertexShader(gl, code) {
97
90
  return loadShader(gl, code, gl.VERTEX_SHADER);
98
91
  }
92
+
99
93
  function createFragmentShader(gl, code) {
100
94
  return loadShader(gl, code, gl.FRAGMENT_SHADER);
101
95
  }
96
+
102
97
  function createProgram(gl, shaders) {
103
98
  var program = gl.createProgram();
99
+
104
100
  for (var i = 0, ii = shaders.length; i < ii; ++i) {
105
101
  gl.attachShader(program, shaders[i]);
106
102
  }
103
+
107
104
  gl.linkProgram(program);
108
105
  var linked = gl.getProgramParameter(program, gl.LINK_STATUS);
106
+
109
107
  if (!linked) {
110
108
  var errorMsg = gl.getProgramInfoLog(program);
111
- throw new Error('Error during program linking: ' + errorMsg);
109
+ throw new Error("Error during program linking: " + errorMsg);
112
110
  }
111
+
113
112
  return program;
114
113
  }
114
+
115
115
  function createTexture(gl, image, textureId) {
116
116
  gl.activeTexture(textureId);
117
117
  var texture = gl.createTexture();
@@ -123,15 +123,21 @@ var WebGLUtils = function WebGLUtilsClosure() {
123
123
  gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
124
124
  return texture;
125
125
  }
126
+
126
127
  var currentGL, currentCanvas;
128
+
127
129
  function generateGL() {
128
130
  if (currentGL) {
129
131
  return;
130
132
  }
131
- currentCanvas = document.createElement('canvas');
132
- currentGL = currentCanvas.getContext('webgl', { premultipliedalpha: false });
133
+
134
+ currentCanvas = document.createElement("canvas");
135
+ currentGL = currentCanvas.getContext("webgl", {
136
+ premultipliedalpha: false
137
+ });
133
138
  }
134
- var smaskVertexShaderCode = '\
139
+
140
+ var smaskVertexShaderCode = "\
135
141
  attribute vec2 a_position; \
136
142
  attribute vec2 a_texCoord; \
137
143
  \
@@ -144,8 +150,8 @@ var WebGLUtils = function WebGLUtilsClosure() {
144
150
  gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \
145
151
  \
146
152
  v_texCoord = a_texCoord; \
147
- } ';
148
- var smaskFragmentShaderCode = '\
153
+ } ";
154
+ var smaskFragmentShaderCode = "\
149
155
  precision mediump float; \
150
156
  \
151
157
  uniform vec4 u_backdrop; \
@@ -172,8 +178,9 @@ var WebGLUtils = function WebGLUtilsClosure() {
172
178
  imageColor.a *= lum; \
173
179
  imageColor.rgb *= imageColor.a; \
174
180
  gl_FragColor = imageColor; \
175
- } ';
181
+ } ";
176
182
  var smaskCache = null;
183
+
177
184
  function initSmaskGL() {
178
185
  var canvas, gl;
179
186
  generateGL();
@@ -188,13 +195,13 @@ var WebGLUtils = function WebGLUtilsClosure() {
188
195
  var cache = {};
189
196
  cache.gl = gl;
190
197
  cache.canvas = canvas;
191
- cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
192
- cache.positionLocation = gl.getAttribLocation(program, 'a_position');
193
- cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop');
194
- cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype');
195
- var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord');
196
- var texLayerLocation = gl.getUniformLocation(program, 'u_image');
197
- var texMaskLocation = gl.getUniformLocation(program, 'u_mask');
198
+ cache.resolutionLocation = gl.getUniformLocation(program, "u_resolution");
199
+ cache.positionLocation = gl.getAttribLocation(program, "a_position");
200
+ cache.backdropLocation = gl.getUniformLocation(program, "u_backdrop");
201
+ cache.subtypeLocation = gl.getUniformLocation(program, "u_subtype");
202
+ var texCoordLocation = gl.getAttribLocation(program, "a_texCoord");
203
+ var texLayerLocation = gl.getUniformLocation(program, "u_image");
204
+ var texMaskLocation = gl.getUniformLocation(program, "u_mask");
198
205
  var texCoordBuffer = gl.createBuffer();
199
206
  gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);
200
207
  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW);
@@ -204,12 +211,15 @@ var WebGLUtils = function WebGLUtilsClosure() {
204
211
  gl.uniform1i(texMaskLocation, 1);
205
212
  smaskCache = cache;
206
213
  }
214
+
207
215
  function composeSMask(layer, mask, properties) {
208
216
  var width = layer.width,
209
217
  height = layer.height;
218
+
210
219
  if (!smaskCache) {
211
220
  initSmaskGL();
212
221
  }
222
+
213
223
  var cache = smaskCache,
214
224
  canvas = cache.canvas,
215
225
  gl = cache.gl;
@@ -217,12 +227,14 @@ var WebGLUtils = function WebGLUtilsClosure() {
217
227
  canvas.height = height;
218
228
  gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
219
229
  gl.uniform2f(cache.resolutionLocation, width, height);
230
+
220
231
  if (properties.backdrop) {
221
232
  gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1);
222
233
  } else {
223
234
  gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);
224
235
  }
225
- gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0);
236
+
237
+ gl.uniform1i(cache.subtypeLocation, properties.subtype === "Luminosity" ? 1 : 0);
226
238
  var texture = createTexture(gl, layer, gl.TEXTURE0);
227
239
  var maskTexture = createTexture(gl, mask, gl.TEXTURE1);
228
240
  var buffer = gl.createBuffer();
@@ -241,7 +253,8 @@ var WebGLUtils = function WebGLUtilsClosure() {
241
253
  gl.deleteBuffer(buffer);
242
254
  return canvas;
243
255
  }
244
- var figuresVertexShaderCode = '\
256
+
257
+ var figuresVertexShaderCode = "\
245
258
  attribute vec2 a_position; \
246
259
  attribute vec3 a_color; \
247
260
  \
@@ -257,16 +270,17 @@ var WebGLUtils = function WebGLUtilsClosure() {
257
270
  gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \
258
271
  \
259
272
  v_color = vec4(a_color / 255.0, 1.0); \
260
- } ';
261
- var figuresFragmentShaderCode = '\
273
+ } ";
274
+ var figuresFragmentShaderCode = "\
262
275
  precision mediump float; \
263
276
  \
264
277
  varying vec4 v_color; \
265
278
  \
266
279
  void main() { \
267
280
  gl_FragColor = v_color; \
268
- } ';
281
+ } ";
269
282
  var figuresCache = null;
283
+
270
284
  function initFiguresGL() {
271
285
  var canvas, gl;
272
286
  generateGL();
@@ -281,17 +295,19 @@ var WebGLUtils = function WebGLUtilsClosure() {
281
295
  var cache = {};
282
296
  cache.gl = gl;
283
297
  cache.canvas = canvas;
284
- cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
285
- cache.scaleLocation = gl.getUniformLocation(program, 'u_scale');
286
- cache.offsetLocation = gl.getUniformLocation(program, 'u_offset');
287
- cache.positionLocation = gl.getAttribLocation(program, 'a_position');
288
- cache.colorLocation = gl.getAttribLocation(program, 'a_color');
298
+ cache.resolutionLocation = gl.getUniformLocation(program, "u_resolution");
299
+ cache.scaleLocation = gl.getUniformLocation(program, "u_scale");
300
+ cache.offsetLocation = gl.getUniformLocation(program, "u_offset");
301
+ cache.positionLocation = gl.getAttribLocation(program, "a_position");
302
+ cache.colorLocation = gl.getAttribLocation(program, "a_color");
289
303
  figuresCache = cache;
290
304
  }
305
+
291
306
  function drawFigures(width, height, backgroundColor, figures, context) {
292
307
  if (!figuresCache) {
293
308
  initFiguresGL();
294
309
  }
310
+
295
311
  var cache = figuresCache,
296
312
  canvas = cache.canvas,
297
313
  gl = cache.gl;
@@ -301,33 +317,40 @@ var WebGLUtils = function WebGLUtilsClosure() {
301
317
  gl.uniform2f(cache.resolutionLocation, width, height);
302
318
  var count = 0;
303
319
  var i, ii, rows;
320
+
304
321
  for (i = 0, ii = figures.length; i < ii; i++) {
305
322
  switch (figures[i].type) {
306
- case 'lattice':
323
+ case "lattice":
307
324
  rows = figures[i].coords.length / figures[i].verticesPerRow | 0;
308
325
  count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;
309
326
  break;
310
- case 'triangles':
327
+
328
+ case "triangles":
311
329
  count += figures[i].coords.length;
312
330
  break;
313
331
  }
314
332
  }
333
+
315
334
  var coords = new Float32Array(count * 2);
316
335
  var colors = new Uint8Array(count * 3);
317
336
  var coordsMap = context.coords,
318
337
  colorsMap = context.colors;
319
338
  var pIndex = 0,
320
339
  cIndex = 0;
340
+
321
341
  for (i = 0, ii = figures.length; i < ii; i++) {
322
342
  var figure = figures[i],
323
343
  ps = figure.coords,
324
344
  cs = figure.colors;
345
+
325
346
  switch (figure.type) {
326
- case 'lattice':
347
+ case "lattice":
327
348
  var cols = figure.verticesPerRow;
328
349
  rows = ps.length / cols | 0;
350
+
329
351
  for (var row = 1; row < rows; row++) {
330
352
  var offset = row * cols + 1;
353
+
331
354
  for (var col = 1; col < cols; col++, offset++) {
332
355
  coords[pIndex] = coordsMap[ps[offset - cols - 1]];
333
356
  coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];
@@ -363,8 +386,10 @@ var WebGLUtils = function WebGLUtilsClosure() {
363
386
  cIndex += 18;
364
387
  }
365
388
  }
389
+
366
390
  break;
367
- case 'triangles':
391
+
392
+ case "triangles":
368
393
  for (var j = 0, jj = ps.length; j < jj; j++) {
369
394
  coords[pIndex] = coordsMap[ps[j]];
370
395
  coords[pIndex + 1] = coordsMap[ps[j] + 1];
@@ -374,14 +399,17 @@ var WebGLUtils = function WebGLUtilsClosure() {
374
399
  pIndex += 2;
375
400
  cIndex += 3;
376
401
  }
402
+
377
403
  break;
378
404
  }
379
405
  }
406
+
380
407
  if (backgroundColor) {
381
408
  gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);
382
409
  } else {
383
410
  gl.clearColor(0, 0, 0, 0);
384
411
  }
412
+
385
413
  gl.clear(gl.COLOR_BUFFER_BIT);
386
414
  var coordsBuffer = gl.createBuffer();
387
415
  gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);
@@ -401,29 +429,34 @@ var WebGLUtils = function WebGLUtilsClosure() {
401
429
  gl.deleteBuffer(colorsBuffer);
402
430
  return canvas;
403
431
  }
432
+
404
433
  return {
405
- tryInitGL: function tryInitGL() {
434
+ tryInitGL() {
406
435
  try {
407
436
  generateGL();
408
437
  return !!currentGL;
409
438
  } catch (ex) {}
439
+
410
440
  return false;
411
441
  },
412
442
 
413
- composeSMask: composeSMask,
414
- drawFigures: drawFigures,
415
- cleanup: function cleanup() {
443
+ composeSMask,
444
+ drawFigures,
445
+
446
+ cleanup() {
416
447
  if (smaskCache && smaskCache.canvas) {
417
448
  smaskCache.canvas.width = 0;
418
449
  smaskCache.canvas.height = 0;
419
450
  }
451
+
420
452
  if (figuresCache && figuresCache.canvas) {
421
453
  figuresCache.canvas.width = 0;
422
454
  figuresCache.canvas.height = 0;
423
455
  }
456
+
424
457
  smaskCache = null;
425
458
  figuresCache = null;
426
459
  }
460
+
427
461
  };
428
- }();
429
- exports.WebGLContext = WebGLContext;
462
+ }();
@@ -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 2018 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.
@@ -19,12 +19,13 @@
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
- var GlobalWorkerOptions = Object.create(null);
27
+ exports.GlobalWorkerOptions = void 0;
28
+ const GlobalWorkerOptions = Object.create(null);
29
+ exports.GlobalWorkerOptions = GlobalWorkerOptions;
28
30
  GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;
29
- GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc;
30
- exports.GlobalWorkerOptions = GlobalWorkerOptions;
31
+ GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? "" : GlobalWorkerOptions.workerSrc;