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/visio/index.mjs
CHANGED
|
@@ -234,6 +234,12 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
234
234
|
}
|
|
235
235
|
if (lt < 0) break;
|
|
236
236
|
const next = source.charCodeAt(lt + 1);
|
|
237
|
+
if (next === 33) {
|
|
238
|
+
const after = skipCommentOrCdata(source, lt, top);
|
|
239
|
+
if (after < 0) return void 0;
|
|
240
|
+
pos = after;
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
237
243
|
if (next === 47) {
|
|
238
244
|
const gt = source.indexOf(">", lt);
|
|
239
245
|
if (gt < 0 || stack.length < 2 || source.slice(lt + 2, gt).trimEnd() !== top.tagName)
|
|
@@ -254,6 +260,25 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
254
260
|
}
|
|
255
261
|
return stack.length === 1 ? root2 : void 0;
|
|
256
262
|
}
|
|
263
|
+
var DECLARATIONS = /<!DOCTYPE|<!ENTITY/i;
|
|
264
|
+
function skipCommentOrCdata(source, lt, parent) {
|
|
265
|
+
if (source.startsWith("<!--", lt)) {
|
|
266
|
+
const end = source.indexOf("-->", lt + 4);
|
|
267
|
+
if (end < 0) return -1;
|
|
268
|
+
const body = source.slice(lt + 4, end);
|
|
269
|
+
if (body.includes("--") || body.endsWith("-") || DECLARATIONS.test(body)) return -1;
|
|
270
|
+
return end + 3;
|
|
271
|
+
}
|
|
272
|
+
if (source.startsWith("<![CDATA[", lt)) {
|
|
273
|
+
const end = source.indexOf("]]>", lt + 9);
|
|
274
|
+
if (end < 0) return -1;
|
|
275
|
+
const text6 = source.slice(lt + 9, end);
|
|
276
|
+
if (DECLARATIONS.test(text6)) return -1;
|
|
277
|
+
parent.childNodes.push(text6);
|
|
278
|
+
return end + 3;
|
|
279
|
+
}
|
|
280
|
+
return -1;
|
|
281
|
+
}
|
|
257
282
|
function startTag(source, from, namespaces) {
|
|
258
283
|
const n = source.length;
|
|
259
284
|
let i = from;
|
|
@@ -17150,21 +17175,50 @@ function rootNamespaces(xml) {
|
|
|
17150
17175
|
for (const match of (root2[2] ?? "").matchAll(DECLARATION2)) out[match[1] ?? ""] = match[3] ?? "";
|
|
17151
17176
|
return out;
|
|
17152
17177
|
}
|
|
17178
|
+
var SPECIAL = /<[!?]/g;
|
|
17179
|
+
var SECTIONS = [
|
|
17180
|
+
["<!--", "-->"],
|
|
17181
|
+
["<![CDATA[", "]]>"],
|
|
17182
|
+
["<?", "?>"]
|
|
17183
|
+
];
|
|
17184
|
+
function blankComments(xml) {
|
|
17185
|
+
if (!xml.includes("<!--") && !xml.includes("<![CDATA[")) return xml;
|
|
17186
|
+
const pieces = [];
|
|
17187
|
+
let copied = 0;
|
|
17188
|
+
SPECIAL.lastIndex = 0;
|
|
17189
|
+
for (let match = SPECIAL.exec(xml); match; match = SPECIAL.exec(xml)) {
|
|
17190
|
+
const at2 = match.index;
|
|
17191
|
+
const section3 = SECTIONS.find(([open2]) => xml.startsWith(open2, at2));
|
|
17192
|
+
if (!section3) return void 0;
|
|
17193
|
+
const [open, close4] = section3;
|
|
17194
|
+
const end = xml.indexOf(close4, at2 + open.length);
|
|
17195
|
+
if (end < 0) return void 0;
|
|
17196
|
+
const after = end + close4.length;
|
|
17197
|
+
if (open !== "<?") {
|
|
17198
|
+
pieces.push(xml.slice(copied, at2), " ".repeat(after - at2));
|
|
17199
|
+
copied = after;
|
|
17200
|
+
}
|
|
17201
|
+
SPECIAL.lastIndex = after;
|
|
17202
|
+
}
|
|
17203
|
+
pieces.push(xml.slice(copied));
|
|
17204
|
+
return pieces.join("");
|
|
17205
|
+
}
|
|
17153
17206
|
function splitSheetData(xml) {
|
|
17154
|
-
|
|
17155
|
-
|
|
17156
|
-
const
|
|
17207
|
+
const plain4 = blankComments(xml);
|
|
17208
|
+
if (plain4 === void 0) return void 0;
|
|
17209
|
+
const namespaces = rootNamespaces(plain4);
|
|
17210
|
+
const open = OPEN.exec(plain4);
|
|
17157
17211
|
if (!namespaces || !open) return void 0;
|
|
17158
17212
|
const prefix2 = (open[1] ?? "").slice(0, -1);
|
|
17159
17213
|
const ns = namespaces[prefix2];
|
|
17160
17214
|
if (prefix2 && ns === void 0) return void 0;
|
|
17161
17215
|
const tagName2 = `${open[1] ?? ""}sheetData`;
|
|
17162
|
-
const openEnd =
|
|
17216
|
+
const openEnd = plain4.indexOf(">", open.index);
|
|
17163
17217
|
if (openEnd < 0) return void 0;
|
|
17164
|
-
const attributes =
|
|
17218
|
+
const attributes = plain4.slice(open.index + tagName2.length + 1, openEnd);
|
|
17165
17219
|
if (attributes.trimEnd().endsWith("/") || attributes.includes("xmlns")) return void 0;
|
|
17166
|
-
const close4 =
|
|
17167
|
-
if (close4 < 0 || OPEN.test(
|
|
17220
|
+
const close4 = plain4.indexOf(`</${tagName2}`, openEnd);
|
|
17221
|
+
if (close4 < 0 || OPEN.test(plain4.slice(openEnd))) return void 0;
|
|
17168
17222
|
const container = new LiteElement(tagName2, "sheetData", ns || null);
|
|
17169
17223
|
const data = parseLiteFragment(xml.slice(openEnd + 1, close4), container, namespaces);
|
|
17170
17224
|
if (!data) return void 0;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { RibbonAddInCommandDetail, RibbonAddInTab } from '../../ribbon/index.js';
|
|
2
2
|
import type { VisioDocument } from '../index.js';
|
|
3
3
|
export interface ViewerProperties {
|
|
4
|
+
canEdit?: boolean;
|
|
4
5
|
document: VisioDocument | null;
|
|
5
6
|
pageIndex: number;
|
|
6
7
|
zoom: number;
|
|
@@ -33,7 +34,7 @@ export interface ViewerEvents {
|
|
|
33
34
|
export type ViewerCallbacks = {
|
|
34
35
|
[K in keyof ViewerEvents]?: (detail: ViewerEvents[K]) => void;
|
|
35
36
|
};
|
|
36
|
-
export declare const propertyKeys: readonly ["document", "pageIndex", "zoom", "showToolbar", "ribbonAddIns"];
|
|
37
|
+
export declare const propertyKeys: readonly ["canEdit", "document", "pageIndex", "zoom", "showToolbar", "ribbonAddIns"];
|
|
37
38
|
export declare const eventKeys: readonly ["document-load", "document-change", "document-error", "page-change", "zoom-change", "shape-select", "selection-change", "office-ribbon-add-in"];
|
|
38
39
|
export type VsdxSource = ArrayBuffer | Uint8Array | Blob;
|
|
39
40
|
export interface ViewerOptions extends Partial<ViewerProperties> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../visio/ui/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,YAAY,EAAE,SAAS,cAAc,EAAE,CAAC;CACxC;AACD,uFAAuF;AACvF,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,YAAY;IAC5B,eAAe,EAAE,aAAa,CAAC;IAC/B,iBAAiB,EAAE;QAClB,QAAQ,EAAE,aAAa,CAAC;QACxB,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;KAC1C,CAAC;IACF,gBAAgB,EAAE,KAAK,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC3C,iFAAiF;IACjF,kBAAkB,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,2DAA2D;IAC3D,sBAAsB,EAAE,wBAAwB,CAAC;CACjD;AACD,MAAM,MAAM,eAAe,GAAG;KAC5B,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI;CAC7D,CAAC;AACF,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../visio/ui/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,YAAY,EAAE,SAAS,cAAc,EAAE,CAAC;CACxC;AACD,uFAAuF;AACvF,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,YAAY;IAC5B,eAAe,EAAE,aAAa,CAAC;IAC/B,iBAAiB,EAAE;QAClB,QAAQ,EAAE,aAAa,CAAC;QACxB,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;KAC1C,CAAC;IACF,gBAAgB,EAAE,KAAK,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC3C,iFAAiF;IACjF,kBAAkB,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,2DAA2D;IAC3D,sBAAsB,EAAE,wBAAwB,CAAC;CACjD;AACD,MAAM,MAAM,eAAe,GAAG;KAC5B,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI;CAC7D,CAAC;AACF,eAAO,MAAM,YAAY,sFAO+B,CAAC;AACzD,eAAO,MAAM,SAAS,2JAS8B,CAAC;AASrD,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC;AACzD,MAAM,WAAW,aAAc,SAAQ,OAAO,CAAC,gBAAgB,CAAC;IAC/D,MAAM,CAAC,EAAE,eAAe,CAAC;CACzB"}
|
package/dist/visio/ui/index.cjs
CHANGED
|
@@ -9,6 +9,7 @@ var JSZip__default = /*#__PURE__*/_interopDefault(JSZip);
|
|
|
9
9
|
|
|
10
10
|
// visio/ui/contract.ts
|
|
11
11
|
var propertyKeys = [
|
|
12
|
+
"canEdit",
|
|
12
13
|
"document",
|
|
13
14
|
"pageIndex",
|
|
14
15
|
"zoom",
|
|
@@ -1255,6 +1256,12 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
1255
1256
|
}
|
|
1256
1257
|
if (lt < 0) break;
|
|
1257
1258
|
const next = source.charCodeAt(lt + 1);
|
|
1259
|
+
if (next === 33) {
|
|
1260
|
+
const after = skipCommentOrCdata(source, lt, top);
|
|
1261
|
+
if (after < 0) return void 0;
|
|
1262
|
+
pos = after;
|
|
1263
|
+
continue;
|
|
1264
|
+
}
|
|
1258
1265
|
if (next === 47) {
|
|
1259
1266
|
const gt = source.indexOf(">", lt);
|
|
1260
1267
|
if (gt < 0 || stack.length < 2 || source.slice(lt + 2, gt).trimEnd() !== top.tagName)
|
|
@@ -1275,6 +1282,25 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
1275
1282
|
}
|
|
1276
1283
|
return stack.length === 1 ? root2 : void 0;
|
|
1277
1284
|
}
|
|
1285
|
+
var DECLARATIONS = /<!DOCTYPE|<!ENTITY/i;
|
|
1286
|
+
function skipCommentOrCdata(source, lt, parent) {
|
|
1287
|
+
if (source.startsWith("<!--", lt)) {
|
|
1288
|
+
const end = source.indexOf("-->", lt + 4);
|
|
1289
|
+
if (end < 0) return -1;
|
|
1290
|
+
const body = source.slice(lt + 4, end);
|
|
1291
|
+
if (body.includes("--") || body.endsWith("-") || DECLARATIONS.test(body)) return -1;
|
|
1292
|
+
return end + 3;
|
|
1293
|
+
}
|
|
1294
|
+
if (source.startsWith("<![CDATA[", lt)) {
|
|
1295
|
+
const end = source.indexOf("]]>", lt + 9);
|
|
1296
|
+
if (end < 0) return -1;
|
|
1297
|
+
const text8 = source.slice(lt + 9, end);
|
|
1298
|
+
if (DECLARATIONS.test(text8)) return -1;
|
|
1299
|
+
parent.childNodes.push(text8);
|
|
1300
|
+
return end + 3;
|
|
1301
|
+
}
|
|
1302
|
+
return -1;
|
|
1303
|
+
}
|
|
1278
1304
|
function startTag(source, from, namespaces) {
|
|
1279
1305
|
const n = source.length;
|
|
1280
1306
|
let i = from;
|
|
@@ -20481,21 +20507,50 @@ function rootNamespaces(xml) {
|
|
|
20481
20507
|
for (const match of (root2[2] ?? "").matchAll(DECLARATION2)) out[match[1] ?? ""] = match[3] ?? "";
|
|
20482
20508
|
return out;
|
|
20483
20509
|
}
|
|
20510
|
+
var SPECIAL = /<[!?]/g;
|
|
20511
|
+
var SECTIONS = [
|
|
20512
|
+
["<!--", "-->"],
|
|
20513
|
+
["<![CDATA[", "]]>"],
|
|
20514
|
+
["<?", "?>"]
|
|
20515
|
+
];
|
|
20516
|
+
function blankComments(xml) {
|
|
20517
|
+
if (!xml.includes("<!--") && !xml.includes("<![CDATA[")) return xml;
|
|
20518
|
+
const pieces = [];
|
|
20519
|
+
let copied = 0;
|
|
20520
|
+
SPECIAL.lastIndex = 0;
|
|
20521
|
+
for (let match = SPECIAL.exec(xml); match; match = SPECIAL.exec(xml)) {
|
|
20522
|
+
const at2 = match.index;
|
|
20523
|
+
const section3 = SECTIONS.find(([open2]) => xml.startsWith(open2, at2));
|
|
20524
|
+
if (!section3) return void 0;
|
|
20525
|
+
const [open, close4] = section3;
|
|
20526
|
+
const end = xml.indexOf(close4, at2 + open.length);
|
|
20527
|
+
if (end < 0) return void 0;
|
|
20528
|
+
const after = end + close4.length;
|
|
20529
|
+
if (open !== "<?") {
|
|
20530
|
+
pieces.push(xml.slice(copied, at2), " ".repeat(after - at2));
|
|
20531
|
+
copied = after;
|
|
20532
|
+
}
|
|
20533
|
+
SPECIAL.lastIndex = after;
|
|
20534
|
+
}
|
|
20535
|
+
pieces.push(xml.slice(copied));
|
|
20536
|
+
return pieces.join("");
|
|
20537
|
+
}
|
|
20484
20538
|
function splitSheetData(xml) {
|
|
20485
|
-
|
|
20486
|
-
|
|
20487
|
-
const
|
|
20539
|
+
const plain4 = blankComments(xml);
|
|
20540
|
+
if (plain4 === void 0) return void 0;
|
|
20541
|
+
const namespaces = rootNamespaces(plain4);
|
|
20542
|
+
const open = OPEN.exec(plain4);
|
|
20488
20543
|
if (!namespaces || !open) return void 0;
|
|
20489
20544
|
const prefix2 = (open[1] ?? "").slice(0, -1);
|
|
20490
20545
|
const ns = namespaces[prefix2];
|
|
20491
20546
|
if (prefix2 && ns === void 0) return void 0;
|
|
20492
20547
|
const tagName2 = `${open[1] ?? ""}sheetData`;
|
|
20493
|
-
const openEnd =
|
|
20548
|
+
const openEnd = plain4.indexOf(">", open.index);
|
|
20494
20549
|
if (openEnd < 0) return void 0;
|
|
20495
|
-
const attributes =
|
|
20550
|
+
const attributes = plain4.slice(open.index + tagName2.length + 1, openEnd);
|
|
20496
20551
|
if (attributes.trimEnd().endsWith("/") || attributes.includes("xmlns")) return void 0;
|
|
20497
|
-
const close4 =
|
|
20498
|
-
if (close4 < 0 || OPEN.test(
|
|
20552
|
+
const close4 = plain4.indexOf(`</${tagName2}`, openEnd);
|
|
20553
|
+
if (close4 < 0 || OPEN.test(plain4.slice(openEnd))) return void 0;
|
|
20499
20554
|
const container = new LiteElement(tagName2, "sheetData", ns || null);
|
|
20500
20555
|
const data = parseLiteFragment(xml.slice(openEnd + 1, close4), container, namespaces);
|
|
20501
20556
|
if (!data) return void 0;
|
package/dist/visio/ui/index.mjs
CHANGED
|
@@ -3,6 +3,7 @@ import JSZip from 'jszip';
|
|
|
3
3
|
|
|
4
4
|
// visio/ui/contract.ts
|
|
5
5
|
var propertyKeys = [
|
|
6
|
+
"canEdit",
|
|
6
7
|
"document",
|
|
7
8
|
"pageIndex",
|
|
8
9
|
"zoom",
|
|
@@ -1249,6 +1250,12 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
1249
1250
|
}
|
|
1250
1251
|
if (lt < 0) break;
|
|
1251
1252
|
const next = source.charCodeAt(lt + 1);
|
|
1253
|
+
if (next === 33) {
|
|
1254
|
+
const after = skipCommentOrCdata(source, lt, top);
|
|
1255
|
+
if (after < 0) return void 0;
|
|
1256
|
+
pos = after;
|
|
1257
|
+
continue;
|
|
1258
|
+
}
|
|
1252
1259
|
if (next === 47) {
|
|
1253
1260
|
const gt = source.indexOf(">", lt);
|
|
1254
1261
|
if (gt < 0 || stack.length < 2 || source.slice(lt + 2, gt).trimEnd() !== top.tagName)
|
|
@@ -1269,6 +1276,25 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
1269
1276
|
}
|
|
1270
1277
|
return stack.length === 1 ? root2 : void 0;
|
|
1271
1278
|
}
|
|
1279
|
+
var DECLARATIONS = /<!DOCTYPE|<!ENTITY/i;
|
|
1280
|
+
function skipCommentOrCdata(source, lt, parent) {
|
|
1281
|
+
if (source.startsWith("<!--", lt)) {
|
|
1282
|
+
const end = source.indexOf("-->", lt + 4);
|
|
1283
|
+
if (end < 0) return -1;
|
|
1284
|
+
const body = source.slice(lt + 4, end);
|
|
1285
|
+
if (body.includes("--") || body.endsWith("-") || DECLARATIONS.test(body)) return -1;
|
|
1286
|
+
return end + 3;
|
|
1287
|
+
}
|
|
1288
|
+
if (source.startsWith("<![CDATA[", lt)) {
|
|
1289
|
+
const end = source.indexOf("]]>", lt + 9);
|
|
1290
|
+
if (end < 0) return -1;
|
|
1291
|
+
const text8 = source.slice(lt + 9, end);
|
|
1292
|
+
if (DECLARATIONS.test(text8)) return -1;
|
|
1293
|
+
parent.childNodes.push(text8);
|
|
1294
|
+
return end + 3;
|
|
1295
|
+
}
|
|
1296
|
+
return -1;
|
|
1297
|
+
}
|
|
1272
1298
|
function startTag(source, from, namespaces) {
|
|
1273
1299
|
const n = source.length;
|
|
1274
1300
|
let i = from;
|
|
@@ -20475,21 +20501,50 @@ function rootNamespaces(xml) {
|
|
|
20475
20501
|
for (const match of (root2[2] ?? "").matchAll(DECLARATION2)) out[match[1] ?? ""] = match[3] ?? "";
|
|
20476
20502
|
return out;
|
|
20477
20503
|
}
|
|
20504
|
+
var SPECIAL = /<[!?]/g;
|
|
20505
|
+
var SECTIONS = [
|
|
20506
|
+
["<!--", "-->"],
|
|
20507
|
+
["<![CDATA[", "]]>"],
|
|
20508
|
+
["<?", "?>"]
|
|
20509
|
+
];
|
|
20510
|
+
function blankComments(xml) {
|
|
20511
|
+
if (!xml.includes("<!--") && !xml.includes("<![CDATA[")) return xml;
|
|
20512
|
+
const pieces = [];
|
|
20513
|
+
let copied = 0;
|
|
20514
|
+
SPECIAL.lastIndex = 0;
|
|
20515
|
+
for (let match = SPECIAL.exec(xml); match; match = SPECIAL.exec(xml)) {
|
|
20516
|
+
const at2 = match.index;
|
|
20517
|
+
const section3 = SECTIONS.find(([open2]) => xml.startsWith(open2, at2));
|
|
20518
|
+
if (!section3) return void 0;
|
|
20519
|
+
const [open, close4] = section3;
|
|
20520
|
+
const end = xml.indexOf(close4, at2 + open.length);
|
|
20521
|
+
if (end < 0) return void 0;
|
|
20522
|
+
const after = end + close4.length;
|
|
20523
|
+
if (open !== "<?") {
|
|
20524
|
+
pieces.push(xml.slice(copied, at2), " ".repeat(after - at2));
|
|
20525
|
+
copied = after;
|
|
20526
|
+
}
|
|
20527
|
+
SPECIAL.lastIndex = after;
|
|
20528
|
+
}
|
|
20529
|
+
pieces.push(xml.slice(copied));
|
|
20530
|
+
return pieces.join("");
|
|
20531
|
+
}
|
|
20478
20532
|
function splitSheetData(xml) {
|
|
20479
|
-
|
|
20480
|
-
|
|
20481
|
-
const
|
|
20533
|
+
const plain4 = blankComments(xml);
|
|
20534
|
+
if (plain4 === void 0) return void 0;
|
|
20535
|
+
const namespaces = rootNamespaces(plain4);
|
|
20536
|
+
const open = OPEN.exec(plain4);
|
|
20482
20537
|
if (!namespaces || !open) return void 0;
|
|
20483
20538
|
const prefix2 = (open[1] ?? "").slice(0, -1);
|
|
20484
20539
|
const ns = namespaces[prefix2];
|
|
20485
20540
|
if (prefix2 && ns === void 0) return void 0;
|
|
20486
20541
|
const tagName2 = `${open[1] ?? ""}sheetData`;
|
|
20487
|
-
const openEnd =
|
|
20542
|
+
const openEnd = plain4.indexOf(">", open.index);
|
|
20488
20543
|
if (openEnd < 0) return void 0;
|
|
20489
|
-
const attributes =
|
|
20544
|
+
const attributes = plain4.slice(open.index + tagName2.length + 1, openEnd);
|
|
20490
20545
|
if (attributes.trimEnd().endsWith("/") || attributes.includes("xmlns")) return void 0;
|
|
20491
|
-
const close4 =
|
|
20492
|
-
if (close4 < 0 || OPEN.test(
|
|
20546
|
+
const close4 = plain4.indexOf(`</${tagName2}`, openEnd);
|
|
20547
|
+
if (close4 < 0 || OPEN.test(plain4.slice(openEnd))) return void 0;
|
|
20493
20548
|
const container = new LiteElement(tagName2, "sheetData", ns || null);
|
|
20494
20549
|
const data = parseLiteFragment(xml.slice(openEnd + 1, close4), container, namespaces);
|
|
20495
20550
|
if (!data) return void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dimensions.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/dimensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrD,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,WAAW,CAAC;AAqBnE,qFAAqF;AACrF,wBAAgB,cAAc,CAC7B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,MAAM,GACjD,MAAM,GAAG,SAAS,CAUpB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC7B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,MAAM,GAClD,IAAI,CAiCN;AAgBD,kGAAkG;AAClG,wBAAgB,YAAY,CAC3B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,MAAM,GAAG,MAAM,GACrB,IAAI,CA4BN;AAED,wBAAgB,SAAS,CACxB,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,KAAK,GAAG,KAAK,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,OAAO,GACb,IAAI,
|
|
1
|
+
{"version":3,"file":"dimensions.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/dimensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrD,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,WAAW,CAAC;AAqBnE,qFAAqF;AACrF,wBAAgB,cAAc,CAC7B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,MAAM,GACjD,MAAM,GAAG,SAAS,CAUpB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC7B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,MAAM,GAClD,IAAI,CAiCN;AAgBD,kGAAkG;AAClG,wBAAgB,YAAY,CAC3B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,MAAM,GAAG,MAAM,GACrB,IAAI,CA4BN;AAED,wBAAgB,SAAS,CACxB,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,KAAK,GAAG,KAAK,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,OAAO,GACb,IAAI,CAmDN"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { RowInfo, Worksheet } from '../model.js';
|
|
2
|
+
/** Each named row's metadata, cloned; `undefined` where the row has none. */
|
|
3
|
+
export type RowInfoEntries = [row: number, info: RowInfo | undefined][];
|
|
4
|
+
export declare function captureRowInfo(sheet: Worksheet, rows: readonly number[]): RowInfoEntries;
|
|
5
|
+
/** Puts recorded row metadata back into the sheet's own `rowInfo` map. */
|
|
6
|
+
export declare function restoreRowInfo(sheet: Worksheet, entries: RowInfoEntries): void;
|
|
7
|
+
//# sourceMappingURL=history-rows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history-rows.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/history-rows.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnD,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;AAExE,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc,CAKxF;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAI9E"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { type CellRange } from '../address.js';
|
|
2
2
|
import type { Cell, DefinedName, Workbook, Worksheet } from '../model.js';
|
|
3
3
|
import { type RefsData, type ShiftSpec } from './history-refs.js';
|
|
4
|
+
import { type RowInfoEntries } from './history-rows.js';
|
|
4
5
|
/** Worksheet properties a `parts` scope can record (everything but the cells). */
|
|
5
6
|
export type SheetPart = Exclude<keyof Worksheet, 'rows'>;
|
|
6
7
|
/**
|
|
7
8
|
* What an edit may change. `cells` records only the stored cells inside the ranges, `parts` some
|
|
8
|
-
* of a sheet's non-cell properties (tables, merges, ...), `
|
|
9
|
+
* of a sheet's non-cell properties (tables, merges, ...), `rowInfo` the row metadata (height,
|
|
10
|
+
* hiding, outline) of the given rows only, `sheet` the whole worksheet, `refs` what
|
|
9
11
|
* a workbook-wide reference rewrite touches (sheet metadata, names and the formulas that change),
|
|
10
12
|
* `shift` a row or column insert or delete on one sheet (the moved cells are not copied, only the
|
|
11
13
|
* destroyed and created ones and the changed references), `workbook` every sheet plus the
|
|
@@ -19,6 +21,10 @@ export type EditScope = {
|
|
|
19
21
|
kind: 'parts';
|
|
20
22
|
sheet: number;
|
|
21
23
|
parts: SheetPart[];
|
|
24
|
+
} | {
|
|
25
|
+
kind: 'rowInfo';
|
|
26
|
+
sheet: number;
|
|
27
|
+
rows: readonly number[];
|
|
22
28
|
} | {
|
|
23
29
|
kind: 'sheet';
|
|
24
30
|
sheet: number;
|
|
@@ -41,6 +47,10 @@ type Snapshot = {
|
|
|
41
47
|
sheet: number;
|
|
42
48
|
parts: SheetPart[];
|
|
43
49
|
data: Partial<Worksheet>;
|
|
50
|
+
} | {
|
|
51
|
+
kind: 'rowInfo';
|
|
52
|
+
sheet: number;
|
|
53
|
+
rows: RowInfoEntries;
|
|
44
54
|
} | {
|
|
45
55
|
kind: 'sheet';
|
|
46
56
|
sheet: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAkB,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,SAAS,EAMd,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/history.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/outline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,WAAW,CAAC;AAEtD,qCAAqC;AACrC,eAAO,MAAM,iBAAiB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/outline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,WAAW,CAAC;AAEtD,qCAAqC;AACrC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AA6DnC,iFAAiF;AACjF,eAAO,MAAM,SAAS,QAAS,WAAW,KAAK,MAAM,QAAQ,MAAM,MAAM,MAAM,KAAG,IACjD,CAAC;AAClC,wEAAwE;AACxE,eAAO,MAAM,WAAW,QAAS,WAAW,KAAK,MAAM,QAAQ,MAAM,MAAM,MAAM,KAAG,IAClD,CAAC;AACnC,oFAAoF;AACpF,eAAO,MAAM,YAAY,QAAS,WAAW,KAAK,MAAM,QAAQ,MAAM,MAAM,MAAM,KAAG,IACjD,CAAC;AACrC,2EAA2E;AAC3E,eAAO,MAAM,cAAc,QAAS,WAAW,KAAK,MAAM,QAAQ,MAAM,MAAM,MAAM,KAAG,IAClD,CAAC;AAEtC,oGAAoG;AACpG,wBAAgB,qBAAqB,CACpC,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,GAAG,SAAS,GACvB,IAAI,CAcN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-autofit.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/row-autofit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAkB,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,WAAW,CAAC;AAKtD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC3B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EACtB,OAAO,GAAE,WAAgC,GACvC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"row-autofit.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/row-autofit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAkB,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,WAAW,CAAC;AAKtD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC3B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EACtB,OAAO,GAAE,WAAgC,GACvC,MAAM,EAAE,CAkCV;AAKD,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,EAAE,CAepF"}
|
package/dist/xlsx/index.cjs
CHANGED
|
@@ -11896,6 +11896,12 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
11896
11896
|
}
|
|
11897
11897
|
if (lt < 0) break;
|
|
11898
11898
|
const next = source2.charCodeAt(lt + 1);
|
|
11899
|
+
if (next === 33) {
|
|
11900
|
+
const after = skipCommentOrCdata(source2, lt, top);
|
|
11901
|
+
if (after < 0) return void 0;
|
|
11902
|
+
pos = after;
|
|
11903
|
+
continue;
|
|
11904
|
+
}
|
|
11899
11905
|
if (next === 47) {
|
|
11900
11906
|
const gt = source2.indexOf(">", lt);
|
|
11901
11907
|
if (gt < 0 || stack2.length < 2 || source2.slice(lt + 2, gt).trimEnd() !== top.tagName)
|
|
@@ -11916,6 +11922,25 @@ function parseLiteFragment(xml, container, namespaces) {
|
|
|
11916
11922
|
}
|
|
11917
11923
|
return stack2.length === 1 ? root : void 0;
|
|
11918
11924
|
}
|
|
11925
|
+
var DECLARATIONS = /<!DOCTYPE|<!ENTITY/i;
|
|
11926
|
+
function skipCommentOrCdata(source2, lt, parent) {
|
|
11927
|
+
if (source2.startsWith("<!--", lt)) {
|
|
11928
|
+
const end = source2.indexOf("-->", lt + 4);
|
|
11929
|
+
if (end < 0) return -1;
|
|
11930
|
+
const body = source2.slice(lt + 4, end);
|
|
11931
|
+
if (body.includes("--") || body.endsWith("-") || DECLARATIONS.test(body)) return -1;
|
|
11932
|
+
return end + 3;
|
|
11933
|
+
}
|
|
11934
|
+
if (source2.startsWith("<![CDATA[", lt)) {
|
|
11935
|
+
const end = source2.indexOf("]]>", lt + 9);
|
|
11936
|
+
if (end < 0) return -1;
|
|
11937
|
+
const text4 = source2.slice(lt + 9, end);
|
|
11938
|
+
if (DECLARATIONS.test(text4)) return -1;
|
|
11939
|
+
parent.childNodes.push(text4);
|
|
11940
|
+
return end + 3;
|
|
11941
|
+
}
|
|
11942
|
+
return -1;
|
|
11943
|
+
}
|
|
11919
11944
|
function startTag(source2, from, namespaces) {
|
|
11920
11945
|
const n2 = source2.length;
|
|
11921
11946
|
let i2 = from;
|
|
@@ -24868,21 +24893,50 @@ function rootNamespaces(xml) {
|
|
|
24868
24893
|
for (const match2 of (root[2] ?? "").matchAll(DECLARATION2)) out[match2[1] ?? ""] = match2[3] ?? "";
|
|
24869
24894
|
return out;
|
|
24870
24895
|
}
|
|
24896
|
+
var SPECIAL = /<[!?]/g;
|
|
24897
|
+
var SECTIONS = [
|
|
24898
|
+
["<!--", "-->"],
|
|
24899
|
+
["<![CDATA[", "]]>"],
|
|
24900
|
+
["<?", "?>"]
|
|
24901
|
+
];
|
|
24902
|
+
function blankComments(xml) {
|
|
24903
|
+
if (!xml.includes("<!--") && !xml.includes("<![CDATA[")) return xml;
|
|
24904
|
+
const pieces = [];
|
|
24905
|
+
let copied = 0;
|
|
24906
|
+
SPECIAL.lastIndex = 0;
|
|
24907
|
+
for (let match2 = SPECIAL.exec(xml); match2; match2 = SPECIAL.exec(xml)) {
|
|
24908
|
+
const at = match2.index;
|
|
24909
|
+
const section = SECTIONS.find(([open2]) => xml.startsWith(open2, at));
|
|
24910
|
+
if (!section) return void 0;
|
|
24911
|
+
const [open, close2] = section;
|
|
24912
|
+
const end = xml.indexOf(close2, at + open.length);
|
|
24913
|
+
if (end < 0) return void 0;
|
|
24914
|
+
const after = end + close2.length;
|
|
24915
|
+
if (open !== "<?") {
|
|
24916
|
+
pieces.push(xml.slice(copied, at), " ".repeat(after - at));
|
|
24917
|
+
copied = after;
|
|
24918
|
+
}
|
|
24919
|
+
SPECIAL.lastIndex = after;
|
|
24920
|
+
}
|
|
24921
|
+
pieces.push(xml.slice(copied));
|
|
24922
|
+
return pieces.join("");
|
|
24923
|
+
}
|
|
24871
24924
|
function splitSheetData(xml) {
|
|
24872
|
-
|
|
24873
|
-
|
|
24874
|
-
const
|
|
24925
|
+
const plain3 = blankComments(xml);
|
|
24926
|
+
if (plain3 === void 0) return void 0;
|
|
24927
|
+
const namespaces = rootNamespaces(plain3);
|
|
24928
|
+
const open = OPEN.exec(plain3);
|
|
24875
24929
|
if (!namespaces || !open) return void 0;
|
|
24876
24930
|
const prefix = (open[1] ?? "").slice(0, -1);
|
|
24877
24931
|
const ns = namespaces[prefix];
|
|
24878
24932
|
if (prefix && ns === void 0) return void 0;
|
|
24879
24933
|
const tagName = `${open[1] ?? ""}sheetData`;
|
|
24880
|
-
const openEnd =
|
|
24934
|
+
const openEnd = plain3.indexOf(">", open.index);
|
|
24881
24935
|
if (openEnd < 0) return void 0;
|
|
24882
|
-
const attributes =
|
|
24936
|
+
const attributes = plain3.slice(open.index + tagName.length + 1, openEnd);
|
|
24883
24937
|
if (attributes.trimEnd().endsWith("/") || attributes.includes("xmlns")) return void 0;
|
|
24884
|
-
const close2 =
|
|
24885
|
-
if (close2 < 0 || OPEN.test(
|
|
24938
|
+
const close2 = plain3.indexOf(`</${tagName}`, openEnd);
|
|
24939
|
+
if (close2 < 0 || OPEN.test(plain3.slice(openEnd))) return void 0;
|
|
24886
24940
|
const container = new LiteElement(tagName, "sheetData", ns || null);
|
|
24887
24941
|
const data = parseLiteFragment(xml.slice(openEnd + 1, close2), container, namespaces);
|
|
24888
24942
|
if (!data) return void 0;
|
|
@@ -33673,7 +33727,7 @@ function setColumnWidth(ctx, s, cols, width, measure2) {
|
|
|
33673
33727
|
ctx.run(
|
|
33674
33728
|
"Column width",
|
|
33675
33729
|
"view",
|
|
33676
|
-
[{ kind: "
|
|
33730
|
+
[{ kind: "parts", sheet: s, parts: ["columns"] }],
|
|
33677
33731
|
() => editColumns(sheet, cols, (info) => {
|
|
33678
33732
|
const next = widths.get(info.min);
|
|
33679
33733
|
if (next === void 0) {
|
|
@@ -33708,7 +33762,7 @@ function setRowHeight(ctx, s, rows, height) {
|
|
|
33708
33762
|
ctx.run(
|
|
33709
33763
|
"Row height",
|
|
33710
33764
|
"view",
|
|
33711
|
-
[{ kind: "
|
|
33765
|
+
[{ kind: "rowInfo", sheet: s, rows }],
|
|
33712
33766
|
() => {
|
|
33713
33767
|
for (const row2 of rows) {
|
|
33714
33768
|
const info = { ...sheet.rowInfo.get(row2) };
|
|
@@ -33738,7 +33792,9 @@ function setHidden(ctx, s, axis, indices, hidden) {
|
|
|
33738
33792
|
ctx.run(
|
|
33739
33793
|
`${hidden ? "Hide" : "Unhide"} ${noun}`,
|
|
33740
33794
|
"view",
|
|
33741
|
-
[
|
|
33795
|
+
[
|
|
33796
|
+
axis === "col" ? { kind: "parts", sheet: s, parts: ["columns"] } : { kind: "rowInfo", sheet: s, rows: indices }
|
|
33797
|
+
],
|
|
33742
33798
|
() => {
|
|
33743
33799
|
if (axis === "col") {
|
|
33744
33800
|
editColumns(sheet, indices, (info) => {
|
|
@@ -34353,6 +34409,19 @@ function shiftEdgeCells(sheet, spec2, phase) {
|
|
|
34353
34409
|
return out;
|
|
34354
34410
|
}
|
|
34355
34411
|
|
|
34412
|
+
// xlsx/edit/history-rows.ts
|
|
34413
|
+
function captureRowInfo(sheet, rows) {
|
|
34414
|
+
return [...new Set(rows)].map((row2) => {
|
|
34415
|
+
const info = sheet.rowInfo.get(row2);
|
|
34416
|
+
return [row2, info && structuredClone(info)];
|
|
34417
|
+
});
|
|
34418
|
+
}
|
|
34419
|
+
function restoreRowInfo(sheet, entries) {
|
|
34420
|
+
for (const [row2, info] of entries)
|
|
34421
|
+
if (info) sheet.rowInfo.set(row2, structuredClone(info));
|
|
34422
|
+
else sheet.rowInfo.delete(row2);
|
|
34423
|
+
}
|
|
34424
|
+
|
|
34356
34425
|
// xlsx/edit/history.ts
|
|
34357
34426
|
var SETTING_KEYS = [
|
|
34358
34427
|
"structureLocked",
|
|
@@ -34437,6 +34506,8 @@ function captureScope(workbook, scope, before) {
|
|
|
34437
34506
|
if (!sheet) throw new RangeError(`No sheet at index ${scope.sheet}`);
|
|
34438
34507
|
if (scope.kind === "sheet")
|
|
34439
34508
|
return { kind: "sheet", sheet: scope.sheet, data: structuredClone(sheet) };
|
|
34509
|
+
if (scope.kind === "rowInfo")
|
|
34510
|
+
return { kind: "rowInfo", sheet: scope.sheet, rows: captureRowInfo(sheet, scope.rows) };
|
|
34440
34511
|
if (scope.kind === "parts") {
|
|
34441
34512
|
const data = {};
|
|
34442
34513
|
for (const part of scope.parts) if (sheet[part] !== void 0) data[part] = sheet[part];
|
|
@@ -34488,6 +34559,7 @@ function restoreSnapshot(workbook, snapshot) {
|
|
|
34488
34559
|
}
|
|
34489
34560
|
const sheet = workbook.sheets[snapshot.sheet];
|
|
34490
34561
|
if (!sheet) return;
|
|
34562
|
+
if (snapshot.kind === "rowInfo") return restoreRowInfo(sheet, snapshot.rows);
|
|
34491
34563
|
if (snapshot.kind === "parts") {
|
|
34492
34564
|
const target = sheet;
|
|
34493
34565
|
const data = structuredClone(snapshot.data);
|
|
@@ -37135,12 +37207,13 @@ function span2(from, to) {
|
|
|
37135
37207
|
}
|
|
37136
37208
|
function outlineRows(ctx, s, from, to, delta) {
|
|
37137
37209
|
const sheet = sheetAt(ctx.workbook, s);
|
|
37210
|
+
const rows = span2(from, to);
|
|
37138
37211
|
ctx.run(
|
|
37139
37212
|
delta > 0 ? "Group rows" : "Ungroup rows",
|
|
37140
37213
|
"structure",
|
|
37141
|
-
[{ kind: "
|
|
37214
|
+
[{ kind: "rowInfo", sheet: s, rows }],
|
|
37142
37215
|
() => {
|
|
37143
|
-
for (const row2 of
|
|
37216
|
+
for (const row2 of rows) {
|
|
37144
37217
|
const info = { ...sheet.rowInfo.get(row2) };
|
|
37145
37218
|
const level2 = nextLevel(info.outlineLevel, delta);
|
|
37146
37219
|
if (level2) info.outlineLevel = level2;
|
|
@@ -37160,7 +37233,7 @@ function outlineColumns(ctx, s, from, to, delta) {
|
|
|
37160
37233
|
ctx.run(
|
|
37161
37234
|
delta > 0 ? "Group columns" : "Ungroup columns",
|
|
37162
37235
|
"structure",
|
|
37163
|
-
[{ kind: "
|
|
37236
|
+
[{ kind: "parts", sheet: s, parts: ["columns"] }],
|
|
37164
37237
|
() => editColumns(sheet, span2(from, to), (info) => {
|
|
37165
37238
|
const level2 = nextLevel(info.outlineLevel, delta);
|
|
37166
37239
|
if (level2) info.outlineLevel = level2;
|
|
@@ -37183,7 +37256,7 @@ function setDefaultColumnWidth(ctx, s, width) {
|
|
|
37183
37256
|
ctx.run(
|
|
37184
37257
|
"Standard width",
|
|
37185
37258
|
"format",
|
|
37186
|
-
[{ kind: "
|
|
37259
|
+
[{ kind: "parts", sheet: s, parts: ["defaultColWidth"] }],
|
|
37187
37260
|
() => {
|
|
37188
37261
|
if (width === void 0) Reflect.deleteProperty(sheet, "defaultColWidth");
|
|
37189
37262
|
else sheet.defaultColWidth = width;
|
|
@@ -39805,10 +39878,11 @@ function autoGrowRows(ctx, s, rows, measure2 = approximateMeasure) {
|
|
|
39805
39878
|
updates.push([row2, next]);
|
|
39806
39879
|
}
|
|
39807
39880
|
if (!updates.length) return [];
|
|
39881
|
+
const changed = updates.map(([row2]) => row2);
|
|
39808
39882
|
ctx.run(
|
|
39809
39883
|
"Row height",
|
|
39810
39884
|
"view",
|
|
39811
|
-
[{ kind: "
|
|
39885
|
+
[{ kind: "rowInfo", sheet: s, rows: changed }],
|
|
39812
39886
|
() => {
|
|
39813
39887
|
for (const [row2, height] of updates) {
|
|
39814
39888
|
const info = { ...sheet.rowInfo.get(row2) };
|
|
@@ -39820,7 +39894,7 @@ function autoGrowRows(ctx, s, rows, measure2 = approximateMeasure) {
|
|
|
39820
39894
|
},
|
|
39821
39895
|
{ sheet: s, structural: true }
|
|
39822
39896
|
);
|
|
39823
|
-
return
|
|
39897
|
+
return changed;
|
|
39824
39898
|
}
|
|
39825
39899
|
var MAX_REFIT_ROWS = 1e4;
|
|
39826
39900
|
function rowsToRefit(sheet, ranges) {
|