@pixerate/editor 0.24.0 → 0.26.0

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.
Files changed (162) hide show
  1. package/README.md +101 -1
  2. package/THIRD_PARTY_NOTICES.md +40 -0
  3. package/dist/agent/index.cjs +175 -11
  4. package/dist/agent/index.cjs.map +1 -1
  5. package/dist/agent/index.d.cts +18 -4
  6. package/dist/agent/index.d.ts +18 -4
  7. package/dist/agent/index.js +168 -4
  8. package/dist/agent/index.js.map +1 -1
  9. package/dist/{arrangeShortcuts-B8O3f8-P.d.cts → arrange-BICutYPk.d.cts} +243 -29
  10. package/dist/{arrangeShortcuts-sLlD2rSX.d.ts → arrange-BICutYPk.d.ts} +243 -29
  11. package/dist/builtins-CdPcLwwF.d.cts +176 -0
  12. package/dist/builtins-Chj6zv_O.d.ts +176 -0
  13. package/dist/canvas/index.cjs +8588 -1857
  14. package/dist/canvas/index.cjs.map +1 -1
  15. package/dist/canvas/index.d.cts +1847 -9
  16. package/dist/canvas/index.d.ts +1847 -9
  17. package/dist/canvas/index.js +8577 -1846
  18. package/dist/canvas/index.js.map +1 -1
  19. package/dist/chunk-3CC7OPUQ.cjs +831 -0
  20. package/dist/chunk-3CC7OPUQ.cjs.map +1 -0
  21. package/dist/chunk-4BVP64JJ.cjs +1406 -0
  22. package/dist/chunk-4BVP64JJ.cjs.map +1 -0
  23. package/dist/chunk-BVP3TSLH.cjs +69 -0
  24. package/dist/chunk-BVP3TSLH.cjs.map +1 -0
  25. package/dist/{chunk-OLZJXL4R.cjs → chunk-CS6NZWWA.cjs} +59 -25
  26. package/dist/chunk-CS6NZWWA.cjs.map +1 -0
  27. package/dist/{chunk-MCSJFWAO.cjs → chunk-EWCOFSCQ.cjs} +685 -100
  28. package/dist/chunk-EWCOFSCQ.cjs.map +1 -0
  29. package/dist/chunk-HDYMLS3X.cjs +409 -0
  30. package/dist/chunk-HDYMLS3X.cjs.map +1 -0
  31. package/dist/chunk-HRMEDT2L.js +1406 -0
  32. package/dist/chunk-HRMEDT2L.js.map +1 -0
  33. package/dist/{chunk-D27YFC46.cjs → chunk-IFHKKVXH.cjs} +382 -63
  34. package/dist/chunk-IFHKKVXH.cjs.map +1 -0
  35. package/dist/{chunk-PGNZKFQS.js → chunk-JOIREKL7.js} +137 -58
  36. package/dist/chunk-JOIREKL7.js.map +1 -0
  37. package/dist/chunk-KRGXUQ2Y.js +1696 -0
  38. package/dist/chunk-KRGXUQ2Y.js.map +1 -0
  39. package/dist/{chunk-3LV6RRPH.js → chunk-MHEPLBFB.js} +2 -2
  40. package/dist/chunk-MR2764X2.js +831 -0
  41. package/dist/chunk-MR2764X2.js.map +1 -0
  42. package/dist/{chunk-XNORY7M6.cjs → chunk-NFVBT3UZ.cjs} +166 -87
  43. package/dist/chunk-NFVBT3UZ.cjs.map +1 -0
  44. package/dist/chunk-NQF32I6Z.cjs +6478 -0
  45. package/dist/chunk-NQF32I6Z.cjs.map +1 -0
  46. package/dist/chunk-O5RYH2PG.js +69 -0
  47. package/dist/chunk-O5RYH2PG.js.map +1 -0
  48. package/dist/{chunk-ITBSKI26.js → chunk-Q2OHWD2A.js} +1064 -360
  49. package/dist/chunk-Q2OHWD2A.js.map +1 -0
  50. package/dist/{chunk-FODNLX5N.js → chunk-QJSOZFCZ.js} +38 -4
  51. package/dist/chunk-QJSOZFCZ.js.map +1 -0
  52. package/dist/{chunk-SML64VJG.cjs → chunk-RRREAOVM.cjs} +4 -4
  53. package/dist/{chunk-SML64VJG.cjs.map → chunk-RRREAOVM.cjs.map} +1 -1
  54. package/dist/{chunk-5S3Z4PPF.js → chunk-SWE3NPOU.js} +347 -28
  55. package/dist/chunk-SWE3NPOU.js.map +1 -0
  56. package/dist/chunk-TXXNBDQX.cjs +1696 -0
  57. package/dist/chunk-TXXNBDQX.cjs.map +1 -0
  58. package/dist/chunk-UBCFIABU.js +409 -0
  59. package/dist/chunk-UBCFIABU.js.map +1 -0
  60. package/dist/chunk-X7HXL2SB.js +6478 -0
  61. package/dist/chunk-X7HXL2SB.js.map +1 -0
  62. package/dist/{chunk-SBCZ6RN5.cjs → chunk-YOMYSFJU.cjs} +1163 -459
  63. package/dist/chunk-YOMYSFJU.cjs.map +1 -0
  64. package/dist/{chunk-3CN2WD3X.js → chunk-ZRNHGAQT.js} +661 -76
  65. package/dist/chunk-ZRNHGAQT.js.map +1 -0
  66. package/dist/commands/index.cjs +425 -4
  67. package/dist/commands/index.cjs.map +1 -1
  68. package/dist/commands/index.d.cts +39 -77
  69. package/dist/commands/index.d.ts +39 -77
  70. package/dist/commands/index.js +424 -3
  71. package/dist/commands/index.js.map +1 -1
  72. package/dist/compare/index.cjs +3 -3
  73. package/dist/compare/index.d.cts +1 -1
  74. package/dist/compare/index.d.ts +1 -1
  75. package/dist/compare/index.js +2 -2
  76. package/dist/controller-CxXGOEmy.d.cts +2038 -0
  77. package/dist/controller-CxXGOEmy.d.ts +2038 -0
  78. package/dist/{documents-BQjzJNe2.d.ts → documents-CHT1U5Vs.d.ts} +10 -0
  79. package/dist/{documents-KRTPhvst.d.cts → documents-Gp7wb0Me.d.cts} +10 -0
  80. package/dist/export/index.cjs +36 -0
  81. package/dist/export/index.cjs.map +1 -0
  82. package/dist/export/index.d.cts +243 -0
  83. package/dist/export/index.d.ts +243 -0
  84. package/dist/export/index.js +36 -0
  85. package/dist/export/index.js.map +1 -0
  86. package/dist/extensions/index.cjs +101 -6
  87. package/dist/extensions/index.cjs.map +1 -1
  88. package/dist/extensions/index.d.cts +18 -5
  89. package/dist/extensions/index.d.ts +18 -5
  90. package/dist/extensions/index.js +101 -6
  91. package/dist/generation/index.cjs +1013 -69
  92. package/dist/generation/index.cjs.map +1 -1
  93. package/dist/generation/index.d.cts +474 -13
  94. package/dist/generation/index.d.ts +474 -13
  95. package/dist/generation/index.js +976 -32
  96. package/dist/generation/index.js.map +1 -1
  97. package/dist/image-editor/index.cjs +3385 -1275
  98. package/dist/image-editor/index.cjs.map +1 -1
  99. package/dist/image-editor/index.d.cts +693 -128
  100. package/dist/image-editor/index.d.ts +693 -128
  101. package/dist/image-editor/index.js +3325 -1215
  102. package/dist/image-editor/index.js.map +1 -1
  103. package/dist/{index-fJrlkJCd.d.ts → index-B273Zllk.d.ts} +500 -7
  104. package/dist/{index-BhJBSm2d.d.cts → index-jcJwmBYt.d.cts} +500 -7
  105. package/dist/index.cjs +1603 -45
  106. package/dist/index.cjs.map +1 -1
  107. package/dist/index.d.cts +154 -27
  108. package/dist/index.d.ts +154 -27
  109. package/dist/index.js +1584 -26
  110. package/dist/index.js.map +1 -1
  111. package/dist/mention-text-CDnCFd3c.d.cts +53 -0
  112. package/dist/mention-text-CDnCFd3c.d.ts +53 -0
  113. package/dist/model-C1zApQM8.d.cts +219 -0
  114. package/dist/model-C1zApQM8.d.ts +219 -0
  115. package/dist/persistence/index.d.cts +3 -120
  116. package/dist/persistence/index.d.ts +3 -120
  117. package/dist/registry-CED5C0lA.d.cts +204 -0
  118. package/dist/registry-CED5C0lA.d.ts +204 -0
  119. package/dist/{registry-GJI4gToU.d.cts → registry-CEgwXED1.d.cts} +12 -1
  120. package/dist/{registry-GJI4gToU.d.ts → registry-CEgwXED1.d.ts} +12 -1
  121. package/dist/{registry-D32LpIc4.d.cts → registry-D0GADKc7.d.cts} +1 -1
  122. package/dist/{registry-evKTP4ls.d.ts → registry-DhVUZioj.d.ts} +1 -1
  123. package/dist/serializers/index.cjs +12 -4
  124. package/dist/serializers/index.cjs.map +1 -1
  125. package/dist/serializers/index.d.cts +41 -13
  126. package/dist/serializers/index.d.ts +41 -13
  127. package/dist/serializers/index.js +12 -4
  128. package/dist/spreadsheet/index.cjs +157 -3
  129. package/dist/spreadsheet/index.cjs.map +1 -1
  130. package/dist/spreadsheet/index.d.cts +534 -11
  131. package/dist/spreadsheet/index.d.ts +534 -11
  132. package/dist/spreadsheet/index.js +157 -3
  133. package/dist/storage-BpFfspHm.d.cts +120 -0
  134. package/dist/storage-BpFfspHm.d.ts +120 -0
  135. package/dist/tokens/index.cjs +115 -0
  136. package/dist/tokens/index.cjs.map +1 -0
  137. package/dist/tokens/index.d.cts +212 -0
  138. package/dist/tokens/index.d.ts +212 -0
  139. package/dist/tokens/index.js +115 -0
  140. package/dist/tokens/index.js.map +1 -0
  141. package/dist/{track-changes-BK5sVf4_.d.cts → track-changes-D_VAPELi.d.cts} +95 -11
  142. package/dist/{track-changes-CDjCrwKe.d.ts → track-changes-Db_fGEvx.d.ts} +95 -11
  143. package/package.json +15 -1
  144. package/dist/chunk-3CN2WD3X.js.map +0 -1
  145. package/dist/chunk-5S3Z4PPF.js.map +0 -1
  146. package/dist/chunk-D27YFC46.cjs.map +0 -1
  147. package/dist/chunk-FODNLX5N.js.map +0 -1
  148. package/dist/chunk-ITBSKI26.js.map +0 -1
  149. package/dist/chunk-MA2F5KHF.cjs +0 -3223
  150. package/dist/chunk-MA2F5KHF.cjs.map +0 -1
  151. package/dist/chunk-MCSJFWAO.cjs.map +0 -1
  152. package/dist/chunk-OLZJXL4R.cjs.map +0 -1
  153. package/dist/chunk-PGNZKFQS.js.map +0 -1
  154. package/dist/chunk-SBCZ6RN5.cjs.map +0 -1
  155. package/dist/chunk-U5KWZU4X.js +0 -3223
  156. package/dist/chunk-U5KWZU4X.js.map +0 -1
  157. package/dist/chunk-XNORY7M6.cjs.map +0 -1
  158. package/dist/controller-BhLLAoi8.d.cts +0 -1000
  159. package/dist/controller-BhLLAoi8.d.ts +0 -1000
  160. package/dist/types-DX4Mh4SL.d.cts +0 -217
  161. package/dist/types-DX4Mh4SL.d.ts +0 -217
  162. /package/dist/{chunk-3LV6RRPH.js.map → chunk-MHEPLBFB.js.map} +0 -0
package/dist/index.cjs CHANGED
@@ -15,6 +15,23 @@
15
15
 
16
16
 
17
17
 
18
+ var _chunkTXXNBDQXcjs = require('./chunk-TXXNBDQX.cjs');
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
18
35
 
19
36
 
20
37
 
@@ -160,13 +177,35 @@ var _chunkFD4LPFAEcjs = require('./chunk-FD4LPFAE.cjs');
160
177
 
161
178
 
162
179
 
163
- var _chunkSBCZ6RN5cjs = require('./chunk-SBCZ6RN5.cjs');
164
180
 
165
181
 
166
182
 
167
183
 
168
184
 
169
- var _chunkOLZJXL4Rcjs = require('./chunk-OLZJXL4R.cjs');
185
+
186
+
187
+ var _chunkYOMYSFJUcjs = require('./chunk-YOMYSFJU.cjs');
188
+
189
+
190
+
191
+
192
+
193
+ var _chunkCS6NZWWAcjs = require('./chunk-CS6NZWWA.cjs');
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+ var _chunk3CC7OPUQcjs = require('./chunk-3CC7OPUQ.cjs');
170
209
 
171
210
 
172
211
 
@@ -201,7 +240,32 @@ require('./chunk-JACER6TE.cjs');
201
240
 
202
241
 
203
242
 
204
- var _chunkSML64VJGcjs = require('./chunk-SML64VJG.cjs');
243
+ var _chunkRRREAOVMcjs = require('./chunk-RRREAOVM.cjs');
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
205
269
 
206
270
 
207
271
 
@@ -259,7 +323,56 @@ var _chunkSML64VJGcjs = require('./chunk-SML64VJG.cjs');
259
323
 
260
324
 
261
325
 
262
- var _chunkMA2F5KHFcjs = require('./chunk-MA2F5KHF.cjs');
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+
346
+
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+
369
+
370
+
371
+
372
+
373
+
374
+
375
+ var _chunkNQF32I6Zcjs = require('./chunk-NQF32I6Z.cjs');
263
376
 
264
377
 
265
378
 
@@ -293,7 +406,19 @@ var _chunkG2I4QJOTcjs = require('./chunk-G2I4QJOT.cjs');
293
406
 
294
407
 
295
408
 
296
- var _chunkXNORY7M6cjs = require('./chunk-XNORY7M6.cjs');
409
+
410
+
411
+
412
+
413
+
414
+ var _chunkHDYMLS3Xcjs = require('./chunk-HDYMLS3X.cjs');
415
+
416
+
417
+
418
+
419
+
420
+
421
+
297
422
 
298
423
 
299
424
 
@@ -303,11 +428,13 @@ var _chunkXNORY7M6cjs = require('./chunk-XNORY7M6.cjs');
303
428
 
304
429
 
305
430
 
431
+ var _chunkNFVBT3UZcjs = require('./chunk-NFVBT3UZ.cjs');
306
432
 
307
433
 
308
434
 
309
435
 
310
436
 
437
+ var _chunkBVP3TSLHcjs = require('./chunk-BVP3TSLH.cjs');
311
438
 
312
439
 
313
440
 
@@ -317,7 +444,6 @@ var _chunkXNORY7M6cjs = require('./chunk-XNORY7M6.cjs');
317
444
 
318
445
 
319
446
 
320
- var _chunkD27YFC46cjs = require('./chunk-D27YFC46.cjs');
321
447
 
322
448
 
323
449
 
@@ -337,6 +463,7 @@ var _chunkD27YFC46cjs = require('./chunk-D27YFC46.cjs');
337
463
 
338
464
 
339
465
 
466
+ var _chunkIFHKKVXHcjs = require('./chunk-IFHKKVXH.cjs');
340
467
 
341
468
 
342
469
 
@@ -360,7 +487,29 @@ var _chunkD27YFC46cjs = require('./chunk-D27YFC46.cjs');
360
487
 
361
488
 
362
489
 
363
- var _chunkMCSJFWAOcjs = require('./chunk-MCSJFWAO.cjs');
490
+
491
+
492
+
493
+
494
+
495
+
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+ var _chunkEWCOFSCQcjs = require('./chunk-EWCOFSCQ.cjs');
364
513
 
365
514
  // src/controller.ts
366
515
  var _core = require('@tiptap/core');
@@ -393,18 +542,18 @@ var EditorController = class {
393
542
  this.onMarkdownChange = onMarkdownChange;
394
543
  this.onTokensChange = onTokensChange;
395
544
  this.onSelectionChange = onSelectionChange;
396
- const initialContent = plainTextMode && typeof content === "string" ? _chunkXNORY7M6cjs.plainTextToTipTapHtml.call(void 0, content) : markdownMode && typeof content === "string" ? _chunkXNORY7M6cjs.markdownToTipTapHtml.call(void 0, content) : content;
545
+ const initialContent = plainTextMode && typeof content === "string" ? _chunkNFVBT3UZcjs.plainTextToTipTapHtml.call(void 0, content) : markdownMode && typeof content === "string" ? _chunkNFVBT3UZcjs.markdownToTipTapHtml.call(void 0, content) : content;
397
546
  this.editor = new (0, _core.Editor)({
398
547
  element: element || void 0,
399
548
  content: initialContent,
400
549
  extensions,
401
550
  ...editorOptions,
402
551
  onUpdate: (props) => {
403
- _optionalChain([editorOptions, 'access', _ => _.onUpdate, 'optionalCall', _2 => _2(props)]);
552
+ _optionalChain([editorOptions, 'access', _2 => _2.onUpdate, 'optionalCall', _3 => _3(props)]);
404
553
  this.handleUpdate();
405
554
  },
406
555
  onSelectionUpdate: (props) => {
407
- _optionalChain([editorOptions, 'access', _3 => _3.onSelectionUpdate, 'optionalCall', _4 => _4(props)]);
556
+ _optionalChain([editorOptions, 'access', _4 => _4.onSelectionUpdate, 'optionalCall', _5 => _5(props)]);
408
557
  this.handleSelectionUpdate();
409
558
  }
410
559
  });
@@ -414,9 +563,9 @@ var EditorController = class {
414
563
  this.baselineContent = this.getCurrentContentString();
415
564
  }
416
565
  enforcePlainTextClipboard() {
417
- const richClipboard = _optionalChain([this, 'access', _5 => _5.editor, 'access', _6 => _6.storage, 'optionalAccess', _7 => _7.richClipboard]);
566
+ const richClipboard = _optionalChain([this, 'access', _6 => _6.editor, 'access', _7 => _7.storage, 'optionalAccess', _8 => _8.richClipboard]);
418
567
  if (richClipboard) richClipboard.plainTextMode = true;
419
- const fileImport = _optionalChain([this, 'access', _8 => _8.editor, 'access', _9 => _9.extensionManager, 'optionalAccess', _10 => _10.extensions, 'access', _11 => _11.find, 'call', _12 => _12(
568
+ const fileImport = _optionalChain([this, 'access', _9 => _9.editor, 'access', _10 => _10.extensionManager, 'optionalAccess', _11 => _11.extensions, 'access', _12 => _12.find, 'call', _13 => _13(
420
569
  (ext) => ext.name === "fileImport"
421
570
  )]);
422
571
  if (fileImport) fileImport.options.asPlainText = true;
@@ -424,9 +573,9 @@ var EditorController = class {
424
573
  editorProps: {
425
574
  ...this.editor.options.editorProps,
426
575
  clipboardTextParser: (text, context, _plain, view) => {
427
- const schema = _optionalChain([context, 'optionalAccess', _13 => _13.doc, 'optionalAccess', _14 => _14.type, 'optionalAccess', _15 => _15.schema]) || _optionalChain([context, 'optionalAccess', _16 => _16.schema]) || _optionalChain([view, 'optionalAccess', _17 => _17.state, 'optionalAccess', _18 => _18.schema]) || this.editor.schema;
576
+ const schema = _optionalChain([context, 'optionalAccess', _14 => _14.doc, 'optionalAccess', _15 => _15.type, 'optionalAccess', _16 => _16.schema]) || _optionalChain([context, 'optionalAccess', _17 => _17.schema]) || _optionalChain([view, 'optionalAccess', _18 => _18.state, 'optionalAccess', _19 => _19.schema]) || this.editor.schema;
428
577
  if (!schema) return _model.Slice.empty;
429
- return _chunkXNORY7M6cjs.plainTextToSlice.call(void 0, text, schema);
578
+ return _chunkNFVBT3UZcjs.plainTextToSlice.call(void 0, text, schema);
430
579
  }
431
580
  }
432
581
  });
@@ -434,7 +583,7 @@ var EditorController = class {
434
583
  handleUpdate() {
435
584
  if (this.plainTextMode || this.onPlainTextChange || this.onTokensChange) {
436
585
  const text = this.getPlainText();
437
- _optionalChain([this, 'access', _19 => _19.onPlainTextChange, 'optionalCall', _20 => _20(text)]);
586
+ _optionalChain([this, 'access', _20 => _20.onPlainTextChange, 'optionalCall', _21 => _21(text)]);
438
587
  if (this.onTokensChange) {
439
588
  const tokens = _chunkFD4LPFAEcjs.tokenizePrompt.call(void 0, text);
440
589
  this.onTokensChange(tokens);
@@ -442,7 +591,7 @@ var EditorController = class {
442
591
  }
443
592
  if (this.markdownMode || this.onMarkdownChange) {
444
593
  const markdown = this.getMarkdown();
445
- _optionalChain([this, 'access', _21 => _21.onMarkdownChange, 'optionalCall', _22 => _22(markdown)]);
594
+ _optionalChain([this, 'access', _22 => _22.onMarkdownChange, 'optionalCall', _23 => _23(markdown)]);
446
595
  }
447
596
  }
448
597
  handleSelectionUpdate() {
@@ -452,20 +601,20 @@ var EditorController = class {
452
601
  }
453
602
  }
454
603
  getPlainText() {
455
- return _chunkXNORY7M6cjs.getEditorText.call(void 0, this.editor);
604
+ return _chunkNFVBT3UZcjs.getEditorText.call(void 0, this.editor);
456
605
  }
457
606
  setPlainText(text, emitUpdate = true) {
458
- const html = _chunkXNORY7M6cjs.plainTextToTipTapHtml.call(void 0, text);
607
+ const html = _chunkNFVBT3UZcjs.plainTextToTipTapHtml.call(void 0, text);
459
608
  this.editor.commands.setContent(html, emitUpdate);
460
609
  }
461
610
  getMarkdown() {
462
- return _chunkXNORY7M6cjs.getEditorMarkdown.call(void 0, this.editor);
611
+ return _chunkNFVBT3UZcjs.getEditorMarkdown.call(void 0, this.editor);
463
612
  }
464
613
  setMarkdown(markdown, emitUpdate = true) {
465
- if (_optionalChain([this, 'access', _23 => _23.editor, 'access', _24 => _24.storage, 'optionalAccess', _25 => _25.markdown, 'optionalAccess', _26 => _26.parser])) {
614
+ if (_optionalChain([this, 'access', _24 => _24.editor, 'access', _25 => _25.storage, 'optionalAccess', _26 => _26.markdown, 'optionalAccess', _27 => _27.parser])) {
466
615
  this.editor.commands.setContent(markdown, emitUpdate);
467
616
  } else {
468
- const html = _chunkXNORY7M6cjs.markdownToTipTapHtml.call(void 0, markdown);
617
+ const html = _chunkNFVBT3UZcjs.markdownToTipTapHtml.call(void 0, markdown);
469
618
  this.editor.commands.setContent(html, emitUpdate);
470
619
  }
471
620
  }
@@ -475,7 +624,7 @@ var EditorController = class {
475
624
  */
476
625
  insertPlainText(from, to, text) {
477
626
  const { state, view } = this.editor;
478
- const tr = text.includes("\n") || text.includes("\r") ? state.tr.replace(from, to, _chunkXNORY7M6cjs.plainTextToSlice.call(void 0, text, state.schema)) : text ? state.tr.insertText(text, from, to) : state.tr.delete(from, to);
627
+ const tr = text.includes("\n") || text.includes("\r") ? state.tr.replace(from, to, _chunkNFVBT3UZcjs.plainTextToSlice.call(void 0, text, state.schema)) : text ? state.tr.insertText(text, from, to) : state.tr.delete(from, to);
479
628
  view.dispatch(tr.scrollIntoView());
480
629
  }
481
630
  /** Inserts text literally at the selection; HTML in `text` is not parsed. */
@@ -524,7 +673,7 @@ function pickImportFiles(options = {}) {
524
673
  return new Promise((resolve) => {
525
674
  const input = document.createElement("input");
526
675
  input.type = "file";
527
- input.accept = _nullishCoalesce(options.accept, () => ( _chunkSBCZ6RN5cjs.defaultImportRegistry.accept("document")));
676
+ input.accept = _nullishCoalesce(options.accept, () => ( _chunkYOMYSFJUcjs.defaultImportRegistry.accept("document")));
528
677
  input.multiple = _nullishCoalesce(options.multiple, () => ( true));
529
678
  input.style.display = "none";
530
679
  const finish = (files) => {
@@ -552,7 +701,7 @@ var FileImportController = (_class = class {
552
701
  }
553
702
  /** `accept` attribute value for document imports. */
554
703
  get accept() {
555
- return (_nullishCoalesce(this.options.registry, () => ( _chunkSBCZ6RN5cjs.defaultImportRegistry))).accept("document");
704
+ return (_nullishCoalesce(this.options.registry, () => ( _chunkYOMYSFJUcjs.defaultImportRegistry))).accept("document");
556
705
  }
557
706
  __init4() {this.getState = () => this.state}
558
707
  __init5() {this.subscribe = (listener) => {
@@ -574,12 +723,12 @@ var FileImportController = (_class = class {
574
723
  this.setState({ isImporting: true, error: null });
575
724
  let error = null;
576
725
  try {
577
- const outcomes = await _chunkSBCZ6RN5cjs.importFilesIntoEditor.call(void 0, target, list, {
726
+ const outcomes = await _chunkYOMYSFJUcjs.importFilesIntoEditor.call(void 0, target, list, {
578
727
  ...this.options,
579
728
  at,
580
729
  onError: (err, file) => {
581
730
  error = err;
582
- _optionalChain([this, 'access', _30 => _30.options, 'access', _31 => _31.onError, 'optionalCall', _32 => _32(err, file)]);
731
+ _optionalChain([this, 'access', _31 => _31.options, 'access', _32 => _32.onError, 'optionalCall', _33 => _33(err, file)]);
583
732
  }
584
733
  });
585
734
  this.pending--;
@@ -600,10 +749,1026 @@ var FileImportController = (_class = class {
600
749
  function createFileImportController(getTarget, options) {
601
750
  return new FileImportController(getTarget, options);
602
751
  }
752
+ function summarizeImportStructure(outcomes) {
753
+ const reports = outcomes.map((outcome) => _optionalChain([outcome, 'access', _34 => _34.result, 'optionalAccess', _35 => _35.structure])).filter((report) => !!report);
754
+ if (!reports.length) return null;
755
+ const modes = new Set(reports.map((report) => report.mode));
756
+ const sum = (pick) => reports.reduce((total, report) => total + pick(report), 0);
757
+ return {
758
+ files: reports.length,
759
+ mode: modes.size > 1 ? "mixed" : reports[0].mode,
760
+ headings: sum((r) => r.counts.headings),
761
+ lists: sum((r) => r.counts.lists),
762
+ tables: sum((r) => r.counts.tables),
763
+ paragraphs: sum((r) => r.counts.paragraphs),
764
+ multiColumnPages: sum((r) => r.multiColumnPages),
765
+ confidence: Math.round(sum((r) => r.confidence) / reports.length * 100) / 100
766
+ };
767
+ }
768
+
769
+ // src/import/pdf-layout.ts
770
+ var MAX_COLS = 63;
771
+ var MAX_TABLE_ROWS2 = 2e3;
772
+ var MAX_RULES = 2e3;
773
+ var MAX_DEPTH = 4;
774
+ var BULLET_GLYPH_RE = /^[•◦▪▫●○■□‣⁃∙·➢►▶✓✔❖]\s*/;
775
+ var BULLET_DASH_RE = /^[-–—*]\s+/;
776
+ var ORDERED_RE = /^(?:\((\d{1,3}|[a-zA-Z]|[ivxlcIVXLC]{1,6})\)|(\d{1,3}|[a-zA-Z]|[ivxlcIVXLC]{1,6})[.)])\s+/;
777
+ var MARKER_ONLY_RE = /^(?:[•◦▪▫●○■□‣⁃∙·➢►▶✓✔❖]|\(?(?:\d{1,3}|[a-zA-Z]|[ivxlcIVXLC]{1,6})[.)])$/;
778
+ var PAGE_NUMBER_RE = /^(?:page\s+)?(?:\d{1,4}|[ivxlcdm]{1,7})(?:\s*(?:of|\/)\s*\d{1,4})?$/i;
779
+ var DASHED_PAGE_NUMBER_RE = /^[-–—]\s*\d{1,4}\s*[-–—]$/;
780
+ var SENTENCE_END_RE = /[.!?:;]["'”’)\]]?$/;
781
+ var BOLD_FONT_RE = /bold|black|heavy|semibold|demi/i;
782
+ var ITALIC_FONT_RE = /italic|oblique/i;
783
+ function minOf(list, fn) {
784
+ let min = Infinity;
785
+ for (const item of list) min = Math.min(min, fn(item));
786
+ return min;
787
+ }
788
+ function maxOf(list, fn) {
789
+ let max = -Infinity;
790
+ for (const item of list) max = Math.max(max, fn(item));
791
+ return max;
792
+ }
793
+ function lowerBound(values, target) {
794
+ let lo = 0;
795
+ let hi = values.length;
796
+ while (lo < hi) {
797
+ const mid = lo + hi >> 1;
798
+ if (values[mid] < target) lo = mid + 1;
799
+ else hi = mid;
800
+ }
801
+ return lo;
802
+ }
803
+ function median(values) {
804
+ if (!values.length) return 0;
805
+ const sorted = [...values].sort((a, b) => a - b);
806
+ const mid = sorted.length >> 1;
807
+ return sorted.length % 2 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2;
808
+ }
809
+ var countWords = (text) => {
810
+ let words = 0;
811
+ let inWord = false;
812
+ for (let i = 0; i < text.length; i++) {
813
+ const space = text.charCodeAt(i) <= 32;
814
+ if (!space && !inWord) words++;
815
+ inWord = !space;
816
+ }
817
+ return words;
818
+ };
819
+ var collapse = (text) => text.replace(/\s+/g, " ").trim();
820
+ function runSize(run) {
821
+ if (run.fontSize && run.fontSize > 0) return run.fontSize;
822
+ if (run.height && run.height > 0) return run.height;
823
+ return 10;
824
+ }
825
+ function buildFragments(runs) {
826
+ const items = runs.filter((run) => typeof run.text === "string" && run.text.trim() !== "" && Number.isFinite(run.x) && Number.isFinite(run.y)).map((run) => {
827
+ const size = runSize(run);
828
+ const width = run.width !== void 0 && run.width >= 0 ? run.width : run.text.length * size * 0.5;
829
+ return {
830
+ text: run.text,
831
+ x0: run.x,
832
+ x1: run.x + width,
833
+ y: run.y,
834
+ size,
835
+ bold: _nullishCoalesce(run.bold, () => ( BOLD_FONT_RE.test(_nullishCoalesce(run.fontName, () => ( ""))))),
836
+ italic: _nullishCoalesce(run.italic, () => ( ITALIC_FONT_RE.test(_nullishCoalesce(run.fontName, () => ( "")))))
837
+ };
838
+ });
839
+ items.sort((a, b) => b.y - a.y || a.x0 - b.x0);
840
+ const frags = [];
841
+ let i = 0;
842
+ while (i < items.length) {
843
+ const anchor = items[i];
844
+ let j = i + 1;
845
+ while (j < items.length && anchor.y - items[j].y <= Math.max(1, Math.min(anchor.size, items[j].size) * 0.5)) j++;
846
+ const row = items.slice(i, j).sort((a, b) => a.x0 - b.x0);
847
+ i = j;
848
+ let current = null;
849
+ const finish = () => {
850
+ if (!current) return;
851
+ let best = "";
852
+ let bestChars = -1;
853
+ current.styleChars.forEach((chars, key) => {
854
+ if (chars > bestChars) {
855
+ best = key;
856
+ bestChars = chars;
857
+ }
858
+ });
859
+ const [size, bold, italic] = best.split("|");
860
+ current.size = Number(size);
861
+ current.bold = bold === "1";
862
+ current.italic = italic === "1";
863
+ current.text = collapse(current.text);
864
+ current.words = countWords(current.text);
865
+ current.top = current.y + current.size * 0.8;
866
+ current.bottom = current.y - current.size * 0.2;
867
+ if (current.text) frags.push(current);
868
+ current = null;
869
+ };
870
+ for (const item of row) {
871
+ if (current) {
872
+ const gap = item.x0 - current.x1;
873
+ const em = Math.max(current.size, item.size);
874
+ const markerOnly = MARKER_ONLY_RE.test(collapse(current.text));
875
+ if (gap > em * (markerOnly ? 6 : 1)) finish();
876
+ }
877
+ if (!current) {
878
+ current = {
879
+ text: item.text,
880
+ x0: item.x0,
881
+ x1: item.x1,
882
+ y: item.y,
883
+ top: 0,
884
+ bottom: 0,
885
+ size: item.size,
886
+ bold: item.bold,
887
+ italic: item.italic,
888
+ words: 0,
889
+ styleChars: /* @__PURE__ */ new Map()
890
+ };
891
+ } else {
892
+ const gap = item.x0 - current.x1;
893
+ if (gap > Math.max(current.size, item.size) * 0.15 && !/\s$/.test(current.text) && !/^\s/.test(item.text)) {
894
+ current.text += " ";
895
+ }
896
+ current.text += item.text;
897
+ current.x1 = Math.max(current.x1, item.x1);
898
+ }
899
+ const key = `${Math.round(item.size * 2) / 2}|${item.bold ? 1 : 0}|${item.italic ? 1 : 0}`;
900
+ current.styleChars.set(key, (_nullishCoalesce(current.styleChars.get(key), () => ( 0))) + item.text.trim().length);
901
+ }
902
+ finish();
903
+ }
904
+ return frags;
905
+ }
906
+ function baselineRows(frags) {
907
+ const rows = [];
908
+ for (const frag of frags) {
909
+ const row = rows[rows.length - 1];
910
+ if (row && Math.abs(row[0].y - frag.y) <= Math.max(1, Math.min(row[0].size, frag.size) * 0.5)) row.push(frag);
911
+ else rows.push([frag]);
912
+ }
913
+ return rows;
914
+ }
915
+ var edgeKey = (row) => collapse(row.map((f) => f.text).join(" ")).toLowerCase().replace(/\d+/g, "#");
916
+ function removeHeadersAndFooters(pages) {
917
+ const removed = { headers: 0, footers: 0, pageNumbers: 0 };
918
+ const pageRows = pages.map((frags) => baselineRows([...frags].sort((a, b) => b.y - a.y || a.x0 - b.x0)));
919
+ const counts = /* @__PURE__ */ new Map();
920
+ const candidates = [];
921
+ pageRows.forEach((rows, page) => {
922
+ const n = rows.length;
923
+ const picks = [];
924
+ for (let k = 0; k < Math.min(2, n); k++) picks.push([k, "top"]);
925
+ for (let k = Math.max(Math.min(2, n), n - 2); k < n; k++) picks.push([k, "bottom"]);
926
+ for (const [index, edge] of picks) {
927
+ const row = rows[index];
928
+ const extreme = edge === "top" ? index === 0 : index === n - 1;
929
+ const neighbour = edge === "top" ? rows[index + 1] : rows[index - 1];
930
+ const gap = neighbour ? Math.abs(row[0].y - neighbour[0].y) / row[0].size : Infinity;
931
+ candidates.push({ page, row, edge, extreme, gap });
932
+ const key = `${edge}:${edgeKey(row)}`;
933
+ if (!counts.has(key)) counts.set(key, /* @__PURE__ */ new Set());
934
+ counts.get(key).add(page);
935
+ }
936
+ });
937
+ const minPages = Math.max(2, Math.ceil(pages.length * 0.5));
938
+ const drop = /* @__PURE__ */ new Set();
939
+ for (const candidate of candidates) {
940
+ const text = collapse(candidate.row.map((f) => f.text).join(" "));
941
+ const isPageNumber = candidate.extreme && (PAGE_NUMBER_RE.test(text) || DASHED_PAGE_NUMBER_RE.test(text));
942
+ const repeated = (_nullishCoalesce(_optionalChain([counts, 'access', _36 => _36.get, 'call', _37 => _37(`${candidate.edge}:${edgeKey(candidate.row)}`), 'optionalAccess', _38 => _38.size]), () => ( 0))) >= minPages;
943
+ let kind = null;
944
+ if (isPageNumber && (pages.length > 1 || candidate.gap > 2.5)) kind = "pageNumbers";
945
+ else if (repeated && pages.length > 1) kind = candidate.edge === "top" ? "headers" : "footers";
946
+ if (!kind || candidate.row.some((f) => drop.has(f))) continue;
947
+ candidate.row.forEach((f) => drop.add(f));
948
+ removed[kind]++;
949
+ }
950
+ if (drop.size) {
951
+ pages.forEach((frags, index) => {
952
+ pages[index] = frags.filter((f) => !drop.has(f));
953
+ });
954
+ }
955
+ return removed;
956
+ }
957
+ function splitRules(rules) {
958
+ const h = [];
959
+ const v = [];
960
+ for (const rule of rules.slice(0, MAX_RULES)) {
961
+ const { x1, y1, x2, y2 } = rule;
962
+ if (![x1, y1, x2, y2].every(Number.isFinite)) continue;
963
+ const dx = Math.abs(x2 - x1);
964
+ const dy = Math.abs(y2 - y1);
965
+ if (dy <= 1.5 && dx >= 6) h.push({ y: (y1 + y2) / 2, x0: Math.min(x1, x2), x1: Math.max(x1, x2) });
966
+ else if (dx <= 1.5 && dy >= 6) v.push({ x: (x1 + x2) / 2, y0: Math.min(y1, y2), y1: Math.max(y1, y2) });
967
+ }
968
+ return { h, v };
969
+ }
970
+ function clusterValues(values, tol) {
971
+ const sorted = [...values].sort((a, b) => a - b);
972
+ const out = [];
973
+ for (const value of sorted) {
974
+ const cluster = out[out.length - 1];
975
+ if (cluster && value - cluster.last <= tol) {
976
+ cluster.sum += value;
977
+ cluster.n++;
978
+ cluster.last = value;
979
+ } else out.push({ sum: value, n: 1, last: value });
980
+ }
981
+ return out.map((c) => c.sum / c.n);
982
+ }
983
+ function find(parent, i) {
984
+ while (parent[i] !== i) {
985
+ parent[i] = parent[parent[i]];
986
+ i = parent[i];
987
+ }
988
+ return i;
989
+ }
990
+ var cellText = (frags, dehyphenate, stats) => {
991
+ const sorted = [...frags].sort((a, b) => b.y - a.y || a.x0 - b.x0);
992
+ let text = "";
993
+ let lastY = Infinity;
994
+ for (const frag of sorted) {
995
+ if (!text) text = frag.text;
996
+ else if (Math.abs(lastY - frag.y) > frag.size * 0.5) text = joinLines(text, frag.text, dehyphenate, stats);
997
+ else text += ` ${frag.text}`;
998
+ lastY = frag.y;
999
+ }
1000
+ return collapse(text);
1001
+ };
1002
+ var NUMERIC_RE = /^[-+−(]?[$€£¥]?\s?\d[\d,.\s]*%?\)?$/;
1003
+ function headerRowCount(rowFrags) {
1004
+ if (rowFrags.length < 2) return 0;
1005
+ const cells = (row) => row.filter((cell) => cell.length > 0);
1006
+ const first = cells(rowFrags[0]);
1007
+ if (!first.length) return 0;
1008
+ const rest = rowFrags.slice(1).flatMap(cells);
1009
+ const allBold = (list) => list.length > 0 && list.every((cell) => cell.every((f) => f.bold));
1010
+ if (allBold(first) && !allBold(rest)) return 1;
1011
+ const numeric = (cell) => NUMERIC_RE.test(collapse(cell.map((f) => f.text).join(" ")));
1012
+ if (first.every((cell) => !numeric(cell))) {
1013
+ const columns = rowFrags[0].length;
1014
+ for (let c = 0; c < columns; c++) {
1015
+ const body = rowFrags.slice(1).map((row) => row[c]).filter((cell) => cell && cell.length > 0);
1016
+ if (rowFrags[0][c].length && body.length >= 2 && body.every(numeric)) return 1;
1017
+ }
1018
+ }
1019
+ const firstSize = maxOf(first.flat(), (f) => f.size);
1020
+ const restSize = median(rest.flat().map((f) => f.size));
1021
+ if (restSize > 0 && firstSize >= restSize * 1.1) return 1;
1022
+ return 0;
1023
+ }
1024
+ function ruledTables(frags, rules, page, dehyphenate, stats) {
1025
+ const consumed = /* @__PURE__ */ new Set();
1026
+ const atoms = [];
1027
+ const { h, v } = splitRules(rules);
1028
+ if (h.length < 2) return { atoms, consumed };
1029
+ const n = h.length + v.length;
1030
+ const parent = Array.from({ length: n }, (_, i) => i);
1031
+ const union = (a, b) => {
1032
+ const ra = find(parent, a);
1033
+ const rb = find(parent, b);
1034
+ if (ra !== rb) parent[ra] = rb;
1035
+ };
1036
+ const tol = 2;
1037
+ const vOrder = v.map((_, i) => i).sort((a, b) => v[a].x - v[b].x);
1038
+ const vxs = vOrder.map((i) => v[i].x);
1039
+ h.forEach((seg, hi) => {
1040
+ let lo = 0;
1041
+ let hiIdx = vxs.length;
1042
+ while (lo < hiIdx) {
1043
+ const mid = lo + hiIdx >> 1;
1044
+ if (vxs[mid] < seg.x0 - tol) lo = mid + 1;
1045
+ else hiIdx = mid;
1046
+ }
1047
+ for (let k = lo; k < vxs.length && vxs[k] <= seg.x1 + tol; k++) {
1048
+ const vs = v[vOrder[k]];
1049
+ if (seg.y >= vs.y0 - tol && seg.y <= vs.y1 + tol) union(hi, h.length + vOrder[k]);
1050
+ }
1051
+ });
1052
+ const hOrder = h.map((_, i) => i).sort((a, b) => h[a].x0 - h[b].x0 || h[a].x1 - h[b].x1 || h[b].y - h[a].y);
1053
+ for (let k = 1; k < hOrder.length; k++) {
1054
+ const a = h[hOrder[k - 1]];
1055
+ const b = h[hOrder[k]];
1056
+ if (Math.abs(a.x0 - b.x0) <= 4 && Math.abs(a.x1 - b.x1) <= 4) union(hOrder[k - 1], hOrder[k]);
1057
+ }
1058
+ const groups = /* @__PURE__ */ new Map();
1059
+ h.forEach((seg, i) => {
1060
+ const root = find(parent, i);
1061
+ if (!groups.has(root)) groups.set(root, { h: [], v: [] });
1062
+ groups.get(root).h.push(seg);
1063
+ });
1064
+ v.forEach((seg, i) => {
1065
+ const root = find(parent, h.length + i);
1066
+ _optionalChain([groups, 'access', _39 => _39.get, 'call', _40 => _40(root), 'optionalAccess', _41 => _41.v, 'access', _42 => _42.push, 'call', _43 => _43(seg)]);
1067
+ });
1068
+ const byY = [...frags].sort((a, b) => a.y - b.y);
1069
+ const ys = byY.map((f) => f.y);
1070
+ const inRange = (y0, y1) => {
1071
+ let lo = 0;
1072
+ let hi = ys.length;
1073
+ while (lo < hi) {
1074
+ const mid = lo + hi >> 1;
1075
+ if (ys[mid] < y0) lo = mid + 1;
1076
+ else hi = mid;
1077
+ }
1078
+ const out = [];
1079
+ for (let k = lo; k < ys.length && ys[k] <= y1; k++) out.push(byY[k]);
1080
+ return out;
1081
+ };
1082
+ groups.forEach((group) => {
1083
+ const hys = clusterValues(group.h.map((s) => s.y), 1.5).sort((a, b) => b - a);
1084
+ if (hys.length < 2) return;
1085
+ const x0 = Math.min(...group.h.map((s) => s.x0), ...group.v.map((s) => s.x));
1086
+ const x1 = Math.max(...group.h.map((s) => s.x1), ...group.v.map((s) => s.x));
1087
+ const top = Math.max(hys[0], ...group.v.map((s) => s.y1));
1088
+ const bottom = Math.min(hys[hys.length - 1], ...group.v.map((s) => s.y0));
1089
+ const inside = inRange(bottom, top).filter((f) => {
1090
+ if (consumed.has(f)) return false;
1091
+ const cx = (f.x0 + f.x1) / 2;
1092
+ return cx >= x0 - 1 && cx <= x1 + 1;
1093
+ });
1094
+ if (inside.length < 2) return;
1095
+ const vxsGroup = clusterValues(group.v.map((s) => s.x), 1.5);
1096
+ let table = null;
1097
+ if (vxsGroup.length >= 3 || vxsGroup.length >= 2 && hys.length >= 3 && vxsGroup.some((x) => x > x0 + 4 && x < x1 - 4)) {
1098
+ table = gridTable(inside, group, hys, vxsGroup, x0, x1, top, bottom, page, dehyphenate, stats);
1099
+ }
1100
+ if (!table) {
1101
+ const result = alignedTable(inside, page, 2, dehyphenate, stats, hys.length >= 3 ? hys[1] : void 0);
1102
+ if (result && !result.leftover.length && !result.before.length) table = { ...result.table, ruled: true, confidence: 0.85 };
1103
+ }
1104
+ if (!table) return;
1105
+ inside.forEach((f) => consumed.add(f));
1106
+ atoms.push({
1107
+ text: "",
1108
+ x0,
1109
+ x1,
1110
+ y: bottom,
1111
+ top,
1112
+ bottom,
1113
+ size: median(inside.map((f) => f.size)),
1114
+ bold: false,
1115
+ italic: false,
1116
+ words: 0,
1117
+ table
1118
+ });
1119
+ });
1120
+ return { atoms, consumed };
1121
+ }
1122
+ function gridTable(inside, group, hys, vxsIn, x0, x1, top, bottom, page, dehyphenate, stats) {
1123
+ const xs = [...vxsIn];
1124
+ if (xs[0] > x0 + 4) xs.unshift(x0);
1125
+ if (xs[xs.length - 1] < x1 - 4) xs.push(x1);
1126
+ const rowsY = [...hys];
1127
+ if (rowsY[0] < top - 4) rowsY.unshift(top);
1128
+ if (rowsY[rowsY.length - 1] > bottom + 4) rowsY.push(bottom);
1129
+ const cols = xs.length - 1;
1130
+ const rows = rowsY.length - 1;
1131
+ if (cols < 2 || rows < 1 || cols > MAX_COLS || rows > MAX_TABLE_ROWS2) return null;
1132
+ const grid = Array.from({ length: rows }, () => Array.from({ length: cols }, () => []));
1133
+ const ascRows = [...rowsY].reverse();
1134
+ for (const frag of inside) {
1135
+ const x = frag.x0 + Math.min(2, (frag.x1 - frag.x0) / 2);
1136
+ const c = lowerBound(xs, x + 1e-9) - 1;
1137
+ const yProbe = frag.y + frag.size * 0.3;
1138
+ const r = rows - (lowerBound(ascRows, yProbe + 1e-9) - 1) - 1;
1139
+ if (c >= 0 && c < cols && r >= 0 && r < rows) grid[r][c].push(frag);
1140
+ }
1141
+ const filled = grid.flat().filter((cell) => cell.length).length;
1142
+ if (filled < 2 || rows < 2 && cols < 2) return null;
1143
+ const vAt = xs.map(() => []);
1144
+ for (const seg of group.v) {
1145
+ const k = lowerBound(xs, seg.x - 2);
1146
+ if (k < xs.length && Math.abs(xs[k] - seg.x) <= 2) vAt[k].push(seg);
1147
+ }
1148
+ const hAt = rowsY.map(() => []);
1149
+ for (const seg of group.h) {
1150
+ const k = rows - lowerBound(ascRows, seg.y - 2);
1151
+ if (k >= 0 && k <= rows && Math.abs(rowsY[k] - seg.y) <= 2) hAt[k].push(seg);
1152
+ }
1153
+ const hasV = (k, y) => vAt[k].some((s) => y >= s.y0 - 2 && y <= s.y1 + 2);
1154
+ const hasH = (k, x) => hAt[k].some((s) => x >= s.x0 - 2 && x <= s.x1 + 2);
1155
+ const covered = grid.map((row) => row.map(() => false));
1156
+ const header = headerRowCount(grid);
1157
+ const out = [];
1158
+ for (let r = 0; r < rows; r++) {
1159
+ const midY = (rowsY[r] + rowsY[r + 1]) / 2;
1160
+ const row = [];
1161
+ for (let c = 0; c < cols; c++) {
1162
+ if (covered[r][c]) continue;
1163
+ let colSpan = 1;
1164
+ while (c + colSpan < cols && !hasV(c + colSpan, midY) && !grid[r][c + colSpan].length && !covered[r][c + colSpan]) colSpan++;
1165
+ let rowSpan = 1;
1166
+ const midX = (xs[c] + xs[c + colSpan]) / 2;
1167
+ while (r + rowSpan < rows && !hasH(r + rowSpan, midX) && !covered[r + rowSpan].slice(c, c + colSpan).some(Boolean) && grid[r + rowSpan].slice(c, c + colSpan).every((cell) => !cell.length)) {
1168
+ rowSpan++;
1169
+ }
1170
+ for (let rr = r; rr < r + rowSpan; rr++) for (let cc = c; cc < c + colSpan; cc++) covered[rr][cc] = true;
1171
+ row.push({ text: cellText(grid[r][c], dehyphenate, stats), colSpan, rowSpan, header: r < header });
1172
+ }
1173
+ out.push(row);
1174
+ }
1175
+ return { type: "table", page, confidence: 0.95, ruled: true, rows: out, columns: cols, headerRows: header };
1176
+ }
1177
+ function alignedTable(frags, page, minRows, dehyphenate, stats, headerRuleY) {
1178
+ const sorted = [...frags].sort((a, b) => b.y - a.y || a.x0 - b.x0);
1179
+ let rows = baselineRows(sorted).map((row) => row.sort((a, b) => a.x0 - b.x0));
1180
+ if (rows.length < minRows) return null;
1181
+ const multi = rows.filter((row) => row.length >= 2);
1182
+ if (multi.length < Math.min(minRows, 2)) return null;
1183
+ const spans = multi.flat().map((f) => [f.x0, f.x1]).sort((a, b) => a[0] - b[0]);
1184
+ const merged = [];
1185
+ for (const [a, b] of spans) {
1186
+ const last = merged[merged.length - 1];
1187
+ if (last && a <= last[1] + 1) last[1] = Math.max(last[1], b);
1188
+ else merged.push([a, b]);
1189
+ }
1190
+ if (merged.length < 2 || merged.length > MAX_COLS) return null;
1191
+ const edges = merged.map((m) => m[0]);
1192
+ const cols = merged.length;
1193
+ const colOf = (x) => {
1194
+ let c = 0;
1195
+ while (c + 1 < cols && x >= merged[c + 1][0] - 1) c++;
1196
+ return c;
1197
+ };
1198
+ const spanOf = (f, c) => {
1199
+ let span = 1;
1200
+ while (c + span < cols && f.x1 > merged[c + span][0] + 2) span++;
1201
+ return span;
1202
+ };
1203
+ const rowIsCells = (row) => {
1204
+ if (row.length >= 2) return true;
1205
+ const f = row[0];
1206
+ const c = colOf(f.x0);
1207
+ return spanOf(f, c) >= 2 && f.words <= 8 && Math.abs(f.x0 - edges[c]) <= Math.max(4, f.size * 0.6);
1208
+ };
1209
+ const before = [];
1210
+ const leftover = [];
1211
+ let first = 0;
1212
+ let end = rows.length;
1213
+ while (first < end && !rowIsCells(rows[first])) first++;
1214
+ while (end > first && !rowIsCells(rows[end - 1])) end--;
1215
+ rows.slice(0, first).forEach((row) => before.push(...row));
1216
+ rows.slice(end).forEach((row) => leftover.push(...row));
1217
+ rows = rows.slice(first, end);
1218
+ if (rows.length < minRows || rows.length > MAX_TABLE_ROWS2) return null;
1219
+ const grid = [];
1220
+ const spansGrid = [];
1221
+ let prevRow = null;
1222
+ for (const row of rows) {
1223
+ const cells = Array.from({ length: cols }, () => []);
1224
+ const spanRow = Array.from({ length: cols }, () => 1);
1225
+ for (const f of row) {
1226
+ const c = colOf(f.x0);
1227
+ cells[c].push(f);
1228
+ spanRow[c] = Math.max(spanRow[c], row.length === 1 ? spanOf(f, c) : 1);
1229
+ }
1230
+ const continuation = prevRow !== null && grid.length > 0 && cells[0].length === 0 && grid[grid.length - 1][0].length > 0 && cells.every((cell, c) => !cell.length || grid[grid.length - 1][c].length > 0) && minOf(prevRow, (f) => f.bottom) - maxOf(row, (f) => f.top) < row[0].size * 0.5;
1231
+ if (continuation) {
1232
+ cells.forEach((cell, c) => grid[grid.length - 1][c].push(...cell));
1233
+ } else {
1234
+ grid.push(cells);
1235
+ spansGrid.push(spanRow);
1236
+ }
1237
+ prevRow = row;
1238
+ }
1239
+ if (grid.length < minRows) return null;
1240
+ const full = grid.filter((cells) => cells.filter((c) => c.length).length >= 2).length;
1241
+ if (full / grid.length < 0.6) return null;
1242
+ const cellsWithText = grid.flat().filter((c) => c.length);
1243
+ const meanWords = cellsWithText.reduce((sum, cell) => sum + cell.reduce((s, f) => s + f.words, 0), 0) / cellsWithText.length;
1244
+ if (meanWords > 12) return null;
1245
+ let header = headerRowCount(grid);
1246
+ if (headerRuleY !== void 0) {
1247
+ const above = rows.filter((row) => row[0].y > headerRuleY).length;
1248
+ if (above > 0 && above < grid.length) header = Math.max(header, Math.min(above, grid.length - 1));
1249
+ }
1250
+ const out = grid.map((cells, r) => {
1251
+ const row = [];
1252
+ for (let c = 0; c < cols; ) {
1253
+ const span = Math.min(spansGrid[r][c], cols - c);
1254
+ row.push({ text: cellText(cells[c], dehyphenate, stats), colSpan: span, rowSpan: 1, header: r < header });
1255
+ c += span;
1256
+ }
1257
+ return row;
1258
+ });
1259
+ const confidence = Math.min(
1260
+ 0.9,
1261
+ 0.5 + (grid.length >= 5 ? 0.1 : 0) + (cols >= 3 ? 0.1 : 0) + 0.2 * (full / grid.length) - (cols === 2 ? 0.05 : 0)
1262
+ );
1263
+ return {
1264
+ table: { type: "table", page, confidence, ruled: false, rows: out, columns: cols, headerRows: header },
1265
+ leftover,
1266
+ before
1267
+ };
1268
+ }
1269
+ function readingOrder(items, body, detectColumns, depth, columnPages) {
1270
+ const byTop = [...items].sort((a, b) => b.top - a.top || a.x0 - b.x0);
1271
+ if (!detectColumns || items.length < 2 || depth > MAX_DEPTH) return [{ kind: "flow", items: byTop }];
1272
+ const left = minOf(items, (f) => f.x0);
1273
+ const right = maxOf(items, (f) => f.x1);
1274
+ const width = right - left;
1275
+ const isNarrow = (f) => f.x1 - f.x0 < width * 0.55;
1276
+ const narrow = items.filter(isNarrow);
1277
+ const minGutter = Math.max(body * 0.9, 6);
1278
+ const allowed = Math.max(1, Math.floor(narrow.length * 0.08));
1279
+ const events = [];
1280
+ for (const f of narrow) events.push([f.x0, 1], [f.x1, -1]);
1281
+ events.sort((a, b) => a[0] - b[0] || a[1] - b[1]);
1282
+ const candidates = [];
1283
+ let depthNow = 0;
1284
+ let seenContent = false;
1285
+ let start = null;
1286
+ for (const [x, delta] of events) {
1287
+ depthNow += delta;
1288
+ if (depthNow > allowed) {
1289
+ if (start !== null && seenContent && x - start >= minGutter) candidates.push([start, x]);
1290
+ start = null;
1291
+ seenContent = true;
1292
+ } else if (start === null) start = x;
1293
+ }
1294
+ const ends = narrow.map((f) => f.x1).sort((a, b) => a - b);
1295
+ const starts = narrow.map((f) => f.x0).sort((a, b) => a - b);
1296
+ const gutters = [];
1297
+ for (const [a, b] of candidates) {
1298
+ const endBelow = lowerBound(ends, b) - 1;
1299
+ const left2 = endBelow >= 0 && ends[endBelow] > a ? ends[endBelow] : a;
1300
+ const startAbove = lowerBound(starts, a + 1e-9);
1301
+ const right2 = startAbove < starts.length && starts[startAbove] < b ? starts[startAbove] : b;
1302
+ if (right2 - left2 < minGutter) continue;
1303
+ const onLeft = lowerBound(ends, left2 + 1e-6);
1304
+ const onRight = starts.length - lowerBound(starts, right2 - 1e-6);
1305
+ const strays = narrow.length - onLeft - onRight;
1306
+ if (strays < Math.min(onLeft, onRight)) gutters.push([left2, right2]);
1307
+ }
1308
+ if (!gutters.length) return [{ kind: "flow", items: byTop }];
1309
+ const gutterEnds = gutters.map((g) => g[1]);
1310
+ const crosses = (f) => {
1311
+ const k = lowerBound(gutterEnds, f.x0 + 1 + 1e-9);
1312
+ return k < gutters.length && f.x1 > gutters[k][0] + 1 && f.x0 < gutters[k][1] - 1;
1313
+ };
1314
+ const columnOf = (f) => lowerBound(gutterEnds, f.x0 + 1 + 1e-9);
1315
+ const bands = [];
1316
+ for (const f of byTop) {
1317
+ const spanning = crosses(f);
1318
+ const band = bands[bands.length - 1];
1319
+ if (band && band.spanning === spanning) band.items.push(f);
1320
+ else bands.push({ spanning, items: [f] });
1321
+ }
1322
+ const segments = [];
1323
+ let sealed = false;
1324
+ const pushFlow = (list) => {
1325
+ if (!list.length) return;
1326
+ const last = segments[segments.length - 1];
1327
+ if (last && last.kind === "flow" && !sealed) last.items.push(...list);
1328
+ else segments.push({ kind: "flow", items: list });
1329
+ sealed = false;
1330
+ };
1331
+ let multiColumn = false;
1332
+ const isShortSpan = (f) => !f.table && isNarrow(f) && f.words <= 8;
1333
+ for (const band of bands) {
1334
+ const last = segments[segments.length - 1];
1335
+ if (band.spanning) {
1336
+ const lead = band.items[0];
1337
+ if (last && last.kind === "grid" && isShortSpan(lead) && minOf(last.items, (f) => f.bottom) - lead.top <= lead.size * 2) {
1338
+ last.items.push(lead);
1339
+ pushFlow(band.items.slice(1));
1340
+ } else pushFlow(band.items);
1341
+ continue;
1342
+ }
1343
+ const columns = Array.from({ length: gutters.length + 1 }, () => []);
1344
+ band.items.forEach((f) => columns[columnOf(f)].push(f));
1345
+ const used = columns.filter((c) => c.length);
1346
+ if (used.length < 2) {
1347
+ pushFlow(band.items);
1348
+ continue;
1349
+ }
1350
+ const prose = used.every((col) => {
1351
+ const text = col.filter((f) => !f.table);
1352
+ if (text.length < 2) return text.length === 0;
1353
+ const colLeft = minOf(text, (f) => f.x0);
1354
+ const colRight = maxOf(text, (f) => f.x1);
1355
+ const fill = text.reduce((sum, f) => sum + (f.x1 - f.x0), 0) / text.length / Math.max(1, colRight - colLeft);
1356
+ const words = text.reduce((sum, f) => sum + f.words, 0) / text.length;
1357
+ return fill >= 0.55 && words >= 3;
1358
+ });
1359
+ const tops = used.map((col) => [minOf(col, (f) => f.bottom), maxOf(col, (f) => f.top)]);
1360
+ const overlapping = tops.every(([b, t], i) => i === 0 || Math.min(t, tops[0][1]) - Math.max(b, tops[0][0]) > 0);
1361
+ if (prose && overlapping) {
1362
+ multiColumn = true;
1363
+ for (const col of used) segments.push(...readingOrder(col, body, detectColumns, depth + 1, columnPages));
1364
+ sealed = true;
1365
+ continue;
1366
+ }
1367
+ const pulled = [];
1368
+ if (last && last.kind === "flow" && !sealed) {
1369
+ const tail = last.items[last.items.length - 1];
1370
+ if (isShortSpan(tail) && tail.bottom - maxOf(band.items, (f) => f.top) <= tail.size * 2) {
1371
+ pulled.push(last.items.pop());
1372
+ if (!last.items.length) segments.pop();
1373
+ }
1374
+ }
1375
+ const prevSegment = segments[segments.length - 1];
1376
+ if (prevSegment && prevSegment.kind === "grid" && (pulled.length || prevSegment === last)) {
1377
+ prevSegment.items.push(...pulled, ...band.items);
1378
+ } else segments.push({ kind: "grid", items: [...pulled, ...band.items] });
1379
+ sealed = false;
1380
+ }
1381
+ if (multiColumn && depth === 0) columnPages.count++;
1382
+ return segments;
1383
+ }
1384
+ function flowLines(items, page) {
1385
+ const lines = [];
1386
+ const sorted = [...items].sort((a, b) => b.top - a.top || a.x0 - b.x0);
1387
+ for (const f of sorted) {
1388
+ if (f.table) {
1389
+ lines.push({ text: "", x0: f.x0, x1: f.x1, y: f.y, top: f.top, size: f.size, bold: false, page, table: f.table });
1390
+ continue;
1391
+ }
1392
+ const last = lines[lines.length - 1];
1393
+ if (last && !last.table && Math.abs(last.y - f.y) <= Math.min(last.size, f.size) * 0.5) {
1394
+ last.text = `${last.text} ${f.text}`;
1395
+ last.x0 = Math.min(last.x0, f.x0);
1396
+ last.x1 = Math.max(last.x1, f.x1);
1397
+ } else {
1398
+ lines.push({ text: f.text, x0: f.x0, x1: f.x1, y: f.y, top: f.top, size: f.size, bold: f.bold, page });
1399
+ }
1400
+ }
1401
+ return lines;
1402
+ }
1403
+ function joinLines(prev, next, dehyphenate, stats) {
1404
+ if (prev.endsWith("\xAD")) {
1405
+ stats.dehyphenated++;
1406
+ return prev.slice(0, -1) + next;
1407
+ }
1408
+ if (dehyphenate && /[A-Za-zÀ-ɏ]-$/.test(prev) && /^[a-zß-ɏ]/.test(next)) {
1409
+ stats.dehyphenated++;
1410
+ return prev.slice(0, -1) + next;
1411
+ }
1412
+ return `${prev} ${next}`;
1413
+ }
1414
+ function listMarker(text) {
1415
+ const glyph = BULLET_GLYPH_RE.exec(text);
1416
+ if (glyph) return { kind: "glyph", rest: text.slice(glyph[0].length), ordered: false };
1417
+ const dash = BULLET_DASH_RE.exec(text);
1418
+ if (dash) return { kind: "dash", rest: text.slice(dash[0].length), ordered: false };
1419
+ const ordered = ORDERED_RE.exec(text);
1420
+ if (ordered) {
1421
+ const token = _nullishCoalesce(ordered[1], () => ( ordered[2]));
1422
+ const kind = /^\d+$/.test(token) ? "num" : /^[ivxlc]{2,}$/i.test(token) || /^i$/i.test(token) ? "roman" : "alpha";
1423
+ return { kind, rest: text.slice(ordered[0].length), ordered: true, value: kind === "num" ? Number(token) : void 0 };
1424
+ }
1425
+ return null;
1426
+ }
1427
+ function headingStyle(line, next, segRight, ctx) {
1428
+ if (!ctx.options.detectHeadings || line.table) return null;
1429
+ const text = line.text;
1430
+ const words = countWords(text);
1431
+ if (text.length > 200 || words > 25 || !/\p{L}/u.test(text)) return null;
1432
+ if (words > 15 && SENTENCE_END_RE.test(text)) return null;
1433
+ const ratio = line.size / ctx.body;
1434
+ if (ratio >= 1.15) {
1435
+ const confidence = Math.min(0.95, 0.6 + (ratio - 1.15) * 0.8 + (line.bold ? 0.1 : 0));
1436
+ return { key: Math.round(line.size * 2) / 2 + (line.bold ? 0.25 : 0), confidence, boldOnly: false };
1437
+ }
1438
+ const runsOn = !!next && !next.table && next.bold && Math.abs(next.size - line.size) < 0.5 && line.x1 >= segRight - 2 * line.size;
1439
+ if (line.bold && !ctx.boldBody && !runsOn && ratio >= 0.95 && text.length <= 100 && !/[.,;]$/.test(text)) {
1440
+ return { key: Math.round(line.size * 2) / 2 + 0.25, confidence: 0.6, boldOnly: true };
1441
+ }
1442
+ return null;
1443
+ }
1444
+ function buildBlocks(lines, ctx) {
1445
+ const textLines = lines.filter((l) => !l.table);
1446
+ const segLeft = textLines.length ? minOf(textLines, (l) => l.x0) : 0;
1447
+ const segRight = textLines.length ? maxOf(textLines, (l) => l.x1) : 0;
1448
+ const kindCounts = /* @__PURE__ */ new Map();
1449
+ const markers = lines.map((line) => {
1450
+ if (!ctx.options.detectLists || line.table) return null;
1451
+ const marker = listMarker(line.text);
1452
+ if (marker) kindCounts.set(marker.kind, (_nullishCoalesce(kindCounts.get(marker.kind), () => ( 0))) + 1);
1453
+ return marker;
1454
+ });
1455
+ let list = null;
1456
+ let listStack = [];
1457
+ let lastItemLine = null;
1458
+ let para = null;
1459
+ let heading = null;
1460
+ const closeAll = () => {
1461
+ if (para) {
1462
+ const last = para.lines[para.lines.length - 1];
1463
+ const ended = SENTENCE_END_RE.test(last.text) || last.x1 < segRight - 3 * last.size;
1464
+ ctx.open = ended ? null : { block: para.block, size: last.size, lastText: para.block.text };
1465
+ } else ctx.open = null;
1466
+ para = null;
1467
+ list = null;
1468
+ listStack = [];
1469
+ lastItemLine = null;
1470
+ heading = null;
1471
+ };
1472
+ lines.forEach((line, index) => {
1473
+ const prev = index > 0 ? lines[index - 1] : null;
1474
+ if (line.table) {
1475
+ closeAll();
1476
+ ctx.open = null;
1477
+ ctx.blocks.push(line.table);
1478
+ return;
1479
+ }
1480
+ const style = headingStyle(line, lines[index + 1], segRight, ctx);
1481
+ if (style) {
1482
+ if (heading && heading.key === style.key && heading.lines < 3 && prev === heading.line && prev.y - line.y <= line.size * 1.6) {
1483
+ heading.block.text = joinLines(heading.block.text, line.text, ctx.options.dehyphenate, ctx.stats);
1484
+ heading.line = line;
1485
+ heading.lines++;
1486
+ return;
1487
+ }
1488
+ closeAll();
1489
+ ctx.open = null;
1490
+ const block2 = { type: "heading", level: 1, text: line.text, page: line.page, confidence: style.confidence };
1491
+ ctx.blocks.push(block2);
1492
+ ctx.headings.push({ block: block2, key: style.key, boldOnly: style.boldOnly });
1493
+ heading = { block: block2, line, key: style.key, lines: 1 };
1494
+ return;
1495
+ }
1496
+ heading = null;
1497
+ const marker = markers[index];
1498
+ const validMarker = marker && (marker.kind === "glyph" || (_nullishCoalesce(kindCounts.get(marker.kind), () => ( 0))) >= 2) && marker.rest.trim() !== "";
1499
+ if (validMarker) {
1500
+ const gapOk = lastItemLine && lastItemLine.y - line.y <= Math.max(ctx.pitch(line.size) * 2.2, line.size * 2.4);
1501
+ if (!list || !gapOk) {
1502
+ closeAll();
1503
+ ctx.open = null;
1504
+ list = { type: "list", page: line.page, confidence: 0.6, items: [] };
1505
+ ctx.blocks.push(list);
1506
+ listStack = [line.x0];
1507
+ }
1508
+ const tol = line.size * 0.5;
1509
+ while (listStack.length > 1 && line.x0 < listStack[listStack.length - 1] - tol) listStack.pop();
1510
+ if (line.x0 > listStack[listStack.length - 1] + tol) listStack.push(line.x0);
1511
+ else listStack[listStack.length - 1] = Math.min(listStack[listStack.length - 1], line.x0);
1512
+ const prevDepth = list.items.length ? list.items[list.items.length - 1].depth : -1;
1513
+ const depth = Math.min(listStack.length - 1, prevDepth + 1);
1514
+ const item = {
1515
+ text: collapse(marker.rest),
1516
+ depth,
1517
+ ordered: marker.ordered
1518
+ };
1519
+ if (marker.value !== void 0) item.start = marker.value;
1520
+ list.items.push(item);
1521
+ list.confidence = Math.min(0.95, (marker.kind === "glyph" ? 0.75 : 0.6) + 0.05 * list.items.length);
1522
+ lastItemLine = line;
1523
+ para = null;
1524
+ return;
1525
+ }
1526
+ if (list && lastItemLine && prev) {
1527
+ const markerX = listStack[listStack.length - 1];
1528
+ const continues = line.x0 > markerX + line.size * 0.3 && line.x0 <= markerX + line.size * 5 && prev.y - line.y <= ctx.pitch(line.size) * ctx.options.paragraphGap;
1529
+ if (continues) {
1530
+ const item = list.items[list.items.length - 1];
1531
+ item.text = joinLines(item.text, line.text, ctx.options.dehyphenate, ctx.stats);
1532
+ lastItemLine = line;
1533
+ return;
1534
+ }
1535
+ closeAll();
1536
+ }
1537
+ if (!para && ctx.open && index === 0 && /^[a-z]/.test(line.text) && Math.abs(ctx.open.size - line.size) <= line.size * 0.12) {
1538
+ ctx.open.block.text = joinLines(ctx.open.block.text, line.text, ctx.options.dehyphenate, ctx.stats);
1539
+ para = { block: ctx.open.block, lines: [line] };
1540
+ ctx.open = null;
1541
+ return;
1542
+ }
1543
+ if (para && prev && !prev.table) {
1544
+ const last = para.lines[para.lines.length - 1];
1545
+ const gap = last.y - line.y;
1546
+ const sameSize = Math.abs(last.size - line.size) <= last.size * 0.12;
1547
+ const closeEnough = gap > 0 && gap <= ctx.pitch(line.size) * ctx.options.paragraphGap;
1548
+ const indentEm = line.size * 0.8;
1549
+ const indented = line.x0 - segLeft >= indentEm && last.x0 - segLeft < indentEm && line.x0 - segLeft < line.size * 8;
1550
+ const shortEnded = last.x1 < segRight - 3 * last.size && SENTENCE_END_RE.test(last.text);
1551
+ if (sameSize && closeEnough && !indented && !shortEnded) {
1552
+ para.block.text = joinLines(para.block.text, line.text, ctx.options.dehyphenate, ctx.stats);
1553
+ para.lines.push(line);
1554
+ return;
1555
+ }
1556
+ }
1557
+ closeAll();
1558
+ ctx.open = null;
1559
+ const block = { type: "paragraph", text: line.text, page: line.page };
1560
+ ctx.blocks.push(block);
1561
+ para = { block, lines: [line] };
1562
+ });
1563
+ closeAll();
1564
+ }
1565
+ function assignHeadingLevels(headings) {
1566
+ const keys = Array.from(new Set(headings.map((h) => h.key))).sort((a, b) => b - a);
1567
+ const levelOf = new Map(keys.map((key, i) => [key, Math.min(6, i + 1)]));
1568
+ headings.forEach((h) => {
1569
+ h.block.level = levelOf.get(h.key);
1570
+ });
1571
+ }
1572
+ var DEFAULTS = {
1573
+ paragraphGap: 1.4,
1574
+ removeHeadersAndFooters: true,
1575
+ detectColumns: true,
1576
+ detectHeadings: true,
1577
+ detectLists: true,
1578
+ detectTables: true,
1579
+ dehyphenate: true
1580
+ };
1581
+ function analyzePdfLayout(pages, options = {}) {
1582
+ const opts = { ...DEFAULTS };
1583
+ Object.keys(options).forEach((key) => {
1584
+ if (options[key] !== void 0) opts[key] = options[key];
1585
+ });
1586
+ const fragPages = pages.map((page) => buildFragments(_nullishCoalesce(page.runs, () => ( []))));
1587
+ const removed = opts.removeHeadersAndFooters ? removeHeadersAndFooters(fragPages) : { headers: 0, footers: 0, pageNumbers: 0 };
1588
+ const bySize = /* @__PURE__ */ new Map();
1589
+ let boldChars = 0;
1590
+ let totalChars = 0;
1591
+ fragPages.flat().forEach((f) => {
1592
+ const key = Math.round(f.size * 2) / 2;
1593
+ bySize.set(key, (_nullishCoalesce(bySize.get(key), () => ( 0))) + f.text.length);
1594
+ });
1595
+ let body = 10;
1596
+ let bodyChars = -1;
1597
+ bySize.forEach((chars, size) => {
1598
+ if (chars > bodyChars) {
1599
+ body = size;
1600
+ bodyChars = chars;
1601
+ }
1602
+ });
1603
+ fragPages.flat().forEach((f) => {
1604
+ if (Math.abs(f.size - body) <= body * 0.05) {
1605
+ totalChars += f.text.length;
1606
+ if (f.bold) boldChars += f.text.length;
1607
+ }
1608
+ });
1609
+ const pitches = /* @__PURE__ */ new Map();
1610
+ fragPages.forEach((frags) => {
1611
+ const rows = baselineRows([...frags].sort((a, b) => b.y - a.y || a.x0 - b.x0));
1612
+ for (let k = 1; k < rows.length; k++) {
1613
+ const a = rows[k - 1][0];
1614
+ const b = rows[k][0];
1615
+ if (Math.abs(a.size - b.size) > 0.5) continue;
1616
+ const d = a.y - b.y;
1617
+ if (d > 0 && d < a.size * 3) {
1618
+ const key = Math.round(b.size * 2) / 2;
1619
+ if (!pitches.has(key)) pitches.set(key, []);
1620
+ pitches.get(key).push(d);
1621
+ }
1622
+ }
1623
+ });
1624
+ const pitchMedians = /* @__PURE__ */ new Map();
1625
+ pitches.forEach((values, key) => pitchMedians.set(key, median(values)));
1626
+ const stats = { dehyphenated: 0 };
1627
+ const ctx = {
1628
+ body,
1629
+ boldBody: totalChars > 0 && boldChars / totalChars > 0.5,
1630
+ pitch: (size) => {
1631
+ const known = pitchMedians.get(Math.round(size * 2) / 2);
1632
+ return known && known >= size * 0.9 ? known : size * 1.2;
1633
+ },
1634
+ options: opts,
1635
+ stats,
1636
+ blocks: [],
1637
+ headings: [],
1638
+ open: null
1639
+ };
1640
+ const columnPages = { count: 0 };
1641
+ const items = [];
1642
+ fragPages.forEach((frags, pageIndex) => {
1643
+ const page = pageIndex + 1;
1644
+ let flowFrags = frags;
1645
+ const atoms = [];
1646
+ if (opts.detectTables && _optionalChain([pages, 'access', _44 => _44[pageIndex], 'access', _45 => _45.rules, 'optionalAccess', _46 => _46.length])) {
1647
+ const ruled = ruledTables(frags, pages[pageIndex].rules, page, opts.dehyphenate, stats);
1648
+ flowFrags = frags.filter((f) => !ruled.consumed.has(f));
1649
+ atoms.push(...ruled.atoms);
1650
+ }
1651
+ const before = columnPages.count;
1652
+ const segments = readingOrder([...flowFrags, ...atoms], body, opts.detectColumns, 0, columnPages);
1653
+ if (columnPages.count > before) items.push({ type: "columns", page, confidence: 0.8, detail: "multi-column layout" });
1654
+ const units = [];
1655
+ let carry = [];
1656
+ for (const segment of segments) {
1657
+ if (segment.kind === "grid" && opts.detectTables) {
1658
+ const result = alignedTable(segment.items.filter((f) => !f.table), page, 3, opts.dehyphenate, stats);
1659
+ if (result) {
1660
+ const last = units[units.length - 1];
1661
+ if (result.before.length && last && last.kind === "flow") last.items.push(...carry, ...result.before);
1662
+ else if (result.before.length || carry.length) units.push({ kind: "flow", items: [...carry, ...result.before] });
1663
+ units.push({ kind: "table", table: result.table });
1664
+ carry = [...segment.items.filter((f) => f.table), ...result.leftover];
1665
+ continue;
1666
+ }
1667
+ }
1668
+ units.push({ kind: "flow", items: [...carry, ...segment.items] });
1669
+ carry = [];
1670
+ }
1671
+ if (carry.length) units.push({ kind: "flow", items: carry });
1672
+ for (const unit of units) {
1673
+ if (unit.kind === "table") {
1674
+ ctx.open = null;
1675
+ ctx.blocks.push(unit.table);
1676
+ } else buildBlocks(flowLines(unit.items, page), ctx);
1677
+ }
1678
+ });
1679
+ assignHeadingLevels(ctx.headings);
1680
+ const counts = { headings: 0, lists: 0, tables: 0, paragraphs: 0 };
1681
+ const confidences = [];
1682
+ ctx.blocks.forEach((block) => {
1683
+ if (block.type === "heading") {
1684
+ counts.headings++;
1685
+ confidences.push(block.confidence);
1686
+ items.push({ type: "heading", page: block.page, confidence: block.confidence, detail: `H${block.level} "${truncate(block.text)}"` });
1687
+ } else if (block.type === "list") {
1688
+ counts.lists++;
1689
+ confidences.push(block.confidence);
1690
+ const depth = maxOf(block.items, (i) => i.depth) + 1;
1691
+ items.push({
1692
+ type: "list",
1693
+ page: block.page,
1694
+ confidence: block.confidence,
1695
+ detail: `${_optionalChain([block, 'access', _47 => _47.items, 'access', _48 => _48[0], 'optionalAccess', _49 => _49.ordered]) ? "numbered" : "bulleted"} list, ${block.items.length} items${depth > 1 ? `, ${depth} levels` : ""}`
1696
+ });
1697
+ } else if (block.type === "table") {
1698
+ counts.tables++;
1699
+ confidences.push(block.confidence);
1700
+ items.push({
1701
+ type: "table",
1702
+ page: block.page,
1703
+ confidence: block.confidence,
1704
+ detail: `${block.rows.length}\xD7${block.columns} table${block.ruled ? " (ruled)" : ""}${block.headerRows ? ", header row" : ""}`
1705
+ });
1706
+ } else counts.paragraphs++;
1707
+ });
1708
+ items.sort((a, b) => a.page - b.page);
1709
+ return {
1710
+ blocks: ctx.blocks,
1711
+ report: {
1712
+ mode: "structured",
1713
+ pages: pages.length,
1714
+ counts,
1715
+ multiColumnPages: columnPages.count,
1716
+ confidence: confidences.length ? Math.round(confidences.reduce((a, b) => a + b, 0) / confidences.length * 100) / 100 : 1,
1717
+ items,
1718
+ removed,
1719
+ dehyphenated: stats.dehyphenated
1720
+ }
1721
+ };
1722
+ }
1723
+ var truncate = (text) => text.length > 60 ? `${text.slice(0, 57)}\u2026` : text;
1724
+ function listHtml(items) {
1725
+ let html = "";
1726
+ const stack = [];
1727
+ for (const item of items) {
1728
+ const level = item.depth + 1;
1729
+ while (stack.length > level) html += `</li></${stack.pop()}>`;
1730
+ const tag = item.ordered ? "ol" : "ul";
1731
+ if (stack.length === level) {
1732
+ if (stack[stack.length - 1] !== tag) {
1733
+ html += `</li></${stack.pop()}>`;
1734
+ } else html += "</li>";
1735
+ }
1736
+ while (stack.length < level) {
1737
+ const start = item.ordered && item.start !== void 0 && item.start !== 1 ? ` start="${item.start}"` : "";
1738
+ html += `<${tag}${start}>`;
1739
+ stack.push(tag);
1740
+ }
1741
+ html += `<li><p>${_chunkNFVBT3UZcjs.escapeHtml.call(void 0, item.text)}</p>`;
1742
+ }
1743
+ while (stack.length) html += `</li></${stack.pop()}>`;
1744
+ return html;
1745
+ }
1746
+ function pdfLayoutBlocksToHtml(blocks) {
1747
+ let html = "";
1748
+ for (const block of blocks) {
1749
+ if (block.type === "heading") html += `<h${block.level}>${_chunkNFVBT3UZcjs.escapeHtml.call(void 0, block.text)}</h${block.level}>`;
1750
+ else if (block.type === "paragraph") html += `<p>${_chunkNFVBT3UZcjs.escapeHtml.call(void 0, block.text)}</p>`;
1751
+ else if (block.type === "list") html += listHtml(block.items);
1752
+ else {
1753
+ html += "<table><tbody>";
1754
+ for (const row of block.rows) {
1755
+ html += "<tr>";
1756
+ for (const cell of row) {
1757
+ const tag = cell.header ? "th" : "td";
1758
+ const attrs = `${cell.colSpan > 1 ? ` colspan="${cell.colSpan}"` : ""}${cell.rowSpan > 1 ? ` rowspan="${cell.rowSpan}"` : ""}`;
1759
+ html += `<${tag}${attrs}><p>${_chunkNFVBT3UZcjs.escapeHtml.call(void 0, cell.text)}</p></${tag}>`;
1760
+ }
1761
+ html += "</tr>";
1762
+ }
1763
+ html += "</tbody></table>";
1764
+ }
1765
+ }
1766
+ return html || "<p></p>";
1767
+ }
603
1768
 
604
1769
  // src/import/pdf.ts
605
1770
  var isTextItem = (item) => typeof item.str === "string";
606
- function median(values) {
1771
+ function median2(values) {
607
1772
  if (!values.length) return 0;
608
1773
  const sorted = [...values].sort((a, b) => a - b);
609
1774
  const mid = sorted.length >> 1;
@@ -615,9 +1780,9 @@ function groupLines(items) {
615
1780
  let breakNext = false;
616
1781
  for (const item of items) {
617
1782
  if (!isTextItem(item)) continue;
618
- const x = _nullishCoalesce(_optionalChain([item, 'access', _33 => _33.transform, 'optionalAccess', _34 => _34[4]]), () => ( 0));
619
- const y = _nullishCoalesce(_optionalChain([item, 'access', _35 => _35.transform, 'optionalAccess', _36 => _36[5]]), () => ( (_nullishCoalesce(_optionalChain([current, 'optionalAccess', _37 => _37.y]), () => ( 0)))));
620
- const height = item.height || Math.abs(_nullishCoalesce(_optionalChain([item, 'access', _38 => _38.transform, 'optionalAccess', _39 => _39[3]]), () => ( 0))) || _optionalChain([current, 'optionalAccess', _40 => _40.height]) || 10;
1783
+ const x = _nullishCoalesce(_optionalChain([item, 'access', _50 => _50.transform, 'optionalAccess', _51 => _51[4]]), () => ( 0));
1784
+ const y = _nullishCoalesce(_optionalChain([item, 'access', _52 => _52.transform, 'optionalAccess', _53 => _53[5]]), () => ( (_nullishCoalesce(_optionalChain([current, 'optionalAccess', _54 => _54.y]), () => ( 0)))));
1785
+ const height = item.height || Math.abs(_nullishCoalesce(_optionalChain([item, 'access', _55 => _55.transform, 'optionalAccess', _56 => _56[3]]), () => ( 0))) || _optionalChain([current, 'optionalAccess', _57 => _57.height]) || 10;
621
1786
  const tolerance = Math.max(1, height * 0.5);
622
1787
  if (!item.str) {
623
1788
  if (item.hasEOL) {
@@ -646,7 +1811,7 @@ function pdfTextItemsToParagraphs(items, options = {}) {
646
1811
  const gap = lines[i - 1].y - lines[i].y;
647
1812
  if (gap > 0) gaps.push(gap);
648
1813
  }
649
- const typical = median(gaps);
1814
+ const typical = median2(gaps);
650
1815
  const factor = _nullishCoalesce(options.paragraphGap, () => ( 1.4));
651
1816
  const paragraphs = [];
652
1817
  let current = [];
@@ -673,6 +1838,228 @@ function pdfTextItemsToParagraphs(items, options = {}) {
673
1838
  flush();
674
1839
  return paragraphs;
675
1840
  }
1841
+ function pdfTextItemsToRuns(items, font) {
1842
+ const runs = [];
1843
+ const cache = /* @__PURE__ */ new Map();
1844
+ for (const item of items) {
1845
+ if (!isTextItem(item) || !item.str.trim()) continue;
1846
+ const t = _nullishCoalesce(item.transform, () => ( []));
1847
+ const fontSize = Math.hypot(_nullishCoalesce(t[2], () => ( 0)), _nullishCoalesce(t[3], () => ( 0))) || item.height || 10;
1848
+ let info;
1849
+ if (item.fontName && font) {
1850
+ if (!cache.has(item.fontName)) cache.set(item.fontName, font(item.fontName));
1851
+ info = cache.get(item.fontName);
1852
+ }
1853
+ runs.push({
1854
+ text: item.str,
1855
+ x: _nullishCoalesce(t[4], () => ( 0)),
1856
+ y: _nullishCoalesce(t[5], () => ( 0)),
1857
+ width: item.width,
1858
+ fontSize,
1859
+ fontName: _nullishCoalesce(_optionalChain([info, 'optionalAccess', _58 => _58.name]), () => ( item.fontName)),
1860
+ bold: _optionalChain([info, 'optionalAccess', _59 => _59.bold]),
1861
+ italic: _optionalChain([info, 'optionalAccess', _60 => _60.italic])
1862
+ });
1863
+ }
1864
+ return runs;
1865
+ }
1866
+ var DEFAULT_OPS = {
1867
+ save: 10,
1868
+ restore: 11,
1869
+ transform: 12,
1870
+ moveTo: 13,
1871
+ lineTo: 14,
1872
+ curveTo: 15,
1873
+ curveTo2: 16,
1874
+ curveTo3: 17,
1875
+ closePath: 18,
1876
+ rectangle: 19,
1877
+ stroke: 20,
1878
+ closeStroke: 21,
1879
+ fill: 22,
1880
+ eoFill: 23,
1881
+ fillStroke: 24,
1882
+ eoFillStroke: 25,
1883
+ closeFillStroke: 26,
1884
+ closeEOFillStroke: 27,
1885
+ endPath: 28,
1886
+ constructPath: 91
1887
+ };
1888
+ var DRAW_OPS = { moveTo: 0, lineTo: 1, curveTo: 2, quadraticCurveTo: 3, closePath: 4 };
1889
+ var MAX_PAGE_RULES = 5e3;
1890
+ var IDENTITY = [1, 0, 0, 1, 0, 0];
1891
+ var multiply = (m, c) => [
1892
+ m[0] * c[0] + m[1] * c[2],
1893
+ m[0] * c[1] + m[1] * c[3],
1894
+ m[2] * c[0] + m[3] * c[2],
1895
+ m[2] * c[1] + m[3] * c[3],
1896
+ m[4] * c[0] + m[5] * c[2] + c[4],
1897
+ m[4] * c[1] + m[5] * c[3] + c[5]
1898
+ ];
1899
+ var apply = (m, x, y) => [m[0] * x + m[2] * y + m[4], m[1] * x + m[3] * y + m[5]];
1900
+ function pdfOperatorListToRules(list, opsTable) {
1901
+ const OPS = { ...DEFAULT_OPS, ..._nullishCoalesce(opsTable, () => ( {})) };
1902
+ const stroking = /* @__PURE__ */ new Set([OPS.stroke, OPS.closeStroke, OPS.fillStroke, OPS.eoFillStroke, OPS.closeFillStroke, OPS.closeEOFillStroke]);
1903
+ const filling = /* @__PURE__ */ new Set([OPS.fill, OPS.eoFill, OPS.fillStroke, OPS.eoFillStroke, OPS.closeFillStroke, OPS.closeEOFillStroke]);
1904
+ const rules = [];
1905
+ const stack = [];
1906
+ let ctm = IDENTITY;
1907
+ let lines = [];
1908
+ let rects = [];
1909
+ const num = (value) => typeof value === "number" && Number.isFinite(value) ? value : NaN;
1910
+ const addLine = (x1, y1, x2, y2) => {
1911
+ const [a, b] = apply(ctm, x1, y1);
1912
+ const [c, d] = apply(ctm, x2, y2);
1913
+ lines.push([a, b, c, d]);
1914
+ };
1915
+ const addRect = (x, y, w, h) => {
1916
+ const corners = [apply(ctm, x, y), apply(ctm, x + w, y), apply(ctm, x + w, y + h), apply(ctm, x, y + h)];
1917
+ const xs = corners.map((p) => p[0]);
1918
+ const ys = corners.map((p) => p[1]);
1919
+ rects.push([Math.min(...xs), Math.min(...ys), Math.max(...xs), Math.max(...ys)]);
1920
+ };
1921
+ const paint = (op) => {
1922
+ const stroke = stroking.has(op);
1923
+ const fill = filling.has(op);
1924
+ if (stroke) {
1925
+ for (const [x1, y1, x2, y2] of lines) rules.push({ x1, y1, x2, y2 });
1926
+ for (const [x0, y0, x1, y1] of rects) {
1927
+ rules.push({ x1: x0, y1: y0, x2: x1, y2: y0 }, { x1: x0, y1, x2: x1, y2: y1 });
1928
+ rules.push({ x1: x0, y1: y0, x2: x0, y2: y1 }, { x1, y1: y0, x2: x1, y2: y1 });
1929
+ }
1930
+ } else if (fill) {
1931
+ for (const [x0, y0, x1, y1] of rects) {
1932
+ if (y1 - y0 <= 2 && x1 - x0 > 2) rules.push({ x1: x0, y1: (y0 + y1) / 2, x2: x1, y2: (y0 + y1) / 2 });
1933
+ else if (x1 - x0 <= 2 && y1 - y0 > 2) rules.push({ x1: (x0 + x1) / 2, y1: y0, x2: (x0 + x1) / 2, y2: y1 });
1934
+ }
1935
+ }
1936
+ lines = [];
1937
+ rects = [];
1938
+ };
1939
+ const readPath = (subOps, subArgs) => {
1940
+ let k = 0;
1941
+ let cx = 0;
1942
+ let cy = 0;
1943
+ let sx = 0;
1944
+ let sy = 0;
1945
+ for (let i = 0; i < subOps.length; i++) {
1946
+ const op = subOps[i];
1947
+ if (op === OPS.moveTo) {
1948
+ cx = sx = num(subArgs[k++]);
1949
+ cy = sy = num(subArgs[k++]);
1950
+ } else if (op === OPS.lineTo) {
1951
+ const x = num(subArgs[k++]);
1952
+ const y = num(subArgs[k++]);
1953
+ addLine(cx, cy, x, y);
1954
+ cx = x;
1955
+ cy = y;
1956
+ } else if (op === OPS.rectangle) {
1957
+ addRect(num(subArgs[k++]), num(subArgs[k++]), num(subArgs[k++]), num(subArgs[k++]));
1958
+ } else if (op === OPS.curveTo) {
1959
+ k += 4;
1960
+ cx = num(subArgs[k++]);
1961
+ cy = num(subArgs[k++]);
1962
+ } else if (op === OPS.curveTo2 || op === OPS.curveTo3) {
1963
+ k += 2;
1964
+ cx = num(subArgs[k++]);
1965
+ cy = num(subArgs[k++]);
1966
+ } else if (op === OPS.closePath) {
1967
+ if (cx !== sx || cy !== sy) addLine(cx, cy, sx, sy);
1968
+ cx = sx;
1969
+ cy = sy;
1970
+ }
1971
+ }
1972
+ };
1973
+ const readDrawBuffer = (data) => {
1974
+ let cx = 0;
1975
+ let cy = 0;
1976
+ let sx = 0;
1977
+ let sy = 0;
1978
+ for (let k = 0; k < data.length; ) {
1979
+ const code = data[k++];
1980
+ if (code === DRAW_OPS.moveTo) {
1981
+ cx = sx = data[k++];
1982
+ cy = sy = data[k++];
1983
+ } else if (code === DRAW_OPS.lineTo) {
1984
+ const x = data[k++];
1985
+ const y = data[k++];
1986
+ addLine(cx, cy, x, y);
1987
+ cx = x;
1988
+ cy = y;
1989
+ } else if (code === DRAW_OPS.curveTo) {
1990
+ k += 4;
1991
+ cx = data[k++];
1992
+ cy = data[k++];
1993
+ } else if (code === DRAW_OPS.quadraticCurveTo) {
1994
+ k += 2;
1995
+ cx = data[k++];
1996
+ cy = data[k++];
1997
+ } else if (code === DRAW_OPS.closePath) {
1998
+ if (cx !== sx || cy !== sy) addLine(cx, cy, sx, sy);
1999
+ cx = sx;
2000
+ cy = sy;
2001
+ } else break;
2002
+ }
2003
+ };
2004
+ for (let i = 0; i < list.fnArray.length && rules.length < MAX_PAGE_RULES; i++) {
2005
+ const fn = list.fnArray[i];
2006
+ const args = list.argsArray[i];
2007
+ if (fn === OPS.save) stack.push(ctm);
2008
+ else if (fn === OPS.restore) ctm = _nullishCoalesce(stack.pop(), () => ( IDENTITY));
2009
+ else if (fn === OPS.transform && args && args.length >= 6) {
2010
+ const m = Array.from({ length: 6 }, (_, k) => num(args[k]));
2011
+ if (m.every(Number.isFinite)) ctm = multiply(m, ctm);
2012
+ } else if (fn === OPS.constructPath && args) {
2013
+ const first = args[0];
2014
+ if (typeof first === "number") {
2015
+ const buffers = args[1];
2016
+ const data = _optionalChain([buffers, 'optionalAccess', _61 => _61[0]]);
2017
+ if (data && typeof data.length === "number") readDrawBuffer(data);
2018
+ paint(first);
2019
+ } else if (first && typeof first.length === "number") {
2020
+ readPath(first, _nullishCoalesce(args[1], () => ( [])));
2021
+ }
2022
+ } else if (stroking.has(fn) || filling.has(fn)) paint(fn);
2023
+ else if (fn === OPS.endPath) {
2024
+ lines = [];
2025
+ rects = [];
2026
+ }
2027
+ }
2028
+ return rules.filter((rule) => [rule.x1, rule.y1, rule.x2, rule.y2].every(Number.isFinite));
2029
+ }
2030
+ function fontResolver(page, content) {
2031
+ return (fontName) => {
2032
+ let info;
2033
+ try {
2034
+ if (page.commonObjs && (!page.commonObjs.has || page.commonObjs.has(fontName))) {
2035
+ const font = page.commonObjs.get(fontName);
2036
+ if (font && typeof font === "object") {
2037
+ info = {
2038
+ name: typeof font.name === "string" ? font.name : void 0,
2039
+ bold: font.bold || font.black ? true : void 0,
2040
+ italic: font.italic ? true : void 0
2041
+ };
2042
+ }
2043
+ }
2044
+ } catch (e) {
2045
+ }
2046
+ const family = _optionalChain([content, 'access', _62 => _62.styles, 'optionalAccess', _63 => _63[fontName], 'optionalAccess', _64 => _64.fontFamily]);
2047
+ if (!_optionalChain([info, 'optionalAccess', _65 => _65.name]) && family) info = { ...info, name: family };
2048
+ return info;
2049
+ };
2050
+ }
2051
+ function plainReport(paragraphs, pages) {
2052
+ return {
2053
+ mode: "plain",
2054
+ pages,
2055
+ counts: { headings: 0, lists: 0, tables: 0, paragraphs },
2056
+ multiColumnPages: 0,
2057
+ confidence: 1,
2058
+ items: [],
2059
+ removed: { headers: 0, footers: 0, pageNumbers: 0 },
2060
+ dehyphenated: 0
2061
+ };
2062
+ }
676
2063
  function createPdfImportAdapter(pdfjs, options = {}) {
677
2064
  return {
678
2065
  id: _nullishCoalesce(options.id, () => ( "pdf")),
@@ -681,22 +2068,47 @@ function createPdfImportAdapter(pdfjs, options = {}) {
681
2068
  extensions: [".pdf"],
682
2069
  target: "document",
683
2070
  async import(_input, context) {
2071
+ const call = context.options && typeof context.options === "object" ? context.options : {};
2072
+ const opts = { ...options, ...call, layout: { ...options.layout, ...call.layout } };
2073
+ const structured = opts.structure !== false;
684
2074
  const data = new Uint8Array((await context.readArrayBuffer()).slice(0));
685
- const doc = await pdfjs.getDocument({ ...options.documentParams, data }).promise;
2075
+ const doc = await pdfjs.getDocument({ ...opts.documentParams, data }).promise;
686
2076
  const paragraphs = [];
2077
+ const layoutPages = [];
2078
+ let pages = 0;
687
2079
  try {
688
- const pages = Math.min(doc.numPages, _nullishCoalesce(options.maxPages, () => ( Infinity)));
2080
+ pages = Math.min(doc.numPages, _nullishCoalesce(opts.maxPages, () => ( Infinity)));
689
2081
  for (let n = 1; n <= pages; n++) {
690
2082
  const page = await doc.getPage(n);
691
- const content = await page.getTextContent();
692
- paragraphs.push(...pdfTextItemsToParagraphs(content.items, options));
693
- _optionalChain([page, 'access', _41 => _41.cleanup, 'optionalCall', _42 => _42()]);
2083
+ if (!structured) {
2084
+ const content = await page.getTextContent();
2085
+ paragraphs.push(...pdfTextItemsToParagraphs(content.items, opts));
2086
+ } else {
2087
+ let rules = [];
2088
+ if (opts.rulingLines !== false && typeof page.getOperatorList === "function") {
2089
+ try {
2090
+ rules = pdfOperatorListToRules(await page.getOperatorList(), pdfjs.OPS);
2091
+ } catch (e2) {
2092
+ rules = [];
2093
+ }
2094
+ }
2095
+ const content = await page.getTextContent();
2096
+ layoutPages.push({ runs: pdfTextItemsToRuns(content.items, fontResolver(page, content)), rules });
2097
+ }
2098
+ _optionalChain([page, 'access', _66 => _66.cleanup, 'optionalCall', _67 => _67()]);
694
2099
  }
695
2100
  } finally {
696
- await _optionalChain([doc, 'access', _43 => _43.destroy, 'optionalCall', _44 => _44()]);
2101
+ await _optionalChain([doc, 'access', _68 => _68.destroy, 'optionalCall', _69 => _69()]);
2102
+ }
2103
+ if (!structured) {
2104
+ const text = paragraphs.join("\n");
2105
+ return { html: _chunkRRREAOVMcjs.plainTextToParagraphHtml.call(void 0, text), text, structure: plainReport(paragraphs.length, pages) };
697
2106
  }
698
- const text = paragraphs.join("\n");
699
- return { html: _chunkSML64VJGcjs.plainTextToParagraphHtml.call(void 0, text), text };
2107
+ const layout = { ...opts.layout };
2108
+ if (layout.paragraphGap === void 0 && opts.paragraphGap !== void 0) layout.paragraphGap = opts.paragraphGap;
2109
+ const { blocks, report } = analyzePdfLayout(layoutPages, layout);
2110
+ const html = _chunkRRREAOVMcjs.sanitizeImportedHtml.call(void 0, pdfLayoutBlocksToHtml(blocks));
2111
+ return { html, text: _chunkNFVBT3UZcjs.htmlToPlainText.call(void 0, html), structure: report };
700
2112
  }
701
2113
  };
702
2114
  }
@@ -730,8 +2142,8 @@ function createZipImportAdapter(options = {}) {
730
2142
  extensions: [".zip"],
731
2143
  target: "document",
732
2144
  async import(_input, context) {
733
- const registry = _nullishCoalesce(_nullishCoalesce(options.registry, () => ( context.registry)), () => ( _chunkSBCZ6RN5cjs.defaultImportRegistry));
734
- const zip = await _chunkSBCZ6RN5cjs.readZip.call(void 0, await context.readArrayBuffer(), {
2145
+ const registry = _nullishCoalesce(_nullishCoalesce(options.registry, () => ( context.registry)), () => ( _chunkYOMYSFJUcjs.defaultImportRegistry));
2146
+ const zip = await _chunk3CC7OPUQcjs.readZip.call(void 0, await context.readArrayBuffer(), {
735
2147
  maxTotalSize: 100 * 1024 * 1024,
736
2148
  maxEntries: 5e3,
737
2149
  ...options.zip
@@ -765,7 +2177,7 @@ function createZipImportAdapter(options = {}) {
765
2177
  });
766
2178
  const title = zipEntryTitle(name);
767
2179
  if (options.headings !== false) {
768
- html += `<h${level}>${_chunkXNORY7M6cjs.escapeHtml.call(void 0, title)}</h${level}>`;
2180
+ html += `<h${level}>${_chunkNFVBT3UZcjs.escapeHtml.call(void 0, title)}</h${level}>`;
769
2181
  text += `${text ? "\n" : ""}${title}
770
2182
  `;
771
2183
  } else if (text) {
@@ -775,13 +2187,13 @@ function createZipImportAdapter(options = {}) {
775
2187
  text += outcome.result.text;
776
2188
  files.push({ name, adapterId: adapter.id });
777
2189
  } catch (error) {
778
- const code = _optionalChain([error, 'optionalAccess', _45 => _45.code]);
2190
+ const code = _optionalChain([error, 'optionalAccess', _70 => _70.code]);
779
2191
  if (code === "too_large") throw error;
780
2192
  skipped.push({ name, reason: error instanceof Error ? error.message : String(error) });
781
2193
  }
782
2194
  }
783
2195
  if (!files.length) {
784
- throw new (0, _chunkSBCZ6RN5cjs.ImportError)("invalid_file", "The archive contains no importable documents.", {
2196
+ throw new (0, _chunkYOMYSFJUcjs.ImportError)("invalid_file", "The archive contains no importable documents.", {
785
2197
  fileName: context.fileName
786
2198
  });
787
2199
  }
@@ -1139,5 +2551,151 @@ var zipImportAdapter = createZipImportAdapter();
1139
2551
 
1140
2552
 
1141
2553
 
1142
- exports.Autocorrect = _chunkSBCZ6RN5cjs.Autocorrect; exports.BLOCK_CHANGE_ATTRIBUTE = _chunkD27YFC46cjs.BLOCK_CHANGE_ATTRIBUTE; exports.BUILT_IN_IMPORT_ADAPTERS = _chunkSBCZ6RN5cjs.BUILT_IN_IMPORT_ADAPTERS; exports.Bookmark = _chunkSBCZ6RN5cjs.Bookmark; exports.COMMENT_MARK_NAME = _chunkSBCZ6RN5cjs.COMMENT_MARK_NAME; exports.ColorHighlighter = _chunkSBCZ6RN5cjs.ColorHighlighter; exports.CommentStore = _chunkD27YFC46cjs.CommentStore; exports.Comments = _chunkSBCZ6RN5cjs.Comments; exports.CrossReference = _chunkSBCZ6RN5cjs.CrossReference; exports.DEFAULT_AUTOCORRECT_EXCEPTIONS = _chunkSBCZ6RN5cjs.DEFAULT_AUTOCORRECT_EXCEPTIONS; exports.DEFAULT_COLUMN_WIDTH = _chunkMA2F5KHFcjs.DEFAULT_COLUMN_WIDTH; exports.DEFAULT_DOCX_MAX_IMAGE_SIZE = _chunkSBCZ6RN5cjs.DEFAULT_DOCX_MAX_IMAGE_SIZE; exports.DEFAULT_ROW_HEIGHT = _chunkMA2F5KHFcjs.DEFAULT_ROW_HEIGHT; exports.DEFAULT_ZIP_MAX_ENTRIES = _chunkSBCZ6RN5cjs.DEFAULT_ZIP_MAX_ENTRIES; exports.DEFAULT_ZIP_MAX_TOTAL_SIZE = _chunkSBCZ6RN5cjs.DEFAULT_ZIP_MAX_TOTAL_SIZE; exports.DELETION_MARK_NAME = _chunkD27YFC46cjs.DELETION_MARK_NAME; exports.DOCX_MIME_TYPES = _chunkSBCZ6RN5cjs.DOCX_MIME_TYPES; exports.DataSourceBinder = _chunkMA2F5KHFcjs.DataSourceBinder; exports.DependencyGraph = _chunkMA2F5KHFcjs.DependencyGraph; exports.DirtyTracker = _chunkG2I4QJOTcjs.DirtyTracker; exports.DocumentCompare = _chunkSBCZ6RN5cjs.DocumentCompare; exports.EMPTY_FIND_REPLACE_SNAPSHOT = _chunkSBCZ6RN5cjs.EMPTY_FIND_REPLACE_SNAPSHOT; exports.EditorController = EditorController; exports.FIELD_ALIASES = _chunkP3RQ5UJEcjs.FIELD_ALIASES; exports.FIND_OPTION_TOGGLES = _chunkSBCZ6RN5cjs.FIND_OPTION_TOGGLES; exports.FIND_PARAGRAPH_MARK = _chunkSBCZ6RN5cjs.FIND_PARAGRAPH_MARK; exports.FORMAT_CHANGE_MARK_NAME = _chunkD27YFC46cjs.FORMAT_CHANGE_MARK_NAME; exports.FORMULA_ERRORS = _chunkMCSJFWAOcjs.FORMULA_ERRORS; exports.FileImport = _chunkSBCZ6RN5cjs.FileImport; exports.FileImportController = FileImportController; exports.FindReplace = _chunkSBCZ6RN5cjs.FindReplace; exports.FindReplaceStore = _chunkSBCZ6RN5cjs.FindReplaceStore; exports.FontSize = _chunkSBCZ6RN5cjs.FontSize; exports.Footnote = _chunkSBCZ6RN5cjs.Footnote; exports.FootnoteReference = _chunkSBCZ6RN5cjs.FootnoteReference; exports.Footnotes = _chunkSBCZ6RN5cjs.Footnotes; exports.FormulaEvaluator = _chunkMCSJFWAOcjs.FormulaEvaluator; exports.FormulaParser = _chunkMCSJFWAOcjs.FormulaParser; exports.GradientText = _chunkSBCZ6RN5cjs.GradientText; exports.HistoryManager = _chunkG2I4QJOTcjs.HistoryManager; exports.INSERTION_MARK_NAME = _chunkD27YFC46cjs.INSERTION_MARK_NAME; exports.INSTRUCTION_REGEX = _chunkMKA3AHLVcjs.INSTRUCTION_REGEX; exports.Image = _chunkSBCZ6RN5cjs.Image; exports.ImportAdapterRegistry = _chunkSBCZ6RN5cjs.ImportAdapterRegistry; exports.ImportError = _chunkSBCZ6RN5cjs.ImportError; exports.LoadingNode = _chunkSBCZ6RN5cjs.LoadingNode; exports.MARKDOWN_MENTION_SPLIT_REGEX = _chunkXNORY7M6cjs.MARKDOWN_MENTION_SPLIT_REGEX; exports.MAX_DATA_SOURCE_FIELDS = _chunkP3RQ5UJEcjs.MAX_DATA_SOURCE_FIELDS; exports.MAX_DATA_SOURCE_RECORDS = _chunkP3RQ5UJEcjs.MAX_DATA_SOURCE_RECORDS; exports.MAX_FIND_PATTERN_LENGTH = _chunkSBCZ6RN5cjs.MAX_FIND_PATTERN_LENGTH; exports.MAX_FORMULA_ARRAY_SIZE = _chunkMCSJFWAOcjs.MAX_FORMULA_ARRAY_SIZE; exports.MAX_MERGE_LENGTH = _chunkP3RQ5UJEcjs.MAX_MERGE_LENGTH; exports.MAX_MERGE_OUTPUTS = _chunkP3RQ5UJEcjs.MAX_MERGE_OUTPUTS; exports.MAX_NUMBER_FORMAT_CODE_CHARS = _chunkMCSJFWAOcjs.MAX_NUMBER_FORMAT_CODE_CHARS; exports.MENTION_REGEX = _chunkXNORY7M6cjs.MENTION_REGEX; exports.Markdown = _chunkSBCZ6RN5cjs.Markdown; exports.Mention = _chunkSBCZ6RN5cjs.Mention; exports.NUMBER_FORMAT_PRESETS = _chunkMA2F5KHFcjs.NUMBER_FORMAT_PRESETS; exports.NumberFormat = _chunkMCSJFWAOcjs.NumberFormat; exports.Outline = _chunkSBCZ6RN5cjs.Outline; exports.PIXERATE_DOCUMENT_MIME = _chunkSML64VJGcjs.PIXERATE_DOCUMENT_MIME; exports.RichClipboard = _chunkSBCZ6RN5cjs.RichClipboard; exports.SMILIE_REPLACEMENTS = _chunkSBCZ6RN5cjs.SMILIE_REPLACEMENTS; exports.SPREADSHEET_CLIPBOARD_MIME = _chunkMA2F5KHFcjs.SPREADSHEET_CLIPBOARD_MIME; exports.SPREADSHEET_IMPORT_ADAPTERS = _chunkMA2F5KHFcjs.SPREADSHEET_IMPORT_ADAPTERS; exports.SPREADSHEET_TABLE_ACTIONS = _chunkMA2F5KHFcjs.SPREADSHEET_TABLE_ACTIONS; exports.SlashCommands = _chunkSBCZ6RN5cjs.SlashCommands; exports.SmilieReplacer = _chunkSBCZ6RN5cjs.SmilieReplacer; exports.SpreadsheetController = _chunkMA2F5KHFcjs.SpreadsheetController; exports.TEMPLATE_DEPTH_ERROR = _chunkFD4LPFAEcjs.TEMPLATE_DEPTH_ERROR; exports.TEMPLATE_LOOP_ERROR = _chunkFD4LPFAEcjs.TEMPLATE_LOOP_ERROR; exports.TEMPLATE_REGEX = _chunkMKA3AHLVcjs.TEMPLATE_REGEX; exports.TRACK_CHANGES_SKIP_META = _chunkD27YFC46cjs.TRACK_CHANGES_SKIP_META; exports.TableOfContents = _chunkSBCZ6RN5cjs.TableOfContents; exports.TemplateSuggestions = _chunkSBCZ6RN5cjs.TemplateSuggestions; exports.TrackChanges = _chunkD27YFC46cjs.TrackChanges; exports.TrackChangesStore = _chunkD27YFC46cjs.TrackChangesStore; exports.TrackedDeletion = _chunkD27YFC46cjs.TrackedDeletion; exports.TrackedFormatChange = _chunkD27YFC46cjs.TrackedFormatChange; exports.TrackedInsertion = _chunkD27YFC46cjs.TrackedInsertion; exports.VARIABLE_REGEX = _chunkMKA3AHLVcjs.VARIABLE_REGEX; exports.WHOLE_COLUMN_END_ROW = _chunkMCSJFWAOcjs.WHOLE_COLUMN_END_ROW; exports.ZipArchive = _chunkSBCZ6RN5cjs.ZipArchive; exports.ZipError = _chunkSBCZ6RN5cjs.ZipError; exports.aggregateValues = _chunkMA2F5KHFcjs.aggregateValues; exports.applyDocumentComparison = _chunkSBCZ6RN5cjs.applyDocumentComparison; exports.applyFormulaSuggestion = _chunkMA2F5KHFcjs.applyFormulaSuggestion; exports.applyReplacements = _chunkSBCZ6RN5cjs.applyReplacements; exports.autocorrectPluginKey = _chunkSBCZ6RN5cjs.autocorrectPluginKey; exports.bindDirtyToHistory = _chunkG2I4QJOTcjs.bindDirtyToHistory; exports.bindSpreadsheetTableActions = _chunkMA2F5KHFcjs.bindSpreadsheetTableActions; exports.buildOutlineTree = _chunkSBCZ6RN5cjs.buildOutlineTree; exports.buildSpreadsheetView = _chunkMA2F5KHFcjs.buildSpreadsheetView; exports.builtinNumberFormat = _chunkMCSJFWAOcjs.builtinNumberFormat; exports.builtinNumberFormatId = _chunkMCSJFWAOcjs.builtinNumberFormatId; exports.capitalizeSentenceRules = _chunkSBCZ6RN5cjs.capitalizeSentenceRules; exports.cellFormatForNumberFormat = _chunkMA2F5KHFcjs.cellFormatForNumberFormat; exports.checkFormulaArgumentCount = _chunkMCSJFWAOcjs.checkFormulaArgumentCount; exports.clampMenuPosition = _chunkMA2F5KHFcjs.clampMenuPosition; exports.clearNumberFormatCache = _chunkMCSJFWAOcjs.clearNumberFormatCache; exports.colNameToIndex = _chunkMCSJFWAOcjs.colNameToIndex; exports.columnDependencyKey = _chunkMA2F5KHFcjs.columnDependencyKey; exports.commentsPluginKey = _chunkSBCZ6RN5cjs.commentsPluginKey; exports.compactVariableValues = _chunkP3RQ5UJEcjs.compactVariableValues; exports.compareCellValues = _chunkMA2F5KHFcjs.compareCellValues; exports.compareConditionValues = _chunkMKA3AHLVcjs.compareConditionValues; exports.compareDocuments = _chunkOLZJXL4Rcjs.compareDocuments; exports.compareHtml = _chunkOLZJXL4Rcjs.compareHtml; exports.compareInEditor = _chunkSBCZ6RN5cjs.compareInEditor; exports.compareNumbers = _chunkMCSJFWAOcjs.compareNumbers; exports.compareValues = _chunkMCSJFWAOcjs.compareValues; exports.compileFindPattern = _chunkSBCZ6RN5cjs.compileFindPattern; exports.computeFillTarget = _chunkMA2F5KHFcjs.computeFillTarget; exports.computeOutline = _chunkSBCZ6RN5cjs.computeOutline; exports.computeRowGroups = _chunkMA2F5KHFcjs.computeRowGroups; exports.conditionSubject = _chunkMKA3AHLVcjs.conditionSubject; exports.createCommentStore = _chunkD27YFC46cjs.createCommentStore; exports.createDirtyTracker = _chunkG2I4QJOTcjs.createDirtyTracker; exports.createDocxImportAdapter = _chunkSBCZ6RN5cjs.createDocxImportAdapter; exports.createEditor = createEditor; exports.createFileImportController = createFileImportController; exports.createFindReplaceCommands = _chunkSBCZ6RN5cjs.createFindReplaceCommands; exports.createHistoryManager = _chunkG2I4QJOTcjs.createHistoryManager; exports.createImportAdapterRegistry = _chunkSBCZ6RN5cjs.createImportAdapterRegistry; exports.createImportContext = _chunkSBCZ6RN5cjs.createImportContext; exports.createMentionExtension = _chunkSBCZ6RN5cjs.createMentionExtension; exports.createOutlineStore = _chunkSBCZ6RN5cjs.createOutlineStore; exports.createPdfImportAdapter = createPdfImportAdapter; exports.createReviewId = _chunkD27YFC46cjs.createReviewId; exports.createRichTextPreset = _chunkSBCZ6RN5cjs.createRichTextPreset; exports.createSearchBudget = _chunkSBCZ6RN5cjs.createSearchBudget; exports.createSpreadsheetClipboardData = _chunkMA2F5KHFcjs.createSpreadsheetClipboardData; exports.createZipImportAdapter = createZipImportAdapter; exports.crossReferencePluginKey = _chunkSBCZ6RN5cjs.crossReferencePluginKey; exports.csvImportAdapter = _chunkMA2F5KHFcjs.csvImportAdapter; exports.dateValueToSerial = _chunkMCSJFWAOcjs.dateValueToSerial; exports.defaultAutocorrectRules = _chunkSBCZ6RN5cjs.defaultAutocorrectRules; exports.defaultImportRegistry = _chunkSBCZ6RN5cjs.defaultImportRegistry; exports.defaultIsEqual = _chunkG2I4QJOTcjs.defaultIsEqual; exports.describeBlockChange = _chunkD27YFC46cjs.describeBlockChange; exports.describeConditionalTag = _chunkMKA3AHLVcjs.describeConditionalTag; exports.describeFormatChange = _chunkD27YFC46cjs.describeFormatChange; exports.describeFormulaError = _chunkMCSJFWAOcjs.describeFormulaError; exports.detectDelimiter = _chunkP3RQ5UJEcjs.detectDelimiter; exports.diffChanges = _chunkOLZJXL4Rcjs.diffChanges; exports.diffSequences = _chunkOLZJXL4Rcjs.diffSequences; exports.documentStructureCommandItems = _chunkSBCZ6RN5cjs.documentStructureCommandItems; exports.docxImportAdapter = _chunkSBCZ6RN5cjs.docxImportAdapter; exports.docxToDocumentImport = _chunkSBCZ6RN5cjs.docxToDocumentImport; exports.escapeCsvField = _chunkTNNJXF46cjs.escapeCsvField; exports.escapeHtml = _chunkXNORY7M6cjs.escapeHtml; exports.escapeVariableText = _chunkMKA3AHLVcjs.escapeVariableText; exports.evaluateCondition = _chunkMKA3AHLVcjs.evaluateCondition; exports.evaluateConditionExpression = _chunkMKA3AHLVcjs.evaluateConditionExpression; exports.evaluatePromptTokens = _chunkFD4LPFAEcjs.evaluatePromptTokens; exports.expandReplacement = _chunkSBCZ6RN5cjs.expandReplacement; exports.extractCellDependencies = _chunkMA2F5KHFcjs.extractCellDependencies; exports.extractInstructionNames = _chunkP3RQ5UJEcjs.extractInstructionNames; exports.extractMentions = _chunkXNORY7M6cjs.extractMentions; exports.extractMentionsFromDoc = _chunkXNORY7M6cjs.extractMentionsFromDoc; exports.extractTemplateNames = _chunkP3RQ5UJEcjs.extractTemplateNames; exports.extractVariableNames = _chunkP3RQ5UJEcjs.extractVariableNames; exports.extractVariables = _chunkP3RQ5UJEcjs.extractVariables; exports.fileImportPluginKey = _chunkSBCZ6RN5cjs.fileImportPluginKey; exports.fillSeries = _chunkMA2F5KHFcjs.fillSeries; exports.findAllMatches = _chunkSBCZ6RN5cjs.findAllMatches; exports.findAutocorrection = _chunkSBCZ6RN5cjs.findAutocorrection; exports.findCommentRanges = _chunkSBCZ6RN5cjs.findCommentRanges; exports.findHexColors = _chunkSBCZ6RN5cjs.findHexColors; exports.findImportAdapter = _chunkSBCZ6RN5cjs.findImportAdapter; exports.findReplacePluginKey = _chunkSBCZ6RN5cjs.findReplacePluginKey; exports.foldCodePoint = _chunkSBCZ6RN5cjs.foldCodePoint; exports.footnotesMarkdownIt = _chunkSBCZ6RN5cjs.footnotesMarkdownIt; exports.footnotesPluginKey = _chunkSBCZ6RN5cjs.footnotesPluginKey; exports.formatCellDisplay = _chunkMA2F5KHFcjs.formatCellDisplay; exports.formatCellForDisplay = _chunkMA2F5KHFcjs.formatCellForDisplay; exports.formatComparisonOperand = _chunkMKA3AHLVcjs.formatComparisonOperand; exports.formatConditionalTag = _chunkMKA3AHLVcjs.formatConditionalTag; exports.formatFindStatus = _chunkSBCZ6RN5cjs.formatFindStatus; exports.formatGeneralFit = _chunkMCSJFWAOcjs.formatGeneralFit; exports.formatNumberFormatValue = _chunkMCSJFWAOcjs.formatNumberFormatValue; exports.formatReviewTime = _chunkD27YFC46cjs.formatReviewTime; exports.formatTextFunction = _chunkMCSJFWAOcjs.formatTextFunction; exports.formatValueWithCode = _chunkMA2F5KHFcjs.formatValueWithCode; exports.fractionRules = _chunkSBCZ6RN5cjs.fractionRules; exports.getActiveHeading = _chunkSBCZ6RN5cjs.getActiveHeading; exports.getBookmarks = _chunkSBCZ6RN5cjs.getBookmarks; exports.getClipboardData = _chunkSML64VJGcjs.getClipboardData; exports.getCommentAnchors = _chunkSBCZ6RN5cjs.getCommentAnchors; exports.getCommentAuthor = _chunkSBCZ6RN5cjs.getCommentAuthor; exports.getCommentIdsAt = _chunkSBCZ6RN5cjs.getCommentIdsAt; exports.getCommentStore = _chunkSBCZ6RN5cjs.getCommentStore; exports.getCrossReferenceTargets = _chunkSBCZ6RN5cjs.getCrossReferenceTargets; exports.getDocumentStructureCommandItems = _chunkSBCZ6RN5cjs.getDocumentStructureCommandItems; exports.getEditorMarkdown = _chunkXNORY7M6cjs.getEditorMarkdown; exports.getEditorText = _chunkXNORY7M6cjs.getEditorText; exports.getFillDirection = _chunkMA2F5KHFcjs.getFillDirection; exports.getFindReplaceState = _chunkSBCZ6RN5cjs.getFindReplaceState; exports.getFindReplaceStore = _chunkSBCZ6RN5cjs.getFindReplaceStore; exports.getFootnotes = _chunkSBCZ6RN5cjs.getFootnotes; exports.getFormulaArgumentSpecIndex = _chunkMCSJFWAOcjs.getFormulaArgumentSpecIndex; exports.getFormulaCaretContext = _chunkMA2F5KHFcjs.getFormulaCaretContext; exports.getFormulaFunction = _chunkMCSJFWAOcjs.getFormulaFunction; exports.getFormulaHints = _chunkMA2F5KHFcjs.getFormulaHints; exports.getFormulaSignature = _chunkMCSJFWAOcjs.getFormulaSignature; exports.getFormulaSignatureParts = _chunkMCSJFWAOcjs.getFormulaSignatureParts; exports.getImportAccept = _chunkSBCZ6RN5cjs.getImportAccept; exports.getLatestVersion = _chunkFD4LPFAEcjs.getLatestVersion; exports.getOutline = _chunkSBCZ6RN5cjs.getOutline; exports.getPromptDiagnostics = _chunkFD4LPFAEcjs.getPromptDiagnostics; exports.getRowSection = _chunkMA2F5KHFcjs.getRowSection; exports.getSchemaSignature = _chunkSML64VJGcjs.getSchemaSignature; exports.getSpreadsheetMenuItems = _chunkMA2F5KHFcjs.getSpreadsheetMenuItems; exports.getSuppliedValue = _chunkMKA3AHLVcjs.getSuppliedValue; exports.getTableOfContentsEntries = _chunkSBCZ6RN5cjs.getTableOfContentsEntries; exports.getTableSections = _chunkMA2F5KHFcjs.getTableSections; exports.getTemplateBody = _chunkFD4LPFAEcjs.getTemplateBody; exports.getTrackChangesStore = _chunkD27YFC46cjs.getTrackChangesStore; exports.getTrackedChangeAt = _chunkD27YFC46cjs.getTrackedChangeAt; exports.getTrackedChanges = _chunkD27YFC46cjs.getTrackedChanges; exports.getVariableFormFields = _chunkP3RQ5UJEcjs.getVariableFormFields; exports.handleImageInsertion = _chunkSBCZ6RN5cjs.handleImageInsertion; exports.htmlImportAdapter = _chunkSBCZ6RN5cjs.htmlImportAdapter; exports.htmlToPlainText = _chunkXNORY7M6cjs.htmlToPlainText; exports.htmlToSlice = _chunkSBCZ6RN5cjs.htmlToSlice; exports.imagePastePluginKey = _chunkSBCZ6RN5cjs.imagePastePluginKey; exports.importFile = _chunkSBCZ6RN5cjs.importFile; exports.importFileIntoSpreadsheet = _chunkMA2F5KHFcjs.importFileIntoSpreadsheet; exports.importFilesIntoEditor = _chunkSBCZ6RN5cjs.importFilesIntoEditor; exports.indexToColName = _chunkMCSJFWAOcjs.indexToColName; exports.insertImageNode = _chunkSBCZ6RN5cjs.insertImageNode; exports.insertImportedDocument = _chunkSBCZ6RN5cjs.insertImportedDocument; exports.instructionRegex = _chunkMKA3AHLVcjs.instructionRegex; exports.isBlankValue = _chunkMA2F5KHFcjs.isBlankValue; exports.isFormulaError = _chunkMCSJFWAOcjs.isFormulaError; exports.isGeneralNumberFormat = _chunkMA2F5KHFcjs.isGeneralNumberFormat; exports.isInsidePromptToken = _chunkSBCZ6RN5cjs.isInsidePromptToken; exports.isPromptValueSet = _chunkMKA3AHLVcjs.isPromptValueSet; exports.isSingleCellRange = _chunkMA2F5KHFcjs.isSingleCellRange; exports.isTrackChangesEnabled = _chunkD27YFC46cjs.isTrackChangesEnabled; exports.isUnsafeZipPath = _chunkSBCZ6RN5cjs.isUnsafeZipPath; exports.listFormulaFunctions = _chunkMCSJFWAOcjs.listFormulaFunctions; exports.mapFormulaReferences = _chunkMA2F5KHFcjs.mapFormulaReferences; exports.mapRawOffsetToResolved = _chunkP3RQ5UJEcjs.mapRawOffsetToResolved; exports.mapResolvedOffsetToRaw = _chunkP3RQ5UJEcjs.mapResolvedOffsetToRaw; exports.markdownImportAdapter = _chunkSBCZ6RN5cjs.markdownImportAdapter; exports.markdownToTipTapHtml = _chunkXNORY7M6cjs.markdownToTipTapHtml; exports.matchConditionalTags = _chunkMKA3AHLVcjs.matchConditionalTags; exports.matchFields = _chunkP3RQ5UJEcjs.matchFields; exports.matchesFilterRule = _chunkMA2F5KHFcjs.matchesFilterRule; exports.mergeRecords = _chunkP3RQ5UJEcjs.mergeRecords; exports.navigateToHeading = _chunkSBCZ6RN5cjs.navigateToHeading; exports.normalizeFieldKey = _chunkP3RQ5UJEcjs.normalizeFieldKey; exports.normalizeFieldNames = _chunkP3RQ5UJEcjs.normalizeFieldNames; exports.normalizeRange = _chunkMA2F5KHFcjs.normalizeRange; exports.numberFormatColorToCss = _chunkMCSJFWAOcjs.numberFormatColorToCss; exports.numberFormatForCellFormat = _chunkMA2F5KHFcjs.numberFormatForCellFormat; exports.numberToText = _chunkMCSJFWAOcjs.numberToText; exports.offsetFormulaReferences = _chunkMA2F5KHFcjs.offsetFormulaReferences; exports.outlinePluginKey = _chunkSBCZ6RN5cjs.outlinePluginKey; exports.parseCellInput = _chunkMCSJFWAOcjs.parseCellInput; exports.parseCellReference = _chunkMCSJFWAOcjs.parseCellReference; exports.parseComparison = _chunkMKA3AHLVcjs.parseComparison; exports.parseConditionExpression = _chunkMKA3AHLVcjs.parseConditionExpression; exports.parseCriteria = _chunkMCSJFWAOcjs.parseCriteria; exports.parseCsv = _chunkTNNJXF46cjs.parseCsv; exports.parseDataSource = _chunkP3RQ5UJEcjs.parseDataSource; exports.parseFormula = _chunkMCSJFWAOcjs.parseFormula; exports.parseHtmlTable = _chunkMA2F5KHFcjs.parseHtmlTable; exports.parseMentionSegments = _chunkXNORY7M6cjs.parseMentionSegments; exports.parseNumberText = _chunkMCSJFWAOcjs.parseNumberText; exports.parseRange = _chunkMCSJFWAOcjs.parseRange; exports.parseReplacement = _chunkSBCZ6RN5cjs.parseReplacement; exports.parseRichClipboardPayload = _chunkSML64VJGcjs.parseRichClipboardPayload; exports.parseTsv = _chunkTNNJXF46cjs.parseTsv; exports.parseVariableBody = _chunkMKA3AHLVcjs.parseVariableBody; exports.pdfTextItemsToParagraphs = pdfTextItemsToParagraphs; exports.pickImportFiles = pickImportFiles; exports.plainTextImportAdapter = _chunkSBCZ6RN5cjs.plainTextImportAdapter; exports.plainTextToParagraphHtml = _chunkSML64VJGcjs.plainTextToParagraphHtml; exports.plainTextToSlice = _chunkXNORY7M6cjs.plainTextToSlice; exports.plainTextToTipTapHtml = _chunkXNORY7M6cjs.plainTextToTipTapHtml; exports.preprocessMarkdownFileLinks = _chunkXNORY7M6cjs.preprocessMarkdownFileLinks; exports.preprocessMarkdownMentions = _chunkXNORY7M6cjs.preprocessMarkdownMentions; exports.rangeContains = _chunkMA2F5KHFcjs.rangeContains; exports.rangeContainsRange = _chunkMA2F5KHFcjs.rangeContainsRange; exports.rangesIntersect = _chunkMA2F5KHFcjs.rangesIntersect; exports.readRichClipboard = _chunkSML64VJGcjs.readRichClipboard; exports.readSpreadsheetClipboard = _chunkMA2F5KHFcjs.readSpreadsheetClipboard; exports.readZip = _chunkSBCZ6RN5cjs.readZip; exports.rebaseClipboardRows = _chunkMA2F5KHFcjs.rebaseClipboardRows; exports.recordToValues = _chunkP3RQ5UJEcjs.recordToValues; exports.registerFormulaFunction = _chunkMCSJFWAOcjs.registerFormulaFunction; exports.registerImportAdapter = _chunkSBCZ6RN5cjs.registerImportAdapter; exports.registerSpreadsheetImportAdapters = _chunkMA2F5KHFcjs.registerSpreadsheetImportAdapters; exports.remapFormulaReferences = _chunkMA2F5KHFcjs.remapFormulaReferences; exports.removeImageNode = _chunkSBCZ6RN5cjs.removeImageNode; exports.resolvePrompt = _chunkFD4LPFAEcjs.resolvePrompt; exports.resolveTemplates = _chunkP3RQ5UJEcjs.resolveTemplates; exports.resolveTemplatesWithMapping = _chunkP3RQ5UJEcjs.resolveTemplatesWithMapping; exports.resolveTrackedChanges = _chunkD27YFC46cjs.resolveTrackedChanges; exports.resolveVariables = _chunkP3RQ5UJEcjs.resolveVariables; exports.richClipboardPluginKey = _chunkSBCZ6RN5cjs.richClipboardPluginKey; exports.roundFloat = _chunkMA2F5KHFcjs.roundFloat; exports.rowPassesFilters = _chunkMA2F5KHFcjs.rowPassesFilters; exports.rtfImportAdapter = _chunkSBCZ6RN5cjs.rtfImportAdapter; exports.rtfToPlainText = _chunkSML64VJGcjs.rtfToPlainText; exports.runSpreadsheetMenuItem = _chunkMA2F5KHFcjs.runSpreadsheetMenuItem; exports.sanitizeHtml = _chunkXNORY7M6cjs.sanitizeHtml; exports.sanitizeImportedHtml = _chunkSML64VJGcjs.sanitizeImportedHtml; exports.searchDocument = _chunkSBCZ6RN5cjs.searchDocument; exports.searchFormulaFunctions = _chunkMCSJFWAOcjs.searchFormulaFunctions; exports.serialFromYmd = _chunkMCSJFWAOcjs.serialFromYmd; exports.serializeCsv = _chunkTNNJXF46cjs.serializeCsv; exports.serializeHtmlTable = _chunkMA2F5KHFcjs.serializeHtmlTable; exports.serializeMergeOutputs = _chunkP3RQ5UJEcjs.serializeMergeOutputs; exports.serializeRichClipboardPayload = _chunkSML64VJGcjs.serializeRichClipboardPayload; exports.serializeTsv = _chunkTNNJXF46cjs.serializeTsv; exports.shiftFormulaReferences = _chunkMA2F5KHFcjs.shiftFormulaReferences; exports.smartQuoteRules = _chunkSBCZ6RN5cjs.smartQuoteRules; exports.smilieAutocorrectRules = _chunkSBCZ6RN5cjs.smilieAutocorrectRules; exports.sortCompareValues = _chunkMCSJFWAOcjs.sortCompareValues; exports.sortZipEntryNames = sortZipEntryNames; exports.stripMarkdownCode = _chunkXNORY7M6cjs.stripMarkdownCode; exports.symbolRules = _chunkSBCZ6RN5cjs.symbolRules; exports.syncFootnotes = _chunkSBCZ6RN5cjs.syncFootnotes; exports.tableOfContentsMarkdownIt = _chunkSBCZ6RN5cjs.tableOfContentsMarkdownIt; exports.tableOfContentsPluginKey = _chunkSBCZ6RN5cjs.tableOfContentsPluginKey; exports.templateRegex = _chunkMKA3AHLVcjs.templateRegex; exports.toNumber = _chunkMA2F5KHFcjs.toNumber; exports.tokenizeFormula = _chunkMCSJFWAOcjs.tokenizeFormula; exports.tokenizePrompt = _chunkFD4LPFAEcjs.tokenizePrompt; exports.tokenizePromptWithDiagnostics = _chunkFD4LPFAEcjs.tokenizePromptWithDiagnostics; exports.trackChangesPluginKey = _chunkD27YFC46cjs.trackChangesPluginKey; exports.tsvImportAdapter = _chunkMA2F5KHFcjs.tsvImportAdapter; exports.twoInitialCapitalsRules = _chunkSBCZ6RN5cjs.twoInitialCapitalsRules; exports.unescapeVariableText = _chunkMKA3AHLVcjs.unescapeVariableText; exports.unregisterFormulaFunction = _chunkMCSJFWAOcjs.unregisterFormulaFunction; exports.unregisterImportAdapter = _chunkSBCZ6RN5cjs.unregisterImportAdapter; exports.updateImageSrc = _chunkSBCZ6RN5cjs.updateImageSrc; exports.validateFindPattern = _chunkSBCZ6RN5cjs.validateFindPattern; exports.variableRegex = _chunkMKA3AHLVcjs.variableRegex; exports.wildcardToRegExp = _chunkMCSJFWAOcjs.wildcardToRegExp; exports.withoutDirty = _chunkG2I4QJOTcjs.withoutDirty; exports.writeRichClipboard = _chunkSBCZ6RN5cjs.writeRichClipboard; exports.zipCrc32 = _chunkSBCZ6RN5cjs.zipCrc32; exports.zipEntryTitle = zipEntryTitle; exports.zipImportAdapter = zipImportAdapter;
2554
+
2555
+
2556
+
2557
+
2558
+
2559
+
2560
+
2561
+
2562
+
2563
+
2564
+
2565
+
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+
2572
+
2573
+
2574
+
2575
+
2576
+
2577
+
2578
+
2579
+
2580
+
2581
+
2582
+
2583
+
2584
+
2585
+
2586
+
2587
+
2588
+
2589
+
2590
+
2591
+
2592
+
2593
+
2594
+
2595
+
2596
+
2597
+
2598
+
2599
+
2600
+
2601
+
2602
+
2603
+
2604
+
2605
+
2606
+
2607
+
2608
+
2609
+
2610
+
2611
+
2612
+
2613
+
2614
+
2615
+
2616
+
2617
+
2618
+
2619
+
2620
+
2621
+
2622
+
2623
+
2624
+
2625
+
2626
+
2627
+
2628
+
2629
+
2630
+
2631
+
2632
+
2633
+
2634
+
2635
+
2636
+
2637
+
2638
+
2639
+
2640
+
2641
+
2642
+
2643
+
2644
+
2645
+
2646
+
2647
+
2648
+
2649
+
2650
+
2651
+
2652
+
2653
+
2654
+
2655
+
2656
+
2657
+
2658
+
2659
+
2660
+
2661
+
2662
+
2663
+
2664
+
2665
+
2666
+
2667
+
2668
+
2669
+
2670
+
2671
+
2672
+
2673
+
2674
+
2675
+
2676
+
2677
+
2678
+
2679
+
2680
+
2681
+
2682
+
2683
+
2684
+
2685
+
2686
+
2687
+
2688
+
2689
+
2690
+
2691
+
2692
+
2693
+
2694
+
2695
+
2696
+
2697
+
2698
+
2699
+
2700
+ exports.Autocorrect = _chunkYOMYSFJUcjs.Autocorrect; exports.BLOCK_CHANGE_ATTRIBUTE = _chunkIFHKKVXHcjs.BLOCK_CHANGE_ATTRIBUTE; exports.BUILT_IN_IMPORT_ADAPTERS = _chunkYOMYSFJUcjs.BUILT_IN_IMPORT_ADAPTERS; exports.Bookmark = _chunkYOMYSFJUcjs.Bookmark; exports.CHARACTER_STYLE_MARK_NAME = _chunkYOMYSFJUcjs.CHARACTER_STYLE_MARK_NAME; exports.COMMENT_MARK_NAME = _chunkYOMYSFJUcjs.COMMENT_MARK_NAME; exports.CONDITIONAL_FORMAT_ICON_SETS = _chunkNQF32I6Zcjs.CONDITIONAL_FORMAT_ICON_SETS; exports.CONDITIONAL_FORMAT_PRESETS = _chunkNQF32I6Zcjs.CONDITIONAL_FORMAT_PRESETS; exports.CONDITIONAL_FORMAT_STYLE_PRESETS = _chunkNQF32I6Zcjs.CONDITIONAL_FORMAT_STYLE_PRESETS; exports.CONDITIONAL_FORMAT_TIME_PERIODS = _chunkNQF32I6Zcjs.CONDITIONAL_FORMAT_TIME_PERIODS; exports.CharacterStyle = _chunkYOMYSFJUcjs.CharacterStyle; exports.ColorHighlighter = _chunkYOMYSFJUcjs.ColorHighlighter; exports.CommentStore = _chunkIFHKKVXHcjs.CommentStore; exports.Comments = _chunkYOMYSFJUcjs.Comments; exports.ConditionalFormatEngine = _chunkNQF32I6Zcjs.ConditionalFormatEngine; exports.CrossReference = _chunkYOMYSFJUcjs.CrossReference; exports.DATA_VALIDATION_ERROR_STYLE_OPTIONS = _chunkNQF32I6Zcjs.DATA_VALIDATION_ERROR_STYLE_OPTIONS; exports.DATA_VALIDATION_OPERATOR_OPTIONS = _chunkNQF32I6Zcjs.DATA_VALIDATION_OPERATOR_OPTIONS; exports.DATA_VALIDATION_TYPE_OPTIONS = _chunkNQF32I6Zcjs.DATA_VALIDATION_TYPE_OPTIONS; exports.DEFAULT_AUTOCORRECT_EXCEPTIONS = _chunkYOMYSFJUcjs.DEFAULT_AUTOCORRECT_EXCEPTIONS; exports.DEFAULT_COLUMN_WIDTH = _chunkNQF32I6Zcjs.DEFAULT_COLUMN_WIDTH; exports.DEFAULT_CONDITIONAL_FORMAT_STYLE = _chunkNQF32I6Zcjs.DEFAULT_CONDITIONAL_FORMAT_STYLE; exports.DEFAULT_DATA_VALIDATION_MESSAGE = _chunkNQF32I6Zcjs.DEFAULT_DATA_VALIDATION_MESSAGE; exports.DEFAULT_DATA_VALIDATION_TITLE = _chunkNQF32I6Zcjs.DEFAULT_DATA_VALIDATION_TITLE; exports.DEFAULT_DOCX_MAX_IMAGE_SIZE = _chunkYOMYSFJUcjs.DEFAULT_DOCX_MAX_IMAGE_SIZE; exports.DEFAULT_ROW_HEIGHT = _chunkNQF32I6Zcjs.DEFAULT_ROW_HEIGHT; exports.DEFAULT_STYLES = _chunk3CC7OPUQcjs.DEFAULT_STYLES; exports.DEFAULT_TABLE_OPTIONS = _chunkHDYMLS3Xcjs.DEFAULT_TABLE_OPTIONS; exports.DEFAULT_TABLE_TOOLBAR = _chunkHDYMLS3Xcjs.DEFAULT_TABLE_TOOLBAR; exports.DEFAULT_ZIP_MAX_ENTRIES = _chunk3CC7OPUQcjs.DEFAULT_ZIP_MAX_ENTRIES; exports.DEFAULT_ZIP_MAX_TOTAL_SIZE = _chunk3CC7OPUQcjs.DEFAULT_ZIP_MAX_TOTAL_SIZE; exports.DELETION_MARK_NAME = _chunkIFHKKVXHcjs.DELETION_MARK_NAME; exports.DOCX_ANONYMOUS_AUTHOR = _chunkTXXNBDQXcjs.DOCX_ANONYMOUS_AUTHOR; exports.DOCX_EXPORT_MIME_TYPE = _chunkTXXNBDQXcjs.DOCX_EXPORT_MIME_TYPE; exports.DOCX_MIME_TYPES = _chunkYOMYSFJUcjs.DOCX_MIME_TYPES; exports.DataSourceBinder = _chunkNQF32I6Zcjs.DataSourceBinder; exports.DependencyGraph = _chunkNQF32I6Zcjs.DependencyGraph; exports.DirtyTracker = _chunkG2I4QJOTcjs.DirtyTracker; exports.DocumentCompare = _chunkYOMYSFJUcjs.DocumentCompare; exports.DocxExportController = _chunkTXXNBDQXcjs.DocxExportController; exports.EMPTY_CONDITIONAL_FORMAT_OVERLAY = _chunkNQF32I6Zcjs.EMPTY_CONDITIONAL_FORMAT_OVERLAY; exports.EMPTY_FIND_REPLACE_SNAPSHOT = _chunkYOMYSFJUcjs.EMPTY_FIND_REPLACE_SNAPSHOT; exports.EMPTY_TABLE_STATE = _chunkHDYMLS3Xcjs.EMPTY_TABLE_STATE; exports.EditorController = EditorController; exports.FIELD_ALIASES = _chunkP3RQ5UJEcjs.FIELD_ALIASES; exports.FIND_OPTION_TOGGLES = _chunkYOMYSFJUcjs.FIND_OPTION_TOGGLES; exports.FIND_PARAGRAPH_MARK = _chunkYOMYSFJUcjs.FIND_PARAGRAPH_MARK; exports.FORMAT_CHANGE_MARK_NAME = _chunkIFHKKVXHcjs.FORMAT_CHANGE_MARK_NAME; exports.FORMULA_ERRORS = _chunkEWCOFSCQcjs.FORMULA_ERRORS; exports.FileImport = _chunkYOMYSFJUcjs.FileImport; exports.FileImportController = FileImportController; exports.FindReplace = _chunkYOMYSFJUcjs.FindReplace; exports.FindReplaceStore = _chunkYOMYSFJUcjs.FindReplaceStore; exports.FontSize = _chunkYOMYSFJUcjs.FontSize; exports.Footnote = _chunkYOMYSFJUcjs.Footnote; exports.FootnoteReference = _chunkYOMYSFJUcjs.FootnoteReference; exports.Footnotes = _chunkYOMYSFJUcjs.Footnotes; exports.FormulaEvaluator = _chunkEWCOFSCQcjs.FormulaEvaluator; exports.FormulaLambda = _chunkEWCOFSCQcjs.FormulaLambda; exports.FormulaParser = _chunkEWCOFSCQcjs.FormulaParser; exports.GradientText = _chunkYOMYSFJUcjs.GradientText; exports.HistoryManager = _chunkG2I4QJOTcjs.HistoryManager; exports.INSERTION_MARK_NAME = _chunkIFHKKVXHcjs.INSERTION_MARK_NAME; exports.INSTRUCTION_REGEX = _chunkMKA3AHLVcjs.INSTRUCTION_REGEX; exports.Image = _chunkYOMYSFJUcjs.Image; exports.ImportAdapterRegistry = _chunkYOMYSFJUcjs.ImportAdapterRegistry; exports.ImportError = _chunkYOMYSFJUcjs.ImportError; exports.IntervalIndex = _chunkNQF32I6Zcjs.IntervalIndex; exports.LoadingNode = _chunkYOMYSFJUcjs.LoadingNode; exports.MARKDOWN_MENTION_SPLIT_REGEX = _chunkNFVBT3UZcjs.MARKDOWN_MENTION_SPLIT_REGEX; exports.MAX_DATA_SOURCE_FIELDS = _chunkP3RQ5UJEcjs.MAX_DATA_SOURCE_FIELDS; exports.MAX_DATA_SOURCE_RECORDS = _chunkP3RQ5UJEcjs.MAX_DATA_SOURCE_RECORDS; exports.MAX_DEFINED_NAME_LENGTH = _chunkNQF32I6Zcjs.MAX_DEFINED_NAME_LENGTH; exports.MAX_FIND_PATTERN_LENGTH = _chunkYOMYSFJUcjs.MAX_FIND_PATTERN_LENGTH; exports.MAX_FORMULA_ARRAY_SIZE = _chunkEWCOFSCQcjs.MAX_FORMULA_ARRAY_SIZE; exports.MAX_LAMBDA_DEPTH = _chunkEWCOFSCQcjs.MAX_LAMBDA_DEPTH; exports.MAX_MERGE_LENGTH = _chunkP3RQ5UJEcjs.MAX_MERGE_LENGTH; exports.MAX_MERGE_OUTPUTS = _chunkP3RQ5UJEcjs.MAX_MERGE_OUTPUTS; exports.MAX_NUMBER_FORMAT_CODE_CHARS = _chunkEWCOFSCQcjs.MAX_NUMBER_FORMAT_CODE_CHARS; exports.MAX_SHEET_NAME_LENGTH = _chunkNQF32I6Zcjs.MAX_SHEET_NAME_LENGTH; exports.MAX_TABLE_COLUMNS = _chunkHDYMLS3Xcjs.MAX_TABLE_COLUMNS; exports.MAX_TABLE_ROWS = _chunkHDYMLS3Xcjs.MAX_TABLE_ROWS; exports.MENTION_REGEX = _chunkBVP3TSLHcjs.MENTION_REGEX; exports.MOVE_FROM_CLASS = _chunkIFHKKVXHcjs.MOVE_FROM_CLASS; exports.MOVE_ID_ATTRIBUTE = _chunkIFHKKVXHcjs.MOVE_ID_ATTRIBUTE; exports.MOVE_TO_CLASS = _chunkIFHKKVXHcjs.MOVE_TO_CLASS; exports.Markdown = _chunkYOMYSFJUcjs.Markdown; exports.Mention = _chunkYOMYSFJUcjs.Mention; exports.NORMAL_STYLE_ID = _chunk3CC7OPUQcjs.NORMAL_STYLE_ID; exports.NUMBER_FORMAT_PRESETS = _chunkNQF32I6Zcjs.NUMBER_FORMAT_PRESETS; exports.NumberFormat = _chunkEWCOFSCQcjs.NumberFormat; exports.Outline = _chunkYOMYSFJUcjs.Outline; exports.PIXERATE_DOCUMENT_MIME = _chunkRRREAOVMcjs.PIXERATE_DOCUMENT_MIME; exports.ParagraphStyles = _chunkYOMYSFJUcjs.ParagraphStyles; exports.RichClipboard = _chunkYOMYSFJUcjs.RichClipboard; exports.SMILIE_REPLACEMENTS = _chunkYOMYSFJUcjs.SMILIE_REPLACEMENTS; exports.SPREADSHEET_CLIPBOARD_MIME = _chunkNQF32I6Zcjs.SPREADSHEET_CLIPBOARD_MIME; exports.SPREADSHEET_COLUMN_HEADER_HEIGHT = _chunkNQF32I6Zcjs.SPREADSHEET_COLUMN_HEADER_HEIGHT; exports.SPREADSHEET_DEFAULT_VIEWPORT = _chunkNQF32I6Zcjs.SPREADSHEET_DEFAULT_VIEWPORT; exports.SPREADSHEET_GROUP_ROW_HEIGHT = _chunkNQF32I6Zcjs.SPREADSHEET_GROUP_ROW_HEIGHT; exports.SPREADSHEET_IMPORT_ADAPTERS = _chunkNQF32I6Zcjs.SPREADSHEET_IMPORT_ADAPTERS; exports.SPREADSHEET_ROW_HEADER_WIDTH = _chunkNQF32I6Zcjs.SPREADSHEET_ROW_HEADER_WIDTH; exports.SPREADSHEET_TABLE_ACTIONS = _chunkNQF32I6Zcjs.SPREADSHEET_TABLE_ACTIONS; exports.SPREADSHEET_VIRTUAL_COLUMN_THRESHOLD = _chunkNQF32I6Zcjs.SPREADSHEET_VIRTUAL_COLUMN_THRESHOLD; exports.SPREADSHEET_VIRTUAL_ROW_THRESHOLD = _chunkNQF32I6Zcjs.SPREADSHEET_VIRTUAL_ROW_THRESHOLD; exports.STYLE_ID_ATTRIBUTE = _chunkYOMYSFJUcjs.STYLE_ID_ATTRIBUTE; exports.SlashCommands = _chunkYOMYSFJUcjs.SlashCommands; exports.SmilieReplacer = _chunkYOMYSFJUcjs.SmilieReplacer; exports.SpreadsheetController = _chunkNQF32I6Zcjs.SpreadsheetController; exports.StyleRegistry = _chunk3CC7OPUQcjs.StyleRegistry; exports.TABLE_ACTIONS = _chunkHDYMLS3Xcjs.TABLE_ACTIONS; exports.TEMPLATE_DEPTH_ERROR = _chunkFD4LPFAEcjs.TEMPLATE_DEPTH_ERROR; exports.TEMPLATE_LOOP_ERROR = _chunkFD4LPFAEcjs.TEMPLATE_LOOP_ERROR; exports.TEMPLATE_REGEX = _chunkMKA3AHLVcjs.TEMPLATE_REGEX; exports.TRACK_CHANGES_SKIP_META = _chunkIFHKKVXHcjs.TRACK_CHANGES_SKIP_META; exports.Table = _chunkHDYMLS3Xcjs.Table; exports.TableCell = _chunkHDYMLS3Xcjs.TableCell; exports.TableHeader = _chunkHDYMLS3Xcjs.TableHeader; exports.TableOfContents = _chunkYOMYSFJUcjs.TableOfContents; exports.TableRow = _chunkHDYMLS3Xcjs.TableRow; exports.TemplateSuggestions = _chunkYOMYSFJUcjs.TemplateSuggestions; exports.TrackChanges = _chunkIFHKKVXHcjs.TrackChanges; exports.TrackChangesStore = _chunkIFHKKVXHcjs.TrackChangesStore; exports.TrackedDeletion = _chunkIFHKKVXHcjs.TrackedDeletion; exports.TrackedFormatChange = _chunkIFHKKVXHcjs.TrackedFormatChange; exports.TrackedInsertion = _chunkIFHKKVXHcjs.TrackedInsertion; exports.VARIABLE_REGEX = _chunkMKA3AHLVcjs.VARIABLE_REGEX; exports.WHOLE_COLUMN_END_ROW = _chunkEWCOFSCQcjs.WHOLE_COLUMN_END_ROW; exports.XmlWriter = _chunkTXXNBDQXcjs.XmlWriter; exports.ZipArchive = _chunk3CC7OPUQcjs.ZipArchive; exports.ZipError = _chunk3CC7OPUQcjs.ZipError; exports.adjustRangeForStructuralChange = _chunkNQF32I6Zcjs.adjustRangeForStructuralChange; exports.adjustRangesForStructuralChange = _chunkNQF32I6Zcjs.adjustRangesForStructuralChange; exports.aggregateValues = _chunkNQF32I6Zcjs.aggregateValues; exports.analyzePdfLayout = analyzePdfLayout; exports.applyDocumentComparison = _chunkYOMYSFJUcjs.applyDocumentComparison; exports.applyFormulaSuggestion = _chunkNQF32I6Zcjs.applyFormulaSuggestion; exports.applyImportedReviewData = _chunkYOMYSFJUcjs.applyImportedReviewData; exports.applyReplacements = _chunkYOMYSFJUcjs.applyReplacements; exports.autocorrectPluginKey = _chunkYOMYSFJUcjs.autocorrectPluginKey; exports.bindDirtyToHistory = _chunkG2I4QJOTcjs.bindDirtyToHistory; exports.bindSpreadsheetTableActions = _chunkNQF32I6Zcjs.bindSpreadsheetTableActions; exports.blendConditionalFormatColors = _chunkNQF32I6Zcjs.blendConditionalFormatColors; exports.buildOutlineTree = _chunkYOMYSFJUcjs.buildOutlineTree; exports.buildSpreadsheetView = _chunkNQF32I6Zcjs.buildSpreadsheetView; exports.builtinNumberFormat = _chunkEWCOFSCQcjs.builtinNumberFormat; exports.builtinNumberFormatId = _chunkEWCOFSCQcjs.builtinNumberFormatId; exports.capitalizeSentenceRules = _chunkYOMYSFJUcjs.capitalizeSentenceRules; exports.captureSelectionFormat = _chunkYOMYSFJUcjs.captureSelectionFormat; exports.cellFormatForNumberFormat = _chunkNQF32I6Zcjs.cellFormatForNumberFormat; exports.checkFormulaArgumentCount = _chunkEWCOFSCQcjs.checkFormulaArgumentCount; exports.clampMenuPosition = _chunkNQF32I6Zcjs.clampMenuPosition; exports.clearNumberFormatCache = _chunkEWCOFSCQcjs.clearNumberFormatCache; exports.colNameToIndex = _chunkEWCOFSCQcjs.colNameToIndex; exports.columnDependencyKey = _chunkNQF32I6Zcjs.columnDependencyKey; exports.commentsPluginKey = _chunkYOMYSFJUcjs.commentsPluginKey; exports.compactVariableValues = _chunkP3RQ5UJEcjs.compactVariableValues; exports.compareCellValues = _chunkNQF32I6Zcjs.compareCellValues; exports.compareConditionValues = _chunkMKA3AHLVcjs.compareConditionValues; exports.compareDocuments = _chunkCS6NZWWAcjs.compareDocuments; exports.compareHtml = _chunkCS6NZWWAcjs.compareHtml; exports.compareInEditor = _chunkYOMYSFJUcjs.compareInEditor; exports.compareNumbers = _chunkEWCOFSCQcjs.compareNumbers; exports.compareValues = _chunkEWCOFSCQcjs.compareValues; exports.compileFindPattern = _chunkYOMYSFJUcjs.compileFindPattern; exports.computeFillTarget = _chunkNQF32I6Zcjs.computeFillTarget; exports.computeOutline = _chunkYOMYSFJUcjs.computeOutline; exports.computeRowGroups = _chunkNQF32I6Zcjs.computeRowGroups; exports.conditionSubject = _chunkMKA3AHLVcjs.conditionSubject; exports.conditionalFormatContrastColor = _chunkNQF32I6Zcjs.conditionalFormatContrastColor; exports.conditionalFormatIconCount = _chunkNQF32I6Zcjs.conditionalFormatIconCount; exports.conditionalFormatNumber = _chunkNQF32I6Zcjs.conditionalFormatNumber; exports.conditionalFormatStyleString = _chunkNQF32I6Zcjs.conditionalFormatStyleString; exports.copySheetName = _chunkNQF32I6Zcjs.copySheetName; exports.createCommentStore = _chunkIFHKKVXHcjs.createCommentStore; exports.createConditionalFormatRule = _chunkNQF32I6Zcjs.createConditionalFormatRule; exports.createDirtyTracker = _chunkG2I4QJOTcjs.createDirtyTracker; exports.createDocxExportController = _chunkTXXNBDQXcjs.createDocxExportController; exports.createDocxImportAdapter = _chunkYOMYSFJUcjs.createDocxImportAdapter; exports.createDocxParts = _chunkTXXNBDQXcjs.createDocxParts; exports.createEditor = createEditor; exports.createFileImportController = createFileImportController; exports.createFindReplaceCommands = _chunkYOMYSFJUcjs.createFindReplaceCommands; exports.createHistoryManager = _chunkG2I4QJOTcjs.createHistoryManager; exports.createImportAdapterRegistry = _chunkYOMYSFJUcjs.createImportAdapterRegistry; exports.createImportContext = _chunkYOMYSFJUcjs.createImportContext; exports.createMentionExtension = _chunkYOMYSFJUcjs.createMentionExtension; exports.createOutlineStore = _chunkYOMYSFJUcjs.createOutlineStore; exports.createParagraphStylesStore = _chunkYOMYSFJUcjs.createParagraphStylesStore; exports.createPdfImportAdapter = createPdfImportAdapter; exports.createReviewId = _chunkIFHKKVXHcjs.createReviewId; exports.createRichTextPreset = _chunkYOMYSFJUcjs.createRichTextPreset; exports.createSearchBudget = _chunkYOMYSFJUcjs.createSearchBudget; exports.createSpreadsheetClipboardData = _chunkNQF32I6Zcjs.createSpreadsheetClipboardData; exports.createStyleRegistry = _chunk3CC7OPUQcjs.createStyleRegistry; exports.createTableCommands = _chunkYOMYSFJUcjs.createTableCommands; exports.createTableExtensions = _chunkHDYMLS3Xcjs.createTableExtensions; exports.createTableStore = _chunkHDYMLS3Xcjs.createTableStore; exports.createZipImportAdapter = createZipImportAdapter; exports.crossReferencePluginKey = _chunkYOMYSFJUcjs.crossReferencePluginKey; exports.csvImportAdapter = _chunkNQF32I6Zcjs.csvImportAdapter; exports.dateValueToSerial = _chunkEWCOFSCQcjs.dateValueToSerial; exports.defaultAutocorrectRules = _chunkYOMYSFJUcjs.defaultAutocorrectRules; exports.defaultIconThresholds = _chunkNQF32I6Zcjs.defaultIconThresholds; exports.defaultImportRegistry = _chunkYOMYSFJUcjs.defaultImportRegistry; exports.defaultIsEqual = _chunkG2I4QJOTcjs.defaultIsEqual; exports.deflateRaw = _chunkTXXNBDQXcjs.deflateRaw; exports.deleteSheetInFormula = _chunkNQF32I6Zcjs.deleteSheetInFormula; exports.describeBlockChange = _chunkIFHKKVXHcjs.describeBlockChange; exports.describeConditionalFormat = _chunkNQF32I6Zcjs.describeConditionalFormat; exports.describeConditionalTag = _chunkMKA3AHLVcjs.describeConditionalTag; exports.describeDataValidation = _chunkNQF32I6Zcjs.describeDataValidation; exports.describeFormatChange = _chunkIFHKKVXHcjs.describeFormatChange; exports.describeFormulaError = _chunkEWCOFSCQcjs.describeFormulaError; exports.detectDelimiter = _chunkP3RQ5UJEcjs.detectDelimiter; exports.diffChanges = _chunkCS6NZWWAcjs.diffChanges; exports.diffSequences = _chunkCS6NZWWAcjs.diffSequences; exports.documentStructureCommandItems = _chunkYOMYSFJUcjs.documentStructureCommandItems; exports.docxFileName = _chunkTXXNBDQXcjs.docxFileName; exports.docxImportAdapter = _chunkYOMYSFJUcjs.docxImportAdapter; exports.docxToDocumentImport = _chunkYOMYSFJUcjs.docxToDocumentImport; exports.downloadBlob = _chunkTXXNBDQXcjs.downloadBlob; exports.escapeCsvField = _chunkTNNJXF46cjs.escapeCsvField; exports.escapeHtml = _chunkNFVBT3UZcjs.escapeHtml; exports.escapeVariableText = _chunkMKA3AHLVcjs.escapeVariableText; exports.escapeXmlAttr = _chunkTXXNBDQXcjs.escapeXmlAttr; exports.escapeXmlText = _chunkTXXNBDQXcjs.escapeXmlText; exports.evaluateCondition = _chunkMKA3AHLVcjs.evaluateCondition; exports.evaluateConditionExpression = _chunkMKA3AHLVcjs.evaluateConditionExpression; exports.evaluateConditionalFormats = _chunkNQF32I6Zcjs.evaluateConditionalFormats; exports.evaluatePromptTokens = _chunkFD4LPFAEcjs.evaluatePromptTokens; exports.expandReplacement = _chunkYOMYSFJUcjs.expandReplacement; exports.exportDocx = _chunkTXXNBDQXcjs.exportDocx; exports.exportDocxBlob = _chunkTXXNBDQXcjs.exportDocxBlob; exports.extractCellDependencies = _chunkNQF32I6Zcjs.extractCellDependencies; exports.extractInstructionNames = _chunkP3RQ5UJEcjs.extractInstructionNames; exports.extractMentions = _chunkNFVBT3UZcjs.extractMentions; exports.extractMentionsFromDoc = _chunkNFVBT3UZcjs.extractMentionsFromDoc; exports.extractNameDependencies = _chunkNQF32I6Zcjs.extractNameDependencies; exports.extractReferenceDependencies = _chunkNQF32I6Zcjs.extractReferenceDependencies; exports.extractTemplateNames = _chunkP3RQ5UJEcjs.extractTemplateNames; exports.extractVariableNames = _chunkP3RQ5UJEcjs.extractVariableNames; exports.extractVariables = _chunkP3RQ5UJEcjs.extractVariables; exports.fileImportPluginKey = _chunkYOMYSFJUcjs.fileImportPluginKey; exports.fillSeries = _chunkNQF32I6Zcjs.fillSeries; exports.findAllMatches = _chunkYOMYSFJUcjs.findAllMatches; exports.findAutocorrection = _chunkYOMYSFJUcjs.findAutocorrection; exports.findCommentRanges = _chunkYOMYSFJUcjs.findCommentRanges; exports.findDataValidation = _chunkNQF32I6Zcjs.findDataValidation; exports.findHexColors = _chunkYOMYSFJUcjs.findHexColors; exports.findImportAdapter = _chunkYOMYSFJUcjs.findImportAdapter; exports.findInvalidCells = _chunkNQF32I6Zcjs.findInvalidCells; exports.findReplacePluginKey = _chunkYOMYSFJUcjs.findReplacePluginKey; exports.findTextMentions = _chunkBVP3TSLHcjs.findTextMentions; exports.foldCodePoint = _chunkYOMYSFJUcjs.foldCodePoint; exports.footnotesMarkdownIt = _chunkYOMYSFJUcjs.footnotesMarkdownIt; exports.footnotesPluginKey = _chunkYOMYSFJUcjs.footnotesPluginKey; exports.forEachRangeCell = _chunkNQF32I6Zcjs.forEachRangeCell; exports.formatCellDisplay = _chunkNQF32I6Zcjs.formatCellDisplay; exports.formatCellForDisplay = _chunkNQF32I6Zcjs.formatCellForDisplay; exports.formatComparisonOperand = _chunkMKA3AHLVcjs.formatComparisonOperand; exports.formatConditionalTag = _chunkMKA3AHLVcjs.formatConditionalTag; exports.formatFindStatus = _chunkYOMYSFJUcjs.formatFindStatus; exports.formatGeneralFit = _chunkEWCOFSCQcjs.formatGeneralFit; exports.formatMentionText = _chunkBVP3TSLHcjs.formatMentionText; exports.formatNumberFormatValue = _chunkEWCOFSCQcjs.formatNumberFormatValue; exports.formatReviewTime = _chunkIFHKKVXHcjs.formatReviewTime; exports.formatRuleRanges = _chunkNQF32I6Zcjs.formatRuleRanges; exports.formatSheetPrefix = _chunkNQF32I6Zcjs.formatSheetPrefix; exports.formatTextFunction = _chunkEWCOFSCQcjs.formatTextFunction; exports.formatValueWithCode = _chunkNQF32I6Zcjs.formatValueWithCode; exports.formulaIdentifiers = _chunkNQF32I6Zcjs.formulaIdentifiers; exports.fractionRules = _chunkYOMYSFJUcjs.fractionRules; exports.fullSpreadsheetViewWindow = _chunkNQF32I6Zcjs.fullSpreadsheetViewWindow; exports.getActiveHeading = _chunkYOMYSFJUcjs.getActiveHeading; exports.getBookmarks = _chunkYOMYSFJUcjs.getBookmarks; exports.getClipboardData = _chunkRRREAOVMcjs.getClipboardData; exports.getCommentAnchors = _chunkYOMYSFJUcjs.getCommentAnchors; exports.getCommentAuthor = _chunkYOMYSFJUcjs.getCommentAuthor; exports.getCommentIdsAt = _chunkYOMYSFJUcjs.getCommentIdsAt; exports.getCommentStore = _chunkYOMYSFJUcjs.getCommentStore; exports.getConditionalFormatCss = _chunkNQF32I6Zcjs.getConditionalFormatCss; exports.getConditionalFormatIcon = _chunkNQF32I6Zcjs.getConditionalFormatIcon; exports.getCrossReferenceTargets = _chunkYOMYSFJUcjs.getCrossReferenceTargets; exports.getDataBarCss = _chunkNQF32I6Zcjs.getDataBarCss; exports.getDocumentStructureCommandItems = _chunkYOMYSFJUcjs.getDocumentStructureCommandItems; exports.getEditorMarkdown = _chunkNFVBT3UZcjs.getEditorMarkdown; exports.getEditorText = _chunkNFVBT3UZcjs.getEditorText; exports.getFillDirection = _chunkNQF32I6Zcjs.getFillDirection; exports.getFindReplaceState = _chunkYOMYSFJUcjs.getFindReplaceState; exports.getFindReplaceStore = _chunkYOMYSFJUcjs.getFindReplaceStore; exports.getFootnotes = _chunkYOMYSFJUcjs.getFootnotes; exports.getFormulaArgumentSpecIndex = _chunkEWCOFSCQcjs.getFormulaArgumentSpecIndex; exports.getFormulaCaretContext = _chunkNQF32I6Zcjs.getFormulaCaretContext; exports.getFormulaFunction = _chunkEWCOFSCQcjs.getFormulaFunction; exports.getFormulaHints = _chunkNQF32I6Zcjs.getFormulaHints; exports.getFormulaSignature = _chunkEWCOFSCQcjs.getFormulaSignature; exports.getFormulaSignatureParts = _chunkEWCOFSCQcjs.getFormulaSignatureParts; exports.getImportAccept = _chunkYOMYSFJUcjs.getImportAccept; exports.getLatestVersion = _chunkFD4LPFAEcjs.getLatestVersion; exports.getMentionNodes = _chunkYOMYSFJUcjs.getMentionNodes; exports.getNameManagerRows = _chunkNQF32I6Zcjs.getNameManagerRows; exports.getOutline = _chunkYOMYSFJUcjs.getOutline; exports.getParagraphStyleAt = _chunkYOMYSFJUcjs.getParagraphStyleAt; exports.getPromptDiagnostics = _chunkFD4LPFAEcjs.getPromptDiagnostics; exports.getRowSection = _chunkNQF32I6Zcjs.getRowSection; exports.getSchemaSignature = _chunkRRREAOVMcjs.getSchemaSignature; exports.getSheetTabMenuItems = _chunkNQF32I6Zcjs.getSheetTabMenuItems; exports.getSpreadsheetMenuItems = _chunkNQF32I6Zcjs.getSpreadsheetMenuItems; exports.getSpreadsheetScrollToCell = _chunkNQF32I6Zcjs.getSpreadsheetScrollToCell; exports.getSpreadsheetViewWindow = _chunkNQF32I6Zcjs.getSpreadsheetViewWindow; exports.getStyleRegistry = _chunkYOMYSFJUcjs.getStyleRegistry; exports.getSuppliedValue = _chunkMKA3AHLVcjs.getSuppliedValue; exports.getTableActionState = _chunkHDYMLS3Xcjs.getTableActionState; exports.getTableOfContentsEntries = _chunkYOMYSFJUcjs.getTableOfContentsEntries; exports.getTableSections = _chunkNQF32I6Zcjs.getTableSections; exports.getTableState = _chunkHDYMLS3Xcjs.getTableState; exports.getTemplateBody = _chunkFD4LPFAEcjs.getTemplateBody; exports.getTrackChangesStore = _chunkIFHKKVXHcjs.getTrackChangesStore; exports.getTrackedChangeAt = _chunkIFHKKVXHcjs.getTrackedChangeAt; exports.getTrackedChanges = _chunkIFHKKVXHcjs.getTrackedChanges; exports.getValidationListValues = _chunkNQF32I6Zcjs.getValidationListValues; exports.getVariableFormFields = _chunkP3RQ5UJEcjs.getVariableFormFields; exports.handleImageInsertion = _chunkYOMYSFJUcjs.handleImageInsertion; exports.htmlImportAdapter = _chunkYOMYSFJUcjs.htmlImportAdapter; exports.htmlToPlainText = _chunkNFVBT3UZcjs.htmlToPlainText; exports.htmlToSlice = _chunkYOMYSFJUcjs.htmlToSlice; exports.imagePastePluginKey = _chunkYOMYSFJUcjs.imagePastePluginKey; exports.importFile = _chunkYOMYSFJUcjs.importFile; exports.importFileIntoSpreadsheet = _chunkNQF32I6Zcjs.importFileIntoSpreadsheet; exports.importFilesIntoEditor = _chunkYOMYSFJUcjs.importFilesIntoEditor; exports.indexToColName = _chunkEWCOFSCQcjs.indexToColName; exports.insertImageNode = _chunkYOMYSFJUcjs.insertImageNode; exports.insertImportedDocument = _chunkYOMYSFJUcjs.insertImportedDocument; exports.instructionRegex = _chunkMKA3AHLVcjs.instructionRegex; exports.isBlankValue = _chunkNQF32I6Zcjs.isBlankValue; exports.isFormulaError = _chunkEWCOFSCQcjs.isFormulaError; exports.isFormulaLambda = _chunkEWCOFSCQcjs.isFormulaLambda; exports.isGeneralNumberFormat = _chunkNQF32I6Zcjs.isGeneralNumberFormat; exports.isGfmTable = _chunkHDYMLS3Xcjs.isGfmTable; exports.isInsidePromptToken = _chunkYOMYSFJUcjs.isInsidePromptToken; exports.isLambdaDefinition = _chunkNQF32I6Zcjs.isLambdaDefinition; exports.isMoveSized = _chunkIFHKKVXHcjs.isMoveSized; exports.isParagraphStyleAvailable = _chunkYOMYSFJUcjs.isParagraphStyleAvailable; exports.isPromptValueSet = _chunkMKA3AHLVcjs.isPromptValueSet; exports.isSelectionInTable = _chunkHDYMLS3Xcjs.isSelectionInTable; exports.isSingleCellRange = _chunkNQF32I6Zcjs.isSingleCellRange; exports.isTableEnabled = _chunkHDYMLS3Xcjs.isTableEnabled; exports.isTrackChangesEnabled = _chunkIFHKKVXHcjs.isTrackChangesEnabled; exports.isUnsafeZipPath = _chunk3CC7OPUQcjs.isUnsafeZipPath; exports.isValidStyleId = _chunk3CC7OPUQcjs.isValidStyleId; exports.listFormulaFunctions = _chunkEWCOFSCQcjs.listFormulaFunctions; exports.mapFormulaReferences = _chunkNQF32I6Zcjs.mapFormulaReferences; exports.mapRawOffsetToResolved = _chunkP3RQ5UJEcjs.mapRawOffsetToResolved; exports.mapResolvedOffsetToRaw = _chunkP3RQ5UJEcjs.mapResolvedOffsetToRaw; exports.markdownImportAdapter = _chunkYOMYSFJUcjs.markdownImportAdapter; exports.markdownToTipTapHtml = _chunkNFVBT3UZcjs.markdownToTipTapHtml; exports.matchConditionalTags = _chunkMKA3AHLVcjs.matchConditionalTags; exports.matchFields = _chunkP3RQ5UJEcjs.matchFields; exports.matchesFilterRule = _chunkNQF32I6Zcjs.matchesFilterRule; exports.matchesTimePeriod = _chunkNQF32I6Zcjs.matchesTimePeriod; exports.measureSpreadsheetView = _chunkNQF32I6Zcjs.measureSpreadsheetView; exports.mergeRecords = _chunkP3RQ5UJEcjs.mergeRecords; exports.navigateToHeading = _chunkYOMYSFJUcjs.navigateToHeading; exports.nextSheetName = _chunkNQF32I6Zcjs.nextSheetName; exports.normalizeFieldKey = _chunkP3RQ5UJEcjs.normalizeFieldKey; exports.normalizeFieldNames = _chunkP3RQ5UJEcjs.normalizeFieldNames; exports.normalizeRange = _chunkNQF32I6Zcjs.normalizeRange; exports.normalizeTableCellAlignment = _chunkHDYMLS3Xcjs.normalizeTableCellAlignment; exports.normalizeTableCellColor = _chunkHDYMLS3Xcjs.normalizeTableCellColor; exports.numberFormatColorToCss = _chunkEWCOFSCQcjs.numberFormatColorToCss; exports.numberFormatForCellFormat = _chunkNQF32I6Zcjs.numberFormatForCellFormat; exports.numberToText = _chunkEWCOFSCQcjs.numberToText; exports.offsetFormulaReferences = _chunkNQF32I6Zcjs.offsetFormulaReferences; exports.outlinePluginKey = _chunkYOMYSFJUcjs.outlinePluginKey; exports.paragraphStylesPluginKey = _chunkYOMYSFJUcjs.paragraphStylesPluginKey; exports.parseCellInput = _chunkEWCOFSCQcjs.parseCellInput; exports.parseCellReference = _chunkEWCOFSCQcjs.parseCellReference; exports.parseComparison = _chunkMKA3AHLVcjs.parseComparison; exports.parseConditionExpression = _chunkMKA3AHLVcjs.parseConditionExpression; exports.parseCriteria = _chunkEWCOFSCQcjs.parseCriteria; exports.parseCsv = _chunkTNNJXF46cjs.parseCsv; exports.parseDataSource = _chunkP3RQ5UJEcjs.parseDataSource; exports.parseFormula = _chunkEWCOFSCQcjs.parseFormula; exports.parseHtmlTable = _chunkNQF32I6Zcjs.parseHtmlTable; exports.parseMentionSegments = _chunkNFVBT3UZcjs.parseMentionSegments; exports.parseNumberText = _chunkEWCOFSCQcjs.parseNumberText; exports.parseRange = _chunkEWCOFSCQcjs.parseRange; exports.parseReplacement = _chunkYOMYSFJUcjs.parseReplacement; exports.parseRichClipboardPayload = _chunkRRREAOVMcjs.parseRichClipboardPayload; exports.parseRuleRanges = _chunkNQF32I6Zcjs.parseRuleRanges; exports.parseTsv = _chunkTNNJXF46cjs.parseTsv; exports.parseVariableBody = _chunkMKA3AHLVcjs.parseVariableBody; exports.pdfLayoutBlocksToHtml = pdfLayoutBlocksToHtml; exports.pdfOperatorListToRules = pdfOperatorListToRules; exports.pdfTextItemsToParagraphs = pdfTextItemsToParagraphs; exports.pdfTextItemsToRuns = pdfTextItemsToRuns; exports.pickImportFiles = pickImportFiles; exports.plainTextImportAdapter = _chunkYOMYSFJUcjs.plainTextImportAdapter; exports.plainTextToParagraphHtml = _chunkRRREAOVMcjs.plainTextToParagraphHtml; exports.plainTextToSlice = _chunkNFVBT3UZcjs.plainTextToSlice; exports.plainTextToTipTapHtml = _chunkNFVBT3UZcjs.plainTextToTipTapHtml; exports.preprocessMarkdownFileLinks = _chunkNFVBT3UZcjs.preprocessMarkdownFileLinks; exports.preprocessMarkdownMentions = _chunkNFVBT3UZcjs.preprocessMarkdownMentions; exports.quoteSheetName = _chunkNQF32I6Zcjs.quoteSheetName; exports.rangeContains = _chunkNQF32I6Zcjs.rangeContains; exports.rangeContainsRange = _chunkNQF32I6Zcjs.rangeContainsRange; exports.rangeDependencyKey = _chunkNQF32I6Zcjs.rangeDependencyKey; exports.rangesContain = _chunkNQF32I6Zcjs.rangesContain; exports.rangesIntersect = _chunkNQF32I6Zcjs.rangesIntersect; exports.readRichClipboard = _chunkRRREAOVMcjs.readRichClipboard; exports.readSpreadsheetClipboard = _chunkNQF32I6Zcjs.readSpreadsheetClipboard; exports.readZip = _chunk3CC7OPUQcjs.readZip; exports.rebaseClipboardRows = _chunkNQF32I6Zcjs.rebaseClipboardRows; exports.recordToValues = _chunkP3RQ5UJEcjs.recordToValues; exports.registerFormulaFunction = _chunkEWCOFSCQcjs.registerFormulaFunction; exports.registerImportAdapter = _chunkYOMYSFJUcjs.registerImportAdapter; exports.registerSpreadsheetImportAdapters = _chunkNQF32I6Zcjs.registerSpreadsheetImportAdapters; exports.remapFormulaReferences = _chunkNQF32I6Zcjs.remapFormulaReferences; exports.removeImageNode = _chunkYOMYSFJUcjs.removeImageNode; exports.renameNameInFormula = _chunkNQF32I6Zcjs.renameNameInFormula; exports.renameSheetInFormula = _chunkNQF32I6Zcjs.renameSheetInFormula; exports.resolvePrompt = _chunkFD4LPFAEcjs.resolvePrompt; exports.resolveTemplates = _chunkP3RQ5UJEcjs.resolveTemplates; exports.resolveTemplatesWithMapping = _chunkP3RQ5UJEcjs.resolveTemplatesWithMapping; exports.resolveTrackedChanges = _chunkIFHKKVXHcjs.resolveTrackedChanges; exports.resolveVariables = _chunkP3RQ5UJEcjs.resolveVariables; exports.richClipboardPluginKey = _chunkYOMYSFJUcjs.richClipboardPluginKey; exports.roundFloat = _chunkNQF32I6Zcjs.roundFloat; exports.rowPassesFilters = _chunkNQF32I6Zcjs.rowPassesFilters; exports.rtfImportAdapter = _chunkYOMYSFJUcjs.rtfImportAdapter; exports.rtfToPlainText = _chunkRRREAOVMcjs.rtfToPlainText; exports.ruleAnchor = _chunkNQF32I6Zcjs.ruleAnchor; exports.ruleFormulaAt = _chunkNQF32I6Zcjs.ruleFormulaAt; exports.runSpreadsheetMenuItem = _chunkNQF32I6Zcjs.runSpreadsheetMenuItem; exports.runTableAction = _chunkHDYMLS3Xcjs.runTableAction; exports.safeCSSValue = _chunk3CC7OPUQcjs.safeCSSValue; exports.sameSpreadsheetViewWindow = _chunkNQF32I6Zcjs.sameSpreadsheetViewWindow; exports.sanitizeHtml = _chunkNFVBT3UZcjs.sanitizeHtml; exports.sanitizeImportedHtml = _chunkRRREAOVMcjs.sanitizeImportedHtml; exports.searchDocument = _chunkYOMYSFJUcjs.searchDocument; exports.searchFormulaFunctions = _chunkEWCOFSCQcjs.searchFormulaFunctions; exports.serialFromYmd = _chunkEWCOFSCQcjs.serialFromYmd; exports.serializeCsv = _chunkTNNJXF46cjs.serializeCsv; exports.serializeHtmlTable = _chunkNQF32I6Zcjs.serializeHtmlTable; exports.serializeMergeOutputs = _chunkP3RQ5UJEcjs.serializeMergeOutputs; exports.serializeRichClipboardPayload = _chunkRRREAOVMcjs.serializeRichClipboardPayload; exports.serializeTsv = _chunkTNNJXF46cjs.serializeTsv; exports.setMentionRoleAt = _chunkYOMYSFJUcjs.setMentionRoleAt; exports.setMentionRoleInText = _chunkBVP3TSLHcjs.setMentionRoleInText; exports.sheetDropIndex = _chunkNQF32I6Zcjs.sheetDropIndex; exports.sheetNameNeedsQuotes = _chunkNQF32I6Zcjs.sheetNameNeedsQuotes; exports.shiftFormulaReferences = _chunkNQF32I6Zcjs.shiftFormulaReferences; exports.shiftRuleFormula = _chunkNQF32I6Zcjs.shiftRuleFormula; exports.shouldShowTableBubbleMenu = _chunkHDYMLS3Xcjs.shouldShowTableBubbleMenu; exports.shouldVirtualizeSpreadsheet = _chunkNQF32I6Zcjs.shouldVirtualizeSpreadsheet; exports.smartQuoteRules = _chunkYOMYSFJUcjs.smartQuoteRules; exports.smilieAutocorrectRules = _chunkYOMYSFJUcjs.smilieAutocorrectRules; exports.sortCompareValues = _chunkEWCOFSCQcjs.sortCompareValues; exports.sortZipEntryNames = sortZipEntryNames; exports.stripInvalidXmlChars = _chunkTXXNBDQXcjs.stripInvalidXmlChars; exports.stripMarkdownCode = _chunkNFVBT3UZcjs.stripMarkdownCode; exports.subtractRange = _chunkNQF32I6Zcjs.subtractRange; exports.subtractRangeFromRanges = _chunkNQF32I6Zcjs.subtractRangeFromRanges; exports.summarizeImportStructure = summarizeImportStructure; exports.symbolRules = _chunkYOMYSFJUcjs.symbolRules; exports.syncFootnotes = _chunkYOMYSFJUcjs.syncFootnotes; exports.tableOfContentsMarkdownIt = _chunkYOMYSFJUcjs.tableOfContentsMarkdownIt; exports.tableOfContentsPluginKey = _chunkYOMYSFJUcjs.tableOfContentsPluginKey; exports.templateRegex = _chunkMKA3AHLVcjs.templateRegex; exports.toNumber = _chunkNQF32I6Zcjs.toNumber; exports.tokenizeFormula = _chunkEWCOFSCQcjs.tokenizeFormula; exports.tokenizePrompt = _chunkFD4LPFAEcjs.tokenizePrompt; exports.tokenizePromptWithDiagnostics = _chunkFD4LPFAEcjs.tokenizePromptWithDiagnostics; exports.trackChangesPluginKey = _chunkIFHKKVXHcjs.trackChangesPluginKey; exports.trackedChangeLabel = _chunkIFHKKVXHcjs.trackedChangeLabel; exports.tsvImportAdapter = _chunkNQF32I6Zcjs.tsvImportAdapter; exports.twoInitialCapitalsRules = _chunkYOMYSFJUcjs.twoInitialCapitalsRules; exports.unescapeVariableText = _chunkMKA3AHLVcjs.unescapeVariableText; exports.unregisterFormulaFunction = _chunkEWCOFSCQcjs.unregisterFormulaFunction; exports.unregisterImportAdapter = _chunkYOMYSFJUcjs.unregisterImportAdapter; exports.updateImageSrc = _chunkYOMYSFJUcjs.updateImageSrc; exports.validateCellInput = _chunkNQF32I6Zcjs.validateCellInput; exports.validateDefinedName = _chunkNQF32I6Zcjs.validateDefinedName; exports.validateFindPattern = _chunkYOMYSFJUcjs.validateFindPattern; exports.validateSheetName = _chunkNQF32I6Zcjs.validateSheetName; exports.variableRegex = _chunkMKA3AHLVcjs.variableRegex; exports.wildcardToRegExp = _chunkEWCOFSCQcjs.wildcardToRegExp; exports.withoutDirty = _chunkG2I4QJOTcjs.withoutDirty; exports.writeRichClipboard = _chunkYOMYSFJUcjs.writeRichClipboard; exports.writeZip = _chunkTXXNBDQXcjs.writeZip; exports.zipCrc32 = _chunk3CC7OPUQcjs.zipCrc32; exports.zipEntryTitle = zipEntryTitle; exports.zipImportAdapter = zipImportAdapter;
1143
2701
  //# sourceMappingURL=index.cjs.map