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
@@ -0,0 +1,87 @@
1
+ /**
2
+ * @licstart The following is the entire license notice for the
3
+ * Javascript code in this page
4
+ *
5
+ * Copyright 2020 Mozilla Foundation
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ *
19
+ * @licend The above is the entire license notice for the
20
+ * Javascript code in this page
21
+ */
22
+ "use strict";
23
+
24
+ Object.defineProperty(exports, "__esModule", {
25
+ value: true
26
+ });
27
+ exports.NodeCMapReaderFactory = exports.NodeCanvasFactory = void 0;
28
+
29
+ var _display_utils = require("./display_utils.js");
30
+
31
+ var _is_node = require("../shared/is_node.js");
32
+
33
+ var _util = require("../shared/util.js");
34
+
35
+ let NodeCanvasFactory = class {
36
+ constructor() {
37
+ (0, _util.unreachable)("Not implemented: NodeCanvasFactory");
38
+ }
39
+
40
+ };
41
+ exports.NodeCanvasFactory = NodeCanvasFactory;
42
+ let NodeCMapReaderFactory = class {
43
+ constructor() {
44
+ (0, _util.unreachable)("Not implemented: NodeCMapReaderFactory");
45
+ }
46
+
47
+ };
48
+ exports.NodeCMapReaderFactory = NodeCMapReaderFactory;
49
+
50
+ if (_is_node.isNodeJS) {
51
+ exports.NodeCanvasFactory = NodeCanvasFactory = class extends _display_utils.BaseCanvasFactory {
52
+ create(width, height) {
53
+ if (width <= 0 || height <= 0) {
54
+ throw new Error("Invalid canvas size");
55
+ }
56
+
57
+ const Canvas = require("canvas");
58
+
59
+ const canvas = Canvas.createCanvas(width, height);
60
+ return {
61
+ canvas,
62
+ context: canvas.getContext("2d")
63
+ };
64
+ }
65
+
66
+ };
67
+ exports.NodeCMapReaderFactory = NodeCMapReaderFactory = class extends _display_utils.BaseCMapReaderFactory {
68
+ _fetchData(url, compressionType) {
69
+ return new Promise((resolve, reject) => {
70
+ const fs = require("fs");
71
+
72
+ fs.readFile(url, (error, data) => {
73
+ if (error || !data) {
74
+ reject(new Error(error));
75
+ return;
76
+ }
77
+
78
+ resolve({
79
+ cMapData: new Uint8Array(data),
80
+ compressionType
81
+ });
82
+ });
83
+ });
84
+ }
85
+
86
+ };
87
+ }
@@ -0,0 +1,184 @@
1
+ /**
2
+ * @licstart The following is the entire license notice for the
3
+ * Javascript code in this page
4
+ *
5
+ * Copyright 2020 Mozilla Foundation
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ *
19
+ * @licend The above is the entire license notice for the
20
+ * Javascript code in this page
21
+ */
22
+ "use strict";
23
+
24
+ Object.defineProperty(exports, "__esModule", {
25
+ value: true
26
+ });
27
+ exports.OptionalContentConfig = void 0;
28
+
29
+ var _util = require("../shared/util.js");
30
+
31
+ class OptionalContentGroup {
32
+ constructor(name, intent) {
33
+ this.visible = true;
34
+ this.name = name;
35
+ this.intent = intent;
36
+ }
37
+
38
+ }
39
+
40
+ class OptionalContentConfig {
41
+ constructor(data) {
42
+ this.name = null;
43
+ this.creator = null;
44
+ this._order = null;
45
+ this._groups = new Map();
46
+
47
+ if (data === null) {
48
+ return;
49
+ }
50
+
51
+ this.name = data.name;
52
+ this.creator = data.creator;
53
+ this._order = data.order;
54
+
55
+ for (const group of data.groups) {
56
+ this._groups.set(group.id, new OptionalContentGroup(group.name, group.intent));
57
+ }
58
+
59
+ if (data.baseState === "OFF") {
60
+ for (const group of this._groups) {
61
+ group.visible = false;
62
+ }
63
+ }
64
+
65
+ for (const on of data.on) {
66
+ this._groups.get(on).visible = true;
67
+ }
68
+
69
+ for (const off of data.off) {
70
+ this._groups.get(off).visible = false;
71
+ }
72
+ }
73
+
74
+ isVisible(group) {
75
+ if (group.type === "OCG") {
76
+ if (!this._groups.has(group.id)) {
77
+ (0, _util.warn)(`Optional content group not found: ${group.id}`);
78
+ return true;
79
+ }
80
+
81
+ return this._groups.get(group.id).visible;
82
+ } else if (group.type === "OCMD") {
83
+ if (group.expression) {
84
+ (0, _util.warn)("Visibility expression not supported yet.");
85
+ }
86
+
87
+ if (!group.policy || group.policy === "AnyOn") {
88
+ for (const id of group.ids) {
89
+ if (!this._groups.has(id)) {
90
+ (0, _util.warn)(`Optional content group not found: ${id}`);
91
+ return true;
92
+ }
93
+
94
+ if (this._groups.get(id).visible) {
95
+ return true;
96
+ }
97
+ }
98
+
99
+ return false;
100
+ } else if (group.policy === "AllOn") {
101
+ for (const id of group.ids) {
102
+ if (!this._groups.has(id)) {
103
+ (0, _util.warn)(`Optional content group not found: ${id}`);
104
+ return true;
105
+ }
106
+
107
+ if (!this._groups.get(id).visible) {
108
+ return false;
109
+ }
110
+ }
111
+
112
+ return true;
113
+ } else if (group.policy === "AnyOff") {
114
+ for (const id of group.ids) {
115
+ if (!this._groups.has(id)) {
116
+ (0, _util.warn)(`Optional content group not found: ${id}`);
117
+ return true;
118
+ }
119
+
120
+ if (!this._groups.get(id).visible) {
121
+ return true;
122
+ }
123
+ }
124
+
125
+ return false;
126
+ } else if (group.policy === "AllOff") {
127
+ for (const id of group.ids) {
128
+ if (!this._groups.has(id)) {
129
+ (0, _util.warn)(`Optional content group not found: ${id}`);
130
+ return true;
131
+ }
132
+
133
+ if (this._groups.get(id).visible) {
134
+ return false;
135
+ }
136
+ }
137
+
138
+ return true;
139
+ }
140
+
141
+ (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);
142
+ return true;
143
+ }
144
+
145
+ (0, _util.warn)(`Unknown group type ${group.type}.`);
146
+ return true;
147
+ }
148
+
149
+ setVisibility(id, visible = true) {
150
+ if (!this._groups.has(id)) {
151
+ (0, _util.warn)(`Optional content group not found: ${id}`);
152
+ return;
153
+ }
154
+
155
+ this._groups.get(id).visible = !!visible;
156
+ }
157
+
158
+ getOrder() {
159
+ if (!this._groups.size) {
160
+ return null;
161
+ }
162
+
163
+ if (this._order) {
164
+ return this._order.slice();
165
+ }
166
+
167
+ return Array.from(this._groups.keys());
168
+ }
169
+
170
+ getGroups() {
171
+ if (!this._groups.size) {
172
+ return null;
173
+ }
174
+
175
+ return Object.fromEntries(this._groups);
176
+ }
177
+
178
+ getGroup(id) {
179
+ return this._groups.get(id) || null;
180
+ }
181
+
182
+ }
183
+
184
+ exports.OptionalContentConfig = OptionalContentConfig;
@@ -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.
@@ -27,25 +27,40 @@ Object.defineProperty(exports, "__esModule", {
27
27
  exports.getShadingPatternFromIR = getShadingPatternFromIR;
28
28
  exports.TilingPattern = void 0;
29
29
 
30
- var _util = require("../shared/util");
30
+ var _util = require("../shared/util.js");
31
31
 
32
32
  var ShadingIRs = {};
33
+
34
+ function applyBoundingBox(ctx, bbox) {
35
+ if (!bbox || typeof Path2D === "undefined") {
36
+ return;
37
+ }
38
+
39
+ const width = bbox[2] - bbox[0];
40
+ const height = bbox[3] - bbox[1];
41
+ const region = new Path2D();
42
+ region.rect(bbox[0], bbox[1], width, height);
43
+ ctx.clip(region);
44
+ }
45
+
33
46
  ShadingIRs.RadialAxial = {
34
47
  fromIR: function RadialAxial_fromIR(raw) {
35
48
  var type = raw[1];
36
- var colorStops = raw[2];
37
- var p0 = raw[3];
38
- var p1 = raw[4];
39
- var r0 = raw[5];
40
- var r1 = raw[6];
49
+ var bbox = raw[2];
50
+ var colorStops = raw[3];
51
+ var p0 = raw[4];
52
+ var p1 = raw[5];
53
+ var r0 = raw[6];
54
+ var r1 = raw[7];
41
55
  return {
42
- type: 'Pattern',
56
+ type: "Pattern",
43
57
  getPattern: function RadialAxial_getPattern(ctx) {
58
+ applyBoundingBox(ctx, bbox);
44
59
  var grad;
45
60
 
46
- if (type === 'axial') {
61
+ if (type === "axial") {
47
62
  grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);
48
- } else if (type === 'radial') {
63
+ } else if (type === "radial") {
49
64
  grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);
50
65
  }
51
66
 
@@ -119,24 +134,50 @@ var createMeshCanvas = function createMeshCanvasClosure() {
119
134
  maxY = Math.round(y3);
120
135
  var xa, car, cag, cab;
121
136
  var xb, cbr, cbg, cbb;
122
- var k;
123
137
 
124
138
  for (var y = minY; y <= maxY; y++) {
125
139
  if (y < y2) {
126
- k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2);
140
+ let k;
141
+
142
+ if (y < y1) {
143
+ k = 0;
144
+ } else if (y1 === y2) {
145
+ k = 1;
146
+ } else {
147
+ k = (y1 - y) / (y1 - y2);
148
+ }
149
+
127
150
  xa = x1 - (x1 - x2) * k;
128
151
  car = c1r - (c1r - c2r) * k;
129
152
  cag = c1g - (c1g - c2g) * k;
130
153
  cab = c1b - (c1b - c2b) * k;
131
154
  } else {
132
- k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3);
155
+ let k;
156
+
157
+ if (y > y3) {
158
+ k = 1;
159
+ } else if (y2 === y3) {
160
+ k = 0;
161
+ } else {
162
+ k = (y2 - y) / (y2 - y3);
163
+ }
164
+
133
165
  xa = x2 - (x2 - x3) * k;
134
166
  car = c2r - (c2r - c3r) * k;
135
167
  cag = c2g - (c2g - c3g) * k;
136
168
  cab = c2b - (c2b - c3b) * k;
137
169
  }
138
170
 
139
- k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3);
171
+ let k;
172
+
173
+ if (y < y1) {
174
+ k = 0;
175
+ } else if (y > y3) {
176
+ k = 1;
177
+ } else {
178
+ k = (y1 - y) / (y1 - y3);
179
+ }
180
+
140
181
  xb = x1 - (x1 - x3) * k;
141
182
  cbr = c1r - (c1r - c3r) * k;
142
183
  cbg = c1g - (c1g - c3g) * k;
@@ -147,7 +188,13 @@ var createMeshCanvas = function createMeshCanvasClosure() {
147
188
 
148
189
  for (var x = x1_; x <= x2_; x++) {
149
190
  k = (xa - x) / (xa - xb);
150
- k = k < 0 ? 0 : k > 1 ? 1 : k;
191
+
192
+ if (k < 0) {
193
+ k = 0;
194
+ } else if (k > 1) {
195
+ k = 1;
196
+ }
197
+
151
198
  bytes[j++] = car - (car - cbr) * k | 0;
152
199
  bytes[j++] = cag - (cag - cbg) * k | 0;
153
200
  bytes[j++] = cab - (cab - cbb) * k | 0;
@@ -162,7 +209,7 @@ var createMeshCanvas = function createMeshCanvasClosure() {
162
209
  var i, ii;
163
210
 
164
211
  switch (figure.type) {
165
- case 'lattice':
212
+ case "lattice":
166
213
  var verticesPerRow = figure.verticesPerRow;
167
214
  var rows = Math.floor(ps.length / verticesPerRow) - 1;
168
215
  var cols = verticesPerRow - 1;
@@ -178,7 +225,7 @@ var createMeshCanvas = function createMeshCanvasClosure() {
178
225
 
179
226
  break;
180
227
 
181
- case 'triangles':
228
+ case "triangles":
182
229
  for (i = 0, ii = ps.length; i < ii; i += 3) {
183
230
  drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);
184
231
  }
@@ -186,7 +233,7 @@ var createMeshCanvas = function createMeshCanvasClosure() {
186
233
  break;
187
234
 
188
235
  default:
189
- throw new Error('illegal figure');
236
+ throw new Error("illegal figure");
190
237
  }
191
238
  }
192
239
 
@@ -203,8 +250,8 @@ var createMeshCanvas = function createMeshCanvasClosure() {
203
250
  var scaleX = boundsWidth / width;
204
251
  var scaleY = boundsHeight / height;
205
252
  var context = {
206
- coords: coords,
207
- colors: colors,
253
+ coords,
254
+ colors,
208
255
  offsetX: -offsetX,
209
256
  offsetY: -offsetY,
210
257
  scaleX: 1 / scaleX,
@@ -216,17 +263,17 @@ var createMeshCanvas = function createMeshCanvasClosure() {
216
263
 
217
264
  if (webGLContext.isEnabled) {
218
265
  canvas = webGLContext.drawFigures({
219
- width: width,
220
- height: height,
221
- backgroundColor: backgroundColor,
222
- figures: figures,
223
- context: context
266
+ width,
267
+ height,
268
+ backgroundColor,
269
+ figures,
270
+ context
224
271
  });
225
- tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);
272
+ tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight, false);
226
273
  tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);
227
274
  canvas = tmpCanvas.canvas;
228
275
  } else {
229
- tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);
276
+ tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight, false);
230
277
  var tmpCtx = tmpCanvas.context;
231
278
  var data = tmpCtx.createImageData(width, height);
232
279
 
@@ -250,11 +297,11 @@ var createMeshCanvas = function createMeshCanvasClosure() {
250
297
  }
251
298
 
252
299
  return {
253
- canvas: canvas,
300
+ canvas,
254
301
  offsetX: offsetX - BORDER_SIZE * scaleX,
255
302
  offsetY: offsetY - BORDER_SIZE * scaleY,
256
- scaleX: scaleX,
257
- scaleY: scaleY
303
+ scaleX,
304
+ scaleY
258
305
  };
259
306
  }
260
307
 
@@ -268,10 +315,12 @@ ShadingIRs.Mesh = {
268
315
  var figures = raw[4];
269
316
  var bounds = raw[5];
270
317
  var matrix = raw[6];
318
+ var bbox = raw[7];
271
319
  var background = raw[8];
272
320
  return {
273
- type: 'Pattern',
321
+ type: "Pattern",
274
322
  getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {
323
+ applyBoundingBox(ctx, bbox);
275
324
  var scale;
276
325
 
277
326
  if (shadingFill) {
@@ -298,7 +347,7 @@ ShadingIRs.Mesh = {
298
347
 
299
348
  ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);
300
349
  ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);
301
- return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat');
350
+ return ctx.createPattern(temporaryPatternCanvas.canvas, "no-repeat");
302
351
  }
303
352
  };
304
353
  }
@@ -306,9 +355,9 @@ ShadingIRs.Mesh = {
306
355
  ShadingIRs.Dummy = {
307
356
  fromIR: function Dummy_fromIR() {
308
357
  return {
309
- type: 'Pattern',
358
+ type: "Pattern",
310
359
  getPattern: function Dummy_fromIR_getPattern() {
311
- return 'hotpink';
360
+ return "hotpink";
312
361
  }
313
362
  };
314
363
  }
@@ -318,7 +367,7 @@ function getShadingPatternFromIR(raw) {
318
367
  var shadingIR = ShadingIRs[raw[0]];
319
368
 
320
369
  if (!shadingIR) {
321
- throw new Error("Unknown IR type: ".concat(raw[0]));
370
+ throw new Error(`Unknown IR type: ${raw[0]}`);
322
371
  }
323
372
 
324
373
  return shadingIR.fromIR(raw);
@@ -342,7 +391,7 @@ var TilingPattern = function TilingPatternClosure() {
342
391
  this.color = color;
343
392
  this.canvasGraphicsFactory = canvasGraphicsFactory;
344
393
  this.baseTransform = baseTransform;
345
- this.type = 'Pattern';
394
+ this.type = "Pattern";
346
395
  this.ctx = ctx;
347
396
  }
348
397
 
@@ -356,7 +405,7 @@ var TilingPattern = function TilingPatternClosure() {
356
405
  var tilingType = this.tilingType;
357
406
  var color = this.color;
358
407
  var canvasGraphicsFactory = this.canvasGraphicsFactory;
359
- (0, _util.info)('TilingType: ' + tilingType);
408
+ (0, _util.info)("TilingType: " + tilingType);
360
409
  var x0 = bbox[0],
361
410
  y0 = bbox[1],
362
411
  x1 = bbox[2],
@@ -369,7 +418,7 @@ var TilingPattern = function TilingPatternClosure() {
369
418
  var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];
370
419
  var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);
371
420
  var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);
372
- var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', dimx.size, dimy.size, true);
421
+ var tmpCanvas = owner.cachedCanvases.getCanvas("pattern", dimx.size, dimy.size, true);
373
422
  var tmpCtx = tmpCanvas.context;
374
423
  var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);
375
424
  graphics.groupLevel = owner.groupLevel;
@@ -394,8 +443,8 @@ var TilingPattern = function TilingPatternClosure() {
394
443
  }
395
444
 
396
445
  return {
397
- scale: scale,
398
- size: size
446
+ scale,
447
+ size
399
448
  };
400
449
  },
401
450
  clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {
@@ -408,8 +457,8 @@ var TilingPattern = function TilingPatternClosure() {
408
457
  }
409
458
  },
410
459
  setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {
411
- var context = graphics.ctx,
412
- current = graphics.current;
460
+ const context = graphics.ctx,
461
+ current = graphics.current;
413
462
 
414
463
  switch (paintType) {
415
464
  case PaintType.COLORED:
@@ -430,7 +479,7 @@ var TilingPattern = function TilingPatternClosure() {
430
479
  break;
431
480
 
432
481
  default:
433
- throw new _util.FormatError("Unsupported paint type: ".concat(paintType));
482
+ throw new _util.FormatError(`Unsupported paint type: ${paintType}`);
434
483
  }
435
484
  },
436
485
  getPattern: function TilingPattern_getPattern(ctx, owner) {
@@ -438,7 +487,7 @@ var TilingPattern = function TilingPatternClosure() {
438
487
  ctx.setTransform.apply(ctx, this.baseTransform);
439
488
  ctx.transform.apply(ctx, this.matrix);
440
489
  var temporaryPatternCanvas = this.createPatternCanvas(owner);
441
- return ctx.createPattern(temporaryPatternCanvas, 'repeat');
490
+ return ctx.createPattern(temporaryPatternCanvas, "repeat");
442
491
  }
443
492
  };
444
493
  return TilingPattern;