@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.
- package/README.md +101 -1
- package/THIRD_PARTY_NOTICES.md +40 -0
- package/dist/agent/index.cjs +175 -11
- package/dist/agent/index.cjs.map +1 -1
- package/dist/agent/index.d.cts +18 -4
- package/dist/agent/index.d.ts +18 -4
- package/dist/agent/index.js +168 -4
- package/dist/agent/index.js.map +1 -1
- package/dist/{arrangeShortcuts-B8O3f8-P.d.cts → arrange-BICutYPk.d.cts} +243 -29
- package/dist/{arrangeShortcuts-sLlD2rSX.d.ts → arrange-BICutYPk.d.ts} +243 -29
- package/dist/builtins-CdPcLwwF.d.cts +176 -0
- package/dist/builtins-Chj6zv_O.d.ts +176 -0
- package/dist/canvas/index.cjs +8588 -1857
- package/dist/canvas/index.cjs.map +1 -1
- package/dist/canvas/index.d.cts +1847 -9
- package/dist/canvas/index.d.ts +1847 -9
- package/dist/canvas/index.js +8577 -1846
- package/dist/canvas/index.js.map +1 -1
- package/dist/chunk-3CC7OPUQ.cjs +831 -0
- package/dist/chunk-3CC7OPUQ.cjs.map +1 -0
- package/dist/chunk-4BVP64JJ.cjs +1406 -0
- package/dist/chunk-4BVP64JJ.cjs.map +1 -0
- package/dist/chunk-BVP3TSLH.cjs +69 -0
- package/dist/chunk-BVP3TSLH.cjs.map +1 -0
- package/dist/{chunk-OLZJXL4R.cjs → chunk-CS6NZWWA.cjs} +59 -25
- package/dist/chunk-CS6NZWWA.cjs.map +1 -0
- package/dist/{chunk-MCSJFWAO.cjs → chunk-EWCOFSCQ.cjs} +685 -100
- package/dist/chunk-EWCOFSCQ.cjs.map +1 -0
- package/dist/chunk-HDYMLS3X.cjs +409 -0
- package/dist/chunk-HDYMLS3X.cjs.map +1 -0
- package/dist/chunk-HRMEDT2L.js +1406 -0
- package/dist/chunk-HRMEDT2L.js.map +1 -0
- package/dist/{chunk-D27YFC46.cjs → chunk-IFHKKVXH.cjs} +382 -63
- package/dist/chunk-IFHKKVXH.cjs.map +1 -0
- package/dist/{chunk-PGNZKFQS.js → chunk-JOIREKL7.js} +137 -58
- package/dist/chunk-JOIREKL7.js.map +1 -0
- package/dist/chunk-KRGXUQ2Y.js +1696 -0
- package/dist/chunk-KRGXUQ2Y.js.map +1 -0
- package/dist/{chunk-3LV6RRPH.js → chunk-MHEPLBFB.js} +2 -2
- package/dist/chunk-MR2764X2.js +831 -0
- package/dist/chunk-MR2764X2.js.map +1 -0
- package/dist/{chunk-XNORY7M6.cjs → chunk-NFVBT3UZ.cjs} +166 -87
- package/dist/chunk-NFVBT3UZ.cjs.map +1 -0
- package/dist/chunk-NQF32I6Z.cjs +6478 -0
- package/dist/chunk-NQF32I6Z.cjs.map +1 -0
- package/dist/chunk-O5RYH2PG.js +69 -0
- package/dist/chunk-O5RYH2PG.js.map +1 -0
- package/dist/{chunk-ITBSKI26.js → chunk-Q2OHWD2A.js} +1064 -360
- package/dist/chunk-Q2OHWD2A.js.map +1 -0
- package/dist/{chunk-FODNLX5N.js → chunk-QJSOZFCZ.js} +38 -4
- package/dist/chunk-QJSOZFCZ.js.map +1 -0
- package/dist/{chunk-SML64VJG.cjs → chunk-RRREAOVM.cjs} +4 -4
- package/dist/{chunk-SML64VJG.cjs.map → chunk-RRREAOVM.cjs.map} +1 -1
- package/dist/{chunk-5S3Z4PPF.js → chunk-SWE3NPOU.js} +347 -28
- package/dist/chunk-SWE3NPOU.js.map +1 -0
- package/dist/chunk-TXXNBDQX.cjs +1696 -0
- package/dist/chunk-TXXNBDQX.cjs.map +1 -0
- package/dist/chunk-UBCFIABU.js +409 -0
- package/dist/chunk-UBCFIABU.js.map +1 -0
- package/dist/chunk-X7HXL2SB.js +6478 -0
- package/dist/chunk-X7HXL2SB.js.map +1 -0
- package/dist/{chunk-SBCZ6RN5.cjs → chunk-YOMYSFJU.cjs} +1163 -459
- package/dist/chunk-YOMYSFJU.cjs.map +1 -0
- package/dist/{chunk-3CN2WD3X.js → chunk-ZRNHGAQT.js} +661 -76
- package/dist/chunk-ZRNHGAQT.js.map +1 -0
- package/dist/commands/index.cjs +425 -4
- package/dist/commands/index.cjs.map +1 -1
- package/dist/commands/index.d.cts +39 -77
- package/dist/commands/index.d.ts +39 -77
- package/dist/commands/index.js +424 -3
- package/dist/commands/index.js.map +1 -1
- package/dist/compare/index.cjs +3 -3
- package/dist/compare/index.d.cts +1 -1
- package/dist/compare/index.d.ts +1 -1
- package/dist/compare/index.js +2 -2
- package/dist/controller-CxXGOEmy.d.cts +2038 -0
- package/dist/controller-CxXGOEmy.d.ts +2038 -0
- package/dist/{documents-BQjzJNe2.d.ts → documents-CHT1U5Vs.d.ts} +10 -0
- package/dist/{documents-KRTPhvst.d.cts → documents-Gp7wb0Me.d.cts} +10 -0
- package/dist/export/index.cjs +36 -0
- package/dist/export/index.cjs.map +1 -0
- package/dist/export/index.d.cts +243 -0
- package/dist/export/index.d.ts +243 -0
- package/dist/export/index.js +36 -0
- package/dist/export/index.js.map +1 -0
- package/dist/extensions/index.cjs +101 -6
- package/dist/extensions/index.cjs.map +1 -1
- package/dist/extensions/index.d.cts +18 -5
- package/dist/extensions/index.d.ts +18 -5
- package/dist/extensions/index.js +101 -6
- package/dist/generation/index.cjs +1013 -69
- package/dist/generation/index.cjs.map +1 -1
- package/dist/generation/index.d.cts +474 -13
- package/dist/generation/index.d.ts +474 -13
- package/dist/generation/index.js +976 -32
- package/dist/generation/index.js.map +1 -1
- package/dist/image-editor/index.cjs +3385 -1275
- package/dist/image-editor/index.cjs.map +1 -1
- package/dist/image-editor/index.d.cts +693 -128
- package/dist/image-editor/index.d.ts +693 -128
- package/dist/image-editor/index.js +3325 -1215
- package/dist/image-editor/index.js.map +1 -1
- package/dist/{index-fJrlkJCd.d.ts → index-B273Zllk.d.ts} +500 -7
- package/dist/{index-BhJBSm2d.d.cts → index-jcJwmBYt.d.cts} +500 -7
- package/dist/index.cjs +1603 -45
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +154 -27
- package/dist/index.d.ts +154 -27
- package/dist/index.js +1584 -26
- package/dist/index.js.map +1 -1
- package/dist/mention-text-CDnCFd3c.d.cts +53 -0
- package/dist/mention-text-CDnCFd3c.d.ts +53 -0
- package/dist/model-C1zApQM8.d.cts +219 -0
- package/dist/model-C1zApQM8.d.ts +219 -0
- package/dist/persistence/index.d.cts +3 -120
- package/dist/persistence/index.d.ts +3 -120
- package/dist/registry-CED5C0lA.d.cts +204 -0
- package/dist/registry-CED5C0lA.d.ts +204 -0
- package/dist/{registry-GJI4gToU.d.cts → registry-CEgwXED1.d.cts} +12 -1
- package/dist/{registry-GJI4gToU.d.ts → registry-CEgwXED1.d.ts} +12 -1
- package/dist/{registry-D32LpIc4.d.cts → registry-D0GADKc7.d.cts} +1 -1
- package/dist/{registry-evKTP4ls.d.ts → registry-DhVUZioj.d.ts} +1 -1
- package/dist/serializers/index.cjs +12 -4
- package/dist/serializers/index.cjs.map +1 -1
- package/dist/serializers/index.d.cts +41 -13
- package/dist/serializers/index.d.ts +41 -13
- package/dist/serializers/index.js +12 -4
- package/dist/spreadsheet/index.cjs +157 -3
- package/dist/spreadsheet/index.cjs.map +1 -1
- package/dist/spreadsheet/index.d.cts +534 -11
- package/dist/spreadsheet/index.d.ts +534 -11
- package/dist/spreadsheet/index.js +157 -3
- package/dist/storage-BpFfspHm.d.cts +120 -0
- package/dist/storage-BpFfspHm.d.ts +120 -0
- package/dist/tokens/index.cjs +115 -0
- package/dist/tokens/index.cjs.map +1 -0
- package/dist/tokens/index.d.cts +212 -0
- package/dist/tokens/index.d.ts +212 -0
- package/dist/tokens/index.js +115 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/{track-changes-BK5sVf4_.d.cts → track-changes-D_VAPELi.d.cts} +95 -11
- package/dist/{track-changes-CDjCrwKe.d.ts → track-changes-Db_fGEvx.d.ts} +95 -11
- package/package.json +15 -1
- package/dist/chunk-3CN2WD3X.js.map +0 -1
- package/dist/chunk-5S3Z4PPF.js.map +0 -1
- package/dist/chunk-D27YFC46.cjs.map +0 -1
- package/dist/chunk-FODNLX5N.js.map +0 -1
- package/dist/chunk-ITBSKI26.js.map +0 -1
- package/dist/chunk-MA2F5KHF.cjs +0 -3223
- package/dist/chunk-MA2F5KHF.cjs.map +0 -1
- package/dist/chunk-MCSJFWAO.cjs.map +0 -1
- package/dist/chunk-OLZJXL4R.cjs.map +0 -1
- package/dist/chunk-PGNZKFQS.js.map +0 -1
- package/dist/chunk-SBCZ6RN5.cjs.map +0 -1
- package/dist/chunk-U5KWZU4X.js +0 -3223
- package/dist/chunk-U5KWZU4X.js.map +0 -1
- package/dist/chunk-XNORY7M6.cjs.map +0 -1
- package/dist/controller-BhLLAoi8.d.cts +0 -1000
- package/dist/controller-BhLLAoi8.d.ts +0 -1000
- package/dist/types-DX4Mh4SL.d.cts +0 -217
- package/dist/types-DX4Mh4SL.d.ts +0 -217
- /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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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" ?
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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
|
|
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',
|
|
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',
|
|
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
|
|
604
|
+
return _chunkNFVBT3UZcjs.getEditorText.call(void 0, this.editor);
|
|
456
605
|
}
|
|
457
606
|
setPlainText(text, emitUpdate = true) {
|
|
458
|
-
const html =
|
|
607
|
+
const html = _chunkNFVBT3UZcjs.plainTextToTipTapHtml.call(void 0, text);
|
|
459
608
|
this.editor.commands.setContent(html, emitUpdate);
|
|
460
609
|
}
|
|
461
610
|
getMarkdown() {
|
|
462
|
-
return
|
|
611
|
+
return _chunkNFVBT3UZcjs.getEditorMarkdown.call(void 0, this.editor);
|
|
463
612
|
}
|
|
464
613
|
setMarkdown(markdown, emitUpdate = true) {
|
|
465
|
-
if (_optionalChain([this, 'access',
|
|
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 =
|
|
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,
|
|
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, () => (
|
|
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, () => (
|
|
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
|
|
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',
|
|
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
|
|
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',
|
|
619
|
-
const y = _nullishCoalesce(_optionalChain([item, 'access',
|
|
620
|
-
const height = item.height || Math.abs(_nullishCoalesce(_optionalChain([item, 'access',
|
|
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 =
|
|
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({ ...
|
|
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
|
-
|
|
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
|
-
|
|
692
|
-
|
|
693
|
-
|
|
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',
|
|
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
|
|
699
|
-
|
|
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)), () => (
|
|
734
|
-
const zip = await
|
|
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}>${
|
|
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',
|
|
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,
|
|
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
|