ooxml-core 1.16.0 → 1.17.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/dist/{PptxHandler-M35YFCUC.mjs → PptxHandler-K7GMS2ST.mjs} +2 -2
- package/dist/PptxHandler-L3JPWOBN.mjs +4 -0
- package/dist/{PptxHandler-3A7VEXVK.cjs → PptxHandler-U6EFO73T.cjs} +3 -3
- package/dist/{PresentationBuilder-XVRTITYR.cjs → PresentationBuilder-LUR6LGHU.cjs} +5 -5
- package/dist/{PresentationBuilder-Y6DJK6H2.mjs → PresentationBuilder-OK526SZ4.mjs} +2 -2
- package/dist/{PresentationBuilder-C7NPM7OQ.mjs → PresentationBuilder-XC3F3OPY.mjs} +2 -2
- package/dist/automation/index.cjs +45 -12
- package/dist/automation/index.mjs +45 -12
- package/dist/chart/index.cjs +23 -4
- package/dist/chart/index.mjs +23 -4
- package/dist/{chunk-B37EVUMG.mjs → chunk-A7S2NYAU.mjs} +1 -1
- package/dist/{chunk-LM6VBPQJ.mjs → chunk-HLZIALC5.mjs} +24 -5
- package/dist/{chunk-WBCV52YV.mjs → chunk-IM5LFEA2.mjs} +1 -1
- package/dist/{chunk-OKGQ2X7D.mjs → chunk-KU3SMBFU.mjs} +1 -1
- package/dist/{chunk-UGWY72WC.cjs → chunk-NYTR4UZ5.cjs} +23 -4
- package/dist/{chunk-KOX5Y5E5.mjs → chunk-UFGJNXRG.mjs} +1 -1
- package/dist/{chunk-AHRFBMLK.cjs → chunk-UWWS6VVJ.cjs} +1007 -1007
- package/dist/{chunk-WEFFRYXN.mjs → chunk-XTSHZGSM.mjs} +23 -4
- package/dist/{chunk-C2Y6SZDN.mjs → chunk-YS43OMM3.mjs} +4 -4
- package/dist/collab/broadcast-transport.d.ts.map +1 -1
- package/dist/collab/identity.d.ts +2 -0
- package/dist/collab/identity.d.ts.map +1 -1
- package/dist/collab/index.cjs +11 -2
- package/dist/collab/index.mjs +11 -3
- package/dist/crypto/index.cjs +23 -4
- package/dist/crypto/index.mjs +23 -4
- package/dist/diagram/index.cjs +23 -4
- package/dist/diagram/index.mjs +23 -4
- package/dist/docx/embedded.cjs +23 -4
- package/dist/docx/embedded.mjs +23 -4
- package/dist/docx/index.cjs +24 -5
- package/dist/docx/index.mjs +24 -5
- package/dist/docx/layout/index.cjs +24 -5
- package/dist/docx/layout/index.mjs +24 -5
- package/dist/docx/load/index.cjs +23 -4
- package/dist/docx/load/index.mjs +23 -4
- package/dist/docx/ui/index.cjs +32 -5
- package/dist/docx/ui/index.mjs +32 -5
- package/dist/drawingml/index.cjs +23 -4
- package/dist/drawingml/index.mjs +23 -4
- package/dist/index.cjs +23 -4
- package/dist/index.mjs +23 -4
- package/dist/math/index.cjs +23 -4
- package/dist/math/index.mjs +23 -4
- package/dist/opc/index.cjs +23 -4
- package/dist/opc/index.mjs +23 -4
- package/dist/pptx/automation/index.cjs +28 -9
- package/dist/pptx/automation/index.mjs +5 -5
- package/dist/pptx/cli/index.cjs +28 -9
- package/dist/pptx/cli/index.mjs +4 -4
- 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.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 +28 -9
- package/dist/pptx/index.mjs +5 -5
- package/dist/teams/index.cjs +44 -9
- package/dist/teams/index.mjs +44 -9
- package/dist/visio/index.cjs +23 -4
- package/dist/visio/index.mjs +23 -4
- package/dist/visio/ui/document-history.d.ts +6 -1
- package/dist/visio/ui/document-history.d.ts.map +1 -1
- package/dist/visio/ui/index.cjs +49 -6
- package/dist/visio/ui/index.mjs +49 -7
- package/dist/xlsx/edit/context.d.ts.map +1 -1
- package/dist/xlsx/edit/slicers.d.ts.map +1 -1
- package/dist/xlsx/edit/timelines.d.ts.map +1 -1
- package/dist/xlsx/index.cjs +45 -12
- package/dist/xlsx/index.mjs +45 -12
- package/dist/xlsx/load/index.cjs +32 -5
- package/dist/xlsx/load/index.mjs +32 -5
- package/dist/xlsx/ui/dialogs/grid-chart.d.ts +25 -0
- package/dist/xlsx/ui/dialogs/grid-chart.d.ts.map +1 -0
- package/dist/xlsx/ui/index.cjs +4721 -1063
- 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 +4714 -1063
- package/dist/xml/index.cjs +23 -4
- package/dist/xml/index.mjs +23 -4
- package/dist/xml/xml.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/PptxHandler-7POULDRL.mjs +0 -4
package/dist/teams/index.mjs
CHANGED
|
@@ -267,9 +267,23 @@ function checkXmlLimits(xml, label2, limits = {}) {
|
|
|
267
267
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
268
268
|
let depth = 0;
|
|
269
269
|
let nodes = 0;
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
270
|
+
let at = xml.indexOf("<");
|
|
271
|
+
while (at !== -1) {
|
|
272
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at));
|
|
273
|
+
if (skip) {
|
|
274
|
+
const end = xml.indexOf(skip[1], at + skip[0].length);
|
|
275
|
+
if (end === -1) return;
|
|
276
|
+
at = xml.indexOf("<", end + skip[1].length);
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
TAG_RE.lastIndex = at;
|
|
280
|
+
const match2 = TAG_RE.exec(xml);
|
|
281
|
+
if (!match2) {
|
|
282
|
+
at = xml.indexOf("<", at + 1);
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
const [, closing, , selfClosing] = match2;
|
|
286
|
+
at = xml.indexOf("<", at + match2[0].length);
|
|
273
287
|
if (closing) {
|
|
274
288
|
depth--;
|
|
275
289
|
continue;
|
|
@@ -310,7 +324,7 @@ function named(element2, local, ns, lenient = true) {
|
|
|
310
324
|
function attr(element2, local, ns, prefix) {
|
|
311
325
|
return element2?.getAttributeNS(ns, local) ?? element2?.getAttribute(`${prefix}:${local}`) ?? void 0;
|
|
312
326
|
}
|
|
313
|
-
var DEFAULT_XML_LIMITS,
|
|
327
|
+
var DEFAULT_XML_LIMITS, TAG_RE, MARKUP_SKIPS, buildXml, isElement, elements, children, first, relAttr;
|
|
314
328
|
var init_xml = __esm({
|
|
315
329
|
"xml/xml.ts"() {
|
|
316
330
|
init_namespaces();
|
|
@@ -318,7 +332,12 @@ var init_xml = __esm({
|
|
|
318
332
|
maxDepth: 512,
|
|
319
333
|
maxNodes: 5e6
|
|
320
334
|
};
|
|
321
|
-
|
|
335
|
+
TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
|
|
336
|
+
MARKUP_SKIPS = [
|
|
337
|
+
["<!--", "-->"],
|
|
338
|
+
["<![CDATA[", "]]>"],
|
|
339
|
+
["<?", "?>"]
|
|
340
|
+
];
|
|
322
341
|
buildXml = (node2) => new XMLSerializer().serializeToString(node2);
|
|
323
342
|
isElement = (node2) => node2.nodeType === 1;
|
|
324
343
|
elements = (parent) => Array.from(parent.childNodes).filter(isElement);
|
|
@@ -22973,9 +22992,17 @@ function pivotTableXml(source2, cacheId, cache3) {
|
|
|
22973
22992
|
}
|
|
22974
22993
|
return XML_HEADER + buildXml(root);
|
|
22975
22994
|
}
|
|
22995
|
+
function firstFilterTag(xml) {
|
|
22996
|
+
for (let at = xml.indexOf("<filter"); at !== -1; at = xml.indexOf("<filter", at + 1)) {
|
|
22997
|
+
if (!/\s/.test(xml.charAt(at + 7))) continue;
|
|
22998
|
+
const end = xml.indexOf(">", at);
|
|
22999
|
+
return end === -1 ? "" : xml.slice(at, end + 1);
|
|
23000
|
+
}
|
|
23001
|
+
return "";
|
|
23002
|
+
}
|
|
22976
23003
|
function dateFilterXml(pivot, filter2) {
|
|
22977
23004
|
const x15 = "http://schemas.microsoft.com/office/spreadsheetml/2010/11/main";
|
|
22978
|
-
const id = Number(
|
|
23005
|
+
const id = Number(/\bid="(\d+)"/.exec(firstFilterTag(pivot.sourceXml ?? ""))?.[1] ?? 1);
|
|
22979
23006
|
return `<filters count="1"><filter${attrs({ fld: pivot.fields.indexOf(filter2.field), type: "dateBetween", evalOrder: -1, id, name: filter2.field })}><autoFilter ref="A1"><filterColumn colId="0"><customFilters and="1"><customFilter operator="greaterThanOrEqual" val="${Math.floor(filter2.start)}"/><customFilter operator="lessThanOrEqual" val="${Math.floor(filter2.end)}"/></customFilters></filterColumn></autoFilter><extLst><ext uri="{0605FD5F-26C8-4aeb-8148-2DB25E43C511}" xmlns:x15="${x15}"><x15:pivotFilter useWholeDay="1"/></ext></extLst></filter></filters>`;
|
|
22980
23007
|
}
|
|
22981
23008
|
var X14;
|
|
@@ -25144,10 +25171,18 @@ function assignUserColor(seed, palette = CURSOR_PALETTE) {
|
|
|
25144
25171
|
for (let i = 0; i < text2.length; i++) hash = hash * 31 + text2.charCodeAt(i) | 0;
|
|
25145
25172
|
return palette[Math.abs(hash) % palette.length] ?? DEFAULT_COLOR;
|
|
25146
25173
|
}
|
|
25174
|
+
function randomToken() {
|
|
25175
|
+
const cryptoApi = globalThis.crypto;
|
|
25176
|
+
if (cryptoApi?.getRandomValues) {
|
|
25177
|
+
return cryptoApi.getRandomValues(new Uint32Array(2)).reduce((s, n) => s + n.toString(36), "").slice(0, 8);
|
|
25178
|
+
}
|
|
25179
|
+
return (fallbackCounter++).toString(36).padStart(8, "0");
|
|
25180
|
+
}
|
|
25181
|
+
var fallbackCounter = 0;
|
|
25147
25182
|
function createClientId() {
|
|
25148
25183
|
const cryptoApi = globalThis.crypto;
|
|
25149
25184
|
if (cryptoApi?.randomUUID) return cryptoApi.randomUUID();
|
|
25150
|
-
return `c${Date.now().toString(36)}${
|
|
25185
|
+
return `c${Date.now().toString(36)}${randomToken()}`;
|
|
25151
25186
|
}
|
|
25152
25187
|
function clientKey(clientId) {
|
|
25153
25188
|
if (!isValidId(clientId)) throw new Error("Invalid collaboration client ID");
|
|
@@ -26387,7 +26422,7 @@ function meetingToIcs(meeting, options = {}) {
|
|
|
26387
26422
|
return `${lines.flatMap(icsFold).join("\r\n")}\r
|
|
26388
26423
|
`;
|
|
26389
26424
|
}
|
|
26390
|
-
var icsFileName = (meeting) => `${meeting.title.replace(/[^\w.-]+/gu, "-").replace(
|
|
26425
|
+
var icsFileName = (meeting) => `${meeting.title.replace(/[^\w.-]+/gu, "-").replace(/^-|-$/gu, "").slice(0, 60) || "meeting"}.ics`;
|
|
26391
26426
|
var MAX_EXCEPTIONS = 400;
|
|
26392
26427
|
var MAX_SPAN = 24 * 36e5;
|
|
26393
26428
|
var time = (v) => typeof v === "number" && Number.isFinite(v) && v > 0 && v < 864e13 ? Math.floor(v) : null;
|
|
@@ -27723,7 +27758,7 @@ var isEnvelope = (value) => {
|
|
|
27723
27758
|
function createBroadcastTransport(options) {
|
|
27724
27759
|
const roomId = validateRoomId(options.roomId);
|
|
27725
27760
|
const Channel = options.BroadcastChannel ?? globalThis.BroadcastChannel;
|
|
27726
|
-
const self =
|
|
27761
|
+
const self = randomToken() + Date.now().toString(36);
|
|
27727
27762
|
let channel = null;
|
|
27728
27763
|
let handlers = null;
|
|
27729
27764
|
const close = () => {
|
package/dist/visio/index.cjs
CHANGED
|
@@ -80,15 +80,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
80
80
|
maxDepth: 512,
|
|
81
81
|
maxNodes: 5e6
|
|
82
82
|
};
|
|
83
|
-
var
|
|
83
|
+
var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
|
|
84
|
+
var MARKUP_SKIPS = [
|
|
85
|
+
["<!--", "-->"],
|
|
86
|
+
["<![CDATA[", "]]>"],
|
|
87
|
+
["<?", "?>"]
|
|
88
|
+
];
|
|
84
89
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
85
90
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
86
91
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
87
92
|
let depth = 0;
|
|
88
93
|
let nodes = 0;
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
94
|
+
let at2 = xml.indexOf("<");
|
|
95
|
+
while (at2 !== -1) {
|
|
96
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at2));
|
|
97
|
+
if (skip) {
|
|
98
|
+
const end = xml.indexOf(skip[1], at2 + skip[0].length);
|
|
99
|
+
if (end === -1) return;
|
|
100
|
+
at2 = xml.indexOf("<", end + skip[1].length);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
TAG_RE.lastIndex = at2;
|
|
104
|
+
const match = TAG_RE.exec(xml);
|
|
105
|
+
if (!match) {
|
|
106
|
+
at2 = xml.indexOf("<", at2 + 1);
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
const [, closing, , selfClosing] = match;
|
|
110
|
+
at2 = xml.indexOf("<", at2 + match[0].length);
|
|
92
111
|
if (closing) {
|
|
93
112
|
depth--;
|
|
94
113
|
continue;
|
package/dist/visio/index.mjs
CHANGED
|
@@ -74,15 +74,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
74
74
|
maxDepth: 512,
|
|
75
75
|
maxNodes: 5e6
|
|
76
76
|
};
|
|
77
|
-
var
|
|
77
|
+
var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
|
|
78
|
+
var MARKUP_SKIPS = [
|
|
79
|
+
["<!--", "-->"],
|
|
80
|
+
["<![CDATA[", "]]>"],
|
|
81
|
+
["<?", "?>"]
|
|
82
|
+
];
|
|
78
83
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
79
84
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
80
85
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
81
86
|
let depth = 0;
|
|
82
87
|
let nodes = 0;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
88
|
+
let at2 = xml.indexOf("<");
|
|
89
|
+
while (at2 !== -1) {
|
|
90
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at2));
|
|
91
|
+
if (skip) {
|
|
92
|
+
const end = xml.indexOf(skip[1], at2 + skip[0].length);
|
|
93
|
+
if (end === -1) return;
|
|
94
|
+
at2 = xml.indexOf("<", end + skip[1].length);
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
TAG_RE.lastIndex = at2;
|
|
98
|
+
const match = TAG_RE.exec(xml);
|
|
99
|
+
if (!match) {
|
|
100
|
+
at2 = xml.indexOf("<", at2 + 1);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
const [, closing, , selfClosing] = match;
|
|
104
|
+
at2 = xml.indexOf("<", at2 + match[0].length);
|
|
86
105
|
if (closing) {
|
|
87
106
|
depth--;
|
|
88
107
|
continue;
|
|
@@ -23,6 +23,8 @@ export declare const EDIT_HISTORY_LIMITS: Readonly<{
|
|
|
23
23
|
maxBytes: number;
|
|
24
24
|
maxEntries: 20;
|
|
25
25
|
}>;
|
|
26
|
+
/** A requested undo depth as a snapshot count: whole, at least 2 (one undo), at most the cap. */
|
|
27
|
+
export declare const clampHistoryEntries: (entries: number) => number;
|
|
26
28
|
export interface SourceSnapshot {
|
|
27
29
|
readonly bytes: Uint8Array;
|
|
28
30
|
readonly diagnostics: readonly EditDiagnostic[];
|
|
@@ -31,12 +33,15 @@ export interface SourceSnapshot {
|
|
|
31
33
|
export declare class DocumentHistory {
|
|
32
34
|
#private;
|
|
33
35
|
readonly original: SourceSnapshot;
|
|
34
|
-
constructor(bytes: Uint8Array);
|
|
36
|
+
constructor(bytes: Uint8Array, maxEntries?: number);
|
|
35
37
|
get current(): SourceSnapshot;
|
|
36
38
|
get undoTarget(): SourceSnapshot | undefined;
|
|
37
39
|
get redoTarget(): SourceSnapshot | undefined;
|
|
38
40
|
get state(): ViewerEditState;
|
|
39
41
|
append(bytes: Uint8Array, diagnostics: readonly EditDiagnostic[]): void;
|
|
42
|
+
/** Keep at most `entries` snapshots (the original plus its edits), dropping the oldest first. */
|
|
43
|
+
set maxEntries(entries: number);
|
|
44
|
+
get maxEntries(): number;
|
|
40
45
|
move(target: SourceSnapshot): void;
|
|
41
46
|
export(): VsdxExportResult;
|
|
42
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-history.d.ts","sourceRoot":"","sources":["../../../visio/ui/document-history.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CACvC;AACD,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AACD,eAAO,MAAM,gBAAgB,EAAE,eAS7B,CAAC;AACH,eAAO,MAAM,mBAAmB;;;EAAgE,CAAC;AACjG,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AACD,wGAAwG;AACxG,qBAAa,eAAe;;IAC3B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"document-history.d.ts","sourceRoot":"","sources":["../../../visio/ui/document-history.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CACvC;AACD,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AACD,eAAO,MAAM,gBAAgB,EAAE,eAS7B,CAAC;AACH,eAAO,MAAM,mBAAmB;;;EAAgE,CAAC;AACjG,iGAAiG;AACjG,eAAO,MAAM,mBAAmB,YAAa,MAAM,KAAG,MAIpD,CAAC;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AACD,wGAAwG;AACxG,qBAAa,eAAe;;IAC3B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAKlC,YAAY,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,EAIjD;IACD,IAAI,OAAO,IAAI,cAAc,CAE5B;IACD,IAAI,UAAU,IAAI,cAAc,GAAG,SAAS,CAE3C;IACD,IAAI,UAAU,IAAI,cAAc,GAAG,SAAS,CAE3C;IACD,IAAI,KAAK,IAAI,eAAe,CAU3B;IACD,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,CAWtE;IACD,iGAAiG;IACjG,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,EAU7B;IACD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAeD,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAKjC;IACD,MAAM,IAAI,gBAAgB,CAMzB;CACD"}
|
package/dist/visio/ui/index.cjs
CHANGED
|
@@ -170,12 +170,18 @@ var EMPTY_EDIT_STATE = Object.freeze({
|
|
|
170
170
|
diagnostics: Object.freeze([])
|
|
171
171
|
});
|
|
172
172
|
var EDIT_HISTORY_LIMITS = Object.freeze({ maxBytes: 96 * 1024 * 1024, maxEntries: 20 });
|
|
173
|
+
var clampHistoryEntries = (entries) => Math.min(
|
|
174
|
+
EDIT_HISTORY_LIMITS.maxEntries,
|
|
175
|
+
Math.max(2, Number.isFinite(entries) ? Math.round(entries) : EDIT_HISTORY_LIMITS.maxEntries)
|
|
176
|
+
);
|
|
173
177
|
var DocumentHistory = class {
|
|
174
178
|
original;
|
|
175
179
|
#entries;
|
|
176
180
|
#index = 0;
|
|
177
181
|
#truncated = false;
|
|
178
|
-
|
|
182
|
+
#maxEntries = EDIT_HISTORY_LIMITS.maxEntries;
|
|
183
|
+
constructor(bytes, maxEntries) {
|
|
184
|
+
if (maxEntries !== void 0) this.#maxEntries = clampHistoryEntries(maxEntries);
|
|
179
185
|
this.original = { bytes: Uint8Array.from(bytes), diagnostics: Object.freeze([]) };
|
|
180
186
|
this.#entries = [this.original];
|
|
181
187
|
}
|
|
@@ -209,8 +215,25 @@ var DocumentHistory = class {
|
|
|
209
215
|
this.#entries = this.#entries.slice(0, this.#index + 1);
|
|
210
216
|
this.#entries.push(snapshot);
|
|
211
217
|
this.#index++;
|
|
218
|
+
this.#trim();
|
|
219
|
+
}
|
|
220
|
+
/** Keep at most `entries` snapshots (the original plus its edits), dropping the oldest first. */
|
|
221
|
+
set maxEntries(entries) {
|
|
222
|
+
this.#maxEntries = clampHistoryEntries(entries);
|
|
223
|
+
while (this.#entries.length > this.#maxEntries) {
|
|
224
|
+
if (this.#index > 0) {
|
|
225
|
+
this.#entries.shift();
|
|
226
|
+
this.#index--;
|
|
227
|
+
this.#truncated = true;
|
|
228
|
+
} else this.#entries.pop();
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
get maxEntries() {
|
|
232
|
+
return this.#maxEntries;
|
|
233
|
+
}
|
|
234
|
+
#trim() {
|
|
212
235
|
const retained = () => /* @__PURE__ */ new Set([this.original, ...this.#entries]);
|
|
213
|
-
while (this.#entries.length >
|
|
236
|
+
while (this.#entries.length > this.#maxEntries || [...retained()].reduce((sum, entry) => sum + entry.bytes.byteLength, 0) > EDIT_HISTORY_LIMITS.maxBytes) {
|
|
214
237
|
if (this.#index === 0) throw new Error("Source snapshots exceed the retained history limit.");
|
|
215
238
|
this.#entries.shift();
|
|
216
239
|
this.#index--;
|
|
@@ -1366,15 +1389,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
1366
1389
|
maxDepth: 512,
|
|
1367
1390
|
maxNodes: 5e6
|
|
1368
1391
|
};
|
|
1369
|
-
var
|
|
1392
|
+
var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
|
|
1393
|
+
var MARKUP_SKIPS = [
|
|
1394
|
+
["<!--", "-->"],
|
|
1395
|
+
["<![CDATA[", "]]>"],
|
|
1396
|
+
["<?", "?>"]
|
|
1397
|
+
];
|
|
1370
1398
|
function checkXmlLimits(xml, label2, limits = {}) {
|
|
1371
1399
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
1372
1400
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
1373
1401
|
let depth = 0;
|
|
1374
1402
|
let nodes = 0;
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1403
|
+
let at2 = xml.indexOf("<");
|
|
1404
|
+
while (at2 !== -1) {
|
|
1405
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at2));
|
|
1406
|
+
if (skip) {
|
|
1407
|
+
const end = xml.indexOf(skip[1], at2 + skip[0].length);
|
|
1408
|
+
if (end === -1) return;
|
|
1409
|
+
at2 = xml.indexOf("<", end + skip[1].length);
|
|
1410
|
+
continue;
|
|
1411
|
+
}
|
|
1412
|
+
TAG_RE.lastIndex = at2;
|
|
1413
|
+
const match = TAG_RE.exec(xml);
|
|
1414
|
+
if (!match) {
|
|
1415
|
+
at2 = xml.indexOf("<", at2 + 1);
|
|
1416
|
+
continue;
|
|
1417
|
+
}
|
|
1418
|
+
const [, closing, , selfClosing] = match;
|
|
1419
|
+
at2 = xml.indexOf("<", at2 + match[0].length);
|
|
1378
1420
|
if (closing) {
|
|
1379
1421
|
depth--;
|
|
1380
1422
|
continue;
|
|
@@ -34250,6 +34292,7 @@ exports.VisioTextDraftError = VisioTextDraftError;
|
|
|
34250
34292
|
exports.assertShapeDetails = assertShapeDetails;
|
|
34251
34293
|
exports.assertViewableDocument = assertViewableDocument;
|
|
34252
34294
|
exports.checkVisioDiagram = checkVisioDiagram;
|
|
34295
|
+
exports.clampHistoryEntries = clampHistoryEntries;
|
|
34253
34296
|
exports.compatibilityNotes = compatibilityNotes;
|
|
34254
34297
|
exports.compatibilityText = compatibilityText;
|
|
34255
34298
|
exports.composeVisioTransform = composeAffine;
|
package/dist/visio/ui/index.mjs
CHANGED
|
@@ -164,12 +164,18 @@ var EMPTY_EDIT_STATE = Object.freeze({
|
|
|
164
164
|
diagnostics: Object.freeze([])
|
|
165
165
|
});
|
|
166
166
|
var EDIT_HISTORY_LIMITS = Object.freeze({ maxBytes: 96 * 1024 * 1024, maxEntries: 20 });
|
|
167
|
+
var clampHistoryEntries = (entries) => Math.min(
|
|
168
|
+
EDIT_HISTORY_LIMITS.maxEntries,
|
|
169
|
+
Math.max(2, Number.isFinite(entries) ? Math.round(entries) : EDIT_HISTORY_LIMITS.maxEntries)
|
|
170
|
+
);
|
|
167
171
|
var DocumentHistory = class {
|
|
168
172
|
original;
|
|
169
173
|
#entries;
|
|
170
174
|
#index = 0;
|
|
171
175
|
#truncated = false;
|
|
172
|
-
|
|
176
|
+
#maxEntries = EDIT_HISTORY_LIMITS.maxEntries;
|
|
177
|
+
constructor(bytes, maxEntries) {
|
|
178
|
+
if (maxEntries !== void 0) this.#maxEntries = clampHistoryEntries(maxEntries);
|
|
173
179
|
this.original = { bytes: Uint8Array.from(bytes), diagnostics: Object.freeze([]) };
|
|
174
180
|
this.#entries = [this.original];
|
|
175
181
|
}
|
|
@@ -203,8 +209,25 @@ var DocumentHistory = class {
|
|
|
203
209
|
this.#entries = this.#entries.slice(0, this.#index + 1);
|
|
204
210
|
this.#entries.push(snapshot);
|
|
205
211
|
this.#index++;
|
|
212
|
+
this.#trim();
|
|
213
|
+
}
|
|
214
|
+
/** Keep at most `entries` snapshots (the original plus its edits), dropping the oldest first. */
|
|
215
|
+
set maxEntries(entries) {
|
|
216
|
+
this.#maxEntries = clampHistoryEntries(entries);
|
|
217
|
+
while (this.#entries.length > this.#maxEntries) {
|
|
218
|
+
if (this.#index > 0) {
|
|
219
|
+
this.#entries.shift();
|
|
220
|
+
this.#index--;
|
|
221
|
+
this.#truncated = true;
|
|
222
|
+
} else this.#entries.pop();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
get maxEntries() {
|
|
226
|
+
return this.#maxEntries;
|
|
227
|
+
}
|
|
228
|
+
#trim() {
|
|
206
229
|
const retained = () => /* @__PURE__ */ new Set([this.original, ...this.#entries]);
|
|
207
|
-
while (this.#entries.length >
|
|
230
|
+
while (this.#entries.length > this.#maxEntries || [...retained()].reduce((sum, entry) => sum + entry.bytes.byteLength, 0) > EDIT_HISTORY_LIMITS.maxBytes) {
|
|
208
231
|
if (this.#index === 0) throw new Error("Source snapshots exceed the retained history limit.");
|
|
209
232
|
this.#entries.shift();
|
|
210
233
|
this.#index--;
|
|
@@ -1360,15 +1383,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
1360
1383
|
maxDepth: 512,
|
|
1361
1384
|
maxNodes: 5e6
|
|
1362
1385
|
};
|
|
1363
|
-
var
|
|
1386
|
+
var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
|
|
1387
|
+
var MARKUP_SKIPS = [
|
|
1388
|
+
["<!--", "-->"],
|
|
1389
|
+
["<![CDATA[", "]]>"],
|
|
1390
|
+
["<?", "?>"]
|
|
1391
|
+
];
|
|
1364
1392
|
function checkXmlLimits(xml, label2, limits = {}) {
|
|
1365
1393
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
1366
1394
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
1367
1395
|
let depth = 0;
|
|
1368
1396
|
let nodes = 0;
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1397
|
+
let at2 = xml.indexOf("<");
|
|
1398
|
+
while (at2 !== -1) {
|
|
1399
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at2));
|
|
1400
|
+
if (skip) {
|
|
1401
|
+
const end = xml.indexOf(skip[1], at2 + skip[0].length);
|
|
1402
|
+
if (end === -1) return;
|
|
1403
|
+
at2 = xml.indexOf("<", end + skip[1].length);
|
|
1404
|
+
continue;
|
|
1405
|
+
}
|
|
1406
|
+
TAG_RE.lastIndex = at2;
|
|
1407
|
+
const match = TAG_RE.exec(xml);
|
|
1408
|
+
if (!match) {
|
|
1409
|
+
at2 = xml.indexOf("<", at2 + 1);
|
|
1410
|
+
continue;
|
|
1411
|
+
}
|
|
1412
|
+
const [, closing, , selfClosing] = match;
|
|
1413
|
+
at2 = xml.indexOf("<", at2 + match[0].length);
|
|
1372
1414
|
if (closing) {
|
|
1373
1415
|
depth--;
|
|
1374
1416
|
continue;
|
|
@@ -34203,4 +34245,4 @@ async function createSampleVsdx() {
|
|
|
34203
34245
|
return (await editVsdx(pages.bytes, PAGES.flatMap(shapeEdits))).bytes;
|
|
34204
34246
|
}
|
|
34205
34247
|
|
|
34206
|
-
export { DocumentHistory, EDIT_HISTORY_LIMITS, EMPTY_EDIT_STATE, EMPTY_SELECTION, EMPTY_TEXT_SEARCH, FOREIGN_VECTOR_SCENE_LIMITS, ForeignVectorBudget, MAX_INPUT_BYTES, TEXT_SEARCH_LIMITS, VISIO_AUTO_CONNECT_DIRECTIONS, VISIO_AUTO_CONNECT_GAP, VISIO_AUTO_CONNECT_REACH, VISIO_BULLET_STYLES, VISIO_DATA_GRAPHIC_FILL_ROW, VISIO_DATA_GRAPHIC_ICONS, VISIO_DATA_GRAPHIC_ROW, VISIO_DIAGRAM_RULE_SETS, VISIO_FIELD_CATEGORIES, VISIO_FORMAT_PAINTER_LIMITS, VISIO_GRID_DENSITY_CHOICES, IDENTITY_AFFINE as VISIO_IDENTITY_TRANSFORM, VISIO_LAYOUT_LABELS, VISIO_LAYOUT_STYLES, VISIO_PAGE_SIZE_PRESETS, VISIO_PAPER_SIZES, VISIO_PASTE_TEXT_LIMIT, VISIO_PATH_CLOSE_DISTANCE, VISIO_PATH_TOLERANCE, VISIO_PICTURE_DPI, VISIO_RESIZE_HANDLES, VISIO_RULER_DENSITY_CHOICES, VISIO_SELECT_TYPES, VISIO_SELECT_TYPE_LABELS, VISIO_SUBPROCESS_SHAPE, VISIO_TEXT_BLOCK_HANDLES, VISIO_TEXT_LANGUAGES, VISIO_TEXT_REPLACE_LIMITS, VisioTextDraftError, assertShapeDetails, assertViewableDocument, checkVisioDiagram, compatibilityNotes, compatibilityText, composeAffine as composeVisioTransform, copySnapshotScene, createSampleVsdx, demoDocument, editErrorMessage, eventKeys, excelSerialToIso, hasVisibleShapeContent, indexDocumentText, inspectForeignVectorResource, isEditCancellation, isVisioPathTool, normalizeVisioHyperlinkAddress, propertyKeys, sameSelection, searchDocumentText, selectionKey, snapshotEdits, snapshotSelection, textSearchStatus, validateSearchQuery, visioAddConnectionPointCommand, visioArrangeCommands, visioAutoAlignCommands, visioAutoConnectArrows, visioAutoConnectNeighbor, visioAutoConnectPlacement, visioAutoConnectPlan, visioAutoConnectShape, visioAutoConnectSidePoint, visioBoxCreationCommand, visioCalloutCommand, visioChangeCaseCommand, visioChangeCaseShape, visioChangeMasterCommand, visioChangeMasterTargets, visioChangeShapeCommand, visioChangeShapeRefusal, visioClipboardShape, visioColorRules, visioConnectableShape, visioConnectorCreationCommand, visioConnectorEdges, visioConnectorEndHandles, visioConnectorMovePreviews, visioConnectorPreviewPath, visioConnectorRouteOf, visioContainerCommand, visioCopyableShape, visioDataGraphicEdits, visioDataGraphicFields, visioDataGraphicMarker, visioDataGraphicParts, visioDataTable, visioDrawBounds, visioDrawIsLargeEnough, visioDrawPlan, visioDrawingPoint, visioDuplicateCommand, visioFileMasterDropCommand, visioFillPatternTransform, visioFitToDrawingEdits, visioFollowTarget, visioFontFamilies, visioFormatPainterEdits, visioFormatPainterSnapshot, visioFormatTargetShape, visioFormattingShape, visioGlowKey, visioGlueableShape, visioGradientInstances, visioGridSteps, visioGroupCommand, visioGuideCreateCommand, visioGuideMoveCommand, visioKeepAutoSize, visioLayerAssignCommand, visioLayerAssignCommands, visioLayerAssignState, visioLegendEdits, visioLineCreationCommand, visioLineDashLengths, visioLocalFormattingShape, visioLocalRotationShape, visioMarqueeBox, visioMarqueeSelection, visioMasterDropCommand, visioMasterDropRefusal, visioMasterDropSize, visioMasterPreviewBox, visioMatchingPaperSize, visioMovableGroup, visioMoveCommands, visioMovePreviewTransform, visioMoveTargets, visioMovementShape, visioNearestConnectionPoint, visioNewLayerNames, visioNewPageId, visioNextShapeId, visioNudgeCommands, visioOrderingShape, visioOrientationEdits, visioPageBreaks, visioPageConnectionPoints, visioPageDecorationState, visioPageDragDelta, visioPageEditToDrawing, visioPageGuides, visioPageInsertCommand, visioPageMasters, visioPageOrientationCommand, visioPageSizeCommand, visioPageSizePresetCommand, visioPageSizePresetEdits, visioPageSizeState, visioPaperSize, visioParseRange, visioPasteCommand, visioPasteTextCommand, visioPasteTextValue, visioPathDrawPlan, visioPathPreview, visioPictureInsertCommand, visioPrintTile, visioQuarterTurnCommand, visioReLayoutCommands, visioReflectionKey, visioRemoveDataGraphicEdits, visioRenderedGradientStopCount, visioRenderedGradientStops, visioResizeDrag, visioResizeFrame, visioResizeShape, visioRotationPreviewTransform, visioRotationShape, visioRulerDensityFactor, visioRulerGridEdits, visioRulerGridValues, visioSceneToLocal, visioSelectByType, visioSelectionIsOnPage, visioShadowPreset, visioShapeDataNumber, visioShapeDataRow, visioShapeDataText, visioShapeEffectValues, visioShapeFormattingState, visioShapeLocalPoint, visioShapePageBox, visioShapeReport, visioShapeReportCsv, visioShapeReportTable, visioShapeReportText, visioShapeSelectType, visioShapeSnapBox, visioSizePositionCommand, visioSizePositionState, visioSnapMoveDelta, visioStencilDropCommand, visioStencilInstanceShape, visioStencilShape, visioStencilSubShape, visioStraightLineHandles, visioStrokeGradient, visioStyleFormattingShape, visioSubprocessCommand, visioSvgStrokeStyle, visioTextAppendEdit, visioTextBlockDrag, visioTextBlockEdit, visioTextBlockFrame, visioTextBlockMatrix, visioTextBlockShape, visioTextDialogPatch, visioTextDialogValues, visioTextDraftEdit, visioTextFontStepCommand, visioTextFormattingState, visioTextIndentCommand, visioTextOccurrenceSelection, visioTextReplaceCommands, visioTextReplaceFindNext, visioTextReplaceOccurrences, visioTextReplacePlan, visioTextShape, visioTextSource, visioUngroupCommand, visioWithCalloutLeaders, visioWithContainerMembers, visioWithDataGraphics, visioWorkbookGrid };
|
|
34248
|
+
export { DocumentHistory, EDIT_HISTORY_LIMITS, EMPTY_EDIT_STATE, EMPTY_SELECTION, EMPTY_TEXT_SEARCH, FOREIGN_VECTOR_SCENE_LIMITS, ForeignVectorBudget, MAX_INPUT_BYTES, TEXT_SEARCH_LIMITS, VISIO_AUTO_CONNECT_DIRECTIONS, VISIO_AUTO_CONNECT_GAP, VISIO_AUTO_CONNECT_REACH, VISIO_BULLET_STYLES, VISIO_DATA_GRAPHIC_FILL_ROW, VISIO_DATA_GRAPHIC_ICONS, VISIO_DATA_GRAPHIC_ROW, VISIO_DIAGRAM_RULE_SETS, VISIO_FIELD_CATEGORIES, VISIO_FORMAT_PAINTER_LIMITS, VISIO_GRID_DENSITY_CHOICES, IDENTITY_AFFINE as VISIO_IDENTITY_TRANSFORM, VISIO_LAYOUT_LABELS, VISIO_LAYOUT_STYLES, VISIO_PAGE_SIZE_PRESETS, VISIO_PAPER_SIZES, VISIO_PASTE_TEXT_LIMIT, VISIO_PATH_CLOSE_DISTANCE, VISIO_PATH_TOLERANCE, VISIO_PICTURE_DPI, VISIO_RESIZE_HANDLES, VISIO_RULER_DENSITY_CHOICES, VISIO_SELECT_TYPES, VISIO_SELECT_TYPE_LABELS, VISIO_SUBPROCESS_SHAPE, VISIO_TEXT_BLOCK_HANDLES, VISIO_TEXT_LANGUAGES, VISIO_TEXT_REPLACE_LIMITS, VisioTextDraftError, assertShapeDetails, assertViewableDocument, checkVisioDiagram, clampHistoryEntries, compatibilityNotes, compatibilityText, composeAffine as composeVisioTransform, copySnapshotScene, createSampleVsdx, demoDocument, editErrorMessage, eventKeys, excelSerialToIso, hasVisibleShapeContent, indexDocumentText, inspectForeignVectorResource, isEditCancellation, isVisioPathTool, normalizeVisioHyperlinkAddress, propertyKeys, sameSelection, searchDocumentText, selectionKey, snapshotEdits, snapshotSelection, textSearchStatus, validateSearchQuery, visioAddConnectionPointCommand, visioArrangeCommands, visioAutoAlignCommands, visioAutoConnectArrows, visioAutoConnectNeighbor, visioAutoConnectPlacement, visioAutoConnectPlan, visioAutoConnectShape, visioAutoConnectSidePoint, visioBoxCreationCommand, visioCalloutCommand, visioChangeCaseCommand, visioChangeCaseShape, visioChangeMasterCommand, visioChangeMasterTargets, visioChangeShapeCommand, visioChangeShapeRefusal, visioClipboardShape, visioColorRules, visioConnectableShape, visioConnectorCreationCommand, visioConnectorEdges, visioConnectorEndHandles, visioConnectorMovePreviews, visioConnectorPreviewPath, visioConnectorRouteOf, visioContainerCommand, visioCopyableShape, visioDataGraphicEdits, visioDataGraphicFields, visioDataGraphicMarker, visioDataGraphicParts, visioDataTable, visioDrawBounds, visioDrawIsLargeEnough, visioDrawPlan, visioDrawingPoint, visioDuplicateCommand, visioFileMasterDropCommand, visioFillPatternTransform, visioFitToDrawingEdits, visioFollowTarget, visioFontFamilies, visioFormatPainterEdits, visioFormatPainterSnapshot, visioFormatTargetShape, visioFormattingShape, visioGlowKey, visioGlueableShape, visioGradientInstances, visioGridSteps, visioGroupCommand, visioGuideCreateCommand, visioGuideMoveCommand, visioKeepAutoSize, visioLayerAssignCommand, visioLayerAssignCommands, visioLayerAssignState, visioLegendEdits, visioLineCreationCommand, visioLineDashLengths, visioLocalFormattingShape, visioLocalRotationShape, visioMarqueeBox, visioMarqueeSelection, visioMasterDropCommand, visioMasterDropRefusal, visioMasterDropSize, visioMasterPreviewBox, visioMatchingPaperSize, visioMovableGroup, visioMoveCommands, visioMovePreviewTransform, visioMoveTargets, visioMovementShape, visioNearestConnectionPoint, visioNewLayerNames, visioNewPageId, visioNextShapeId, visioNudgeCommands, visioOrderingShape, visioOrientationEdits, visioPageBreaks, visioPageConnectionPoints, visioPageDecorationState, visioPageDragDelta, visioPageEditToDrawing, visioPageGuides, visioPageInsertCommand, visioPageMasters, visioPageOrientationCommand, visioPageSizeCommand, visioPageSizePresetCommand, visioPageSizePresetEdits, visioPageSizeState, visioPaperSize, visioParseRange, visioPasteCommand, visioPasteTextCommand, visioPasteTextValue, visioPathDrawPlan, visioPathPreview, visioPictureInsertCommand, visioPrintTile, visioQuarterTurnCommand, visioReLayoutCommands, visioReflectionKey, visioRemoveDataGraphicEdits, visioRenderedGradientStopCount, visioRenderedGradientStops, visioResizeDrag, visioResizeFrame, visioResizeShape, visioRotationPreviewTransform, visioRotationShape, visioRulerDensityFactor, visioRulerGridEdits, visioRulerGridValues, visioSceneToLocal, visioSelectByType, visioSelectionIsOnPage, visioShadowPreset, visioShapeDataNumber, visioShapeDataRow, visioShapeDataText, visioShapeEffectValues, visioShapeFormattingState, visioShapeLocalPoint, visioShapePageBox, visioShapeReport, visioShapeReportCsv, visioShapeReportTable, visioShapeReportText, visioShapeSelectType, visioShapeSnapBox, visioSizePositionCommand, visioSizePositionState, visioSnapMoveDelta, visioStencilDropCommand, visioStencilInstanceShape, visioStencilShape, visioStencilSubShape, visioStraightLineHandles, visioStrokeGradient, visioStyleFormattingShape, visioSubprocessCommand, visioSvgStrokeStyle, visioTextAppendEdit, visioTextBlockDrag, visioTextBlockEdit, visioTextBlockFrame, visioTextBlockMatrix, visioTextBlockShape, visioTextDialogPatch, visioTextDialogValues, visioTextDraftEdit, visioTextFontStepCommand, visioTextFormattingState, visioTextIndentCommand, visioTextOccurrenceSelection, visioTextReplaceCommands, visioTextReplaceFindNext, visioTextReplaceOccurrences, visioTextReplacePlan, visioTextShape, visioTextSource, visioUngroupCommand, visioWithCalloutLeaders, visioWithContainerMembers, visioWithDataGraphics, visioWorkbookGrid };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAkB,MAAM,YAAY,CAAC;AAE9E,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,OAAO;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kFAAkF;IAClF,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,GAAG,CAAC,CAAC,EACJ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,SAAS,EAAE,EACnB,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,KAAK,CAAC,EACjD,IAAI,CAAC,EAAE,OAAO,GACZ,CAAC,CAAC;CACL;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAkB,MAAM,YAAY,CAAC;AAE9E,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,OAAO;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kFAAkF;IAClF,IAAI,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,GAAG,CAAC,CAAC,EACJ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,SAAS,EAAE,EACnB,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,KAAK,CAAC,EACjD,IAAI,CAAC,EAAE,OAAO,GACZ,CAAC,CAAC;CACL;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAMpE;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK1F;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAQ3E;AAED,qFAAqF;AACrF,eAAO,MAAM,cAAc,UAAW,SAAS,KAAG,OACA,CAAC;AACnD,eAAO,MAAM,WAAW,UAAW,SAAS,KAAG,OACG,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAUpF;AAKD,0FAA0F;AAC1F,wBAAgB,eAAe,CAC9B,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GACvC,IAAI,CAON;AAED,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,CAIxD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAKhD;AAED,0DAA0D;AAC1D,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAQ1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slicers.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/slicers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMX,QAAQ,EAER,MAAM,UAAU,CAAC;AAKlB,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,WAAW,CAAC;AAmBtD;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAC5B,IAAI,CAuCN;AAED,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,aAAc,QAAQ,aAAa,MAAM,KAAG,MAAM,EAGrD,CAAC;AAE3B,MAAM,WAAW,WAAW;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qGAAqG;AACrG,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAqCrF;AAaD,MAAM,MAAM,eAAe,GACxB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAUnD,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"slicers.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/slicers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMX,QAAQ,EAER,MAAM,UAAU,CAAC;AAKlB,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,WAAW,CAAC;AAmBtD;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAC5B,IAAI,CAuCN;AAED,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,aAAc,QAAQ,aAAa,MAAM,KAAG,MAAM,EAGrD,CAAC;AAE3B,MAAM,WAAW,WAAW;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qGAAqG;AACrG,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAqCrF;AAaD,MAAM,MAAM,eAAe,GACxB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAUnD,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,MAAM,CAsGtF;AAED,+FAA+F;AAC/F,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAUjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timelines.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/timelines.ts"],"names":[],"mappings":"AAMA,OAAO,EAAkC,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpG,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,WAAW,CAAC;AAWtD;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,iBAAiB,GAAG,IAAI,GACjC,IAAI,CAiCN;AAED,MAAM,WAAW,aAAa;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAmCzF;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAC7B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"timelines.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/timelines.ts"],"names":[],"mappings":"AAMA,OAAO,EAAkC,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpG,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,WAAW,CAAC;AAWtD;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,iBAAiB,GAAG,IAAI,GACjC,IAAI,CAiCN;AAED,MAAM,WAAW,aAAa;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAmCzF;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAC7B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC,MAAM,CA4GR;AAED,2FAA2F;AAC3F,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAgBnE"}
|
package/dist/xlsx/index.cjs
CHANGED
|
@@ -11736,15 +11736,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
11736
11736
|
maxDepth: 512,
|
|
11737
11737
|
maxNodes: 5e6
|
|
11738
11738
|
};
|
|
11739
|
-
var
|
|
11739
|
+
var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
|
|
11740
|
+
var MARKUP_SKIPS = [
|
|
11741
|
+
["<!--", "-->"],
|
|
11742
|
+
["<![CDATA[", "]]>"],
|
|
11743
|
+
["<?", "?>"]
|
|
11744
|
+
];
|
|
11740
11745
|
function checkXmlLimits(xml, label2, limits = {}) {
|
|
11741
11746
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
11742
11747
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
11743
11748
|
let depth = 0;
|
|
11744
11749
|
let nodes = 0;
|
|
11745
|
-
|
|
11746
|
-
|
|
11747
|
-
|
|
11750
|
+
let at = xml.indexOf("<");
|
|
11751
|
+
while (at !== -1) {
|
|
11752
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at));
|
|
11753
|
+
if (skip) {
|
|
11754
|
+
const end = xml.indexOf(skip[1], at + skip[0].length);
|
|
11755
|
+
if (end === -1) return;
|
|
11756
|
+
at = xml.indexOf("<", end + skip[1].length);
|
|
11757
|
+
continue;
|
|
11758
|
+
}
|
|
11759
|
+
TAG_RE.lastIndex = at;
|
|
11760
|
+
const match2 = TAG_RE.exec(xml);
|
|
11761
|
+
if (!match2) {
|
|
11762
|
+
at = xml.indexOf("<", at + 1);
|
|
11763
|
+
continue;
|
|
11764
|
+
}
|
|
11765
|
+
const [, closing, , selfClosing] = match2;
|
|
11766
|
+
at = xml.indexOf("<", at + match2[0].length);
|
|
11748
11767
|
if (closing) {
|
|
11749
11768
|
depth--;
|
|
11750
11769
|
continue;
|
|
@@ -29517,9 +29536,17 @@ function pivotTableXml(source2, cacheId, cache3) {
|
|
|
29517
29536
|
}
|
|
29518
29537
|
return XML_HEADER + buildXml(root);
|
|
29519
29538
|
}
|
|
29539
|
+
function firstFilterTag(xml) {
|
|
29540
|
+
for (let at = xml.indexOf("<filter"); at !== -1; at = xml.indexOf("<filter", at + 1)) {
|
|
29541
|
+
if (!/\s/.test(xml.charAt(at + 7))) continue;
|
|
29542
|
+
const end = xml.indexOf(">", at);
|
|
29543
|
+
return end === -1 ? "" : xml.slice(at, end + 1);
|
|
29544
|
+
}
|
|
29545
|
+
return "";
|
|
29546
|
+
}
|
|
29520
29547
|
function dateFilterXml(pivot, filter2) {
|
|
29521
29548
|
const x15 = "http://schemas.microsoft.com/office/spreadsheetml/2010/11/main";
|
|
29522
|
-
const id = Number(
|
|
29549
|
+
const id = Number(/\bid="(\d+)"/.exec(firstFilterTag(pivot.sourceXml ?? ""))?.[1] ?? 1);
|
|
29523
29550
|
return `<filters count="1"><filter${attrs({ fld: pivot.fields.indexOf(filter2.field), type: "dateBetween", evalOrder: -1, id, name: filter2.field })}><autoFilter ref="A1"><filterColumn colId="0"><customFilters and="1"><customFilter operator="greaterThanOrEqual" val="${Math.floor(filter2.start)}"/><customFilter operator="lessThanOrEqual" val="${Math.floor(filter2.end)}"/></customFilters></filterColumn></autoFilter><extLst><ext uri="{0605FD5F-26C8-4aeb-8148-2DB25E43C511}" xmlns:x15="${x15}"><x15:pivotFilter useWholeDay="1"/></ext></extLst></filter></filters>`;
|
|
29524
29551
|
}
|
|
29525
29552
|
|
|
@@ -29621,7 +29648,7 @@ var PivotWritePlan = class {
|
|
|
29621
29648
|
|
|
29622
29649
|
// xlsx/edit/context.ts
|
|
29623
29650
|
function sheetAt(workbook, index3) {
|
|
29624
|
-
const sheet = Number.isInteger(index3) ? workbook.sheets
|
|
29651
|
+
const sheet = Number.isInteger(index3) && index3 >= 0 ? workbook.sheets.at(index3) : void 0;
|
|
29625
29652
|
if (!sheet) throw new RangeError(`No sheet at index ${index3}`);
|
|
29626
29653
|
return sheet;
|
|
29627
29654
|
}
|
|
@@ -34378,18 +34405,18 @@ function addScenario(ctx, s, draft) {
|
|
|
34378
34405
|
}
|
|
34379
34406
|
function editScenario(ctx, s, index3, draft) {
|
|
34380
34407
|
const sheet = sheetAt(ctx.workbook, s);
|
|
34381
|
-
const existing = scenariosOf(sheet)[index3];
|
|
34408
|
+
const existing = Number.isInteger(index3) ? scenariosOf(sheet)[index3] : void 0;
|
|
34382
34409
|
if (!existing) throw new ScenarioError("missing");
|
|
34383
34410
|
if (existing.locked && sheet.protection) throw new ScenarioError("locked");
|
|
34384
34411
|
const name = checkName(sheet, draft.name, index3);
|
|
34385
34412
|
const scenario = build(ctx, sheet, draft, name);
|
|
34386
34413
|
ctx.run("Edit scenario", "view", PARTS(s), () => {
|
|
34387
|
-
sheet.scenarios.list
|
|
34414
|
+
sheet.scenarios.list.splice(index3, 1, scenario);
|
|
34388
34415
|
});
|
|
34389
34416
|
}
|
|
34390
34417
|
function deleteScenario(ctx, s, index3) {
|
|
34391
34418
|
const sheet = sheetAt(ctx.workbook, s);
|
|
34392
|
-
const existing = scenariosOf(sheet)[index3];
|
|
34419
|
+
const existing = Number.isInteger(index3) ? scenariosOf(sheet)[index3] : void 0;
|
|
34393
34420
|
if (!existing) throw new ScenarioError("missing");
|
|
34394
34421
|
if (existing.locked && sheet.protection) throw new ScenarioError("locked");
|
|
34395
34422
|
ctx.run("Delete scenario", "view", PARTS(s), () => {
|
|
@@ -34407,7 +34434,7 @@ function deleteScenario(ctx, s, index3) {
|
|
|
34407
34434
|
}
|
|
34408
34435
|
function showScenario(ctx, s, index3) {
|
|
34409
34436
|
const sheet = sheetAt(ctx.workbook, s);
|
|
34410
|
-
const scenario = scenariosOf(sheet)[index3];
|
|
34437
|
+
const scenario = Number.isInteger(index3) ? scenariosOf(sheet)[index3] : void 0;
|
|
34411
34438
|
if (!scenario) throw new ScenarioError("missing");
|
|
34412
34439
|
const addresses = scenarioAddresses(scenario);
|
|
34413
34440
|
const ranges = addresses.map((a2) => ({ start: a2, end: a2 }));
|
|
@@ -35188,7 +35215,10 @@ function insertTimeline(ctx, s, ref) {
|
|
|
35188
35215
|
const id = Math.max(
|
|
35189
35216
|
1,
|
|
35190
35217
|
...sheet.drawings.flatMap(
|
|
35191
|
-
(d) => "sourceXml" in d && d.sourceXml ? [...d.sourceXml.matchAll(
|
|
35218
|
+
(d) => "sourceXml" in d && d.sourceXml ? [...d.sourceXml.matchAll(/<[\w:]*cNvPr\b[^>]*>/g)].flatMap((m) => {
|
|
35219
|
+
const id2 = /\sid="(\d+)"/.exec(m[0])?.[1];
|
|
35220
|
+
return id2 ? [Number(id2)] : [];
|
|
35221
|
+
}) : []
|
|
35192
35222
|
)
|
|
35193
35223
|
) + 1;
|
|
35194
35224
|
ctx.run(
|
|
@@ -35726,7 +35756,10 @@ function insertSlicer(ctx, s, ref) {
|
|
|
35726
35756
|
const id = Math.max(
|
|
35727
35757
|
1,
|
|
35728
35758
|
...sheet.drawings.flatMap(
|
|
35729
|
-
(d) => "sourceXml" in d && d.sourceXml ? [...d.sourceXml.matchAll(
|
|
35759
|
+
(d) => "sourceXml" in d && d.sourceXml ? [...d.sourceXml.matchAll(/<[\w:]*cNvPr\b[^>]*>/g)].flatMap((m) => {
|
|
35760
|
+
const id2 = /\sid="(\d+)"/.exec(m[0])?.[1];
|
|
35761
|
+
return id2 ? [Number(id2)] : [];
|
|
35762
|
+
}) : []
|
|
35730
35763
|
)
|
|
35731
35764
|
) + 1;
|
|
35732
35765
|
ctx.run(
|