@harbour-enterprises/superdoc 0.23.0-next.14 → 0.23.0-next.15
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/dist/chunks/{PdfViewer-D3cgkd9j.cjs → PdfViewer-1MZFKzXW.cjs} +1 -1
- package/dist/chunks/{PdfViewer-BaaVD5bX.es.js → PdfViewer-NEyAcxt7.es.js} +1 -1
- package/dist/chunks/{eventemitter3-CR2eBWft.es.js → eventemitter3-BWEnUdTY.es.js} +1 -1
- package/dist/chunks/{eventemitter3-DSRogsNq.cjs → eventemitter3-DkXkH2rT.cjs} +1 -1
- package/dist/chunks/{index-CAHkANZY.cjs → index-CGtSnLpQ.cjs} +160 -465
- package/dist/chunks/{index-CESuSQe2.es.js → index-DAT3_wPu.es.js} +27 -332
- package/dist/chunks/{super-editor.es-BYutUrPg.cjs → super-editor.es-C7TgrpFl.cjs} +616 -116
- package/dist/chunks/{super-editor.es-BKb7p4fi.es.js → super-editor.es-Ctq_imo8.es.js} +616 -116
- package/dist/chunks/{xml-js-CWV8R-ek.cjs → xml-js-D_ZIzxu0.cjs} +1 -1
- package/dist/chunks/xml-js-Dx4FIjnp.es.js +2 -0
- package/dist/core/types/index.d.ts +19 -1
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/super-editor/ai-writer.es.js +2 -2
- package/dist/super-editor/chunks/{converter-DD7uNz2k.js → converter-vEmAnrOg.js} +665 -249
- package/dist/super-editor/chunks/{docx-zipper-DraPR30Z.js → docx-zipper-DA00N7eN.js} +1 -1
- package/dist/super-editor/chunks/{editor-xzhKWRFZ.js → editor-Das_uwlq.js} +94 -10
- package/dist/super-editor/chunks/{toolbar-D6SJTVWT.js → toolbar-CKugkxNQ.js} +2 -2
- package/dist/super-editor/converter.es.js +1 -1
- package/dist/super-editor/docx-zipper.es.js +2 -2
- package/dist/super-editor/editor.es.js +3 -3
- package/dist/super-editor/file-zipper.es.js +1 -1
- package/dist/super-editor/src/core/Editor.d.ts +57 -3
- package/dist/super-editor/src/core/super-converter/SuperConverter.d.ts +58 -2
- package/dist/super-editor/src/core/super-converter/exporter-docx-defs.d.ts +28 -39
- package/dist/super-editor/super-editor.es.js +6 -6
- package/dist/super-editor/toolbar.es.js +2 -2
- package/dist/super-editor.cjs +1 -1
- package/dist/super-editor.es.js +1 -1
- package/dist/superdoc.cjs +2 -3
- package/dist/superdoc.es.js +2 -3
- package/dist/superdoc.umd.js +641 -446
- package/dist/superdoc.umd.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/xml-js-Bbc0NeKa.es.js +0 -2
- package/dist/chunks/{jszip-DAXEPCUv.es.js → jszip-BDk3JBqp.es.js} +3 -3
- package/dist/chunks/{jszip-B4LDL19y.cjs → jszip-u4dvXAKa.cjs} +3 -3
|
@@ -10,11 +10,7 @@ var __publicField$2 = (obj, key2, value) => __defNormalProp$2(obj, typeof key2 !
|
|
|
10
10
|
var __accessCheck$2 = (obj, member, msg2) => member.has(obj) || __typeError$2("Cannot " + msg2);
|
|
11
11
|
var __privateAdd$2 = (obj, member, value) => member.has(obj) ? __typeError$2("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
12
12
|
var __privateMethod$2 = (obj, member, method) => (__accessCheck$2(obj, member, "access private method"), method);
|
|
13
|
-
var _a, _DocxExporter_instances, generate_xml_as_list_fn, replaceSpecialCharacters_fn, generateXml_fn, _SuperConverter_instances, exportNumberingFile_fn, prepareCommentsXmlFilesForExport_fn, exportProcessHeadersFooters_fn, exportProcessNewRelationships_fn, exportProcessMediaFiles_fn;
|
|
14
|
-
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global$2 !== "undefined" ? global$2 : typeof self !== "undefined" ? self : {};
|
|
15
|
-
function getDefaultExportFromCjs$1(x) {
|
|
16
|
-
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
17
|
-
}
|
|
13
|
+
var _a, _DocxExporter_instances, generate_xml_as_list_fn, replaceSpecialCharacters_fn, generateXml_fn, _SuperConverter_instances, generateDocumentHash_fn, exportNumberingFile_fn, prepareCommentsXmlFilesForExport_fn, exportProcessHeadersFooters_fn, exportProcessNewRelationships_fn, exportProcessMediaFiles_fn;
|
|
18
14
|
var buffer = {};
|
|
19
15
|
var base64Js = {};
|
|
20
16
|
base64Js.byteLength = byteLength;
|
|
@@ -1781,6 +1777,10 @@ ieee754.write = function(buffer2, value, offset2, isLE, mLen, nBytes) {
|
|
|
1781
1777
|
}
|
|
1782
1778
|
})(buffer);
|
|
1783
1779
|
const Buffer2 = buffer.Buffer;
|
|
1780
|
+
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global$2 !== "undefined" ? global$2 : typeof self !== "undefined" ? self : {};
|
|
1781
|
+
function getDefaultExportFromCjs$2(x) {
|
|
1782
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
1783
|
+
}
|
|
1784
1784
|
var sax = {};
|
|
1785
1785
|
var events$1 = { exports: {} };
|
|
1786
1786
|
var hasRequiredEvents;
|
|
@@ -2183,7 +2183,7 @@ function requireInherits_browser() {
|
|
|
2183
2183
|
}
|
|
2184
2184
|
return inherits_browser.exports;
|
|
2185
2185
|
}
|
|
2186
|
-
function getDefaultExportFromCjs(x) {
|
|
2186
|
+
function getDefaultExportFromCjs$1(x) {
|
|
2187
2187
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
2188
2188
|
}
|
|
2189
2189
|
var browser$1 = { exports: {} };
|
|
@@ -2344,7 +2344,7 @@ process$1.umask = function() {
|
|
|
2344
2344
|
return 0;
|
|
2345
2345
|
};
|
|
2346
2346
|
var browserExports = browser$1.exports;
|
|
2347
|
-
const process$1$1 = /* @__PURE__ */ getDefaultExportFromCjs(browserExports);
|
|
2347
|
+
const process$1$1 = /* @__PURE__ */ getDefaultExportFromCjs$1(browserExports);
|
|
2348
2348
|
var streamBrowser;
|
|
2349
2349
|
var hasRequiredStreamBrowser;
|
|
2350
2350
|
function requireStreamBrowser() {
|
|
@@ -11329,7 +11329,7 @@ function requireLib() {
|
|
|
11329
11329
|
return lib;
|
|
11330
11330
|
}
|
|
11331
11331
|
var libExports = requireLib();
|
|
11332
|
-
const xmljs = /* @__PURE__ */ getDefaultExportFromCjs$
|
|
11332
|
+
const xmljs = /* @__PURE__ */ getDefaultExportFromCjs$2(libExports);
|
|
11333
11333
|
var getRandomValues;
|
|
11334
11334
|
var rnds8 = new Uint8Array(16);
|
|
11335
11335
|
function rng() {
|
|
@@ -11364,6 +11364,306 @@ function v4(options, buf, offset2) {
|
|
|
11364
11364
|
rnds[8] = rnds[8] & 63 | 128;
|
|
11365
11365
|
return stringify(rnds);
|
|
11366
11366
|
}
|
|
11367
|
+
function getDefaultExportFromCjs(x) {
|
|
11368
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
11369
|
+
}
|
|
11370
|
+
const CRC_TABLE = new Int32Array([
|
|
11371
|
+
0,
|
|
11372
|
+
1996959894,
|
|
11373
|
+
3993919788,
|
|
11374
|
+
2567524794,
|
|
11375
|
+
124634137,
|
|
11376
|
+
1886057615,
|
|
11377
|
+
3915621685,
|
|
11378
|
+
2657392035,
|
|
11379
|
+
249268274,
|
|
11380
|
+
2044508324,
|
|
11381
|
+
3772115230,
|
|
11382
|
+
2547177864,
|
|
11383
|
+
162941995,
|
|
11384
|
+
2125561021,
|
|
11385
|
+
3887607047,
|
|
11386
|
+
2428444049,
|
|
11387
|
+
498536548,
|
|
11388
|
+
1789927666,
|
|
11389
|
+
4089016648,
|
|
11390
|
+
2227061214,
|
|
11391
|
+
450548861,
|
|
11392
|
+
1843258603,
|
|
11393
|
+
4107580753,
|
|
11394
|
+
2211677639,
|
|
11395
|
+
325883990,
|
|
11396
|
+
1684777152,
|
|
11397
|
+
4251122042,
|
|
11398
|
+
2321926636,
|
|
11399
|
+
335633487,
|
|
11400
|
+
1661365465,
|
|
11401
|
+
4195302755,
|
|
11402
|
+
2366115317,
|
|
11403
|
+
997073096,
|
|
11404
|
+
1281953886,
|
|
11405
|
+
3579855332,
|
|
11406
|
+
2724688242,
|
|
11407
|
+
1006888145,
|
|
11408
|
+
1258607687,
|
|
11409
|
+
3524101629,
|
|
11410
|
+
2768942443,
|
|
11411
|
+
901097722,
|
|
11412
|
+
1119000684,
|
|
11413
|
+
3686517206,
|
|
11414
|
+
2898065728,
|
|
11415
|
+
853044451,
|
|
11416
|
+
1172266101,
|
|
11417
|
+
3705015759,
|
|
11418
|
+
2882616665,
|
|
11419
|
+
651767980,
|
|
11420
|
+
1373503546,
|
|
11421
|
+
3369554304,
|
|
11422
|
+
3218104598,
|
|
11423
|
+
565507253,
|
|
11424
|
+
1454621731,
|
|
11425
|
+
3485111705,
|
|
11426
|
+
3099436303,
|
|
11427
|
+
671266974,
|
|
11428
|
+
1594198024,
|
|
11429
|
+
3322730930,
|
|
11430
|
+
2970347812,
|
|
11431
|
+
795835527,
|
|
11432
|
+
1483230225,
|
|
11433
|
+
3244367275,
|
|
11434
|
+
3060149565,
|
|
11435
|
+
1994146192,
|
|
11436
|
+
31158534,
|
|
11437
|
+
2563907772,
|
|
11438
|
+
4023717930,
|
|
11439
|
+
1907459465,
|
|
11440
|
+
112637215,
|
|
11441
|
+
2680153253,
|
|
11442
|
+
3904427059,
|
|
11443
|
+
2013776290,
|
|
11444
|
+
251722036,
|
|
11445
|
+
2517215374,
|
|
11446
|
+
3775830040,
|
|
11447
|
+
2137656763,
|
|
11448
|
+
141376813,
|
|
11449
|
+
2439277719,
|
|
11450
|
+
3865271297,
|
|
11451
|
+
1802195444,
|
|
11452
|
+
476864866,
|
|
11453
|
+
2238001368,
|
|
11454
|
+
4066508878,
|
|
11455
|
+
1812370925,
|
|
11456
|
+
453092731,
|
|
11457
|
+
2181625025,
|
|
11458
|
+
4111451223,
|
|
11459
|
+
1706088902,
|
|
11460
|
+
314042704,
|
|
11461
|
+
2344532202,
|
|
11462
|
+
4240017532,
|
|
11463
|
+
1658658271,
|
|
11464
|
+
366619977,
|
|
11465
|
+
2362670323,
|
|
11466
|
+
4224994405,
|
|
11467
|
+
1303535960,
|
|
11468
|
+
984961486,
|
|
11469
|
+
2747007092,
|
|
11470
|
+
3569037538,
|
|
11471
|
+
1256170817,
|
|
11472
|
+
1037604311,
|
|
11473
|
+
2765210733,
|
|
11474
|
+
3554079995,
|
|
11475
|
+
1131014506,
|
|
11476
|
+
879679996,
|
|
11477
|
+
2909243462,
|
|
11478
|
+
3663771856,
|
|
11479
|
+
1141124467,
|
|
11480
|
+
855842277,
|
|
11481
|
+
2852801631,
|
|
11482
|
+
3708648649,
|
|
11483
|
+
1342533948,
|
|
11484
|
+
654459306,
|
|
11485
|
+
3188396048,
|
|
11486
|
+
3373015174,
|
|
11487
|
+
1466479909,
|
|
11488
|
+
544179635,
|
|
11489
|
+
3110523913,
|
|
11490
|
+
3462522015,
|
|
11491
|
+
1591671054,
|
|
11492
|
+
702138776,
|
|
11493
|
+
2966460450,
|
|
11494
|
+
3352799412,
|
|
11495
|
+
1504918807,
|
|
11496
|
+
783551873,
|
|
11497
|
+
3082640443,
|
|
11498
|
+
3233442989,
|
|
11499
|
+
3988292384,
|
|
11500
|
+
2596254646,
|
|
11501
|
+
62317068,
|
|
11502
|
+
1957810842,
|
|
11503
|
+
3939845945,
|
|
11504
|
+
2647816111,
|
|
11505
|
+
81470997,
|
|
11506
|
+
1943803523,
|
|
11507
|
+
3814918930,
|
|
11508
|
+
2489596804,
|
|
11509
|
+
225274430,
|
|
11510
|
+
2053790376,
|
|
11511
|
+
3826175755,
|
|
11512
|
+
2466906013,
|
|
11513
|
+
167816743,
|
|
11514
|
+
2097651377,
|
|
11515
|
+
4027552580,
|
|
11516
|
+
2265490386,
|
|
11517
|
+
503444072,
|
|
11518
|
+
1762050814,
|
|
11519
|
+
4150417245,
|
|
11520
|
+
2154129355,
|
|
11521
|
+
426522225,
|
|
11522
|
+
1852507879,
|
|
11523
|
+
4275313526,
|
|
11524
|
+
2312317920,
|
|
11525
|
+
282753626,
|
|
11526
|
+
1742555852,
|
|
11527
|
+
4189708143,
|
|
11528
|
+
2394877945,
|
|
11529
|
+
397917763,
|
|
11530
|
+
1622183637,
|
|
11531
|
+
3604390888,
|
|
11532
|
+
2714866558,
|
|
11533
|
+
953729732,
|
|
11534
|
+
1340076626,
|
|
11535
|
+
3518719985,
|
|
11536
|
+
2797360999,
|
|
11537
|
+
1068828381,
|
|
11538
|
+
1219638859,
|
|
11539
|
+
3624741850,
|
|
11540
|
+
2936675148,
|
|
11541
|
+
906185462,
|
|
11542
|
+
1090812512,
|
|
11543
|
+
3747672003,
|
|
11544
|
+
2825379669,
|
|
11545
|
+
829329135,
|
|
11546
|
+
1181335161,
|
|
11547
|
+
3412177804,
|
|
11548
|
+
3160834842,
|
|
11549
|
+
628085408,
|
|
11550
|
+
1382605366,
|
|
11551
|
+
3423369109,
|
|
11552
|
+
3138078467,
|
|
11553
|
+
570562233,
|
|
11554
|
+
1426400815,
|
|
11555
|
+
3317316542,
|
|
11556
|
+
2998733608,
|
|
11557
|
+
733239954,
|
|
11558
|
+
1555261956,
|
|
11559
|
+
3268935591,
|
|
11560
|
+
3050360625,
|
|
11561
|
+
752459403,
|
|
11562
|
+
1541320221,
|
|
11563
|
+
2607071920,
|
|
11564
|
+
3965973030,
|
|
11565
|
+
1969922972,
|
|
11566
|
+
40735498,
|
|
11567
|
+
2617837225,
|
|
11568
|
+
3943577151,
|
|
11569
|
+
1913087877,
|
|
11570
|
+
83908371,
|
|
11571
|
+
2512341634,
|
|
11572
|
+
3803740692,
|
|
11573
|
+
2075208622,
|
|
11574
|
+
213261112,
|
|
11575
|
+
2463272603,
|
|
11576
|
+
3855990285,
|
|
11577
|
+
2094854071,
|
|
11578
|
+
198958881,
|
|
11579
|
+
2262029012,
|
|
11580
|
+
4057260610,
|
|
11581
|
+
1759359992,
|
|
11582
|
+
534414190,
|
|
11583
|
+
2176718541,
|
|
11584
|
+
4139329115,
|
|
11585
|
+
1873836001,
|
|
11586
|
+
414664567,
|
|
11587
|
+
2282248934,
|
|
11588
|
+
4279200368,
|
|
11589
|
+
1711684554,
|
|
11590
|
+
285281116,
|
|
11591
|
+
2405801727,
|
|
11592
|
+
4167216745,
|
|
11593
|
+
1634467795,
|
|
11594
|
+
376229701,
|
|
11595
|
+
2685067896,
|
|
11596
|
+
3608007406,
|
|
11597
|
+
1308918612,
|
|
11598
|
+
956543938,
|
|
11599
|
+
2808555105,
|
|
11600
|
+
3495958263,
|
|
11601
|
+
1231636301,
|
|
11602
|
+
1047427035,
|
|
11603
|
+
2932959818,
|
|
11604
|
+
3654703836,
|
|
11605
|
+
1088359270,
|
|
11606
|
+
936918e3,
|
|
11607
|
+
2847714899,
|
|
11608
|
+
3736837829,
|
|
11609
|
+
1202900863,
|
|
11610
|
+
817233897,
|
|
11611
|
+
3183342108,
|
|
11612
|
+
3401237130,
|
|
11613
|
+
1404277552,
|
|
11614
|
+
615818150,
|
|
11615
|
+
3134207493,
|
|
11616
|
+
3453421203,
|
|
11617
|
+
1423857449,
|
|
11618
|
+
601450431,
|
|
11619
|
+
3009837614,
|
|
11620
|
+
3294710456,
|
|
11621
|
+
1567103746,
|
|
11622
|
+
711928724,
|
|
11623
|
+
3020668471,
|
|
11624
|
+
3272380065,
|
|
11625
|
+
1510334235,
|
|
11626
|
+
755167117
|
|
11627
|
+
]);
|
|
11628
|
+
function ensureBuffer(input) {
|
|
11629
|
+
if (Buffer2.isBuffer(input)) {
|
|
11630
|
+
return input;
|
|
11631
|
+
}
|
|
11632
|
+
if (typeof input === "number") {
|
|
11633
|
+
return Buffer2.alloc(input);
|
|
11634
|
+
} else if (typeof input === "string") {
|
|
11635
|
+
return Buffer2.from(input);
|
|
11636
|
+
} else {
|
|
11637
|
+
throw new Error("input must be buffer, number, or string, received " + typeof input);
|
|
11638
|
+
}
|
|
11639
|
+
}
|
|
11640
|
+
function bufferizeInt(num) {
|
|
11641
|
+
const tmp = ensureBuffer(4);
|
|
11642
|
+
tmp.writeInt32BE(num, 0);
|
|
11643
|
+
return tmp;
|
|
11644
|
+
}
|
|
11645
|
+
function _crc32(buf, previous) {
|
|
11646
|
+
buf = ensureBuffer(buf);
|
|
11647
|
+
if (Buffer2.isBuffer(previous)) {
|
|
11648
|
+
previous = previous.readUInt32BE(0);
|
|
11649
|
+
}
|
|
11650
|
+
let crc = ~~previous ^ -1;
|
|
11651
|
+
for (var n = 0; n < buf.length; n++) {
|
|
11652
|
+
crc = CRC_TABLE[(crc ^ buf[n]) & 255] ^ crc >>> 8;
|
|
11653
|
+
}
|
|
11654
|
+
return crc ^ -1;
|
|
11655
|
+
}
|
|
11656
|
+
function crc32() {
|
|
11657
|
+
return bufferizeInt(_crc32.apply(null, arguments));
|
|
11658
|
+
}
|
|
11659
|
+
crc32.signed = function() {
|
|
11660
|
+
return _crc32.apply(null, arguments);
|
|
11661
|
+
};
|
|
11662
|
+
crc32.unsigned = function() {
|
|
11663
|
+
return _crc32.apply(null, arguments) >>> 0;
|
|
11664
|
+
};
|
|
11665
|
+
var bufferCrc32 = crc32;
|
|
11666
|
+
const index$2 = /* @__PURE__ */ getDefaultExportFromCjs(bufferCrc32);
|
|
11367
11667
|
function callOrGet(value, context = null, ...props) {
|
|
11368
11668
|
if (typeof value === "function") {
|
|
11369
11669
|
if (context) return value.bind(context)(...props);
|
|
@@ -15045,18 +15345,6 @@ const DEFAULT_CUSTOM_XML = {
|
|
|
15045
15345
|
}
|
|
15046
15346
|
]
|
|
15047
15347
|
};
|
|
15048
|
-
const SETTINGS_CUSTOM_XML = {
|
|
15049
|
-
elements: [
|
|
15050
|
-
{
|
|
15051
|
-
type: "element",
|
|
15052
|
-
name: "w:settings",
|
|
15053
|
-
attributes: {
|
|
15054
|
-
"xmlns:w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main"
|
|
15055
|
-
},
|
|
15056
|
-
elements: []
|
|
15057
|
-
}
|
|
15058
|
-
]
|
|
15059
|
-
};
|
|
15060
15348
|
const COMMENT_REF = {
|
|
15061
15349
|
type: "element",
|
|
15062
15350
|
name: "w:r",
|
|
@@ -17393,15 +17681,15 @@ function canSplit(doc2, pos, depth = 1, typesAfter) {
|
|
|
17393
17681
|
if (base2 < 0 || $pos.parent.type.spec.isolating || !$pos.parent.canReplace($pos.index(), $pos.parent.childCount) || !innerType.type.validContent($pos.parent.content.cutByIndex($pos.index(), $pos.parent.childCount)))
|
|
17394
17682
|
return false;
|
|
17395
17683
|
for (let d2 = $pos.depth - 1, i = depth - 2; d2 > base2; d2--, i--) {
|
|
17396
|
-
let node = $pos.node(d2),
|
|
17684
|
+
let node = $pos.node(d2), index3 = $pos.index(d2);
|
|
17397
17685
|
if (node.type.spec.isolating)
|
|
17398
17686
|
return false;
|
|
17399
|
-
let rest = node.content.cutByIndex(
|
|
17687
|
+
let rest = node.content.cutByIndex(index3, node.childCount);
|
|
17400
17688
|
let overrideChild = typesAfter && typesAfter[i + 1];
|
|
17401
17689
|
if (overrideChild)
|
|
17402
17690
|
rest = rest.replaceChild(0, overrideChild.type.create(overrideChild.attrs));
|
|
17403
17691
|
let after = typesAfter && typesAfter[i] || node;
|
|
17404
|
-
if (!node.canReplace(
|
|
17692
|
+
if (!node.canReplace(index3 + 1, node.childCount) || !after.type.validContent(rest))
|
|
17405
17693
|
return false;
|
|
17406
17694
|
}
|
|
17407
17695
|
let index2 = $pos.indexAfter(base2);
|
|
@@ -30140,7 +30428,7 @@ function requireHe() {
|
|
|
30140
30428
|
return he$2.exports;
|
|
30141
30429
|
}
|
|
30142
30430
|
var heExports = requireHe();
|
|
30143
|
-
const he = /* @__PURE__ */ getDefaultExportFromCjs$
|
|
30431
|
+
const he = /* @__PURE__ */ getDefaultExportFromCjs$2(heExports);
|
|
30144
30432
|
function translateFieldAnnotation(params2) {
|
|
30145
30433
|
const { node, isFinalDoc, fieldsHighlightColor } = params2;
|
|
30146
30434
|
const { attrs = {} } = node;
|
|
@@ -33305,7 +33593,7 @@ const createDocumentJson = (docx, converter, editor) => {
|
|
|
33305
33593
|
fileType: filePath.split(".").pop()
|
|
33306
33594
|
};
|
|
33307
33595
|
});
|
|
33308
|
-
converter.telemetry.trackFileStructure(
|
|
33596
|
+
const trackStructure = (documentIdentifier = null) => converter.telemetry.trackFileStructure(
|
|
33309
33597
|
{
|
|
33310
33598
|
totalFiles: files.length,
|
|
33311
33599
|
maxDepth: Math.max(...files.map((f) => f.fileDepth)),
|
|
@@ -33313,9 +33601,20 @@ const createDocumentJson = (docx, converter, editor) => {
|
|
|
33313
33601
|
files
|
|
33314
33602
|
},
|
|
33315
33603
|
converter.fileSource,
|
|
33316
|
-
converter.documentId,
|
|
33604
|
+
converter.documentGuid ?? converter.documentId ?? null,
|
|
33605
|
+
documentIdentifier ?? converter.documentId ?? null,
|
|
33317
33606
|
converter.documentInternalId
|
|
33318
33607
|
);
|
|
33608
|
+
try {
|
|
33609
|
+
const identifierResult = converter.getDocumentIdentifier?.();
|
|
33610
|
+
if (identifierResult && typeof identifierResult.then === "function") {
|
|
33611
|
+
identifierResult.then(trackStructure).catch(() => trackStructure());
|
|
33612
|
+
} else {
|
|
33613
|
+
trackStructure(identifierResult);
|
|
33614
|
+
}
|
|
33615
|
+
} catch (error) {
|
|
33616
|
+
trackStructure();
|
|
33617
|
+
}
|
|
33319
33618
|
}
|
|
33320
33619
|
const nodeListHandler = defaultNodeListHandler();
|
|
33321
33620
|
const bodyNode = json.elements[0].elements.find((el) => el.name === "w:body");
|
|
@@ -33866,6 +34165,9 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
33866
34165
|
this.documentInternalId = null;
|
|
33867
34166
|
this.fileSource = params2?.fileSource || null;
|
|
33868
34167
|
this.documentId = params2?.documentId || null;
|
|
34168
|
+
this.documentGuid = null;
|
|
34169
|
+
this.documentHash = null;
|
|
34170
|
+
this.documentModified = false;
|
|
33869
34171
|
if (this.docx.length || this.xml) this.parseFromXml();
|
|
33870
34172
|
}
|
|
33871
34173
|
static getFontTableEntry(docx, fontName) {
|
|
@@ -33913,50 +34215,177 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
33913
34215
|
this.initialJSON = this.convertedXml["word/document.xml"];
|
|
33914
34216
|
if (!this.initialJSON) this.initialJSON = this.parseXmlToJson(this.xml);
|
|
33915
34217
|
this.declaration = this.initialJSON?.declaration;
|
|
34218
|
+
this.resolveDocumentGuid();
|
|
33916
34219
|
}
|
|
33917
34220
|
parseXmlToJson(xml) {
|
|
33918
34221
|
const newXml = xml.replace(/(<w:t xml:space="preserve">)(\s+)(<\/w:t>)/g, "$1[[sdspace]]$2[[sdspace]]$3");
|
|
33919
34222
|
return JSON.parse(xmljs.xml2json(newXml, null, 2));
|
|
33920
34223
|
}
|
|
33921
|
-
|
|
34224
|
+
/**
|
|
34225
|
+
* Generic method to get a stored custom property from docx
|
|
34226
|
+
* @static
|
|
34227
|
+
* @param {Array} docx - Array of docx file objects
|
|
34228
|
+
* @param {string} propertyName - Name of the property to retrieve
|
|
34229
|
+
* @returns {string|null} The property value or null if not found
|
|
34230
|
+
*/
|
|
34231
|
+
static getStoredCustomProperty(docx, propertyName) {
|
|
33922
34232
|
try {
|
|
33923
34233
|
const customXml = docx.find((doc2) => doc2.name === "docProps/custom.xml");
|
|
33924
|
-
if (!customXml) return;
|
|
34234
|
+
if (!customXml) return null;
|
|
33925
34235
|
const converter = new _SuperConverter2();
|
|
33926
34236
|
const content = customXml.content;
|
|
33927
34237
|
const contentJson = converter.parseXmlToJson(content);
|
|
33928
34238
|
const properties = contentJson.elements.find((el) => el.name === "Properties");
|
|
33929
|
-
if (!properties.elements) return;
|
|
33930
|
-
const
|
|
33931
|
-
|
|
33932
|
-
|
|
33933
|
-
if (!superdocVersion) return;
|
|
33934
|
-
const version2 = superdocVersion.elements[0].elements[0].text;
|
|
33935
|
-
return version2;
|
|
34239
|
+
if (!properties.elements) return null;
|
|
34240
|
+
const property2 = properties.elements.find((el) => el.name === "property" && el.attributes.name === propertyName);
|
|
34241
|
+
if (!property2) return null;
|
|
34242
|
+
return property2.elements[0].elements[0].text;
|
|
33936
34243
|
} catch (e) {
|
|
33937
|
-
console.warn(
|
|
33938
|
-
return;
|
|
34244
|
+
console.warn(`Error getting custom property ${propertyName}:`, e);
|
|
34245
|
+
return null;
|
|
33939
34246
|
}
|
|
33940
34247
|
}
|
|
33941
|
-
|
|
34248
|
+
/**
|
|
34249
|
+
* Generic method to set a stored custom property in docx
|
|
34250
|
+
* @static
|
|
34251
|
+
* @param {Object} docx - The docx object to store the property in
|
|
34252
|
+
* @param {string} propertyName - Name of the property
|
|
34253
|
+
* @param {string|Function} value - Value or function that returns the value
|
|
34254
|
+
* @param {boolean} preserveExisting - If true, won't overwrite existing values
|
|
34255
|
+
* @returns {string} The stored value
|
|
34256
|
+
*/
|
|
34257
|
+
static setStoredCustomProperty(docx, propertyName, value, preserveExisting = false) {
|
|
33942
34258
|
const customLocation = "docProps/custom.xml";
|
|
33943
|
-
if (!docx[customLocation])
|
|
33944
|
-
|
|
33945
|
-
|
|
33946
|
-
|
|
33947
|
-
if (!customXml) return;
|
|
33948
|
-
const properties = customXml.elements.find((el) => el.name === "Properties");
|
|
34259
|
+
if (!docx[customLocation]) docx[customLocation] = generateCustomXml();
|
|
34260
|
+
const customXml = docx[customLocation];
|
|
34261
|
+
const properties = customXml.elements?.find((el) => el.name === "Properties");
|
|
34262
|
+
if (!properties) return null;
|
|
33949
34263
|
if (!properties.elements) properties.elements = [];
|
|
33950
|
-
|
|
33951
|
-
|
|
33952
|
-
|
|
33953
|
-
|
|
33954
|
-
|
|
33955
|
-
|
|
34264
|
+
let property2 = properties.elements.find((el) => el.name === "property" && el.attributes.name === propertyName);
|
|
34265
|
+
if (property2 && preserveExisting) {
|
|
34266
|
+
return property2.elements[0].elements[0].text;
|
|
34267
|
+
}
|
|
34268
|
+
const finalValue = typeof value === "function" ? value() : value;
|
|
34269
|
+
if (!property2) {
|
|
34270
|
+
const existingPids = properties.elements.filter((el) => el.attributes?.pid).map((el) => parseInt(el.attributes.pid, 10)).filter(Number.isInteger);
|
|
34271
|
+
const pid = existingPids.length > 0 ? Math.max(...existingPids) + 1 : 2;
|
|
34272
|
+
property2 = {
|
|
34273
|
+
type: "element",
|
|
34274
|
+
name: "property",
|
|
34275
|
+
attributes: {
|
|
34276
|
+
name: propertyName,
|
|
34277
|
+
fmtid: "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}",
|
|
34278
|
+
pid
|
|
34279
|
+
},
|
|
34280
|
+
elements: [
|
|
34281
|
+
{
|
|
34282
|
+
type: "element",
|
|
34283
|
+
name: "vt:lpwstr",
|
|
34284
|
+
elements: [
|
|
34285
|
+
{
|
|
34286
|
+
type: "text",
|
|
34287
|
+
text: finalValue
|
|
34288
|
+
}
|
|
34289
|
+
]
|
|
34290
|
+
}
|
|
34291
|
+
]
|
|
34292
|
+
};
|
|
34293
|
+
properties.elements.push(property2);
|
|
33956
34294
|
} else {
|
|
33957
|
-
|
|
34295
|
+
property2.elements[0].elements[0].text = finalValue;
|
|
33958
34296
|
}
|
|
33959
|
-
return
|
|
34297
|
+
return finalValue;
|
|
34298
|
+
}
|
|
34299
|
+
static getStoredSuperdocVersion(docx) {
|
|
34300
|
+
return _SuperConverter2.getStoredCustomProperty(docx, "SuperdocVersion");
|
|
34301
|
+
}
|
|
34302
|
+
static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "0.22.0") {
|
|
34303
|
+
return _SuperConverter2.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
|
|
34304
|
+
}
|
|
34305
|
+
/**
|
|
34306
|
+
* Get document GUID from docx files (static method)
|
|
34307
|
+
* @static
|
|
34308
|
+
* @param {Array} docx - Array of docx file objects
|
|
34309
|
+
* @returns {string|null} The document GUID
|
|
34310
|
+
*/
|
|
34311
|
+
static extractDocumentGuid(docx) {
|
|
34312
|
+
try {
|
|
34313
|
+
const settingsXml = docx.find((doc2) => doc2.name === "word/settings.xml");
|
|
34314
|
+
if (!settingsXml) return null;
|
|
34315
|
+
const converter = new _SuperConverter2();
|
|
34316
|
+
const settingsJson = converter.parseXmlToJson(settingsXml.content);
|
|
34317
|
+
const settings = settingsJson.elements?.[0];
|
|
34318
|
+
if (!settings) return null;
|
|
34319
|
+
const docIdElement = settings.elements?.find((el) => el.name === "w15:docId");
|
|
34320
|
+
if (docIdElement?.attributes?.["w15:val"]) {
|
|
34321
|
+
return docIdElement.attributes["w15:val"].replace(/[{}]/g, "");
|
|
34322
|
+
}
|
|
34323
|
+
} catch {
|
|
34324
|
+
}
|
|
34325
|
+
return _SuperConverter2.getStoredCustomProperty(docx, "DocumentGuid");
|
|
34326
|
+
}
|
|
34327
|
+
/**
|
|
34328
|
+
* Get the permanent document GUID
|
|
34329
|
+
* @returns {string|null} The document GUID (only for modified documents)
|
|
34330
|
+
*/
|
|
34331
|
+
getDocumentGuid() {
|
|
34332
|
+
return this.documentGuid;
|
|
34333
|
+
}
|
|
34334
|
+
/**
|
|
34335
|
+
* Get the SuperDoc version for this converter instance
|
|
34336
|
+
* @returns {string|null} The SuperDoc version or null if not available
|
|
34337
|
+
*/
|
|
34338
|
+
getSuperdocVersion() {
|
|
34339
|
+
if (this.docx) {
|
|
34340
|
+
return _SuperConverter2.getStoredSuperdocVersion(this.docx);
|
|
34341
|
+
}
|
|
34342
|
+
return null;
|
|
34343
|
+
}
|
|
34344
|
+
/**
|
|
34345
|
+
* Resolve existing document GUID (synchronous)
|
|
34346
|
+
*/
|
|
34347
|
+
resolveDocumentGuid() {
|
|
34348
|
+
const microsoftGuid = this.getMicrosoftDocId();
|
|
34349
|
+
if (microsoftGuid) {
|
|
34350
|
+
this.documentGuid = microsoftGuid;
|
|
34351
|
+
return;
|
|
34352
|
+
}
|
|
34353
|
+
const customGuid = _SuperConverter2.getStoredCustomProperty(this.docx, "DocumentGuid");
|
|
34354
|
+
if (customGuid) {
|
|
34355
|
+
this.documentGuid = customGuid;
|
|
34356
|
+
}
|
|
34357
|
+
}
|
|
34358
|
+
/**
|
|
34359
|
+
* Get Microsoft's docId from settings.xml (READ ONLY)
|
|
34360
|
+
*/
|
|
34361
|
+
getMicrosoftDocId() {
|
|
34362
|
+
this.getDocumentInternalId();
|
|
34363
|
+
if (this.documentInternalId) {
|
|
34364
|
+
return this.documentInternalId.replace(/[{}]/g, "");
|
|
34365
|
+
}
|
|
34366
|
+
return null;
|
|
34367
|
+
}
|
|
34368
|
+
/**
|
|
34369
|
+
* Get document identifier (GUID or hash) - async for lazy hash generation
|
|
34370
|
+
*/
|
|
34371
|
+
async getDocumentIdentifier() {
|
|
34372
|
+
if (this.documentGuid) {
|
|
34373
|
+
return this.documentGuid;
|
|
34374
|
+
}
|
|
34375
|
+
if (!this.documentHash && this.fileSource) {
|
|
34376
|
+
this.documentHash = await __privateMethod$2(this, _SuperConverter_instances, generateDocumentHash_fn).call(this);
|
|
34377
|
+
}
|
|
34378
|
+
return this.documentHash;
|
|
34379
|
+
}
|
|
34380
|
+
/**
|
|
34381
|
+
* Promote from hash to GUID on first edit
|
|
34382
|
+
*/
|
|
34383
|
+
promoteToGuid() {
|
|
34384
|
+
if (this.documentGuid) return this.documentGuid;
|
|
34385
|
+
this.documentGuid = this.getMicrosoftDocId() || v4();
|
|
34386
|
+
this.documentModified = true;
|
|
34387
|
+
this.documentHash = null;
|
|
34388
|
+
return this.documentGuid;
|
|
33960
34389
|
}
|
|
33961
34390
|
getDocumentDefaultStyles() {
|
|
33962
34391
|
const styles = this.convertedXml["word/styles.xml"];
|
|
@@ -34045,20 +34474,14 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
34045
34474
|
getDocumentInternalId() {
|
|
34046
34475
|
const settingsLocation = "word/settings.xml";
|
|
34047
34476
|
if (!this.convertedXml[settingsLocation]) {
|
|
34048
|
-
|
|
34477
|
+
return;
|
|
34049
34478
|
}
|
|
34050
|
-
const settings =
|
|
34051
|
-
if (!settings.elements[0]?.elements?.length) {
|
|
34052
|
-
const idElement = this.createDocumentIdElement(settings);
|
|
34053
|
-
settings.elements[0].elements = [idElement];
|
|
34054
|
-
if (!settings.elements[0].attributes["xmlns:w15"]) {
|
|
34055
|
-
settings.elements[0].attributes["xmlns:w15"] = "http://schemas.microsoft.com/office/word/2012/wordml";
|
|
34056
|
-
}
|
|
34057
|
-
this.convertedXml[settingsLocation] = settings;
|
|
34479
|
+
const settings = this.convertedXml[settingsLocation];
|
|
34480
|
+
if (!settings.elements?.[0]?.elements?.length) {
|
|
34058
34481
|
return;
|
|
34059
34482
|
}
|
|
34060
34483
|
const w15DocId = settings.elements[0].elements.find((el) => el.name === "w15:docId");
|
|
34061
|
-
this.documentInternalId = w15DocId?.attributes["w15:val"];
|
|
34484
|
+
this.documentInternalId = w15DocId?.attributes?.["w15:val"];
|
|
34062
34485
|
}
|
|
34063
34486
|
createDocumentIdElement() {
|
|
34064
34487
|
const docId = v4().toUpperCase();
|
|
@@ -34147,7 +34570,13 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
34147
34570
|
this.convertedXml = { ...this.convertedXml, ...updatedXml };
|
|
34148
34571
|
const headFootRels = __privateMethod$2(this, _SuperConverter_instances, exportProcessHeadersFooters_fn).call(this, { isFinalDoc });
|
|
34149
34572
|
__privateMethod$2(this, _SuperConverter_instances, exportProcessNewRelationships_fn).call(this, [...params2.relationships, ...commentsRels, ...headFootRels]);
|
|
34150
|
-
|
|
34573
|
+
_SuperConverter2.setStoredSuperdocVersion(this.convertedXml);
|
|
34574
|
+
if (this.documentModified || this.documentGuid) {
|
|
34575
|
+
if (!this.documentGuid) {
|
|
34576
|
+
this.documentGuid = this.getMicrosoftDocId() || v4();
|
|
34577
|
+
}
|
|
34578
|
+
_SuperConverter2.setStoredCustomProperty(this.convertedXml, "DocumentGuid", this.documentGuid, true);
|
|
34579
|
+
}
|
|
34151
34580
|
__privateMethod$2(this, _SuperConverter_instances, exportNumberingFile_fn).call(this, params2);
|
|
34152
34581
|
return xml;
|
|
34153
34582
|
}
|
|
@@ -34182,8 +34611,38 @@ const _SuperConverter = class _SuperConverter2 {
|
|
|
34182
34611
|
});
|
|
34183
34612
|
return { result, params: params2 };
|
|
34184
34613
|
}
|
|
34614
|
+
// Deprecated methods for backward compatibility
|
|
34615
|
+
static getStoredSuperdocId(docx) {
|
|
34616
|
+
console.warn("getStoredSuperdocId is deprecated, use getDocumentGuid instead");
|
|
34617
|
+
return _SuperConverter2.extractDocumentGuid(docx);
|
|
34618
|
+
}
|
|
34619
|
+
static updateDocumentVersion(docx, version2) {
|
|
34620
|
+
console.warn("updateDocumentVersion is deprecated, use setStoredSuperdocVersion instead");
|
|
34621
|
+
return _SuperConverter2.setStoredSuperdocVersion(docx, version2);
|
|
34622
|
+
}
|
|
34185
34623
|
};
|
|
34186
34624
|
_SuperConverter_instances = /* @__PURE__ */ new WeakSet();
|
|
34625
|
+
generateDocumentHash_fn = async function() {
|
|
34626
|
+
if (!this.fileSource) return `HASH-${Date.now()}`;
|
|
34627
|
+
try {
|
|
34628
|
+
let buffer2;
|
|
34629
|
+
if (Buffer2.isBuffer(this.fileSource)) {
|
|
34630
|
+
buffer2 = this.fileSource;
|
|
34631
|
+
} else if (this.fileSource instanceof ArrayBuffer) {
|
|
34632
|
+
buffer2 = Buffer2.from(this.fileSource);
|
|
34633
|
+
} else if (this.fileSource instanceof Blob || this.fileSource instanceof File) {
|
|
34634
|
+
const arrayBuffer = await this.fileSource.arrayBuffer();
|
|
34635
|
+
buffer2 = Buffer2.from(arrayBuffer);
|
|
34636
|
+
} else {
|
|
34637
|
+
return `HASH-${Date.now()}`;
|
|
34638
|
+
}
|
|
34639
|
+
const hash2 = index$2(buffer2);
|
|
34640
|
+
return `HASH-${hash2.toString("hex").toUpperCase()}`;
|
|
34641
|
+
} catch (e) {
|
|
34642
|
+
console.warn("Could not generate document hash:", e);
|
|
34643
|
+
return `HASH-${Date.now()}`;
|
|
34644
|
+
}
|
|
34645
|
+
};
|
|
34187
34646
|
exportNumberingFile_fn = function() {
|
|
34188
34647
|
const numberingPath = "word/numbering.xml";
|
|
34189
34648
|
let numberingXml = this.convertedXml[numberingPath];
|
|
@@ -34404,52 +34863,9 @@ __publicField$2(_SuperConverter, "propertyTypes", Object.freeze({
|
|
|
34404
34863
|
}));
|
|
34405
34864
|
__publicField$2(_SuperConverter, "elements", /* @__PURE__ */ new Set(["w:document", "w:body", "w:p", "w:r", "w:t", "w:delText"]));
|
|
34406
34865
|
let SuperConverter = _SuperConverter;
|
|
34407
|
-
function storeSuperdocVersion(docx) {
|
|
34408
|
-
const customLocation = "docProps/custom.xml";
|
|
34409
|
-
if (!docx[customLocation]) docx[customLocation] = generateCustomXml();
|
|
34410
|
-
const customXml = docx[customLocation];
|
|
34411
|
-
const properties = customXml.elements.find((el) => el.name === "Properties");
|
|
34412
|
-
if (!properties.elements) properties.elements = [];
|
|
34413
|
-
const elements = properties.elements;
|
|
34414
|
-
const cleanProperties = elements.filter((prop) => typeof prop === "object" && prop !== null).filter((prop) => {
|
|
34415
|
-
const { attributes } = prop;
|
|
34416
|
-
return attributes.name !== "SuperdocVersion";
|
|
34417
|
-
});
|
|
34418
|
-
let pid = 2;
|
|
34419
|
-
try {
|
|
34420
|
-
pid = cleanProperties.length ? Math.max(...elements.map((el) => el.attributes.pid)) + 1 : 2;
|
|
34421
|
-
} catch {
|
|
34422
|
-
}
|
|
34423
|
-
cleanProperties.push(generateSuperdocVersion(pid));
|
|
34424
|
-
properties.elements = cleanProperties;
|
|
34425
|
-
return docx;
|
|
34426
|
-
}
|
|
34427
34866
|
function generateCustomXml() {
|
|
34428
34867
|
return DEFAULT_CUSTOM_XML;
|
|
34429
34868
|
}
|
|
34430
|
-
function generateSuperdocVersion(pid = 2, version2 = "0.22.0") {
|
|
34431
|
-
return {
|
|
34432
|
-
type: "element",
|
|
34433
|
-
name: "property",
|
|
34434
|
-
attributes: {
|
|
34435
|
-
name: "SuperdocVersion",
|
|
34436
|
-
fmtid: "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}",
|
|
34437
|
-
pid
|
|
34438
|
-
},
|
|
34439
|
-
elements: [
|
|
34440
|
-
{
|
|
34441
|
-
type: "element",
|
|
34442
|
-
name: "vt:lpwstr",
|
|
34443
|
-
elements: [
|
|
34444
|
-
{
|
|
34445
|
-
type: "text",
|
|
34446
|
-
text: version2
|
|
34447
|
-
}
|
|
34448
|
-
]
|
|
34449
|
-
}
|
|
34450
|
-
]
|
|
34451
|
-
};
|
|
34452
|
-
}
|
|
34453
34869
|
function commonjsRequire(path) {
|
|
34454
34870
|
throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
|
|
34455
34871
|
}
|
|
@@ -36765,7 +37181,7 @@ function requireJszip_min() {
|
|
|
36765
37181
|
return jszip_min.exports;
|
|
36766
37182
|
}
|
|
36767
37183
|
var jszip_minExports = requireJszip_min();
|
|
36768
|
-
const JSZip = /* @__PURE__ */ getDefaultExportFromCjs$
|
|
37184
|
+
const JSZip = /* @__PURE__ */ getDefaultExportFromCjs$2(jszip_minExports);
|
|
36769
37185
|
const isXmlLike = (name) => /\.xml$|\.rels$/i.test(name);
|
|
36770
37186
|
function sniffEncoding(u8) {
|
|
36771
37187
|
if (u8.length >= 2) {
|
|
@@ -51525,19 +51941,34 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
51525
51941
|
* @returns {string} Document version
|
|
51526
51942
|
*/
|
|
51527
51943
|
static getDocumentVersion(doc2) {
|
|
51528
|
-
|
|
51529
|
-
return version2;
|
|
51944
|
+
return SuperConverter.getStoredSuperdocVersion(doc2);
|
|
51530
51945
|
}
|
|
51531
51946
|
/**
|
|
51532
|
-
*
|
|
51947
|
+
* Set the document version
|
|
51533
51948
|
* @static
|
|
51534
51949
|
* @param {Object} doc - Document object
|
|
51535
51950
|
* @param {string} version - New version
|
|
51536
|
-
* @returns {
|
|
51951
|
+
* @returns {string} The set version
|
|
51952
|
+
*/
|
|
51953
|
+
static setDocumentVersion(doc2, version2) {
|
|
51954
|
+
return SuperConverter.setStoredSuperdocVersion(doc2, version2);
|
|
51955
|
+
}
|
|
51956
|
+
/**
|
|
51957
|
+
* Get the document GUID
|
|
51958
|
+
* @static
|
|
51959
|
+
* @param {Object} doc - Document object
|
|
51960
|
+
* @returns {string|null} Document GUID
|
|
51961
|
+
*/
|
|
51962
|
+
static getDocumentGuid(doc2) {
|
|
51963
|
+
return SuperConverter.extractDocumentGuid(doc2);
|
|
51964
|
+
}
|
|
51965
|
+
// Deprecated
|
|
51966
|
+
/**
|
|
51967
|
+
* @deprecated use setDocumentVersion instead
|
|
51537
51968
|
*/
|
|
51538
51969
|
static updateDocumentVersion(doc2, version2) {
|
|
51539
|
-
|
|
51540
|
-
return
|
|
51970
|
+
console.warn("updateDocumentVersion is deprecated, use setDocumentVersion instead");
|
|
51971
|
+
return _Editor2.setDocumentVersion(doc2, version2);
|
|
51541
51972
|
}
|
|
51542
51973
|
/**
|
|
51543
51974
|
* Creates all node views.
|
|
@@ -51673,6 +52104,43 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
51673
52104
|
}
|
|
51674
52105
|
window.addEventListener("resize", () => handleResize);
|
|
51675
52106
|
}
|
|
52107
|
+
/**
|
|
52108
|
+
* Get document identifier for telemetry (async - may generate hash)
|
|
52109
|
+
* @returns {Promise<string>} GUID for modified docs, hash for unmodified
|
|
52110
|
+
*/
|
|
52111
|
+
async getDocumentIdentifier() {
|
|
52112
|
+
return await this.converter?.getDocumentIdentifier() || null;
|
|
52113
|
+
}
|
|
52114
|
+
/**
|
|
52115
|
+
* Get permanent document GUID (sync - only for modified documents)
|
|
52116
|
+
* @returns {string|null} GUID or null if document hasn't been modified
|
|
52117
|
+
*/
|
|
52118
|
+
getDocumentGuid() {
|
|
52119
|
+
return this.converter?.documentGuid || null;
|
|
52120
|
+
}
|
|
52121
|
+
/**
|
|
52122
|
+
* Check if document has been modified
|
|
52123
|
+
* @returns {boolean}
|
|
52124
|
+
*/
|
|
52125
|
+
isDocumentModified() {
|
|
52126
|
+
return this.converter?.documentModified || false;
|
|
52127
|
+
}
|
|
52128
|
+
/**
|
|
52129
|
+
* Get telemetry data (async because of lazy hash generation)
|
|
52130
|
+
*/
|
|
52131
|
+
async getTelemetryData() {
|
|
52132
|
+
return {
|
|
52133
|
+
documentId: await this.getDocumentIdentifier(),
|
|
52134
|
+
isModified: this.isDocumentModified(),
|
|
52135
|
+
isPermanentId: !!this.converter?.documentGuid,
|
|
52136
|
+
version: this.converter?.getSuperdocVersion()
|
|
52137
|
+
};
|
|
52138
|
+
}
|
|
52139
|
+
// Deprecated for backward compatibility
|
|
52140
|
+
getDocumentId() {
|
|
52141
|
+
console.warn("getDocumentId is deprecated, use getDocumentGuid instead");
|
|
52142
|
+
return this.getDocumentGuid();
|
|
52143
|
+
}
|
|
51676
52144
|
/**
|
|
51677
52145
|
* Get attrs of the currently selected node or mark.
|
|
51678
52146
|
* @param {String} nameOrType
|
|
@@ -51704,6 +52172,21 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
51704
52172
|
getJSON() {
|
|
51705
52173
|
return this.state.doc.toJSON();
|
|
51706
52174
|
}
|
|
52175
|
+
/**
|
|
52176
|
+
* Get document metadata including GUID, modification status, and version
|
|
52177
|
+
* @returns {{
|
|
52178
|
+
* documentGuid: string | null,
|
|
52179
|
+
* isModified: boolean,
|
|
52180
|
+
* version: string | null
|
|
52181
|
+
* }} Document metadata
|
|
52182
|
+
*/
|
|
52183
|
+
getMetadata() {
|
|
52184
|
+
return {
|
|
52185
|
+
documentGuid: this.converter?.documentGuid || null,
|
|
52186
|
+
isModified: this.isDocumentModified(),
|
|
52187
|
+
version: this.converter?.getSuperdocVersion() || null
|
|
52188
|
+
};
|
|
52189
|
+
}
|
|
51707
52190
|
/**
|
|
51708
52191
|
* Get the editor content as HTML
|
|
51709
52192
|
* @param {Object} options - Options for the HTML serializer
|
|
@@ -51721,6 +52204,13 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
51721
52204
|
}
|
|
51722
52205
|
return html;
|
|
51723
52206
|
}
|
|
52207
|
+
/**
|
|
52208
|
+
* Get the document version from the converter
|
|
52209
|
+
* @returns {string|null} The SuperDoc version stored in the document
|
|
52210
|
+
*/
|
|
52211
|
+
getDocumentVersion() {
|
|
52212
|
+
return this.converter?.getSuperdocVersion() || null;
|
|
52213
|
+
}
|
|
51724
52214
|
/**
|
|
51725
52215
|
* Create a child editor linked to this editor.
|
|
51726
52216
|
* This is useful for creating header/footer editors that are linked to the main editor.
|
|
@@ -51803,7 +52293,8 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
51803
52293
|
if (exportXmlOnly || exportJsonOnly) return documentXml;
|
|
51804
52294
|
const customXml = this.converter.schemaToXml(this.converter.convertedXml["docProps/custom.xml"].elements[0]);
|
|
51805
52295
|
const styles = this.converter.schemaToXml(this.converter.convertedXml["word/styles.xml"].elements[0]);
|
|
51806
|
-
const
|
|
52296
|
+
const hasCustomSettings = !!this.converter.convertedXml["word/settings.xml"]?.elements?.length;
|
|
52297
|
+
const customSettings = hasCustomSettings ? this.converter.schemaToXml(this.converter.convertedXml["word/settings.xml"]?.elements?.[0]) : null;
|
|
51807
52298
|
const rels = this.converter.schemaToXml(this.converter.convertedXml["word/_rels/document.xml.rels"].elements[0]);
|
|
51808
52299
|
const media = this.converter.addedMedia;
|
|
51809
52300
|
const updatedHeadersFooters = {};
|
|
@@ -51819,13 +52310,15 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
|
|
|
51819
52310
|
...this.options.customUpdatedFiles,
|
|
51820
52311
|
"word/document.xml": String(documentXml),
|
|
51821
52312
|
"docProps/custom.xml": String(customXml),
|
|
51822
|
-
"word/settings.xml": String(customSettings),
|
|
51823
52313
|
"word/_rels/document.xml.rels": String(rels),
|
|
51824
52314
|
"word/numbering.xml": String(numbering),
|
|
51825
52315
|
// Replace & with & in styles.xml as DOCX viewers can't handle it
|
|
51826
52316
|
"word/styles.xml": String(styles).replace(/&/gi, "&"),
|
|
51827
52317
|
...updatedHeadersFooters
|
|
51828
52318
|
};
|
|
52319
|
+
if (hasCustomSettings) {
|
|
52320
|
+
updatedDocs["word/settings.xml"] = String(customSettings);
|
|
52321
|
+
}
|
|
51829
52322
|
if (comments.length) {
|
|
51830
52323
|
const commentsXml = this.converter.schemaToXml(this.converter.convertedXml["word/comments.xml"].elements[0]);
|
|
51831
52324
|
const commentsExtendedXml = this.converter.schemaToXml(
|
|
@@ -52445,6 +52938,13 @@ dispatchTransaction_fn = function(transaction) {
|
|
|
52445
52938
|
if (!transaction.docChanged) {
|
|
52446
52939
|
return;
|
|
52447
52940
|
}
|
|
52941
|
+
if (transaction.docChanged && this.converter) {
|
|
52942
|
+
if (!this.converter.documentGuid) {
|
|
52943
|
+
this.converter.promoteToGuid();
|
|
52944
|
+
console.debug("Document modified - assigned GUID:", this.converter.documentGuid);
|
|
52945
|
+
}
|
|
52946
|
+
this.converter.documentModified = true;
|
|
52947
|
+
}
|
|
52448
52948
|
this.emit("update", {
|
|
52449
52949
|
editor: this,
|
|
52450
52950
|
transaction
|
|
@@ -82078,7 +82578,7 @@ function requireEventemitter3() {
|
|
|
82078
82578
|
return eventemitter3.exports;
|
|
82079
82579
|
}
|
|
82080
82580
|
var eventemitter3Exports = requireEventemitter3();
|
|
82081
|
-
const EventEmitter2 = /* @__PURE__ */ getDefaultExportFromCjs$
|
|
82581
|
+
const EventEmitter2 = /* @__PURE__ */ getDefaultExportFromCjs$2(eventemitter3Exports);
|
|
82082
82582
|
const useToolbarItem = (options) => {
|
|
82083
82583
|
const types2 = ["button", "options", "separator", "dropdown", "overflow"];
|
|
82084
82584
|
if (!types2.includes(options.type)) {
|