@rowsncolumns/toolkit 24.4.3 → 24.4.5
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/cjs/excel-parser/interface.d.ts +5 -1
- package/dist/cjs/excel-parser/interface.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/base/index.d.ts +2 -0
- package/dist/cjs/excel-parser/plugins/base/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/base/index.js +3 -0
- package/dist/cjs/excel-parser/plugins/xls/index.d.ts +55 -9
- package/dist/cjs/excel-parser/plugins/xls/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xls/index.js +487 -24
- package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsb/index.js +12 -5
- package/dist/cjs/excel-parser/plugins/xlsx/chartex.d.ts +37 -0
- package/dist/cjs/excel-parser/plugins/xlsx/chartex.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/chartex.js +244 -0
- package/dist/cjs/excel-parser/plugins/xlsx/form-controls.d.ts +70 -0
- package/dist/cjs/excel-parser/plugins/xlsx/form-controls.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/form-controls.js +295 -0
- package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts +9 -1
- package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/index.js +251 -104
- package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts +15 -1
- package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/styles.js +90 -4
- package/dist/cjs/excel-parser/registry.d.ts +7 -0
- package/dist/cjs/excel-parser/registry.d.ts.map +1 -1
- package/dist/cjs/excel-parser/registry.js +28 -1
- package/dist/cjs/excel-parser/types.d.ts +10 -1
- package/dist/cjs/excel-parser/types.d.ts.map +1 -1
- package/dist/cjs/excel-parser/workbook.d.ts +2 -0
- package/dist/cjs/excel-parser/workbook.d.ts.map +1 -1
- package/dist/cjs/excel-parser/workbook.js +20 -14
- package/dist/cjs/excel-parser/worker.js +128 -130
- package/dist/cjs/exporter/xlsx/chart-builder.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/chart-builder.js +5 -33
- package/dist/cjs/exporter/xlsx/chartex-builder.d.ts +36 -0
- package/dist/cjs/exporter/xlsx/chartex-builder.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/chartex-builder.js +109 -0
- package/dist/cjs/exporter/xlsx/form-controls-builder.d.ts +61 -0
- package/dist/cjs/exporter/xlsx/form-controls-builder.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/form-controls-builder.js +197 -0
- package/dist/cjs/exporter/xlsx/xlsx-export.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/xlsx-export.js +431 -193
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/excel-parser/interface.d.ts +5 -1
- package/dist/esm/excel-parser/interface.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/base/index.d.ts +2 -0
- package/dist/esm/excel-parser/plugins/base/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/base/index.js +3 -0
- package/dist/esm/excel-parser/plugins/xls/index.d.ts +55 -9
- package/dist/esm/excel-parser/plugins/xls/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xls/index.js +429 -23
- package/dist/esm/excel-parser/plugins/xlsb/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsb/index.js +10 -3
- package/dist/esm/excel-parser/plugins/xlsx/chartex.d.ts +37 -0
- package/dist/esm/excel-parser/plugins/xlsx/chartex.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/chartex.js +199 -0
- package/dist/esm/excel-parser/plugins/xlsx/form-controls.d.ts +70 -0
- package/dist/esm/excel-parser/plugins/xlsx/form-controls.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/form-controls.js +246 -0
- package/dist/esm/excel-parser/plugins/xlsx/index.d.ts +9 -1
- package/dist/esm/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/index.js +92 -6
- package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts +15 -1
- package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/styles.js +80 -0
- package/dist/esm/excel-parser/registry.d.ts +7 -0
- package/dist/esm/excel-parser/registry.d.ts.map +1 -1
- package/dist/esm/excel-parser/registry.js +18 -1
- package/dist/esm/excel-parser/types.d.ts +10 -1
- package/dist/esm/excel-parser/types.d.ts.map +1 -1
- package/dist/esm/excel-parser/workbook.d.ts +2 -0
- package/dist/esm/excel-parser/workbook.d.ts.map +1 -1
- package/dist/esm/excel-parser/workbook.js +16 -10
- package/dist/esm/excel-parser/worker.js +10 -18
- package/dist/esm/exporter/xlsx/chart-builder.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/chart-builder.js +0 -28
- package/dist/esm/exporter/xlsx/chartex-builder.d.ts +36 -0
- package/dist/esm/exporter/xlsx/chartex-builder.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/chartex-builder.js +97 -0
- package/dist/esm/exporter/xlsx/form-controls-builder.d.ts +61 -0
- package/dist/esm/exporter/xlsx/form-controls-builder.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/form-controls-builder.js +173 -0
- package/dist/esm/exporter/xlsx/xlsx-export.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/xlsx-export.js +228 -19
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +5 -3
- package/xlsx.d.ts +14 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __assign, __asyncValues, __awaiter, __generator, __read, __values } from "tslib";
|
|
2
2
|
import { canonicalizeRichSharedString, contentHash } from "@rowsncolumns/utils";
|
|
3
|
-
import { CFBDecryptor, detectCfbContainerKind,
|
|
3
|
+
import { CFBDecryptor, detectCfbContainerKind, } from "./cfb-decryptor";
|
|
4
4
|
import { readExcelFile } from "./helpers";
|
|
5
5
|
import { RequestType, ResponseType } from "./types";
|
|
6
6
|
import { delay } from "./utils";
|
|
@@ -456,32 +456,29 @@ var runLoadSheet = function (s, msg) { return __awaiter(void 0, void 0, void 0,
|
|
|
456
456
|
});
|
|
457
457
|
}); };
|
|
458
458
|
var openSessionWorkbook = function (s, password) { return __awaiter(void 0, void 0, void 0, function () {
|
|
459
|
-
var buffer, _a, decryptedBuffer, decryptError_1, loadError_1;
|
|
460
|
-
return __generator(this, function (
|
|
461
|
-
switch (
|
|
459
|
+
var buffer, _a, _b, decryptedBuffer, decryptError_1, loadError_1;
|
|
460
|
+
return __generator(this, function (_c) {
|
|
461
|
+
switch (_c.label) {
|
|
462
462
|
case 0:
|
|
463
463
|
if (!(s.file instanceof File)) return [3 /*break*/, 1];
|
|
464
464
|
_a = s.file;
|
|
465
465
|
return [3 /*break*/, 3];
|
|
466
466
|
case 1: return [4 /*yield*/, readExcelFile(s.file)];
|
|
467
467
|
case 2:
|
|
468
|
-
_a =
|
|
469
|
-
|
|
468
|
+
_a = _c.sent();
|
|
469
|
+
_c.label = 3;
|
|
470
470
|
case 3:
|
|
471
471
|
buffer = _a;
|
|
472
472
|
return [4 /*yield*/, isCFBFile(buffer)];
|
|
473
473
|
case 4:
|
|
474
|
-
|
|
474
|
+
_b = (_c.sent());
|
|
475
|
+
if (!_b) return [3 /*break*/, 6];
|
|
475
476
|
return [4 /*yield*/, detectCfbContainerKind(buffer)];
|
|
476
477
|
case 5:
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
error: LEGACY_XLS_UNSUPPORTED_MESSAGE,
|
|
482
|
-
});
|
|
483
|
-
return [2 /*return*/];
|
|
484
|
-
}
|
|
478
|
+
_b = (_c.sent()) !== "legacy-xls";
|
|
479
|
+
_c.label = 6;
|
|
480
|
+
case 6:
|
|
481
|
+
if (!_b) return [3 /*break*/, 13];
|
|
485
482
|
if (!password) {
|
|
486
483
|
s.pendingPassword = true;
|
|
487
484
|
self.postMessage({
|
|
@@ -492,15 +489,15 @@ var openSessionWorkbook = function (s, password) { return __awaiter(void 0, void
|
|
|
492
489
|
return [2 /*return*/];
|
|
493
490
|
}
|
|
494
491
|
decryptedBuffer = void 0;
|
|
495
|
-
|
|
496
|
-
case 6:
|
|
497
|
-
_b.trys.push([6, 8, , 9]);
|
|
498
|
-
return [4 /*yield*/, CFBDecryptor.decrypt(buffer, password)];
|
|
492
|
+
_c.label = 7;
|
|
499
493
|
case 7:
|
|
500
|
-
|
|
501
|
-
return [
|
|
494
|
+
_c.trys.push([7, 9, , 10]);
|
|
495
|
+
return [4 /*yield*/, CFBDecryptor.decrypt(buffer, password)];
|
|
502
496
|
case 8:
|
|
503
|
-
|
|
497
|
+
decryptedBuffer = _c.sent();
|
|
498
|
+
return [3 /*break*/, 10];
|
|
499
|
+
case 9:
|
|
500
|
+
decryptError_1 = _c.sent();
|
|
504
501
|
if (decryptError_1 instanceof Error &&
|
|
505
502
|
isIncorrectPasswordError(decryptError_1)) {
|
|
506
503
|
s.pendingPassword = true;
|
|
@@ -512,29 +509,29 @@ var openSessionWorkbook = function (s, password) { return __awaiter(void 0, void
|
|
|
512
509
|
return [2 /*return*/];
|
|
513
510
|
}
|
|
514
511
|
throw decryptError_1;
|
|
515
|
-
case
|
|
512
|
+
case 10:
|
|
516
513
|
resetSharedStringHashState();
|
|
517
514
|
s.sentSharedStringIds.clear();
|
|
518
515
|
return [4 /*yield*/, s.workbook.load(decryptedBuffer, s.fileName)];
|
|
519
|
-
case
|
|
520
|
-
|
|
516
|
+
case 11:
|
|
517
|
+
_c.sent();
|
|
521
518
|
s.pendingPassword = false;
|
|
522
519
|
return [4 /*yield*/, postOpenWorkbookComplete(s)];
|
|
523
|
-
case 11:
|
|
524
|
-
_b.sent();
|
|
525
|
-
return [2 /*return*/];
|
|
526
520
|
case 12:
|
|
521
|
+
_c.sent();
|
|
522
|
+
return [2 /*return*/];
|
|
523
|
+
case 13:
|
|
527
524
|
resetSharedStringHashState();
|
|
528
525
|
s.sentSharedStringIds.clear();
|
|
529
|
-
|
|
530
|
-
case 13:
|
|
531
|
-
_b.trys.push([13, 15, , 16]);
|
|
532
|
-
return [4 /*yield*/, s.workbook.load(buffer, s.fileName, password)];
|
|
526
|
+
_c.label = 14;
|
|
533
527
|
case 14:
|
|
534
|
-
|
|
535
|
-
return [
|
|
528
|
+
_c.trys.push([14, 16, , 17]);
|
|
529
|
+
return [4 /*yield*/, s.workbook.load(buffer, s.fileName, password)];
|
|
536
530
|
case 15:
|
|
537
|
-
|
|
531
|
+
_c.sent();
|
|
532
|
+
return [3 /*break*/, 17];
|
|
533
|
+
case 16:
|
|
534
|
+
loadError_1 = _c.sent();
|
|
538
535
|
if (loadError_1 instanceof Error) {
|
|
539
536
|
if (loadError_1.message === "PASSWORD_REQUIRED" ||
|
|
540
537
|
(password && isIncorrectPasswordError(loadError_1))) {
|
|
@@ -558,27 +555,27 @@ var openSessionWorkbook = function (s, password) { return __awaiter(void 0, void
|
|
|
558
555
|
}
|
|
559
556
|
}
|
|
560
557
|
throw loadError_1;
|
|
561
|
-
case
|
|
558
|
+
case 17:
|
|
562
559
|
s.pendingPassword = false;
|
|
563
560
|
return [4 /*yield*/, postOpenWorkbookComplete(s)];
|
|
564
|
-
case
|
|
565
|
-
|
|
561
|
+
case 18:
|
|
562
|
+
_c.sent();
|
|
566
563
|
return [2 /*return*/];
|
|
567
564
|
}
|
|
568
565
|
});
|
|
569
566
|
}); };
|
|
570
567
|
// Handle messages from the main thread
|
|
571
568
|
self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, function () {
|
|
572
|
-
var requestType, _a, generation, newSession, error_2, msg_1, s_1, s, s, buffer, _b, loadError_2,
|
|
573
|
-
var
|
|
574
|
-
var
|
|
575
|
-
return __generator(this, function (
|
|
576
|
-
switch (
|
|
569
|
+
var requestType, _a, generation, newSession, error_2, msg_1, s_1, s, s, buffer, _b, _c, loadError_2, _d, sheets, tables, err_1, enableBackpressure, lastSharedStringsLength, postProgress, _e, _f, _g, result, sharedStringsChunk, currentSharedStrings, e_7_1, drawings, charts, slicers, pivotTables, e_8, externalLinks, commentThreads, conditionalFormatting, dataValidations, s, password_1, error_3, password, buffer, _h, isCFB, decryptedBuffer, decryptError_2, loadError_3, _j, sheets, tables, err_2, error_4;
|
|
570
|
+
var _k, e_7, _l, _m;
|
|
571
|
+
var _o, _p, _q, _r;
|
|
572
|
+
return __generator(this, function (_s) {
|
|
573
|
+
switch (_s.label) {
|
|
577
574
|
case 0:
|
|
578
575
|
requestType = e.data.requestType;
|
|
579
|
-
|
|
576
|
+
_s.label = 1;
|
|
580
577
|
case 1:
|
|
581
|
-
|
|
578
|
+
_s.trys.push([1, 79, , 80]);
|
|
582
579
|
// Guard against undefined requestType
|
|
583
580
|
if (!requestType) {
|
|
584
581
|
console.error("Received message with undefined requestType:", e.data);
|
|
@@ -622,15 +619,15 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
622
619
|
queue: Promise.resolve(),
|
|
623
620
|
};
|
|
624
621
|
session = newSession;
|
|
625
|
-
|
|
622
|
+
_s.label = 3;
|
|
626
623
|
case 3:
|
|
627
|
-
|
|
624
|
+
_s.trys.push([3, 5, , 6]);
|
|
628
625
|
return [4 /*yield*/, openSessionWorkbook(newSession)];
|
|
629
626
|
case 4:
|
|
630
|
-
|
|
627
|
+
_s.sent();
|
|
631
628
|
return [3 /*break*/, 6];
|
|
632
629
|
case 5:
|
|
633
|
-
error_2 =
|
|
630
|
+
error_2 = _s.sent();
|
|
634
631
|
console.trace(error_2);
|
|
635
632
|
self.postMessage({
|
|
636
633
|
responseType: ResponseType.ERROR,
|
|
@@ -652,7 +649,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
652
649
|
s_1.queue = s_1.queue.then(function () { return runLoadSheet(s_1, msg_1); });
|
|
653
650
|
return [3 /*break*/, 78];
|
|
654
651
|
}
|
|
655
|
-
|
|
652
|
+
_s.label = 8;
|
|
656
653
|
case 8:
|
|
657
654
|
{
|
|
658
655
|
s = session;
|
|
@@ -663,7 +660,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
663
660
|
releaseRowAckForRequest(e.data.requestId);
|
|
664
661
|
return [3 /*break*/, 78];
|
|
665
662
|
}
|
|
666
|
-
|
|
663
|
+
_s.label = 9;
|
|
667
664
|
case 9:
|
|
668
665
|
{
|
|
669
666
|
s = session;
|
|
@@ -673,7 +670,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
673
670
|
disposeSession(s);
|
|
674
671
|
return [3 /*break*/, 78];
|
|
675
672
|
}
|
|
676
|
-
|
|
673
|
+
_s.label = 10;
|
|
677
674
|
case 10:
|
|
678
675
|
currentFile = e.data.file;
|
|
679
676
|
currentMinRowCount = e.data.minRowCount;
|
|
@@ -683,41 +680,40 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
683
680
|
return [3 /*break*/, 13];
|
|
684
681
|
case 11: return [4 /*yield*/, readExcelFile(e.data.file)];
|
|
685
682
|
case 12:
|
|
686
|
-
_b =
|
|
687
|
-
|
|
683
|
+
_b = _s.sent();
|
|
684
|
+
_s.label = 13;
|
|
688
685
|
case 13:
|
|
689
686
|
buffer = _b;
|
|
690
687
|
currentFileName =
|
|
691
688
|
e.data.file instanceof File ? e.data.file.name : "unknown.xlsx";
|
|
692
689
|
return [4 /*yield*/, isCFBFile(buffer)];
|
|
693
690
|
case 14:
|
|
694
|
-
|
|
691
|
+
_c = (_s.sent());
|
|
692
|
+
if (!_c) return [3 /*break*/, 16];
|
|
695
693
|
return [4 /*yield*/, detectCfbContainerKind(buffer)];
|
|
696
694
|
case 15:
|
|
697
|
-
|
|
695
|
+
_c = (_s.sent()) !== "legacy-xls";
|
|
696
|
+
_s.label = 16;
|
|
697
|
+
case 16:
|
|
698
|
+
// Check if file uses Office encryption (CFB format)
|
|
699
|
+
if (_c) {
|
|
698
700
|
self.postMessage({
|
|
699
|
-
responseType: ResponseType.
|
|
700
|
-
|
|
701
|
+
responseType: ResponseType.PASSWORD_REQUIRED,
|
|
702
|
+
message: "This file uses Office encryption and requires a password.",
|
|
701
703
|
});
|
|
702
704
|
return [2 /*return*/];
|
|
703
705
|
}
|
|
704
|
-
self.postMessage({
|
|
705
|
-
responseType: ResponseType.PASSWORD_REQUIRED,
|
|
706
|
-
message: "This file uses Office encryption and requires a password.",
|
|
707
|
-
});
|
|
708
|
-
return [2 /*return*/];
|
|
709
|
-
case 16:
|
|
710
706
|
// Load workbook (fresh state — clear stale hash mappings from prior import)
|
|
711
707
|
resetSharedStringHashState();
|
|
712
|
-
|
|
708
|
+
_s.label = 17;
|
|
713
709
|
case 17:
|
|
714
|
-
|
|
710
|
+
_s.trys.push([17, 19, , 20]);
|
|
715
711
|
return [4 /*yield*/, workbook.load(buffer, currentFileName)];
|
|
716
712
|
case 18:
|
|
717
|
-
|
|
713
|
+
_s.sent();
|
|
718
714
|
return [3 /*break*/, 20];
|
|
719
715
|
case 19:
|
|
720
|
-
loadError_2 =
|
|
716
|
+
loadError_2 = _s.sent();
|
|
721
717
|
if (loadError_2 instanceof Error &&
|
|
722
718
|
loadError_2.message === "PASSWORD_REQUIRED") {
|
|
723
719
|
self.postMessage({
|
|
@@ -747,17 +743,18 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
747
743
|
self.postMessage({
|
|
748
744
|
responseType: ResponseType.GET_THEME_SUCCESS,
|
|
749
745
|
theme: workbook.getTheme(),
|
|
746
|
+
namedCellStyles: workbook.getNamedCellStyles(),
|
|
750
747
|
});
|
|
751
|
-
|
|
748
|
+
_s.label = 21;
|
|
752
749
|
case 21:
|
|
753
|
-
|
|
750
|
+
_s.trys.push([21, 23, , 24]);
|
|
754
751
|
self.postMessage({
|
|
755
752
|
responseType: ResponseType.BEGIN_GET_SHEETS,
|
|
756
753
|
totalSheets: workbook.getSheetCount(),
|
|
757
754
|
});
|
|
758
755
|
return [4 /*yield*/, workbook.getSheets(e.data.minRowCount, e.data.minColumnCount)];
|
|
759
756
|
case 22:
|
|
760
|
-
|
|
757
|
+
_d = __read.apply(void 0, [_s.sent(), 2]), sheets = _d[0], tables = _d[1];
|
|
761
758
|
self.postMessage({
|
|
762
759
|
responseType: ResponseType.GET_SHEETS_SUCCESS,
|
|
763
760
|
sheets: sheets,
|
|
@@ -784,13 +781,13 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
784
781
|
});
|
|
785
782
|
return [3 /*break*/, 24];
|
|
786
783
|
case 23:
|
|
787
|
-
err_1 =
|
|
784
|
+
err_1 = _s.sent();
|
|
788
785
|
console.error(err_1);
|
|
789
786
|
return [3 /*break*/, 24];
|
|
790
787
|
case 24: return [3 /*break*/, 78];
|
|
791
788
|
case 25:
|
|
792
|
-
enableBackpressure = (
|
|
793
|
-
lastSharedStringsLength = (
|
|
789
|
+
enableBackpressure = (_o = e.data.enableBackpressure) !== null && _o !== void 0 ? _o : false;
|
|
790
|
+
lastSharedStringsLength = (_q = (_p = workbook.sharedStrings) === null || _p === void 0 ? void 0 : _p.length) !== null && _q !== void 0 ? _q : 0;
|
|
794
791
|
// Make sure hash ids exist for any strings loaded before this request
|
|
795
792
|
// (e.g. XLSX populates the full SST upfront).
|
|
796
793
|
ensureSharedStringHashIds(workbook.sharedStrings, workbook.richSharedStringRuns);
|
|
@@ -801,20 +798,20 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
801
798
|
sheetTitle: sheetTitle,
|
|
802
799
|
});
|
|
803
800
|
};
|
|
804
|
-
|
|
801
|
+
_s.label = 26;
|
|
805
802
|
case 26:
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
case 27: return [4 /*yield*/,
|
|
803
|
+
_s.trys.push([26, 34, 35, 40]);
|
|
804
|
+
_e = true, _f = __asyncValues(workbook.processSheetData(e.data.pageSize, e.data.enableCellXfsRegistry, e.data.enableSharedStrings, postProgress));
|
|
805
|
+
_s.label = 27;
|
|
806
|
+
case 27: return [4 /*yield*/, _f.next()];
|
|
810
807
|
case 28:
|
|
811
|
-
if (!(
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
result =
|
|
808
|
+
if (!(_g = _s.sent(), _k = _g.done, !_k)) return [3 /*break*/, 33];
|
|
809
|
+
_m = _g.value;
|
|
810
|
+
_e = false;
|
|
811
|
+
result = _m;
|
|
815
812
|
sharedStringsChunk = void 0;
|
|
816
813
|
if (e.data.enableSharedStrings) {
|
|
817
|
-
currentSharedStrings = (
|
|
814
|
+
currentSharedStrings = (_r = workbook.sharedStrings) !== null && _r !== void 0 ? _r : [];
|
|
818
815
|
if (currentSharedStrings.length > lastSharedStringsLength) {
|
|
819
816
|
sharedStringsChunk = buildSstSlice(currentSharedStrings, lastSharedStringsLength, workbook.richSharedStringRuns);
|
|
820
817
|
lastSharedStringsLength = currentSharedStrings.length;
|
|
@@ -834,27 +831,27 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
834
831
|
chunkIndex: result.chunkIndex,
|
|
835
832
|
})];
|
|
836
833
|
case 29:
|
|
837
|
-
|
|
838
|
-
|
|
834
|
+
_s.sent();
|
|
835
|
+
_s.label = 30;
|
|
839
836
|
case 30: return [4 /*yield*/, delay()];
|
|
840
837
|
case 31:
|
|
841
|
-
|
|
842
|
-
|
|
838
|
+
_s.sent();
|
|
839
|
+
_s.label = 32;
|
|
843
840
|
case 32:
|
|
844
|
-
|
|
841
|
+
_e = true;
|
|
845
842
|
return [3 /*break*/, 27];
|
|
846
843
|
case 33: return [3 /*break*/, 40];
|
|
847
844
|
case 34:
|
|
848
|
-
e_7_1 =
|
|
845
|
+
e_7_1 = _s.sent();
|
|
849
846
|
e_7 = { error: e_7_1 };
|
|
850
847
|
return [3 /*break*/, 40];
|
|
851
848
|
case 35:
|
|
852
|
-
|
|
853
|
-
if (!(!
|
|
854
|
-
return [4 /*yield*/,
|
|
849
|
+
_s.trys.push([35, , 38, 39]);
|
|
850
|
+
if (!(!_e && !_k && (_l = _f.return))) return [3 /*break*/, 37];
|
|
851
|
+
return [4 /*yield*/, _l.call(_f)];
|
|
855
852
|
case 36:
|
|
856
|
-
|
|
857
|
-
|
|
853
|
+
_s.sent();
|
|
854
|
+
_s.label = 37;
|
|
858
855
|
case 37: return [3 /*break*/, 39];
|
|
859
856
|
case 38:
|
|
860
857
|
if (e_7) throw e_7.error;
|
|
@@ -878,7 +875,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
878
875
|
postProgress("drawings");
|
|
879
876
|
return [4 /*yield*/, workbook.getDrawings()];
|
|
880
877
|
case 41:
|
|
881
|
-
drawings =
|
|
878
|
+
drawings = _s.sent();
|
|
882
879
|
self.postMessage({
|
|
883
880
|
responseType: ResponseType.GET_DRAWINGS_SUCCESS,
|
|
884
881
|
drawings: drawings,
|
|
@@ -887,33 +884,33 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
887
884
|
postProgress("charts");
|
|
888
885
|
return [4 /*yield*/, workbook.getCharts()];
|
|
889
886
|
case 42:
|
|
890
|
-
charts =
|
|
887
|
+
charts = _s.sent();
|
|
891
888
|
self.postMessage({
|
|
892
889
|
responseType: ResponseType.GET_CHARTS_SUCCESS,
|
|
893
890
|
charts: charts,
|
|
894
891
|
});
|
|
895
892
|
return [4 /*yield*/, workbook.getSlicers()];
|
|
896
893
|
case 43:
|
|
897
|
-
slicers =
|
|
894
|
+
slicers = _s.sent();
|
|
898
895
|
self.postMessage({
|
|
899
896
|
responseType: ResponseType.GET_SLICERS_SUCCESS,
|
|
900
897
|
slicers: slicers,
|
|
901
898
|
});
|
|
902
899
|
// Pivot tables (Phase D1 — import path)
|
|
903
900
|
postProgress("pivot-tables");
|
|
904
|
-
|
|
901
|
+
_s.label = 44;
|
|
905
902
|
case 44:
|
|
906
|
-
|
|
903
|
+
_s.trys.push([44, 46, , 47]);
|
|
907
904
|
return [4 /*yield*/, workbook.getPivotTables()];
|
|
908
905
|
case 45:
|
|
909
|
-
pivotTables =
|
|
906
|
+
pivotTables = _s.sent();
|
|
910
907
|
self.postMessage({
|
|
911
908
|
responseType: ResponseType.GET_PIVOT_TABLES_SUCCESS,
|
|
912
909
|
pivotTables: pivotTables,
|
|
913
910
|
});
|
|
914
911
|
return [3 /*break*/, 47];
|
|
915
912
|
case 46:
|
|
916
|
-
e_8 =
|
|
913
|
+
e_8 = _s.sent();
|
|
917
914
|
// Pivot parsing is best-effort — never block the rest of
|
|
918
915
|
// the import on a single malformed pivot. Worker emits an
|
|
919
916
|
// empty list so the host can clear any stale pivots.
|
|
@@ -926,7 +923,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
926
923
|
return [3 /*break*/, 47];
|
|
927
924
|
case 47: return [4 /*yield*/, workbook.getExternalLinks()];
|
|
928
925
|
case 48:
|
|
929
|
-
externalLinks =
|
|
926
|
+
externalLinks = _s.sent();
|
|
930
927
|
self.postMessage({
|
|
931
928
|
responseType: ResponseType.GET_EXTERNAL_LINKS_SUCCESS,
|
|
932
929
|
externalLinks: externalLinks,
|
|
@@ -936,7 +933,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
936
933
|
postProgress("comment-threads");
|
|
937
934
|
return [4 /*yield*/, workbook.getCommentThreads()];
|
|
938
935
|
case 49:
|
|
939
|
-
commentThreads =
|
|
936
|
+
commentThreads = _s.sent();
|
|
940
937
|
self.postMessage({
|
|
941
938
|
responseType: ResponseType.GET_COMMENT_THREADS_SUCCESS,
|
|
942
939
|
commentThreads: commentThreads,
|
|
@@ -947,7 +944,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
947
944
|
});
|
|
948
945
|
return [4 /*yield*/, workbook.getConditionalFormatting()];
|
|
949
946
|
case 50:
|
|
950
|
-
conditionalFormatting =
|
|
947
|
+
conditionalFormatting = _s.sent();
|
|
951
948
|
self.postMessage({
|
|
952
949
|
responseType: ResponseType.GET_CONDITIONAL_FORMATTING_SUCCESS,
|
|
953
950
|
conditionalFormatting: conditionalFormatting,
|
|
@@ -958,7 +955,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
958
955
|
});
|
|
959
956
|
return [4 /*yield*/, workbook.getDataValidations()];
|
|
960
957
|
case 51:
|
|
961
|
-
dataValidations =
|
|
958
|
+
dataValidations = _s.sent();
|
|
962
959
|
// data validations ranges
|
|
963
960
|
self.postMessage({
|
|
964
961
|
responseType: ResponseType.GET_DATAVALIDATION_SUCCESS,
|
|
@@ -982,15 +979,15 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
982
979
|
});
|
|
983
980
|
return [2 /*return*/];
|
|
984
981
|
}
|
|
985
|
-
|
|
982
|
+
_s.label = 53;
|
|
986
983
|
case 53:
|
|
987
|
-
|
|
984
|
+
_s.trys.push([53, 55, , 56]);
|
|
988
985
|
return [4 /*yield*/, openSessionWorkbook(s, password_1)];
|
|
989
986
|
case 54:
|
|
990
|
-
|
|
987
|
+
_s.sent();
|
|
991
988
|
return [3 /*break*/, 56];
|
|
992
989
|
case 55:
|
|
993
|
-
error_3 =
|
|
990
|
+
error_3 = _s.sent();
|
|
994
991
|
console.trace(error_3);
|
|
995
992
|
self.postMessage({
|
|
996
993
|
responseType: ResponseType.ERROR,
|
|
@@ -1017,37 +1014,37 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
1017
1014
|
return [2 /*return*/];
|
|
1018
1015
|
}
|
|
1019
1016
|
if (!(currentFile instanceof File)) return [3 /*break*/, 58];
|
|
1020
|
-
|
|
1017
|
+
_h = currentFile;
|
|
1021
1018
|
return [3 /*break*/, 60];
|
|
1022
1019
|
case 58: return [4 /*yield*/, readExcelFile(currentFile)];
|
|
1023
1020
|
case 59:
|
|
1024
|
-
|
|
1025
|
-
|
|
1021
|
+
_h = _s.sent();
|
|
1022
|
+
_s.label = 60;
|
|
1026
1023
|
case 60:
|
|
1027
|
-
buffer =
|
|
1024
|
+
buffer = _h;
|
|
1028
1025
|
return [4 /*yield*/, isCFBFile(buffer)];
|
|
1029
1026
|
case 61:
|
|
1030
|
-
isCFB =
|
|
1027
|
+
isCFB = _s.sent();
|
|
1031
1028
|
// Fresh hash state for this load attempt.
|
|
1032
1029
|
resetSharedStringHashState();
|
|
1033
|
-
|
|
1030
|
+
_s.label = 62;
|
|
1034
1031
|
case 62:
|
|
1035
|
-
|
|
1032
|
+
_s.trys.push([62, 71, , 72]);
|
|
1036
1033
|
if (!isCFB) return [3 /*break*/, 68];
|
|
1037
|
-
|
|
1034
|
+
_s.label = 63;
|
|
1038
1035
|
case 63:
|
|
1039
|
-
|
|
1036
|
+
_s.trys.push([63, 66, , 67]);
|
|
1040
1037
|
return [4 /*yield*/, CFBDecryptor.decrypt(buffer, password)];
|
|
1041
1038
|
case 64:
|
|
1042
|
-
decryptedBuffer =
|
|
1039
|
+
decryptedBuffer = _s.sent();
|
|
1043
1040
|
// Load the decrypted file (no password needed now)
|
|
1044
1041
|
return [4 /*yield*/, workbook.load(decryptedBuffer, currentFileName)];
|
|
1045
1042
|
case 65:
|
|
1046
1043
|
// Load the decrypted file (no password needed now)
|
|
1047
|
-
|
|
1044
|
+
_s.sent();
|
|
1048
1045
|
return [3 /*break*/, 67];
|
|
1049
1046
|
case 66:
|
|
1050
|
-
decryptError_2 =
|
|
1047
|
+
decryptError_2 = _s.sent();
|
|
1051
1048
|
console.error("CFB decryption error:", decryptError_2);
|
|
1052
1049
|
if (decryptError_2 instanceof Error && isIncorrectPasswordError(decryptError_2)) {
|
|
1053
1050
|
self.postMessage({
|
|
@@ -1067,11 +1064,11 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
1067
1064
|
return [4 /*yield*/, workbook.load(buffer, currentFileName, password)];
|
|
1068
1065
|
case 69:
|
|
1069
1066
|
// ZIP-encrypted file - pass password to workbook
|
|
1070
|
-
|
|
1071
|
-
|
|
1067
|
+
_s.sent();
|
|
1068
|
+
_s.label = 70;
|
|
1072
1069
|
case 70: return [3 /*break*/, 72];
|
|
1073
1070
|
case 71:
|
|
1074
|
-
loadError_3 =
|
|
1071
|
+
loadError_3 = _s.sent();
|
|
1075
1072
|
if (loadError_3 instanceof Error && isIncorrectPasswordError(loadError_3)) {
|
|
1076
1073
|
self.postMessage({
|
|
1077
1074
|
responseType: ResponseType.PASSWORD_REQUIRED,
|
|
@@ -1097,17 +1094,18 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
1097
1094
|
self.postMessage({
|
|
1098
1095
|
responseType: ResponseType.GET_THEME_SUCCESS,
|
|
1099
1096
|
theme: workbook.getTheme(),
|
|
1097
|
+
namedCellStyles: workbook.getNamedCellStyles(),
|
|
1100
1098
|
});
|
|
1101
|
-
|
|
1099
|
+
_s.label = 73;
|
|
1102
1100
|
case 73:
|
|
1103
|
-
|
|
1101
|
+
_s.trys.push([73, 75, , 76]);
|
|
1104
1102
|
self.postMessage({
|
|
1105
1103
|
responseType: ResponseType.BEGIN_GET_SHEETS,
|
|
1106
1104
|
totalSheets: workbook.getSheetCount(),
|
|
1107
1105
|
});
|
|
1108
1106
|
return [4 /*yield*/, workbook.getSheets(currentMinRowCount, currentMinColumnCount)];
|
|
1109
1107
|
case 74:
|
|
1110
|
-
|
|
1108
|
+
_j = __read.apply(void 0, [_s.sent(), 2]), sheets = _j[0], tables = _j[1];
|
|
1111
1109
|
self.postMessage({
|
|
1112
1110
|
responseType: ResponseType.GET_SHEETS_SUCCESS,
|
|
1113
1111
|
sheets: sheets,
|
|
@@ -1130,14 +1128,14 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
|
|
|
1130
1128
|
});
|
|
1131
1129
|
return [3 /*break*/, 76];
|
|
1132
1130
|
case 75:
|
|
1133
|
-
err_2 =
|
|
1131
|
+
err_2 = _s.sent();
|
|
1134
1132
|
console.error(err_2);
|
|
1135
1133
|
return [3 /*break*/, 76];
|
|
1136
1134
|
case 76: return [3 /*break*/, 78];
|
|
1137
1135
|
case 77: throw new Error("Unknown action: ".concat(requestType));
|
|
1138
1136
|
case 78: return [3 /*break*/, 80];
|
|
1139
1137
|
case 79:
|
|
1140
|
-
error_4 =
|
|
1138
|
+
error_4 = _s.sent();
|
|
1141
1139
|
console.trace(error_4);
|
|
1142
1140
|
// Send back the error
|
|
1143
1141
|
self.postMessage({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-builder.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/chart-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,aAAa,EAEd,MAAM,2BAA2B,CAAC;AAovCnC,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,EACpB,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KACjC,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"chart-builder.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/chart-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,aAAa,EAEd,MAAM,2BAA2B,CAAC;AAovCnC,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,EACpB,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KACjC,MAAM,GAAG,SA+lBX,CAAC"}
|
|
@@ -1053,7 +1053,7 @@ var buildDoughnutChart = function (domainRef, valueRef, title, subtitle) {
|
|
|
1053
1053
|
};
|
|
1054
1054
|
export var buildChartXml = function (chart, sheetNameById) {
|
|
1055
1055
|
var e_3, _a, e_4, _b, e_5, _c;
|
|
1056
|
-
var _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8
|
|
1056
|
+
var _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8;
|
|
1057
1057
|
var series = (_e = (_d = chart.spec) === null || _d === void 0 ? void 0 : _d.series) !== null && _e !== void 0 ? _e : [];
|
|
1058
1058
|
if (!series.length)
|
|
1059
1059
|
return undefined;
|
|
@@ -1093,7 +1093,7 @@ export var buildChartXml = function (chart, sheetNameById) {
|
|
|
1093
1093
|
try {
|
|
1094
1094
|
// Add chart type containers for each group
|
|
1095
1095
|
for (var groups_1 = __values(groups), groups_1_1 = groups_1.next(); !groups_1_1.done; groups_1_1 = groups_1.next()) {
|
|
1096
|
-
var
|
|
1096
|
+
var _9 = __read(groups_1_1.value, 2), groupType = _9[0], groupSeries = _9[1];
|
|
1097
1097
|
if (groupType === "bar" || groupType === "column") {
|
|
1098
1098
|
var barChartNode = {
|
|
1099
1099
|
"c:barDir": { a$: { val: groupType === "bar" ? "bar" : "col" } },
|
|
@@ -1104,7 +1104,7 @@ export var buildChartXml = function (chart, sheetNameById) {
|
|
|
1104
1104
|
"c:axId": axisIds,
|
|
1105
1105
|
};
|
|
1106
1106
|
for (var i = 0; i < groupSeries.length; i++) {
|
|
1107
|
-
var
|
|
1107
|
+
var _10 = groupSeries[i], index = _10.index, ref = _10.ref, data = _10.data;
|
|
1108
1108
|
var seriesNode = buildBarSeriesNode(index, ref, data, (_o = seriesCatRefs[index]) !== null && _o !== void 0 ? _o : domainRef, sheetName, i === 0);
|
|
1109
1109
|
barChartNode["c:ser"].push(seriesNode);
|
|
1110
1110
|
}
|
|
@@ -1120,7 +1120,7 @@ export var buildChartXml = function (chart, sheetNameById) {
|
|
|
1120
1120
|
};
|
|
1121
1121
|
try {
|
|
1122
1122
|
for (var groupSeries_1 = (e_4 = void 0, __values(groupSeries)), groupSeries_1_1 = groupSeries_1.next(); !groupSeries_1_1.done; groupSeries_1_1 = groupSeries_1.next()) {
|
|
1123
|
-
var
|
|
1123
|
+
var _11 = groupSeries_1_1.value, index = _11.index, ref = _11.ref, data = _11.data;
|
|
1124
1124
|
var seriesNode = buildLineSeriesNode(index, ref, data, (_p = seriesCatRefs[index]) !== null && _p !== void 0 ? _p : domainRef, sheetName, smooth);
|
|
1125
1125
|
lineChartNode["c:ser"].push(seriesNode);
|
|
1126
1126
|
}
|
|
@@ -1144,7 +1144,7 @@ export var buildChartXml = function (chart, sheetNameById) {
|
|
|
1144
1144
|
};
|
|
1145
1145
|
try {
|
|
1146
1146
|
for (var groupSeries_2 = (e_5 = void 0, __values(groupSeries)), groupSeries_2_1 = groupSeries_2.next(); !groupSeries_2_1.done; groupSeries_2_1 = groupSeries_2.next()) {
|
|
1147
|
-
var
|
|
1147
|
+
var _12 = groupSeries_2_1.value, index = _12.index, ref = _12.ref, data = _12.data;
|
|
1148
1148
|
var seriesNode = buildAreaSeriesNode(index, ref, data, (_q = seriesCatRefs[index]) !== null && _q !== void 0 ? _q : domainRef, sheetName);
|
|
1149
1149
|
areaChartNode["c:ser"].push(seriesNode);
|
|
1150
1150
|
}
|
|
@@ -1529,34 +1529,6 @@ export var buildChartXml = function (chart, sheetNameById) {
|
|
|
1529
1529
|
targetChart["c:ser"] = seriesContainer_5;
|
|
1530
1530
|
chartSpace["c:chartSpace"]["c:chart"] = chartDoc;
|
|
1531
1531
|
}
|
|
1532
|
-
else if (chartType === "treemap" || chartType === "sunburst") {
|
|
1533
|
-
var treeSpec = chart.spec;
|
|
1534
|
-
var labelRef = formatRangeRef(getPrimarySource((_9 = treeSpec.labels) === null || _9 === void 0 ? void 0 : _9[0]), sheetNameById);
|
|
1535
|
-
var sizeRef = formatRangeRef(getPrimarySource((_10 = treeSpec.sizeData) === null || _10 === void 0 ? void 0 : _10[0]), sheetNameById);
|
|
1536
|
-
if (!labelRef || !sizeRef)
|
|
1537
|
-
return undefined;
|
|
1538
|
-
if (chartType === "sunburst") {
|
|
1539
|
-
var pieChart = buildPieChart(labelRef, sizeRef, chartTitle, chartSubtitle);
|
|
1540
|
-
chartSpace["c:chartSpace"]["c:chart"] = pieChart;
|
|
1541
|
-
}
|
|
1542
|
-
else {
|
|
1543
|
-
var columnChart = cloneTemplate(column_json);
|
|
1544
|
-
applyChartTitle(columnChart, chartTitle, chartTitleFmt, chartSubtitle);
|
|
1545
|
-
var bar = columnChart["c:plotArea"]["c:barChart"];
|
|
1546
|
-
var seriesContainer = bar["c:ser"];
|
|
1547
|
-
var seriesNode = cloneTemplate(column_series);
|
|
1548
|
-
seriesNode["c:idx"] = { a$: { val: "0" } };
|
|
1549
|
-
seriesNode["c:order"] = { a$: { val: "0" } };
|
|
1550
|
-
seriesNode["c:cat"] = {
|
|
1551
|
-
"c:strRef": {
|
|
1552
|
-
"c:f": labelRef,
|
|
1553
|
-
},
|
|
1554
|
-
};
|
|
1555
|
-
seriesNode["c:val"]["c:numRef"]["c:f"] = sizeRef;
|
|
1556
|
-
seriesContainer.push(seriesNode);
|
|
1557
|
-
chartSpace["c:chartSpace"]["c:chart"] = columnChart;
|
|
1558
|
-
}
|
|
1559
|
-
}
|
|
1560
1532
|
else {
|
|
1561
1533
|
return undefined;
|
|
1562
1534
|
}
|