ooxml-core 1.19.2 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -1
- package/dist/{PptxHandler-2V4PQL6O.mjs → PptxHandler-FYD7IYXT.mjs} +2 -2
- package/dist/PptxHandler-SITN3K3F.mjs +4 -0
- package/dist/{PptxHandler-6TNIQ7S5.cjs → PptxHandler-TEKISCJO.cjs} +3 -3
- package/dist/{PresentationBuilder-HQ6C7L4V.mjs → PresentationBuilder-EYI6Z2JP.mjs} +2 -2
- package/dist/{PresentationBuilder-G7MPEGXJ.mjs → PresentationBuilder-IMB4DVRN.mjs} +2 -2
- package/dist/{PresentationBuilder-RM52LCVN.cjs → PresentationBuilder-NCKASKXU.cjs} +5 -5
- package/dist/automation/index.cjs +257 -30
- package/dist/automation/index.mjs +256 -31
- package/dist/automation/xlsx-read.d.ts +56 -0
- package/dist/automation/xlsx-read.d.ts.map +1 -0
- package/dist/automation/xlsx.d.ts +105 -4
- package/dist/automation/xlsx.d.ts.map +1 -1
- package/dist/{chunk-M6GDBVQ7.mjs → chunk-GQYQQ3GA.mjs} +1 -1
- package/dist/{chunk-SLNQNVQM.mjs → chunk-LEV2SVMK.mjs} +1 -1
- package/dist/{chunk-JUABSM7C.mjs → chunk-LVM3IZJ2.mjs} +1 -1
- package/dist/{chunk-TJPUAUWL.mjs → chunk-MN27HKHM.mjs} +8 -194
- package/dist/{chunk-4FTUAD2B.mjs → chunk-MNXKRXFB.mjs} +715 -200
- package/dist/{chunk-R5FIHHGB.cjs → chunk-NXKATFM5.cjs} +1598 -1204
- package/dist/{chunk-ZJ2OKIJN.mjs → chunk-WXY5EDGT.mjs} +592 -198
- package/dist/index.cjs +25 -0
- package/dist/index.mjs +25 -0
- package/dist/pptx/automation/index.cjs +887 -453
- package/dist/pptx/automation/index.d.ts +2 -2
- package/dist/pptx/automation/index.mjs +5 -5
- package/dist/pptx/chunks/{index-Bqm-jFG-.d.ts → index-CgFX0T7b.d.ts} +7573 -7508
- package/dist/pptx/chunks/index-CgFX0T7b.d.ts.map +1 -0
- package/dist/pptx/chunks/{index-B9x557hr.d.ts → index-qwVYoFn6.d.ts} +2 -2
- package/dist/pptx/chunks/{index-B9x557hr.d.ts.map → index-qwVYoFn6.d.ts.map} +1 -1
- package/dist/pptx/cli/index.cjs +654 -221
- package/dist/pptx/cli/index.mjs +4 -4
- package/dist/pptx/converter/index.d.ts +1 -1
- package/dist/pptx/converter/index.mjs +2 -2
- package/dist/pptx/editor/render/find-replace.cjs +14 -14
- package/dist/pptx/editor/render/find-replace.d.ts +1 -1
- package/dist/pptx/editor/render/find-replace.mjs +1 -1
- package/dist/pptx/editor/render/slide-operations.cjs +8 -8
- package/dist/pptx/editor/render/slide-operations.mjs +2 -2
- package/dist/pptx/index.cjs +991 -619
- package/dist/pptx/index.d.ts +3 -3
- package/dist/pptx/index.mjs +5 -5
- package/dist/visio/index.cjs +61 -7
- package/dist/visio/index.mjs +61 -7
- package/dist/visio/ui/contract.d.ts +2 -1
- package/dist/visio/ui/contract.d.ts.map +1 -1
- package/dist/visio/ui/index.cjs +62 -7
- package/dist/visio/ui/index.mjs +62 -7
- package/dist/xlsx/edit/dimensions.d.ts.map +1 -1
- package/dist/xlsx/edit/history-rows.d.ts +7 -0
- package/dist/xlsx/edit/history-rows.d.ts.map +1 -0
- package/dist/xlsx/edit/history.d.ts +11 -1
- package/dist/xlsx/edit/history.d.ts.map +1 -1
- package/dist/xlsx/edit/outline.d.ts.map +1 -1
- package/dist/xlsx/edit/row-autofit.d.ts.map +1 -1
- package/dist/xlsx/index.cjs +90 -16
- package/dist/xlsx/index.mjs +90 -16
- package/dist/xlsx/load/index.cjs +61 -7
- package/dist/xlsx/load/index.mjs +61 -7
- package/dist/xlsx/numfmt/format.d.ts +8 -0
- package/dist/xlsx/numfmt/format.d.ts.map +1 -1
- package/dist/xlsx/read/sheet-data-source.d.ts.map +1 -1
- package/dist/xlsx/ui/index.cjs +138 -16
- package/dist/xlsx/ui/index.d.ts +1 -0
- package/dist/xlsx/ui/index.d.ts.map +1 -1
- package/dist/xlsx/ui/index.mjs +138 -17
- package/dist/xlsx/ui/selection-format.d.ts +13 -0
- package/dist/xlsx/ui/selection-format.d.ts.map +1 -0
- package/dist/xml/index.cjs +25 -0
- package/dist/xml/index.mjs +25 -0
- package/dist/xml/lite.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/PptxHandler-HSPKEP5E.mjs +0 -4
- package/dist/pptx/chunks/index-Bqm-jFG-.d.ts.map +0 -1
- /package/dist/{chunk-NYTR4UZ5.cjs → chunk-3IENHIFD.cjs} +0 -0
- /package/dist/{chunk-XTSHZGSM.mjs → chunk-CC5UNZOO.mjs} +0 -0
package/dist/xlsx/ui/index.cjs
CHANGED
|
@@ -11901,6 +11901,12 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
11901
11901
|
}
|
|
11902
11902
|
if (lt < 0) break;
|
|
11903
11903
|
const next = source2.charCodeAt(lt + 1);
|
|
11904
|
+
if (next === 33) {
|
|
11905
|
+
const after = skipCommentOrCdata(source2, lt, top);
|
|
11906
|
+
if (after < 0) return void 0;
|
|
11907
|
+
pos = after;
|
|
11908
|
+
continue;
|
|
11909
|
+
}
|
|
11904
11910
|
if (next === 47) {
|
|
11905
11911
|
const gt = source2.indexOf(">", lt);
|
|
11906
11912
|
if (gt < 0 || stack2.length < 2 || source2.slice(lt + 2, gt).trimEnd() !== top.tagName)
|
|
@@ -11921,6 +11927,25 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
11921
11927
|
}
|
|
11922
11928
|
return stack2.length === 1 ? root : void 0;
|
|
11923
11929
|
}
|
|
11930
|
+
var DECLARATIONS = /<!DOCTYPE|<!ENTITY/i;
|
|
11931
|
+
function skipCommentOrCdata(source2, lt, parent) {
|
|
11932
|
+
if (source2.startsWith("<!--", lt)) {
|
|
11933
|
+
const end = source2.indexOf("-->", lt + 4);
|
|
11934
|
+
if (end < 0) return -1;
|
|
11935
|
+
const body2 = source2.slice(lt + 4, end);
|
|
11936
|
+
if (body2.includes("--") || body2.endsWith("-") || DECLARATIONS.test(body2)) return -1;
|
|
11937
|
+
return end + 3;
|
|
11938
|
+
}
|
|
11939
|
+
if (source2.startsWith("<![CDATA[", lt)) {
|
|
11940
|
+
const end = source2.indexOf("]]>", lt + 9);
|
|
11941
|
+
if (end < 0) return -1;
|
|
11942
|
+
const text4 = source2.slice(lt + 9, end);
|
|
11943
|
+
if (DECLARATIONS.test(text4)) return -1;
|
|
11944
|
+
parent.childNodes.push(text4);
|
|
11945
|
+
return end + 3;
|
|
11946
|
+
}
|
|
11947
|
+
return -1;
|
|
11948
|
+
}
|
|
11924
11949
|
function startTag(source2, from, namespaces) {
|
|
11925
11950
|
const n2 = source2.length;
|
|
11926
11951
|
let i2 = from;
|
|
@@ -24594,21 +24619,50 @@ function rootNamespaces(xml) {
|
|
|
24594
24619
|
for (const match2 of (root[2] ?? "").matchAll(DECLARATION2)) out[match2[1] ?? ""] = match2[3] ?? "";
|
|
24595
24620
|
return out;
|
|
24596
24621
|
}
|
|
24622
|
+
var SPECIAL = /<[!?]/g;
|
|
24623
|
+
var SECTIONS = [
|
|
24624
|
+
["<!--", "-->"],
|
|
24625
|
+
["<![CDATA[", "]]>"],
|
|
24626
|
+
["<?", "?>"]
|
|
24627
|
+
];
|
|
24628
|
+
function blankComments(xml) {
|
|
24629
|
+
if (!xml.includes("<!--") && !xml.includes("<![CDATA[")) return xml;
|
|
24630
|
+
const pieces = [];
|
|
24631
|
+
let copied = 0;
|
|
24632
|
+
SPECIAL.lastIndex = 0;
|
|
24633
|
+
for (let match2 = SPECIAL.exec(xml); match2; match2 = SPECIAL.exec(xml)) {
|
|
24634
|
+
const at = match2.index;
|
|
24635
|
+
const section = SECTIONS.find(([open2]) => xml.startsWith(open2, at));
|
|
24636
|
+
if (!section) return void 0;
|
|
24637
|
+
const [open, close2] = section;
|
|
24638
|
+
const end = xml.indexOf(close2, at + open.length);
|
|
24639
|
+
if (end < 0) return void 0;
|
|
24640
|
+
const after = end + close2.length;
|
|
24641
|
+
if (open !== "<?") {
|
|
24642
|
+
pieces.push(xml.slice(copied, at), " ".repeat(after - at));
|
|
24643
|
+
copied = after;
|
|
24644
|
+
}
|
|
24645
|
+
SPECIAL.lastIndex = after;
|
|
24646
|
+
}
|
|
24647
|
+
pieces.push(xml.slice(copied));
|
|
24648
|
+
return pieces.join("");
|
|
24649
|
+
}
|
|
24597
24650
|
function splitSheetData(xml) {
|
|
24598
|
-
|
|
24599
|
-
|
|
24600
|
-
const
|
|
24651
|
+
const plain3 = blankComments(xml);
|
|
24652
|
+
if (plain3 === void 0) return void 0;
|
|
24653
|
+
const namespaces = rootNamespaces(plain3);
|
|
24654
|
+
const open = OPEN.exec(plain3);
|
|
24601
24655
|
if (!namespaces || !open) return void 0;
|
|
24602
24656
|
const prefix = (open[1] ?? "").slice(0, -1);
|
|
24603
24657
|
const ns = namespaces[prefix];
|
|
24604
24658
|
if (prefix && ns === void 0) return void 0;
|
|
24605
24659
|
const tagName = `${open[1] ?? ""}sheetData`;
|
|
24606
|
-
const openEnd =
|
|
24660
|
+
const openEnd = plain3.indexOf(">", open.index);
|
|
24607
24661
|
if (openEnd < 0) return void 0;
|
|
24608
|
-
const attributes =
|
|
24662
|
+
const attributes = plain3.slice(open.index + tagName.length + 1, openEnd);
|
|
24609
24663
|
if (attributes.trimEnd().endsWith("/") || attributes.includes("xmlns")) return void 0;
|
|
24610
|
-
const close2 =
|
|
24611
|
-
if (close2 < 0 || OPEN.test(
|
|
24664
|
+
const close2 = plain3.indexOf(`</${tagName}`, openEnd);
|
|
24665
|
+
if (close2 < 0 || OPEN.test(plain3.slice(openEnd))) return void 0;
|
|
24612
24666
|
const container = new LiteElement(tagName, "sheetData", ns || null);
|
|
24613
24667
|
const data = parseLiteFragment(xml.slice(openEnd + 1, close2), container, namespaces);
|
|
24614
24668
|
if (!data) return void 0;
|
|
@@ -33137,7 +33191,7 @@ function setColumnWidth(ctx, s, cols, width, measure3) {
|
|
|
33137
33191
|
ctx.run(
|
|
33138
33192
|
"Column width",
|
|
33139
33193
|
"view",
|
|
33140
|
-
[{ kind: "
|
|
33194
|
+
[{ kind: "parts", sheet: s, parts: ["columns"] }],
|
|
33141
33195
|
() => editColumns(sheet, cols, (info) => {
|
|
33142
33196
|
const next = widths.get(info.min);
|
|
33143
33197
|
if (next === void 0) {
|
|
@@ -33172,7 +33226,7 @@ function setRowHeight(ctx, s, rows2, height) {
|
|
|
33172
33226
|
ctx.run(
|
|
33173
33227
|
"Row height",
|
|
33174
33228
|
"view",
|
|
33175
|
-
[{ kind: "
|
|
33229
|
+
[{ kind: "rowInfo", sheet: s, rows: rows2 }],
|
|
33176
33230
|
() => {
|
|
33177
33231
|
for (const row2 of rows2) {
|
|
33178
33232
|
const info = { ...sheet.rowInfo.get(row2) };
|
|
@@ -33202,7 +33256,9 @@ function setHidden(ctx, s, axis, indices, hidden) {
|
|
|
33202
33256
|
ctx.run(
|
|
33203
33257
|
`${hidden ? "Hide" : "Unhide"} ${noun}`,
|
|
33204
33258
|
"view",
|
|
33205
|
-
[
|
|
33259
|
+
[
|
|
33260
|
+
axis === "col" ? { kind: "parts", sheet: s, parts: ["columns"] } : { kind: "rowInfo", sheet: s, rows: indices }
|
|
33261
|
+
],
|
|
33206
33262
|
() => {
|
|
33207
33263
|
if (axis === "col") {
|
|
33208
33264
|
editColumns(sheet, indices, (info) => {
|
|
@@ -33796,6 +33852,19 @@ function shiftEdgeCells(sheet, spec2, phase) {
|
|
|
33796
33852
|
return out;
|
|
33797
33853
|
}
|
|
33798
33854
|
|
|
33855
|
+
// xlsx/edit/history-rows.ts
|
|
33856
|
+
function captureRowInfo(sheet, rows2) {
|
|
33857
|
+
return [...new Set(rows2)].map((row2) => {
|
|
33858
|
+
const info = sheet.rowInfo.get(row2);
|
|
33859
|
+
return [row2, info && structuredClone(info)];
|
|
33860
|
+
});
|
|
33861
|
+
}
|
|
33862
|
+
function restoreRowInfo(sheet, entries) {
|
|
33863
|
+
for (const [row2, info] of entries)
|
|
33864
|
+
if (info) sheet.rowInfo.set(row2, structuredClone(info));
|
|
33865
|
+
else sheet.rowInfo.delete(row2);
|
|
33866
|
+
}
|
|
33867
|
+
|
|
33799
33868
|
// xlsx/edit/history.ts
|
|
33800
33869
|
var SETTING_KEYS = [
|
|
33801
33870
|
"structureLocked",
|
|
@@ -33880,6 +33949,8 @@ function captureScope(workbook, scope, before) {
|
|
|
33880
33949
|
if (!sheet) throw new RangeError(`No sheet at index ${scope.sheet}`);
|
|
33881
33950
|
if (scope.kind === "sheet")
|
|
33882
33951
|
return { kind: "sheet", sheet: scope.sheet, data: structuredClone(sheet) };
|
|
33952
|
+
if (scope.kind === "rowInfo")
|
|
33953
|
+
return { kind: "rowInfo", sheet: scope.sheet, rows: captureRowInfo(sheet, scope.rows) };
|
|
33883
33954
|
if (scope.kind === "parts") {
|
|
33884
33955
|
const data = {};
|
|
33885
33956
|
for (const part of scope.parts) if (sheet[part] !== void 0) data[part] = sheet[part];
|
|
@@ -33931,6 +34002,7 @@ function restoreSnapshot(workbook, snapshot) {
|
|
|
33931
34002
|
}
|
|
33932
34003
|
const sheet = workbook.sheets[snapshot.sheet];
|
|
33933
34004
|
if (!sheet) return;
|
|
34005
|
+
if (snapshot.kind === "rowInfo") return restoreRowInfo(sheet, snapshot.rows);
|
|
33934
34006
|
if (snapshot.kind === "parts") {
|
|
33935
34007
|
const target2 = sheet;
|
|
33936
34008
|
const data = structuredClone(snapshot.data);
|
|
@@ -36323,12 +36395,13 @@ function span2(from, to) {
|
|
|
36323
36395
|
}
|
|
36324
36396
|
function outlineRows(ctx, s, from, to, delta) {
|
|
36325
36397
|
const sheet = sheetAt(ctx.workbook, s);
|
|
36398
|
+
const rows2 = span2(from, to);
|
|
36326
36399
|
ctx.run(
|
|
36327
36400
|
delta > 0 ? "Group rows" : "Ungroup rows",
|
|
36328
36401
|
"structure",
|
|
36329
|
-
[{ kind: "
|
|
36402
|
+
[{ kind: "rowInfo", sheet: s, rows: rows2 }],
|
|
36330
36403
|
() => {
|
|
36331
|
-
for (const row2 of
|
|
36404
|
+
for (const row2 of rows2) {
|
|
36332
36405
|
const info = { ...sheet.rowInfo.get(row2) };
|
|
36333
36406
|
const level2 = nextLevel(info.outlineLevel, delta);
|
|
36334
36407
|
if (level2) info.outlineLevel = level2;
|
|
@@ -36348,7 +36421,7 @@ function outlineColumns(ctx, s, from, to, delta) {
|
|
|
36348
36421
|
ctx.run(
|
|
36349
36422
|
delta > 0 ? "Group columns" : "Ungroup columns",
|
|
36350
36423
|
"structure",
|
|
36351
|
-
[{ kind: "
|
|
36424
|
+
[{ kind: "parts", sheet: s, parts: ["columns"] }],
|
|
36352
36425
|
() => editColumns(sheet, span2(from, to), (info) => {
|
|
36353
36426
|
const level2 = nextLevel(info.outlineLevel, delta);
|
|
36354
36427
|
if (level2) info.outlineLevel = level2;
|
|
@@ -36371,7 +36444,7 @@ function setDefaultColumnWidth(ctx, s, width) {
|
|
|
36371
36444
|
ctx.run(
|
|
36372
36445
|
"Standard width",
|
|
36373
36446
|
"format",
|
|
36374
|
-
[{ kind: "
|
|
36447
|
+
[{ kind: "parts", sheet: s, parts: ["defaultColWidth"] }],
|
|
36375
36448
|
() => {
|
|
36376
36449
|
if (width === void 0) Reflect.deleteProperty(sheet, "defaultColWidth");
|
|
36377
36450
|
else sheet.defaultColWidth = width;
|
|
@@ -38955,10 +39028,11 @@ function autoGrowRows(ctx, s, rows2, measure3 = approximateMeasure) {
|
|
|
38955
39028
|
updates.push([row2, next]);
|
|
38956
39029
|
}
|
|
38957
39030
|
if (!updates.length) return [];
|
|
39031
|
+
const changed = updates.map(([row2]) => row2);
|
|
38958
39032
|
ctx.run(
|
|
38959
39033
|
"Row height",
|
|
38960
39034
|
"view",
|
|
38961
|
-
[{ kind: "
|
|
39035
|
+
[{ kind: "rowInfo", sheet: s, rows: changed }],
|
|
38962
39036
|
() => {
|
|
38963
39037
|
for (const [row2, height] of updates) {
|
|
38964
39038
|
const info = { ...sheet.rowInfo.get(row2) };
|
|
@@ -38970,7 +39044,7 @@ function autoGrowRows(ctx, s, rows2, measure3 = approximateMeasure) {
|
|
|
38970
39044
|
},
|
|
38971
39045
|
{ sheet: s, structural: true }
|
|
38972
39046
|
);
|
|
38973
|
-
return
|
|
39047
|
+
return changed;
|
|
38974
39048
|
}
|
|
38975
39049
|
var MAX_REFIT_ROWS = 1e4;
|
|
38976
39050
|
function rowsToRefit(sheet, ranges) {
|
|
@@ -55333,6 +55407,53 @@ function applyThemeColors(host, previous, colors) {
|
|
|
55333
55407
|
return Object.keys(vars);
|
|
55334
55408
|
}
|
|
55335
55409
|
|
|
55410
|
+
// xlsx/ui/selection-format.ts
|
|
55411
|
+
function selectionFormatting(workbook, sheetIndex2, ranges) {
|
|
55412
|
+
const values2 = {
|
|
55413
|
+
bold: /* @__PURE__ */ new Set(),
|
|
55414
|
+
italic: /* @__PURE__ */ new Set(),
|
|
55415
|
+
underline: /* @__PURE__ */ new Set(),
|
|
55416
|
+
fontFamily: /* @__PURE__ */ new Set(),
|
|
55417
|
+
fontSize: /* @__PURE__ */ new Set(),
|
|
55418
|
+
alignment: /* @__PURE__ */ new Set(),
|
|
55419
|
+
numberFormat: /* @__PURE__ */ new Set()
|
|
55420
|
+
};
|
|
55421
|
+
const sheet = workbook?.sheets[sheetIndex2];
|
|
55422
|
+
let remaining = 4096;
|
|
55423
|
+
let complete = true;
|
|
55424
|
+
if (workbook && sheet)
|
|
55425
|
+
outer: for (const raw2 of ranges) {
|
|
55426
|
+
const range2 = normalizeRange(raw2);
|
|
55427
|
+
for (let row2 = range2.start.row; row2 <= range2.end.row; row2++) {
|
|
55428
|
+
for (let col = range2.start.col; col <= range2.end.col; col++) {
|
|
55429
|
+
if (--remaining < 0) {
|
|
55430
|
+
complete = false;
|
|
55431
|
+
break outer;
|
|
55432
|
+
}
|
|
55433
|
+
const style3 = styleAt(workbook, effectiveStyleId(sheet, row2, col));
|
|
55434
|
+
values2.bold.add(Boolean(style3.font.bold));
|
|
55435
|
+
values2.italic.add(Boolean(style3.font.italic));
|
|
55436
|
+
values2.underline.add(Boolean(style3.font.underline));
|
|
55437
|
+
values2.fontFamily.add(style3.font.name ?? "Aptos");
|
|
55438
|
+
values2.fontSize.add(style3.font.size ?? 11);
|
|
55439
|
+
values2.alignment.add(style3.alignment?.horizontal ?? "general");
|
|
55440
|
+
values2.numberFormat.add(style3.numFmt ?? "General");
|
|
55441
|
+
}
|
|
55442
|
+
}
|
|
55443
|
+
}
|
|
55444
|
+
const single = (set) => complete && set.size === 1 ? [...set][0] : null;
|
|
55445
|
+
return {
|
|
55446
|
+
bold: single(values2.bold),
|
|
55447
|
+
italic: single(values2.italic),
|
|
55448
|
+
underline: single(values2.underline),
|
|
55449
|
+
fontFamily: single(values2.fontFamily),
|
|
55450
|
+
fontSize: single(values2.fontSize),
|
|
55451
|
+
alignment: single(values2.alignment),
|
|
55452
|
+
numberFormat: single(values2.numberFormat),
|
|
55453
|
+
formattingComplete: complete
|
|
55454
|
+
};
|
|
55455
|
+
}
|
|
55456
|
+
|
|
55336
55457
|
exports.ACCOUNTING_FORMATS = ACCOUNTING_FORMATS;
|
|
55337
55458
|
exports.ALL_RANGE = ALL_RANGE;
|
|
55338
55459
|
exports.AUTOSUM_FUNCTIONS = AUTOSUM_FUNCTIONS;
|
|
@@ -55514,6 +55635,7 @@ exports.selectCell = selectCell;
|
|
|
55514
55635
|
exports.selectSpecial = selectSpecial;
|
|
55515
55636
|
exports.selectTab = selectTab;
|
|
55516
55637
|
exports.selectionCellCount = selectionCellCount;
|
|
55638
|
+
exports.selectionFormatting = selectionFormatting;
|
|
55517
55639
|
exports.selectionRef = selectionRef;
|
|
55518
55640
|
exports.setTabHidden = setTabHidden;
|
|
55519
55641
|
exports.sheetBaseName = sheetBaseName;
|
package/dist/xlsx/ui/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../xlsx/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,0CAA0C,CAAC;AACzD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../xlsx/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,0CAA0C,CAAC;AACzD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/xlsx/ui/index.mjs
CHANGED
|
@@ -11895,6 +11895,12 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
11895
11895
|
}
|
|
11896
11896
|
if (lt < 0) break;
|
|
11897
11897
|
const next = source2.charCodeAt(lt + 1);
|
|
11898
|
+
if (next === 33) {
|
|
11899
|
+
const after = skipCommentOrCdata(source2, lt, top);
|
|
11900
|
+
if (after < 0) return void 0;
|
|
11901
|
+
pos = after;
|
|
11902
|
+
continue;
|
|
11903
|
+
}
|
|
11898
11904
|
if (next === 47) {
|
|
11899
11905
|
const gt = source2.indexOf(">", lt);
|
|
11900
11906
|
if (gt < 0 || stack2.length < 2 || source2.slice(lt + 2, gt).trimEnd() !== top.tagName)
|
|
@@ -11915,6 +11921,25 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
11915
11921
|
}
|
|
11916
11922
|
return stack2.length === 1 ? root : void 0;
|
|
11917
11923
|
}
|
|
11924
|
+
var DECLARATIONS = /<!DOCTYPE|<!ENTITY/i;
|
|
11925
|
+
function skipCommentOrCdata(source2, lt, parent) {
|
|
11926
|
+
if (source2.startsWith("<!--", lt)) {
|
|
11927
|
+
const end = source2.indexOf("-->", lt + 4);
|
|
11928
|
+
if (end < 0) return -1;
|
|
11929
|
+
const body2 = source2.slice(lt + 4, end);
|
|
11930
|
+
if (body2.includes("--") || body2.endsWith("-") || DECLARATIONS.test(body2)) return -1;
|
|
11931
|
+
return end + 3;
|
|
11932
|
+
}
|
|
11933
|
+
if (source2.startsWith("<![CDATA[", lt)) {
|
|
11934
|
+
const end = source2.indexOf("]]>", lt + 9);
|
|
11935
|
+
if (end < 0) return -1;
|
|
11936
|
+
const text4 = source2.slice(lt + 9, end);
|
|
11937
|
+
if (DECLARATIONS.test(text4)) return -1;
|
|
11938
|
+
parent.childNodes.push(text4);
|
|
11939
|
+
return end + 3;
|
|
11940
|
+
}
|
|
11941
|
+
return -1;
|
|
11942
|
+
}
|
|
11918
11943
|
function startTag(source2, from, namespaces) {
|
|
11919
11944
|
const n2 = source2.length;
|
|
11920
11945
|
let i2 = from;
|
|
@@ -24588,21 +24613,50 @@ function rootNamespaces(xml) {
|
|
|
24588
24613
|
for (const match2 of (root[2] ?? "").matchAll(DECLARATION2)) out[match2[1] ?? ""] = match2[3] ?? "";
|
|
24589
24614
|
return out;
|
|
24590
24615
|
}
|
|
24616
|
+
var SPECIAL = /<[!?]/g;
|
|
24617
|
+
var SECTIONS = [
|
|
24618
|
+
["<!--", "-->"],
|
|
24619
|
+
["<![CDATA[", "]]>"],
|
|
24620
|
+
["<?", "?>"]
|
|
24621
|
+
];
|
|
24622
|
+
function blankComments(xml) {
|
|
24623
|
+
if (!xml.includes("<!--") && !xml.includes("<![CDATA[")) return xml;
|
|
24624
|
+
const pieces = [];
|
|
24625
|
+
let copied = 0;
|
|
24626
|
+
SPECIAL.lastIndex = 0;
|
|
24627
|
+
for (let match2 = SPECIAL.exec(xml); match2; match2 = SPECIAL.exec(xml)) {
|
|
24628
|
+
const at = match2.index;
|
|
24629
|
+
const section = SECTIONS.find(([open2]) => xml.startsWith(open2, at));
|
|
24630
|
+
if (!section) return void 0;
|
|
24631
|
+
const [open, close2] = section;
|
|
24632
|
+
const end = xml.indexOf(close2, at + open.length);
|
|
24633
|
+
if (end < 0) return void 0;
|
|
24634
|
+
const after = end + close2.length;
|
|
24635
|
+
if (open !== "<?") {
|
|
24636
|
+
pieces.push(xml.slice(copied, at), " ".repeat(after - at));
|
|
24637
|
+
copied = after;
|
|
24638
|
+
}
|
|
24639
|
+
SPECIAL.lastIndex = after;
|
|
24640
|
+
}
|
|
24641
|
+
pieces.push(xml.slice(copied));
|
|
24642
|
+
return pieces.join("");
|
|
24643
|
+
}
|
|
24591
24644
|
function splitSheetData(xml) {
|
|
24592
|
-
|
|
24593
|
-
|
|
24594
|
-
const
|
|
24645
|
+
const plain3 = blankComments(xml);
|
|
24646
|
+
if (plain3 === void 0) return void 0;
|
|
24647
|
+
const namespaces = rootNamespaces(plain3);
|
|
24648
|
+
const open = OPEN.exec(plain3);
|
|
24595
24649
|
if (!namespaces || !open) return void 0;
|
|
24596
24650
|
const prefix = (open[1] ?? "").slice(0, -1);
|
|
24597
24651
|
const ns = namespaces[prefix];
|
|
24598
24652
|
if (prefix && ns === void 0) return void 0;
|
|
24599
24653
|
const tagName = `${open[1] ?? ""}sheetData`;
|
|
24600
|
-
const openEnd =
|
|
24654
|
+
const openEnd = plain3.indexOf(">", open.index);
|
|
24601
24655
|
if (openEnd < 0) return void 0;
|
|
24602
|
-
const attributes =
|
|
24656
|
+
const attributes = plain3.slice(open.index + tagName.length + 1, openEnd);
|
|
24603
24657
|
if (attributes.trimEnd().endsWith("/") || attributes.includes("xmlns")) return void 0;
|
|
24604
|
-
const close2 =
|
|
24605
|
-
if (close2 < 0 || OPEN.test(
|
|
24658
|
+
const close2 = plain3.indexOf(`</${tagName}`, openEnd);
|
|
24659
|
+
if (close2 < 0 || OPEN.test(plain3.slice(openEnd))) return void 0;
|
|
24606
24660
|
const container = new LiteElement(tagName, "sheetData", ns || null);
|
|
24607
24661
|
const data = parseLiteFragment(xml.slice(openEnd + 1, close2), container, namespaces);
|
|
24608
24662
|
if (!data) return void 0;
|
|
@@ -33131,7 +33185,7 @@ function setColumnWidth(ctx, s, cols, width, measure3) {
|
|
|
33131
33185
|
ctx.run(
|
|
33132
33186
|
"Column width",
|
|
33133
33187
|
"view",
|
|
33134
|
-
[{ kind: "
|
|
33188
|
+
[{ kind: "parts", sheet: s, parts: ["columns"] }],
|
|
33135
33189
|
() => editColumns(sheet, cols, (info) => {
|
|
33136
33190
|
const next = widths.get(info.min);
|
|
33137
33191
|
if (next === void 0) {
|
|
@@ -33166,7 +33220,7 @@ function setRowHeight(ctx, s, rows2, height) {
|
|
|
33166
33220
|
ctx.run(
|
|
33167
33221
|
"Row height",
|
|
33168
33222
|
"view",
|
|
33169
|
-
[{ kind: "
|
|
33223
|
+
[{ kind: "rowInfo", sheet: s, rows: rows2 }],
|
|
33170
33224
|
() => {
|
|
33171
33225
|
for (const row2 of rows2) {
|
|
33172
33226
|
const info = { ...sheet.rowInfo.get(row2) };
|
|
@@ -33196,7 +33250,9 @@ function setHidden(ctx, s, axis, indices, hidden) {
|
|
|
33196
33250
|
ctx.run(
|
|
33197
33251
|
`${hidden ? "Hide" : "Unhide"} ${noun}`,
|
|
33198
33252
|
"view",
|
|
33199
|
-
[
|
|
33253
|
+
[
|
|
33254
|
+
axis === "col" ? { kind: "parts", sheet: s, parts: ["columns"] } : { kind: "rowInfo", sheet: s, rows: indices }
|
|
33255
|
+
],
|
|
33200
33256
|
() => {
|
|
33201
33257
|
if (axis === "col") {
|
|
33202
33258
|
editColumns(sheet, indices, (info) => {
|
|
@@ -33790,6 +33846,19 @@ function shiftEdgeCells(sheet, spec2, phase) {
|
|
|
33790
33846
|
return out;
|
|
33791
33847
|
}
|
|
33792
33848
|
|
|
33849
|
+
// xlsx/edit/history-rows.ts
|
|
33850
|
+
function captureRowInfo(sheet, rows2) {
|
|
33851
|
+
return [...new Set(rows2)].map((row2) => {
|
|
33852
|
+
const info = sheet.rowInfo.get(row2);
|
|
33853
|
+
return [row2, info && structuredClone(info)];
|
|
33854
|
+
});
|
|
33855
|
+
}
|
|
33856
|
+
function restoreRowInfo(sheet, entries) {
|
|
33857
|
+
for (const [row2, info] of entries)
|
|
33858
|
+
if (info) sheet.rowInfo.set(row2, structuredClone(info));
|
|
33859
|
+
else sheet.rowInfo.delete(row2);
|
|
33860
|
+
}
|
|
33861
|
+
|
|
33793
33862
|
// xlsx/edit/history.ts
|
|
33794
33863
|
var SETTING_KEYS = [
|
|
33795
33864
|
"structureLocked",
|
|
@@ -33874,6 +33943,8 @@ function captureScope(workbook, scope, before) {
|
|
|
33874
33943
|
if (!sheet) throw new RangeError(`No sheet at index ${scope.sheet}`);
|
|
33875
33944
|
if (scope.kind === "sheet")
|
|
33876
33945
|
return { kind: "sheet", sheet: scope.sheet, data: structuredClone(sheet) };
|
|
33946
|
+
if (scope.kind === "rowInfo")
|
|
33947
|
+
return { kind: "rowInfo", sheet: scope.sheet, rows: captureRowInfo(sheet, scope.rows) };
|
|
33877
33948
|
if (scope.kind === "parts") {
|
|
33878
33949
|
const data = {};
|
|
33879
33950
|
for (const part of scope.parts) if (sheet[part] !== void 0) data[part] = sheet[part];
|
|
@@ -33925,6 +33996,7 @@ function restoreSnapshot(workbook, snapshot) {
|
|
|
33925
33996
|
}
|
|
33926
33997
|
const sheet = workbook.sheets[snapshot.sheet];
|
|
33927
33998
|
if (!sheet) return;
|
|
33999
|
+
if (snapshot.kind === "rowInfo") return restoreRowInfo(sheet, snapshot.rows);
|
|
33928
34000
|
if (snapshot.kind === "parts") {
|
|
33929
34001
|
const target2 = sheet;
|
|
33930
34002
|
const data = structuredClone(snapshot.data);
|
|
@@ -36317,12 +36389,13 @@ function span2(from, to) {
|
|
|
36317
36389
|
}
|
|
36318
36390
|
function outlineRows(ctx, s, from, to, delta) {
|
|
36319
36391
|
const sheet = sheetAt(ctx.workbook, s);
|
|
36392
|
+
const rows2 = span2(from, to);
|
|
36320
36393
|
ctx.run(
|
|
36321
36394
|
delta > 0 ? "Group rows" : "Ungroup rows",
|
|
36322
36395
|
"structure",
|
|
36323
|
-
[{ kind: "
|
|
36396
|
+
[{ kind: "rowInfo", sheet: s, rows: rows2 }],
|
|
36324
36397
|
() => {
|
|
36325
|
-
for (const row2 of
|
|
36398
|
+
for (const row2 of rows2) {
|
|
36326
36399
|
const info = { ...sheet.rowInfo.get(row2) };
|
|
36327
36400
|
const level2 = nextLevel(info.outlineLevel, delta);
|
|
36328
36401
|
if (level2) info.outlineLevel = level2;
|
|
@@ -36342,7 +36415,7 @@ function outlineColumns(ctx, s, from, to, delta) {
|
|
|
36342
36415
|
ctx.run(
|
|
36343
36416
|
delta > 0 ? "Group columns" : "Ungroup columns",
|
|
36344
36417
|
"structure",
|
|
36345
|
-
[{ kind: "
|
|
36418
|
+
[{ kind: "parts", sheet: s, parts: ["columns"] }],
|
|
36346
36419
|
() => editColumns(sheet, span2(from, to), (info) => {
|
|
36347
36420
|
const level2 = nextLevel(info.outlineLevel, delta);
|
|
36348
36421
|
if (level2) info.outlineLevel = level2;
|
|
@@ -36365,7 +36438,7 @@ function setDefaultColumnWidth(ctx, s, width) {
|
|
|
36365
36438
|
ctx.run(
|
|
36366
36439
|
"Standard width",
|
|
36367
36440
|
"format",
|
|
36368
|
-
[{ kind: "
|
|
36441
|
+
[{ kind: "parts", sheet: s, parts: ["defaultColWidth"] }],
|
|
36369
36442
|
() => {
|
|
36370
36443
|
if (width === void 0) Reflect.deleteProperty(sheet, "defaultColWidth");
|
|
36371
36444
|
else sheet.defaultColWidth = width;
|
|
@@ -38949,10 +39022,11 @@ function autoGrowRows(ctx, s, rows2, measure3 = approximateMeasure) {
|
|
|
38949
39022
|
updates.push([row2, next]);
|
|
38950
39023
|
}
|
|
38951
39024
|
if (!updates.length) return [];
|
|
39025
|
+
const changed = updates.map(([row2]) => row2);
|
|
38952
39026
|
ctx.run(
|
|
38953
39027
|
"Row height",
|
|
38954
39028
|
"view",
|
|
38955
|
-
[{ kind: "
|
|
39029
|
+
[{ kind: "rowInfo", sheet: s, rows: changed }],
|
|
38956
39030
|
() => {
|
|
38957
39031
|
for (const [row2, height] of updates) {
|
|
38958
39032
|
const info = { ...sheet.rowInfo.get(row2) };
|
|
@@ -38964,7 +39038,7 @@ function autoGrowRows(ctx, s, rows2, measure3 = approximateMeasure) {
|
|
|
38964
39038
|
},
|
|
38965
39039
|
{ sheet: s, structural: true }
|
|
38966
39040
|
);
|
|
38967
|
-
return
|
|
39041
|
+
return changed;
|
|
38968
39042
|
}
|
|
38969
39043
|
var MAX_REFIT_ROWS = 1e4;
|
|
38970
39044
|
function rowsToRefit(sheet, ranges) {
|
|
@@ -55327,4 +55401,51 @@ function applyThemeColors(host, previous, colors) {
|
|
|
55327
55401
|
return Object.keys(vars);
|
|
55328
55402
|
}
|
|
55329
55403
|
|
|
55330
|
-
|
|
55404
|
+
// xlsx/ui/selection-format.ts
|
|
55405
|
+
function selectionFormatting(workbook, sheetIndex2, ranges) {
|
|
55406
|
+
const values2 = {
|
|
55407
|
+
bold: /* @__PURE__ */ new Set(),
|
|
55408
|
+
italic: /* @__PURE__ */ new Set(),
|
|
55409
|
+
underline: /* @__PURE__ */ new Set(),
|
|
55410
|
+
fontFamily: /* @__PURE__ */ new Set(),
|
|
55411
|
+
fontSize: /* @__PURE__ */ new Set(),
|
|
55412
|
+
alignment: /* @__PURE__ */ new Set(),
|
|
55413
|
+
numberFormat: /* @__PURE__ */ new Set()
|
|
55414
|
+
};
|
|
55415
|
+
const sheet = workbook?.sheets[sheetIndex2];
|
|
55416
|
+
let remaining = 4096;
|
|
55417
|
+
let complete = true;
|
|
55418
|
+
if (workbook && sheet)
|
|
55419
|
+
outer: for (const raw2 of ranges) {
|
|
55420
|
+
const range2 = normalizeRange(raw2);
|
|
55421
|
+
for (let row2 = range2.start.row; row2 <= range2.end.row; row2++) {
|
|
55422
|
+
for (let col = range2.start.col; col <= range2.end.col; col++) {
|
|
55423
|
+
if (--remaining < 0) {
|
|
55424
|
+
complete = false;
|
|
55425
|
+
break outer;
|
|
55426
|
+
}
|
|
55427
|
+
const style3 = styleAt(workbook, effectiveStyleId(sheet, row2, col));
|
|
55428
|
+
values2.bold.add(Boolean(style3.font.bold));
|
|
55429
|
+
values2.italic.add(Boolean(style3.font.italic));
|
|
55430
|
+
values2.underline.add(Boolean(style3.font.underline));
|
|
55431
|
+
values2.fontFamily.add(style3.font.name ?? "Aptos");
|
|
55432
|
+
values2.fontSize.add(style3.font.size ?? 11);
|
|
55433
|
+
values2.alignment.add(style3.alignment?.horizontal ?? "general");
|
|
55434
|
+
values2.numberFormat.add(style3.numFmt ?? "General");
|
|
55435
|
+
}
|
|
55436
|
+
}
|
|
55437
|
+
}
|
|
55438
|
+
const single = (set) => complete && set.size === 1 ? [...set][0] : null;
|
|
55439
|
+
return {
|
|
55440
|
+
bold: single(values2.bold),
|
|
55441
|
+
italic: single(values2.italic),
|
|
55442
|
+
underline: single(values2.underline),
|
|
55443
|
+
fontFamily: single(values2.fontFamily),
|
|
55444
|
+
fontSize: single(values2.fontSize),
|
|
55445
|
+
alignment: single(values2.alignment),
|
|
55446
|
+
numberFormat: single(values2.numberFormat),
|
|
55447
|
+
formattingComplete: complete
|
|
55448
|
+
};
|
|
55449
|
+
}
|
|
55450
|
+
|
|
55451
|
+
export { ACCOUNTING_FORMATS, ALL_RANGE, AUTOSUM_FUNCTIONS, BORDER_PRESETS, CATEGORIES, COLOR_SCALES, COMMAND_TABLES, CORE_FEATURE_STRINGS, CellViewCache, DATA_BAR_COLORS, DATE_CODES, DEFAULT_OPTIONS, DirtyState, EDITOR_LOCALES, EDITOR_THEME_MODES, EMBED_ASPECT, FONT_NAMES, FONT_SIZES, FORECAST_UNAVAILABLE, FORMAT_CELLS_STRINGS, FRACTION_CODES, FUNCTION_MENUS, GROUPED_CHART_TYPES, GridGeometry, HIGHLIGHT_STYLES, ICON_ACCENTS, ICON_PATHS, ICON_SETS, INSERT_CHART_TYPES, MARGIN_PRESETS, MAX_GRID_COLS, MAX_GRID_ROWS, MESSAGE_STRINGS, MORE_FUNCTION_CATEGORIES, NAVIGATION_STRINGS, ORIENTATIONS2 as ORIENTATIONS, PAPER_SIZES, QUADRANTS, RIBBON_HOME_STRINGS, RIBBON_TAB_STRINGS, RULES_STRINGS, SHEET_ICONS, SPECIAL_CODES, STRINGS, SYMBOLS, SheetSelections, TABLE_STYLES, TEMPLATES, THEME_KEYS, TIME_CODES, TOOLS_STRINGS, UNSET, absoluteReference, activeChart, activeRef, activeSlicer, activeStyle, activeTable, activeTimeline, addRange, alignItems, alignmentCommands, applyThemeColors, autoSumRange, buildChart, buildCode, buildItems, cellCommands, cellMenu, cellRange3 as cellRange, cellStyleItems, chartGridText, clampAddress, clipState, clipboardCommands, colSelected, colorScaleRule, colsOf, colsRange, columnHeaderHeight, columnHeaderMenu, commandStrings, contextualCommands, createCommandRegistry, createDialogRegistry, createEditBridge, createSelectionModel, createTemplateWorkbook, cssFont2 as cssFont, cssFontFamily, darkTheme, dataBarRule, dataCommands, detectCategory, diagonalSvg, dxfCss, edgeCss, editBridge, editChart, editing, editingCommands, evaluateRef, expandForMerges, extendSelection, fillPaint, fillSource, fillTemplate, findDefinedName2 as findDefinedName, findSpecial, fitNumber2 as fitNumber, fontCommands, formatNumber2 as formatNumber, formulaCommands, functionsIn, gridChart, gridChartSvg, gridChartWorkbook, guessHeader, hasBorders, hasWorkbook, hashes, helpTab, historyOf, icon, iconCount, iconSetRule, iconSvg, iconThresholds, initialSelection, insertFunctionCall, installFormatPainter, isBlankView, isMenuSeparator, isSingleCell, isTabHidden, isWholeCols, isWholeRows2 as isWholeRows, justify, lightTheme, measure2 as measure, moveWithinSelection, movingEnd, nameForRange, negativeCodes, normalizeEditorLocale, normalizeThemeMode, noteFunctionUse, numberCommands, numberFormatOptions, onRibbonTabsChange, pageBreakCommands, pageLayoutCommands, parseBorderArg, parseChartGrid, parseSelectionRef, parseSheetReference, pasteWith, patternImage, pickColor, rangeRef, readEmbeddedChart, recentFunctions, refresh, regionOf, registerRibbonTabs, repeatToFill, resetRibbonTabs, resolveNameBox, reviewTab, ribbonTabs, rowHeaderMenu, rowHeaderWidth, rowSelected, rowsOf, rowsRange, scrollToReveal, searchCommands, selectCell, selectSpecial, selectTab, selectionCellCount, selectionFormatting, selectionRef, setTabHidden, sheetBaseName, sheetLocked, slicerSourceAt, sortCommands, span3 as span, spanRange, stepFontSize, structureLocked, style2 as style, styleCssFont, tabButton, tabMenu, tableAt, tableStyleColor, tableStylePreview, target, textAlign, textDecoration, themePaletteItems, themeToCssVars, timelineSourceAt, translate, translator, viewTab, viewing, whatIfCommands, wholeColumns, wholeRows, withTarget };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type CellRange, type Workbook } from '../index.js';
|
|
2
|
+
/** Flat formatting for host controls. null means mixed, or unexamined in a large selection. */
|
|
3
|
+
export declare function selectionFormatting(workbook: Workbook | undefined, sheetIndex: number, ranges: readonly CellRange[]): {
|
|
4
|
+
bold: boolean | null;
|
|
5
|
+
italic: boolean | null;
|
|
6
|
+
underline: boolean | null;
|
|
7
|
+
fontFamily: string | null;
|
|
8
|
+
fontSize: number | null;
|
|
9
|
+
alignment: string | null;
|
|
10
|
+
numberFormat: string | null;
|
|
11
|
+
formattingComplete: boolean;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=selection-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-format.d.ts","sourceRoot":"","sources":["../../../xlsx/ui/selection-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGlF,+FAA+F;AAC/F,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,SAAS,SAAS,EAAE;IAoC3B,IAAI;IACJ,MAAM;IACN,SAAS;IACT,UAAU;IACV,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,kBAAkB;EAEnB"}
|
package/dist/xml/index.cjs
CHANGED
|
@@ -237,6 +237,12 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
237
237
|
}
|
|
238
238
|
if (lt < 0) break;
|
|
239
239
|
const next = source.charCodeAt(lt + 1);
|
|
240
|
+
if (next === 33) {
|
|
241
|
+
const after = skipCommentOrCdata(source, lt, top);
|
|
242
|
+
if (after < 0) return void 0;
|
|
243
|
+
pos = after;
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
240
246
|
if (next === 47) {
|
|
241
247
|
const gt = source.indexOf(">", lt);
|
|
242
248
|
if (gt < 0 || stack.length < 2 || source.slice(lt + 2, gt).trimEnd() !== top.tagName)
|
|
@@ -257,6 +263,25 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
257
263
|
}
|
|
258
264
|
return stack.length === 1 ? root : void 0;
|
|
259
265
|
}
|
|
266
|
+
var DECLARATIONS = /<!DOCTYPE|<!ENTITY/i;
|
|
267
|
+
function skipCommentOrCdata(source, lt, parent) {
|
|
268
|
+
if (source.startsWith("<!--", lt)) {
|
|
269
|
+
const end = source.indexOf("-->", lt + 4);
|
|
270
|
+
if (end < 0) return -1;
|
|
271
|
+
const body = source.slice(lt + 4, end);
|
|
272
|
+
if (body.includes("--") || body.endsWith("-") || DECLARATIONS.test(body)) return -1;
|
|
273
|
+
return end + 3;
|
|
274
|
+
}
|
|
275
|
+
if (source.startsWith("<![CDATA[", lt)) {
|
|
276
|
+
const end = source.indexOf("]]>", lt + 9);
|
|
277
|
+
if (end < 0) return -1;
|
|
278
|
+
const text = source.slice(lt + 9, end);
|
|
279
|
+
if (DECLARATIONS.test(text)) return -1;
|
|
280
|
+
parent.childNodes.push(text);
|
|
281
|
+
return end + 3;
|
|
282
|
+
}
|
|
283
|
+
return -1;
|
|
284
|
+
}
|
|
260
285
|
function startTag(source, from, namespaces) {
|
|
261
286
|
const n = source.length;
|
|
262
287
|
let i = from;
|
package/dist/xml/index.mjs
CHANGED
|
@@ -235,6 +235,12 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
235
235
|
}
|
|
236
236
|
if (lt < 0) break;
|
|
237
237
|
const next = source.charCodeAt(lt + 1);
|
|
238
|
+
if (next === 33) {
|
|
239
|
+
const after = skipCommentOrCdata(source, lt, top);
|
|
240
|
+
if (after < 0) return void 0;
|
|
241
|
+
pos = after;
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
238
244
|
if (next === 47) {
|
|
239
245
|
const gt = source.indexOf(">", lt);
|
|
240
246
|
if (gt < 0 || stack.length < 2 || source.slice(lt + 2, gt).trimEnd() !== top.tagName)
|
|
@@ -255,6 +261,25 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
255
261
|
}
|
|
256
262
|
return stack.length === 1 ? root : void 0;
|
|
257
263
|
}
|
|
264
|
+
var DECLARATIONS = /<!DOCTYPE|<!ENTITY/i;
|
|
265
|
+
function skipCommentOrCdata(source, lt, parent) {
|
|
266
|
+
if (source.startsWith("<!--", lt)) {
|
|
267
|
+
const end = source.indexOf("-->", lt + 4);
|
|
268
|
+
if (end < 0) return -1;
|
|
269
|
+
const body = source.slice(lt + 4, end);
|
|
270
|
+
if (body.includes("--") || body.endsWith("-") || DECLARATIONS.test(body)) return -1;
|
|
271
|
+
return end + 3;
|
|
272
|
+
}
|
|
273
|
+
if (source.startsWith("<![CDATA[", lt)) {
|
|
274
|
+
const end = source.indexOf("]]>", lt + 9);
|
|
275
|
+
if (end < 0) return -1;
|
|
276
|
+
const text = source.slice(lt + 9, end);
|
|
277
|
+
if (DECLARATIONS.test(text)) return -1;
|
|
278
|
+
parent.childNodes.push(text);
|
|
279
|
+
return end + 3;
|
|
280
|
+
}
|
|
281
|
+
return -1;
|
|
282
|
+
}
|
|
258
283
|
function startTag(source, from, namespaces) {
|
|
259
284
|
const n = source.length;
|
|
260
285
|
let i = from;
|