ooxml-core 1.3.0 → 1.4.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.
Files changed (86) hide show
  1. package/README.md +2 -0
  2. package/dist/automation/index.cjs +5785 -5295
  3. package/dist/automation/index.mjs +5785 -5295
  4. package/dist/teams/index.cjs +72 -23
  5. package/dist/teams/index.mjs +72 -23
  6. package/dist/visio/edit-commands.d.ts +11 -2
  7. package/dist/visio/edit-commands.d.ts.map +1 -1
  8. package/dist/visio/edit-page-size.d.ts +5 -0
  9. package/dist/visio/edit-page-size.d.ts.map +1 -0
  10. package/dist/visio/edit-pages.d.ts.map +1 -1
  11. package/dist/visio/edit-text-range-commands.d.ts +21 -0
  12. package/dist/visio/edit-text-range-commands.d.ts.map +1 -0
  13. package/dist/visio/edit-text-range-plan.d.ts +7 -0
  14. package/dist/visio/edit-text-range-plan.d.ts.map +1 -0
  15. package/dist/visio/edit-text-ranges.d.ts +4 -0
  16. package/dist/visio/edit-text-ranges.d.ts.map +1 -0
  17. package/dist/visio/edit-text-target.d.ts +3 -0
  18. package/dist/visio/edit-text-target.d.ts.map +1 -0
  19. package/dist/visio/edit-text.d.ts.map +1 -1
  20. package/dist/visio/edit.d.ts +1 -1
  21. package/dist/visio/edit.d.ts.map +1 -1
  22. package/dist/visio/index.cjs +395 -27
  23. package/dist/visio/index.d.ts +1 -1
  24. package/dist/visio/index.d.ts.map +1 -1
  25. package/dist/visio/index.mjs +395 -27
  26. package/dist/visio/model.d.ts +3 -0
  27. package/dist/visio/model.d.ts.map +1 -1
  28. package/dist/visio/parser.d.ts.map +1 -1
  29. package/dist/visio/ui/edit-commands.d.ts.map +1 -1
  30. package/dist/visio/ui/index.cjs +134 -11
  31. package/dist/visio/ui/index.d.ts +1 -0
  32. package/dist/visio/ui/index.d.ts.map +1 -1
  33. package/dist/visio/ui/index.mjs +130 -12
  34. package/dist/visio/ui/page-size.d.ts +31 -0
  35. package/dist/visio/ui/page-size.d.ts.map +1 -0
  36. package/dist/visio/ui/scene-validation.d.ts.map +1 -1
  37. package/dist/visio/ui/snapshot-scene.d.ts.map +1 -1
  38. package/dist/visio/ui/text-replace-types.d.ts +6 -2
  39. package/dist/visio/ui/text-replace-types.d.ts.map +1 -1
  40. package/dist/visio/ui/text-replace.d.ts +3 -4
  41. package/dist/visio/ui/text-replace.d.ts.map +1 -1
  42. package/dist/visio/xml-validation.d.ts.map +1 -1
  43. package/dist/xlsx/collab/codec.d.ts +2 -0
  44. package/dist/xlsx/collab/codec.d.ts.map +1 -1
  45. package/dist/xlsx/collab/index.cjs +5 -0
  46. package/dist/xlsx/collab/index.mjs +5 -0
  47. package/dist/xlsx/display-text.d.ts +4 -0
  48. package/dist/xlsx/display-text.d.ts.map +1 -0
  49. package/dist/xlsx/edit/cell-values.d.ts +4 -3
  50. package/dist/xlsx/edit/cell-values.d.ts.map +1 -1
  51. package/dist/xlsx/edit/clipboard.d.ts.map +1 -1
  52. package/dist/xlsx/edit/context.d.ts +7 -5
  53. package/dist/xlsx/edit/context.d.ts.map +1 -1
  54. package/dist/xlsx/edit/deps.d.ts +1 -1
  55. package/dist/xlsx/edit/deps.d.ts.map +1 -1
  56. package/dist/xlsx/edit/dimensions.d.ts.map +1 -1
  57. package/dist/xlsx/edit/fill.d.ts.map +1 -1
  58. package/dist/xlsx/edit/filter.d.ts.map +1 -1
  59. package/dist/xlsx/edit/find.d.ts.map +1 -1
  60. package/dist/xlsx/edit/paste-selection.d.ts.map +1 -1
  61. package/dist/xlsx/edit/shift-formulas.d.ts +10 -4
  62. package/dist/xlsx/edit/shift-formulas.d.ts.map +1 -1
  63. package/dist/xlsx/edit/table-header-names.d.ts +3 -0
  64. package/dist/xlsx/edit/table-header-names.d.ts.map +1 -0
  65. package/dist/xlsx/edit/tables.d.ts +1 -2
  66. package/dist/xlsx/edit/tables.d.ts.map +1 -1
  67. package/dist/xlsx/filter-rows.d.ts +8 -0
  68. package/dist/xlsx/filter-rows.d.ts.map +1 -0
  69. package/dist/xlsx/formula/functions/math-sum.d.ts.map +1 -1
  70. package/dist/xlsx/formula/table-refs.d.ts +2 -0
  71. package/dist/xlsx/formula/table-refs.d.ts.map +1 -1
  72. package/dist/xlsx/index.cjs +445 -323
  73. package/dist/xlsx/index.mjs +445 -323
  74. package/dist/xlsx/load/index.cjs +7621 -7585
  75. package/dist/xlsx/load/index.mjs +7621 -7585
  76. package/dist/xlsx/model.d.ts +4 -0
  77. package/dist/xlsx/model.d.ts.map +1 -1
  78. package/dist/xlsx/read/load.d.ts.map +1 -1
  79. package/dist/xlsx/ui/index.cjs +443 -323
  80. package/dist/xlsx/ui/index.mjs +443 -323
  81. package/dist/xlsx/ui/locales/de/shell.d.ts.map +1 -1
  82. package/dist/xlsx/ui/locales/en/shell.d.ts.map +1 -1
  83. package/dist/xlsx/ui/locales/es/shell.d.ts.map +1 -1
  84. package/dist/xlsx/ui/locales/fr/shell.d.ts.map +1 -1
  85. package/dist/xlsx/ui/locales/zh-CN/shell.d.ts.map +1 -1
  86. package/package.json +1 -1
@@ -227,6 +227,19 @@ var attribute = new RegExp(
227
227
  "uy"
228
228
  );
229
229
  var xmlWhitespace = (value) => /^[ \t\r\n]*$/.test(value);
230
+ var reservedNamespaces = /* @__PURE__ */ new Map([
231
+ ["xml", "http://www.w3.org/XML/1998/namespace"],
232
+ ["xmlns", "http://www.w3.org/2000/xmlns/"]
233
+ ]);
234
+ function lookupNamespace(scope, prefix) {
235
+ const reserved = reservedNamespaces.get(prefix);
236
+ if (reserved !== void 0) return reserved;
237
+ for (; scope; scope = scope.parent) {
238
+ const uri = scope.bindings.get(prefix);
239
+ if (uri !== void 0) return uri;
240
+ }
241
+ return void 0;
242
+ }
230
243
  function inspectXml(xml, limits, check, encoding = "utf-8") {
231
244
  if (xml.length > limits.maxXmlChars) fail("LIMIT_XML", "XML character limit exceeded");
232
245
  if (/<!DOCTYPE|<!ENTITY/i.test(xml) || /[\u0000-\u0008\u000b\u000c\u000e-\u001f\ufffe\uffff]/.test(xml))
@@ -292,9 +305,7 @@ function inspectXml(xml, limits, check, encoding = "utf-8") {
292
305
  fail("INVALID_XML", "Mismatched XML closing tag");
293
306
  } else {
294
307
  const attrs = /* @__PURE__ */ new Set();
295
- const namespaces = Object.create(stack.at(-1)?.namespaces ?? null);
296
- namespaces["xml"] = "http://www.w3.org/XML/1998/namespace";
297
- namespaces["xmlns"] = "http://www.w3.org/2000/xmlns/";
308
+ const namespaces = { bindings: /* @__PURE__ */ new Map(), parent: stack.at(-1)?.namespaces };
298
309
  while (!xmlWhitespace(body.slice(cursor))) {
299
310
  attribute.lastIndex = cursor;
300
311
  const match = attribute.exec(body);
@@ -304,14 +315,14 @@ function inspectXml(xml, limits, check, encoding = "utf-8") {
304
315
  const value = match[2] ?? match[3] ?? "";
305
316
  text(value);
306
317
  if (match[1]?.startsWith("xmlns:"))
307
- namespaces[match[1].slice(6)] = decodeXmlAttribute(value);
318
+ namespaces.bindings.set(match[1].slice(6), decodeXmlAttribute(value));
308
319
  node();
309
320
  cursor = attribute.lastIndex;
310
321
  }
311
322
  const expanded = /* @__PURE__ */ new Set();
312
323
  for (const attr2 of attrs) {
313
324
  const colon = attr2.indexOf(":");
314
- const uri = colon < 0 ? "" : namespaces[attr2.slice(0, colon)];
325
+ const uri = colon < 0 ? "" : lookupNamespace(namespaces, attr2.slice(0, colon));
315
326
  if (uri === void 0) fail("INVALID_XML", "Unbound XML attribute prefix");
316
327
  const key2 = `${uri}\0${attr2.slice(colon + 1)}`;
317
328
  if (expanded.has(key2)) fail("INVALID_XML", "Duplicate expanded XML attribute name");
@@ -6595,11 +6606,23 @@ async function parseVsdx(input, options = {}) {
6595
6606
  };
6596
6607
  visit(shapes);
6597
6608
  const connectors = connections(root2, localReport);
6609
+ const pageModes = {};
6610
+ for (const [name, key2] of [
6611
+ ["DrawingSizeType", "drawingSizeType"],
6612
+ ["DrawingResizeType", "drawingResizeType"]
6613
+ ]) {
6614
+ const source = sheet.cells.get(name);
6615
+ if (!source || source.error !== void 0 || source.formula === "Inh" || source.unit !== void 0 && !["NUM", "BOOL"].includes(source.unit))
6616
+ continue;
6617
+ const value = number(sheet.cells, name, Number.NaN, localReport);
6618
+ if (Number.isSafeInteger(value) && value >= 0 && value <= 255) pageModes[key2] = value;
6619
+ }
6598
6620
  for (const connection of connectors)
6599
6621
  if (!seen.has(connection.fromShapeId) || !seen.has(connection.toShapeId))
6600
6622
  localReport("dangling-connection", "A connection references a missing shape.");
6601
6623
  pages.push({
6602
6624
  id,
6625
+ ...pageModes,
6603
6626
  ...drawingToPageScale === 1 ? {} : { drawingToPageScale },
6604
6627
  name: metadata(
6605
6628
  attribute2(page, "Name") ?? attribute2(page, "NameU") ?? `Page ${id}`,
@@ -17411,8 +17434,8 @@ function assertUnlayeredShape(shape, document) {
17411
17434
  }
17412
17435
  }
17413
17436
 
17414
- // visio/edit-text.ts
17415
- async function replacePlainText(root2, document, shapeId, text, check, assertDependencies) {
17437
+ // visio/edit-text-target.ts
17438
+ function localTextTarget(root2, document, shapeId, check) {
17416
17439
  const shapeChildren = (parent) => {
17417
17440
  const containers = children2(parent, "Shapes");
17418
17441
  if (containers.length > 1)
@@ -17420,37 +17443,38 @@ async function replacePlainText(root2, document, shapeId, text, check, assertDep
17420
17443
  return children2(containers[0], "Shape");
17421
17444
  };
17422
17445
  const shapes = /* @__PURE__ */ new Map();
17423
- const pending = shapeChildren(root2).map((node2) => ({
17424
- node: node2,
17425
- inherited: false,
17426
- deleted: false
17427
- }));
17446
+ const pending = shapeChildren(root2).map((node) => ({ node, inherited: false, deleted: false }));
17428
17447
  while (pending.length) {
17429
17448
  check();
17430
- const item = pending.pop();
17431
- const id = attribute2(item.node, "ID");
17449
+ const item = pending.pop(), id = attribute2(item.node, "ID");
17432
17450
  if (!id || shapes.has(id))
17433
17451
  fail("INVALID_SHAPE_ID", "Local shape IDs must be present and unique.");
17434
17452
  const inherited = item.inherited || item.node.hasAttribute("Master") || item.node.hasAttribute("MasterShape");
17435
17453
  const deleted = item.deleted || ["1", "true"].includes(attribute2(item.node, "Del") ?? "");
17436
17454
  shapes.set(id, { node: item.node, inherited, deleted });
17437
- for (const node2 of shapeChildren(item.node)) pending.push({ node: node2, inherited, deleted });
17455
+ for (const node of shapeChildren(item.node)) pending.push({ node, inherited, deleted });
17438
17456
  }
17439
17457
  const target = shapes.get(shapeId);
17440
17458
  if (!target) fail("EDIT_TARGET_NOT_FOUND", "Local shape does not exist.");
17441
17459
  if (target.inherited || target.deleted)
17442
17460
  fail("UNSUPPORTED_TEXT_EDIT", "Master-linked or deleted shapes cannot be edited.");
17443
17461
  assertShapeLocks(target.node, document, ["LockTextEdit"]);
17444
- const texts = children2(target.node, "Text");
17462
+ return target.node;
17463
+ }
17464
+
17465
+ // visio/edit-text.ts
17466
+ async function replacePlainText(root2, document, shapeId, text, check, assertDependencies2) {
17467
+ const target = localTextTarget(root2, document, shapeId, check);
17468
+ const texts = children2(target, "Text");
17445
17469
  if (texts.length !== 1)
17446
17470
  fail("UNSUPPORTED_TEXT_EDIT", "Editing requires one existing local Text element.");
17447
17471
  const node = texts[0];
17448
17472
  if (Array.from(node.childNodes).some((item) => item.nodeType !== 3 && item.nodeType !== 4))
17449
17473
  fail("UNSUPPORTED_TEXT_EDIT", "Rich text, fields and unknown text markup cannot be edited.");
17450
- if (children2(target.node, "Section").some((section) => attribute2(section, "N") === "Field"))
17474
+ if (children2(target, "Section").some((section) => attribute2(section, "N") === "Field"))
17451
17475
  fail("UNSUPPORTED_TEXT_EDIT", "Shapes with text fields cannot be edited.");
17452
17476
  if (decodeVisioPlainText(node.textContent ?? "") === text) return false;
17453
- await assertDependencies(target.node, node);
17477
+ await assertDependencies2(target, node);
17454
17478
  check();
17455
17479
  while (node.firstChild) node.removeChild(node.firstChild);
17456
17480
  node.appendChild(node.ownerDocument.createTextNode(encodeVisioPlainText(text)));
@@ -17544,6 +17568,197 @@ function replaceScopedPlainText(pkg, pagePaths, roots, document, edit, check) {
17544
17568
  );
17545
17569
  }
17546
17570
 
17571
+ // visio/edit-text-range-plan.ts
17572
+ function textRangeNodes(node, edit) {
17573
+ const tokens2 = [];
17574
+ let stored = "";
17575
+ for (const part of Array.from(node.childNodes)) {
17576
+ const start = stored.length;
17577
+ if (part.nodeType === 3 || part.nodeType === 4) stored += part.nodeValue ?? "";
17578
+ tokens2.push({ node: part, start, end: stored.length });
17579
+ }
17580
+ if (decodeVisioPlainText(stored) !== edit.expectedText)
17581
+ fail("EDIT_STALE_TEXT", "Original text no longer matches the range command.");
17582
+ const changed = edit.ranges.some(
17583
+ (range) => edit.expectedText.slice(range.start, range.end) !== range.text
17584
+ );
17585
+ if (!changed) return { changed: false, nodes: [] };
17586
+ const starts = [], deltas = [];
17587
+ let delta = 0;
17588
+ for (const range of edit.ranges) {
17589
+ starts.push(range.start + delta);
17590
+ delta += range.text.length - (range.end - range.start);
17591
+ deltas.push(delta);
17592
+ }
17593
+ const length = edit.expectedText.length + delta;
17594
+ if (!length && tokens2.some((token) => token.node.nodeType === 1))
17595
+ fail(
17596
+ "UNSUPPORTED_TEXT_RANGE",
17597
+ "Deleting all rich text has unproven native insertion-style behavior."
17598
+ );
17599
+ if (tokens2.some((token) => token.node.nodeType === 1)) {
17600
+ let start = 0, index = 0;
17601
+ while (start < edit.expectedText.length) {
17602
+ const newline = edit.expectedText.indexOf("\n", start), end = newline < 0 ? edit.expectedText.length : newline;
17603
+ let bodyLength = end - start;
17604
+ while (index < edit.ranges.length && edit.ranges[index].start < end) {
17605
+ const range = edit.ranges[index++];
17606
+ bodyLength += range.text.length - (range.end - range.start);
17607
+ }
17608
+ if (end > start && !bodyLength)
17609
+ fail(
17610
+ "UNSUPPORTED_TEXT_RANGE",
17611
+ "Deleting an entire rich paragraph body has unproven native insertion-style behavior."
17612
+ );
17613
+ start = end + 1;
17614
+ }
17615
+ }
17616
+ const position = (offset) => {
17617
+ let low = 0, high = edit.ranges.length;
17618
+ while (low < high) {
17619
+ const middle = low + high >>> 1;
17620
+ if (edit.ranges[middle].start < offset) low = middle + 1;
17621
+ else high = middle;
17622
+ }
17623
+ const index = low - 1;
17624
+ if (index < 0) return offset;
17625
+ const range = edit.ranges[index];
17626
+ return offset <= range.end ? starts[index] + range.text.length : offset + deltas[index];
17627
+ };
17628
+ const output = [];
17629
+ const append = (token, start, end) => {
17630
+ if (end <= start) return;
17631
+ const part = start === token.start && end === token.end ? token.node : token.node.cloneNode(false);
17632
+ if (part !== token.node)
17633
+ part.nodeValue = (token.node.nodeValue ?? "").slice(start - token.start, end - token.start);
17634
+ output.push({ position: position(start), priority: 2, node: part });
17635
+ };
17636
+ let first2 = 0;
17637
+ for (const token of tokens2) {
17638
+ if (token.node.nodeType === 1) {
17639
+ output.push({ position: position(token.start), priority: 0, node: token.node });
17640
+ continue;
17641
+ }
17642
+ const end = length ? token.end : Math.min(token.end, edit.expectedText.length);
17643
+ let cursor = token.start;
17644
+ while (first2 < edit.ranges.length && edit.ranges[first2].end <= cursor) first2++;
17645
+ for (let index = first2; index < edit.ranges.length && edit.ranges[index].start < end; index++) {
17646
+ const range = edit.ranges[index];
17647
+ append(token, cursor, Math.min(end, range.start));
17648
+ cursor = Math.max(cursor, Math.min(end, range.end));
17649
+ }
17650
+ append(token, cursor, end);
17651
+ }
17652
+ for (let index = 0; index < edit.ranges.length; index++) {
17653
+ const text = edit.ranges[index].text;
17654
+ if (text)
17655
+ output.push({
17656
+ position: starts[index],
17657
+ priority: 1,
17658
+ node: node.ownerDocument.createTextNode(text)
17659
+ });
17660
+ }
17661
+ output.sort((a, b) => a.position - b.position || a.priority - b.priority);
17662
+ let characterPosition = -1, characterRow = null;
17663
+ for (const item of output) {
17664
+ if (item.node.nodeType !== 1 || item.node.localName !== "cp") continue;
17665
+ const row = item.node.getAttribute("IX");
17666
+ if (item.position === characterPosition && row !== characterRow)
17667
+ fail(
17668
+ "UNSUPPORTED_TEXT_RANGE",
17669
+ "Consuming complete character runs creates ambiguous native marker boundaries."
17670
+ );
17671
+ characterPosition = item.position;
17672
+ characterRow = row;
17673
+ }
17674
+ return { changed: true, nodes: output.map((item) => item.node) };
17675
+ }
17676
+
17677
+ // visio/edit-text-ranges.ts
17678
+ async function replaceScopedTextRanges(pkg, pagePaths, roots, document, edit, check) {
17679
+ const shape = localTextTarget(roots.get(edit.pageId), document, edit.shapeId, check);
17680
+ if (children2(shape, "Section").some((section) => attribute2(section, "N") === "Field"))
17681
+ fail("UNSUPPORTED_TEXT_RANGE", "Text range editing of shapes with fields is unsupported.");
17682
+ const texts = children2(shape, "Text");
17683
+ if (texts.length !== 1)
17684
+ fail("UNSUPPORTED_TEXT_RANGE", "Range editing requires one existing local Text element.");
17685
+ const text = texts[0];
17686
+ if (Array.from(text.childNodes).some((node) => ![3, 4].includes(node.nodeType))) {
17687
+ const characters = effectiveFormattingRows(shape, document, "Character"), paragraphs = effectiveFormattingRows(shape, document, "Paragraph");
17688
+ assertFormattingText(shape, characters, paragraphs);
17689
+ }
17690
+ if (Array.from(text.childNodes).some(
17691
+ (node) => node.nodeType === 1 && node.localName === "fld"
17692
+ ))
17693
+ fail("UNSUPPORTED_TEXT_RANGE", "Text range editing of fields is unsupported.");
17694
+ let preceding = "";
17695
+ for (const node of Array.from(text.childNodes)) {
17696
+ if (node.nodeType === 3 || node.nodeType === 4) preceding += node.nodeValue ?? "";
17697
+ else {
17698
+ const marker2 = node;
17699
+ if (marker2.localName === "pp" && preceding && !preceding.endsWith("\n") || marker2.localName === "tp" && attribute2(marker2, "IX") !== "0")
17700
+ fail(
17701
+ "UNSUPPORTED_TEXT_RANGE",
17702
+ "Noncanonical paragraph or tab marker placement cannot be edited."
17703
+ );
17704
+ }
17705
+ }
17706
+ const plan = textRangeNodes(text, edit);
17707
+ if (!plan.changed) return false;
17708
+ await assertFormattingDependencies(
17709
+ pkg,
17710
+ pagePaths,
17711
+ roots,
17712
+ edit.pageId,
17713
+ shape,
17714
+ /* @__PURE__ */ new Map([["TheText", text]]),
17715
+ check
17716
+ );
17717
+ check();
17718
+ while (text.firstChild) text.removeChild(text.firstChild);
17719
+ for (const node of plan.nodes) text.appendChild(node);
17720
+ return true;
17721
+ }
17722
+
17723
+ // visio/edit-text-range-commands.ts
17724
+ var invalidXmlText = /[\u0000-\u0008\u000b\u000c\u000d\u000e-\u001f\ufffe\uffff]|[\ud800-\udbff](?![\udc00-\udfff])|(?<![\ud800-\udbff])[\udc00-\udfff]/u;
17725
+ function textRangeBoundary(text, offset) {
17726
+ return !(offset > 0 && offset < text.length && /[\ud800-\udbff]/.test(text[offset - 1]) && /[\udc00-\udfff]/.test(text[offset]));
17727
+ }
17728
+ function snapshotTextRanges(edit, consume) {
17729
+ let characters = 0;
17730
+ const text = (value) => {
17731
+ if (typeof value !== "string" || invalidXmlText.test(value))
17732
+ fail("INVALID_EDIT_TEXT", "Range replacement requires valid XML text.");
17733
+ characters += value.length;
17734
+ if (characters > 1e6)
17735
+ fail("LIMIT_EDIT_TEXT", "Range replacement text exceeds input limits.");
17736
+ return consume ? consume(value) : value;
17737
+ };
17738
+ const pageId = edit.pageId, shapeId = edit.shapeId;
17739
+ if ([pageId, shapeId].some((id) => typeof id !== "string" || !id || id.length > 256))
17740
+ fail("INVALID_EDIT", "Invalid text range target.");
17741
+ const expectedText = text(edit.expectedText), original = edit.ranges;
17742
+ if (!Array.isArray(original)) fail("INVALID_EDIT", "Text ranges require an array.");
17743
+ const length = original.length;
17744
+ if (!Number.isSafeInteger(length) || length < 1 || length > 1e4)
17745
+ fail("LIMIT_EDITS", "Range replacement requires 1-10000 ranges.");
17746
+ const ranges = [];
17747
+ let end = 0, output = expectedText.length;
17748
+ for (let index = 0; index < length; index++) {
17749
+ const input = original[index], start = input.start, nextEnd = input.end, replacement = text(input.text);
17750
+ if (!Number.isSafeInteger(start) || !Number.isSafeInteger(nextEnd) || start < end || nextEnd <= start || nextEnd > expectedText.length || !textRangeBoundary(expectedText, start) || !textRangeBoundary(expectedText, nextEnd))
17751
+ fail("INVALID_EDIT", "Text ranges require ascending nonoverlapping UTF16 scalar boundaries.");
17752
+ if (replacement.includes("\n") || expectedText.slice(start, nextEnd).includes("\n"))
17753
+ fail("UNSUPPORTED_TEXT_RANGE", "Range replacement across paragraph breaks is unsupported.");
17754
+ ranges.push({ start, end: nextEnd, text: replacement });
17755
+ end = nextEnd;
17756
+ output += replacement.length - (nextEnd - start);
17757
+ }
17758
+ if (output > 1e6) fail("LIMIT_EDIT_TEXT", "Range replacement output exceeds limits.");
17759
+ return { type: "replace-text-ranges", pageId, shapeId, expectedText, ranges };
17760
+ }
17761
+
17547
17762
  // visio/resize-anchor.ts
17548
17763
  function snapshotResizeAnchor(value) {
17549
17764
  if (value === void 0) return void 0;
@@ -17776,7 +17991,7 @@ function snapshotFormatting(edit) {
17776
17991
  }
17777
17992
 
17778
17993
  // visio/edit-commands.ts
17779
- var isVisioPageEdit = (edit) => edit.type === "insert-page" || edit.type === "reorder-page" || edit.type === "rename-page" || edit.type === "delete-page";
17994
+ var isVisioPageEdit = (edit) => edit.type === "insert-page" || edit.type === "reorder-page" || edit.type === "rename-page" || edit.type === "delete-page" || edit.type === "set-page-size";
17780
17995
  function geometryChangedCells(edit) {
17781
17996
  if (edit.type === "create-line")
17782
17997
  return [
@@ -17834,6 +18049,13 @@ function snapshotVisioEdits(edits, maxEdits, maxText) {
17834
18049
  if (edit.type === "duplicate-shapes") return snapshotDuplicateShapes(edit);
17835
18050
  if (edit.type === "paste-shapes") return snapshotPasteShapes(edit);
17836
18051
  if (edit.type === "delete-page") return { type: edit.type, pageId: edit.pageId };
18052
+ if (edit.type === "set-page-size")
18053
+ return {
18054
+ type: edit.type,
18055
+ pageId: edit.pageId,
18056
+ width: numeric5(edit.width, true),
18057
+ height: numeric5(edit.height, true)
18058
+ };
17837
18059
  if (edit.type === "reorder-page") {
17838
18060
  if (!Number.isSafeInteger(edit.index) || edit.index < 0 || edit.index > 1e6)
17839
18061
  fail("INVALID_EDIT", "Page order requires a bounded zero-based integer index.");
@@ -17856,6 +18078,7 @@ function snapshotVisioEdits(edits, maxEdits, maxText) {
17856
18078
  const target = { pageId: edit.pageId, shapeId: edit.shapeId };
17857
18079
  if (edit.type === "replace-plain-text")
17858
18080
  return { ...target, type: edit.type, text: text(edit.text) };
18081
+ if (edit.type === "replace-text-ranges") return snapshotTextRanges(edit, text);
17859
18082
  if (isVisioFormatEdit(edit)) return snapshotFormatting(edit);
17860
18083
  if (edit.type === "reorder-shape") {
17861
18084
  if (!["front", "back", "forward", "backward"].includes(edit.order))
@@ -20554,6 +20777,145 @@ function addReplacementPage(pagesPart, pages, rels, types, pagePaths, parts, dir
20554
20777
  );
20555
20778
  }
20556
20779
 
20780
+ // visio/edit-page-size.ts
20781
+ function constant(node, length) {
20782
+ if (!node || node.hasAttribute("E") || attribute2(node, "F") === "Inh")
20783
+ fail("EDIT_UNSUPPORTED_PAGE_SIZE", "A valid explicit page size or mode cache is required.");
20784
+ const value = visioFormulaCachedValue(attribute2(node, "V") ?? "", attribute2(node, "U"));
20785
+ if (!Number.isFinite(value.value) || !["scalar", ...length ? ["length"] : []].includes(value.unit))
20786
+ fail("EDIT_UNSUPPORTED_PAGE_SIZE", "Page size or mode has incompatible units.");
20787
+ const formula = executableCellFormula(attribute2(node, "F"));
20788
+ if (formula) {
20789
+ const analysis = analyzeVisioFormula(formula);
20790
+ if (analysis.guarded || analysis.dynamic || analysis.references.length || analysis.unsupportedFunctions.length)
20791
+ fail("EDIT_PROTECTED_CELL", "Protected or dependent page settings cannot be overwritten.");
20792
+ const result = evaluateVisioFormula(
20793
+ formula,
20794
+ () => fail("EDIT_PROTECTED_CELL", "Unsupported page dependency.")
20795
+ );
20796
+ if (result.value !== value.value || !["scalar", ...length ? ["length"] : []].includes(result.unit))
20797
+ fail("EDIT_PROTECTED_CELL", "Page setting formula cache cannot be proven.");
20798
+ }
20799
+ return value.value;
20800
+ }
20801
+ var escape3 = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
20802
+ function assertDependencies(roots, pagesPart, pages, pagePaths, pageId, changed, check) {
20803
+ const page = children2(pages, "Page").find((node) => attribute2(node, "ID") === pageId);
20804
+ const targetNames = new Set(
20805
+ ["Name", "NameU"].map((name) => attribute2(page, name)?.toLowerCase())
20806
+ );
20807
+ const otherNames = children2(pages, "Page").filter((node) => node !== page).flatMap((node) => ["Name", "NameU"].map((name) => attribute2(node, name))).filter((name) => !!name && !targetNames.has(name.toLowerCase()));
20808
+ const cells4 = changed.map(escape3).join("|");
20809
+ const reference = new RegExp(`(?:^|[^a-z0-9_.])(?:${cells4})(?:$|[^a-z0-9_.])`, "i");
20810
+ const other = otherNames.length ? new RegExp(
20811
+ `Pages\\[(?:${otherNames.map(escape3).join("|")})\\]!(?:ThePage!)?(?:${cells4})(?![a-z0-9_.])`,
20812
+ "gi"
20813
+ ) : void 0;
20814
+ const paths = new Map([...pagePaths].map(([id, path]) => [path, id]));
20815
+ for (const [path, root2] of roots)
20816
+ for (const node of [root2, ...Array.from(root2.getElementsByTagName("*"))]) {
20817
+ check();
20818
+ const formula = executableCellFormula(attribute2(node, "F"));
20819
+ if (!formula) continue;
20820
+ let code = unquotedVisioFormula(formula);
20821
+ const name = attribute2(node, "N") ?? "";
20822
+ if (inertDoubleClickFormula(name, formula)) continue;
20823
+ const owner = node.parentNode, container = owner?.parentNode;
20824
+ const ownerId = attribute2(owner ?? void 0, "ID");
20825
+ const connected = ownerId && /^[1-9]\d{0,9}$/.test(ownerId) && owner?.localName === "Shape" && owner.namespaceURI === root2.namespaceURI && (!attribute2(owner, "Type") || attribute2(owner, "Type") === "Shape") && !owner.hasAttribute("Master") && !owner.hasAttribute("MasterShape") && !children2(owner, "Shapes").length && ["BeginX", "BeginY", "EndX", "EndY"].every(
20826
+ (name2) => children2(owner, "Cell").filter((cell) => attribute2(cell, "N") === name2).length === 1
20827
+ ) && container?.localName === "Shapes" && container.parentNode === root2 && children2(root2, "Connects").some(
20828
+ (connections2) => children2(connections2, "Connect").some(
20829
+ (connection) => attribute2(connection, "FromSheet") === ownerId
20830
+ )
20831
+ );
20832
+ const nativeGlue = paths.has(path) && connected && node.localName === "Cell" && node.namespaceURI === root2.namespaceURI && (/^(BeginX|BeginY|EndX|EndY)$/.test(name) && /^\s*_WALKGLUE\((?:BegTrigger,EndTrigger|EndTrigger,BegTrigger),WalkPreference\)\s*$/i.test(
20833
+ code
20834
+ ) || /^(BegTrigger|EndTrigger)$/.test(name) && /^\s*_XFTRIGGER\(Sheet\.[1-9]\d*!EventXFMod\)\s*$/i.test(code));
20835
+ let dynamic2 = false;
20836
+ if (!nativeGlue) {
20837
+ try {
20838
+ dynamic2 = analyzeVisioFormula(
20839
+ mapVisioFormulaSyntax(
20840
+ formula,
20841
+ (part) => (other ? part.replace(other, "0") : part).replace(/Pages\[[^\]]+\]!/gi, "").replace(/ThePage!/gi, "")
20842
+ )
20843
+ ).dynamic;
20844
+ } catch {
20845
+ dynamic2 = true;
20846
+ }
20847
+ }
20848
+ if (dynamic2)
20849
+ fail(
20850
+ "EDIT_UNSUPPORTED_PAGE_SIZE_DEPENDENCY",
20851
+ "Dynamic or unknown page-size dependencies cannot be safely refreshed."
20852
+ );
20853
+ let local = paths.get(path);
20854
+ if (path === pagesPart) {
20855
+ let ancestor = node;
20856
+ while (ancestor && ancestor.localName !== "Page")
20857
+ ancestor = ancestor.parentNode;
20858
+ local = ancestor ? attribute2(ancestor, "ID") : void 0;
20859
+ }
20860
+ if (other) code = code.replace(other, "0");
20861
+ if (!reference.test(code)) continue;
20862
+ if (local && local !== pageId && !/\bPages\[/i.test(code)) continue;
20863
+ fail(
20864
+ "EDIT_UNSUPPORTED_PAGE_SIZE_DEPENDENCY",
20865
+ "Page-size formula caches cannot be safely refreshed."
20866
+ );
20867
+ }
20868
+ }
20869
+ async function setVisioPageSize(pkg, pagesPart, pages, pagePaths, dirty, command2, check) {
20870
+ const page = children2(pages, "Page").find((node) => attribute2(node, "ID") === command2.pageId);
20871
+ if (!page) fail("EDIT_TARGET_NOT_FOUND", "Page does not exist.");
20872
+ if (children2(page, "PageSheet").length !== 1)
20873
+ fail("EDIT_UNSUPPORTED_PAGE_SIZE", "One explicit PageSheet is required.");
20874
+ const sheet = child(page, "PageSheet"), cells4 = uniqueFormattingCells(sheet);
20875
+ for (const name of [
20876
+ "PageWidth",
20877
+ "PageHeight",
20878
+ "PageScale",
20879
+ "DrawingScale",
20880
+ "DrawingSizeType",
20881
+ "DrawingResizeType"
20882
+ ])
20883
+ if (!cells4.has(name) && [...cells4.keys()].some((key2) => key2.toLowerCase() === name.toLowerCase()))
20884
+ fail("EDIT_AMBIGUOUS_CELL", "Page settings require canonical cell names.");
20885
+ const pageScale = constant(cells4.get("PageScale"), true), drawingScale = constant(cells4.get("DrawingScale"), true);
20886
+ if (pageScale <= 0 || drawingScale <= 0)
20887
+ fail("EDIT_UNSUPPORTED_PAGE_SIZE", "Page and drawing scales must be positive.");
20888
+ const width = constant(cells4.get("PageWidth"), true), height = constant(cells4.get("PageHeight"), true);
20889
+ const size = constant(cells4.get("DrawingSizeType"), false);
20890
+ const resize = cells4.has("DrawingResizeType") ? constant(cells4.get("DrawingResizeType"), false) : void 0;
20891
+ if (width <= 0 || height <= 0 || ![0, 1, 2, 3, 4].includes(size) || resize !== void 0 && ![0, 1, 2].includes(resize))
20892
+ fail("EDIT_UNSUPPORTED_PAGE_SIZE", "Page dimensions or size modes are unsupported.");
20893
+ const targetWidth = command2.width === width * (pageScale / drawingScale) ? width : command2.width * drawingScale / pageScale, targetHeight = command2.height === height * (pageScale / drawingScale) ? height : command2.height * drawingScale / pageScale;
20894
+ if (![targetWidth, targetHeight].every(
20895
+ (value) => Number.isFinite(value) && value > 0 && value <= 1e6
20896
+ ))
20897
+ fail("INVALID_PAGE_SIZE", "Converted drawing-page dimensions exceed limits.");
20898
+ const values = /* @__PURE__ */ new Map([
20899
+ ["PageWidth", targetWidth],
20900
+ ["PageHeight", targetHeight],
20901
+ ["DrawingSizeType", 3],
20902
+ ["DrawingResizeType", 0]
20903
+ ]);
20904
+ const changed = [...values.keys()].filter(
20905
+ (name) => name === "PageWidth" ? width !== targetWidth : name === "PageHeight" ? height !== targetHeight : name === "DrawingSizeType" ? size !== 3 : resize !== 0
20906
+ );
20907
+ if (!changed.length) return;
20908
+ const roots = await editableVisioPageRoots(pkg, pagesPart, pages, pagePaths, dirty, check);
20909
+ for (const path of pkg.paths())
20910
+ if (/^visio\/.*\.xml$/i.test(path) && !roots.has(path)) {
20911
+ check();
20912
+ roots.set(path, dirty.get(path) ?? await pkg.readXml(path));
20913
+ }
20914
+ assertDependencies(roots, pagesPart, pages, pagePaths, command2.pageId, changed, check);
20915
+ for (const name of changed) setCell(sheet, name, values.get(name));
20916
+ dirty.set(pagesPart, pages);
20917
+ }
20918
+
20557
20919
  // visio/edit-pages.ts
20558
20920
  var officeRel2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
20559
20921
  var pageType2 = "http://schemas.microsoft.com/visio/2010/relationships/page";
@@ -20589,6 +20951,10 @@ async function editVsdxPages(original, pkg, parts, commands, limits, maxOutput,
20589
20951
  for (const command2 of commands) {
20590
20952
  check();
20591
20953
  const existing = children2(pages, "Page");
20954
+ if (command2.type === "set-page-size") {
20955
+ await setVisioPageSize(pkg, pagesPart, pages, pagePaths, dirty, command2, check);
20956
+ continue;
20957
+ }
20592
20958
  if (command2.type === "delete-page") {
20593
20959
  await deleteVisioPage(
20594
20960
  pkg,
@@ -20692,8 +21058,10 @@ async function editVsdxPages(original, pkg, parts, commands, limits, maxOutput,
20692
21058
  fail("LIMIT_EDIT_OUTPUT", "Saved package exceeds output limit.");
20693
21059
  return { bytes: original, changedParts: [], diagnostics: [] };
20694
21060
  }
20695
- await updatePageAppProperties(pkg, pages, priorCount, dirty, limits, check);
20696
- await recalculatePageFormulas(pkg, pagesPart, pages, pagePaths, dirty, check);
21061
+ if (commands.some((command2) => command2.type !== "set-page-size")) {
21062
+ await updatePageAppProperties(pkg, pages, priorCount, dirty, limits, check);
21063
+ await recalculatePageFormulas(pkg, pagesPart, pages, pagePaths, dirty, check);
21064
+ }
20697
21065
  if ((/* @__PURE__ */ new Set([...parts.keys(), ...dirty.keys()])).size > limits.maxEntries)
20698
21066
  fail("LIMIT_ENTRIES", "Page insertion exceeds package entry limit.");
20699
21067
  let total = [...parts.values()].reduce((sum, bytes2) => sum + bytes2.length, 0), nodes = 0;
@@ -20721,8 +21089,8 @@ async function editVsdxPages(original, pkg, parts, commands, limits, maxOutput,
20721
21089
  changedParts: [.../* @__PURE__ */ new Set([...removed, ...dirty.keys()])],
20722
21090
  diagnostics: [
20723
21091
  {
20724
- code: "edit-pages-experimental",
20725
- message: "Page metadata and supported local numeric page-dependent caches were updated. Inherited, string and background-render-context formulas remain unsupported."
21092
+ code: commands.every((command2) => command2.type === "set-page-size") ? "edit-page-size-experimental" : "edit-pages-experimental",
21093
+ message: commands.every((command2) => command2.type === "set-page-size") ? "Fixed custom drawing-page dimensions were updated. Shape positions and printer settings were retained; affected page-size formula caches remain unsupported." : "Page metadata and supported local numeric page-dependent caches were updated. Inherited, string and background-render-context formulas remain unsupported."
20726
21094
  }
20727
21095
  ]
20728
21096
  };
@@ -21551,12 +21919,12 @@ async function editVsdx(input, edits, options = {}) {
21551
21919
  const dirty = /* @__PURE__ */ new Map();
21552
21920
  const roots = /* @__PURE__ */ new Map();
21553
21921
  const geometryCommands = commands.filter(
21554
- (command2) => command2.type !== "replace-plain-text" && command2.type !== "reorder-shape" && command2.type !== "duplicate-shapes" && command2.type !== "paste-shapes" && !isVisioFormatEdit(command2)
21922
+ (command2) => command2.type !== "replace-plain-text" && command2.type !== "replace-text-ranges" && command2.type !== "reorder-shape" && command2.type !== "duplicate-shapes" && command2.type !== "paste-shapes" && !isVisioFormatEdit(command2)
21555
21923
  );
21556
21924
  let document;
21557
21925
  let masterMovePins = emptyMasterMoveProof();
21558
21926
  if (geometryCommands.length || commands.some(
21559
- (command2) => command2.type === "replace-plain-text" || isVisioFormatEdit(command2) || command2.type === "reorder-shape" || command2.type === "duplicate-shapes" || command2.type === "paste-shapes"
21927
+ (command2) => command2.type === "replace-plain-text" || command2.type === "replace-text-ranges" || isVisioFormatEdit(command2) || command2.type === "reorder-shape" || command2.type === "duplicate-shapes" || command2.type === "paste-shapes"
21560
21928
  )) {
21561
21929
  for (const [pageId, path2] of pages) {
21562
21930
  const sourceRoot = await visioXml(pkg, path2, "PageContents");
@@ -21603,8 +21971,8 @@ async function editVsdx(input, edits, options = {}) {
21603
21971
  root2 = sourceRoot.ownerDocument.cloneNode(true).documentElement;
21604
21972
  roots.set(command2.pageId, root2);
21605
21973
  }
21606
- if (command2.type === "replace-plain-text") {
21607
- if (await replaceScopedPlainText(pkg, new Set(pages.values()), roots, document, command2, check)) {
21974
+ if (command2.type === "replace-plain-text" || command2.type === "replace-text-ranges") {
21975
+ if (await (command2.type === "replace-plain-text" ? replaceScopedPlainText(pkg, new Set(pages.values()), roots, document, command2, check) : replaceScopedTextRanges(pkg, new Set(pages.values()), roots, document, command2, check))) {
21608
21976
  dirty.set(path, root2);
21609
21977
  textChanged = true;
21610
21978
  }
@@ -253,6 +253,9 @@ export interface VisioConnection {
253
253
  }
254
254
  export interface VisioPage {
255
255
  id: string;
256
+ /** Explicit cached drawing page-size modes. Missing or invalid source caches are omitted. */
257
+ drawingSizeType?: number;
258
+ drawingResizeType?: number;
256
259
  /** Cached PageScale/DrawingScale. Scene geometry is in physical page inches;
257
260
  * source-backed geometry edits continue to accept drawing inches. Omitted means 1.
258
261
  */
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../visio/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvE,sEAAsE;AACtE,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACpF,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,aAAa;IAC7B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CAChB;AACD,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,2EAA2E;IAC3E,aAAa,CAAC,EAAE,eAAe,CAAC;CAChC;AACD,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC9D,IAAI,EAAE,QAAQ,CAAC;IACf,qFAAqF;IACrF,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC9D,IAAI,EAAE,QAAQ,CAAC;IACf,6DAA6D;IAC7D,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B;AACD,MAAM,WAAW,mBAAmB;IACnC,2FAA2F;IAC3F,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IAC/C,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC9D,IAAI,EAAE,SAAS,CAAC;IAChB,kGAAkG;IAClG,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AACD,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAChG,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IACnD,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;CAClB;AACD,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACtC,iGAAiG;IACjG,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,sFAAsF;IACtF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AACD,MAAM,WAAW,cAAc;IAC9B,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,WAAW,EAAE;QAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,SAAS,EAAE,KAAK,GAAG,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAChF;AACD,MAAM,WAAW,SAAS;IACzB,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gFAAgF;IAChF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACzD,aAAa,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,yEAAyE;IACzE,SAAS,EAAE,WAAW,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AACD,MAAM,WAAW,wBAAwB;IACxC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,UAAU;IAC1B,QAAQ,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;IACnD,gGAAgG;IAChG,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,oGAAoG;AACpG,MAAM,MAAM,sBAAsB,GAC/B,WAAW,GACX,aAAa,GACb,cAAc,GACd,OAAO,GACP,SAAS,CAAC;AACb,gGAAgG;AAChG,MAAM,WAAW,oBAAoB;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,yEAAyE;IACzE,KAAK,EAAE,OAAO,CAAC;IACf,gGAAgG;IAChG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;IAClD,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,SAAS,EAAE,WAAW,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,gGAAgG;IAChG,MAAM,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,wBAAwB,CAAC;IACzC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AACD,MAAM,WAAW,eAAe;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,SAAS;IACzB,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB;AACD,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,qFAAqF;IACrF,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,eAAe,EAAE,CAAC;CAC/B"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../visio/model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../visio/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAKjD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGxD,OAAO,EAAwB,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAmC,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAiBrF,MAAM,WAAW,gBAAgB;IAChC,qGAAqG;IACrG,iBAAiB,CAAC,EAAE,0BAA0B,CAAC;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAOD,uFAAuF;AACvF,wBAAsB,SAAS,CAC9B,KAAK,EAAE,UAAU,GAAG,WAAW,EAC/B,OAAO,GAAE,gBAAqB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAoQxB;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,CAYvF"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../visio/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAKjD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGxD,OAAO,EAAwB,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAmC,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAiBrF,MAAM,WAAW,gBAAgB;IAChC,qGAAqG;IACrG,iBAAiB,CAAC,EAAE,0BAA0B,CAAC;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAOD,uFAAuF;AACvF,wBAAsB,SAAS,CAC9B,KAAK,EAAE,UAAU,GAAG,WAAW,EAC/B,OAAO,GAAE,gBAAqB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAqRxB;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,CAYvF"}
@@ -1 +1 @@
1
- {"version":3,"file":"edit-commands.d.ts","sourceRoot":"","sources":["../../../visio/ui/edit-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAM1C,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,EAAE,CAiItE"}
1
+ {"version":3,"file":"edit-commands.d.ts","sourceRoot":"","sources":["../../../visio/ui/edit-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAO1C,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,EAAE,CAkJtE"}