ooxml-core 1.11.0 → 1.12.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/automation/index.cjs +210 -20
- package/dist/automation/index.mjs +210 -20
- package/dist/docx/embedded.cjs +1 -1
- package/dist/docx/embedded.mjs +1 -1
- package/dist/docx/index.cjs +1 -1
- package/dist/docx/index.mjs +1 -1
- package/dist/docx/layout/adapt-table.d.ts.map +1 -1
- package/dist/docx/layout/flow-table.d.ts.map +1 -1
- package/dist/docx/layout/index.cjs +145 -9
- package/dist/docx/layout/index.d.ts +1 -0
- package/dist/docx/layout/index.d.ts.map +1 -1
- package/dist/docx/layout/index.mjs +145 -10
- package/dist/docx/layout/input.d.ts +5 -0
- package/dist/docx/layout/input.d.ts.map +1 -1
- package/dist/docx/layout/layout-session.d.ts +10 -0
- package/dist/docx/layout/layout-session.d.ts.map +1 -0
- package/dist/docx/layout/nested-fragment-edges.d.ts.map +1 -1
- package/dist/docx/layout/paragraph-cache.d.ts +8 -0
- package/dist/docx/layout/paragraph-cache.d.ts.map +1 -0
- package/dist/docx/layout/paragraph-layout.d.ts.map +1 -1
- package/dist/docx/layout/paragraph-tokens.d.ts +1 -1
- package/dist/docx/layout/paragraph-tokens.d.ts.map +1 -1
- package/dist/docx/layout/table-paragraph-keeps.d.ts +14 -0
- package/dist/docx/layout/table-paragraph-keeps.d.ts.map +1 -0
- package/dist/docx/load/index.cjs +1 -1
- package/dist/docx/load/index.mjs +1 -1
- package/dist/docx/ui/index.cjs +83 -6
- package/dist/docx/ui/index.mjs +83 -7
- package/dist/docx/ui/ribbon-action-ids.d.ts +1 -1
- package/dist/docx/ui/ribbon-action-ids.d.ts.map +1 -1
- package/dist/docx/ui/word-count.d.ts +3 -0
- package/dist/docx/ui/word-count.d.ts.map +1 -1
- package/dist/geometry/element-transform.d.ts +90 -0
- package/dist/geometry/element-transform.d.ts.map +1 -0
- package/dist/geometry/index.cjs +90 -0
- package/dist/geometry/index.d.ts +1 -0
- package/dist/geometry/index.d.ts.map +1 -1
- package/dist/geometry/index.mjs +83 -1
- package/dist/index.cjs +90 -0
- package/dist/index.mjs +90 -0
- package/dist/visio/index.cjs +314 -39
- package/dist/visio/index.d.ts +1 -0
- package/dist/visio/index.d.ts.map +1 -1
- package/dist/visio/index.mjs +313 -40
- package/dist/visio/model.d.ts +12 -0
- package/dist/visio/model.d.ts.map +1 -1
- package/dist/visio/paper-sizes.d.ts +5 -0
- package/dist/visio/paper-sizes.d.ts.map +1 -1
- package/dist/visio/parser.d.ts.map +1 -1
- package/dist/visio/print-count.d.ts +20 -0
- package/dist/visio/print-count.d.ts.map +1 -0
- package/dist/visio/print-settings.d.ts +14 -0
- package/dist/visio/print-settings.d.ts.map +1 -0
- package/dist/visio/ui/index.cjs +194 -4
- package/dist/visio/ui/index.mjs +194 -4
- package/dist/xlsx/ui/ribbon/parts.d.ts +1 -0
- package/dist/xlsx/ui/ribbon/parts.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/visio/ui/index.cjs
CHANGED
|
@@ -14671,6 +14671,177 @@ function readVisioPageSetup(cells4) {
|
|
|
14671
14671
|
return Object.keys(result).length ? result : void 0;
|
|
14672
14672
|
}
|
|
14673
14673
|
|
|
14674
|
+
// visio/print-settings.ts
|
|
14675
|
+
var NAMES2 = [
|
|
14676
|
+
"PaperKind",
|
|
14677
|
+
"PrintPageOrientation",
|
|
14678
|
+
"PageLeftMargin",
|
|
14679
|
+
"PageRightMargin",
|
|
14680
|
+
"PageTopMargin",
|
|
14681
|
+
"PageBottomMargin",
|
|
14682
|
+
"ScaleX",
|
|
14683
|
+
"ScaleY",
|
|
14684
|
+
"OnPage",
|
|
14685
|
+
"PagesX",
|
|
14686
|
+
"PagesY",
|
|
14687
|
+
"CenterX",
|
|
14688
|
+
"CenterY"
|
|
14689
|
+
];
|
|
14690
|
+
var BOOLEAN = /* @__PURE__ */ new Set(["OnPage", "CenterX", "CenterY"]);
|
|
14691
|
+
var LENGTH = /* @__PURE__ */ new Set(["PageLeftMargin", "PageRightMargin", "PageTopMargin", "PageBottomMargin"]);
|
|
14692
|
+
var CANONICAL = new Map(
|
|
14693
|
+
[...NAMES2, "PageWidth", "PageHeight", "PageScale", "DrawingScale"].map((name3) => [
|
|
14694
|
+
name3.toLowerCase(),
|
|
14695
|
+
name3
|
|
14696
|
+
])
|
|
14697
|
+
);
|
|
14698
|
+
function indexCells2(sheet) {
|
|
14699
|
+
const cells4 = /* @__PURE__ */ new Map();
|
|
14700
|
+
let duplicate = false;
|
|
14701
|
+
for (const node2 of children2(sheet, "Cell")) {
|
|
14702
|
+
const name3 = attribute2(node2, "N") ?? "", canonical2 = CANONICAL.get(name3.toLowerCase());
|
|
14703
|
+
if (!canonical2) continue;
|
|
14704
|
+
if (canonical2 !== name3) duplicate = true;
|
|
14705
|
+
const values = cells4.get(canonical2) ?? [];
|
|
14706
|
+
if (values.length < 2) values.push(node2);
|
|
14707
|
+
cells4.set(canonical2, values);
|
|
14708
|
+
if (values.length > 1) duplicate = true;
|
|
14709
|
+
}
|
|
14710
|
+
return { cells: cells4, duplicate };
|
|
14711
|
+
}
|
|
14712
|
+
function createVisioPrintSettingsReader(documentSheets, rootStyles) {
|
|
14713
|
+
const indexes = { document: indexCells2(documentSheets[0]), root: indexCells2(rootStyles[0]) };
|
|
14714
|
+
return (pageSheets) => readVisioPrintCountSettings(pageSheets, documentSheets, rootStyles, indexes);
|
|
14715
|
+
}
|
|
14716
|
+
function readVisioPrintCountSettings(pageSheets, documentSheets, rootStyles, indexes) {
|
|
14717
|
+
let refusal;
|
|
14718
|
+
const refuse4 = (reason) => {
|
|
14719
|
+
refusal ??= reason;
|
|
14720
|
+
};
|
|
14721
|
+
if (pageSheets.length !== 1) refuse4("ambiguous-page-sheet");
|
|
14722
|
+
if (documentSheets.length > 1) refuse4("ambiguous-document-sheet");
|
|
14723
|
+
if (!documentSheets.length) refuse4("missing-setting");
|
|
14724
|
+
if (rootStyles.length > 1) refuse4("duplicate-setting");
|
|
14725
|
+
const root2 = rootStyles[0];
|
|
14726
|
+
if (!root2 || attribute2(root2, "ID") !== "0" || attribute2(root2, "NameU") !== "No Style")
|
|
14727
|
+
refuse4("unsupported-print-style");
|
|
14728
|
+
for (const sheet of [...pageSheets, ...documentSheets])
|
|
14729
|
+
for (const name3 of ["LineStyle", "FillStyle", "TextStyle"])
|
|
14730
|
+
if (attribute2(sheet, name3) !== "0") refuse4("unsupported-print-style");
|
|
14731
|
+
for (const name3 of ["LineStyle", "FillStyle", "TextStyle"])
|
|
14732
|
+
if (attribute2(root2, name3) !== void 0) refuse4("unsupported-print-style");
|
|
14733
|
+
const localIndex = indexCells2(pageSheets[0]), rootIndex = indexes?.root ?? indexCells2(root2);
|
|
14734
|
+
const documentIndex = indexes?.document ?? indexCells2(documentSheets[0]);
|
|
14735
|
+
if (localIndex.duplicate || rootIndex.duplicate || documentIndex.duplicate)
|
|
14736
|
+
refuse4("duplicate-setting");
|
|
14737
|
+
const local = localIndex.cells, inherited = rootIndex.cells;
|
|
14738
|
+
const read = (node2, name3, origin) => {
|
|
14739
|
+
const invalid5 = () => {
|
|
14740
|
+
refuse4(origin === "local" ? "invalid-local-setting" : "invalid-document-setting");
|
|
14741
|
+
return void 0;
|
|
14742
|
+
};
|
|
14743
|
+
if (node2.hasAttribute("E")) return invalid5();
|
|
14744
|
+
let raw = (attribute2(node2, "V") ?? "").trim();
|
|
14745
|
+
if (!raw || raw.length > 128) return invalid5();
|
|
14746
|
+
if (BOOLEAN.has(name3)) {
|
|
14747
|
+
if (!["0", "1", "false", "true"].includes(raw)) return invalid5();
|
|
14748
|
+
raw = raw === "true" ? "1" : raw === "false" ? "0" : raw;
|
|
14749
|
+
}
|
|
14750
|
+
try {
|
|
14751
|
+
const value = visioFormulaCachedValue(raw, attribute2(node2, "U"));
|
|
14752
|
+
const length = LENGTH.has(name3) || /^(PageWidth|PageHeight|PageScale|DrawingScale)$/.test(name3);
|
|
14753
|
+
if (!["scalar", ...length ? ["length"] : []].includes(value.unit) || Math.abs(value.value) > 1e9)
|
|
14754
|
+
return invalid5();
|
|
14755
|
+
const formula = attribute2(node2, "F");
|
|
14756
|
+
if (formula !== void 0) {
|
|
14757
|
+
const source = formula.trim();
|
|
14758
|
+
if (/^(true|false)$/i.test(source)) {
|
|
14759
|
+
if ((source.toLowerCase() === "true" ? 1 : 0) !== value.value) return invalid5();
|
|
14760
|
+
} else {
|
|
14761
|
+
if (!source || source === "Inh") return invalid5();
|
|
14762
|
+
const limits = { maxLength: 512, maxNodes: 64, maxDepth: 16, maxSteps: 128 };
|
|
14763
|
+
const analysis = analyzeVisioFormula(source, limits);
|
|
14764
|
+
if (analysis.dynamic || analysis.guarded || analysis.references.length || analysis.unsupportedFunctions.length) {
|
|
14765
|
+
refuse4("dynamic-setting");
|
|
14766
|
+
return void 0;
|
|
14767
|
+
}
|
|
14768
|
+
const evaluated = evaluateVisioFormula(
|
|
14769
|
+
source,
|
|
14770
|
+
() => {
|
|
14771
|
+
throw new Error("Unexpected reference");
|
|
14772
|
+
},
|
|
14773
|
+
limits
|
|
14774
|
+
);
|
|
14775
|
+
if (evaluated.value !== value.value || !["scalar", ...length ? ["length"] : []].includes(evaluated.unit))
|
|
14776
|
+
return invalid5();
|
|
14777
|
+
}
|
|
14778
|
+
}
|
|
14779
|
+
return value.value;
|
|
14780
|
+
} catch {
|
|
14781
|
+
return invalid5();
|
|
14782
|
+
}
|
|
14783
|
+
};
|
|
14784
|
+
const values = /* @__PURE__ */ new Map();
|
|
14785
|
+
for (const name3 of NAMES2) {
|
|
14786
|
+
const nodes = local.get(name3) ?? inherited.get(name3);
|
|
14787
|
+
if (!nodes?.length) continue;
|
|
14788
|
+
if (nodes.length !== 1) continue;
|
|
14789
|
+
const value = read(nodes[0], name3, local.has(name3) ? "local" : "document");
|
|
14790
|
+
if (value !== void 0) values.set(name3, value);
|
|
14791
|
+
}
|
|
14792
|
+
for (const name3 of ["PageWidth", "PageHeight", "PageScale", "DrawingScale"]) {
|
|
14793
|
+
const nodes = local.get(name3);
|
|
14794
|
+
if (!nodes || nodes.length !== 1 || !(read(nodes[0], name3, "local") > 0))
|
|
14795
|
+
refuse4("unusable-drawing-scale");
|
|
14796
|
+
}
|
|
14797
|
+
const setup = {};
|
|
14798
|
+
const paper = values.get("PaperKind");
|
|
14799
|
+
if (paper !== void 0 && Number.isSafeInteger(paper) && paper >= 0 && paper <= 65535)
|
|
14800
|
+
setup.paperKind = paper;
|
|
14801
|
+
else if (paper !== void 0)
|
|
14802
|
+
refuse4(local.has("PaperKind") ? "invalid-local-setting" : "invalid-document-setting");
|
|
14803
|
+
const orientation = values.get("PrintPageOrientation");
|
|
14804
|
+
if (orientation === 0 || orientation === 1 || orientation === 2)
|
|
14805
|
+
setup.printPageOrientation = orientation;
|
|
14806
|
+
else if (orientation !== void 0)
|
|
14807
|
+
refuse4(
|
|
14808
|
+
local.has("PrintPageOrientation") ? "invalid-local-setting" : "invalid-document-setting"
|
|
14809
|
+
);
|
|
14810
|
+
const margins = ["Left", "Right", "Top", "Bottom"].map((side2) => values.get(`Page${side2}Margin`));
|
|
14811
|
+
if (margins.every((n) => n !== void 0 && n >= 0 && n <= 1e3))
|
|
14812
|
+
setup.margins = {
|
|
14813
|
+
left: margins[0],
|
|
14814
|
+
right: margins[1],
|
|
14815
|
+
top: margins[2],
|
|
14816
|
+
bottom: margins[3]
|
|
14817
|
+
};
|
|
14818
|
+
else if (margins.some((n) => n !== void 0 && (n < 0 || n > 1e3)))
|
|
14819
|
+
refuse4("unusable-print-area");
|
|
14820
|
+
for (const [name3, key2] of [
|
|
14821
|
+
["ScaleX", "printZoom"],
|
|
14822
|
+
["ScaleY", "printZoomY"],
|
|
14823
|
+
["PagesX", "printPagesAcross"],
|
|
14824
|
+
["PagesY", "printPagesDown"]
|
|
14825
|
+
]) {
|
|
14826
|
+
const value = values.get(name3);
|
|
14827
|
+
if (value !== void 0) {
|
|
14828
|
+
if ((name3 === "PagesX" || name3 === "PagesY") && (!Number.isSafeInteger(value) || value < 1))
|
|
14829
|
+
refuse4(local.has(name3) ? "invalid-local-setting" : "invalid-document-setting");
|
|
14830
|
+
else setup[key2] = value;
|
|
14831
|
+
}
|
|
14832
|
+
}
|
|
14833
|
+
for (const [name3, key2] of [
|
|
14834
|
+
["OnPage", "printFitToPages"],
|
|
14835
|
+
["CenterX", "printCenterX"],
|
|
14836
|
+
["CenterY", "printCenterY"]
|
|
14837
|
+
]) {
|
|
14838
|
+
const value = values.get(name3);
|
|
14839
|
+
if (value !== void 0) setup[key2] = value === 1;
|
|
14840
|
+
}
|
|
14841
|
+
if (refusal) setup.printCountRefusal = refusal;
|
|
14842
|
+
return setup;
|
|
14843
|
+
}
|
|
14844
|
+
|
|
14674
14845
|
// visio/master-list.ts
|
|
14675
14846
|
var MAX_LISTED_MASTERS = 500;
|
|
14676
14847
|
var PREVIEW_SHAPES = 5e3;
|
|
@@ -15272,6 +15443,11 @@ async function parseVsdx(input, options = {}) {
|
|
|
15272
15443
|
});
|
|
15273
15444
|
const rootStyle = styles.get("0");
|
|
15274
15445
|
if (rootStyle?.attributes.get("NameU") === "No Style") resources.rootSheet = rootStyle.sheet;
|
|
15446
|
+
const printStyleGroups = children2(documentRoot, "StyleSheets");
|
|
15447
|
+
const readPrintSettings = createVisioPrintSettingsReader(
|
|
15448
|
+
children2(documentRoot, "DocumentSheet"),
|
|
15449
|
+
printStyleGroups.length === 1 ? children2(printStyleGroups[0], "StyleSheet").filter((node2) => attribute2(node2, "ID") === "0") : []
|
|
15450
|
+
);
|
|
15275
15451
|
const masters = /* @__PURE__ */ new Map();
|
|
15276
15452
|
const masterRecords = [];
|
|
15277
15453
|
const mastersPart = await related(pkg, documentPart2, "masters", false);
|
|
@@ -15435,7 +15611,17 @@ async function parseVsdx(input, options = {}) {
|
|
|
15435
15611
|
const value = number(sheet.cells, name3, Number.NaN, localReport);
|
|
15436
15612
|
if (Number.isSafeInteger(value) && value >= 0 && value <= 255) pageModes[key2] = value;
|
|
15437
15613
|
}
|
|
15438
|
-
const
|
|
15614
|
+
const { paperKind, printPageOrientation, margins, printZoom, ...countMetadata } = readPrintSettings(children2(page, "PageSheet"));
|
|
15615
|
+
const pageSetup = {
|
|
15616
|
+
...readVisioPageSetup(sheet.cells),
|
|
15617
|
+
...countMetadata,
|
|
15618
|
+
printCountSettings: {
|
|
15619
|
+
...paperKind === void 0 ? {} : { paperKind },
|
|
15620
|
+
...printPageOrientation === void 0 ? {} : { printPageOrientation },
|
|
15621
|
+
...margins === void 0 ? {} : { margins },
|
|
15622
|
+
...printZoom === void 0 ? {} : { printZoom }
|
|
15623
|
+
}
|
|
15624
|
+
};
|
|
15439
15625
|
const layout = readVisioPageLayout(sheet.cells);
|
|
15440
15626
|
for (const connection of connectors)
|
|
15441
15627
|
if (!seen.has(connection.fromShapeId) || !seen.has(connection.toShapeId))
|
|
@@ -15534,15 +15720,19 @@ var VISIO_PAPER_SIZES = Object.freeze([
|
|
|
15534
15720
|
function visioPaperSize(paperKind) {
|
|
15535
15721
|
return VISIO_PAPER_SIZES.find((item) => item.paperKind === paperKind);
|
|
15536
15722
|
}
|
|
15723
|
+
function visioOrientedPaperSize(paper, landscape) {
|
|
15724
|
+
const short = Math.min(paper.width, paper.height), long = Math.max(paper.width, paper.height);
|
|
15725
|
+
return { width: landscape ? long : short, height: landscape ? short : long };
|
|
15726
|
+
}
|
|
15537
15727
|
function visioPrintTile(page, paper = page.pageSetup?.paperKind === void 0 ? void 0 : visioPaperSize(page.pageSetup.paperKind)) {
|
|
15538
15728
|
if (!paper) return void 0;
|
|
15539
15729
|
const setup = page.pageSetup;
|
|
15540
15730
|
const landscape = setup?.printPageOrientation === 2 || setup?.printPageOrientation !== 1 && page.width > page.height;
|
|
15541
|
-
const
|
|
15731
|
+
const oriented = visioOrientedPaperSize(paper, landscape);
|
|
15542
15732
|
const margins = setup?.margins ?? { left: 0, right: 0, top: 0, bottom: 0 };
|
|
15543
15733
|
const zoom = setup?.printZoom ?? 1;
|
|
15544
|
-
const width = (
|
|
15545
|
-
const height = (
|
|
15734
|
+
const width = (oriented.width - margins.left - margins.right) / zoom;
|
|
15735
|
+
const height = (oriented.height - margins.top - margins.bottom) / zoom;
|
|
15546
15736
|
return width > 0.01 && height > 0.01 ? { width, height } : void 0;
|
|
15547
15737
|
}
|
|
15548
15738
|
|
package/dist/visio/ui/index.mjs
CHANGED
|
@@ -14665,6 +14665,177 @@ function readVisioPageSetup(cells4) {
|
|
|
14665
14665
|
return Object.keys(result).length ? result : void 0;
|
|
14666
14666
|
}
|
|
14667
14667
|
|
|
14668
|
+
// visio/print-settings.ts
|
|
14669
|
+
var NAMES2 = [
|
|
14670
|
+
"PaperKind",
|
|
14671
|
+
"PrintPageOrientation",
|
|
14672
|
+
"PageLeftMargin",
|
|
14673
|
+
"PageRightMargin",
|
|
14674
|
+
"PageTopMargin",
|
|
14675
|
+
"PageBottomMargin",
|
|
14676
|
+
"ScaleX",
|
|
14677
|
+
"ScaleY",
|
|
14678
|
+
"OnPage",
|
|
14679
|
+
"PagesX",
|
|
14680
|
+
"PagesY",
|
|
14681
|
+
"CenterX",
|
|
14682
|
+
"CenterY"
|
|
14683
|
+
];
|
|
14684
|
+
var BOOLEAN = /* @__PURE__ */ new Set(["OnPage", "CenterX", "CenterY"]);
|
|
14685
|
+
var LENGTH = /* @__PURE__ */ new Set(["PageLeftMargin", "PageRightMargin", "PageTopMargin", "PageBottomMargin"]);
|
|
14686
|
+
var CANONICAL = new Map(
|
|
14687
|
+
[...NAMES2, "PageWidth", "PageHeight", "PageScale", "DrawingScale"].map((name3) => [
|
|
14688
|
+
name3.toLowerCase(),
|
|
14689
|
+
name3
|
|
14690
|
+
])
|
|
14691
|
+
);
|
|
14692
|
+
function indexCells2(sheet) {
|
|
14693
|
+
const cells4 = /* @__PURE__ */ new Map();
|
|
14694
|
+
let duplicate = false;
|
|
14695
|
+
for (const node2 of children2(sheet, "Cell")) {
|
|
14696
|
+
const name3 = attribute2(node2, "N") ?? "", canonical2 = CANONICAL.get(name3.toLowerCase());
|
|
14697
|
+
if (!canonical2) continue;
|
|
14698
|
+
if (canonical2 !== name3) duplicate = true;
|
|
14699
|
+
const values = cells4.get(canonical2) ?? [];
|
|
14700
|
+
if (values.length < 2) values.push(node2);
|
|
14701
|
+
cells4.set(canonical2, values);
|
|
14702
|
+
if (values.length > 1) duplicate = true;
|
|
14703
|
+
}
|
|
14704
|
+
return { cells: cells4, duplicate };
|
|
14705
|
+
}
|
|
14706
|
+
function createVisioPrintSettingsReader(documentSheets, rootStyles) {
|
|
14707
|
+
const indexes = { document: indexCells2(documentSheets[0]), root: indexCells2(rootStyles[0]) };
|
|
14708
|
+
return (pageSheets) => readVisioPrintCountSettings(pageSheets, documentSheets, rootStyles, indexes);
|
|
14709
|
+
}
|
|
14710
|
+
function readVisioPrintCountSettings(pageSheets, documentSheets, rootStyles, indexes) {
|
|
14711
|
+
let refusal;
|
|
14712
|
+
const refuse4 = (reason) => {
|
|
14713
|
+
refusal ??= reason;
|
|
14714
|
+
};
|
|
14715
|
+
if (pageSheets.length !== 1) refuse4("ambiguous-page-sheet");
|
|
14716
|
+
if (documentSheets.length > 1) refuse4("ambiguous-document-sheet");
|
|
14717
|
+
if (!documentSheets.length) refuse4("missing-setting");
|
|
14718
|
+
if (rootStyles.length > 1) refuse4("duplicate-setting");
|
|
14719
|
+
const root2 = rootStyles[0];
|
|
14720
|
+
if (!root2 || attribute2(root2, "ID") !== "0" || attribute2(root2, "NameU") !== "No Style")
|
|
14721
|
+
refuse4("unsupported-print-style");
|
|
14722
|
+
for (const sheet of [...pageSheets, ...documentSheets])
|
|
14723
|
+
for (const name3 of ["LineStyle", "FillStyle", "TextStyle"])
|
|
14724
|
+
if (attribute2(sheet, name3) !== "0") refuse4("unsupported-print-style");
|
|
14725
|
+
for (const name3 of ["LineStyle", "FillStyle", "TextStyle"])
|
|
14726
|
+
if (attribute2(root2, name3) !== void 0) refuse4("unsupported-print-style");
|
|
14727
|
+
const localIndex = indexCells2(pageSheets[0]), rootIndex = indexes?.root ?? indexCells2(root2);
|
|
14728
|
+
const documentIndex = indexes?.document ?? indexCells2(documentSheets[0]);
|
|
14729
|
+
if (localIndex.duplicate || rootIndex.duplicate || documentIndex.duplicate)
|
|
14730
|
+
refuse4("duplicate-setting");
|
|
14731
|
+
const local = localIndex.cells, inherited = rootIndex.cells;
|
|
14732
|
+
const read = (node2, name3, origin) => {
|
|
14733
|
+
const invalid5 = () => {
|
|
14734
|
+
refuse4(origin === "local" ? "invalid-local-setting" : "invalid-document-setting");
|
|
14735
|
+
return void 0;
|
|
14736
|
+
};
|
|
14737
|
+
if (node2.hasAttribute("E")) return invalid5();
|
|
14738
|
+
let raw = (attribute2(node2, "V") ?? "").trim();
|
|
14739
|
+
if (!raw || raw.length > 128) return invalid5();
|
|
14740
|
+
if (BOOLEAN.has(name3)) {
|
|
14741
|
+
if (!["0", "1", "false", "true"].includes(raw)) return invalid5();
|
|
14742
|
+
raw = raw === "true" ? "1" : raw === "false" ? "0" : raw;
|
|
14743
|
+
}
|
|
14744
|
+
try {
|
|
14745
|
+
const value = visioFormulaCachedValue(raw, attribute2(node2, "U"));
|
|
14746
|
+
const length = LENGTH.has(name3) || /^(PageWidth|PageHeight|PageScale|DrawingScale)$/.test(name3);
|
|
14747
|
+
if (!["scalar", ...length ? ["length"] : []].includes(value.unit) || Math.abs(value.value) > 1e9)
|
|
14748
|
+
return invalid5();
|
|
14749
|
+
const formula = attribute2(node2, "F");
|
|
14750
|
+
if (formula !== void 0) {
|
|
14751
|
+
const source = formula.trim();
|
|
14752
|
+
if (/^(true|false)$/i.test(source)) {
|
|
14753
|
+
if ((source.toLowerCase() === "true" ? 1 : 0) !== value.value) return invalid5();
|
|
14754
|
+
} else {
|
|
14755
|
+
if (!source || source === "Inh") return invalid5();
|
|
14756
|
+
const limits = { maxLength: 512, maxNodes: 64, maxDepth: 16, maxSteps: 128 };
|
|
14757
|
+
const analysis = analyzeVisioFormula(source, limits);
|
|
14758
|
+
if (analysis.dynamic || analysis.guarded || analysis.references.length || analysis.unsupportedFunctions.length) {
|
|
14759
|
+
refuse4("dynamic-setting");
|
|
14760
|
+
return void 0;
|
|
14761
|
+
}
|
|
14762
|
+
const evaluated = evaluateVisioFormula(
|
|
14763
|
+
source,
|
|
14764
|
+
() => {
|
|
14765
|
+
throw new Error("Unexpected reference");
|
|
14766
|
+
},
|
|
14767
|
+
limits
|
|
14768
|
+
);
|
|
14769
|
+
if (evaluated.value !== value.value || !["scalar", ...length ? ["length"] : []].includes(evaluated.unit))
|
|
14770
|
+
return invalid5();
|
|
14771
|
+
}
|
|
14772
|
+
}
|
|
14773
|
+
return value.value;
|
|
14774
|
+
} catch {
|
|
14775
|
+
return invalid5();
|
|
14776
|
+
}
|
|
14777
|
+
};
|
|
14778
|
+
const values = /* @__PURE__ */ new Map();
|
|
14779
|
+
for (const name3 of NAMES2) {
|
|
14780
|
+
const nodes = local.get(name3) ?? inherited.get(name3);
|
|
14781
|
+
if (!nodes?.length) continue;
|
|
14782
|
+
if (nodes.length !== 1) continue;
|
|
14783
|
+
const value = read(nodes[0], name3, local.has(name3) ? "local" : "document");
|
|
14784
|
+
if (value !== void 0) values.set(name3, value);
|
|
14785
|
+
}
|
|
14786
|
+
for (const name3 of ["PageWidth", "PageHeight", "PageScale", "DrawingScale"]) {
|
|
14787
|
+
const nodes = local.get(name3);
|
|
14788
|
+
if (!nodes || nodes.length !== 1 || !(read(nodes[0], name3, "local") > 0))
|
|
14789
|
+
refuse4("unusable-drawing-scale");
|
|
14790
|
+
}
|
|
14791
|
+
const setup = {};
|
|
14792
|
+
const paper = values.get("PaperKind");
|
|
14793
|
+
if (paper !== void 0 && Number.isSafeInteger(paper) && paper >= 0 && paper <= 65535)
|
|
14794
|
+
setup.paperKind = paper;
|
|
14795
|
+
else if (paper !== void 0)
|
|
14796
|
+
refuse4(local.has("PaperKind") ? "invalid-local-setting" : "invalid-document-setting");
|
|
14797
|
+
const orientation = values.get("PrintPageOrientation");
|
|
14798
|
+
if (orientation === 0 || orientation === 1 || orientation === 2)
|
|
14799
|
+
setup.printPageOrientation = orientation;
|
|
14800
|
+
else if (orientation !== void 0)
|
|
14801
|
+
refuse4(
|
|
14802
|
+
local.has("PrintPageOrientation") ? "invalid-local-setting" : "invalid-document-setting"
|
|
14803
|
+
);
|
|
14804
|
+
const margins = ["Left", "Right", "Top", "Bottom"].map((side2) => values.get(`Page${side2}Margin`));
|
|
14805
|
+
if (margins.every((n) => n !== void 0 && n >= 0 && n <= 1e3))
|
|
14806
|
+
setup.margins = {
|
|
14807
|
+
left: margins[0],
|
|
14808
|
+
right: margins[1],
|
|
14809
|
+
top: margins[2],
|
|
14810
|
+
bottom: margins[3]
|
|
14811
|
+
};
|
|
14812
|
+
else if (margins.some((n) => n !== void 0 && (n < 0 || n > 1e3)))
|
|
14813
|
+
refuse4("unusable-print-area");
|
|
14814
|
+
for (const [name3, key2] of [
|
|
14815
|
+
["ScaleX", "printZoom"],
|
|
14816
|
+
["ScaleY", "printZoomY"],
|
|
14817
|
+
["PagesX", "printPagesAcross"],
|
|
14818
|
+
["PagesY", "printPagesDown"]
|
|
14819
|
+
]) {
|
|
14820
|
+
const value = values.get(name3);
|
|
14821
|
+
if (value !== void 0) {
|
|
14822
|
+
if ((name3 === "PagesX" || name3 === "PagesY") && (!Number.isSafeInteger(value) || value < 1))
|
|
14823
|
+
refuse4(local.has(name3) ? "invalid-local-setting" : "invalid-document-setting");
|
|
14824
|
+
else setup[key2] = value;
|
|
14825
|
+
}
|
|
14826
|
+
}
|
|
14827
|
+
for (const [name3, key2] of [
|
|
14828
|
+
["OnPage", "printFitToPages"],
|
|
14829
|
+
["CenterX", "printCenterX"],
|
|
14830
|
+
["CenterY", "printCenterY"]
|
|
14831
|
+
]) {
|
|
14832
|
+
const value = values.get(name3);
|
|
14833
|
+
if (value !== void 0) setup[key2] = value === 1;
|
|
14834
|
+
}
|
|
14835
|
+
if (refusal) setup.printCountRefusal = refusal;
|
|
14836
|
+
return setup;
|
|
14837
|
+
}
|
|
14838
|
+
|
|
14668
14839
|
// visio/master-list.ts
|
|
14669
14840
|
var MAX_LISTED_MASTERS = 500;
|
|
14670
14841
|
var PREVIEW_SHAPES = 5e3;
|
|
@@ -15266,6 +15437,11 @@ async function parseVsdx(input, options = {}) {
|
|
|
15266
15437
|
});
|
|
15267
15438
|
const rootStyle = styles.get("0");
|
|
15268
15439
|
if (rootStyle?.attributes.get("NameU") === "No Style") resources.rootSheet = rootStyle.sheet;
|
|
15440
|
+
const printStyleGroups = children2(documentRoot, "StyleSheets");
|
|
15441
|
+
const readPrintSettings = createVisioPrintSettingsReader(
|
|
15442
|
+
children2(documentRoot, "DocumentSheet"),
|
|
15443
|
+
printStyleGroups.length === 1 ? children2(printStyleGroups[0], "StyleSheet").filter((node2) => attribute2(node2, "ID") === "0") : []
|
|
15444
|
+
);
|
|
15269
15445
|
const masters = /* @__PURE__ */ new Map();
|
|
15270
15446
|
const masterRecords = [];
|
|
15271
15447
|
const mastersPart = await related(pkg, documentPart2, "masters", false);
|
|
@@ -15429,7 +15605,17 @@ async function parseVsdx(input, options = {}) {
|
|
|
15429
15605
|
const value = number(sheet.cells, name3, Number.NaN, localReport);
|
|
15430
15606
|
if (Number.isSafeInteger(value) && value >= 0 && value <= 255) pageModes[key2] = value;
|
|
15431
15607
|
}
|
|
15432
|
-
const
|
|
15608
|
+
const { paperKind, printPageOrientation, margins, printZoom, ...countMetadata } = readPrintSettings(children2(page, "PageSheet"));
|
|
15609
|
+
const pageSetup = {
|
|
15610
|
+
...readVisioPageSetup(sheet.cells),
|
|
15611
|
+
...countMetadata,
|
|
15612
|
+
printCountSettings: {
|
|
15613
|
+
...paperKind === void 0 ? {} : { paperKind },
|
|
15614
|
+
...printPageOrientation === void 0 ? {} : { printPageOrientation },
|
|
15615
|
+
...margins === void 0 ? {} : { margins },
|
|
15616
|
+
...printZoom === void 0 ? {} : { printZoom }
|
|
15617
|
+
}
|
|
15618
|
+
};
|
|
15433
15619
|
const layout = readVisioPageLayout(sheet.cells);
|
|
15434
15620
|
for (const connection of connectors)
|
|
15435
15621
|
if (!seen.has(connection.fromShapeId) || !seen.has(connection.toShapeId))
|
|
@@ -15528,15 +15714,19 @@ var VISIO_PAPER_SIZES = Object.freeze([
|
|
|
15528
15714
|
function visioPaperSize(paperKind) {
|
|
15529
15715
|
return VISIO_PAPER_SIZES.find((item) => item.paperKind === paperKind);
|
|
15530
15716
|
}
|
|
15717
|
+
function visioOrientedPaperSize(paper, landscape) {
|
|
15718
|
+
const short = Math.min(paper.width, paper.height), long = Math.max(paper.width, paper.height);
|
|
15719
|
+
return { width: landscape ? long : short, height: landscape ? short : long };
|
|
15720
|
+
}
|
|
15531
15721
|
function visioPrintTile(page, paper = page.pageSetup?.paperKind === void 0 ? void 0 : visioPaperSize(page.pageSetup.paperKind)) {
|
|
15532
15722
|
if (!paper) return void 0;
|
|
15533
15723
|
const setup = page.pageSetup;
|
|
15534
15724
|
const landscape = setup?.printPageOrientation === 2 || setup?.printPageOrientation !== 1 && page.width > page.height;
|
|
15535
|
-
const
|
|
15725
|
+
const oriented = visioOrientedPaperSize(paper, landscape);
|
|
15536
15726
|
const margins = setup?.margins ?? { left: 0, right: 0, top: 0, bottom: 0 };
|
|
15537
15727
|
const zoom = setup?.printZoom ?? 1;
|
|
15538
|
-
const width = (
|
|
15539
|
-
const height = (
|
|
15728
|
+
const width = (oriented.width - margins.left - margins.right) / zoom;
|
|
15729
|
+
const height = (oriented.height - margins.top - margins.bottom) / zoom;
|
|
15540
15730
|
return width > 0.01 && height > 0.01 ? { width, height } : void 0;
|
|
15541
15731
|
}
|
|
15542
15732
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../../xlsx/ui/ribbon/parts.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,aAAa,GACtB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAClF;
|
|
1
|
+
{"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../../xlsx/ui/ribbon/parts.ts"],"names":[],"mappings":"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"}
|