@rowsncolumns/toolkit 24.4.2 → 24.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/cjs/excel-parser/cfb-decryptor.d.ts +6 -0
  2. package/dist/cjs/excel-parser/cfb-decryptor.d.ts.map +1 -1
  3. package/dist/cjs/excel-parser/cfb-decryptor.js +6 -0
  4. package/dist/cjs/excel-parser/helpers.d.ts +9 -1
  5. package/dist/cjs/excel-parser/helpers.d.ts.map +1 -1
  6. package/dist/cjs/excel-parser/helpers.js +37 -0
  7. package/dist/cjs/excel-parser/interface.d.ts +15 -2
  8. package/dist/cjs/excel-parser/interface.d.ts.map +1 -1
  9. package/dist/cjs/excel-parser/plugins/base/index.d.ts +2 -0
  10. package/dist/cjs/excel-parser/plugins/base/index.d.ts.map +1 -1
  11. package/dist/cjs/excel-parser/plugins/base/index.js +3 -0
  12. package/dist/cjs/excel-parser/plugins/ods/index.d.ts +19 -0
  13. package/dist/cjs/excel-parser/plugins/ods/index.d.ts.map +1 -1
  14. package/dist/cjs/excel-parser/plugins/ods/index.js +676 -304
  15. package/dist/cjs/excel-parser/plugins/ods/styles.d.ts +43 -1
  16. package/dist/cjs/excel-parser/plugins/ods/styles.d.ts.map +1 -1
  17. package/dist/cjs/excel-parser/plugins/ods/styles.js +343 -45
  18. package/dist/cjs/excel-parser/plugins/xls/index.d.ts +55 -1
  19. package/dist/cjs/excel-parser/plugins/xls/index.d.ts.map +1 -1
  20. package/dist/cjs/excel-parser/plugins/xls/index.js +518 -6
  21. package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts +4 -0
  22. package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts.map +1 -1
  23. package/dist/cjs/excel-parser/plugins/xlsb/index.js +33 -14
  24. package/dist/cjs/excel-parser/plugins/xlsx/chartex.d.ts +37 -0
  25. package/dist/cjs/excel-parser/plugins/xlsx/chartex.d.ts.map +1 -0
  26. package/dist/cjs/excel-parser/plugins/xlsx/chartex.js +244 -0
  27. package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts +10 -0
  28. package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts.map +1 -1
  29. package/dist/cjs/excel-parser/plugins/xlsx/charts.js +68 -9
  30. package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts +28 -1
  31. package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -1
  32. package/dist/cjs/excel-parser/plugins/xlsx/drawing.js +155 -20
  33. package/dist/cjs/excel-parser/plugins/xlsx/form-controls.d.ts +70 -0
  34. package/dist/cjs/excel-parser/plugins/xlsx/form-controls.d.ts.map +1 -0
  35. package/dist/cjs/excel-parser/plugins/xlsx/form-controls.js +295 -0
  36. package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts +35 -2
  37. package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
  38. package/dist/cjs/excel-parser/plugins/xlsx/index.js +737 -257
  39. package/dist/cjs/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -1
  40. package/dist/cjs/excel-parser/plugins/xlsx/pivots.js +125 -37
  41. package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.d.ts +3 -0
  42. package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.d.ts.map +1 -1
  43. package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.js +4 -1
  44. package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts +15 -1
  45. package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
  46. package/dist/cjs/excel-parser/plugins/xlsx/styles.js +102 -6
  47. package/dist/cjs/excel-parser/registry.d.ts +7 -0
  48. package/dist/cjs/excel-parser/registry.d.ts.map +1 -1
  49. package/dist/cjs/excel-parser/registry.js +29 -0
  50. package/dist/cjs/excel-parser/types.d.ts +17 -2
  51. package/dist/cjs/excel-parser/types.d.ts.map +1 -1
  52. package/dist/cjs/excel-parser/workbook.d.ts +3 -0
  53. package/dist/cjs/excel-parser/workbook.d.ts.map +1 -1
  54. package/dist/cjs/excel-parser/workbook.js +24 -14
  55. package/dist/cjs/excel-parser/worker.js +131 -131
  56. package/dist/cjs/exporter/ods/ods-export.d.ts.map +1 -1
  57. package/dist/cjs/exporter/ods/ods-export.js +432 -175
  58. package/dist/cjs/exporter/xlsx/chart-builder.d.ts.map +1 -1
  59. package/dist/cjs/exporter/xlsx/chart-builder.js +215 -39
  60. package/dist/cjs/exporter/xlsx/chartex-builder.d.ts +36 -0
  61. package/dist/cjs/exporter/xlsx/chartex-builder.d.ts.map +1 -0
  62. package/dist/cjs/exporter/xlsx/chartex-builder.js +109 -0
  63. package/dist/cjs/exporter/xlsx/form-controls-builder.d.ts +61 -0
  64. package/dist/cjs/exporter/xlsx/form-controls-builder.d.ts.map +1 -0
  65. package/dist/cjs/exporter/xlsx/form-controls-builder.js +197 -0
  66. package/dist/cjs/exporter/xlsx/pivot-builder.d.ts +8 -0
  67. package/dist/cjs/exporter/xlsx/pivot-builder.d.ts.map +1 -1
  68. package/dist/cjs/exporter/xlsx/pivot-builder.js +141 -42
  69. package/dist/cjs/exporter/xlsx/style-builder.js +9 -3
  70. package/dist/cjs/exporter/xlsx/threaded-comments-builder.d.ts +7 -1
  71. package/dist/cjs/exporter/xlsx/threaded-comments-builder.d.ts.map +1 -1
  72. package/dist/cjs/exporter/xlsx/threaded-comments-builder.js +15 -3
  73. package/dist/cjs/exporter/xlsx/xlsx-export.d.ts +11 -2
  74. package/dist/cjs/exporter/xlsx/xlsx-export.d.ts.map +1 -1
  75. package/dist/cjs/exporter/xlsx/xlsx-export.js +991 -297
  76. package/dist/cjs/helpers/implicit-intersection.d.ts +16 -0
  77. package/dist/cjs/helpers/implicit-intersection.d.ts.map +1 -0
  78. package/dist/cjs/helpers/implicit-intersection.js +197 -0
  79. package/dist/cjs/print-settings.d.ts +105 -0
  80. package/dist/cjs/print-settings.d.ts.map +1 -0
  81. package/dist/cjs/print-settings.js +494 -0
  82. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  83. package/dist/esm/excel-parser/cfb-decryptor.d.ts +6 -0
  84. package/dist/esm/excel-parser/cfb-decryptor.d.ts.map +1 -1
  85. package/dist/esm/excel-parser/cfb-decryptor.js +6 -0
  86. package/dist/esm/excel-parser/helpers.d.ts +9 -1
  87. package/dist/esm/excel-parser/helpers.d.ts.map +1 -1
  88. package/dist/esm/excel-parser/helpers.js +34 -0
  89. package/dist/esm/excel-parser/interface.d.ts +15 -2
  90. package/dist/esm/excel-parser/interface.d.ts.map +1 -1
  91. package/dist/esm/excel-parser/plugins/base/index.d.ts +2 -0
  92. package/dist/esm/excel-parser/plugins/base/index.d.ts.map +1 -1
  93. package/dist/esm/excel-parser/plugins/base/index.js +3 -0
  94. package/dist/esm/excel-parser/plugins/ods/index.d.ts +19 -0
  95. package/dist/esm/excel-parser/plugins/ods/index.d.ts.map +1 -1
  96. package/dist/esm/excel-parser/plugins/ods/index.js +347 -33
  97. package/dist/esm/excel-parser/plugins/ods/styles.d.ts +43 -1
  98. package/dist/esm/excel-parser/plugins/ods/styles.d.ts.map +1 -1
  99. package/dist/esm/excel-parser/plugins/ods/styles.js +276 -2
  100. package/dist/esm/excel-parser/plugins/xls/index.d.ts +55 -1
  101. package/dist/esm/excel-parser/plugins/xls/index.d.ts.map +1 -1
  102. package/dist/esm/excel-parser/plugins/xls/index.js +441 -3
  103. package/dist/esm/excel-parser/plugins/xlsb/index.d.ts +4 -0
  104. package/dist/esm/excel-parser/plugins/xlsb/index.d.ts.map +1 -1
  105. package/dist/esm/excel-parser/plugins/xlsb/index.js +30 -9
  106. package/dist/esm/excel-parser/plugins/xlsx/chartex.d.ts +37 -0
  107. package/dist/esm/excel-parser/plugins/xlsx/chartex.d.ts.map +1 -0
  108. package/dist/esm/excel-parser/plugins/xlsx/chartex.js +199 -0
  109. package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts +10 -0
  110. package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts.map +1 -1
  111. package/dist/esm/excel-parser/plugins/xlsx/charts.js +69 -6
  112. package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts +28 -1
  113. package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -1
  114. package/dist/esm/excel-parser/plugins/xlsx/drawing.js +99 -0
  115. package/dist/esm/excel-parser/plugins/xlsx/form-controls.d.ts +70 -0
  116. package/dist/esm/excel-parser/plugins/xlsx/form-controls.d.ts.map +1 -0
  117. package/dist/esm/excel-parser/plugins/xlsx/form-controls.js +246 -0
  118. package/dist/esm/excel-parser/plugins/xlsx/index.d.ts +35 -2
  119. package/dist/esm/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
  120. package/dist/esm/excel-parser/plugins/xlsx/index.js +454 -32
  121. package/dist/esm/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -1
  122. package/dist/esm/excel-parser/plugins/xlsx/pivots.js +86 -6
  123. package/dist/esm/excel-parser/plugins/xlsx/sheet-views.d.ts +3 -0
  124. package/dist/esm/excel-parser/plugins/xlsx/sheet-views.d.ts.map +1 -1
  125. package/dist/esm/excel-parser/plugins/xlsx/sheet-views.js +2 -0
  126. package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts +15 -1
  127. package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
  128. package/dist/esm/excel-parser/plugins/xlsx/styles.js +92 -2
  129. package/dist/esm/excel-parser/registry.d.ts +7 -0
  130. package/dist/esm/excel-parser/registry.d.ts.map +1 -1
  131. package/dist/esm/excel-parser/registry.js +19 -0
  132. package/dist/esm/excel-parser/types.d.ts +17 -2
  133. package/dist/esm/excel-parser/types.d.ts.map +1 -1
  134. package/dist/esm/excel-parser/workbook.d.ts +3 -0
  135. package/dist/esm/excel-parser/workbook.d.ts.map +1 -1
  136. package/dist/esm/excel-parser/workbook.js +19 -10
  137. package/dist/esm/excel-parser/worker.js +12 -18
  138. package/dist/esm/exporter/ods/ods-export.d.ts.map +1 -1
  139. package/dist/esm/exporter/ods/ods-export.js +306 -35
  140. package/dist/esm/exporter/xlsx/chart-builder.d.ts.map +1 -1
  141. package/dist/esm/exporter/xlsx/chart-builder.js +161 -28
  142. package/dist/esm/exporter/xlsx/chartex-builder.d.ts +36 -0
  143. package/dist/esm/exporter/xlsx/chartex-builder.d.ts.map +1 -0
  144. package/dist/esm/exporter/xlsx/chartex-builder.js +97 -0
  145. package/dist/esm/exporter/xlsx/form-controls-builder.d.ts +61 -0
  146. package/dist/esm/exporter/xlsx/form-controls-builder.d.ts.map +1 -0
  147. package/dist/esm/exporter/xlsx/form-controls-builder.js +173 -0
  148. package/dist/esm/exporter/xlsx/pivot-builder.d.ts +8 -0
  149. package/dist/esm/exporter/xlsx/pivot-builder.d.ts.map +1 -1
  150. package/dist/esm/exporter/xlsx/pivot-builder.js +104 -19
  151. package/dist/esm/exporter/xlsx/style-builder.js +9 -3
  152. package/dist/esm/exporter/xlsx/threaded-comments-builder.d.ts +7 -1
  153. package/dist/esm/exporter/xlsx/threaded-comments-builder.d.ts.map +1 -1
  154. package/dist/esm/exporter/xlsx/threaded-comments-builder.js +15 -3
  155. package/dist/esm/exporter/xlsx/xlsx-export.d.ts +11 -2
  156. package/dist/esm/exporter/xlsx/xlsx-export.d.ts.map +1 -1
  157. package/dist/esm/exporter/xlsx/xlsx-export.js +675 -64
  158. package/dist/esm/helpers/implicit-intersection.d.ts +16 -0
  159. package/dist/esm/helpers/implicit-intersection.d.ts.map +1 -0
  160. package/dist/esm/helpers/implicit-intersection.js +184 -0
  161. package/dist/esm/print-settings.d.ts +105 -0
  162. package/dist/esm/print-settings.d.ts.map +1 -0
  163. package/dist/esm/print-settings.js +422 -0
  164. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  165. package/package.json +3 -3
  166. 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, LEGACY_XLS_UNSUPPORTED_MESSAGE, } from "./cfb-decryptor";
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";
@@ -305,7 +305,7 @@ var collectChunkSharedStrings = function (s, rows) {
305
305
  return entries.length ? entries : undefined;
306
306
  };
307
307
  var runLoadSheet = function (s, msg) { return __awaiter(void 0, void 0, void 0, function () {
308
- var requestId, sheetId, isStale, options, enableBackpressure, wb, postProgress, _a, sheet, tables, _b, _c, _d, result, sharedStringsChunk, e_6_1, conditionalFormatting, dataValidations, commentThreads, error_1;
308
+ var requestId, sheetId, isStale, options, enableBackpressure, wb, postProgress, _a, sheet, tables, _b, _c, _d, result, sharedStringsChunk, e_6_1, conditionalFormatting, dataValidations, commentThreads, protectedRanges, error_1;
309
309
  var _e, e_6, _f, _g;
310
310
  var _h, _j;
311
311
  return __generator(this, function (_k) {
@@ -415,6 +415,7 @@ var runLoadSheet = function (s, msg) { return __awaiter(void 0, void 0, void 0,
415
415
  return [4 /*yield*/, wb.getCommentThreads(sheetId)];
416
416
  case 20:
417
417
  commentThreads = _k.sent();
418
+ protectedRanges = wb.getProtectedRanges(sheetId);
418
419
  if (isStale()) {
419
420
  return [2 /*return*/];
420
421
  }
@@ -427,6 +428,7 @@ var runLoadSheet = function (s, msg) { return __awaiter(void 0, void 0, void 0,
427
428
  conditionalFormatting: conditionalFormatting,
428
429
  dataValidations: dataValidations,
429
430
  commentThreads: commentThreads,
431
+ protectedRanges: protectedRanges,
430
432
  cellXfs: wb.getCellXfs(),
431
433
  });
432
434
  return [3 /*break*/, 23];
@@ -454,32 +456,29 @@ var runLoadSheet = function (s, msg) { return __awaiter(void 0, void 0, void 0,
454
456
  });
455
457
  }); };
456
458
  var openSessionWorkbook = function (s, password) { return __awaiter(void 0, void 0, void 0, function () {
457
- var buffer, _a, decryptedBuffer, decryptError_1, loadError_1;
458
- return __generator(this, function (_b) {
459
- switch (_b.label) {
459
+ var buffer, _a, _b, decryptedBuffer, decryptError_1, loadError_1;
460
+ return __generator(this, function (_c) {
461
+ switch (_c.label) {
460
462
  case 0:
461
463
  if (!(s.file instanceof File)) return [3 /*break*/, 1];
462
464
  _a = s.file;
463
465
  return [3 /*break*/, 3];
464
466
  case 1: return [4 /*yield*/, readExcelFile(s.file)];
465
467
  case 2:
466
- _a = _b.sent();
467
- _b.label = 3;
468
+ _a = _c.sent();
469
+ _c.label = 3;
468
470
  case 3:
469
471
  buffer = _a;
470
472
  return [4 /*yield*/, isCFBFile(buffer)];
471
473
  case 4:
472
- if (!_b.sent()) return [3 /*break*/, 12];
474
+ _b = (_c.sent());
475
+ if (!_b) return [3 /*break*/, 6];
473
476
  return [4 /*yield*/, detectCfbContainerKind(buffer)];
474
477
  case 5:
475
- if ((_b.sent()) === "legacy-xls") {
476
- self.postMessage({
477
- responseType: ResponseType.ERROR,
478
- generation: s.generation,
479
- error: LEGACY_XLS_UNSUPPORTED_MESSAGE,
480
- });
481
- return [2 /*return*/];
482
- }
478
+ _b = (_c.sent()) !== "legacy-xls";
479
+ _c.label = 6;
480
+ case 6:
481
+ if (!_b) return [3 /*break*/, 13];
483
482
  if (!password) {
484
483
  s.pendingPassword = true;
485
484
  self.postMessage({
@@ -490,15 +489,15 @@ var openSessionWorkbook = function (s, password) { return __awaiter(void 0, void
490
489
  return [2 /*return*/];
491
490
  }
492
491
  decryptedBuffer = void 0;
493
- _b.label = 6;
494
- case 6:
495
- _b.trys.push([6, 8, , 9]);
496
- return [4 /*yield*/, CFBDecryptor.decrypt(buffer, password)];
492
+ _c.label = 7;
497
493
  case 7:
498
- decryptedBuffer = _b.sent();
499
- return [3 /*break*/, 9];
494
+ _c.trys.push([7, 9, , 10]);
495
+ return [4 /*yield*/, CFBDecryptor.decrypt(buffer, password)];
500
496
  case 8:
501
- decryptError_1 = _b.sent();
497
+ decryptedBuffer = _c.sent();
498
+ return [3 /*break*/, 10];
499
+ case 9:
500
+ decryptError_1 = _c.sent();
502
501
  if (decryptError_1 instanceof Error &&
503
502
  isIncorrectPasswordError(decryptError_1)) {
504
503
  s.pendingPassword = true;
@@ -510,29 +509,29 @@ var openSessionWorkbook = function (s, password) { return __awaiter(void 0, void
510
509
  return [2 /*return*/];
511
510
  }
512
511
  throw decryptError_1;
513
- case 9:
512
+ case 10:
514
513
  resetSharedStringHashState();
515
514
  s.sentSharedStringIds.clear();
516
515
  return [4 /*yield*/, s.workbook.load(decryptedBuffer, s.fileName)];
517
- case 10:
518
- _b.sent();
516
+ case 11:
517
+ _c.sent();
519
518
  s.pendingPassword = false;
520
519
  return [4 /*yield*/, postOpenWorkbookComplete(s)];
521
- case 11:
522
- _b.sent();
523
- return [2 /*return*/];
524
520
  case 12:
521
+ _c.sent();
522
+ return [2 /*return*/];
523
+ case 13:
525
524
  resetSharedStringHashState();
526
525
  s.sentSharedStringIds.clear();
527
- _b.label = 13;
528
- case 13:
529
- _b.trys.push([13, 15, , 16]);
530
- return [4 /*yield*/, s.workbook.load(buffer, s.fileName, password)];
526
+ _c.label = 14;
531
527
  case 14:
532
- _b.sent();
533
- return [3 /*break*/, 16];
528
+ _c.trys.push([14, 16, , 17]);
529
+ return [4 /*yield*/, s.workbook.load(buffer, s.fileName, password)];
534
530
  case 15:
535
- loadError_1 = _b.sent();
531
+ _c.sent();
532
+ return [3 /*break*/, 17];
533
+ case 16:
534
+ loadError_1 = _c.sent();
536
535
  if (loadError_1 instanceof Error) {
537
536
  if (loadError_1.message === "PASSWORD_REQUIRED" ||
538
537
  (password && isIncorrectPasswordError(loadError_1))) {
@@ -556,27 +555,27 @@ var openSessionWorkbook = function (s, password) { return __awaiter(void 0, void
556
555
  }
557
556
  }
558
557
  throw loadError_1;
559
- case 16:
558
+ case 17:
560
559
  s.pendingPassword = false;
561
560
  return [4 /*yield*/, postOpenWorkbookComplete(s)];
562
- case 17:
563
- _b.sent();
561
+ case 18:
562
+ _c.sent();
564
563
  return [2 /*return*/];
565
564
  }
566
565
  });
567
566
  }); };
568
567
  // Handle messages from the main thread
569
568
  self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, function () {
570
- var requestType, _a, generation, newSession, error_2, msg_1, s_1, s, s, buffer, _b, loadError_2, _c, sheets, tables, err_1, enableBackpressure, lastSharedStringsLength, postProgress, _d, _e, _f, result, sharedStringsChunk, currentSharedStrings, e_7_1, drawings, charts, slicers, pivotTables, e_8, externalLinks, commentThreads, conditionalFormatting, dataValidations, s, password_1, error_3, password, buffer, _g, isCFB, decryptedBuffer, decryptError_2, loadError_3, _h, sheets, tables, err_2, error_4;
571
- var _j, e_7, _k, _l;
572
- var _m, _o, _p, _q;
573
- return __generator(this, function (_r) {
574
- switch (_r.label) {
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) {
575
574
  case 0:
576
575
  requestType = e.data.requestType;
577
- _r.label = 1;
576
+ _s.label = 1;
578
577
  case 1:
579
- _r.trys.push([1, 79, , 80]);
578
+ _s.trys.push([1, 79, , 80]);
580
579
  // Guard against undefined requestType
581
580
  if (!requestType) {
582
581
  console.error("Received message with undefined requestType:", e.data);
@@ -620,15 +619,15 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
620
619
  queue: Promise.resolve(),
621
620
  };
622
621
  session = newSession;
623
- _r.label = 3;
622
+ _s.label = 3;
624
623
  case 3:
625
- _r.trys.push([3, 5, , 6]);
624
+ _s.trys.push([3, 5, , 6]);
626
625
  return [4 /*yield*/, openSessionWorkbook(newSession)];
627
626
  case 4:
628
- _r.sent();
627
+ _s.sent();
629
628
  return [3 /*break*/, 6];
630
629
  case 5:
631
- error_2 = _r.sent();
630
+ error_2 = _s.sent();
632
631
  console.trace(error_2);
633
632
  self.postMessage({
634
633
  responseType: ResponseType.ERROR,
@@ -650,7 +649,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
650
649
  s_1.queue = s_1.queue.then(function () { return runLoadSheet(s_1, msg_1); });
651
650
  return [3 /*break*/, 78];
652
651
  }
653
- _r.label = 8;
652
+ _s.label = 8;
654
653
  case 8:
655
654
  {
656
655
  s = session;
@@ -661,7 +660,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
661
660
  releaseRowAckForRequest(e.data.requestId);
662
661
  return [3 /*break*/, 78];
663
662
  }
664
- _r.label = 9;
663
+ _s.label = 9;
665
664
  case 9:
666
665
  {
667
666
  s = session;
@@ -671,7 +670,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
671
670
  disposeSession(s);
672
671
  return [3 /*break*/, 78];
673
672
  }
674
- _r.label = 10;
673
+ _s.label = 10;
675
674
  case 10:
676
675
  currentFile = e.data.file;
677
676
  currentMinRowCount = e.data.minRowCount;
@@ -681,41 +680,40 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
681
680
  return [3 /*break*/, 13];
682
681
  case 11: return [4 /*yield*/, readExcelFile(e.data.file)];
683
682
  case 12:
684
- _b = _r.sent();
685
- _r.label = 13;
683
+ _b = _s.sent();
684
+ _s.label = 13;
686
685
  case 13:
687
686
  buffer = _b;
688
687
  currentFileName =
689
688
  e.data.file instanceof File ? e.data.file.name : "unknown.xlsx";
690
689
  return [4 /*yield*/, isCFBFile(buffer)];
691
690
  case 14:
692
- if (!_r.sent()) return [3 /*break*/, 16];
691
+ _c = (_s.sent());
692
+ if (!_c) return [3 /*break*/, 16];
693
693
  return [4 /*yield*/, detectCfbContainerKind(buffer)];
694
694
  case 15:
695
- if ((_r.sent()) === "legacy-xls") {
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) {
696
700
  self.postMessage({
697
- responseType: ResponseType.ERROR,
698
- error: LEGACY_XLS_UNSUPPORTED_MESSAGE,
701
+ responseType: ResponseType.PASSWORD_REQUIRED,
702
+ message: "This file uses Office encryption and requires a password.",
699
703
  });
700
704
  return [2 /*return*/];
701
705
  }
702
- self.postMessage({
703
- responseType: ResponseType.PASSWORD_REQUIRED,
704
- message: "This file uses Office encryption and requires a password.",
705
- });
706
- return [2 /*return*/];
707
- case 16:
708
706
  // Load workbook (fresh state — clear stale hash mappings from prior import)
709
707
  resetSharedStringHashState();
710
- _r.label = 17;
708
+ _s.label = 17;
711
709
  case 17:
712
- _r.trys.push([17, 19, , 20]);
710
+ _s.trys.push([17, 19, , 20]);
713
711
  return [4 /*yield*/, workbook.load(buffer, currentFileName)];
714
712
  case 18:
715
- _r.sent();
713
+ _s.sent();
716
714
  return [3 /*break*/, 20];
717
715
  case 19:
718
- loadError_2 = _r.sent();
716
+ loadError_2 = _s.sent();
719
717
  if (loadError_2 instanceof Error &&
720
718
  loadError_2.message === "PASSWORD_REQUIRED") {
721
719
  self.postMessage({
@@ -745,17 +743,18 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
745
743
  self.postMessage({
746
744
  responseType: ResponseType.GET_THEME_SUCCESS,
747
745
  theme: workbook.getTheme(),
746
+ namedCellStyles: workbook.getNamedCellStyles(),
748
747
  });
749
- _r.label = 21;
748
+ _s.label = 21;
750
749
  case 21:
751
- _r.trys.push([21, 23, , 24]);
750
+ _s.trys.push([21, 23, , 24]);
752
751
  self.postMessage({
753
752
  responseType: ResponseType.BEGIN_GET_SHEETS,
754
753
  totalSheets: workbook.getSheetCount(),
755
754
  });
756
755
  return [4 /*yield*/, workbook.getSheets(e.data.minRowCount, e.data.minColumnCount)];
757
756
  case 22:
758
- _c = __read.apply(void 0, [_r.sent(), 2]), sheets = _c[0], tables = _c[1];
757
+ _d = __read.apply(void 0, [_s.sent(), 2]), sheets = _d[0], tables = _d[1];
759
758
  self.postMessage({
760
759
  responseType: ResponseType.GET_SHEETS_SUCCESS,
761
760
  sheets: sheets,
@@ -782,13 +781,13 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
782
781
  });
783
782
  return [3 /*break*/, 24];
784
783
  case 23:
785
- err_1 = _r.sent();
784
+ err_1 = _s.sent();
786
785
  console.error(err_1);
787
786
  return [3 /*break*/, 24];
788
787
  case 24: return [3 /*break*/, 78];
789
788
  case 25:
790
- enableBackpressure = (_m = e.data.enableBackpressure) !== null && _m !== void 0 ? _m : false;
791
- lastSharedStringsLength = (_p = (_o = workbook.sharedStrings) === null || _o === void 0 ? void 0 : _o.length) !== null && _p !== void 0 ? _p : 0;
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;
792
791
  // Make sure hash ids exist for any strings loaded before this request
793
792
  // (e.g. XLSX populates the full SST upfront).
794
793
  ensureSharedStringHashIds(workbook.sharedStrings, workbook.richSharedStringRuns);
@@ -799,20 +798,20 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
799
798
  sheetTitle: sheetTitle,
800
799
  });
801
800
  };
802
- _r.label = 26;
801
+ _s.label = 26;
803
802
  case 26:
804
- _r.trys.push([26, 34, 35, 40]);
805
- _d = true, _e = __asyncValues(workbook.processSheetData(e.data.pageSize, e.data.enableCellXfsRegistry, e.data.enableSharedStrings, postProgress));
806
- _r.label = 27;
807
- case 27: return [4 /*yield*/, _e.next()];
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()];
808
807
  case 28:
809
- if (!(_f = _r.sent(), _j = _f.done, !_j)) return [3 /*break*/, 33];
810
- _l = _f.value;
811
- _d = false;
812
- result = _l;
808
+ if (!(_g = _s.sent(), _k = _g.done, !_k)) return [3 /*break*/, 33];
809
+ _m = _g.value;
810
+ _e = false;
811
+ result = _m;
813
812
  sharedStringsChunk = void 0;
814
813
  if (e.data.enableSharedStrings) {
815
- currentSharedStrings = (_q = workbook.sharedStrings) !== null && _q !== void 0 ? _q : [];
814
+ currentSharedStrings = (_r = workbook.sharedStrings) !== null && _r !== void 0 ? _r : [];
816
815
  if (currentSharedStrings.length > lastSharedStringsLength) {
817
816
  sharedStringsChunk = buildSstSlice(currentSharedStrings, lastSharedStringsLength, workbook.richSharedStringRuns);
818
817
  lastSharedStringsLength = currentSharedStrings.length;
@@ -832,27 +831,27 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
832
831
  chunkIndex: result.chunkIndex,
833
832
  })];
834
833
  case 29:
835
- _r.sent();
836
- _r.label = 30;
834
+ _s.sent();
835
+ _s.label = 30;
837
836
  case 30: return [4 /*yield*/, delay()];
838
837
  case 31:
839
- _r.sent();
840
- _r.label = 32;
838
+ _s.sent();
839
+ _s.label = 32;
841
840
  case 32:
842
- _d = true;
841
+ _e = true;
843
842
  return [3 /*break*/, 27];
844
843
  case 33: return [3 /*break*/, 40];
845
844
  case 34:
846
- e_7_1 = _r.sent();
845
+ e_7_1 = _s.sent();
847
846
  e_7 = { error: e_7_1 };
848
847
  return [3 /*break*/, 40];
849
848
  case 35:
850
- _r.trys.push([35, , 38, 39]);
851
- if (!(!_d && !_j && (_k = _e.return))) return [3 /*break*/, 37];
852
- return [4 /*yield*/, _k.call(_e)];
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)];
853
852
  case 36:
854
- _r.sent();
855
- _r.label = 37;
853
+ _s.sent();
854
+ _s.label = 37;
856
855
  case 37: return [3 /*break*/, 39];
857
856
  case 38:
858
857
  if (e_7) throw e_7.error;
@@ -876,7 +875,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
876
875
  postProgress("drawings");
877
876
  return [4 /*yield*/, workbook.getDrawings()];
878
877
  case 41:
879
- drawings = _r.sent();
878
+ drawings = _s.sent();
880
879
  self.postMessage({
881
880
  responseType: ResponseType.GET_DRAWINGS_SUCCESS,
882
881
  drawings: drawings,
@@ -885,33 +884,33 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
885
884
  postProgress("charts");
886
885
  return [4 /*yield*/, workbook.getCharts()];
887
886
  case 42:
888
- charts = _r.sent();
887
+ charts = _s.sent();
889
888
  self.postMessage({
890
889
  responseType: ResponseType.GET_CHARTS_SUCCESS,
891
890
  charts: charts,
892
891
  });
893
892
  return [4 /*yield*/, workbook.getSlicers()];
894
893
  case 43:
895
- slicers = _r.sent();
894
+ slicers = _s.sent();
896
895
  self.postMessage({
897
896
  responseType: ResponseType.GET_SLICERS_SUCCESS,
898
897
  slicers: slicers,
899
898
  });
900
899
  // Pivot tables (Phase D1 — import path)
901
900
  postProgress("pivot-tables");
902
- _r.label = 44;
901
+ _s.label = 44;
903
902
  case 44:
904
- _r.trys.push([44, 46, , 47]);
903
+ _s.trys.push([44, 46, , 47]);
905
904
  return [4 /*yield*/, workbook.getPivotTables()];
906
905
  case 45:
907
- pivotTables = _r.sent();
906
+ pivotTables = _s.sent();
908
907
  self.postMessage({
909
908
  responseType: ResponseType.GET_PIVOT_TABLES_SUCCESS,
910
909
  pivotTables: pivotTables,
911
910
  });
912
911
  return [3 /*break*/, 47];
913
912
  case 46:
914
- e_8 = _r.sent();
913
+ e_8 = _s.sent();
915
914
  // Pivot parsing is best-effort — never block the rest of
916
915
  // the import on a single malformed pivot. Worker emits an
917
916
  // empty list so the host can clear any stale pivots.
@@ -924,7 +923,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
924
923
  return [3 /*break*/, 47];
925
924
  case 47: return [4 /*yield*/, workbook.getExternalLinks()];
926
925
  case 48:
927
- externalLinks = _r.sent();
926
+ externalLinks = _s.sent();
928
927
  self.postMessage({
929
928
  responseType: ResponseType.GET_EXTERNAL_LINKS_SUCCESS,
930
929
  externalLinks: externalLinks,
@@ -934,7 +933,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
934
933
  postProgress("comment-threads");
935
934
  return [4 /*yield*/, workbook.getCommentThreads()];
936
935
  case 49:
937
- commentThreads = _r.sent();
936
+ commentThreads = _s.sent();
938
937
  self.postMessage({
939
938
  responseType: ResponseType.GET_COMMENT_THREADS_SUCCESS,
940
939
  commentThreads: commentThreads,
@@ -945,7 +944,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
945
944
  });
946
945
  return [4 /*yield*/, workbook.getConditionalFormatting()];
947
946
  case 50:
948
- conditionalFormatting = _r.sent();
947
+ conditionalFormatting = _s.sent();
949
948
  self.postMessage({
950
949
  responseType: ResponseType.GET_CONDITIONAL_FORMATTING_SUCCESS,
951
950
  conditionalFormatting: conditionalFormatting,
@@ -956,7 +955,7 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
956
955
  });
957
956
  return [4 /*yield*/, workbook.getDataValidations()];
958
957
  case 51:
959
- dataValidations = _r.sent();
958
+ dataValidations = _s.sent();
960
959
  // data validations ranges
961
960
  self.postMessage({
962
961
  responseType: ResponseType.GET_DATAVALIDATION_SUCCESS,
@@ -980,15 +979,15 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
980
979
  });
981
980
  return [2 /*return*/];
982
981
  }
983
- _r.label = 53;
982
+ _s.label = 53;
984
983
  case 53:
985
- _r.trys.push([53, 55, , 56]);
984
+ _s.trys.push([53, 55, , 56]);
986
985
  return [4 /*yield*/, openSessionWorkbook(s, password_1)];
987
986
  case 54:
988
- _r.sent();
987
+ _s.sent();
989
988
  return [3 /*break*/, 56];
990
989
  case 55:
991
- error_3 = _r.sent();
990
+ error_3 = _s.sent();
992
991
  console.trace(error_3);
993
992
  self.postMessage({
994
993
  responseType: ResponseType.ERROR,
@@ -1015,37 +1014,37 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
1015
1014
  return [2 /*return*/];
1016
1015
  }
1017
1016
  if (!(currentFile instanceof File)) return [3 /*break*/, 58];
1018
- _g = currentFile;
1017
+ _h = currentFile;
1019
1018
  return [3 /*break*/, 60];
1020
1019
  case 58: return [4 /*yield*/, readExcelFile(currentFile)];
1021
1020
  case 59:
1022
- _g = _r.sent();
1023
- _r.label = 60;
1021
+ _h = _s.sent();
1022
+ _s.label = 60;
1024
1023
  case 60:
1025
- buffer = _g;
1024
+ buffer = _h;
1026
1025
  return [4 /*yield*/, isCFBFile(buffer)];
1027
1026
  case 61:
1028
- isCFB = _r.sent();
1027
+ isCFB = _s.sent();
1029
1028
  // Fresh hash state for this load attempt.
1030
1029
  resetSharedStringHashState();
1031
- _r.label = 62;
1030
+ _s.label = 62;
1032
1031
  case 62:
1033
- _r.trys.push([62, 71, , 72]);
1032
+ _s.trys.push([62, 71, , 72]);
1034
1033
  if (!isCFB) return [3 /*break*/, 68];
1035
- _r.label = 63;
1034
+ _s.label = 63;
1036
1035
  case 63:
1037
- _r.trys.push([63, 66, , 67]);
1036
+ _s.trys.push([63, 66, , 67]);
1038
1037
  return [4 /*yield*/, CFBDecryptor.decrypt(buffer, password)];
1039
1038
  case 64:
1040
- decryptedBuffer = _r.sent();
1039
+ decryptedBuffer = _s.sent();
1041
1040
  // Load the decrypted file (no password needed now)
1042
1041
  return [4 /*yield*/, workbook.load(decryptedBuffer, currentFileName)];
1043
1042
  case 65:
1044
1043
  // Load the decrypted file (no password needed now)
1045
- _r.sent();
1044
+ _s.sent();
1046
1045
  return [3 /*break*/, 67];
1047
1046
  case 66:
1048
- decryptError_2 = _r.sent();
1047
+ decryptError_2 = _s.sent();
1049
1048
  console.error("CFB decryption error:", decryptError_2);
1050
1049
  if (decryptError_2 instanceof Error && isIncorrectPasswordError(decryptError_2)) {
1051
1050
  self.postMessage({
@@ -1065,11 +1064,11 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
1065
1064
  return [4 /*yield*/, workbook.load(buffer, currentFileName, password)];
1066
1065
  case 69:
1067
1066
  // ZIP-encrypted file - pass password to workbook
1068
- _r.sent();
1069
- _r.label = 70;
1067
+ _s.sent();
1068
+ _s.label = 70;
1070
1069
  case 70: return [3 /*break*/, 72];
1071
1070
  case 71:
1072
- loadError_3 = _r.sent();
1071
+ loadError_3 = _s.sent();
1073
1072
  if (loadError_3 instanceof Error && isIncorrectPasswordError(loadError_3)) {
1074
1073
  self.postMessage({
1075
1074
  responseType: ResponseType.PASSWORD_REQUIRED,
@@ -1095,17 +1094,18 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
1095
1094
  self.postMessage({
1096
1095
  responseType: ResponseType.GET_THEME_SUCCESS,
1097
1096
  theme: workbook.getTheme(),
1097
+ namedCellStyles: workbook.getNamedCellStyles(),
1098
1098
  });
1099
- _r.label = 73;
1099
+ _s.label = 73;
1100
1100
  case 73:
1101
- _r.trys.push([73, 75, , 76]);
1101
+ _s.trys.push([73, 75, , 76]);
1102
1102
  self.postMessage({
1103
1103
  responseType: ResponseType.BEGIN_GET_SHEETS,
1104
1104
  totalSheets: workbook.getSheetCount(),
1105
1105
  });
1106
1106
  return [4 /*yield*/, workbook.getSheets(currentMinRowCount, currentMinColumnCount)];
1107
1107
  case 74:
1108
- _h = __read.apply(void 0, [_r.sent(), 2]), sheets = _h[0], tables = _h[1];
1108
+ _j = __read.apply(void 0, [_s.sent(), 2]), sheets = _j[0], tables = _j[1];
1109
1109
  self.postMessage({
1110
1110
  responseType: ResponseType.GET_SHEETS_SUCCESS,
1111
1111
  sheets: sheets,
@@ -1128,14 +1128,14 @@ self.onmessage = function (e) { return __awaiter(void 0, void 0, void 0, functio
1128
1128
  });
1129
1129
  return [3 /*break*/, 76];
1130
1130
  case 75:
1131
- err_2 = _r.sent();
1131
+ err_2 = _s.sent();
1132
1132
  console.error(err_2);
1133
1133
  return [3 /*break*/, 76];
1134
1134
  case 76: return [3 /*break*/, 78];
1135
1135
  case 77: throw new Error("Unknown action: ".concat(requestType));
1136
1136
  case 78: return [3 /*break*/, 80];
1137
1137
  case 79:
1138
- error_4 = _r.sent();
1138
+ error_4 = _s.sent();
1139
1139
  console.trace(error_4);
1140
1140
  // Send back the error
1141
1141
  self.postMessage({
@@ -1 +1 @@
1
- {"version":3,"file":"ods-export.d.ts","sourceRoot":"","sources":["../../../../exporter/ods/ods-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,wBAAwB,EAMxB,SAAS,EAET,2BAA2B,EAC3B,QAAQ,EACT,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAGV,qBAAqB,EAErB,aAAa,EACb,cAAc,EAGd,UAAU,EACV,KAAK,EAEL,gBAAgB,EAChB,SAAS,EAGV,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,4BAA4B,CAAC;AAoHzE,MAAM,MAAM,cAAc,CACxB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,QAAQ,IAChB;IACF,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC7C,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AA0RF,eAAO,MAAM,aAAa,GACxB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,QAAQ,EAClB,qRAgBC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,yBAyJzB,CAAC"}
1
+ {"version":3,"file":"ods-export.d.ts","sourceRoot":"","sources":["../../../../exporter/ods/ods-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,wBAAwB,EAMxB,SAAS,EAET,2BAA2B,EAC3B,QAAQ,EACT,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAGV,qBAAqB,EAErB,aAAa,EACb,cAAc,EAGd,UAAU,EACV,KAAK,EAGL,gBAAgB,EAChB,SAAS,EAGV,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,4BAA4B,CAAC;AA+HzE,MAAM,MAAM,cAAc,CACxB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,QAAQ,IAChB;IACF,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC7C,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AA+XF,eAAO,MAAM,aAAa,GACxB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,QAAQ,EAClB,qRAgBC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,yBA6JzB,CAAC"}