pdfjs-dist 2.1.266 → 2.5.207

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 (191) 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 +8382 -18492
  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 +20417 -29816
  9. package/build/pdf.worker.js.map +1 -1
  10. package/build/pdf.worker.min.js +22 -1
  11. package/es5/build/pdf.js +25688 -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 +58239 -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 +403 -0
  29. package/es5/web/pdf_viewer.js +7742 -0
  30. package/es5/web/pdf_viewer.js.map +1 -0
  31. package/image_decoders/pdf.image_decoders.js +1475 -4897
  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 +750 -899
  36. package/lib/core/arithmetic_decoder.js +81 -97
  37. package/lib/core/bidi.js +54 -46
  38. package/lib/core/ccitt.js +88 -81
  39. package/lib/core/ccitt_stream.js +15 -14
  40. package/lib/core/cff_parser.js +235 -183
  41. package/lib/core/charsets.js +4 -4
  42. package/lib/core/chunked_stream.js +447 -542
  43. package/lib/core/cmap.js +222 -264
  44. package/lib/core/colorspace.js +699 -863
  45. package/lib/core/core_utils.js +152 -0
  46. package/lib/core/crypto.js +379 -437
  47. package/lib/core/document.js +573 -660
  48. package/lib/core/encodings.js +15 -15
  49. package/lib/core/evaluator.js +1103 -868
  50. package/lib/core/font_renderer.js +135 -178
  51. package/lib/core/fonts.js +570 -491
  52. package/lib/core/function.js +291 -288
  53. package/lib/core/glyphlist.js +4527 -4526
  54. package/lib/core/image.js +145 -149
  55. package/lib/core/image_utils.js +170 -0
  56. package/lib/core/jbig2.js +325 -316
  57. package/lib/core/jbig2_stream.js +18 -17
  58. package/lib/core/jpeg_stream.js +21 -26
  59. package/lib/core/jpg.js +284 -232
  60. package/lib/core/jpx.js +161 -143
  61. package/lib/core/jpx_stream.js +28 -28
  62. package/lib/core/metrics.js +2929 -2929
  63. package/lib/core/murmurhash3.js +90 -101
  64. package/lib/core/obj.js +1183 -1157
  65. package/lib/core/operator_list.js +99 -67
  66. package/lib/core/parser.js +972 -911
  67. package/lib/core/pattern.js +87 -70
  68. package/lib/core/pdf_manager.js +150 -315
  69. package/lib/core/primitives.js +83 -56
  70. package/lib/core/ps_parser.js +175 -214
  71. package/lib/core/standard_fonts.js +237 -236
  72. package/lib/core/stream.js +94 -74
  73. package/lib/core/type1_parser.js +87 -69
  74. package/lib/core/unicode.js +1654 -1654
  75. package/lib/core/worker.js +193 -390
  76. package/lib/core/worker_stream.js +168 -0
  77. package/lib/display/annotation_layer.js +741 -972
  78. package/lib/display/api.js +1500 -1791
  79. package/lib/display/api_compatibility.js +12 -17
  80. package/lib/display/canvas.js +165 -165
  81. package/lib/display/content_disposition.js +40 -59
  82. package/lib/display/display_utils.js +515 -0
  83. package/lib/display/fetch_stream.js +183 -298
  84. package/lib/display/font_loader.js +273 -413
  85. package/lib/display/metadata.js +86 -98
  86. package/lib/display/network.js +266 -359
  87. package/lib/display/network_utils.js +25 -18
  88. package/lib/display/node_stream.js +285 -458
  89. package/lib/display/pattern_helper.js +113 -65
  90. package/lib/display/svg.js +1166 -901
  91. package/lib/display/text_layer.js +156 -132
  92. package/lib/display/transport_stream.js +262 -278
  93. package/lib/display/webgl.js +70 -83
  94. package/lib/display/worker_options.js +3 -3
  95. package/lib/display/xml_parser.js +303 -392
  96. package/lib/examples/node/domstubs.js +40 -37
  97. package/lib/pdf.js +226 -59
  98. package/lib/pdf.worker.js +14 -6
  99. package/lib/shared/compatibility.js +3 -246
  100. package/lib/shared/is_node.js +7 -6
  101. package/lib/shared/message_handler.js +327 -332
  102. package/lib/shared/util.js +266 -416
  103. package/lib/test/unit/annotation_spec.js +1555 -701
  104. package/lib/test/unit/api_spec.js +802 -604
  105. package/lib/test/unit/bidi_spec.js +7 -7
  106. package/lib/test/unit/cff_parser_spec.js +84 -69
  107. package/lib/test/unit/clitests_helper.js +7 -9
  108. package/lib/test/unit/cmap_spec.js +74 -76
  109. package/lib/test/unit/colorspace_spec.js +166 -161
  110. package/lib/test/unit/core_utils_spec.js +211 -0
  111. package/lib/test/unit/crypto_spec.js +181 -181
  112. package/lib/test/unit/custom_spec.js +20 -22
  113. package/lib/test/unit/display_svg_spec.js +34 -39
  114. package/lib/test/unit/display_utils_spec.js +263 -0
  115. package/lib/test/unit/document_spec.js +16 -21
  116. package/lib/test/unit/encodings_spec.js +12 -34
  117. package/lib/test/unit/evaluator_spec.js +83 -83
  118. package/lib/test/unit/fetch_stream_spec.js +111 -0
  119. package/lib/test/unit/function_spec.js +206 -204
  120. package/lib/test/unit/jasmine-boot.js +46 -30
  121. package/lib/test/unit/message_handler_spec.js +173 -159
  122. package/lib/test/unit/metadata_spec.js +69 -69
  123. package/lib/test/unit/murmurhash3_spec.js +12 -12
  124. package/lib/test/unit/network_spec.js +13 -61
  125. package/lib/test/unit/network_utils_spec.js +183 -119
  126. package/lib/test/unit/node_stream_spec.js +78 -92
  127. package/lib/test/unit/parser_spec.js +172 -114
  128. package/lib/test/unit/pdf_find_controller_spec.js +55 -86
  129. package/lib/test/unit/pdf_find_utils_spec.js +32 -32
  130. package/lib/test/unit/pdf_history_spec.js +32 -32
  131. package/lib/test/unit/primitives_spec.js +140 -125
  132. package/lib/test/unit/stream_spec.js +16 -14
  133. package/lib/test/unit/test_utils.js +131 -143
  134. package/lib/test/unit/testreporter.js +19 -19
  135. package/lib/test/unit/type1_parser_spec.js +42 -42
  136. package/lib/test/unit/ui_utils_spec.js +297 -459
  137. package/lib/test/unit/unicode_spec.js +38 -38
  138. package/lib/test/unit/util_spec.js +121 -305
  139. package/lib/web/annotation_layer_builder.js +66 -103
  140. package/lib/web/app.js +1328 -1214
  141. package/lib/web/app_options.js +105 -107
  142. package/lib/web/base_viewer.js +824 -838
  143. package/lib/web/chromecom.js +165 -252
  144. package/lib/web/debugger.js +149 -205
  145. package/lib/web/download_manager.js +39 -55
  146. package/lib/web/firefox_print_service.js +37 -27
  147. package/lib/web/firefoxcom.js +212 -363
  148. package/lib/web/genericcom.js +26 -108
  149. package/lib/web/genericl10n.js +24 -153
  150. package/lib/web/grab_to_pan.js +32 -30
  151. package/lib/web/interfaces.js +80 -254
  152. package/lib/web/overlay_manager.js +70 -246
  153. package/lib/web/password_prompt.js +38 -64
  154. package/lib/web/pdf_attachment_viewer.js +113 -131
  155. package/lib/web/pdf_cursor_tools.js +75 -102
  156. package/lib/web/pdf_document_properties.js +221 -306
  157. package/lib/web/pdf_find_bar.js +136 -170
  158. package/lib/web/pdf_find_controller.js +491 -548
  159. package/lib/web/pdf_find_utils.js +13 -13
  160. package/lib/web/pdf_history.js +397 -406
  161. package/lib/web/pdf_link_service.js +304 -348
  162. package/lib/web/pdf_outline_viewer.js +140 -175
  163. package/lib/web/pdf_page_view.js +452 -523
  164. package/lib/web/pdf_presentation_mode.js +308 -357
  165. package/lib/web/pdf_print_service.js +90 -104
  166. package/lib/web/pdf_rendering_queue.js +84 -108
  167. package/lib/web/pdf_sidebar.js +276 -306
  168. package/lib/web/pdf_sidebar_resizer.js +92 -119
  169. package/lib/web/pdf_single_page_viewer.js +77 -126
  170. package/lib/web/pdf_thumbnail_view.js +276 -297
  171. package/lib/web/pdf_thumbnail_viewer.js +186 -206
  172. package/lib/web/pdf_viewer.component.js +20 -21
  173. package/lib/web/pdf_viewer.js +55 -115
  174. package/lib/web/preferences.js +82 -286
  175. package/lib/web/secondary_toolbar.js +164 -196
  176. package/lib/web/text_layer_builder.js +282 -339
  177. package/lib/web/toolbar.js +217 -210
  178. package/lib/web/ui_utils.js +267 -420
  179. package/lib/web/view_history.js +52 -226
  180. package/lib/web/viewer_compatibility.js +21 -6
  181. package/package.json +2 -9
  182. package/web/pdf_viewer.css +35 -25
  183. package/web/pdf_viewer.js +3489 -4855
  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 -494
  189. package/lib/shared/streams_polyfill.js +0 -43
  190. package/lib/shared/url_polyfill.js +0 -56
  191. package/lib/test/unit/dom_utils_spec.js +0 -89
@@ -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.
@@ -25,14 +25,7 @@ Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
27
  exports.ArithmeticDecoder = void 0;
28
-
29
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
30
-
31
- 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); } }
32
-
33
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
34
-
35
- var QeTable = [{
28
+ const QeTable = [{
36
29
  qe: 0x5601,
37
30
  nmps: 1,
38
31
  nlps: 1,
@@ -48,7 +41,7 @@ var QeTable = [{
48
41
  nlps: 9,
49
42
  switchFlag: 0
50
43
  }, {
51
- qe: 0x0AC1,
44
+ qe: 0x0ac1,
52
45
  nmps: 4,
53
46
  nlps: 12,
54
47
  switchFlag: 0
@@ -93,7 +86,7 @@ var QeTable = [{
93
86
  nlps: 18,
94
87
  switchFlag: 0
95
88
  }, {
96
- qe: 0x1C01,
89
+ qe: 0x1c01,
97
90
  nmps: 13,
98
91
  nlps: 20,
99
92
  switchFlag: 0
@@ -153,7 +146,7 @@ var QeTable = [{
153
146
  nlps: 21,
154
147
  switchFlag: 0
155
148
  }, {
156
- qe: 0x1C01,
149
+ qe: 0x1c01,
157
150
  nmps: 25,
158
151
  nlps: 22,
159
152
  switchFlag: 0
@@ -183,17 +176,17 @@ var QeTable = [{
183
176
  nlps: 27,
184
177
  switchFlag: 0
185
178
  }, {
186
- qe: 0x0AC1,
179
+ qe: 0x0ac1,
187
180
  nmps: 31,
188
181
  nlps: 28,
189
182
  switchFlag: 0
190
183
  }, {
191
- qe: 0x09C1,
184
+ qe: 0x09c1,
192
185
  nmps: 32,
193
186
  nlps: 29,
194
187
  switchFlag: 0
195
188
  }, {
196
- qe: 0x08A1,
189
+ qe: 0x08a1,
197
190
  nmps: 33,
198
191
  nlps: 30,
199
192
  switchFlag: 0
@@ -208,7 +201,7 @@ var QeTable = [{
208
201
  nlps: 32,
209
202
  switchFlag: 0
210
203
  }, {
211
- qe: 0x02A1,
204
+ qe: 0x02a1,
212
205
  nmps: 36,
213
206
  nlps: 33,
214
207
  switchFlag: 0
@@ -269,117 +262,108 @@ var QeTable = [{
269
262
  switchFlag: 0
270
263
  }];
271
264
 
272
- var ArithmeticDecoder =
273
- /*#__PURE__*/
274
- function () {
275
- function ArithmeticDecoder(data, start, end) {
276
- _classCallCheck(this, ArithmeticDecoder);
277
-
265
+ class ArithmeticDecoder {
266
+ constructor(data, start, end) {
278
267
  this.data = data;
279
268
  this.bp = start;
280
269
  this.dataEnd = end;
281
270
  this.chigh = data[start];
282
271
  this.clow = 0;
283
272
  this.byteIn();
284
- this.chigh = this.chigh << 7 & 0xFFFF | this.clow >> 9 & 0x7F;
285
- this.clow = this.clow << 7 & 0xFFFF;
273
+ this.chigh = this.chigh << 7 & 0xffff | this.clow >> 9 & 0x7f;
274
+ this.clow = this.clow << 7 & 0xffff;
286
275
  this.ct -= 7;
287
276
  this.a = 0x8000;
288
277
  }
289
278
 
290
- _createClass(ArithmeticDecoder, [{
291
- key: "byteIn",
292
- value: function byteIn() {
293
- var data = this.data;
294
- var bp = this.bp;
279
+ byteIn() {
280
+ const data = this.data;
281
+ let bp = this.bp;
295
282
 
296
- if (data[bp] === 0xFF) {
297
- if (data[bp + 1] > 0x8F) {
298
- this.clow += 0xFF00;
299
- this.ct = 8;
300
- } else {
301
- bp++;
302
- this.clow += data[bp] << 9;
303
- this.ct = 7;
304
- this.bp = bp;
305
- }
283
+ if (data[bp] === 0xff) {
284
+ if (data[bp + 1] > 0x8f) {
285
+ this.clow += 0xff00;
286
+ this.ct = 8;
306
287
  } else {
307
288
  bp++;
308
- this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xFF00;
309
- this.ct = 8;
289
+ this.clow += data[bp] << 9;
290
+ this.ct = 7;
310
291
  this.bp = bp;
311
292
  }
312
-
313
- if (this.clow > 0xFFFF) {
314
- this.chigh += this.clow >> 16;
315
- this.clow &= 0xFFFF;
316
- }
293
+ } else {
294
+ bp++;
295
+ this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;
296
+ this.ct = 8;
297
+ this.bp = bp;
317
298
  }
318
- }, {
319
- key: "readBit",
320
- value: function readBit(contexts, pos) {
321
- var cx_index = contexts[pos] >> 1,
322
- cx_mps = contexts[pos] & 1;
323
- var qeTableIcx = QeTable[cx_index];
324
- var qeIcx = qeTableIcx.qe;
325
- var d;
326
- var a = this.a - qeIcx;
327
299
 
328
- if (this.chigh < qeIcx) {
329
- if (a < qeIcx) {
330
- a = qeIcx;
331
- d = cx_mps;
332
- cx_index = qeTableIcx.nmps;
333
- } else {
334
- a = qeIcx;
335
- d = 1 ^ cx_mps;
300
+ if (this.clow > 0xffff) {
301
+ this.chigh += this.clow >> 16;
302
+ this.clow &= 0xffff;
303
+ }
304
+ }
336
305
 
337
- if (qeTableIcx.switchFlag === 1) {
338
- cx_mps = d;
339
- }
306
+ readBit(contexts, pos) {
307
+ let cx_index = contexts[pos] >> 1,
308
+ cx_mps = contexts[pos] & 1;
309
+ const qeTableIcx = QeTable[cx_index];
310
+ const qeIcx = qeTableIcx.qe;
311
+ let d;
312
+ let a = this.a - qeIcx;
340
313
 
341
- cx_index = qeTableIcx.nlps;
342
- }
314
+ if (this.chigh < qeIcx) {
315
+ if (a < qeIcx) {
316
+ a = qeIcx;
317
+ d = cx_mps;
318
+ cx_index = qeTableIcx.nmps;
343
319
  } else {
344
- this.chigh -= qeIcx;
320
+ a = qeIcx;
321
+ d = 1 ^ cx_mps;
345
322
 
346
- if ((a & 0x8000) !== 0) {
347
- this.a = a;
348
- return cx_mps;
323
+ if (qeTableIcx.switchFlag === 1) {
324
+ cx_mps = d;
349
325
  }
350
326
 
351
- if (a < qeIcx) {
352
- d = 1 ^ cx_mps;
327
+ cx_index = qeTableIcx.nlps;
328
+ }
329
+ } else {
330
+ this.chigh -= qeIcx;
331
+
332
+ if ((a & 0x8000) !== 0) {
333
+ this.a = a;
334
+ return cx_mps;
335
+ }
353
336
 
354
- if (qeTableIcx.switchFlag === 1) {
355
- cx_mps = d;
356
- }
337
+ if (a < qeIcx) {
338
+ d = 1 ^ cx_mps;
357
339
 
358
- cx_index = qeTableIcx.nlps;
359
- } else {
360
- d = cx_mps;
361
- cx_index = qeTableIcx.nmps;
340
+ if (qeTableIcx.switchFlag === 1) {
341
+ cx_mps = d;
362
342
  }
343
+
344
+ cx_index = qeTableIcx.nlps;
345
+ } else {
346
+ d = cx_mps;
347
+ cx_index = qeTableIcx.nmps;
363
348
  }
349
+ }
364
350
 
365
- do {
366
- if (this.ct === 0) {
367
- this.byteIn();
368
- }
351
+ do {
352
+ if (this.ct === 0) {
353
+ this.byteIn();
354
+ }
369
355
 
370
- a <<= 1;
371
- this.chigh = this.chigh << 1 & 0xFFFF | this.clow >> 15 & 1;
372
- this.clow = this.clow << 1 & 0xFFFF;
373
- this.ct--;
374
- } while ((a & 0x8000) === 0);
356
+ a <<= 1;
357
+ this.chigh = this.chigh << 1 & 0xffff | this.clow >> 15 & 1;
358
+ this.clow = this.clow << 1 & 0xffff;
359
+ this.ct--;
360
+ } while ((a & 0x8000) === 0);
375
361
 
376
- this.a = a;
377
- contexts[pos] = cx_index << 1 | cx_mps;
378
- return d;
379
- }
380
- }]);
362
+ this.a = a;
363
+ contexts[pos] = cx_index << 1 | cx_mps;
364
+ return d;
365
+ }
381
366
 
382
- return ArithmeticDecoder;
383
- }();
367
+ }
384
368
 
385
369
  exports.ArithmeticDecoder = ArithmeticDecoder;
package/lib/core/bidi.js CHANGED
@@ -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.
@@ -26,10 +26,10 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.bidi = bidi;
28
28
 
29
- var _util = require("../shared/util");
29
+ var _util = require("../shared/util.js");
30
30
 
31
- var baseTypes = ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'S', 'B', 'S', 'WS', 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'B', 'B', 'S', 'WS', 'ON', 'ON', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'ON', 'ES', 'CS', 'ES', 'CS', 'CS', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'CS', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'CS', 'ON', 'ET', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'BN', 'ON', 'ON', 'ET', 'ET', 'EN', 'EN', 'ON', 'L', 'ON', 'ON', 'ON', 'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'];
32
- var arabicTypes = ['AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ON', 'ON', 'AL', 'ET', 'ET', 'AL', 'CS', 'AL', 'ON', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', '', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ET', 'AN', 'AN', 'AL', 'AL', 'AL', 'NSM', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'NSM', 'NSM', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL'];
31
+ var baseTypes = ["BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "S", "B", "S", "WS", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "B", "B", "B", "S", "WS", "ON", "ON", "ET", "ET", "ET", "ON", "ON", "ON", "ON", "ON", "ES", "CS", "ES", "CS", "CS", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "CS", "ON", "ON", "ON", "ON", "ON", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "ON", "ON", "ON", "ON", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "ON", "ON", "ON", "BN", "BN", "BN", "BN", "BN", "BN", "B", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "BN", "CS", "ON", "ET", "ET", "ET", "ET", "ON", "ON", "ON", "ON", "L", "ON", "ON", "BN", "ON", "ON", "ET", "ET", "EN", "EN", "ON", "L", "ON", "ON", "ON", "EN", "L", "ON", "ON", "ON", "ON", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "L", "ON", "L", "L", "L", "L", "L", "L", "L", "L"];
32
+ var arabicTypes = ["AN", "AN", "AN", "AN", "AN", "AN", "ON", "ON", "AL", "ET", "ET", "AL", "CS", "AL", "ON", "ON", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "AN", "ET", "AN", "AN", "AL", "AL", "AL", "NSM", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "AL", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AN", "ON", "NSM", "NSM", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "NSM", "NSM", "ON", "NSM", "NSM", "NSM", "NSM", "AL", "AL", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "EN", "AL", "AL", "AL", "AL", "AL", "AL"];
33
33
 
34
34
  function isOdd(i) {
35
35
  return (i & 1) !== 0;
@@ -63,10 +63,18 @@ function reverseValues(arr, start, end) {
63
63
  }
64
64
  }
65
65
 
66
- function createBidiText(str, isLTR, vertical) {
66
+ function createBidiText(str, isLTR, vertical = false) {
67
+ let dir = "ltr";
68
+
69
+ if (vertical) {
70
+ dir = "ttb";
71
+ } else if (!isLTR) {
72
+ dir = "rtl";
73
+ }
74
+
67
75
  return {
68
- str: str,
69
- dir: vertical ? 'ttb' : isLTR ? 'ltr' : 'rtl'
76
+ str,
77
+ dir
70
78
  };
71
79
  }
72
80
 
@@ -89,23 +97,23 @@ function bidi(str, startLevel, vertical) {
89
97
  for (i = 0; i < strLength; ++i) {
90
98
  chars[i] = str.charAt(i);
91
99
  var charCode = str.charCodeAt(i);
92
- var charType = 'L';
100
+ var charType = "L";
93
101
 
94
102
  if (charCode <= 0x00ff) {
95
103
  charType = baseTypes[charCode];
96
104
  } else if (0x0590 <= charCode && charCode <= 0x05f4) {
97
- charType = 'R';
105
+ charType = "R";
98
106
  } else if (0x0600 <= charCode && charCode <= 0x06ff) {
99
107
  charType = arabicTypes[charCode & 0xff];
100
108
 
101
109
  if (!charType) {
102
- (0, _util.warn)('Bidi: invalid Unicode character ' + charCode.toString(16));
110
+ (0, _util.warn)("Bidi: invalid Unicode character " + charCode.toString(16));
103
111
  }
104
- } else if (0x0700 <= charCode && charCode <= 0x08AC) {
105
- charType = 'AL';
112
+ } else if (0x0700 <= charCode && charCode <= 0x08ac) {
113
+ charType = "AL";
106
114
  }
107
115
 
108
- if (charType === 'R' || charType === 'AL' || charType === 'AN') {
116
+ if (charType === "R" || charType === "AL" || charType === "AN") {
109
117
  numBidi++;
110
118
  }
111
119
 
@@ -133,13 +141,13 @@ function bidi(str, startLevel, vertical) {
133
141
  levels[i] = startLevel;
134
142
  }
135
143
 
136
- var e = isOdd(startLevel) ? 'R' : 'L';
144
+ var e = isOdd(startLevel) ? "R" : "L";
137
145
  var sor = e;
138
146
  var eor = sor;
139
147
  var lastType = sor;
140
148
 
141
149
  for (i = 0; i < strLength; ++i) {
142
- if (types[i] === 'NSM') {
150
+ if (types[i] === "NSM") {
143
151
  types[i] = lastType;
144
152
  } else {
145
153
  lastType = types[i];
@@ -152,9 +160,9 @@ function bidi(str, startLevel, vertical) {
152
160
  for (i = 0; i < strLength; ++i) {
153
161
  t = types[i];
154
162
 
155
- if (t === 'EN') {
156
- types[i] = lastType === 'AL' ? 'AN' : 'EN';
157
- } else if (t === 'R' || t === 'L' || t === 'AL') {
163
+ if (t === "EN") {
164
+ types[i] = lastType === "AL" ? "AN" : "EN";
165
+ } else if (t === "R" || t === "L" || t === "AL") {
158
166
  lastType = t;
159
167
  }
160
168
  }
@@ -162,39 +170,39 @@ function bidi(str, startLevel, vertical) {
162
170
  for (i = 0; i < strLength; ++i) {
163
171
  t = types[i];
164
172
 
165
- if (t === 'AL') {
166
- types[i] = 'R';
173
+ if (t === "AL") {
174
+ types[i] = "R";
167
175
  }
168
176
  }
169
177
 
170
178
  for (i = 1; i < strLength - 1; ++i) {
171
- if (types[i] === 'ES' && types[i - 1] === 'EN' && types[i + 1] === 'EN') {
172
- types[i] = 'EN';
179
+ if (types[i] === "ES" && types[i - 1] === "EN" && types[i + 1] === "EN") {
180
+ types[i] = "EN";
173
181
  }
174
182
 
175
- if (types[i] === 'CS' && (types[i - 1] === 'EN' || types[i - 1] === 'AN') && types[i + 1] === types[i - 1]) {
183
+ if (types[i] === "CS" && (types[i - 1] === "EN" || types[i - 1] === "AN") && types[i + 1] === types[i - 1]) {
176
184
  types[i] = types[i - 1];
177
185
  }
178
186
  }
179
187
 
180
188
  for (i = 0; i < strLength; ++i) {
181
- if (types[i] === 'EN') {
189
+ if (types[i] === "EN") {
182
190
  var j;
183
191
 
184
192
  for (j = i - 1; j >= 0; --j) {
185
- if (types[j] !== 'ET') {
193
+ if (types[j] !== "ET") {
186
194
  break;
187
195
  }
188
196
 
189
- types[j] = 'EN';
197
+ types[j] = "EN";
190
198
  }
191
199
 
192
200
  for (j = i + 1; j < strLength; ++j) {
193
- if (types[j] !== 'ET') {
201
+ if (types[j] !== "ET") {
194
202
  break;
195
203
  }
196
204
 
197
- types[j] = 'EN';
205
+ types[j] = "EN";
198
206
  }
199
207
  }
200
208
  }
@@ -202,8 +210,8 @@ function bidi(str, startLevel, vertical) {
202
210
  for (i = 0; i < strLength; ++i) {
203
211
  t = types[i];
204
212
 
205
- if (t === 'WS' || t === 'ES' || t === 'ET' || t === 'CS') {
206
- types[i] = 'ON';
213
+ if (t === "WS" || t === "ES" || t === "ET" || t === "CS") {
214
+ types[i] = "ON";
207
215
  }
208
216
  }
209
217
 
@@ -212,16 +220,16 @@ function bidi(str, startLevel, vertical) {
212
220
  for (i = 0; i < strLength; ++i) {
213
221
  t = types[i];
214
222
 
215
- if (t === 'EN') {
216
- types[i] = lastType === 'L' ? 'L' : 'EN';
217
- } else if (t === 'R' || t === 'L') {
223
+ if (t === "EN") {
224
+ types[i] = lastType === "L" ? "L" : "EN";
225
+ } else if (t === "R" || t === "L") {
218
226
  lastType = t;
219
227
  }
220
228
  }
221
229
 
222
230
  for (i = 0; i < strLength; ++i) {
223
- if (types[i] === 'ON') {
224
- var end = findUnequal(types, i + 1, 'ON');
231
+ if (types[i] === "ON") {
232
+ var end = findUnequal(types, i + 1, "ON");
225
233
  var before = sor;
226
234
 
227
235
  if (i > 0) {
@@ -234,12 +242,12 @@ function bidi(str, startLevel, vertical) {
234
242
  after = types[end + 1];
235
243
  }
236
244
 
237
- if (before !== 'L') {
238
- before = 'R';
245
+ if (before !== "L") {
246
+ before = "R";
239
247
  }
240
248
 
241
- if (after !== 'L') {
242
- after = 'R';
249
+ if (after !== "L") {
250
+ after = "R";
243
251
  }
244
252
 
245
253
  if (before === after) {
@@ -251,7 +259,7 @@ function bidi(str, startLevel, vertical) {
251
259
  }
252
260
 
253
261
  for (i = 0; i < strLength; ++i) {
254
- if (types[i] === 'ON') {
262
+ if (types[i] === "ON") {
255
263
  types[i] = e;
256
264
  }
257
265
  }
@@ -260,13 +268,13 @@ function bidi(str, startLevel, vertical) {
260
268
  t = types[i];
261
269
 
262
270
  if (isEven(levels[i])) {
263
- if (t === 'R') {
271
+ if (t === "R") {
264
272
  levels[i] += 1;
265
- } else if (t === 'AN' || t === 'EN') {
273
+ } else if (t === "AN" || t === "EN") {
266
274
  levels[i] += 2;
267
275
  }
268
276
  } else {
269
- if (t === 'L' || t === 'AN' || t === 'EN') {
277
+ if (t === "L" || t === "AN" || t === "EN") {
270
278
  levels[i] += 1;
271
279
  }
272
280
  }
@@ -310,10 +318,10 @@ function bidi(str, startLevel, vertical) {
310
318
  for (i = 0, ii = chars.length; i < ii; ++i) {
311
319
  var ch = chars[i];
312
320
 
313
- if (ch === '<' || ch === '>') {
314
- chars[i] = '';
321
+ if (ch === "<" || ch === ">") {
322
+ chars[i] = "";
315
323
  }
316
324
  }
317
325
 
318
- return createBidiText(chars.join(''), isLTR);
326
+ return createBidiText(chars.join(""), isLTR);
319
327
  }