@rowsncolumns/toolkit 24.5.3 → 24.5.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/autofilter-condition.js +6 -2
- package/dist/cjs/excel-parser/helpers.d.ts +9 -1
- package/dist/cjs/excel-parser/helpers.d.ts.map +1 -1
- package/dist/cjs/excel-parser/helpers.js +70 -16
- package/dist/cjs/excel-parser/interface.d.ts +9 -1
- package/dist/cjs/excel-parser/interface.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/conditional-formatting.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/conditional-formatting.js +61 -6
- package/dist/cjs/excel-parser/plugins/xlsx/data-validations.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/data-validations.js +13 -2
- package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts +8 -1
- package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/index.js +159 -26
- package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts +17 -2
- package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/styles.js +25 -14
- package/dist/cjs/excel-parser/types.d.ts +5 -1
- package/dist/cjs/excel-parser/types.d.ts.map +1 -1
- package/dist/cjs/excel-parser/workbook.d.ts +1 -0
- package/dist/cjs/excel-parser/workbook.d.ts.map +1 -1
- package/dist/cjs/excel-parser/workbook.js +4 -0
- package/dist/cjs/excel-parser/worker.js +3 -0
- package/dist/cjs/exporter/xlsx/chart-builder.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/chart-builder.js +167 -53
- package/dist/cjs/exporter/xlsx/future-functions.d.ts +6 -7
- package/dist/cjs/exporter/xlsx/future-functions.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/future-functions.js +5 -261
- package/dist/cjs/exporter/xlsx/style-builder.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/style-builder.js +62 -19
- package/dist/cjs/exporter/xlsx/xlsx-export.d.ts +10 -2
- package/dist/cjs/exporter/xlsx/xlsx-export.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/xlsx-export.js +409 -160
- package/dist/cjs/helpers/excel-formula-prefixes.d.ts +51 -0
- package/dist/cjs/helpers/excel-formula-prefixes.d.ts.map +1 -0
- package/dist/cjs/helpers/excel-formula-prefixes.js +548 -0
- package/dist/cjs/helpers.d.ts +2 -0
- package/dist/cjs/helpers.d.ts.map +1 -1
- package/dist/cjs/helpers.js +21 -12
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/autofilter-condition.js +6 -2
- package/dist/esm/excel-parser/helpers.d.ts +9 -1
- package/dist/esm/excel-parser/helpers.d.ts.map +1 -1
- package/dist/esm/excel-parser/helpers.js +65 -3
- package/dist/esm/excel-parser/interface.d.ts +9 -1
- package/dist/esm/excel-parser/interface.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/conditional-formatting.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/conditional-formatting.js +42 -1
- package/dist/esm/excel-parser/plugins/xlsx/data-validations.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/data-validations.js +11 -2
- package/dist/esm/excel-parser/plugins/xlsx/index.d.ts +8 -1
- package/dist/esm/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/index.js +109 -4
- package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts +17 -2
- package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/styles.js +20 -8
- package/dist/esm/excel-parser/types.d.ts +5 -1
- package/dist/esm/excel-parser/types.d.ts.map +1 -1
- package/dist/esm/excel-parser/workbook.d.ts +1 -0
- package/dist/esm/excel-parser/workbook.d.ts.map +1 -1
- package/dist/esm/excel-parser/workbook.js +3 -0
- package/dist/esm/excel-parser/worker.js +3 -0
- package/dist/esm/exporter/xlsx/chart-builder.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/chart-builder.js +80 -0
- package/dist/esm/exporter/xlsx/future-functions.d.ts +6 -7
- package/dist/esm/exporter/xlsx/future-functions.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/future-functions.js +5 -261
- package/dist/esm/exporter/xlsx/style-builder.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/style-builder.js +56 -18
- package/dist/esm/exporter/xlsx/xlsx-export.d.ts +10 -2
- package/dist/esm/exporter/xlsx/xlsx-export.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/xlsx-export.js +343 -108
- package/dist/esm/helpers/excel-formula-prefixes.d.ts +51 -0
- package/dist/esm/helpers/excel-formula-prefixes.d.ts.map +1 -0
- package/dist/esm/helpers/excel-formula-prefixes.js +531 -0
- package/dist/esm/helpers.d.ts +2 -0
- package/dist/esm/helpers.d.ts.map +1 -1
- package/dist/esm/helpers.js +23 -12
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { formulaToRelativeReference } from "@rowsncolumns/calculator";
|
|
2
2
|
import { IndexedColors } from "@rowsncolumns/utils";
|
|
3
3
|
import { addressToCell, ssfFormat } from "@rowsncolumns/utils";
|
|
4
|
-
import {
|
|
4
|
+
import { normalizeImportedFormula } from "../../../helpers/excel-formula-prefixes";
|
|
5
5
|
import { standardExcelFormatCodeById } from "./numfmt";
|
|
6
6
|
import { detectValueTypeAndPattern } from "./value-type-detection";
|
|
7
7
|
const getNode = (node, ...keys) => {
|
|
@@ -72,7 +72,7 @@ export function getCellValueAndFormat(cell, workbook, enableCellXfsRegistry = fa
|
|
|
72
72
|
return null;
|
|
73
73
|
}
|
|
74
74
|
// Extract raw value
|
|
75
|
-
const { rawValue: extractedRawValue, formulaValue, sharedStringIndex, isError, arrayFormulaRef, sharedFormulaSpec, } = extractCellValue(cell, workbook, activeSheetName);
|
|
75
|
+
const { rawValue: extractedRawValue, formulaValue, sharedStringIndex, isError, arrayFormulaRef, legacyArrayFormula, sharedFormulaSpec, } = extractCellValue(cell, workbook, activeSheetName);
|
|
76
76
|
let rawValue = extractedRawValue;
|
|
77
77
|
// Extract cell format
|
|
78
78
|
const cellFormat = extractCellFormat(cell, workbook.workbookStyles, mergeContext);
|
|
@@ -190,6 +190,7 @@ export function getCellValueAndFormat(cell, workbook, enableCellXfsRegistry = fa
|
|
|
190
190
|
...(ue ? { ue } : {}),
|
|
191
191
|
...(ev ? { ev } : {}),
|
|
192
192
|
...(arrayFormulaRef ? { af: arrayFormulaRef } : {}),
|
|
193
|
+
...(arrayFormulaRef && legacyArrayFormula ? { cse: true } : {}),
|
|
193
194
|
...(sharedFormulaSpec ? { sf: sharedFormulaSpec } : {}),
|
|
194
195
|
...(protection ? { protection } : {}),
|
|
195
196
|
};
|
|
@@ -254,6 +255,7 @@ function extractCellValue(cell, workbook, activeSheetName) {
|
|
|
254
255
|
let sharedStringIndex;
|
|
255
256
|
let isError = false;
|
|
256
257
|
let arrayFormulaRef;
|
|
258
|
+
let legacyArrayFormula = false;
|
|
257
259
|
let sharedFormulaSpec;
|
|
258
260
|
if (cellFormula) {
|
|
259
261
|
// Shared formula. Capture provenance so the exporter can re-emit
|
|
@@ -285,10 +287,16 @@ function extractCellValue(cell, workbook, activeSheetName) {
|
|
|
285
287
|
// carries the `<f>` element; spilled cells in the range have no formula
|
|
286
288
|
// and therefore never reach this branch. Default to the cell's own
|
|
287
289
|
// coordinate when `ref` is absent (some writers omit it for single-cell).
|
|
290
|
+
// Excel 365 marks a dynamic-array anchor with `cm="1"` on the `<c>`
|
|
291
|
+
// (an index into `xl/metadata.xml`'s XLDAPR record); the same
|
|
292
|
+
// `<f t="array">` without `cm` is a legacy Ctrl+Shift+Enter array, which
|
|
293
|
+
// Excel keeps showing as `{=…}`. Remember which one it was so the
|
|
294
|
+
// exporter writes the same kind back.
|
|
288
295
|
if (cellFormula.a$ && cellFormula.a$.t === "array") {
|
|
289
296
|
const cellRef = cell.a$?.r;
|
|
290
297
|
arrayFormulaRef =
|
|
291
298
|
cellFormula.a$.ref ?? (cellRef ? `${cellRef}:${cellRef}` : undefined);
|
|
299
|
+
legacyArrayFormula = cell.a$?.cm === undefined || cell.a$?.cm === null;
|
|
292
300
|
}
|
|
293
301
|
// Shared-formula followers parse as `{ a$: { t: "shared", si }, t$: "" }` —
|
|
294
302
|
// the self-closing `<f t="shared" si=".."/>` has no text content but the
|
|
@@ -327,9 +335,12 @@ function extractCellValue(cell, workbook, activeSheetName) {
|
|
|
327
335
|
}
|
|
328
336
|
}
|
|
329
337
|
if (formulaValue) {
|
|
330
|
-
//
|
|
331
|
-
// `_xlfn.
|
|
332
|
-
|
|
338
|
+
// Sheet XML spells modern formulas with storage markers Excel never
|
|
339
|
+
// shows — `_xlfn.XLOOKUP(`, `_xlfn._xlws.FILTER(`, `_xlpm.` on LET /
|
|
340
|
+
// LAMBDA parameters, `_xlfn.ANCHORARRAY(A1)` for `A1#` and
|
|
341
|
+
// `_xlfn.SINGLE(x)` for `@x`. Store the formula the way Excel displays
|
|
342
|
+
// it; the exporter re-adds the markers.
|
|
343
|
+
formulaValue = normalizeImportedFormula(normalizeFormulaSheetNames(formulaValue));
|
|
333
344
|
}
|
|
334
345
|
switch (cellType) {
|
|
335
346
|
case "s": {
|
|
@@ -409,6 +420,7 @@ function extractCellValue(cell, workbook, activeSheetName) {
|
|
|
409
420
|
sharedStringIndex,
|
|
410
421
|
isError,
|
|
411
422
|
arrayFormulaRef,
|
|
423
|
+
legacyArrayFormula,
|
|
412
424
|
sharedFormulaSpec,
|
|
413
425
|
};
|
|
414
426
|
}
|
|
@@ -914,7 +926,7 @@ function extractNumberFormat(xf, workbookStyles) {
|
|
|
914
926
|
/**
|
|
915
927
|
* Map Excel number format ID to our NumberFormatType
|
|
916
928
|
*/
|
|
917
|
-
function mapNumberFormatType(numFmtId, formatCode) {
|
|
929
|
+
export function mapNumberFormatType(numFmtId, formatCode) {
|
|
918
930
|
// Built-in format ids
|
|
919
931
|
switch (numFmtId) {
|
|
920
932
|
case 0:
|
|
@@ -1324,7 +1336,7 @@ function extractBorders(xf, workbookStyles) {
|
|
|
1324
1336
|
* `thin` and lost `mediumDashed` / `dashDot` / `dashDotDot` /
|
|
1325
1337
|
* `slantDashDot` entirely.
|
|
1326
1338
|
*/
|
|
1327
|
-
function mapBorderStyle(excelStyle) {
|
|
1339
|
+
export function mapBorderStyle(excelStyle) {
|
|
1328
1340
|
switch (excelStyle) {
|
|
1329
1341
|
case "hair":
|
|
1330
1342
|
return "hair";
|
|
@@ -1357,7 +1369,7 @@ function mapBorderStyle(excelStyle) {
|
|
|
1357
1369
|
/**
|
|
1358
1370
|
* Map border width based on style
|
|
1359
1371
|
*/
|
|
1360
|
-
function mapBorderWidth(excelStyle) {
|
|
1372
|
+
export function mapBorderWidth(excelStyle) {
|
|
1361
1373
|
switch (excelStyle) {
|
|
1362
1374
|
case "hair":
|
|
1363
1375
|
// Hair is the lightest border in OOXML — slightly thinner than
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CellData, ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, NamedRange, ProtectedRange, Slicer, SpreadsheetTheme, TableView } from "@rowsncolumns/spreadsheet";
|
|
1
|
+
import type { CellData, ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, NamedRange, ProtectedRange, Slicer, SpreadsheetTheme, TableView, WorkbookProtection } from "@rowsncolumns/spreadsheet";
|
|
2
2
|
import type { CommentThread, IterativeCalculationOptions, NamedCellStyle } from "@rowsncolumns/common-types";
|
|
3
3
|
import type { CustomTableStyle, EmbeddedObject } from "@rowsncolumns/spreadsheet";
|
|
4
4
|
import { type Sheet } from "@rowsncolumns/spreadsheet";
|
|
@@ -217,6 +217,8 @@ export type WorkerResponse = {
|
|
|
217
217
|
error?: string;
|
|
218
218
|
requiresRecalc?: boolean;
|
|
219
219
|
iterativeCalculationOptions?: IterativeCalculationOptions;
|
|
220
|
+
/** `<workbookProtection>` — Excel's "Protect Workbook" state, when present. */
|
|
221
|
+
workbookProtection?: WorkbookProtection;
|
|
220
222
|
/**
|
|
221
223
|
* The source workbook declared the 1904 date system. The emitted cell
|
|
222
224
|
* data is already converted to the 1900 system (date-formatted
|
|
@@ -349,6 +351,8 @@ export type WorkerResponse = {
|
|
|
349
351
|
namedRanges: NamedRange[];
|
|
350
352
|
requiresRecalc?: boolean;
|
|
351
353
|
iterativeCalculationOptions?: IterativeCalculationOptions;
|
|
354
|
+
/** `<workbookProtection>` — Excel's "Protect Workbook" state, when present. */
|
|
355
|
+
workbookProtection?: WorkbookProtection;
|
|
352
356
|
/** Source workbook was 1904-system; chunk data is 1900-system (see `PARSE_EXCEL_SUCCESS`). */
|
|
353
357
|
use1904?: boolean;
|
|
354
358
|
} | ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../excel-parser/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,SAAS,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../excel-parser/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,aAAa,EACb,2BAA2B,EAC3B,cAAc,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE1D,MAAM,MAAM,0BAA0B,GAAG,cAAc,GAAG;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAE/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,YAAY,GAAG;IAEzB,SAAS,EAAE,MAAM,CAAC;IAElB,MAAM,EAAE,MAAM,CAAC;IAEf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,UAAU,EAAE,MAAM,CAAC;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,iBAAiB,GAAG;IAE9B,OAAO,EAAE,MAAM,CAAC;IAEhB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAEpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACxD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;AAEnD,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,gBAAgB,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;IACtD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,oBAAY,WAAW;IACrB,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC;;;;OAIG;IACH,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;CACtC;AAED,oBAAY,YAAY;IACtB,mBAAmB,wBAAwB;IAC3C,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,kBAAkB,uBAAuB;IACzC,iBAAiB,sBAAsB;IACvC,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;IACzC,0BAA0B,+BAA+B;IACzD,kCAAkC,uCAAuC;IACzE,KAAK,UAAU;IACf,kBAAkB,uBAAuB;IACzC,0BAA0B,+BAA+B;IACzD,uBAAuB,4BAA4B;IACnD,0BAA0B,+BAA+B;IACzD,kBAAkB,uBAAuB;IACzC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,0BAA0B,+BAA+B;IACzD,2BAA2B,gCAAgC;IAC3D,iBAAiB,sBAAsB;IACvC;;;;;;OAMG;IACH,eAAe,oBAAoB;IACnC,uEAAuE;IACvE,sBAAsB,2BAA2B;IACjD,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;CAClC;AAGD,MAAM,MAAM,aAAa,GACrB;IACE,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC;IACrC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACD;IACE,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC;IACpC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC;CAC1B,GACD;IACE,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GACD;IACE,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC;CACvC,GACD;IACE,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC;CACrC,GACD;IACE,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACD;IACE,WAAW,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACD;IACE,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;CACH,GACD;IACE,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,WAAW,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEN,MAAM,MAAM,cAAc,GACtB;IACE,YAAY,EAAE,YAAY,CAAC,mBAAmB,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,kBAAkB,CAAC;IAC9C,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,eAAe,CAAC;IAC3C,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAC7C,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;IACxD,mEAAmE;IACnE,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,GACD;IACE,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,oBAAoB,CAAC;IAChD,QAAQ,EAAE,0BAA0B,EAAE,CAAC;CACxC,GACD;IACE,YAAY,EAAE,YAAY,CAAC,kBAAkB,CAAC;IAC9C,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAC7C,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,+FAA+F;IAC/F,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACxC,GACD;IACE,YAAY,EAAE,YAAY,CAAC,oBAAoB,CAAC;CACjD,GACD;IACE,YAAY,EAAE,YAAY,CAAC,sBAAsB,CAAC;CACnD,GACD;IACE,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,kBAAkB,CAAC;IAC9C,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,uBAAuB,CAAC;IACnD,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,GACD;IACE,YAAY,EAAE,YAAY,CAAC,0BAA0B,CAAC;IACtD;;;OAGG;IACH,aAAa,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;CACnD,GACD;IACE,YAAY,EAAE,YAAY,CAAC,kBAAkB,CAAC;CAC/C,GACD;IACE,YAAY,EAAE,YAAY,CAAC,eAAe,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,0BAA0B,CAAC;IACtD,eAAe,EAAE,wBAAwB,EAAE,CAAC;CAC7C,GACD;IACE,YAAY,EAAE,YAAY,CAAC,0BAA0B,CAAC;CACvD,GACD;IACE,YAAY,EAAE,YAAY,CAAC,kCAAkC,CAAC;IAC9D,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;CAChD,GACD;IACE,YAAY,EAAE,YAAY,CAAC,mBAAmB,CAAC;IAC/C,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,wBAAwB,CAAC;IACpD,WAAW,EAAE,OAAO,2BAA2B,EAAE,UAAU,EAAE,CAAC;CAC/D,GACD;IACE,YAAY,EAAE,YAAY,CAAC,0BAA0B,CAAC;IACtD,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,GACD;IACE,YAAY,EAAE,YAAY,CAAC,2BAA2B,CAAC;IACvD;;;;OAIG;IACH,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC,GACD;IACE,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,YAAY,EAAE,YAAY,CAAC,sBAAsB,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,8FAA8F;IAC9F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD,CAAC;IACC,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;CAC7D,GAAG,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,GACnE;IACE,YAAY,EAAE,YAAY,CAAC,cAAc,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;IAC/C,eAAe,EAAE,wBAAwB,EAAE,CAAC;IAC5C;;;;OAIG;IACH,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC;;;;OAIG;IACH,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC"}
|
|
@@ -31,6 +31,7 @@ export declare class WorkBook implements IWorkbookPlugin {
|
|
|
31
31
|
get sharedFormulaMap(): Map<string, [string, string]> | undefined;
|
|
32
32
|
requiresRecalc(): boolean;
|
|
33
33
|
getIterativeCalculationOptions(): import("@rowsncolumns/common-types").IterativeCalculationOptions | undefined;
|
|
34
|
+
getWorkbookProtection(): import("@rowsncolumns/spreadsheet").WorkbookProtection | undefined;
|
|
34
35
|
getUse1904Epoch(): boolean;
|
|
35
36
|
getSharedStrings(): string[];
|
|
36
37
|
processSheetData(chunkSize?: number, enableCellXfsRegistry?: boolean, enableSharedStrings?: boolean, onPhase?: (phase: string, sheetTitle?: string) => void): AsyncGenerator<import("./types").ProcessSheetDataResult, void, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workbook.d.ts","sourceRoot":"","sources":["../../../excel-parser/workbook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,2BAA2B,IAAI,4BAA4B,EAC3D,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,+BAA+B,EAC/B,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAsBjB,qBAAa,QAAS,YAAW,eAAe;IAC9C,OAAO,CAAC,MAAM,CAAmB;;IAI3B,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAqB3E,OAAO;IAIP,aAAa;IAIb,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;IAIvD;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAe/C,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAehC,QAAQ;IAIR,6EAA6E;IAC7E,kBAAkB;IAGlB,oBAAoB;IAIpB,0EAA0E;IAC1E,cAAc;IAId,QAAQ;IAIR,UAAU;IAIV,SAAS;IAIT,IAAI,cAAc,QAEjB;IAED,IAAI,aAAa,yBAEhB;IAED,IAAI,oBAAoB,kFAEvB;IAED,IAAI,gBAAgB,8CAEnB;IAED,cAAc;IAId,8BAA8B;IAI9B,eAAe;IAIf,gBAAgB;IAIhB,gBAAgB,CACd,SAAS,CAAC,EAAE,MAAM,EAClB,qBAAqB,CAAC,EAAE,OAAO,EAC/B,mBAAmB,CAAC,EAAE,OAAO,EAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI;IAUxD,wBAAwB,CAAC,OAAO,EAAE,+BAA+B;IAmBjE,kBAAkB,CAAC,OAAO,EAAE,MAAM;IAIlC,WAAW;IAIX,SAAS;IAIT,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM;IAgBzC,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM;IAgBnC,cAAc;IAId,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM;IAInC,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM;IAIlC,UAAU;IAIV,cAAc;IAId,aAAa;IAIb,gBAAgB;IAIV,aAAa;IAInB,cAAc,CAAC,MAAM,EAAE,GAAG;CAM3B;AAED,eAAO,MAAM,2BAA2B,qCAA+B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"workbook.d.ts","sourceRoot":"","sources":["../../../excel-parser/workbook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,2BAA2B,IAAI,4BAA4B,EAC3D,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,+BAA+B,EAC/B,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAsBjB,qBAAa,QAAS,YAAW,eAAe;IAC9C,OAAO,CAAC,MAAM,CAAmB;;IAI3B,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAqB3E,OAAO;IAIP,aAAa;IAIb,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;IAIvD;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAe/C,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAehC,QAAQ;IAIR,6EAA6E;IAC7E,kBAAkB;IAGlB,oBAAoB;IAIpB,0EAA0E;IAC1E,cAAc;IAId,QAAQ;IAIR,UAAU;IAIV,SAAS;IAIT,IAAI,cAAc,QAEjB;IAED,IAAI,aAAa,yBAEhB;IAED,IAAI,oBAAoB,kFAEvB;IAED,IAAI,gBAAgB,8CAEnB;IAED,cAAc;IAId,8BAA8B;IAI9B,qBAAqB;IAIrB,eAAe;IAIf,gBAAgB;IAIhB,gBAAgB,CACd,SAAS,CAAC,EAAE,MAAM,EAClB,qBAAqB,CAAC,EAAE,OAAO,EAC/B,mBAAmB,CAAC,EAAE,OAAO,EAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI;IAUxD,wBAAwB,CAAC,OAAO,EAAE,+BAA+B;IAmBjE,kBAAkB,CAAC,OAAO,EAAE,MAAM;IAIlC,WAAW;IAIX,SAAS;IAIT,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM;IAgBzC,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM;IAgBnC,cAAc;IAId,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM;IAInC,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM;IAIlC,UAAU;IAIV,cAAc;IAId,aAAa;IAIb,gBAAgB;IAIV,aAAa;IAInB,cAAc,CAAC,MAAM,EAAE,GAAG;CAM3B;AAED,eAAO,MAAM,2BAA2B,qCAA+B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -117,6 +117,9 @@ export class WorkBook {
|
|
|
117
117
|
getIterativeCalculationOptions() {
|
|
118
118
|
return this.plugin.getIterativeCalculationOptions();
|
|
119
119
|
}
|
|
120
|
+
getWorkbookProtection() {
|
|
121
|
+
return this.plugin.getWorkbookProtection?.();
|
|
122
|
+
}
|
|
120
123
|
getUse1904Epoch() {
|
|
121
124
|
return this.plugin.getUse1904Epoch();
|
|
122
125
|
}
|
|
@@ -176,6 +176,7 @@ const postOpenWorkbookComplete = async (s) => {
|
|
|
176
176
|
namedRanges: s.workbook.getNamedRanges(),
|
|
177
177
|
requiresRecalc: s.workbook.requiresRecalc(),
|
|
178
178
|
iterativeCalculationOptions: s.workbook.getIterativeCalculationOptions(),
|
|
179
|
+
workbookProtection: s.workbook.getWorkbookProtection(),
|
|
179
180
|
use1904: s.workbook.getUse1904Epoch(),
|
|
180
181
|
});
|
|
181
182
|
};
|
|
@@ -516,6 +517,7 @@ self.onmessage = async (e) => {
|
|
|
516
517
|
responseType: ResponseType.PARSE_EXCEL_SUCCESS,
|
|
517
518
|
requiresRecalc: workbook.requiresRecalc(),
|
|
518
519
|
iterativeCalculationOptions: workbook.getIterativeCalculationOptions(),
|
|
520
|
+
workbookProtection: workbook.getWorkbookProtection(),
|
|
519
521
|
use1904: workbook.getUse1904Epoch(),
|
|
520
522
|
});
|
|
521
523
|
// Pass theme back
|
|
@@ -804,6 +806,7 @@ self.onmessage = async (e) => {
|
|
|
804
806
|
responseType: ResponseType.PARSE_EXCEL_SUCCESS,
|
|
805
807
|
requiresRecalc: workbook.requiresRecalc(),
|
|
806
808
|
iterativeCalculationOptions: workbook.getIterativeCalculationOptions(),
|
|
809
|
+
workbookProtection: workbook.getWorkbookProtection(),
|
|
807
810
|
});
|
|
808
811
|
self.postMessage({
|
|
809
812
|
responseType: ResponseType.GET_THEME_SUCCESS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-builder.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/chart-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,aAAa,EAEd,MAAM,2BAA2B,CAAC;AA63CnC;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,YAAY,EAAE,MAAM,GAAG,MAAM,KAC1B,MAAM,GAAG,SAAS,CAAC;AAExB,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,EACpB,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,yBAAyB,sBAAsB,KAC9C,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"chart-builder.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/chart-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,aAAa,EAEd,MAAM,2BAA2B,CAAC;AA63CnC;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,YAAY,EAAE,MAAM,GAAG,MAAM,KAC1B,MAAM,GAAG,SAAS,CAAC;AAExB,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,EACpB,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,yBAAyB,sBAAsB,KAC9C,MAAM,GAAG,SAwqBX,CAAC"}
|
|
@@ -1667,9 +1667,89 @@ export const buildChartXml = (input, sheetNameById, resolvePivotSourceName) => {
|
|
|
1667
1667
|
"a:srgbClr": { a$: { val: borderHex } },
|
|
1668
1668
|
};
|
|
1669
1669
|
}
|
|
1670
|
+
normalizeSeriesChildOrder(chartSpace["c:chartSpace"]?.["c:chart"]?.["c:plotArea"]);
|
|
1670
1671
|
const xml = chartBuilder.build(chartSpace);
|
|
1671
1672
|
return `${XML_DECLARATION}${xml}`;
|
|
1672
1673
|
};
|
|
1674
|
+
/**
|
|
1675
|
+
* The `CT_*Ser` child sequence (ECMA-376 §21.2.2.15 CT_BarSer, §21.2.2.106
|
|
1676
|
+
* CT_LineSer, §21.2.2.161 CT_ScatterSer, §21.2.2.135 CT_PieSer, §21.2.2.11
|
|
1677
|
+
* CT_AreaSer, §21.2.2.22 CT_BubbleSer, merged): every series type uses a
|
|
1678
|
+
* subset of this list in this order. The builders above assemble a series
|
|
1679
|
+
* node from a template plus late additions (`c:tx`, `c:cat`, trendlines,
|
|
1680
|
+
* `c:extLst`, …) in whatever order the features are applied, and the XML
|
|
1681
|
+
* builder emits keys in insertion order — Excel tolerates the resulting
|
|
1682
|
+
* misorder, but LibreOffice, Google Sheets and the python chart libraries
|
|
1683
|
+
* validate the sequence and reject the part.
|
|
1684
|
+
*/
|
|
1685
|
+
const SERIES_CHILD_ORDER = [
|
|
1686
|
+
"c:idx",
|
|
1687
|
+
"c:order",
|
|
1688
|
+
"c:tx",
|
|
1689
|
+
"c:spPr",
|
|
1690
|
+
"c:invertIfNegative",
|
|
1691
|
+
"c:pictureOptions",
|
|
1692
|
+
"c:marker",
|
|
1693
|
+
"c:explosion",
|
|
1694
|
+
"c:dPt",
|
|
1695
|
+
"c:dLbls",
|
|
1696
|
+
"c:trendline",
|
|
1697
|
+
"c:errBars",
|
|
1698
|
+
"c:cat",
|
|
1699
|
+
"c:val",
|
|
1700
|
+
"c:xVal",
|
|
1701
|
+
"c:yVal",
|
|
1702
|
+
"c:bubbleSize",
|
|
1703
|
+
"c:bubble3D",
|
|
1704
|
+
"c:shape",
|
|
1705
|
+
"c:smooth",
|
|
1706
|
+
"c:extLst",
|
|
1707
|
+
];
|
|
1708
|
+
const seriesChildRank = (key) => {
|
|
1709
|
+
if (key === "a$")
|
|
1710
|
+
return -1;
|
|
1711
|
+
const rank = SERIES_CHILD_ORDER.indexOf(key);
|
|
1712
|
+
return rank === -1 ? SERIES_CHILD_ORDER.length : rank;
|
|
1713
|
+
};
|
|
1714
|
+
/** Re-key one `<c:ser>` object node into schema order (stable for ties). */
|
|
1715
|
+
const reorderSeriesNode = (node) => {
|
|
1716
|
+
if (!node || typeof node !== "object" || Array.isArray(node))
|
|
1717
|
+
return;
|
|
1718
|
+
const keys = Object.keys(node);
|
|
1719
|
+
const sorted = [...keys].sort((a, b) => seriesChildRank(a) - seriesChildRank(b) || keys.indexOf(a) - keys.indexOf(b));
|
|
1720
|
+
if (sorted.every((key, i) => key === keys[i]))
|
|
1721
|
+
return;
|
|
1722
|
+
const entries = sorted.map((key) => [key, node[key]]);
|
|
1723
|
+
for (const key of keys)
|
|
1724
|
+
delete node[key];
|
|
1725
|
+
for (const [key, value] of entries)
|
|
1726
|
+
node[key] = value;
|
|
1727
|
+
};
|
|
1728
|
+
/**
|
|
1729
|
+
* Walk every chart-type container under `<c:plotArea>` (including the ones
|
|
1730
|
+
* nested in an `mc:AlternateContent` fallback) and put each `<c:ser>`'s
|
|
1731
|
+
* children into schema order.
|
|
1732
|
+
*/
|
|
1733
|
+
const normalizeSeriesChildOrder = (plotArea) => {
|
|
1734
|
+
const visit = (node, depth) => {
|
|
1735
|
+
if (!node || typeof node !== "object" || depth > 4)
|
|
1736
|
+
return;
|
|
1737
|
+
if (Array.isArray(node)) {
|
|
1738
|
+
node.forEach((item) => visit(item, depth));
|
|
1739
|
+
return;
|
|
1740
|
+
}
|
|
1741
|
+
const ser = node["c:ser"];
|
|
1742
|
+
if (ser) {
|
|
1743
|
+
(Array.isArray(ser) ? ser : [ser]).forEach(reorderSeriesNode);
|
|
1744
|
+
}
|
|
1745
|
+
for (const [key, value] of Object.entries(node)) {
|
|
1746
|
+
if (key === "c:ser" || key === "a$" || key === "t$")
|
|
1747
|
+
continue;
|
|
1748
|
+
visit(value, depth + 1);
|
|
1749
|
+
}
|
|
1750
|
+
};
|
|
1751
|
+
visit(plotArea, 0);
|
|
1752
|
+
};
|
|
1673
1753
|
/** `#RRGGBB` / `RRGGBB` → uppercase `RRGGBB`; anything else is not emitted. */
|
|
1674
1754
|
const toHex = (color) => {
|
|
1675
1755
|
if (typeof color !== "string")
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* qualified exactly once.
|
|
2
|
+
* Excel "future functions" — functions added after the Excel 2007 (.xlsx)
|
|
3
|
+
* file format was frozen — must be written into sheet XML behind a `_xlfn.`
|
|
4
|
+
* namespace prefix. The list and both directions of the transform live in
|
|
5
|
+
* `helpers/excel-formula-prefixes` (the importer strips what the exporter
|
|
6
|
+
* adds); this module keeps the exporter-side entry point.
|
|
8
7
|
*/
|
|
9
|
-
export
|
|
8
|
+
export { FUTURE_FUNCTION_NAMES, WORKSHEET_SCOPED_FUTURE_FUNCTIONS, qualifyFutureFunctions, } from "../../helpers/excel-formula-prefixes";
|
|
10
9
|
//# sourceMappingURL=future-functions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"future-functions.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/future-functions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"future-functions.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/future-functions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,qBAAqB,EACrB,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,sCAAsC,CAAC"}
|
|
@@ -1,264 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Excel "future functions" — functions added after the Excel 2007 (.xlsx)
|
|
3
|
-
* file format was frozen
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* the implicit-intersection operator (`=@DAYS(...)`) and evaluates `#NAME?`.
|
|
8
|
-
*
|
|
9
|
-
* The list follows Microsoft's documentation of `_xlfn.`-prefixed functions
|
|
10
|
-
* ("Issue: An _xlfn. prefix is displayed in front of a function in a
|
|
11
|
-
* formula", support.microsoft.com) plus the dynamic-array / LAMBDA-era and
|
|
12
|
-
* 2024 additions that ship with the same prefix convention.
|
|
3
|
+
* file format was frozen — must be written into sheet XML behind a `_xlfn.`
|
|
4
|
+
* namespace prefix. The list and both directions of the transform live in
|
|
5
|
+
* `helpers/excel-formula-prefixes` (the importer strips what the exporter
|
|
6
|
+
* adds); this module keeps the exporter-side entry point.
|
|
13
7
|
*/
|
|
14
|
-
|
|
15
|
-
"ACOT",
|
|
16
|
-
"ACOTH",
|
|
17
|
-
"AGGREGATE",
|
|
18
|
-
"ANCHORARRAY",
|
|
19
|
-
"ARABIC",
|
|
20
|
-
"ARRAYTOTEXT",
|
|
21
|
-
"BASE",
|
|
22
|
-
"BETA.DIST",
|
|
23
|
-
"BETA.INV",
|
|
24
|
-
"BINOM.DIST",
|
|
25
|
-
"BINOM.DIST.RANGE",
|
|
26
|
-
"BINOM.INV",
|
|
27
|
-
"BITAND",
|
|
28
|
-
"BITLSHIFT",
|
|
29
|
-
"BITOR",
|
|
30
|
-
"BITRSHIFT",
|
|
31
|
-
"BITXOR",
|
|
32
|
-
"BYCOL",
|
|
33
|
-
"BYROW",
|
|
34
|
-
"CEILING.MATH",
|
|
35
|
-
"CEILING.PRECISE",
|
|
36
|
-
"CHISQ.DIST",
|
|
37
|
-
"CHISQ.DIST.RT",
|
|
38
|
-
"CHISQ.INV",
|
|
39
|
-
"CHISQ.INV.RT",
|
|
40
|
-
"CHISQ.TEST",
|
|
41
|
-
"CHOOSECOLS",
|
|
42
|
-
"CHOOSEROWS",
|
|
43
|
-
"COMBINA",
|
|
44
|
-
"CONCAT",
|
|
45
|
-
"CONFIDENCE.NORM",
|
|
46
|
-
"CONFIDENCE.T",
|
|
47
|
-
"COT",
|
|
48
|
-
"COTH",
|
|
49
|
-
"COVARIANCE.P",
|
|
50
|
-
"COVARIANCE.S",
|
|
51
|
-
"CSC",
|
|
52
|
-
"CSCH",
|
|
53
|
-
"DAYS",
|
|
54
|
-
"DECIMAL",
|
|
55
|
-
"DETECTLANGUAGE",
|
|
56
|
-
"DROP",
|
|
57
|
-
"ENCODEURL",
|
|
58
|
-
"ERF.PRECISE",
|
|
59
|
-
"ERFC.PRECISE",
|
|
60
|
-
"EXPAND",
|
|
61
|
-
"EXPON.DIST",
|
|
62
|
-
"F.DIST",
|
|
63
|
-
"F.DIST.RT",
|
|
64
|
-
"F.INV",
|
|
65
|
-
"F.INV.RT",
|
|
66
|
-
"F.TEST",
|
|
67
|
-
"FIELDVALUE",
|
|
68
|
-
"FILTER",
|
|
69
|
-
"FILTERXML",
|
|
70
|
-
"FLOOR.MATH",
|
|
71
|
-
"FLOOR.PRECISE",
|
|
72
|
-
"FORECAST.ETS",
|
|
73
|
-
"FORECAST.ETS.CONFINT",
|
|
74
|
-
"FORECAST.ETS.SEASONALITY",
|
|
75
|
-
"FORECAST.ETS.STAT",
|
|
76
|
-
"FORECAST.LINEAR",
|
|
77
|
-
"FORMULATEXT",
|
|
78
|
-
"GAMMA",
|
|
79
|
-
"GAMMA.DIST",
|
|
80
|
-
"GAMMA.INV",
|
|
81
|
-
"GAMMALN.PRECISE",
|
|
82
|
-
"GAUSS",
|
|
83
|
-
"GROUPBY",
|
|
84
|
-
"HSTACK",
|
|
85
|
-
"HYPGEOM.DIST",
|
|
86
|
-
"IFNA",
|
|
87
|
-
"IFS",
|
|
88
|
-
"IMAGE",
|
|
89
|
-
"IMCOSH",
|
|
90
|
-
"IMCOT",
|
|
91
|
-
"IMCSC",
|
|
92
|
-
"IMCSCH",
|
|
93
|
-
"IMSEC",
|
|
94
|
-
"IMSECH",
|
|
95
|
-
"IMSINH",
|
|
96
|
-
"IMTAN",
|
|
97
|
-
"ISFORMULA",
|
|
98
|
-
"ISOMITTED",
|
|
99
|
-
"ISOWEEKNUM",
|
|
100
|
-
"LAMBDA",
|
|
101
|
-
"LET",
|
|
102
|
-
"LOGNORM.DIST",
|
|
103
|
-
"LOGNORM.INV",
|
|
104
|
-
"MAKEARRAY",
|
|
105
|
-
"MAP",
|
|
106
|
-
"MAXIFS",
|
|
107
|
-
"MINIFS",
|
|
108
|
-
"MODE.MULT",
|
|
109
|
-
"MODE.SNGL",
|
|
110
|
-
"MUNIT",
|
|
111
|
-
"NEGBINOM.DIST",
|
|
112
|
-
"NETWORKDAYS.INTL",
|
|
113
|
-
"NORM.DIST",
|
|
114
|
-
"NORM.INV",
|
|
115
|
-
"NORM.S.DIST",
|
|
116
|
-
"NORM.S.INV",
|
|
117
|
-
"NUMBERVALUE",
|
|
118
|
-
"PDURATION",
|
|
119
|
-
"PERCENTILE.EXC",
|
|
120
|
-
"PERCENTILE.INC",
|
|
121
|
-
"PERCENTOF",
|
|
122
|
-
"PERCENTRANK.EXC",
|
|
123
|
-
"PERCENTRANK.INC",
|
|
124
|
-
"PERMUTATIONA",
|
|
125
|
-
"PHI",
|
|
126
|
-
"PIVOTBY",
|
|
127
|
-
"POISSON.DIST",
|
|
128
|
-
"QUARTILE.EXC",
|
|
129
|
-
"QUARTILE.INC",
|
|
130
|
-
"QUERYSTRING",
|
|
131
|
-
"RANDARRAY",
|
|
132
|
-
"RANK.AVG",
|
|
133
|
-
"RANK.EQ",
|
|
134
|
-
"REDUCE",
|
|
135
|
-
"REGEXEXTRACT",
|
|
136
|
-
"REGEXREPLACE",
|
|
137
|
-
"REGEXTEST",
|
|
138
|
-
"RRI",
|
|
139
|
-
"SCAN",
|
|
140
|
-
"SEC",
|
|
141
|
-
"SECH",
|
|
142
|
-
"SEQUENCE",
|
|
143
|
-
"SHEET",
|
|
144
|
-
"SHEETS",
|
|
145
|
-
"SINGLE",
|
|
146
|
-
"SKEW.P",
|
|
147
|
-
"SORT",
|
|
148
|
-
"SORTBY",
|
|
149
|
-
"STDEV.P",
|
|
150
|
-
"STDEV.S",
|
|
151
|
-
"STOCKHISTORY",
|
|
152
|
-
"SWITCH",
|
|
153
|
-
"T.DIST",
|
|
154
|
-
"T.DIST.2T",
|
|
155
|
-
"T.DIST.RT",
|
|
156
|
-
"T.INV",
|
|
157
|
-
"T.INV.2T",
|
|
158
|
-
"T.TEST",
|
|
159
|
-
"TAKE",
|
|
160
|
-
"TEXTAFTER",
|
|
161
|
-
"TEXTBEFORE",
|
|
162
|
-
"TEXTJOIN",
|
|
163
|
-
"TEXTSPLIT",
|
|
164
|
-
"TOCOL",
|
|
165
|
-
"TOROW",
|
|
166
|
-
"TRANSLATE",
|
|
167
|
-
"TRIMRANGE",
|
|
168
|
-
"UNICHAR",
|
|
169
|
-
"UNICODE",
|
|
170
|
-
"UNIQUE",
|
|
171
|
-
"VALUETOTEXT",
|
|
172
|
-
"VAR.P",
|
|
173
|
-
"VAR.S",
|
|
174
|
-
"VSTACK",
|
|
175
|
-
"WEBSERVICE",
|
|
176
|
-
"WEIBULL.DIST",
|
|
177
|
-
"WORKDAY.INTL",
|
|
178
|
-
"WRAPCOLS",
|
|
179
|
-
"WRAPROWS",
|
|
180
|
-
"XLOOKUP",
|
|
181
|
-
"XMATCH",
|
|
182
|
-
"XOR",
|
|
183
|
-
"Z.TEST",
|
|
184
|
-
];
|
|
185
|
-
/**
|
|
186
|
-
* Future functions that Excel writes behind the worksheet-scope prefix
|
|
187
|
-
* (`_xlfn._xlws.`) rather than plain `_xlfn.` — the dynamic-array functions
|
|
188
|
-
* that also exist as worksheet-only names.
|
|
189
|
-
*/
|
|
190
|
-
const WORKSHEET_SCOPED_FUTURE_FUNCTIONS = new Set([
|
|
191
|
-
"FILTER",
|
|
192
|
-
"SORT",
|
|
193
|
-
]);
|
|
194
|
-
const QUALIFIED_BY_NAME = new Map(FUTURE_FUNCTION_NAMES.map((name) => [
|
|
195
|
-
name,
|
|
196
|
-
WORKSHEET_SCOPED_FUTURE_FUNCTIONS.has(name)
|
|
197
|
-
? `_xlfn._xlws.${name}`
|
|
198
|
-
: `_xlfn.${name}`,
|
|
199
|
-
]));
|
|
200
|
-
// Longest names first so `T.DIST.2T` wins over `T.DIST`. The match must be
|
|
201
|
-
// followed by `(` — a bare name (e.g. the defined name `DAYS`) is not a call.
|
|
202
|
-
const FUTURE_FUNCTION_REGEX = new RegExp("(" +
|
|
203
|
-
[...FUTURE_FUNCTION_NAMES]
|
|
204
|
-
.sort((a, b) => b.length - a.length)
|
|
205
|
-
.map((name) => name.replace(/\./g, "\\."))
|
|
206
|
-
.join("|") +
|
|
207
|
-
")(\\s*\\()", "gi");
|
|
208
|
-
// `\b` is not enough of a left boundary: it would match the `DAYS` in
|
|
209
|
-
// `_xlfn.DAYS` and in `MYDAYS`. The preceding character is checked by offset
|
|
210
|
-
// instead of being consumed by the pattern, so nested calls
|
|
211
|
-
// (`SORT(FILTER(...))`) still match after the enclosing one.
|
|
212
|
-
const FUTURE_FUNCTION_LEFT_BOUNDARY = /[A-Za-z0-9_.$]/;
|
|
213
|
-
function qualifySegment(segment) {
|
|
214
|
-
const stripped = segment
|
|
215
|
-
.replace(/_xlfn\./gi, "")
|
|
216
|
-
.replace(/_xlws\./gi, "")
|
|
217
|
-
.replace(/_xludf\./gi, "");
|
|
218
|
-
return stripped.replace(FUTURE_FUNCTION_REGEX, (match, name, open, offset) => {
|
|
219
|
-
if (offset > 0 &&
|
|
220
|
-
FUTURE_FUNCTION_LEFT_BOUNDARY.test(stripped[offset - 1])) {
|
|
221
|
-
return match;
|
|
222
|
-
}
|
|
223
|
-
const qualified = QUALIFIED_BY_NAME.get(name.toUpperCase());
|
|
224
|
-
return qualified ? qualified + open : match;
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Strip the `_xlfn.` / `_xlws.` / `_xludf.` prefixes and re-add the correct
|
|
229
|
-
* one to every future-function call in `formula`. Quoted spans are copied
|
|
230
|
-
* verbatim so string literals (`"…"`) and quoted sheet names (`'…'`) keep
|
|
231
|
-
* their original text; a doubled quote inside a span is an escaped quote.
|
|
232
|
-
* Because the strip pass runs first, already-qualified input comes out
|
|
233
|
-
* qualified exactly once.
|
|
234
|
-
*/
|
|
235
|
-
export function qualifyFutureFunctions(formula) {
|
|
236
|
-
let result = "";
|
|
237
|
-
let segmentStart = 0;
|
|
238
|
-
let index = 0;
|
|
239
|
-
while (index < formula.length) {
|
|
240
|
-
const char = formula[index];
|
|
241
|
-
if (char !== '"' && char !== "'") {
|
|
242
|
-
index++;
|
|
243
|
-
continue;
|
|
244
|
-
}
|
|
245
|
-
result += qualifySegment(formula.slice(segmentStart, index));
|
|
246
|
-
let end = index + 1;
|
|
247
|
-
while (end < formula.length) {
|
|
248
|
-
if (formula[end] === char) {
|
|
249
|
-
if (formula[end + 1] === char) {
|
|
250
|
-
end += 2;
|
|
251
|
-
continue;
|
|
252
|
-
}
|
|
253
|
-
break;
|
|
254
|
-
}
|
|
255
|
-
end++;
|
|
256
|
-
}
|
|
257
|
-
// An unterminated literal consumes the rest of the formula.
|
|
258
|
-
const literalEnd = end < formula.length ? end + 1 : formula.length;
|
|
259
|
-
result += formula.slice(index, literalEnd);
|
|
260
|
-
index = literalEnd;
|
|
261
|
-
segmentStart = literalEnd;
|
|
262
|
-
}
|
|
263
|
-
return result + qualifySegment(formula.slice(segmentStart));
|
|
264
|
-
}
|
|
8
|
+
export { FUTURE_FUNCTION_NAMES, WORKSHEET_SCOPED_FUTURE_FUNCTIONS, qualifyFutureFunctions, } from "../../helpers/excel-formula-prefixes";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style-builder.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/style-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,QAAQ,EACR,UAAU,EACV,KAAK,EAEL,UAAU,EACV,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"style-builder.d.ts","sourceRoot":"","sources":["../../../../exporter/xlsx/style-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,QAAQ,EACR,UAAU,EACV,KAAK,EAEL,UAAU,EACV,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,iCAAiC,CAAC;AA4F/D,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAKF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,eAAe,CAAC,EAAE,KAAK,CAAC;QACxB,SAAS,CAAC,EAAE,KAAK,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACJ,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GACxC,aAAa,gBAAgB,KAC5B,sBAAsB,CAAC,UAAU,CAqBnC,CAAC;AAEF,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,KAAK,CAKX;IACF,OAAO,CAAC,KAAK,CAA+D;IAC5E,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,eAAe,CAErB;IACF,OAAO,CAAC,iBAAiB,CAAgC;IAEzD;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,EAAE;IAUlD;;;;;;;OAOG;IACH,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,EAAE;IAOtD,OAAO,CAAC,OAAO,CAOb;IAEF,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,MAAM,CAA6B;;IAU3C;;;;;;;OAOG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;IASzC,YAAY,CAAC,CAAC,SAAS,QAAQ,EAC7B,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAC1B,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS;IACnC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,GAC/C,MAAM;IAsET,0BAA0B,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;IAsCrD,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,SAAS;IA2DjB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,YAAY;IAQpB,KAAK;CA6JN"}
|