pptx-react-viewer 3.15.0 → 3.16.1
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/CHANGELOG.md +44 -0
- package/dist/{AiChatPanel-7CWOJ3PS.js → AiChatPanel-BUKJCMUY.js} +24 -24
- package/dist/AiChatPanel-BUKJCMUY.js.br +0 -0
- package/dist/AiChatPanel-BUKJCMUY.js.gz +0 -0
- package/dist/{AiChatPanel-TBIAQSZ7.mjs → AiChatPanel-US56QZBD.mjs} +3 -3
- package/dist/AiChatPanel-US56QZBD.mjs.br +0 -0
- package/dist/AiChatPanel-US56QZBD.mjs.gz +0 -0
- package/dist/{Area3DChartScene-6FFBYPHF.mjs → Area3DChartScene-6E4QEVTU.mjs} +1 -1
- package/dist/Area3DChartScene-6E4QEVTU.mjs.br +0 -0
- package/dist/Area3DChartScene-6E4QEVTU.mjs.gz +0 -0
- package/dist/{Area3DChartScene-ZJYR6K66.js → Area3DChartScene-APGQOK5A.js} +2 -2
- package/dist/{Area3DChartScene-ZJYR6K66.js.br → Area3DChartScene-APGQOK5A.js.br} +0 -0
- package/dist/Area3DChartScene-APGQOK5A.js.gz +0 -0
- package/dist/{Bar3DChartScene-42MWINQX.mjs → Bar3DChartScene-5GRGZFE4.mjs} +1 -1
- package/dist/Bar3DChartScene-5GRGZFE4.mjs.br +0 -0
- package/dist/Bar3DChartScene-5GRGZFE4.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-JP3BXEZW.js → Bar3DChartScene-F4B5TNJR.js} +2 -2
- package/dist/{Bar3DChartScene-JP3BXEZW.js.br → Bar3DChartScene-F4B5TNJR.js.br} +0 -0
- package/dist/Bar3DChartScene-F4B5TNJR.js.gz +0 -0
- package/dist/{Line3DChartScene-YVCSJMWK.mjs → Line3DChartScene-2VRLE5RI.mjs} +1 -1
- package/dist/Line3DChartScene-2VRLE5RI.mjs.br +0 -0
- package/dist/Line3DChartScene-2VRLE5RI.mjs.gz +0 -0
- package/dist/{Line3DChartScene-JK3AELXZ.js → Line3DChartScene-6FUMMX2T.js} +2 -2
- package/dist/{Line3DChartScene-JK3AELXZ.js.br → Line3DChartScene-6FUMMX2T.js.br} +0 -0
- package/dist/Line3DChartScene-6FUMMX2T.js.gz +0 -0
- package/dist/{Model3DScene-N6UIMN7T.js → Model3DScene-2MGI3CB6.js} +2 -2
- package/dist/Model3DScene-2MGI3CB6.js.br +0 -0
- package/dist/Model3DScene-2MGI3CB6.js.gz +0 -0
- package/dist/{Model3DScene-OXWSYHHK.mjs → Model3DScene-TCIKWJ7R.mjs} +1 -1
- package/dist/{Model3DScene-OXWSYHHK.mjs.br → Model3DScene-TCIKWJ7R.mjs.br} +0 -0
- package/dist/Model3DScene-TCIKWJ7R.mjs.gz +0 -0
- package/dist/{PieChart3DScene-XK4ETZJC.mjs → PieChart3DScene-O5NZKI4T.mjs} +1 -1
- package/dist/{PieChart3DScene-XK4ETZJC.mjs.br → PieChart3DScene-O5NZKI4T.mjs.br} +0 -0
- package/dist/PieChart3DScene-O5NZKI4T.mjs.gz +0 -0
- package/dist/{PieChart3DScene-Q2Z3ECL4.js → PieChart3DScene-OFZEEZRO.js} +2 -2
- package/dist/{PieChart3DScene-Q2Z3ECL4.js.br → PieChart3DScene-OFZEEZRO.js.br} +0 -0
- package/dist/PieChart3DScene-OFZEEZRO.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-ULBUIF7T.js → SurfaceChart3DScene-EK7KFNUQ.js} +2 -2
- package/dist/{SurfaceChart3DScene-ULBUIF7T.js.br → SurfaceChart3DScene-EK7KFNUQ.js.br} +0 -0
- package/dist/SurfaceChart3DScene-EK7KFNUQ.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-KNWMKMOL.mjs → SurfaceChart3DScene-WXPQGMT3.mjs} +1 -1
- package/dist/SurfaceChart3DScene-WXPQGMT3.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-WXPQGMT3.mjs.gz +0 -0
- package/dist/{chunk-YNTZCMRI.mjs → chunk-2DZJJ3VO.mjs} +1145 -435
- package/dist/chunk-2DZJJ3VO.mjs.br +0 -0
- package/dist/chunk-2DZJJ3VO.mjs.gz +0 -0
- package/dist/{chunk-GLY4OPMY.js → chunk-2J64KPXY.js} +167 -167
- package/dist/chunk-2J64KPXY.js.br +0 -0
- package/dist/chunk-2J64KPXY.js.gz +0 -0
- package/dist/{chunk-C4Q4WYAJ.mjs → chunk-BDQBJ3AM.mjs} +12 -34
- package/dist/chunk-BDQBJ3AM.mjs.br +0 -0
- package/dist/chunk-BDQBJ3AM.mjs.gz +0 -0
- package/dist/{chunk-VVJTEFGP.js → chunk-C553GQRH.js} +5 -5
- package/dist/chunk-C553GQRH.js.br +0 -0
- package/dist/chunk-C553GQRH.js.gz +0 -0
- package/dist/{chunk-Q6CSZ7VM.js → chunk-CPWFKDGB.js} +1292 -1292
- package/dist/chunk-CPWFKDGB.js.br +0 -0
- package/dist/chunk-CPWFKDGB.js.gz +0 -0
- package/dist/{chunk-6547ZWC7.mjs → chunk-GQVOQPNT.mjs} +15 -15
- package/dist/chunk-GQVOQPNT.mjs.br +0 -0
- package/dist/chunk-GQVOQPNT.mjs.gz +0 -0
- package/dist/{chunk-5KAMDV37.js → chunk-LDFWF2KT.js} +1147 -439
- package/dist/chunk-LDFWF2KT.js.br +0 -0
- package/dist/chunk-LDFWF2KT.js.gz +0 -0
- package/dist/{chunk-LAB7WX2N.js → chunk-Q2EGTNCU.js} +456 -478
- package/dist/chunk-Q2EGTNCU.js.br +0 -0
- package/dist/chunk-Q2EGTNCU.js.gz +0 -0
- package/dist/{chunk-AT4BJKON.mjs → chunk-UISMOSNU.mjs} +1 -1
- package/dist/chunk-UISMOSNU.mjs.br +0 -0
- package/dist/chunk-UISMOSNU.mjs.gz +0 -0
- package/dist/{chunk-J7Q7AGN7.mjs → chunk-VK3ASDDP.mjs} +1 -1
- package/dist/chunk-VK3ASDDP.mjs.br +0 -0
- package/dist/chunk-VK3ASDDP.mjs.gz +0 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +45 -45
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +2 -0
- package/dist/internals.js +78 -78
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.d.ts +2 -0
- package/dist/viewer/index.js +26 -26
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +5 -5
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +2 -2
- package/dist/AiChatPanel-7CWOJ3PS.js.br +0 -0
- package/dist/AiChatPanel-7CWOJ3PS.js.gz +0 -0
- package/dist/AiChatPanel-TBIAQSZ7.mjs.br +0 -0
- package/dist/AiChatPanel-TBIAQSZ7.mjs.gz +0 -0
- package/dist/Area3DChartScene-6FFBYPHF.mjs.br +0 -0
- package/dist/Area3DChartScene-6FFBYPHF.mjs.gz +0 -0
- package/dist/Area3DChartScene-ZJYR6K66.js.gz +0 -0
- package/dist/Bar3DChartScene-42MWINQX.mjs.br +0 -0
- package/dist/Bar3DChartScene-42MWINQX.mjs.gz +0 -0
- package/dist/Bar3DChartScene-JP3BXEZW.js.gz +0 -0
- package/dist/Line3DChartScene-JK3AELXZ.js.gz +0 -0
- package/dist/Line3DChartScene-YVCSJMWK.mjs.br +0 -0
- package/dist/Line3DChartScene-YVCSJMWK.mjs.gz +0 -0
- package/dist/Model3DScene-N6UIMN7T.js.br +0 -0
- package/dist/Model3DScene-N6UIMN7T.js.gz +0 -0
- package/dist/Model3DScene-OXWSYHHK.mjs.gz +0 -0
- package/dist/PieChart3DScene-Q2Z3ECL4.js.gz +0 -0
- package/dist/PieChart3DScene-XK4ETZJC.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-KNWMKMOL.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-KNWMKMOL.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-ULBUIF7T.js.gz +0 -0
- package/dist/chunk-5KAMDV37.js.br +0 -0
- package/dist/chunk-5KAMDV37.js.gz +0 -0
- package/dist/chunk-6547ZWC7.mjs.br +0 -0
- package/dist/chunk-6547ZWC7.mjs.gz +0 -0
- package/dist/chunk-AT4BJKON.mjs.br +0 -0
- package/dist/chunk-AT4BJKON.mjs.gz +0 -0
- package/dist/chunk-C4Q4WYAJ.mjs.br +0 -0
- package/dist/chunk-C4Q4WYAJ.mjs.gz +0 -0
- package/dist/chunk-GLY4OPMY.js.br +0 -0
- package/dist/chunk-GLY4OPMY.js.gz +0 -0
- package/dist/chunk-J7Q7AGN7.mjs.br +0 -0
- package/dist/chunk-J7Q7AGN7.mjs.gz +0 -0
- package/dist/chunk-LAB7WX2N.js.br +0 -0
- package/dist/chunk-LAB7WX2N.js.gz +0 -0
- package/dist/chunk-Q6CSZ7VM.js.br +0 -0
- package/dist/chunk-Q6CSZ7VM.js.gz +0 -0
- package/dist/chunk-VVJTEFGP.js.br +0 -0
- package/dist/chunk-VVJTEFGP.js.gz +0 -0
- package/dist/chunk-YNTZCMRI.mjs.br +0 -0
- package/dist/chunk-YNTZCMRI.mjs.gz +0 -0
|
@@ -27567,20 +27567,20 @@ function ensureCell(sheetData, ref) {
|
|
|
27567
27567
|
}
|
|
27568
27568
|
sheetData["row"] = rows;
|
|
27569
27569
|
}
|
|
27570
|
-
const
|
|
27571
|
-
let cell =
|
|
27570
|
+
const cells2 = toArray(row["c"]);
|
|
27571
|
+
let cell = cells2.find((c) => String(c["@_r"] ?? "") === ref);
|
|
27572
27572
|
if (!cell) {
|
|
27573
27573
|
cell = { "@_r": ref };
|
|
27574
|
-
const insertAt3 =
|
|
27574
|
+
const insertAt3 = cells2.findIndex((c) => {
|
|
27575
27575
|
const existingAddress = parseCellAddress(String(c["@_r"] ?? ""));
|
|
27576
27576
|
return existingAddress !== void 0 && existingAddress.col > address.col;
|
|
27577
27577
|
});
|
|
27578
27578
|
if (insertAt3 < 0) {
|
|
27579
|
-
|
|
27579
|
+
cells2.push(cell);
|
|
27580
27580
|
} else {
|
|
27581
|
-
|
|
27581
|
+
cells2.splice(insertAt3, 0, cell);
|
|
27582
27582
|
}
|
|
27583
|
-
row["c"] =
|
|
27583
|
+
row["c"] = cells2;
|
|
27584
27584
|
}
|
|
27585
27585
|
return cell;
|
|
27586
27586
|
}
|
|
@@ -28448,6 +28448,9 @@ async function writeOleDocumentParagraphEdit(docxBytes, paragraphIndex, text22)
|
|
|
28448
28448
|
};
|
|
28449
28449
|
const pPr = xmlChild(paragraph, "w:pPr");
|
|
28450
28450
|
for (const key2 of Object.keys(paragraph)) {
|
|
28451
|
+
if (key2 === "__proto__" || key2 === "constructor" || key2 === "prototype") {
|
|
28452
|
+
continue;
|
|
28453
|
+
}
|
|
28451
28454
|
delete paragraph[key2];
|
|
28452
28455
|
}
|
|
28453
28456
|
if (pPr) {
|
|
@@ -33231,7 +33234,7 @@ var init_smartart_layout_interpreter_choose_composite = __esm({
|
|
|
33231
33234
|
init_smartart_layout_interpreter_choose_branch();
|
|
33232
33235
|
}
|
|
33233
33236
|
});
|
|
33234
|
-
function branchAlg(raw, nodeCount, context) {
|
|
33237
|
+
function branchAlg(raw, nodeCount, context, allowedTypes = CHOOSE_ALG_TYPES) {
|
|
33235
33238
|
if (!raw) {
|
|
33236
33239
|
return void 0;
|
|
33237
33240
|
}
|
|
@@ -33255,7 +33258,7 @@ function branchAlg(raw, nodeCount, context) {
|
|
|
33255
33258
|
if (name === "alg") {
|
|
33256
33259
|
for (const candidate of Array.isArray(entry2) ? entry2 : [entry2]) {
|
|
33257
33260
|
const type = candidate && typeof candidate === "object" ? String(candidate["@_type"] ?? "") : "";
|
|
33258
|
-
if (
|
|
33261
|
+
if (allowedTypes.has(type)) {
|
|
33259
33262
|
found = { type, raw: candidate };
|
|
33260
33263
|
return;
|
|
33261
33264
|
}
|
|
@@ -33336,6 +33339,24 @@ function chooseAlgorithm(node, nodeCount, context = {}) {
|
|
|
33336
33339
|
}
|
|
33337
33340
|
return void 0;
|
|
33338
33341
|
}
|
|
33342
|
+
function chooseAlgorithmOfType(node, nodeCount, allowedTypes, context = {}) {
|
|
33343
|
+
if (!node.choose || node.choose.length === 0) {
|
|
33344
|
+
return void 0;
|
|
33345
|
+
}
|
|
33346
|
+
for (const choose of node.choose) {
|
|
33347
|
+
const found = branchAlg(
|
|
33348
|
+
activeBranch(choose, nodeCount, context),
|
|
33349
|
+
nodeCount,
|
|
33350
|
+
context,
|
|
33351
|
+
allowedTypes
|
|
33352
|
+
);
|
|
33353
|
+
if (found) {
|
|
33354
|
+
const parameters = parseBranchAlgParams(found.raw);
|
|
33355
|
+
return { type: found.type, ...parameters ? { parameters } : {} };
|
|
33356
|
+
}
|
|
33357
|
+
}
|
|
33358
|
+
return void 0;
|
|
33359
|
+
}
|
|
33339
33360
|
var CHOOSE_ALG_TYPES;
|
|
33340
33361
|
var init_smartart_layout_interpreter_choose_algorithm = __esm({
|
|
33341
33362
|
"src/core/utils/smartart-layout-interpreter-choose-algorithm.ts"() {
|
|
@@ -34425,6 +34446,41 @@ var init_smartart_constraint_declared_by = __esm({
|
|
|
34425
34446
|
init_smartart_constraint_solver();
|
|
34426
34447
|
}
|
|
34427
34448
|
});
|
|
34449
|
+
function readAlgorithmAspectRatio(node) {
|
|
34450
|
+
const raw = node?.algorithm?.parameters?.find((param) => param.type === "ar")?.value;
|
|
34451
|
+
if (raw === void 0) {
|
|
34452
|
+
return void 0;
|
|
34453
|
+
}
|
|
34454
|
+
const ar = Number.parseFloat(raw);
|
|
34455
|
+
return Number.isFinite(ar) && ar > 0 ? ar : void 0;
|
|
34456
|
+
}
|
|
34457
|
+
function fitAspectRatioBox(box, ar) {
|
|
34458
|
+
if (ar === void 0 || box.height <= 0 || box.width <= 0) {
|
|
34459
|
+
return box;
|
|
34460
|
+
}
|
|
34461
|
+
const boxAr = box.width / box.height;
|
|
34462
|
+
if (boxAr > ar) {
|
|
34463
|
+
return { width: box.height * ar, height: box.height };
|
|
34464
|
+
}
|
|
34465
|
+
if (boxAr < ar) {
|
|
34466
|
+
return { width: box.width, height: box.width / ar };
|
|
34467
|
+
}
|
|
34468
|
+
return box;
|
|
34469
|
+
}
|
|
34470
|
+
function isUserSizeHubRole(role, index) {
|
|
34471
|
+
for (const entries of index.entries.values()) {
|
|
34472
|
+
for (const { constraint } of entries) {
|
|
34473
|
+
if (constraint.type === "userS" && constraint.referenceForName === role) {
|
|
34474
|
+
return true;
|
|
34475
|
+
}
|
|
34476
|
+
}
|
|
34477
|
+
}
|
|
34478
|
+
return false;
|
|
34479
|
+
}
|
|
34480
|
+
var init_smartart_layout_interpreter_composite_aspect = __esm({
|
|
34481
|
+
"src/core/utils/smartart-layout-interpreter-composite-aspect.ts"() {
|
|
34482
|
+
}
|
|
34483
|
+
});
|
|
34428
34484
|
function finiteFactor(value) {
|
|
34429
34485
|
return typeof value === "number" && Number.isFinite(value) && value > 0;
|
|
34430
34486
|
}
|
|
@@ -34442,7 +34498,8 @@ function resolveHubToNodeRatioViaUserSize(ringItem, arrangerConstraints, index,
|
|
|
34442
34498
|
if (userSizeDecl) {
|
|
34443
34499
|
return {
|
|
34444
34500
|
hubName: userSizeDecl.referenceForName,
|
|
34445
|
-
factor: userSizeDecl.factor
|
|
34501
|
+
factor: userSizeDecl.factor,
|
|
34502
|
+
viaUserSize: true
|
|
34446
34503
|
};
|
|
34447
34504
|
}
|
|
34448
34505
|
if (index && declaringRoleChain && declaringRoleChain.length > 0) {
|
|
@@ -34455,15 +34512,27 @@ function resolveHubToNodeRatioViaUserSize(ringItem, arrangerConstraints, index,
|
|
|
34455
34512
|
if (ancestorDecl) {
|
|
34456
34513
|
return {
|
|
34457
34514
|
hubName: ancestorDecl.constraint.referenceForName,
|
|
34458
|
-
factor: ancestorDecl.constraint.factor
|
|
34515
|
+
factor: ancestorDecl.constraint.factor,
|
|
34516
|
+
viaUserSize: true
|
|
34459
34517
|
};
|
|
34460
34518
|
}
|
|
34461
34519
|
}
|
|
34462
34520
|
return void 0;
|
|
34463
34521
|
}
|
|
34522
|
+
function resolveViaUserSizeNodeWidthPx(ratio, index, box, sizeBox) {
|
|
34523
|
+
const hubW = resolveConstraint(index, ratio.hubName, "w");
|
|
34524
|
+
if (hubW === void 0) {
|
|
34525
|
+
return void 0;
|
|
34526
|
+
}
|
|
34527
|
+
const hubExtent = isUserSizeHubRole(ratio.hubName, index) ? sizeBox.width : box.width;
|
|
34528
|
+
const side = ratio.factor * hubW * hubExtent;
|
|
34529
|
+
return side > 0 ? side : void 0;
|
|
34530
|
+
}
|
|
34464
34531
|
var init_smartart_layout_interpreter_cycle_hub_ratio_usersize = __esm({
|
|
34465
34532
|
"src/core/utils/smartart-layout-interpreter-cycle-hub-ratio-usersize.ts"() {
|
|
34466
34533
|
init_smartart_constraint_declared_by();
|
|
34534
|
+
init_smartart_constraint_solver();
|
|
34535
|
+
init_smartart_layout_interpreter_composite_aspect();
|
|
34467
34536
|
}
|
|
34468
34537
|
});
|
|
34469
34538
|
function resolveHubToNodeRatio(ringItem, arrangerConstraints, index, arrangerRuleCandidates, satelliteCount, declaringRoleChain) {
|
|
@@ -34508,12 +34577,12 @@ function resolveHubGapRatio(itemName, hubRatio, arrangerConstraints) {
|
|
|
34508
34577
|
return void 0;
|
|
34509
34578
|
}
|
|
34510
34579
|
const sp = (arrangerConstraints ?? []).find(
|
|
34511
|
-
(c) => c.type === "sp" && typeof c.factor === "number"
|
|
34580
|
+
(c) => c.type === "sp" && typeof c.factor === "number"
|
|
34512
34581
|
);
|
|
34513
34582
|
if (!sp || typeof sp.factor !== "number") {
|
|
34514
34583
|
return void 0;
|
|
34515
34584
|
}
|
|
34516
|
-
if (sp.referenceForName === itemName) {
|
|
34585
|
+
if (sp.referenceForName === void 0 || sp.referenceForName === itemName) {
|
|
34517
34586
|
return sp.factor;
|
|
34518
34587
|
}
|
|
34519
34588
|
if (sp.referenceForName === hubRatio.hubName) {
|
|
@@ -36168,6 +36237,20 @@ var init_smartart_layout_interpreter_cycle_fontfit = __esm({
|
|
|
36168
36237
|
init_smartart_layout_item_font_tier();
|
|
36169
36238
|
}
|
|
36170
36239
|
});
|
|
36240
|
+
function resolveHubExpansion(nodes, plan, hubAlreadyStripped, hubRatio, hubGapRatio, absoluteHubGapPx, index, box, sizeBox) {
|
|
36241
|
+
const hasHub = !hubAlreadyStripped && (!hubRatio || hubRatio.viaUserSize === true) && algorithmParam(plan.node, "ctrShpMap") === "fNode" && nodes.length > 0;
|
|
36242
|
+
const hubNode = hasHub ? nodes[0] : void 0;
|
|
36243
|
+
const ringNodes = hasHub ? nodes.slice(1) : nodes;
|
|
36244
|
+
const hubGeometry = hubRatio && (hubGapRatio !== void 0 || absoluteHubGapPx !== void 0) ? { factor: hubRatio.viaUserSize ? 1 : hubRatio.factor, gapRatio: hubGapRatio ?? 0 } : void 0;
|
|
36245
|
+
const knownNodeWidthPx = ringNodes.length === 1 && hubRatio?.viaUserSize ? resolveViaUserSizeNodeWidthPx(hubRatio, index, box, sizeBox ?? box) : void 0;
|
|
36246
|
+
return { hasHub, hubNode, ringNodes, hubGeometry, knownNodeWidthPx };
|
|
36247
|
+
}
|
|
36248
|
+
var init_smartart_layout_interpreter_cycle_hub_detect = __esm({
|
|
36249
|
+
"src/core/utils/smartart-layout-interpreter-cycle-hub-detect.ts"() {
|
|
36250
|
+
init_smartart_layout_interpreter_cycle_hub_ratio_usersize();
|
|
36251
|
+
init_smartart_layout_interpreter_model();
|
|
36252
|
+
}
|
|
36253
|
+
});
|
|
36171
36254
|
function computeRingBulgeBounds(xs, ys, halfW, halfH, sibTransBulgeRatio) {
|
|
36172
36255
|
const minX = Math.min(...xs) - halfW;
|
|
36173
36256
|
const maxX = Math.max(...xs) + halfW;
|
|
@@ -36191,6 +36274,32 @@ var init_smartart_layout_interpreter_cycle_ring_bulge = __esm({
|
|
|
36191
36274
|
"src/core/utils/smartart-layout-interpreter-cycle-ring-bulge.ts"() {
|
|
36192
36275
|
}
|
|
36193
36276
|
});
|
|
36277
|
+
function nestedHubSatelliteRingLayout(stAngDeg, heightOverWidth, box, hubGeometry, nodeWidthPx) {
|
|
36278
|
+
const boxCentre = { x: box.width / 2, y: box.height / 2 };
|
|
36279
|
+
const halfH = Math.max(0.01, heightOverWidth) / 2;
|
|
36280
|
+
const hubHalfWidthNat = 0.5 / Math.max(1e-6, hubGeometry.factor);
|
|
36281
|
+
const r0Nat = hubHalfWidthNat + Math.max(0, hubGeometry.gapRatio) + 0.5;
|
|
36282
|
+
const angleRad = (stAngDeg - 90) * DEG_TO_RAD2;
|
|
36283
|
+
const r0Px = r0Nat * nodeWidthPx;
|
|
36284
|
+
const satellite = {
|
|
36285
|
+
x: boxCentre.x + r0Px * Math.cos(angleRad),
|
|
36286
|
+
y: boxCentre.y + r0Px * Math.sin(angleRad)
|
|
36287
|
+
};
|
|
36288
|
+
return {
|
|
36289
|
+
centers: [satellite],
|
|
36290
|
+
nodeWidth: nodeWidthPx,
|
|
36291
|
+
nodeHeight: nodeWidthPx * Math.max(0.01, heightOverWidth),
|
|
36292
|
+
hubCenter: boxCentre,
|
|
36293
|
+
hubHalfWidth: hubHalfWidthNat * nodeWidthPx,
|
|
36294
|
+
hubHalfHeight: hubHalfWidthNat * (halfH / 0.5) * nodeWidthPx
|
|
36295
|
+
};
|
|
36296
|
+
}
|
|
36297
|
+
var DEG_TO_RAD2;
|
|
36298
|
+
var init_smartart_layout_interpreter_cycle_ring_nested_hub = __esm({
|
|
36299
|
+
"src/core/utils/smartart-layout-interpreter-cycle-ring-nested-hub.ts"() {
|
|
36300
|
+
DEG_TO_RAD2 = Math.PI / 180;
|
|
36301
|
+
}
|
|
36302
|
+
});
|
|
36194
36303
|
function resolveRingAxisOffset(dimension, boundSize, scale2, values) {
|
|
36195
36304
|
const span = Math.max(1e-9, Math.max(...values) - Math.min(...values));
|
|
36196
36305
|
const epsilon = span * TIE_EPSILON_FRACTION;
|
|
@@ -36238,14 +36347,23 @@ function degenerateRingLayout(n, heightOverWidth, box) {
|
|
|
36238
36347
|
}
|
|
36239
36348
|
return void 0;
|
|
36240
36349
|
}
|
|
36241
|
-
function ringLayoutForGapFactor(n, stAngDeg, spanDeg, gapFactor, heightOverWidth, box, hubGeometry, sibTransBulgeRatio) {
|
|
36350
|
+
function ringLayoutForGapFactor(n, stAngDeg, spanDeg, gapFactor, heightOverWidth, box, hubGeometry, sibTransBulgeRatio, knownNodeWidthPx) {
|
|
36351
|
+
if (n === 1 && hubGeometry && knownNodeWidthPx !== void 0 && knownNodeWidthPx > 0) {
|
|
36352
|
+
return nestedHubSatelliteRingLayout(
|
|
36353
|
+
stAngDeg,
|
|
36354
|
+
heightOverWidth,
|
|
36355
|
+
box,
|
|
36356
|
+
hubGeometry,
|
|
36357
|
+
knownNodeWidthPx
|
|
36358
|
+
);
|
|
36359
|
+
}
|
|
36242
36360
|
const degenerate = degenerateRingLayout(n, heightOverWidth, box);
|
|
36243
36361
|
if (degenerate) {
|
|
36244
36362
|
return degenerate;
|
|
36245
36363
|
}
|
|
36246
36364
|
const full = Math.abs(spanDeg) >= 360;
|
|
36247
36365
|
const step = full ? spanDeg / n : spanDeg / (n - 1);
|
|
36248
|
-
const halfStepRad = Math.abs(step) *
|
|
36366
|
+
const halfStepRad = Math.abs(step) * DEG_TO_RAD3 / 2;
|
|
36249
36367
|
const clampedGap = Math.max(0, gapFactor);
|
|
36250
36368
|
const sinHalf = Math.sin(halfStepRad);
|
|
36251
36369
|
let r0 = sinHalf > 1e-6 ? (1 + clampedGap) / (2 * sinHalf) : 0;
|
|
@@ -36255,7 +36373,7 @@ function ringLayoutForGapFactor(n, stAngDeg, spanDeg, gapFactor, heightOverWidth
|
|
|
36255
36373
|
r0 = Math.max(r0, r0Hub);
|
|
36256
36374
|
}
|
|
36257
36375
|
const natural = Array.from({ length: n }, (_, i2) => {
|
|
36258
|
-
const angleRad = (stAngDeg + i2 * step - 90) *
|
|
36376
|
+
const angleRad = (stAngDeg + i2 * step - 90) * DEG_TO_RAD3;
|
|
36259
36377
|
return { x: r0 * Math.cos(angleRad), y: r0 * Math.sin(angleRad) };
|
|
36260
36378
|
});
|
|
36261
36379
|
const halfW = 0.5;
|
|
@@ -36283,10 +36401,13 @@ function ringLayoutForGapFactor(n, stAngDeg, spanDeg, gapFactor, heightOverWidth
|
|
|
36283
36401
|
hubHalfHeight: naturalHubRadius * scaleY
|
|
36284
36402
|
};
|
|
36285
36403
|
}
|
|
36286
|
-
function computeCycleRingLayout(n, stAngDeg, spanDeg, minGapRatio, heightOverWidth, box, absoluteGapPx, hubGeometry, absoluteHubGapPx, sibTransBulgeRatio) {
|
|
36287
|
-
const
|
|
36288
|
-
if (
|
|
36289
|
-
|
|
36404
|
+
function computeCycleRingLayout(n, stAngDeg, spanDeg, minGapRatio, heightOverWidth, box, absoluteGapPx, hubGeometry, absoluteHubGapPx, sibTransBulgeRatio, knownNodeWidthPx) {
|
|
36405
|
+
const nestedHubSatellite = n === 1 && hubGeometry && knownNodeWidthPx !== void 0 && knownNodeWidthPx > 0;
|
|
36406
|
+
if (!nestedHubSatellite) {
|
|
36407
|
+
const degenerate = degenerateRingLayout(n, heightOverWidth, box);
|
|
36408
|
+
if (degenerate) {
|
|
36409
|
+
return degenerate;
|
|
36410
|
+
}
|
|
36290
36411
|
}
|
|
36291
36412
|
const needsGapIteration = absoluteGapPx !== void 0 && absoluteGapPx > 0;
|
|
36292
36413
|
const needsHubGapIteration = absoluteHubGapPx !== void 0 && absoluteHubGapPx > 0 && hubGeometry !== void 0;
|
|
@@ -36299,7 +36420,8 @@ function computeCycleRingLayout(n, stAngDeg, spanDeg, minGapRatio, heightOverWid
|
|
|
36299
36420
|
heightOverWidth,
|
|
36300
36421
|
box,
|
|
36301
36422
|
hubGeometry,
|
|
36302
|
-
sibTransBulgeRatio
|
|
36423
|
+
sibTransBulgeRatio,
|
|
36424
|
+
knownNodeWidthPx
|
|
36303
36425
|
);
|
|
36304
36426
|
}
|
|
36305
36427
|
let gapFactor = minGapRatio;
|
|
@@ -36338,15 +36460,16 @@ function computeCycleRingLayout(n, stAngDeg, spanDeg, minGapRatio, heightOverWid
|
|
|
36338
36460
|
sibTransBulgeRatio
|
|
36339
36461
|
);
|
|
36340
36462
|
}
|
|
36341
|
-
var
|
|
36463
|
+
var DEG_TO_RAD3;
|
|
36342
36464
|
var init_smartart_layout_interpreter_cycle_ring = __esm({
|
|
36343
36465
|
"src/core/utils/smartart-layout-interpreter-cycle-ring.ts"() {
|
|
36344
36466
|
init_smartart_layout_interpreter_cycle_ring_bulge();
|
|
36467
|
+
init_smartart_layout_interpreter_cycle_ring_nested_hub();
|
|
36345
36468
|
init_smartart_layout_interpreter_cycle_ring_offset();
|
|
36346
|
-
|
|
36469
|
+
DEG_TO_RAD3 = Math.PI / 180;
|
|
36347
36470
|
}
|
|
36348
36471
|
});
|
|
36349
|
-
function arrangeCycle(plan, nodes, box, palette, style, elementId, index = EMPTY_CONSTRAINT_INDEX, hubAlreadyStripped = false, childrenOf, fontName, declaringRoleChain) {
|
|
36472
|
+
function arrangeCycle(plan, nodes, box, palette, style, elementId, index = EMPTY_CONSTRAINT_INDEX, hubAlreadyStripped = false, childrenOf, fontName, declaringRoleChain, sizeBox) {
|
|
36350
36473
|
const { width: w, height: h2 } = box;
|
|
36351
36474
|
const ctx = styleContext(style);
|
|
36352
36475
|
const {
|
|
@@ -36363,13 +36486,20 @@ function arrangeCycle(plan, nodes, box, palette, style, elementId, index = EMPTY
|
|
|
36363
36486
|
hubAlreadyStripped ? nodes.length : void 0,
|
|
36364
36487
|
declaringRoleChain
|
|
36365
36488
|
);
|
|
36366
|
-
const
|
|
36367
|
-
|
|
36368
|
-
|
|
36489
|
+
const { hubNode, ringNodes, hubGeometry, knownNodeWidthPx } = resolveHubExpansion(
|
|
36490
|
+
nodes,
|
|
36491
|
+
plan,
|
|
36492
|
+
hubAlreadyStripped,
|
|
36493
|
+
hubRatio,
|
|
36494
|
+
hubGapRatio,
|
|
36495
|
+
absoluteHubGapPx,
|
|
36496
|
+
index,
|
|
36497
|
+
box,
|
|
36498
|
+
sizeBox
|
|
36499
|
+
);
|
|
36369
36500
|
const n = ringNodes.length;
|
|
36370
36501
|
const startDeg = numericParam(plan.node, "stAng", 0);
|
|
36371
36502
|
const spanDeg = numericParam(plan.node, "spanAng", 360);
|
|
36372
|
-
const hubGeometry = hubRatio && (hubGapRatio !== void 0 || absoluteHubGapPx !== void 0) ? { factor: hubRatio.factor, gapRatio: hubGapRatio ?? 0 } : void 0;
|
|
36373
36503
|
const ring = computeCycleRingLayout(
|
|
36374
36504
|
n,
|
|
36375
36505
|
startDeg,
|
|
@@ -36380,7 +36510,8 @@ function arrangeCycle(plan, nodes, box, palette, style, elementId, index = EMPTY
|
|
|
36380
36510
|
absoluteGapPx,
|
|
36381
36511
|
hubGeometry,
|
|
36382
36512
|
absoluteHubGapPx,
|
|
36383
|
-
sibTransBulgeRatio
|
|
36513
|
+
sibTransBulgeRatio,
|
|
36514
|
+
knownNodeWidthPx
|
|
36384
36515
|
);
|
|
36385
36516
|
const full = Math.abs(spanDeg) >= 360;
|
|
36386
36517
|
const connectorCount = n > 0 ? full ? n : Math.max(0, n - 1) : 0;
|
|
@@ -36449,6 +36580,7 @@ var init_smartart_layout_interpreter_cycle = __esm({
|
|
|
36449
36580
|
init_smartart_layout_interpreter_cycle_constraints();
|
|
36450
36581
|
init_smartart_layout_interpreter_cycle_extension();
|
|
36451
36582
|
init_smartart_layout_interpreter_cycle_fontfit();
|
|
36583
|
+
init_smartart_layout_interpreter_cycle_hub_detect();
|
|
36452
36584
|
init_smartart_layout_interpreter_cycle_ring();
|
|
36453
36585
|
init_smartart_layout_interpreter_model();
|
|
36454
36586
|
init_smartart_layout_interpreter_render();
|
|
@@ -37509,18 +37641,18 @@ function arrangeSnake(plan, nodes, box, palette, style, elementId, index = EMPTY
|
|
|
37509
37641
|
naturalAspect,
|
|
37510
37642
|
cornerInset
|
|
37511
37643
|
);
|
|
37512
|
-
const
|
|
37644
|
+
const cells2 = nodes.map((_node, i2) => snakeCell(i2, dims, flowDir, sameDir, grDir));
|
|
37513
37645
|
const centerIncompleteLines = algorithmParam(plan.node, "off") === "ctr";
|
|
37514
37646
|
const fullLineCount = flowDir === "row" ? dims.cols : dims.rows;
|
|
37515
37647
|
const lineCounts = /* @__PURE__ */ new Map();
|
|
37516
37648
|
if (centerIncompleteLines) {
|
|
37517
|
-
for (const cell of
|
|
37649
|
+
for (const cell of cells2) {
|
|
37518
37650
|
const key2 = flowDir === "row" ? cell.row : cell.col;
|
|
37519
37651
|
lineCounts.set(key2, (lineCounts.get(key2) ?? 0) + 1);
|
|
37520
37652
|
}
|
|
37521
37653
|
}
|
|
37522
37654
|
const renderedNodes = nodes.map((node, i2) => {
|
|
37523
|
-
const { col, row } =
|
|
37655
|
+
const { col, row } = cells2[i2];
|
|
37524
37656
|
let x = INSET + col * (cellW + gapX);
|
|
37525
37657
|
let y = INSET + row * (cellH + gapY);
|
|
37526
37658
|
if (centerIncompleteLines) {
|
|
@@ -37806,41 +37938,6 @@ var init_smartart_layout_interpreter_aux = __esm({
|
|
|
37806
37938
|
INSET2 = 6;
|
|
37807
37939
|
}
|
|
37808
37940
|
});
|
|
37809
|
-
function readAlgorithmAspectRatio(node) {
|
|
37810
|
-
const raw = node?.algorithm?.parameters?.find((param) => param.type === "ar")?.value;
|
|
37811
|
-
if (raw === void 0) {
|
|
37812
|
-
return void 0;
|
|
37813
|
-
}
|
|
37814
|
-
const ar = Number.parseFloat(raw);
|
|
37815
|
-
return Number.isFinite(ar) && ar > 0 ? ar : void 0;
|
|
37816
|
-
}
|
|
37817
|
-
function fitAspectRatioBox(box, ar) {
|
|
37818
|
-
if (ar === void 0 || box.height <= 0 || box.width <= 0) {
|
|
37819
|
-
return box;
|
|
37820
|
-
}
|
|
37821
|
-
const boxAr = box.width / box.height;
|
|
37822
|
-
if (boxAr > ar) {
|
|
37823
|
-
return { width: box.height * ar, height: box.height };
|
|
37824
|
-
}
|
|
37825
|
-
if (boxAr < ar) {
|
|
37826
|
-
return { width: box.width, height: box.width / ar };
|
|
37827
|
-
}
|
|
37828
|
-
return box;
|
|
37829
|
-
}
|
|
37830
|
-
function isUserSizeHubRole(role, index) {
|
|
37831
|
-
for (const entries of index.entries.values()) {
|
|
37832
|
-
for (const { constraint } of entries) {
|
|
37833
|
-
if (constraint.type === "userS" && constraint.referenceForName === role) {
|
|
37834
|
-
return true;
|
|
37835
|
-
}
|
|
37836
|
-
}
|
|
37837
|
-
}
|
|
37838
|
-
return false;
|
|
37839
|
-
}
|
|
37840
|
-
var init_smartart_layout_interpreter_composite_aspect = __esm({
|
|
37841
|
-
"src/core/utils/smartart-layout-interpreter-composite-aspect.ts"() {
|
|
37842
|
-
}
|
|
37843
|
-
});
|
|
37844
37941
|
function resolveOrigin(node, flat) {
|
|
37845
37942
|
const origin = node.forEachOrigin;
|
|
37846
37943
|
if (!origin?.axis || origin.axis.length === 0) {
|
|
@@ -38527,6 +38624,36 @@ var init_smartart_hierarchy_pitch = __esm({
|
|
|
38527
38624
|
GENERATION_MARGIN_RATIO = 0.1675;
|
|
38528
38625
|
}
|
|
38529
38626
|
});
|
|
38627
|
+
function isSquareHeightConstraint(constraints) {
|
|
38628
|
+
const h2 = findConstraint(constraints, "h");
|
|
38629
|
+
return h2?.referenceType === "w" && h2.factor === void 0 && h2.value === void 0 && h2.referenceForName === void 0;
|
|
38630
|
+
}
|
|
38631
|
+
function resolveUserSizeItemBoxPx(wrapper, index, box, sizeBox, declaringRoleChain) {
|
|
38632
|
+
for (const template of wrapper.children ?? []) {
|
|
38633
|
+
if (!isSquareHeightConstraint(template.constraints)) {
|
|
38634
|
+
continue;
|
|
38635
|
+
}
|
|
38636
|
+
const ratio = resolveHubToNodeRatioViaUserSize(
|
|
38637
|
+
template,
|
|
38638
|
+
wrapper.constraints,
|
|
38639
|
+
index,
|
|
38640
|
+
declaringRoleChain
|
|
38641
|
+
);
|
|
38642
|
+
if (!ratio) {
|
|
38643
|
+
continue;
|
|
38644
|
+
}
|
|
38645
|
+
const hubRatio = resolveConstraint(index, ratio.hubName, "w");
|
|
38646
|
+
if (hubRatio === void 0) {
|
|
38647
|
+
continue;
|
|
38648
|
+
}
|
|
38649
|
+
const hubExtent = isUserSizeHubRole(ratio.hubName, index) ? sizeBox.width : box.width;
|
|
38650
|
+
const side = ratio.factor * hubRatio * hubExtent;
|
|
38651
|
+
if (side > 0) {
|
|
38652
|
+
return { width: side, height: side };
|
|
38653
|
+
}
|
|
38654
|
+
}
|
|
38655
|
+
return void 0;
|
|
38656
|
+
}
|
|
38530
38657
|
function childAxisSpec(template, childCount) {
|
|
38531
38658
|
const axis = template.presentationOf?.axis;
|
|
38532
38659
|
if (!axis || axis.length === 0) {
|
|
@@ -38566,7 +38693,7 @@ function collectChildRepeaterItems(wrapper, anchorChildren) {
|
|
|
38566
38693
|
items.sort((a, b) => a.position - b.position);
|
|
38567
38694
|
return items;
|
|
38568
38695
|
}
|
|
38569
|
-
function renderChildRepeaterSlot(wrapperSlot, anchor, anchorIndex, box, absX, absY, childrenOf, ctx) {
|
|
38696
|
+
function renderChildRepeaterSlot(wrapperSlot, anchor, anchorIndex, box, absX, absY, childrenOf, ctx, sizingCtx) {
|
|
38570
38697
|
const anchorChildren = childrenOf.get(anchor.id) ?? [];
|
|
38571
38698
|
const items = collectChildRepeaterItems(wrapperSlot.node, anchorChildren);
|
|
38572
38699
|
if (items.length === 0) {
|
|
@@ -38574,15 +38701,27 @@ function renderChildRepeaterSlot(wrapperSlot, anchor, anchorIndex, box, absX, ab
|
|
|
38574
38701
|
}
|
|
38575
38702
|
const rect22 = resolveSlot(wrapperSlot.dims, box, absX, absY);
|
|
38576
38703
|
const columnWidth = rect22.width / items.length;
|
|
38704
|
+
const userSize = sizingCtx ? resolveUserSizeItemBoxPx(
|
|
38705
|
+
wrapperSlot.node,
|
|
38706
|
+
sizingCtx.index,
|
|
38707
|
+
box,
|
|
38708
|
+
sizingCtx.sizeBox,
|
|
38709
|
+
sizingCtx.declaringRoleChain
|
|
38710
|
+
) : void 0;
|
|
38577
38711
|
return items.map((item, i2) => {
|
|
38578
38712
|
const folded = item.fold ? smartArtDescendantsWithText(item.child, childrenOf) : [];
|
|
38713
|
+
const columnX = rect22.x + columnWidth * i2;
|
|
38714
|
+
const width = userSize ? Math.min(userSize.width, columnWidth) : columnWidth;
|
|
38715
|
+
const height = userSize ? Math.min(userSize.height, rect22.height) : rect22.height;
|
|
38716
|
+
const x = userSize ? columnX + (columnWidth - width) / 2 : columnX;
|
|
38717
|
+
const y = userSize ? rect22.y + (rect22.height - height) / 2 : rect22.y;
|
|
38579
38718
|
const rendered = {
|
|
38580
38719
|
...rectNode({
|
|
38581
38720
|
key: `${ctx.elementId}-comp-child-${item.child.id}-${anchorIndex}-${i2}`,
|
|
38582
|
-
x
|
|
38583
|
-
y
|
|
38584
|
-
width
|
|
38585
|
-
height
|
|
38721
|
+
x,
|
|
38722
|
+
y,
|
|
38723
|
+
width,
|
|
38724
|
+
height,
|
|
38586
38725
|
node: item.child,
|
|
38587
38726
|
index: i2,
|
|
38588
38727
|
total: items.length,
|
|
@@ -38597,8 +38736,12 @@ function renderChildRepeaterSlot(wrapperSlot, anchor, anchorIndex, box, absX, ab
|
|
|
38597
38736
|
}
|
|
38598
38737
|
var init_smartart_layout_interpreter_composite_children = __esm({
|
|
38599
38738
|
"src/core/utils/smartart-layout-interpreter-composite-children.ts"() {
|
|
38739
|
+
init_smartart_constraint_solver();
|
|
38600
38740
|
init_smartart_layout_interpreter_axis_range();
|
|
38741
|
+
init_smartart_layout_interpreter_composite_aspect();
|
|
38601
38742
|
init_smartart_layout_interpreter_composite_slots();
|
|
38743
|
+
init_smartart_layout_interpreter_constraints();
|
|
38744
|
+
init_smartart_layout_interpreter_cycle_hub_ratio_usersize();
|
|
38602
38745
|
init_smartart_layout_interpreter_render();
|
|
38603
38746
|
init_smartart_node_tree_axis();
|
|
38604
38747
|
}
|
|
@@ -38612,7 +38755,7 @@ function resolveNestedCycleAnchor(wrapper, anchor, childrenOf) {
|
|
|
38612
38755
|
const resolved = items[0].child;
|
|
38613
38756
|
return (childrenOf.get(resolved.id)?.length ?? 0) > 0 ? resolved : void 0;
|
|
38614
38757
|
}
|
|
38615
|
-
function arrangeNestedCycleSlot(wrapperSlot, anchor, box, absX, absY, childrenOf, nodeCount, flat, presLayoutVars, index, palette, style, elementId, fontName, declaringRoleChain) {
|
|
38758
|
+
function arrangeNestedCycleSlot(wrapperSlot, anchor, box, absX, absY, childrenOf, nodeCount, flat, presLayoutVars, index, palette, style, elementId, fontName, declaringRoleChain, sizeBox) {
|
|
38616
38759
|
const wrapper = wrapperSlot.node;
|
|
38617
38760
|
const nestedAnchor = resolveNestedCycleAnchor(wrapper, anchor, childrenOf);
|
|
38618
38761
|
if (!nestedAnchor) {
|
|
@@ -38640,11 +38783,12 @@ function arrangeNestedCycleSlot(wrapperSlot, anchor, box, absX, absY, childrenOf
|
|
|
38640
38783
|
false,
|
|
38641
38784
|
childrenOf,
|
|
38642
38785
|
fontName,
|
|
38643
|
-
declaringRoleChain
|
|
38786
|
+
declaringRoleChain,
|
|
38787
|
+
sizeBox
|
|
38644
38788
|
);
|
|
38645
38789
|
return translateResult(result, rect22.x, rect22.y).nodes;
|
|
38646
38790
|
}
|
|
38647
|
-
function renderChildRepeaterOrNestedCycle(wrapperSlot, anchor, anchorIndex, box, absX, absY, childrenOf, flat, presLayoutVars, index, ctx, fontName, declaringRoleChain) {
|
|
38791
|
+
function renderChildRepeaterOrNestedCycle(wrapperSlot, anchor, anchorIndex, box, absX, absY, childrenOf, flat, presLayoutVars, index, ctx, fontName, declaringRoleChain, sizeBox) {
|
|
38648
38792
|
const nested = arrangeNestedCycleSlot(
|
|
38649
38793
|
wrapperSlot,
|
|
38650
38794
|
anchor,
|
|
@@ -38660,9 +38804,24 @@ function renderChildRepeaterOrNestedCycle(wrapperSlot, anchor, anchorIndex, box,
|
|
|
38660
38804
|
ctx.style,
|
|
38661
38805
|
ctx.elementId,
|
|
38662
38806
|
fontName,
|
|
38663
|
-
declaringRoleChain
|
|
38807
|
+
declaringRoleChain,
|
|
38808
|
+
sizeBox
|
|
38809
|
+
);
|
|
38810
|
+
if (nested) {
|
|
38811
|
+
return nested;
|
|
38812
|
+
}
|
|
38813
|
+
const sizingCtx = declaringRoleChain && sizeBox ? { index, sizeBox, declaringRoleChain } : void 0;
|
|
38814
|
+
return renderChildRepeaterSlot(
|
|
38815
|
+
wrapperSlot,
|
|
38816
|
+
anchor,
|
|
38817
|
+
anchorIndex,
|
|
38818
|
+
box,
|
|
38819
|
+
absX,
|
|
38820
|
+
absY,
|
|
38821
|
+
childrenOf,
|
|
38822
|
+
ctx,
|
|
38823
|
+
sizingCtx
|
|
38664
38824
|
);
|
|
38665
|
-
return nested ?? renderChildRepeaterSlot(wrapperSlot, anchor, anchorIndex, box, absX, absY, childrenOf, ctx);
|
|
38666
38825
|
}
|
|
38667
38826
|
var init_smartart_layout_interpreter_composite_nested_cycle = __esm({
|
|
38668
38827
|
"src/core/utils/smartart-layout-interpreter-composite-nested-cycle.ts"() {
|
|
@@ -38851,7 +39010,7 @@ var init_smartart_layout_interpreter_composite_render = __esm({
|
|
|
38851
39010
|
function slotsWithAxis(slotted, axis) {
|
|
38852
39011
|
return slotted.filter((slot) => slot.node.presentationOf?.axis?.[0] === axis);
|
|
38853
39012
|
}
|
|
38854
|
-
function arrangeByPresentationOf(slotted, allChildren, nodes, flat, box, absX, absY, childrenOf, ctx, fontCtx, index, presLayoutVars, declaringRoleChain) {
|
|
39013
|
+
function arrangeByPresentationOf(slotted, allChildren, nodes, flat, box, absX, absY, childrenOf, ctx, fontCtx, index, presLayoutVars, declaringRoleChain, sizeBox) {
|
|
38855
39014
|
const selfSlots = slotsWithAxis(slotted, "self");
|
|
38856
39015
|
if (selfSlots.length === 0) {
|
|
38857
39016
|
return void 0;
|
|
@@ -38892,7 +39051,8 @@ function arrangeByPresentationOf(slotted, allChildren, nodes, flat, box, absX, a
|
|
|
38892
39051
|
index,
|
|
38893
39052
|
ctx,
|
|
38894
39053
|
fontCtx?.fontName,
|
|
38895
|
-
declaringRoleChain
|
|
39054
|
+
declaringRoleChain,
|
|
39055
|
+
sizeBox
|
|
38896
39056
|
)
|
|
38897
39057
|
);
|
|
38898
39058
|
}
|
|
@@ -38941,7 +39101,8 @@ function arrangeComposite(plan, nodes, box, palette, style, elementId, index = E
|
|
|
38941
39101
|
fontCtx,
|
|
38942
39102
|
index,
|
|
38943
39103
|
presLayoutVars,
|
|
38944
|
-
[declaringRole]
|
|
39104
|
+
[declaringRole],
|
|
39105
|
+
sizeBox
|
|
38945
39106
|
) ?? arrangeByChooseAwareSlots(plan.node, flat, box, index, ctx, fontCtx) ?? arrangeByOrder(slotted, nodes, box, absX, absY, ctx, fontCtx);
|
|
38946
39107
|
return {
|
|
38947
39108
|
nodes: renderedNodes,
|
|
@@ -39310,12 +39471,13 @@ function computeHierarchyAxisPitches(effectiveBox, orientation, boxW, boxH, tota
|
|
|
39310
39471
|
const fanWidth = tailedPitch ? effectiveBox.width - (cascadeReserveOffsetPx ?? hangShape.maxHangDepth * HIER_TAIL_OFFSET_RATIO * boxW) : effectiveBox.width;
|
|
39311
39472
|
const hangHeightRatio = orientation.hangHeightRatio ?? HANG_HEIGHT_RATIO;
|
|
39312
39473
|
const fanHeight = tailedPitch ? effectiveBox.height - hangShape.maxHangRows * (1 + hangHeightRatio) * boxH : effectiveBox.height;
|
|
39474
|
+
const fanSibSpRatio = tailedPitch && orientation.transposed ? orientation.sibSpRatio + hangShape.maxHangDepth * HIER_TAIL_OFFSET_RATIO * (totalLeaves > 0 ? hangShape.hangingColumns / totalLeaves : 0) : orientation.sibSpRatio;
|
|
39313
39475
|
const xPitch = compositeFanPitch(
|
|
39314
39476
|
fanWidth,
|
|
39315
39477
|
boxW,
|
|
39316
39478
|
orientation.compositeWidthFactor,
|
|
39317
39479
|
orientation.cardOffsetXRatio,
|
|
39318
|
-
|
|
39480
|
+
fanSibSpRatio,
|
|
39319
39481
|
totalLeaves
|
|
39320
39482
|
);
|
|
39321
39483
|
const fixedGenerationGapRatio = orientation.transposed ? void 0 : tailedPitch ? orientation.generationGapRatio : orientation.compositeGenerationGapRatio;
|
|
@@ -39445,16 +39607,17 @@ var init_smartart_hierarchy_dispatch_lindir = __esm({
|
|
|
39445
39607
|
init_smartart_layout_interpreter_choose_algorithm();
|
|
39446
39608
|
}
|
|
39447
39609
|
});
|
|
39448
|
-
function collectScoped(node, crossedHierChild, out) {
|
|
39610
|
+
function collectScoped(node, crossedHierChild, out, nodeCount, presLayoutVars) {
|
|
39449
39611
|
if (!node) {
|
|
39450
39612
|
return;
|
|
39451
39613
|
}
|
|
39452
|
-
|
|
39614
|
+
const effectiveType = node.algorithm?.type ?? (node.choose ? chooseAlgorithmOfType(node, nodeCount, TX_ALG_TYPES, { presLayoutVars })?.type : void 0);
|
|
39615
|
+
if (effectiveType === "tx" && node.shape) {
|
|
39453
39616
|
out.push({ node, descendantScope: crossedHierChild });
|
|
39454
39617
|
}
|
|
39455
39618
|
const nextCrossed = crossedHierChild || node.algorithm?.type === "hierChild";
|
|
39456
39619
|
for (const child262 of node.children ?? []) {
|
|
39457
|
-
collectScoped(child262, nextCrossed, out);
|
|
39620
|
+
collectScoped(child262, nextCrossed, out, nodeCount, presLayoutVars);
|
|
39458
39621
|
}
|
|
39459
39622
|
}
|
|
39460
39623
|
function resolvedSize(index, name) {
|
|
@@ -39465,14 +39628,14 @@ function resolvedSize(index, name) {
|
|
|
39465
39628
|
}
|
|
39466
39629
|
return { w, h: h2 };
|
|
39467
39630
|
}
|
|
39468
|
-
function resolveHierarchyGenerationTemplates(algorithmNode, index) {
|
|
39631
|
+
function resolveHierarchyGenerationTemplates(algorithmNode, index, nodeCount, presLayoutVars) {
|
|
39469
39632
|
if (!algorithmNode) {
|
|
39470
39633
|
return void 0;
|
|
39471
39634
|
}
|
|
39472
39635
|
const fallbackNode = resolveHierarchyItemNode(algorithmNode);
|
|
39473
39636
|
const scoped = [];
|
|
39474
39637
|
for (const child262 of algorithmNode.children ?? []) {
|
|
39475
|
-
collectScoped(child262, false, scoped);
|
|
39638
|
+
collectScoped(child262, false, scoped, nodeCount, presLayoutVars);
|
|
39476
39639
|
}
|
|
39477
39640
|
const rootScoped = scoped.filter((c) => !c.descendantScope);
|
|
39478
39641
|
const descendantScoped = scoped.filter((c) => c.descendantScope);
|
|
@@ -39500,10 +39663,13 @@ function resolveHierarchyGenerationTemplates(algorithmNode, index) {
|
|
|
39500
39663
|
root: { node: rootMatch.node, name: rootMatch.node.name, widthFactor, heightFactor }
|
|
39501
39664
|
};
|
|
39502
39665
|
}
|
|
39666
|
+
var TX_ALG_TYPES;
|
|
39503
39667
|
var init_smartart_hierarchy_generation_templates = __esm({
|
|
39504
39668
|
"src/core/utils/smartart-hierarchy-generation-templates.ts"() {
|
|
39505
39669
|
init_smartart_constraint_solver();
|
|
39506
39670
|
init_smartart_hierarchy_item_template();
|
|
39671
|
+
init_smartart_layout_interpreter_choose_algorithm();
|
|
39672
|
+
TX_ALG_TYPES = /* @__PURE__ */ new Set(["tx"]);
|
|
39507
39673
|
}
|
|
39508
39674
|
});
|
|
39509
39675
|
function resolveCornerHangPlan(algorithmNode, nodeCount, presLayoutVars, index) {
|
|
@@ -39518,7 +39684,12 @@ function resolveCornerHangPlan(algorithmNode, nodeCount, presLayoutVars, index)
|
|
|
39518
39684
|
if (!linDir || !VERTICAL_LIN_DIR.has(linDir)) {
|
|
39519
39685
|
return void 0;
|
|
39520
39686
|
}
|
|
39521
|
-
const templates = resolveHierarchyGenerationTemplates(
|
|
39687
|
+
const templates = resolveHierarchyGenerationTemplates(
|
|
39688
|
+
algorithmNode,
|
|
39689
|
+
index,
|
|
39690
|
+
nodeCount,
|
|
39691
|
+
presLayoutVars
|
|
39692
|
+
);
|
|
39522
39693
|
if (!templates?.root) {
|
|
39523
39694
|
return void 0;
|
|
39524
39695
|
}
|
|
@@ -39749,6 +39920,188 @@ var init_smartart_hierarchy_fold_depth = __esm({
|
|
|
39749
39920
|
"src/core/utils/smartart-hierarchy-fold-depth.ts"() {
|
|
39750
39921
|
}
|
|
39751
39922
|
});
|
|
39923
|
+
function resolveSibSpRatio(algorithmNode) {
|
|
39924
|
+
const constraints = algorithmNode.allConstraints ?? algorithmNode.constraints ?? [];
|
|
39925
|
+
const sibSp = constraints.find((c) => c.type === "sibSp" && typeof c.factor === "number");
|
|
39926
|
+
return sibSp?.factor ?? DEFAULT_SIB_SP_RATIO;
|
|
39927
|
+
}
|
|
39928
|
+
function resolveFannedHangGeometry(algorithmNode, index, nodeCount, presLayoutVars, branchCount, box) {
|
|
39929
|
+
if (!algorithmNode || branchCount < 1) {
|
|
39930
|
+
return void 0;
|
|
39931
|
+
}
|
|
39932
|
+
const templates = resolveHierarchyGenerationTemplates(
|
|
39933
|
+
algorithmNode,
|
|
39934
|
+
index,
|
|
39935
|
+
nodeCount,
|
|
39936
|
+
presLayoutVars
|
|
39937
|
+
);
|
|
39938
|
+
if (!templates?.root) {
|
|
39939
|
+
return void 0;
|
|
39940
|
+
}
|
|
39941
|
+
const rootW_ = resolveConstraint(index, templates.root.name, "w");
|
|
39942
|
+
const rootH_ = resolveConstraint(index, templates.root.name, "h");
|
|
39943
|
+
if (rootW_ === void 0 || rootH_ === void 0 || !(rootW_ > 0) || !(rootH_ > 0)) {
|
|
39944
|
+
return void 0;
|
|
39945
|
+
}
|
|
39946
|
+
const rootAspect = rootW_ / rootH_;
|
|
39947
|
+
if (!(rootAspect > 0)) {
|
|
39948
|
+
return void 0;
|
|
39949
|
+
}
|
|
39950
|
+
const sibSpRatio = resolveSibSpRatio(algorithmNode);
|
|
39951
|
+
const rootW = box.width / (branchCount + (branchCount - 1) * sibSpRatio);
|
|
39952
|
+
const rootH = rootW / rootAspect;
|
|
39953
|
+
if (!(rootW > 0) || !(rootH > 0)) {
|
|
39954
|
+
return void 0;
|
|
39955
|
+
}
|
|
39956
|
+
const heightFactor = templates.root.heightFactor;
|
|
39957
|
+
const descH = heightFactor > 0 ? rootH / heightFactor : rootH;
|
|
39958
|
+
const descWidthFraction = resolveConstraint(index, templates.descendant.name, "w");
|
|
39959
|
+
const descW = (descWidthFraction !== void 0 && descWidthFraction > 0 && descWidthFraction <= 1.5 ? descWidthFraction : DEFAULT_DESC_WIDTH_FRACTION) * rootW;
|
|
39960
|
+
const chAlign = resolveHierarchyDispatchChAlign(algorithmNode, nodeCount, presLayoutVars);
|
|
39961
|
+
const linDir = algorithmNode.algorithm?.parameters?.find((p) => p.type === "linDir")?.value;
|
|
39962
|
+
return {
|
|
39963
|
+
rootW,
|
|
39964
|
+
rootH,
|
|
39965
|
+
descW,
|
|
39966
|
+
descH,
|
|
39967
|
+
gap: sibSpRatio * rootW,
|
|
39968
|
+
side: chAlign === "r" ? "right" : "left",
|
|
39969
|
+
reversed: linDir === "fromR"
|
|
39970
|
+
};
|
|
39971
|
+
}
|
|
39972
|
+
var DEFAULT_SIB_SP_RATIO;
|
|
39973
|
+
var DEFAULT_DESC_WIDTH_FRACTION;
|
|
39974
|
+
var init_smartart_hierarchy_fanned_hang_geometry = __esm({
|
|
39975
|
+
"src/core/utils/smartart-hierarchy-fanned-hang-geometry.ts"() {
|
|
39976
|
+
init_smartart_constraint_solver();
|
|
39977
|
+
init_smartart_hierarchy_dispatch_lindir();
|
|
39978
|
+
init_smartart_hierarchy_generation_templates();
|
|
39979
|
+
DEFAULT_SIB_SP_RATIO = 0.05;
|
|
39980
|
+
DEFAULT_DESC_WIDTH_FRACTION = 0.85;
|
|
39981
|
+
}
|
|
39982
|
+
});
|
|
39983
|
+
function resolveHierarchyItemFontSizePx(nodes, algorithmNode, index, boxW, boxH, fontName) {
|
|
39984
|
+
if (!algorithmNode) {
|
|
39985
|
+
return void 0;
|
|
39986
|
+
}
|
|
39987
|
+
const textNodes = nodes.filter((node) => node.text && node.text.trim().length > 0);
|
|
39988
|
+
if (textNodes.length === 0) {
|
|
39989
|
+
return void 0;
|
|
39990
|
+
}
|
|
39991
|
+
const plan = { node: algorithmNode };
|
|
39992
|
+
const { rootSizePx } = resolveTieredItemFontSize(
|
|
39993
|
+
plan,
|
|
39994
|
+
index,
|
|
39995
|
+
textNodes.map((node) => ({
|
|
39996
|
+
rootText: node.text,
|
|
39997
|
+
descendantTexts: [],
|
|
39998
|
+
width: boxW,
|
|
39999
|
+
height: boxH
|
|
40000
|
+
})),
|
|
40001
|
+
fontName,
|
|
40002
|
+
void 0,
|
|
40003
|
+
0,
|
|
40004
|
+
algorithmNode
|
|
40005
|
+
);
|
|
40006
|
+
return rootSizePx;
|
|
40007
|
+
}
|
|
40008
|
+
var init_smartart_layout_interpreter_hierarchy_fontfit = __esm({
|
|
40009
|
+
"src/core/utils/smartart-layout-interpreter-hierarchy-fontfit.ts"() {
|
|
40010
|
+
init_smartart_layout_item_font_tier();
|
|
40011
|
+
}
|
|
40012
|
+
});
|
|
40013
|
+
function placeDescendantColumn(hc, node, edgeX, side, y, descW, descH, stackGapPx, parentId, parentCenterX, parentBottom) {
|
|
40014
|
+
const x = side === "right" ? edgeX - descW : edgeX;
|
|
40015
|
+
pushNode(hc, node.node, x, y, descW, descH);
|
|
40016
|
+
elbowConnector(hc, parentId, parentCenterX, parentBottom, x + descW / 2, y, node.node.id);
|
|
40017
|
+
let nextY = y + descH + stackGapPx;
|
|
40018
|
+
for (const child262 of node.children) {
|
|
40019
|
+
nextY = placeDescendantColumn(
|
|
40020
|
+
hc,
|
|
40021
|
+
child262,
|
|
40022
|
+
edgeX,
|
|
40023
|
+
side,
|
|
40024
|
+
nextY,
|
|
40025
|
+
descW,
|
|
40026
|
+
descH,
|
|
40027
|
+
stackGapPx,
|
|
40028
|
+
node.node.id,
|
|
40029
|
+
x + descW / 2,
|
|
40030
|
+
y + descH
|
|
40031
|
+
);
|
|
40032
|
+
}
|
|
40033
|
+
return nextY;
|
|
40034
|
+
}
|
|
40035
|
+
function arrangeFannedHangingForest(nodes, box, palette, style, elementId, roots, itemShape, connectorLabels, algorithmNode, index, fontName, presLayoutVars, orgChart) {
|
|
40036
|
+
if (orgChart) {
|
|
40037
|
+
return void 0;
|
|
40038
|
+
}
|
|
40039
|
+
const geometry = resolveFannedHangGeometry(
|
|
40040
|
+
algorithmNode,
|
|
40041
|
+
index,
|
|
40042
|
+
nodes.length,
|
|
40043
|
+
presLayoutVars,
|
|
40044
|
+
roots.length,
|
|
40045
|
+
box
|
|
40046
|
+
);
|
|
40047
|
+
if (!geometry) {
|
|
40048
|
+
return void 0;
|
|
40049
|
+
}
|
|
40050
|
+
const { rootW, rootH, descW, descH, gap, side, reversed } = geometry;
|
|
40051
|
+
const hc = baseContext(
|
|
40052
|
+
nodes.length,
|
|
40053
|
+
elementId,
|
|
40054
|
+
palette,
|
|
40055
|
+
style,
|
|
40056
|
+
descW,
|
|
40057
|
+
descH,
|
|
40058
|
+
connectorLabels,
|
|
40059
|
+
itemShape,
|
|
40060
|
+
resolveHierarchyItemFontSizePx(nodes, algorithmNode, index, descW, descH, fontName)
|
|
40061
|
+
);
|
|
40062
|
+
const rootChildGap = ROOT_CHILD_GAP_RATIO * descH;
|
|
40063
|
+
const branchCount = roots.length;
|
|
40064
|
+
roots.forEach((root, i2) => {
|
|
40065
|
+
const columnIndex = reversed ? branchCount - 1 - i2 : i2;
|
|
40066
|
+
const branchX = columnIndex * (rootW + gap);
|
|
40067
|
+
pushNode(hc, root.node, branchX, 0, rootW, rootH);
|
|
40068
|
+
const edgeX = side === "right" ? branchX + rootW : branchX;
|
|
40069
|
+
let y = rootH + rootChildGap;
|
|
40070
|
+
for (const child262 of root.children) {
|
|
40071
|
+
y = placeDescendantColumn(
|
|
40072
|
+
hc,
|
|
40073
|
+
child262,
|
|
40074
|
+
edgeX,
|
|
40075
|
+
side,
|
|
40076
|
+
y,
|
|
40077
|
+
descW,
|
|
40078
|
+
descH,
|
|
40079
|
+
DESCENDANT_STACK_GAP_RATIO * descH,
|
|
40080
|
+
root.node.id,
|
|
40081
|
+
branchX + rootW / 2,
|
|
40082
|
+
rootH
|
|
40083
|
+
);
|
|
40084
|
+
}
|
|
40085
|
+
});
|
|
40086
|
+
return {
|
|
40087
|
+
nodes: hc.nodes,
|
|
40088
|
+
connectors: hc.connectors,
|
|
40089
|
+
shadowFilter: hc.ctx.shadow,
|
|
40090
|
+
viewBox: `0 0 ${box.width} ${box.height}`,
|
|
40091
|
+
family: "hierarchy"
|
|
40092
|
+
};
|
|
40093
|
+
}
|
|
40094
|
+
var ROOT_CHILD_GAP_RATIO;
|
|
40095
|
+
var DESCENDANT_STACK_GAP_RATIO;
|
|
40096
|
+
var init_smartart_hierarchy_fanned_hang = __esm({
|
|
40097
|
+
"src/core/utils/smartart-hierarchy-fanned-hang.ts"() {
|
|
40098
|
+
init_smartart_hierarchy_fanned_hang_geometry();
|
|
40099
|
+
init_smartart_hierarchy_shared();
|
|
40100
|
+
init_smartart_layout_interpreter_hierarchy_fontfit();
|
|
40101
|
+
ROOT_CHILD_GAP_RATIO = 0.98;
|
|
40102
|
+
DESCENDANT_STACK_GAP_RATIO = 0;
|
|
40103
|
+
}
|
|
40104
|
+
});
|
|
39752
40105
|
function placeAssistants(hc, x, parentBottom, assistants, options, cursor) {
|
|
39753
40106
|
for (const assistant of assistants) {
|
|
39754
40107
|
const y = cursor.y;
|
|
@@ -39808,7 +40161,7 @@ function resolveRowGapRatio(constraints, descendantName) {
|
|
|
39808
40161
|
);
|
|
39809
40162
|
return sibSp?.factor;
|
|
39810
40163
|
}
|
|
39811
|
-
function fitHangingBox(algorithmNode, index, w, h2, rows) {
|
|
40164
|
+
function fitHangingBox(algorithmNode, index, w, h2, rows, nodeCount, presLayoutVars) {
|
|
39812
40165
|
const fallbackBoxH = Math.min(h2 * FALLBACK_BOX_H_RATIO, FALLBACK_BOX_H_MAX);
|
|
39813
40166
|
const fallback = {
|
|
39814
40167
|
boxW: Math.min(w * FALLBACK_BOX_W_RATIO, FALLBACK_BOX_W_MAX),
|
|
@@ -39818,7 +40171,12 @@ function fitHangingBox(algorithmNode, index, w, h2, rows) {
|
|
|
39818
40171
|
if (!algorithmNode || rows < 1) {
|
|
39819
40172
|
return fallback;
|
|
39820
40173
|
}
|
|
39821
|
-
const templates = resolveHierarchyGenerationTemplates(
|
|
40174
|
+
const templates = resolveHierarchyGenerationTemplates(
|
|
40175
|
+
algorithmNode,
|
|
40176
|
+
index,
|
|
40177
|
+
nodeCount,
|
|
40178
|
+
presLayoutVars
|
|
40179
|
+
);
|
|
39822
40180
|
if (!templates) {
|
|
39823
40181
|
return fallback;
|
|
39824
40182
|
}
|
|
@@ -39889,41 +40247,11 @@ var init_smartart_hierarchy_hanging_fold = __esm({
|
|
|
39889
40247
|
init_smartart_hierarchy_orgchart_tree();
|
|
39890
40248
|
}
|
|
39891
40249
|
});
|
|
39892
|
-
function
|
|
39893
|
-
if (!algorithmNode) {
|
|
39894
|
-
return void 0;
|
|
39895
|
-
}
|
|
39896
|
-
const textNodes = nodes.filter((node) => node.text && node.text.trim().length > 0);
|
|
39897
|
-
if (textNodes.length === 0) {
|
|
39898
|
-
return void 0;
|
|
39899
|
-
}
|
|
39900
|
-
const plan = { node: algorithmNode };
|
|
39901
|
-
const { rootSizePx } = resolveTieredItemFontSize(
|
|
39902
|
-
plan,
|
|
39903
|
-
index,
|
|
39904
|
-
textNodes.map((node) => ({
|
|
39905
|
-
rootText: node.text,
|
|
39906
|
-
descendantTexts: [],
|
|
39907
|
-
width: boxW,
|
|
39908
|
-
height: boxH
|
|
39909
|
-
})),
|
|
39910
|
-
fontName,
|
|
39911
|
-
void 0,
|
|
39912
|
-
0,
|
|
39913
|
-
algorithmNode
|
|
39914
|
-
);
|
|
39915
|
-
return rootSizePx;
|
|
39916
|
-
}
|
|
39917
|
-
var init_smartart_layout_interpreter_hierarchy_fontfit = __esm({
|
|
39918
|
-
"src/core/utils/smartart-layout-interpreter-hierarchy-fontfit.ts"() {
|
|
39919
|
-
init_smartart_layout_item_font_tier();
|
|
39920
|
-
}
|
|
39921
|
-
});
|
|
39922
|
-
function arrangeFullyHangingTree(nodes, box, palette, style, elementId, roots, itemShape, connectorLabels, algorithmNode, index, fontName, linDir, orgChart, cornerSide) {
|
|
40250
|
+
function arrangeFullyHangingTree(nodes, box, palette, style, elementId, roots, itemShape, connectorLabels, algorithmNode, index, fontName, linDir, orgChart, presLayoutVars, cornerSide) {
|
|
39923
40251
|
const { width: w, height: h2 } = box;
|
|
39924
40252
|
const foldDeeperGenerations = algorithmNode ? hierarchyLeafFoldsDescendants(algorithmNode) : false;
|
|
39925
40253
|
const rows = countHangingRows(roots, orgChart, foldDeeperGenerations);
|
|
39926
|
-
const fit = fitHangingBox(algorithmNode, index, w, h2, rows);
|
|
40254
|
+
const fit = fitHangingBox(algorithmNode, index, w, h2, rows, nodes.length, presLayoutVars);
|
|
39927
40255
|
const { boxW, boxH, vGap } = fit;
|
|
39928
40256
|
const indent = boxW * 0.35;
|
|
39929
40257
|
const hc = baseContext(
|
|
@@ -39979,6 +40307,51 @@ var init_smartart_hierarchy_hanging_arrange = __esm({
|
|
|
39979
40307
|
HANGING_MODE_INSET = 6;
|
|
39980
40308
|
}
|
|
39981
40309
|
});
|
|
40310
|
+
function dispatchHangingMode(nodes, box, palette, style, elementId, roots, itemShape, connectorLabels, algorithmNode, index, fontName, presLayoutVars, orgChart, cornerPlan) {
|
|
40311
|
+
if (roots.length > 1) {
|
|
40312
|
+
const fanned = arrangeFannedHangingForest(
|
|
40313
|
+
nodes,
|
|
40314
|
+
box,
|
|
40315
|
+
palette,
|
|
40316
|
+
style,
|
|
40317
|
+
elementId,
|
|
40318
|
+
roots,
|
|
40319
|
+
itemShape,
|
|
40320
|
+
connectorLabels,
|
|
40321
|
+
algorithmNode,
|
|
40322
|
+
index,
|
|
40323
|
+
fontName,
|
|
40324
|
+
presLayoutVars,
|
|
40325
|
+
orgChart
|
|
40326
|
+
);
|
|
40327
|
+
if (fanned) {
|
|
40328
|
+
return fanned;
|
|
40329
|
+
}
|
|
40330
|
+
}
|
|
40331
|
+
return arrangeFullyHangingTree(
|
|
40332
|
+
nodes,
|
|
40333
|
+
box,
|
|
40334
|
+
palette,
|
|
40335
|
+
style,
|
|
40336
|
+
elementId,
|
|
40337
|
+
roots,
|
|
40338
|
+
itemShape,
|
|
40339
|
+
connectorLabels,
|
|
40340
|
+
algorithmNode,
|
|
40341
|
+
index,
|
|
40342
|
+
fontName,
|
|
40343
|
+
cornerPlan?.linDir,
|
|
40344
|
+
orgChart,
|
|
40345
|
+
presLayoutVars,
|
|
40346
|
+
cornerPlan?.side
|
|
40347
|
+
);
|
|
40348
|
+
}
|
|
40349
|
+
var init_smartart_hierarchy_hang_dispatch = __esm({
|
|
40350
|
+
"src/core/utils/smartart-hierarchy-hang-dispatch.ts"() {
|
|
40351
|
+
init_smartart_hierarchy_fanned_hang();
|
|
40352
|
+
init_smartart_hierarchy_hanging_arrange();
|
|
40353
|
+
}
|
|
40354
|
+
});
|
|
39982
40355
|
function findCompositeDescendant(node) {
|
|
39983
40356
|
if (!node) {
|
|
39984
40357
|
return void 0;
|
|
@@ -40335,7 +40708,7 @@ function resolveHierarchyOrientation(algorithmNode, index, mode = "std", itemSha
|
|
|
40335
40708
|
index,
|
|
40336
40709
|
roleOf(algorithmNode),
|
|
40337
40710
|
["sibSp"],
|
|
40338
|
-
|
|
40711
|
+
DEFAULT_SIB_SP_RATIO2,
|
|
40339
40712
|
algorithmNode?.rules
|
|
40340
40713
|
);
|
|
40341
40714
|
if (sibSpReferencesHeight || tailedTransposed) {
|
|
@@ -40399,7 +40772,7 @@ function resolveHierarchyOrientation(algorithmNode, index, mode = "std", itemSha
|
|
|
40399
40772
|
cardOffsetXRatio: compositeChild?.offsetXRatio ?? 0
|
|
40400
40773
|
};
|
|
40401
40774
|
}
|
|
40402
|
-
var
|
|
40775
|
+
var DEFAULT_SIB_SP_RATIO2;
|
|
40403
40776
|
var OUTER_MARGIN_X_RATIO;
|
|
40404
40777
|
var OUTER_MARGIN_Y_RATIO;
|
|
40405
40778
|
var init_smartart_hierarchy_orientation = __esm({
|
|
@@ -40415,7 +40788,7 @@ var init_smartart_hierarchy_orientation = __esm({
|
|
|
40415
40788
|
init_smartart_hierarchy_transpose();
|
|
40416
40789
|
init_smartart_hierarchy_fit_item_box();
|
|
40417
40790
|
init_smartart_hierarchy_child_order();
|
|
40418
|
-
|
|
40791
|
+
DEFAULT_SIB_SP_RATIO2 = 0.1;
|
|
40419
40792
|
OUTER_MARGIN_X_RATIO = 0.0491;
|
|
40420
40793
|
OUTER_MARGIN_Y_RATIO = 0.0707;
|
|
40421
40794
|
}
|
|
@@ -40841,7 +41214,7 @@ function arrangeHierarchy(nodes, box, palette, style, elementId, presLayoutVars,
|
|
|
40841
41214
|
const mode = branchMode(presLayoutVars, cornerPlan?.linDir);
|
|
40842
41215
|
const itemShape = algorithmNode ? findHierarchyItemShape(algorithmNode) : void 0;
|
|
40843
41216
|
if (mode === "hanging") {
|
|
40844
|
-
return
|
|
41217
|
+
return dispatchHangingMode(
|
|
40845
41218
|
nodes,
|
|
40846
41219
|
box,
|
|
40847
41220
|
palette,
|
|
@@ -40853,9 +41226,9 @@ function arrangeHierarchy(nodes, box, palette, style, elementId, presLayoutVars,
|
|
|
40853
41226
|
algorithmNode,
|
|
40854
41227
|
index,
|
|
40855
41228
|
fontName,
|
|
40856
|
-
|
|
41229
|
+
presLayoutVars,
|
|
40857
41230
|
orgChart,
|
|
40858
|
-
cornerPlan
|
|
41231
|
+
cornerPlan
|
|
40859
41232
|
);
|
|
40860
41233
|
}
|
|
40861
41234
|
const { orientation, swapAxes, effectiveBox } = resolveHierarchyEffectiveOrientation(
|
|
@@ -40965,7 +41338,7 @@ var init_smartart_layout_interpreter_hierarchy = __esm({
|
|
|
40965
41338
|
init_smartart_hierarchy_fan_aware_width();
|
|
40966
41339
|
init_smartart_hierarchy_fold_depth();
|
|
40967
41340
|
init_smartart_hierarchy_hang_depth();
|
|
40968
|
-
|
|
41341
|
+
init_smartart_hierarchy_hang_dispatch();
|
|
40969
41342
|
init_smartart_hierarchy_orgchart_tree();
|
|
40970
41343
|
init_smartart_hierarchy_orientation();
|
|
40971
41344
|
init_smartart_hierarchy_orientation_resolve();
|
|
@@ -46524,16 +46897,29 @@ function parseChartUniqueId(node, localName28) {
|
|
|
46524
46897
|
const val2 = uniqueIdNode?.["@_val"];
|
|
46525
46898
|
return typeof val2 === "string" && val2.length > 0 ? val2 : void 0;
|
|
46526
46899
|
}
|
|
46900
|
+
function randomBytes(length) {
|
|
46901
|
+
const cryptoObj = typeof crypto === "undefined" ? void 0 : crypto;
|
|
46902
|
+
if (cryptoObj && typeof cryptoObj.getRandomValues === "function") {
|
|
46903
|
+
return cryptoObj.getRandomValues(new Uint8Array(length));
|
|
46904
|
+
}
|
|
46905
|
+
const bytes = new Uint8Array(length);
|
|
46906
|
+
for (let i2 = 0; i2 < length; i2++) {
|
|
46907
|
+
bytes[i2] = Math.floor(Math.random() * 256);
|
|
46908
|
+
}
|
|
46909
|
+
return bytes;
|
|
46910
|
+
}
|
|
46527
46911
|
function randomHex(length) {
|
|
46912
|
+
const bytes = randomBytes(Math.ceil(length / 2));
|
|
46528
46913
|
let out = "";
|
|
46529
|
-
for (
|
|
46530
|
-
out +=
|
|
46914
|
+
for (const b of bytes) {
|
|
46915
|
+
out += b.toString(16).padStart(2, "0");
|
|
46531
46916
|
}
|
|
46532
|
-
return out;
|
|
46917
|
+
return out.slice(0, length);
|
|
46533
46918
|
}
|
|
46534
46919
|
function generateChartUniqueId() {
|
|
46535
46920
|
const cryptoObj = typeof crypto === "undefined" ? void 0 : crypto;
|
|
46536
|
-
const
|
|
46921
|
+
const variantNibble = (8 + randomBytes(1)[0] % 4).toString(16);
|
|
46922
|
+
const uuid = cryptoObj && typeof cryptoObj.randomUUID === "function" ? cryptoObj.randomUUID() : `${randomHex(8)}-${randomHex(4)}-4${randomHex(3)}-${variantNibble}${randomHex(3)}-${randomHex(12)}`;
|
|
46537
46923
|
return `{${uuid.toUpperCase()}}`;
|
|
46538
46924
|
}
|
|
46539
46925
|
function buildChartUniqueIdExtLst(uniqueId) {
|
|
@@ -49293,7 +49679,7 @@ function parseWorksheetCells(xml) {
|
|
|
49293
49679
|
return [];
|
|
49294
49680
|
}
|
|
49295
49681
|
const rows = getChildArray(sheetData, "row");
|
|
49296
|
-
const
|
|
49682
|
+
const cells2 = [];
|
|
49297
49683
|
for (const row of rows) {
|
|
49298
49684
|
const cellNodes = getChildArray(row, "c");
|
|
49299
49685
|
for (const cell of cellNodes) {
|
|
@@ -49307,7 +49693,7 @@ function parseWorksheetCells(xml) {
|
|
|
49307
49693
|
if (rawValue === void 0) {
|
|
49308
49694
|
continue;
|
|
49309
49695
|
}
|
|
49310
|
-
|
|
49696
|
+
cells2.push({
|
|
49311
49697
|
col,
|
|
49312
49698
|
row: rowIdx,
|
|
49313
49699
|
type: cellType,
|
|
@@ -49315,7 +49701,7 @@ function parseWorksheetCells(xml) {
|
|
|
49315
49701
|
});
|
|
49316
49702
|
}
|
|
49317
49703
|
}
|
|
49318
|
-
return
|
|
49704
|
+
return cells2;
|
|
49319
49705
|
}
|
|
49320
49706
|
function findByLocalName2(obj, localName28) {
|
|
49321
49707
|
for (const key2 of Object.keys(obj)) {
|
|
@@ -49416,13 +49802,13 @@ async function parseEmbeddedXlsx(xlsxData) {
|
|
|
49416
49802
|
}
|
|
49417
49803
|
const sheet1Xml = await sheet1File.async("string");
|
|
49418
49804
|
const parsedSheet = xmlParser.parse(sheet1Xml);
|
|
49419
|
-
const
|
|
49420
|
-
if (
|
|
49805
|
+
const cells2 = parseWorksheetCells(parsedSheet);
|
|
49806
|
+
if (cells2.length === 0) {
|
|
49421
49807
|
return void 0;
|
|
49422
49808
|
}
|
|
49423
49809
|
let maxRow = 0;
|
|
49424
49810
|
let maxCol = 0;
|
|
49425
|
-
for (const cell of
|
|
49811
|
+
for (const cell of cells2) {
|
|
49426
49812
|
if (cell.row > maxRow) {
|
|
49427
49813
|
maxRow = cell.row;
|
|
49428
49814
|
}
|
|
@@ -49434,7 +49820,7 @@ async function parseEmbeddedXlsx(xlsxData) {
|
|
|
49434
49820
|
for (let r = 0; r <= maxRow; r++) {
|
|
49435
49821
|
grid[r] = Array.from({ length: maxCol + 1 }).fill(void 0);
|
|
49436
49822
|
}
|
|
49437
|
-
for (const cell of
|
|
49823
|
+
for (const cell of cells2) {
|
|
49438
49824
|
grid[cell.row][cell.col] = resolveCellValue(cell, sharedStrings);
|
|
49439
49825
|
}
|
|
49440
49826
|
if (maxRow === 0 && maxCol === 0) {
|
|
@@ -67376,11 +67762,11 @@ function annotateParagraphSiblingOrder(xml, parsed) {
|
|
|
67376
67762
|
}
|
|
67377
67763
|
}
|
|
67378
67764
|
}
|
|
67379
|
-
function paragraphContentEntries(paragraph, contentTags
|
|
67765
|
+
function paragraphContentEntries(paragraph, contentTags) {
|
|
67380
67766
|
const order = childOrder2.get(paragraph);
|
|
67381
67767
|
if (!order) {
|
|
67382
67768
|
const entries2 = Object.keys(paragraph).flatMap(
|
|
67383
|
-
(key2) => contentTags.has(key2) ?
|
|
67769
|
+
(key2) => contentTags.has(key2) ? ensureItems(paragraph[key2]).map((item) => [key2, item]) : []
|
|
67384
67770
|
);
|
|
67385
67771
|
return { entries: entries2, authored: false };
|
|
67386
67772
|
}
|
|
@@ -67392,7 +67778,7 @@ function paragraphContentEntries(paragraph, contentTags, ensureArray20) {
|
|
|
67392
67778
|
if (!contentTags.has(tag)) {
|
|
67393
67779
|
continue;
|
|
67394
67780
|
}
|
|
67395
|
-
const item =
|
|
67781
|
+
const item = ensureItems(paragraph[tag])[index];
|
|
67396
67782
|
if (item !== void 0) {
|
|
67397
67783
|
entries.push([tag, item]);
|
|
67398
67784
|
}
|
|
@@ -67458,29 +67844,29 @@ function extractTableCellTextRuns(tableCell, context) {
|
|
|
67458
67844
|
return void 0;
|
|
67459
67845
|
}
|
|
67460
67846
|
const runs = [];
|
|
67461
|
-
let
|
|
67847
|
+
let contentRunCount = 0;
|
|
67462
67848
|
paragraphs.forEach((paragraph, paragraphIndex) => {
|
|
67463
67849
|
if (paragraphIndex > 0) {
|
|
67464
67850
|
runs.push({ text: "", isParagraphBreak: true });
|
|
67465
67851
|
}
|
|
67466
|
-
const { entries } = paragraphContentEntries(
|
|
67467
|
-
paragraph,
|
|
67468
|
-
CELL_CONTENT_TAGS,
|
|
67469
|
-
(value) => context.ensureArray(value)
|
|
67470
|
-
);
|
|
67852
|
+
const { entries } = paragraphContentEntries(paragraph, CELL_CONTENT_TAGS);
|
|
67471
67853
|
for (const [tag, item] of entries) {
|
|
67472
67854
|
if (tag === "a:br") {
|
|
67473
67855
|
runs.push({ text: "", isLineBreak: true });
|
|
67856
|
+
contentRunCount++;
|
|
67474
67857
|
continue;
|
|
67475
67858
|
}
|
|
67476
67859
|
const node = item;
|
|
67477
67860
|
const run = { text: String(node?.["a:t"] ?? "") };
|
|
67861
|
+
if (tag === "a:fld") {
|
|
67862
|
+
run.isField = true;
|
|
67863
|
+
}
|
|
67478
67864
|
applyRunProperties(run, node?.["a:rPr"], context);
|
|
67479
67865
|
runs.push(run);
|
|
67480
|
-
|
|
67866
|
+
contentRunCount++;
|
|
67481
67867
|
}
|
|
67482
67868
|
});
|
|
67483
|
-
return
|
|
67869
|
+
return contentRunCount > 0 ? runs : void 0;
|
|
67484
67870
|
}
|
|
67485
67871
|
var CELL_CONTENT_TAGS;
|
|
67486
67872
|
var init_table_cell_runs = __esm({
|
|
@@ -99438,6 +99824,46 @@ var init_table_cell_save_helpers = __esm({
|
|
|
99438
99824
|
init_color_xml_preservation();
|
|
99439
99825
|
}
|
|
99440
99826
|
});
|
|
99827
|
+
function ensureArray19(value) {
|
|
99828
|
+
if (value === void 0 || value === null) {
|
|
99829
|
+
return [];
|
|
99830
|
+
}
|
|
99831
|
+
return Array.isArray(value) ? value : [value];
|
|
99832
|
+
}
|
|
99833
|
+
function createDefaultXmlCell() {
|
|
99834
|
+
return {
|
|
99835
|
+
"a:txBody": {
|
|
99836
|
+
"a:bodyPr": {},
|
|
99837
|
+
"a:lstStyle": {},
|
|
99838
|
+
"a:p": {
|
|
99839
|
+
// Match PowerPoint's "Insert Table" default: every paragraph-end
|
|
99840
|
+
// run carries `lang="en-US" dirty="0"`.
|
|
99841
|
+
"a:endParaRPr": { "@_lang": "en-US", "@_dirty": "0" }
|
|
99842
|
+
}
|
|
99843
|
+
},
|
|
99844
|
+
"a:tcPr": {}
|
|
99845
|
+
};
|
|
99846
|
+
}
|
|
99847
|
+
function createDefaultXmlRow(colCount, heightEmu) {
|
|
99848
|
+
const cells2 = Array.from({ length: colCount }, () => createDefaultXmlCell());
|
|
99849
|
+
return {
|
|
99850
|
+
"@_h": String(DEFAULT_ROW_HEIGHT_EMU),
|
|
99851
|
+
"a:tc": cells2.length === 1 ? cells2[0] : cells2
|
|
99852
|
+
};
|
|
99853
|
+
}
|
|
99854
|
+
function getTblFromRawXml(rawXml) {
|
|
99855
|
+
const graphicData = rawXml["a:graphic"]?.["a:graphicData"];
|
|
99856
|
+
return graphicData?.["a:tbl"];
|
|
99857
|
+
}
|
|
99858
|
+
var DEFAULT_ROW_HEIGHT_PX;
|
|
99859
|
+
var DEFAULT_ROW_HEIGHT_EMU;
|
|
99860
|
+
var init_table_structural_helpers = __esm({
|
|
99861
|
+
"src/core/core/runtime/table-structural-helpers.ts"() {
|
|
99862
|
+
init_constants();
|
|
99863
|
+
DEFAULT_ROW_HEIGHT_PX = 40;
|
|
99864
|
+
DEFAULT_ROW_HEIGHT_EMU = DEFAULT_ROW_HEIGHT_PX * EMU_PER_PX;
|
|
99865
|
+
}
|
|
99866
|
+
});
|
|
99441
99867
|
function flattenCellTxBodyText(txBody, ensureArray20) {
|
|
99442
99868
|
if (!txBody) {
|
|
99443
99869
|
return "";
|
|
@@ -99458,6 +99884,45 @@ function flattenCellTxBodyText(txBody, ensureArray20) {
|
|
|
99458
99884
|
}
|
|
99459
99885
|
return lines.join("\n");
|
|
99460
99886
|
}
|
|
99887
|
+
function tableCellTextBodyMatches(txBody, text22, ensureArray20 = xmlArray) {
|
|
99888
|
+
return Boolean(
|
|
99889
|
+
txBody && ensureArray20(txBody["a:p"]).length > 0 && flattenCellTxBodyText(txBody, ensureArray20) === text22
|
|
99890
|
+
);
|
|
99891
|
+
}
|
|
99892
|
+
function rebuildCellTextBody(existingTxBody, text22) {
|
|
99893
|
+
const existingParagraphs = ensureArray19(
|
|
99894
|
+
existingTxBody?.["a:p"]
|
|
99895
|
+
);
|
|
99896
|
+
const firstParagraph = existingParagraphs.length > 0 ? existingParagraphs[0] : void 0;
|
|
99897
|
+
const existingRuns = firstParagraph ? ensureArray19(firstParagraph["a:r"]) : [];
|
|
99898
|
+
const firstRunProps = existingRuns.length > 0 ? existingRuns[0]["a:rPr"] : void 0;
|
|
99899
|
+
const newRun = {};
|
|
99900
|
+
if (firstRunProps !== void 0) {
|
|
99901
|
+
newRun["a:rPr"] = firstRunProps;
|
|
99902
|
+
}
|
|
99903
|
+
newRun["a:t"] = text22;
|
|
99904
|
+
const newParagraph = {};
|
|
99905
|
+
if (firstParagraph?.["a:pPr"] !== void 0) {
|
|
99906
|
+
newParagraph["a:pPr"] = firstParagraph["a:pPr"];
|
|
99907
|
+
}
|
|
99908
|
+
newParagraph["a:r"] = newRun;
|
|
99909
|
+
const newTxBody = {};
|
|
99910
|
+
if (existingTxBody?.["a:bodyPr"] !== void 0) {
|
|
99911
|
+
newTxBody["a:bodyPr"] = existingTxBody["a:bodyPr"];
|
|
99912
|
+
}
|
|
99913
|
+
if (existingTxBody?.["a:lstStyle"] !== void 0) {
|
|
99914
|
+
newTxBody["a:lstStyle"] = existingTxBody["a:lstStyle"];
|
|
99915
|
+
}
|
|
99916
|
+
newTxBody["a:p"] = newParagraph;
|
|
99917
|
+
return newTxBody;
|
|
99918
|
+
}
|
|
99919
|
+
var xmlArray;
|
|
99920
|
+
var init_table_cell_text_xml = __esm({
|
|
99921
|
+
"src/core/core/runtime/table-cell-text-xml.ts"() {
|
|
99922
|
+
init_table_structural_helpers();
|
|
99923
|
+
xmlArray = (value) => ensureArray19(value);
|
|
99924
|
+
}
|
|
99925
|
+
});
|
|
99461
99926
|
function isRichCellTxBody(txBody, ensureArray20) {
|
|
99462
99927
|
if (!txBody) {
|
|
99463
99928
|
return false;
|
|
@@ -99488,6 +99953,8 @@ var init_PptxHandlerRuntimeSaveTableStyles = __esm({
|
|
|
99488
99953
|
init_xml_reorder();
|
|
99489
99954
|
init_PptxHandlerRuntimeLayoutSwitching();
|
|
99490
99955
|
init_table_cell_save_helpers();
|
|
99956
|
+
init_table_cell_text_xml();
|
|
99957
|
+
init_table_cell_text_xml();
|
|
99491
99958
|
PptxHandlerRuntime22 = class _PptxHandlerRuntime extends PptxHandlerRuntime21 {
|
|
99492
99959
|
/**
|
|
99493
99960
|
* Write plain text into a table cell's txBody, preserving
|
|
@@ -99496,10 +99963,8 @@ var init_PptxHandlerRuntimeSaveTableStyles = __esm({
|
|
|
99496
99963
|
writeTableCellText(xmlCell, text22) {
|
|
99497
99964
|
const ensureArray20 = this.ensureArray.bind(this);
|
|
99498
99965
|
const existingTxBody = xmlCell["a:txBody"];
|
|
99499
|
-
if (existingTxBody
|
|
99500
|
-
|
|
99501
|
-
return;
|
|
99502
|
-
}
|
|
99966
|
+
if (tableCellTextBodyMatches(existingTxBody, text22, ensureArray20)) {
|
|
99967
|
+
return;
|
|
99503
99968
|
}
|
|
99504
99969
|
if (!xmlCell["a:txBody"]) {
|
|
99505
99970
|
xmlCell["a:txBody"] = { "a:bodyPr": {}, "a:p": {} };
|
|
@@ -99938,37 +100403,147 @@ var init_save_table_merge_helpers = __esm({
|
|
|
99938
100403
|
];
|
|
99939
100404
|
}
|
|
99940
100405
|
});
|
|
99941
|
-
function
|
|
99942
|
-
|
|
99943
|
-
|
|
100406
|
+
function runTag(run) {
|
|
100407
|
+
return run.isLineBreak ? "a:br" : run.isField ? "a:fld" : "a:r";
|
|
100408
|
+
}
|
|
100409
|
+
function supportsOrder(paragraph, tags) {
|
|
100410
|
+
for (const [key2, value] of Object.entries(paragraph)) {
|
|
100411
|
+
if (key2.startsWith("@_") || key2 === "a:pPr" || key2 === "a:endParaRPr") {
|
|
100412
|
+
continue;
|
|
100413
|
+
}
|
|
100414
|
+
if (key2 === "#text" && String(value).trim() === "") {
|
|
100415
|
+
continue;
|
|
100416
|
+
}
|
|
100417
|
+
if (!CONTENT_TAGS.has(key2)) {
|
|
100418
|
+
return false;
|
|
100419
|
+
}
|
|
99944
100420
|
}
|
|
99945
|
-
return
|
|
100421
|
+
return [...CONTENT_TAGS].every(
|
|
100422
|
+
(tag) => tags.filter((candidate) => candidate === tag).length === ensureItems(paragraph[tag]).length
|
|
100423
|
+
);
|
|
99946
100424
|
}
|
|
99947
|
-
function
|
|
99948
|
-
|
|
99949
|
-
|
|
99950
|
-
|
|
99951
|
-
|
|
99952
|
-
|
|
99953
|
-
|
|
99954
|
-
|
|
99955
|
-
|
|
99956
|
-
|
|
99957
|
-
|
|
99958
|
-
|
|
99959
|
-
|
|
100425
|
+
function matchesParagraph(paragraph, runs) {
|
|
100426
|
+
if (!supportsOrder(paragraph, runs.map(runTag))) {
|
|
100427
|
+
return false;
|
|
100428
|
+
}
|
|
100429
|
+
const consumed = /* @__PURE__ */ new Map();
|
|
100430
|
+
for (const run of runs) {
|
|
100431
|
+
const tag = runTag(run);
|
|
100432
|
+
const index = consumed.get(tag) ?? 0;
|
|
100433
|
+
const node = ensureItems(paragraph[tag])[index];
|
|
100434
|
+
if (node === void 0) {
|
|
100435
|
+
return false;
|
|
100436
|
+
}
|
|
100437
|
+
if (tag !== "a:br" && (!isXmlObject3(node) || String(node["a:t"] ?? "") !== run.text)) {
|
|
100438
|
+
return false;
|
|
100439
|
+
}
|
|
100440
|
+
consumed.set(tag, index + 1);
|
|
100441
|
+
}
|
|
100442
|
+
return true;
|
|
99960
100443
|
}
|
|
99961
|
-
function
|
|
99962
|
-
const
|
|
99963
|
-
|
|
100444
|
+
function recordTableParagraphOrder(xmlCell, textRuns) {
|
|
100445
|
+
const txBody = xmlCell["a:txBody"];
|
|
100446
|
+
const paragraphs = isXmlObject3(txBody) ? ensureItems(txBody["a:p"]) : [];
|
|
100447
|
+
for (const paragraph of paragraphs) {
|
|
100448
|
+
if (isXmlObject3(paragraph)) {
|
|
100449
|
+
paragraphOrders.delete(paragraph);
|
|
100450
|
+
}
|
|
100451
|
+
}
|
|
100452
|
+
if (!textRuns) {
|
|
100453
|
+
return;
|
|
100454
|
+
}
|
|
100455
|
+
const runsByParagraph = [[]];
|
|
100456
|
+
for (const run of textRuns) {
|
|
100457
|
+
if (run.isParagraphBreak) {
|
|
100458
|
+
runsByParagraph.push([]);
|
|
100459
|
+
} else {
|
|
100460
|
+
runsByParagraph.at(-1).push(run);
|
|
100461
|
+
}
|
|
100462
|
+
}
|
|
100463
|
+
if (runsByParagraph.length !== paragraphs.length) {
|
|
100464
|
+
return;
|
|
100465
|
+
}
|
|
100466
|
+
paragraphs.forEach((paragraph, index) => {
|
|
100467
|
+
const runs = runsByParagraph[index];
|
|
100468
|
+
const tags = runs.map(runTag);
|
|
100469
|
+
if (isXmlObject3(paragraph) && !isGroupedByTag(tags) && matchesParagraph(paragraph, runs)) {
|
|
100470
|
+
paragraphOrders.set(paragraph, tags);
|
|
100471
|
+
}
|
|
100472
|
+
});
|
|
99964
100473
|
}
|
|
99965
|
-
|
|
99966
|
-
|
|
99967
|
-
|
|
99968
|
-
|
|
99969
|
-
|
|
99970
|
-
|
|
99971
|
-
|
|
100474
|
+
function orderedParagraph(paragraph, tags) {
|
|
100475
|
+
const result = {};
|
|
100476
|
+
for (const [key2, value] of Object.entries(paragraph)) {
|
|
100477
|
+
if (!CONTENT_TAGS.has(key2) && key2 !== "a:pPr" && key2 !== "a:endParaRPr") {
|
|
100478
|
+
setOwnXmlProperty(result, key2, value);
|
|
100479
|
+
}
|
|
100480
|
+
}
|
|
100481
|
+
if (paragraph["a:pPr"] !== void 0) {
|
|
100482
|
+
result["a:pPr"] = paragraph["a:pPr"];
|
|
100483
|
+
}
|
|
100484
|
+
const consumed = /* @__PURE__ */ new Map();
|
|
100485
|
+
assignOrderedXmlChildren(
|
|
100486
|
+
result,
|
|
100487
|
+
tags.map((tag) => {
|
|
100488
|
+
const index = consumed.get(tag) ?? 0;
|
|
100489
|
+
consumed.set(tag, index + 1);
|
|
100490
|
+
return { tag, node: ensureItems(paragraph[tag])[index] };
|
|
100491
|
+
})
|
|
100492
|
+
);
|
|
100493
|
+
if (paragraph["a:endParaRPr"] !== void 0) {
|
|
100494
|
+
result["a:endParaRPr"] = paragraph["a:endParaRPr"];
|
|
100495
|
+
}
|
|
100496
|
+
return result;
|
|
100497
|
+
}
|
|
100498
|
+
function withOrderedTableParagraphs(value, insideTable = false) {
|
|
100499
|
+
if (Array.isArray(value)) {
|
|
100500
|
+
let result2 = value;
|
|
100501
|
+
value.forEach((item, index) => {
|
|
100502
|
+
const next = withOrderedTableParagraphs(item, insideTable);
|
|
100503
|
+
if (next !== item) {
|
|
100504
|
+
if (result2 === value) {
|
|
100505
|
+
result2 = [...value];
|
|
100506
|
+
}
|
|
100507
|
+
result2[index] = next;
|
|
100508
|
+
}
|
|
100509
|
+
});
|
|
100510
|
+
return result2;
|
|
100511
|
+
}
|
|
100512
|
+
if (!isXmlObject3(value)) {
|
|
100513
|
+
return value;
|
|
100514
|
+
}
|
|
100515
|
+
let result = value;
|
|
100516
|
+
for (const [key2, item] of Object.entries(value)) {
|
|
100517
|
+
if (key2.startsWith("@_") || key2 === "#text") {
|
|
100518
|
+
continue;
|
|
100519
|
+
}
|
|
100520
|
+
const next = withOrderedTableParagraphs(item, insideTable || key2 === "a:tbl");
|
|
100521
|
+
if (next !== item) {
|
|
100522
|
+
if (result === value) {
|
|
100523
|
+
result = { ...value };
|
|
100524
|
+
}
|
|
100525
|
+
setOwnXmlProperty(result, key2, next);
|
|
100526
|
+
}
|
|
100527
|
+
}
|
|
100528
|
+
let tags = paragraphOrders.get(value);
|
|
100529
|
+
if (!tags && insideTable) {
|
|
100530
|
+
const { entries, authored } = paragraphContentEntries(value, CONTENT_TAGS);
|
|
100531
|
+
const sourceTags = entries.map(([tag]) => tag);
|
|
100532
|
+
if (authored && supportsOrder(value, sourceTags)) {
|
|
100533
|
+
tags = sourceTags;
|
|
100534
|
+
}
|
|
100535
|
+
}
|
|
100536
|
+
return tags ? orderedParagraph(result, tags) : result;
|
|
100537
|
+
}
|
|
100538
|
+
var CONTENT_TAGS;
|
|
100539
|
+
var paragraphOrders;
|
|
100540
|
+
var init_table_paragraph_save_order = __esm({
|
|
100541
|
+
"src/core/core/runtime/table-paragraph-save-order.ts"() {
|
|
100542
|
+
init_ordered_xml_children();
|
|
100543
|
+
init_paragraph_sibling_order();
|
|
100544
|
+
init_xml_child_scan();
|
|
100545
|
+
CONTENT_TAGS = /* @__PURE__ */ new Set(["a:r", "a:br", "a:fld"]);
|
|
100546
|
+
paragraphOrders = /* @__PURE__ */ new WeakMap();
|
|
99972
100547
|
}
|
|
99973
100548
|
});
|
|
99974
100549
|
var init_table_row_ops = __esm({
|
|
@@ -100156,6 +100731,157 @@ var init_table_create_xml = __esm({
|
|
|
100156
100731
|
init_table_style_defaults();
|
|
100157
100732
|
}
|
|
100158
100733
|
});
|
|
100734
|
+
function cells(row) {
|
|
100735
|
+
return ensureArray19(row["a:tc"]);
|
|
100736
|
+
}
|
|
100737
|
+
function promoteTextBody(source, next, removed, survivor, axis) {
|
|
100738
|
+
const span = axis === "row" ? "rowSpan" : "gridSpan";
|
|
100739
|
+
const continuation = axis === "row" ? "vMerge" : "hMerge";
|
|
100740
|
+
if (!source?.text || !next || !removed || !survivor || source[continuation] || (source[span] ?? 1) <= 1 || next[continuation] || (next[span] ?? 1) !== (source[span] ?? 1) - 1) {
|
|
100741
|
+
return;
|
|
100742
|
+
}
|
|
100743
|
+
if (removed["a:txBody"] !== void 0) {
|
|
100744
|
+
survivor["a:txBody"] = removed["a:txBody"];
|
|
100745
|
+
}
|
|
100746
|
+
}
|
|
100747
|
+
function applyTableStructureEditXml(table2, source, next, edit) {
|
|
100748
|
+
const rows = ensureArray19(table2["a:tr"]);
|
|
100749
|
+
const grid = table2["a:tblGrid"];
|
|
100750
|
+
const columns = ensureArray19(grid?.["a:gridCol"]);
|
|
100751
|
+
const { axis, action, index } = edit;
|
|
100752
|
+
if (axis !== "row" && axis !== "column" || action !== "insert" && action !== "delete") {
|
|
100753
|
+
return false;
|
|
100754
|
+
}
|
|
100755
|
+
const count = axis === "row" ? rows.length : columns.length;
|
|
100756
|
+
const delta = action === "insert" ? 1 : -1;
|
|
100757
|
+
if (!grid || !Number.isInteger(index) || index < 0 || index > count - (action === "delete" ? 1 : 0) || action === "delete" && count <= 1 || next.rows.length !== rows.length + (axis === "row" ? delta : 0) || next.columnWidths.length !== columns.length + (axis === "column" ? delta : 0)) {
|
|
100758
|
+
return false;
|
|
100759
|
+
}
|
|
100760
|
+
if (axis === "row") {
|
|
100761
|
+
if (action === "insert") {
|
|
100762
|
+
rows.splice(index, 0, createDefaultXmlRow(columns.length));
|
|
100763
|
+
} else {
|
|
100764
|
+
const removedCells = cells(rows[index]);
|
|
100765
|
+
const nextCells = rows[index + 1] ? cells(rows[index + 1]) : [];
|
|
100766
|
+
removedCells.forEach(
|
|
100767
|
+
(removed, column) => promoteTextBody(
|
|
100768
|
+
source?.rows[index]?.cells[column],
|
|
100769
|
+
next.rows[index]?.cells[column],
|
|
100770
|
+
removed,
|
|
100771
|
+
nextCells[column],
|
|
100772
|
+
axis
|
|
100773
|
+
)
|
|
100774
|
+
);
|
|
100775
|
+
rows.splice(index, 1);
|
|
100776
|
+
}
|
|
100777
|
+
table2["a:tr"] = rows.length === 1 ? rows[0] : rows;
|
|
100778
|
+
} else {
|
|
100779
|
+
if (action === "insert") {
|
|
100780
|
+
columns.splice(index, 0, { "@_w": "0" });
|
|
100781
|
+
} else {
|
|
100782
|
+
columns.splice(index, 1);
|
|
100783
|
+
}
|
|
100784
|
+
grid["a:gridCol"] = columns.length === 1 ? columns[0] : columns;
|
|
100785
|
+
rows.forEach((row, rowIndex) => {
|
|
100786
|
+
const rowCells = cells(row);
|
|
100787
|
+
if (action === "insert") {
|
|
100788
|
+
rowCells.splice(index, 0, createDefaultXmlCell());
|
|
100789
|
+
} else {
|
|
100790
|
+
promoteTextBody(
|
|
100791
|
+
source?.rows[rowIndex]?.cells[index],
|
|
100792
|
+
next.rows[rowIndex]?.cells[index],
|
|
100793
|
+
rowCells[index],
|
|
100794
|
+
rowCells[index + 1],
|
|
100795
|
+
axis
|
|
100796
|
+
);
|
|
100797
|
+
rowCells.splice(index, 1);
|
|
100798
|
+
}
|
|
100799
|
+
row["a:tc"] = rowCells.length === 1 ? rowCells[0] : rowCells;
|
|
100800
|
+
});
|
|
100801
|
+
}
|
|
100802
|
+
return true;
|
|
100803
|
+
}
|
|
100804
|
+
var init_table_structure_edit_xml = __esm({
|
|
100805
|
+
"src/core/core/runtime/table-structure-edit-xml.ts"() {
|
|
100806
|
+
init_table_structural_helpers();
|
|
100807
|
+
}
|
|
100808
|
+
});
|
|
100809
|
+
function createDefaultRebuildXmlCell() {
|
|
100810
|
+
return {
|
|
100811
|
+
"a:txBody": {
|
|
100812
|
+
"a:bodyPr": {},
|
|
100813
|
+
"a:lstStyle": {},
|
|
100814
|
+
"a:p": {
|
|
100815
|
+
"a:endParaRPr": { "@_lang": "en-US" }
|
|
100816
|
+
}
|
|
100817
|
+
},
|
|
100818
|
+
"a:tcPr": {}
|
|
100819
|
+
};
|
|
100820
|
+
}
|
|
100821
|
+
function rebuildTableStructureInRawXml(element, tableData, edit) {
|
|
100822
|
+
if (!element.rawXml) {
|
|
100823
|
+
return void 0;
|
|
100824
|
+
}
|
|
100825
|
+
const newRawXml = structuredClone(element.rawXml);
|
|
100826
|
+
const table2 = getTblFromRawXml(newRawXml);
|
|
100827
|
+
if (!table2) {
|
|
100828
|
+
return void 0;
|
|
100829
|
+
}
|
|
100830
|
+
const existingGridCols = ensureArray19(
|
|
100831
|
+
table2["a:tblGrid"]?.["a:gridCol"]
|
|
100832
|
+
);
|
|
100833
|
+
const totalWidthEmu = existingGridCols.reduce((sum, col) => {
|
|
100834
|
+
return sum + (parseInt(String(col?.["@_w"] || "0"), 10) || 0);
|
|
100835
|
+
}, 0) || 9144e3;
|
|
100836
|
+
const appliedEdit = edit ? applyTableStructureEditXml(
|
|
100837
|
+
table2,
|
|
100838
|
+
element.type === "table" ? element.tableData : void 0,
|
|
100839
|
+
tableData,
|
|
100840
|
+
edit
|
|
100841
|
+
) : false;
|
|
100842
|
+
const alignedGridCols = ensureArray19(
|
|
100843
|
+
table2["a:tblGrid"]?.["a:gridCol"]
|
|
100844
|
+
);
|
|
100845
|
+
const newGridCols = tableData.columnWidths.map((w, index) => ({
|
|
100846
|
+
...appliedEdit ? alignedGridCols[index] : {},
|
|
100847
|
+
"@_w": String(Math.round(w * totalWidthEmu))
|
|
100848
|
+
}));
|
|
100849
|
+
if (!table2["a:tblGrid"]) {
|
|
100850
|
+
table2["a:tblGrid"] = {};
|
|
100851
|
+
}
|
|
100852
|
+
table2["a:tblGrid"]["a:gridCol"] = newGridCols.length === 1 ? newGridCols[0] : newGridCols;
|
|
100853
|
+
const existingXmlRows = ensureArray19(table2["a:tr"]);
|
|
100854
|
+
const newXmlRows = tableData.rows.map((dataRow, ri) => {
|
|
100855
|
+
const existingRow = ri < existingXmlRows.length ? existingXmlRows[ri] : void 0;
|
|
100856
|
+
const existingCells = existingRow ? ensureArray19(existingRow["a:tc"]) : [];
|
|
100857
|
+
const heightEmu = dataRow.height ? Math.round(dataRow.height * EMU_PER_PX) : existingRow?.["@_h"] ? parseInt(String(existingRow["@_h"]), 10) : DEFAULT_ROW_HEIGHT_EMU;
|
|
100858
|
+
const newXmlCells = dataRow.cells.map((cell, ci) => {
|
|
100859
|
+
let xmlCell;
|
|
100860
|
+
if (ci < existingCells.length) {
|
|
100861
|
+
xmlCell = existingCells[ci];
|
|
100862
|
+
} else {
|
|
100863
|
+
xmlCell = createDefaultRebuildXmlCell();
|
|
100864
|
+
}
|
|
100865
|
+
serializeCellMergeAttributes(xmlCell, cell);
|
|
100866
|
+
return xmlCell;
|
|
100867
|
+
});
|
|
100868
|
+
return {
|
|
100869
|
+
...appliedEdit ? existingRow : {},
|
|
100870
|
+
"@_h": String(heightEmu),
|
|
100871
|
+
"a:tc": newXmlCells.length === 1 ? newXmlCells[0] : newXmlCells
|
|
100872
|
+
};
|
|
100873
|
+
});
|
|
100874
|
+
table2["a:tr"] = newXmlRows.length === 1 ? newXmlRows[0] : newXmlRows;
|
|
100875
|
+
return newRawXml;
|
|
100876
|
+
}
|
|
100877
|
+
var init_table_structure_rawxml = __esm({
|
|
100878
|
+
"src/core/core/runtime/table-structure-rawxml.ts"() {
|
|
100879
|
+
init_constants();
|
|
100880
|
+
init_save_table_merge_helpers();
|
|
100881
|
+
init_table_structural_helpers();
|
|
100882
|
+
init_table_structure_edit_xml();
|
|
100883
|
+
}
|
|
100884
|
+
});
|
|
100159
100885
|
function updateCellTextInRawXml(element, rowIndex, colIndex, text22) {
|
|
100160
100886
|
if (!element.rawXml) {
|
|
100161
100887
|
return void 0;
|
|
@@ -100169,43 +100895,16 @@ function updateCellTextInRawXml(element, rowIndex, colIndex, text22) {
|
|
|
100169
100895
|
if (rowIndex < 0 || rowIndex >= rows.length) {
|
|
100170
100896
|
return void 0;
|
|
100171
100897
|
}
|
|
100172
|
-
const
|
|
100173
|
-
if (colIndex < 0 || colIndex >=
|
|
100898
|
+
const cells2 = ensureArray19(rows[rowIndex]["a:tc"]);
|
|
100899
|
+
if (colIndex < 0 || colIndex >= cells2.length) {
|
|
100174
100900
|
return void 0;
|
|
100175
100901
|
}
|
|
100176
|
-
|
|
100177
|
-
|
|
100902
|
+
cells2[colIndex]["a:txBody"] = rebuildCellTextBody(
|
|
100903
|
+
cells2[colIndex]["a:txBody"],
|
|
100178
100904
|
text22
|
|
100179
100905
|
);
|
|
100180
100906
|
return newRawXml;
|
|
100181
100907
|
}
|
|
100182
|
-
function rebuildCellTextBody(existingTxBody, text22) {
|
|
100183
|
-
const existingParagraphs = ensureArray19(
|
|
100184
|
-
existingTxBody?.["a:p"]
|
|
100185
|
-
);
|
|
100186
|
-
const firstParagraph = existingParagraphs.length > 0 ? existingParagraphs[0] : void 0;
|
|
100187
|
-
const existingRuns = firstParagraph ? ensureArray19(firstParagraph["a:r"]) : [];
|
|
100188
|
-
const firstRunProps = existingRuns.length > 0 ? existingRuns[0]["a:rPr"] : void 0;
|
|
100189
|
-
const newRun = {};
|
|
100190
|
-
if (firstRunProps !== void 0) {
|
|
100191
|
-
newRun["a:rPr"] = firstRunProps;
|
|
100192
|
-
}
|
|
100193
|
-
newRun["a:t"] = text22;
|
|
100194
|
-
const newParagraph = {};
|
|
100195
|
-
if (firstParagraph?.["a:pPr"] !== void 0) {
|
|
100196
|
-
newParagraph["a:pPr"] = firstParagraph["a:pPr"];
|
|
100197
|
-
}
|
|
100198
|
-
newParagraph["a:r"] = newRun;
|
|
100199
|
-
const newTxBody = {};
|
|
100200
|
-
if (existingTxBody?.["a:bodyPr"] !== void 0) {
|
|
100201
|
-
newTxBody["a:bodyPr"] = existingTxBody["a:bodyPr"];
|
|
100202
|
-
}
|
|
100203
|
-
if (existingTxBody?.["a:lstStyle"] !== void 0) {
|
|
100204
|
-
newTxBody["a:lstStyle"] = existingTxBody["a:lstStyle"];
|
|
100205
|
-
}
|
|
100206
|
-
newTxBody["a:p"] = newParagraph;
|
|
100207
|
-
return newTxBody;
|
|
100208
|
-
}
|
|
100209
100908
|
function updateCellTextStyleInRawXml(element, rowIndex, colIndex, styleUpdates) {
|
|
100210
100909
|
if (!element.rawXml) {
|
|
100211
100910
|
return void 0;
|
|
@@ -100219,11 +100918,11 @@ function updateCellTextStyleInRawXml(element, rowIndex, colIndex, styleUpdates)
|
|
|
100219
100918
|
if (rowIndex < 0 || rowIndex >= rows.length) {
|
|
100220
100919
|
return void 0;
|
|
100221
100920
|
}
|
|
100222
|
-
const
|
|
100223
|
-
if (colIndex < 0 || colIndex >=
|
|
100921
|
+
const cells2 = ensureArray19(rows[rowIndex]["a:tc"]);
|
|
100922
|
+
if (colIndex < 0 || colIndex >= cells2.length) {
|
|
100224
100923
|
return void 0;
|
|
100225
100924
|
}
|
|
100226
|
-
const cell =
|
|
100925
|
+
const cell = cells2[colIndex];
|
|
100227
100926
|
const txBody = cell["a:txBody"];
|
|
100228
100927
|
if (!txBody) {
|
|
100229
100928
|
return void 0;
|
|
@@ -100344,97 +101043,20 @@ function updateMergeAttrsInRawXml(element, tableData) {
|
|
|
100344
101043
|
} else {
|
|
100345
101044
|
delete xmlCell["@_vMerge"];
|
|
100346
101045
|
}
|
|
100347
|
-
|
|
100348
|
-
|
|
100349
|
-
|
|
100350
|
-
cell.text
|
|
100351
|
-
);
|
|
101046
|
+
const txBody = xmlCell["a:txBody"];
|
|
101047
|
+
if (cell.text !== void 0 && !tableCellTextBodyMatches(txBody, cell.text)) {
|
|
101048
|
+
xmlCell["a:txBody"] = rebuildCellTextBody(txBody, cell.text);
|
|
100352
101049
|
}
|
|
100353
101050
|
}
|
|
100354
101051
|
}
|
|
100355
101052
|
return newRawXml;
|
|
100356
101053
|
}
|
|
100357
|
-
function createDefaultRebuildXmlCell() {
|
|
100358
|
-
return {
|
|
100359
|
-
"a:txBody": {
|
|
100360
|
-
"a:bodyPr": {},
|
|
100361
|
-
"a:lstStyle": {},
|
|
100362
|
-
"a:p": {
|
|
100363
|
-
"a:endParaRPr": { "@_lang": "en-US" }
|
|
100364
|
-
}
|
|
100365
|
-
},
|
|
100366
|
-
"a:tcPr": {}
|
|
100367
|
-
};
|
|
100368
|
-
}
|
|
100369
|
-
function rebuildTableStructureInRawXml(element, tableData) {
|
|
100370
|
-
if (!element.rawXml) {
|
|
100371
|
-
return void 0;
|
|
100372
|
-
}
|
|
100373
|
-
const newRawXml = structuredClone(element.rawXml);
|
|
100374
|
-
const table2 = getTblFromRawXml(newRawXml);
|
|
100375
|
-
if (!table2) {
|
|
100376
|
-
return void 0;
|
|
100377
|
-
}
|
|
100378
|
-
const existingGridCols = ensureArray19(
|
|
100379
|
-
table2["a:tblGrid"]?.["a:gridCol"]
|
|
100380
|
-
);
|
|
100381
|
-
const totalWidthEmu = existingGridCols.reduce((sum, col) => {
|
|
100382
|
-
return sum + (parseInt(String(col?.["@_w"] || "0"), 10) || 0);
|
|
100383
|
-
}, 0) || 9144e3;
|
|
100384
|
-
const newGridCols = tableData.columnWidths.map((w) => ({
|
|
100385
|
-
"@_w": String(Math.round(w * totalWidthEmu))
|
|
100386
|
-
}));
|
|
100387
|
-
if (!table2["a:tblGrid"]) {
|
|
100388
|
-
table2["a:tblGrid"] = {};
|
|
100389
|
-
}
|
|
100390
|
-
table2["a:tblGrid"]["a:gridCol"] = newGridCols.length === 1 ? newGridCols[0] : newGridCols;
|
|
100391
|
-
const existingXmlRows = ensureArray19(table2["a:tr"]);
|
|
100392
|
-
const newXmlRows = tableData.rows.map((dataRow, ri) => {
|
|
100393
|
-
const existingRow = ri < existingXmlRows.length ? existingXmlRows[ri] : void 0;
|
|
100394
|
-
const existingCells = existingRow ? ensureArray19(existingRow["a:tc"]) : [];
|
|
100395
|
-
const heightEmu = dataRow.height ? Math.round(dataRow.height * EMU_PER_PX) : existingRow?.["@_h"] ? parseInt(String(existingRow["@_h"]), 10) : DEFAULT_ROW_HEIGHT_EMU;
|
|
100396
|
-
const newXmlCells = dataRow.cells.map((cell, ci) => {
|
|
100397
|
-
let xmlCell;
|
|
100398
|
-
if (ci < existingCells.length) {
|
|
100399
|
-
xmlCell = structuredClone(existingCells[ci]);
|
|
100400
|
-
} else {
|
|
100401
|
-
xmlCell = createDefaultRebuildXmlCell();
|
|
100402
|
-
}
|
|
100403
|
-
if (cell.gridSpan !== void 0 && cell.gridSpan > 1) {
|
|
100404
|
-
xmlCell["@_gridSpan"] = String(cell.gridSpan);
|
|
100405
|
-
} else {
|
|
100406
|
-
delete xmlCell["@_gridSpan"];
|
|
100407
|
-
}
|
|
100408
|
-
if (cell.rowSpan !== void 0 && cell.rowSpan > 1) {
|
|
100409
|
-
xmlCell["@_rowSpan"] = String(cell.rowSpan);
|
|
100410
|
-
} else {
|
|
100411
|
-
delete xmlCell["@_rowSpan"];
|
|
100412
|
-
}
|
|
100413
|
-
if (cell.hMerge) {
|
|
100414
|
-
xmlCell["@_hMerge"] = "1";
|
|
100415
|
-
} else {
|
|
100416
|
-
delete xmlCell["@_hMerge"];
|
|
100417
|
-
}
|
|
100418
|
-
if (cell.vMerge) {
|
|
100419
|
-
xmlCell["@_vMerge"] = "1";
|
|
100420
|
-
} else {
|
|
100421
|
-
delete xmlCell["@_vMerge"];
|
|
100422
|
-
}
|
|
100423
|
-
return xmlCell;
|
|
100424
|
-
});
|
|
100425
|
-
return {
|
|
100426
|
-
"@_h": String(heightEmu),
|
|
100427
|
-
"a:tc": newXmlCells.length === 1 ? newXmlCells[0] : newXmlCells
|
|
100428
|
-
};
|
|
100429
|
-
});
|
|
100430
|
-
table2["a:tr"] = newXmlRows.length === 1 ? newXmlRows[0] : newXmlRows;
|
|
100431
|
-
return newRawXml;
|
|
100432
|
-
}
|
|
100433
101054
|
var init_table_cell_rawxml_ops = __esm({
|
|
100434
101055
|
"src/core/core/runtime/table-cell-rawxml-ops.ts"() {
|
|
100435
|
-
init_constants();
|
|
100436
101056
|
init_xml_access();
|
|
101057
|
+
init_table_cell_text_xml();
|
|
100437
101058
|
init_table_structural_helpers();
|
|
101059
|
+
init_table_structure_rawxml();
|
|
100438
101060
|
}
|
|
100439
101061
|
});
|
|
100440
101062
|
var init_table_structural_ops = __esm({
|
|
@@ -100665,6 +101287,7 @@ var init_PptxHandlerRuntimeSaveDataSerialization = __esm({
|
|
|
100665
101287
|
init_chart_part_family_switch();
|
|
100666
101288
|
init_PptxHandlerRuntimeChartUserShapes();
|
|
100667
101289
|
init_save_table_merge_helpers();
|
|
101290
|
+
init_table_paragraph_save_order();
|
|
100668
101291
|
init_table_structural_ops();
|
|
100669
101292
|
init_table_tblpr_save();
|
|
100670
101293
|
CHART_DATA_DISPLAY_OPTIONS_EXT_URI = "{56B9EC1D-385E-4148-901F-78D8002777C0}";
|
|
@@ -100742,6 +101365,7 @@ var init_PptxHandlerRuntimeSaveDataSerialization = __esm({
|
|
|
100742
101365
|
this.writeTableCellStyle(xmlCell, cell.style);
|
|
100743
101366
|
}
|
|
100744
101367
|
serializeCellExtraAttributes(xmlCell, cell.extraAttributes);
|
|
101368
|
+
recordTableParagraphOrder(xmlCell, cell.textRuns);
|
|
100745
101369
|
}
|
|
100746
101370
|
}
|
|
100747
101371
|
} catch (e) {
|
|
@@ -102418,6 +103042,7 @@ var init_PptxHandlerRuntimeSaveDocumentParts = __esm({
|
|
|
102418
103042
|
init_smartart_save_chrome();
|
|
102419
103043
|
init_smartart_save_geometry();
|
|
102420
103044
|
init_smartart_xml_builders();
|
|
103045
|
+
init_table_paragraph_save_order();
|
|
102421
103046
|
PptxHandlerRuntime25 = class _PptxHandlerRuntime extends PptxHandlerRuntime24 {
|
|
102422
103047
|
/** Pending SmartArt data updates to process during save. */
|
|
102423
103048
|
pendingSmartArtUpdates;
|
|
@@ -102694,7 +103319,7 @@ var init_PptxHandlerRuntimeSaveDocumentParts = __esm({
|
|
|
102694
103319
|
);
|
|
102695
103320
|
root["p:cSld"] = cSld;
|
|
102696
103321
|
data["p:notesMaster"] = root;
|
|
102697
|
-
this.zip.file(notesMaster.path, this.builder.build(data));
|
|
103322
|
+
this.zip.file(notesMaster.path, this.builder.build(withOrderedTableParagraphs(data)));
|
|
102698
103323
|
} catch (e) {
|
|
102699
103324
|
console.warn("Failed to save notes master changes:", e);
|
|
102700
103325
|
}
|
|
@@ -102729,7 +103354,7 @@ var init_PptxHandlerRuntimeSaveDocumentParts = __esm({
|
|
|
102729
103354
|
);
|
|
102730
103355
|
root["p:cSld"] = cSld;
|
|
102731
103356
|
data["p:handoutMaster"] = root;
|
|
102732
|
-
this.zip.file(handoutMaster.path, this.builder.build(data));
|
|
103357
|
+
this.zip.file(handoutMaster.path, this.builder.build(withOrderedTableParagraphs(data)));
|
|
102733
103358
|
} catch (e) {
|
|
102734
103359
|
console.warn("Failed to save handout master changes:", e);
|
|
102735
103360
|
}
|
|
@@ -106976,7 +107601,7 @@ function buildOrderedSlideXml(options) {
|
|
|
106976
107601
|
}
|
|
106977
107602
|
}
|
|
106978
107603
|
nextSlide = orderSlideRootChildren(nextSlide, getLocalName2);
|
|
106979
|
-
return { ...xmlObj, "p:sld": nextSlide };
|
|
107604
|
+
return withOrderedTableParagraphs({ ...xmlObj, "p:sld": nextSlide });
|
|
106980
107605
|
}
|
|
106981
107606
|
var ALTERNATE_CONTENT_TAG;
|
|
106982
107607
|
var UNRANKED;
|
|
@@ -106988,6 +107613,7 @@ var init_slide_save_xml_order = __esm({
|
|
|
106988
107613
|
"src/core/core/runtime/slide-save-xml-order.ts"() {
|
|
106989
107614
|
init_utils();
|
|
106990
107615
|
init_ordered_xml_children();
|
|
107616
|
+
init_table_paragraph_save_order();
|
|
106991
107617
|
ALTERNATE_CONTENT_TAG = "mc:AlternateContent";
|
|
106992
107618
|
UNRANKED = Number.MAX_SAFE_INTEGER;
|
|
106993
107619
|
COLLECTOR_KEYS = [
|
|
@@ -108482,12 +109108,12 @@ function orderedTemplatePartXml(options) {
|
|
|
108482
109108
|
const rebuilt = positionsByRuntime.get(runtime)?.get(partPath);
|
|
108483
109109
|
const ordered4 = rebuilt ? orderShapeTreeChildren(rewrapped, (node) => rebuilt.get(node), getLocalName2) : orderContainer(rewrapped, sourceXml ? scanSpTreeDocumentOrder(sourceXml) : [], getLocalName2);
|
|
108484
109110
|
if (ordered4 === spTree) {
|
|
108485
|
-
return xmlObj;
|
|
109111
|
+
return withOrderedTableParagraphs(xmlObj);
|
|
108486
109112
|
}
|
|
108487
109113
|
const nextRoot = { ...root, "p:cSld": { ...commonSlideData, "p:spTree": ordered4 } };
|
|
108488
109114
|
const nextPart = { ...xmlObj };
|
|
108489
109115
|
setOwnXmlProperty(nextPart, rootTag2, nextRoot);
|
|
108490
|
-
return nextPart;
|
|
109116
|
+
return withOrderedTableParagraphs(nextPart);
|
|
108491
109117
|
}
|
|
108492
109118
|
var ALTERNATE_CONTENT_TAG3;
|
|
108493
109119
|
var positionsByRuntime;
|
|
@@ -108497,6 +109123,7 @@ var init_template_sp_tree_order = __esm({
|
|
|
108497
109123
|
init_ordered_xml_children();
|
|
108498
109124
|
init_slide_save_xml_order();
|
|
108499
109125
|
init_sp_tree_document_order_scan();
|
|
109126
|
+
init_table_paragraph_save_order();
|
|
108500
109127
|
ALTERNATE_CONTENT_TAG3 = "mc:AlternateContent";
|
|
108501
109128
|
positionsByRuntime = /* @__PURE__ */ new WeakMap();
|
|
108502
109129
|
}
|
|
@@ -112490,11 +113117,7 @@ var init_PptxHandlerRuntimeShapeParagraphContentParsing = __esm({
|
|
|
112490
113117
|
processField(f6);
|
|
112491
113118
|
}
|
|
112492
113119
|
};
|
|
112493
|
-
const { entries, authored } = paragraphContentEntries(
|
|
112494
|
-
p,
|
|
112495
|
-
PARAGRAPH_CONTENT_TAGS,
|
|
112496
|
-
(value) => this.ensureArray(value)
|
|
112497
|
-
);
|
|
113120
|
+
const { entries, authored } = paragraphContentEntries(p, PARAGRAPH_CONTENT_TAGS);
|
|
112498
113121
|
const runCount = this.ensureArray(p["a:r"]).length;
|
|
112499
113122
|
const breakCount = this.ensureArray(p["a:br"]).length;
|
|
112500
113123
|
const insertCollapsedBreaks = !authored && runCount > 1 && breakCount > 0;
|
|
@@ -136241,8 +136864,8 @@ var ChartElementProcessor = class {
|
|
|
136241
136864
|
widths[widths.length - 1] = Math.max(widths[widths.length - 1], pct2.length);
|
|
136242
136865
|
}
|
|
136243
136866
|
}
|
|
136244
|
-
const formatRow = (
|
|
136245
|
-
const padded =
|
|
136867
|
+
const formatRow = (cells2) => {
|
|
136868
|
+
const padded = cells2.map((cell, index) => cell.padEnd(widths[index]));
|
|
136246
136869
|
return `| ${padded.join(" | ")} |`;
|
|
136247
136870
|
};
|
|
136248
136871
|
const separator = `| ${widths.map((width) => "-".repeat(width)).join(" | ")} |`;
|
|
@@ -136802,7 +137425,7 @@ var TableElementProcessor = class {
|
|
|
136802
137425
|
const row = tableData.rows[ri];
|
|
136803
137426
|
const isHeader = ri === 0 && tableData.firstRowHeader !== false;
|
|
136804
137427
|
const tag = isHeader ? "th" : "td";
|
|
136805
|
-
const
|
|
137428
|
+
const cells2 = [];
|
|
136806
137429
|
let ci = 0;
|
|
136807
137430
|
for (const cell of row.cells) {
|
|
136808
137431
|
while (this.isOccupied(rowSpanOccupancy, ri, ci)) {
|
|
@@ -136823,11 +137446,11 @@ var TableElementProcessor = class {
|
|
|
136823
137446
|
}
|
|
136824
137447
|
const attrs3 = this.buildCellAttrs(cell, gridSpan, rowSpan, isHeader);
|
|
136825
137448
|
const content = this.renderCellContent(cell);
|
|
136826
|
-
|
|
137449
|
+
cells2.push(`<${tag}${attrs3}>${content}</${tag}>`);
|
|
136827
137450
|
ci += gridSpan;
|
|
136828
137451
|
}
|
|
136829
|
-
if (
|
|
136830
|
-
htmlRows.push(`<tr>${
|
|
137452
|
+
if (cells2.length > 0) {
|
|
137453
|
+
htmlRows.push(`<tr>${cells2.join("")}</tr>`);
|
|
136831
137454
|
}
|
|
136832
137455
|
}
|
|
136833
137456
|
if (htmlRows.length === 0) {
|
|
@@ -137043,14 +137666,14 @@ ${htmlRows.join("\n")}
|
|
|
137043
137666
|
const mdRows = [];
|
|
137044
137667
|
const hasHeader = tableData.firstRowHeader !== false;
|
|
137045
137668
|
for (let ri = 0; ri < rows.length; ri++) {
|
|
137046
|
-
const
|
|
137669
|
+
const cells2 = rows[ri].cells.map((cell) => {
|
|
137047
137670
|
const text22 = this.getCellFormattedText(cell);
|
|
137048
137671
|
return this.escapeMarkdownTableCell(text22);
|
|
137049
137672
|
});
|
|
137050
|
-
while (
|
|
137051
|
-
|
|
137673
|
+
while (cells2.length < columnCount) {
|
|
137674
|
+
cells2.push("");
|
|
137052
137675
|
}
|
|
137053
|
-
mdRows.push(`| ${
|
|
137676
|
+
mdRows.push(`| ${cells2.join(" | ")} |`);
|
|
137054
137677
|
if (ri === 0 && hasHeader) {
|
|
137055
137678
|
const divider = Array.from({ length: columnCount }, () => "---");
|
|
137056
137679
|
mdRows.push(`| ${divider.join(" | ")} |`);
|
|
@@ -138371,8 +138994,8 @@ var OmmlLatexConverter = class {
|
|
|
138371
138994
|
return null;
|
|
138372
138995
|
}
|
|
138373
138996
|
const rows = this.toRecordArray(m["m:mr"]).map((row) => {
|
|
138374
|
-
const
|
|
138375
|
-
return
|
|
138997
|
+
const cells2 = this.toRecordArray(row["m:e"]).map((entry2) => this.renderNode(entry2).trim()).filter((entry2) => entry2.length > 0);
|
|
138998
|
+
return cells2.join(" & ");
|
|
138376
138999
|
}).filter((row) => row.length > 0);
|
|
138377
139000
|
if (rows.length === 0) {
|
|
138378
139001
|
return null;
|
|
@@ -143822,6 +144445,60 @@ var NOMINAL_ENVELOPE_BAND = {
|
|
|
143822
144445
|
top: TOP_MARGIN,
|
|
143823
144446
|
bottom: BOTTOM_MARGIN
|
|
143824
144447
|
};
|
|
144448
|
+
var measureCtx;
|
|
144449
|
+
function getMeasureCtx() {
|
|
144450
|
+
if (measureCtx !== void 0) {
|
|
144451
|
+
return measureCtx;
|
|
144452
|
+
}
|
|
144453
|
+
if (typeof document === "undefined") {
|
|
144454
|
+
measureCtx = null;
|
|
144455
|
+
return null;
|
|
144456
|
+
}
|
|
144457
|
+
measureCtx = document.createElement("canvas").getContext("2d");
|
|
144458
|
+
return measureCtx;
|
|
144459
|
+
}
|
|
144460
|
+
function toCanvasFont(font) {
|
|
144461
|
+
const size = font.fontSizePx && font.fontSizePx > 0 ? font.fontSizePx : DEFAULT_TEXT_FONT_SIZE2;
|
|
144462
|
+
const family = font.fontFamily || DEFAULT_FONT_FAMILY2;
|
|
144463
|
+
return `${font.italic ? "italic " : ""}${font.bold ? "bold " : ""}${size}px ${family}`;
|
|
144464
|
+
}
|
|
144465
|
+
function measureGlyphAdvances(text22, font) {
|
|
144466
|
+
const chars = [...text22];
|
|
144467
|
+
const ctx = getMeasureCtx();
|
|
144468
|
+
if (!ctx) {
|
|
144469
|
+
const size = font.fontSizePx && font.fontSizePx > 0 ? font.fontSizePx : DEFAULT_TEXT_FONT_SIZE2;
|
|
144470
|
+
return chars.map(() => size * 0.55);
|
|
144471
|
+
}
|
|
144472
|
+
ctx.font = toCanvasFont(font);
|
|
144473
|
+
const advances = [];
|
|
144474
|
+
let previous = 0;
|
|
144475
|
+
let prefix = "";
|
|
144476
|
+
for (const char of chars) {
|
|
144477
|
+
prefix += char;
|
|
144478
|
+
const width = ctx.measureText(prefix).width;
|
|
144479
|
+
advances.push(Math.max(0, width - previous));
|
|
144480
|
+
previous = width;
|
|
144481
|
+
}
|
|
144482
|
+
return advances;
|
|
144483
|
+
}
|
|
144484
|
+
function measureLineAscent(segments) {
|
|
144485
|
+
const ctx = getMeasureCtx();
|
|
144486
|
+
if (!ctx) {
|
|
144487
|
+
return void 0;
|
|
144488
|
+
}
|
|
144489
|
+
let maxAscent = 0;
|
|
144490
|
+
for (const segment of segments) {
|
|
144491
|
+
if (!segment.text) {
|
|
144492
|
+
continue;
|
|
144493
|
+
}
|
|
144494
|
+
ctx.font = toCanvasFont(segment.font);
|
|
144495
|
+
const ascent = ctx.measureText(segment.text).actualBoundingBoxAscent;
|
|
144496
|
+
if (Number.isFinite(ascent) && ascent > maxAscent) {
|
|
144497
|
+
maxAscent = ascent;
|
|
144498
|
+
}
|
|
144499
|
+
}
|
|
144500
|
+
return maxAscent > 0 ? maxAscent : void 0;
|
|
144501
|
+
}
|
|
143825
144502
|
function sliceBand(top, bottom, index, count) {
|
|
143826
144503
|
const span = bottom - top;
|
|
143827
144504
|
return {
|
|
@@ -143829,11 +144506,31 @@ function sliceBand(top, bottom, index, count) {
|
|
|
143829
144506
|
bottom: top + (index + 1) / count * span
|
|
143830
144507
|
};
|
|
143831
144508
|
}
|
|
143832
|
-
function
|
|
144509
|
+
function deformedBandAt(preset, u, adj, adj2, height) {
|
|
143833
144510
|
const curve = envelopeCurveAt(preset, u, adj, adj2);
|
|
143834
|
-
|
|
143835
|
-
|
|
143836
|
-
|
|
144511
|
+
return {
|
|
144512
|
+
top: (curve?.top ?? NOMINAL_ENVELOPE_BAND.top) * height,
|
|
144513
|
+
bottom: (curve?.bottom ?? NOMINAL_ENVELOPE_BAND.bottom) * height
|
|
144514
|
+
};
|
|
144515
|
+
}
|
|
144516
|
+
var ROW_BOUNDARY_REFERENCE_U = 0.5;
|
|
144517
|
+
function edgeBandAt(preset, u, adj, adj2, height, lineIndex, lineCount) {
|
|
144518
|
+
const actual = deformedBandAt(preset, u, adj, adj2, height);
|
|
144519
|
+
if (lineCount <= 1) {
|
|
144520
|
+
return sliceBand(actual.top, actual.bottom, 0, 1);
|
|
144521
|
+
}
|
|
144522
|
+
const reference = deformedBandAt(preset, ROW_BOUNDARY_REFERENCE_U, adj, adj2, height);
|
|
144523
|
+
const fixedSlice = sliceBand(reference.top, reference.bottom, lineIndex, lineCount);
|
|
144524
|
+
const isFirstRow = lineIndex <= 0;
|
|
144525
|
+
const isLastRow = lineIndex >= lineCount - 1;
|
|
144526
|
+
const flatTop = NOMINAL_ENVELOPE_BAND.top * height;
|
|
144527
|
+
const flatBottom = NOMINAL_ENVELOPE_BAND.bottom * height;
|
|
144528
|
+
const dampedOuterTop = flatTop + (actual.top - flatTop) / lineCount;
|
|
144529
|
+
const dampedOuterBottom = flatBottom + (actual.bottom - flatBottom) / lineCount;
|
|
144530
|
+
return {
|
|
144531
|
+
top: isFirstRow ? dampedOuterTop : fixedSlice.top,
|
|
144532
|
+
bottom: isLastRow ? dampedOuterBottom : fixedSlice.bottom
|
|
144533
|
+
};
|
|
143837
144534
|
}
|
|
143838
144535
|
function glyphEnvelopeMatrix(x0, x1, edge0, edge1, nomTop, nomBottom) {
|
|
143839
144536
|
const nominalSpan = nomBottom - nomTop;
|
|
@@ -143846,6 +144543,34 @@ function glyphEnvelopeMatrix(x0, x1, edge0, edge1, nomTop, nomBottom) {
|
|
|
143846
144543
|
const f6 = grandMean - b * meanX - d * meanY;
|
|
143847
144544
|
return `matrix(1 ${b} 0 ${d} 0 ${f6})`;
|
|
143848
144545
|
}
|
|
144546
|
+
function scaleOutlineCommandsX(commands, originX, scale2) {
|
|
144547
|
+
if (scale2 === 1) {
|
|
144548
|
+
return commands;
|
|
144549
|
+
}
|
|
144550
|
+
const sx = (x) => originX + (x - originX) * scale2;
|
|
144551
|
+
return commands.map((cmd) => {
|
|
144552
|
+
switch (cmd.type) {
|
|
144553
|
+
case "M":
|
|
144554
|
+
case "L":
|
|
144555
|
+
return { type: cmd.type, x: sx(cmd.x), y: cmd.y };
|
|
144556
|
+
case "Q":
|
|
144557
|
+
return { type: "Q", x1: sx(cmd.x1), y1: cmd.y1, x: sx(cmd.x), y: cmd.y };
|
|
144558
|
+
case "C":
|
|
144559
|
+
return {
|
|
144560
|
+
type: "C",
|
|
144561
|
+
x1: sx(cmd.x1),
|
|
144562
|
+
y1: cmd.y1,
|
|
144563
|
+
x2: sx(cmd.x2),
|
|
144564
|
+
y2: cmd.y2,
|
|
144565
|
+
x: sx(cmd.x),
|
|
144566
|
+
y: cmd.y
|
|
144567
|
+
};
|
|
144568
|
+
case "Z":
|
|
144569
|
+
default:
|
|
144570
|
+
return cmd;
|
|
144571
|
+
}
|
|
144572
|
+
});
|
|
144573
|
+
}
|
|
143849
144574
|
function mapYThroughEnvelopeBand(y, nomTop, nomBottom, edgeTop, edgeBottom) {
|
|
143850
144575
|
const nominalSpan = nomBottom - nomTop;
|
|
143851
144576
|
if (nominalSpan <= 0) {
|
|
@@ -143975,75 +144700,16 @@ function buildGlyphSlices(preset, x0, x1, u0, u1, adj, adj2, height, lineIndex,
|
|
|
143975
144700
|
const sliceX1 = x0 + (x1 - x0) * (i2 + 1) / n;
|
|
143976
144701
|
const sliceU0 = u0 + (u1 - u0) * i2 / n;
|
|
143977
144702
|
const sliceU1 = u0 + (u1 - u0) * (i2 + 1) / n;
|
|
144703
|
+
const e0 = edgeAt(sliceU0);
|
|
144704
|
+
const e1 = edgeAt(sliceU1);
|
|
143978
144705
|
slices.push({
|
|
143979
144706
|
clipX0: sliceX0 - (i2 === 0 ? 0 : SEAM_OVERLAP_PX),
|
|
143980
144707
|
clipX1: sliceX1 + (i2 === n - 1 ? 0 : SEAM_OVERLAP_PX),
|
|
143981
|
-
transform: glyphEnvelopeMatrix(
|
|
143982
|
-
sliceX0,
|
|
143983
|
-
sliceX1,
|
|
143984
|
-
edgeAt(sliceU0),
|
|
143985
|
-
edgeAt(sliceU1),
|
|
143986
|
-
nomTop,
|
|
143987
|
-
nomBottom
|
|
143988
|
-
)
|
|
144708
|
+
transform: glyphEnvelopeMatrix(sliceX0, sliceX1, e0, e1, nomTop, nomBottom)
|
|
143989
144709
|
});
|
|
143990
144710
|
}
|
|
143991
144711
|
return slices;
|
|
143992
144712
|
}
|
|
143993
|
-
var measureCtx;
|
|
143994
|
-
function getMeasureCtx() {
|
|
143995
|
-
if (measureCtx !== void 0) {
|
|
143996
|
-
return measureCtx;
|
|
143997
|
-
}
|
|
143998
|
-
if (typeof document === "undefined") {
|
|
143999
|
-
measureCtx = null;
|
|
144000
|
-
return null;
|
|
144001
|
-
}
|
|
144002
|
-
measureCtx = document.createElement("canvas").getContext("2d");
|
|
144003
|
-
return measureCtx;
|
|
144004
|
-
}
|
|
144005
|
-
function toCanvasFont(font) {
|
|
144006
|
-
const size = font.fontSizePx && font.fontSizePx > 0 ? font.fontSizePx : DEFAULT_TEXT_FONT_SIZE2;
|
|
144007
|
-
const family = font.fontFamily || DEFAULT_FONT_FAMILY2;
|
|
144008
|
-
return `${font.italic ? "italic " : ""}${font.bold ? "bold " : ""}${size}px ${family}`;
|
|
144009
|
-
}
|
|
144010
|
-
function measureGlyphAdvances(text22, font) {
|
|
144011
|
-
const chars = [...text22];
|
|
144012
|
-
const ctx = getMeasureCtx();
|
|
144013
|
-
if (!ctx) {
|
|
144014
|
-
const size = font.fontSizePx && font.fontSizePx > 0 ? font.fontSizePx : DEFAULT_TEXT_FONT_SIZE2;
|
|
144015
|
-
return chars.map(() => size * 0.55);
|
|
144016
|
-
}
|
|
144017
|
-
ctx.font = toCanvasFont(font);
|
|
144018
|
-
const advances = [];
|
|
144019
|
-
let previous = 0;
|
|
144020
|
-
let prefix = "";
|
|
144021
|
-
for (const char of chars) {
|
|
144022
|
-
prefix += char;
|
|
144023
|
-
const width = ctx.measureText(prefix).width;
|
|
144024
|
-
advances.push(Math.max(0, width - previous));
|
|
144025
|
-
previous = width;
|
|
144026
|
-
}
|
|
144027
|
-
return advances;
|
|
144028
|
-
}
|
|
144029
|
-
function measureLineAscent(segments) {
|
|
144030
|
-
const ctx = getMeasureCtx();
|
|
144031
|
-
if (!ctx) {
|
|
144032
|
-
return void 0;
|
|
144033
|
-
}
|
|
144034
|
-
let maxAscent = 0;
|
|
144035
|
-
for (const segment of segments) {
|
|
144036
|
-
if (!segment.text) {
|
|
144037
|
-
continue;
|
|
144038
|
-
}
|
|
144039
|
-
ctx.font = toCanvasFont(segment.font);
|
|
144040
|
-
const ascent = ctx.measureText(segment.text).actualBoundingBoxAscent;
|
|
144041
|
-
if (Number.isFinite(ascent) && ascent > maxAscent) {
|
|
144042
|
-
maxAscent = ascent;
|
|
144043
|
-
}
|
|
144044
|
-
}
|
|
144045
|
-
return maxAscent > 0 ? maxAscent : void 0;
|
|
144046
|
-
}
|
|
144047
144713
|
function startX(align, width, lineWidth) {
|
|
144048
144714
|
if (align === "right") {
|
|
144049
144715
|
return width - lineWidth;
|
|
@@ -144072,20 +144738,25 @@ function buildGlyphEnvelope(preset, segments, width, height, align, adj, adj2, l
|
|
|
144072
144738
|
);
|
|
144073
144739
|
const realAscent = measureLineAscent(segments);
|
|
144074
144740
|
const nomTop = realAscent !== void 0 ? Math.max(fixedBandTop, nomBottom - realAscent) : fixedBandTop;
|
|
144741
|
+
const isCanFamily = preset === "textCanUp" || preset === "textCanDown";
|
|
144742
|
+
const stretch = width > 0 && lineWidth > 0 ? width / lineWidth : 1;
|
|
144743
|
+
const shapeScale = isCanFamily ? 1 : stretch;
|
|
144075
144744
|
const placements = [];
|
|
144076
|
-
let x = startX(align, width, lineWidth);
|
|
144745
|
+
let x = lineWidth > 0 ? 0 : startX(align, width, lineWidth);
|
|
144077
144746
|
segments.forEach((segment, segIdx) => {
|
|
144078
144747
|
const chars = [...segment.text];
|
|
144079
144748
|
const advances = perSegmentAdvances[segIdx];
|
|
144080
144749
|
chars.forEach((char, i2) => {
|
|
144081
|
-
const
|
|
144750
|
+
const naturalGlyphWidth = advances[i2] ?? 0;
|
|
144751
|
+
const pitch = naturalGlyphWidth * stretch;
|
|
144082
144752
|
const x0 = x;
|
|
144083
|
-
const x1 =
|
|
144753
|
+
const x1 = x0 + naturalGlyphWidth;
|
|
144084
144754
|
const u0 = width > 0 ? x0 / width : 0.5;
|
|
144085
144755
|
const u1 = width > 0 ? x1 / width : 0.5;
|
|
144086
144756
|
const edge0 = edgeBandAt(preset, u0, adj, adj2, height, safeLineIndex, safeLineCount);
|
|
144087
144757
|
const edge1 = edgeBandAt(preset, u1, adj, adj2, height, safeLineIndex, safeLineCount);
|
|
144088
|
-
const
|
|
144758
|
+
const rawOutline = getGlyphOutline?.(char, segment.font, x0, nomBottom);
|
|
144759
|
+
const outlineCommands = rawOutline ? scaleOutlineCommandsX(rawOutline, x0, shapeScale) : void 0;
|
|
144089
144760
|
const outlinePath = outlineCommands ? buildWarpedGlyphOutlinePathD(
|
|
144090
144761
|
outlineCommands,
|
|
144091
144762
|
preset,
|
|
@@ -144102,7 +144773,7 @@ function buildGlyphEnvelope(preset, segments, width, height, align, adj, adj2, l
|
|
|
144102
144773
|
placements.push({
|
|
144103
144774
|
char,
|
|
144104
144775
|
segmentIndex: segment.segmentIndex,
|
|
144105
|
-
x,
|
|
144776
|
+
x: x0,
|
|
144106
144777
|
y: nomBottom,
|
|
144107
144778
|
transform: glyphEnvelopeMatrix(x0, x1, edge0, edge1, nomTop, nomBottom),
|
|
144108
144779
|
slices: sliceCount > 1 ? buildGlyphSlices(
|
|
@@ -144122,7 +144793,7 @@ function buildGlyphEnvelope(preset, segments, width, height, align, adj, adj2, l
|
|
|
144122
144793
|
) : void 0,
|
|
144123
144794
|
outlinePath
|
|
144124
144795
|
});
|
|
144125
|
-
x +=
|
|
144796
|
+
x += pitch;
|
|
144126
144797
|
});
|
|
144127
144798
|
});
|
|
144128
144799
|
return placements;
|
|
@@ -146738,9 +147409,9 @@ function convertMatrix(node, cc) {
|
|
|
146738
147409
|
const rows = ensureArray6(node["m:mr"]);
|
|
146739
147410
|
const tableRows = [];
|
|
146740
147411
|
for (const row of rows) {
|
|
146741
|
-
const
|
|
147412
|
+
const cells2 = ensureArray6(row["m:e"]);
|
|
146742
147413
|
const tdParts = [];
|
|
146743
|
-
for (const cell of
|
|
147414
|
+
for (const cell of cells2) {
|
|
146744
147415
|
tdParts.push(`<mtd><mrow>${cc(cell)}</mrow></mtd>`);
|
|
146745
147416
|
}
|
|
146746
147417
|
tableRows.push(`<mtr>${tdParts.join("")}</mtr>`);
|
|
@@ -147465,16 +148136,16 @@ function parseEnvBody(ctx) {
|
|
|
147465
148136
|
function buildMatrix(ctx, rows) {
|
|
147466
148137
|
return {
|
|
147467
148138
|
"m:m": {
|
|
147468
|
-
"m:mr": rows.map((
|
|
147469
|
-
"m:e":
|
|
148139
|
+
"m:mr": rows.map((cells2) => ({
|
|
148140
|
+
"m:e": cells2.map((cell) => ctx.wrapE(cell))
|
|
147470
148141
|
}))
|
|
147471
148142
|
}
|
|
147472
148143
|
};
|
|
147473
148144
|
}
|
|
147474
148145
|
function buildEqArr(ctx, rows) {
|
|
147475
|
-
const lines = rows.map((
|
|
148146
|
+
const lines = rows.map((cells2) => {
|
|
147476
148147
|
const nodes = [];
|
|
147477
|
-
|
|
148148
|
+
cells2.forEach((cell, index) => {
|
|
147478
148149
|
if (index > 0) {
|
|
147479
148150
|
nodes.push(ctx.makeRun("&"));
|
|
147480
148151
|
}
|
|
@@ -154312,13 +154983,13 @@ function buildIsometricSurfaceViewModel(element, chartData, categoryLabels) {
|
|
|
154312
154983
|
const projH = maxSY - minSY;
|
|
154313
154984
|
const offsetX = layout.plotLeft + layout.plotWidth / 2 - (minSX + projW / 2);
|
|
154314
154985
|
const offsetY = layout.plotTop + layout.plotHeight / 2 - (minSY + projH / 2);
|
|
154315
|
-
const
|
|
154986
|
+
const cells2 = [];
|
|
154316
154987
|
for (let r = 0; r < rows; r++) {
|
|
154317
154988
|
for (let c = 0; c < cols; c++) {
|
|
154318
|
-
|
|
154989
|
+
cells2.push({ row: r, col: c, depth: r + c });
|
|
154319
154990
|
}
|
|
154320
154991
|
}
|
|
154321
|
-
|
|
154992
|
+
cells2.sort((a, b) => a.depth - b.depth);
|
|
154322
154993
|
const primitives = [];
|
|
154323
154994
|
primitives.push(
|
|
154324
154995
|
...buildSurfaceWallPanels(cols, rows, cellSize, zScale, offsetX, offsetY, {
|
|
@@ -154327,7 +154998,7 @@ function buildIsometricSurfaceViewModel(element, chartData, categoryLabels) {
|
|
|
154327
154998
|
backWall: chartData.backWall
|
|
154328
154999
|
})
|
|
154329
155000
|
);
|
|
154330
|
-
for (const { row, col } of
|
|
155001
|
+
for (const { row, col } of cells2) {
|
|
154331
155002
|
const corners = [
|
|
154332
155003
|
[col, row],
|
|
154333
155004
|
[col + 1, row],
|
|
@@ -167664,15 +168335,15 @@ function setCellText(element, rowIndex, colIndex, text22) {
|
|
|
167664
168335
|
});
|
|
167665
168336
|
return { ...element, tableData: { ...tableData, rows } };
|
|
167666
168337
|
}
|
|
167667
|
-
function computeBoundingRect(
|
|
167668
|
-
if (
|
|
168338
|
+
function computeBoundingRect(cells2) {
|
|
168339
|
+
if (cells2.length === 0) {
|
|
167669
168340
|
return void 0;
|
|
167670
168341
|
}
|
|
167671
|
-
let startRow =
|
|
167672
|
-
let startCol =
|
|
167673
|
-
let endRow =
|
|
167674
|
-
let endCol =
|
|
167675
|
-
for (const { row, col } of
|
|
168342
|
+
let startRow = cells2[0].row;
|
|
168343
|
+
let startCol = cells2[0].col;
|
|
168344
|
+
let endRow = cells2[0].row;
|
|
168345
|
+
let endCol = cells2[0].col;
|
|
168346
|
+
for (const { row, col } of cells2) {
|
|
167676
168347
|
if (row < startRow) {
|
|
167677
168348
|
startRow = row;
|
|
167678
168349
|
}
|
|
@@ -167758,8 +168429,8 @@ function expandRectForExistingMerges(rect22, tableData) {
|
|
|
167758
168429
|
}
|
|
167759
168430
|
return { startRow, startCol, endRow, endCol };
|
|
167760
168431
|
}
|
|
167761
|
-
function mergeCells(
|
|
167762
|
-
const rawRect = computeBoundingRect(
|
|
168432
|
+
function mergeCells(cells2, tableData) {
|
|
168433
|
+
const rawRect = computeBoundingRect(cells2);
|
|
167763
168434
|
if (!rawRect) {
|
|
167764
168435
|
return tableData;
|
|
167765
168436
|
}
|
|
@@ -167796,7 +168467,7 @@ function mergeCells(cells, tableData) {
|
|
|
167796
168467
|
}
|
|
167797
168468
|
if (ri === rect22.startRow && ci === rect22.startCol) {
|
|
167798
168469
|
return {
|
|
167799
|
-
...withCellText(cell, combinedText),
|
|
168470
|
+
...cell.text === combinedText ? cell : withCellText(cell, combinedText),
|
|
167800
168471
|
gridSpan: colCount > 1 ? colCount : void 0,
|
|
167801
168472
|
rowSpan: rowCount > 1 ? rowCount : void 0,
|
|
167802
168473
|
hMerge: void 0,
|
|
@@ -167949,7 +168620,7 @@ function deleteTableRow(tableData, rowIdx) {
|
|
|
167949
168620
|
}
|
|
167950
168621
|
const removedRow = tableData.rows[rowIdx];
|
|
167951
168622
|
const adjustedRows = [...tableData.rows];
|
|
167952
|
-
const updateCellRowSpan = (
|
|
168623
|
+
const updateCellRowSpan = (cells2, colIdx, newRowSpan) => cells2.map((cc, ci) => ci === colIdx ? { ...cc, rowSpan: newRowSpan } : cc);
|
|
167953
168624
|
for (let c = 0; c < removedRow.cells.length; c++) {
|
|
167954
168625
|
const cell = removedRow.cells[c];
|
|
167955
168626
|
if (cell.vMerge) {
|
|
@@ -167984,6 +168655,7 @@ function deleteTableRow(tableData, rowIdx) {
|
|
|
167984
168655
|
return {
|
|
167985
168656
|
...cc,
|
|
167986
168657
|
text: cell.text || cc.text,
|
|
168658
|
+
textRuns: cell.text ? cell.textRuns : cc.textRuns,
|
|
167987
168659
|
style: cc.style || cell.style,
|
|
167988
168660
|
rowSpan: newRs > 1 ? newRs : void 0,
|
|
167989
168661
|
vMerge: void 0,
|
|
@@ -168083,6 +168755,7 @@ function deleteTableColumn(tableData, colIdx) {
|
|
|
168083
168755
|
adjustedCells[nextColIdx] = {
|
|
168084
168756
|
...nextCell,
|
|
168085
168757
|
text: cell.text || nextCell.text,
|
|
168758
|
+
textRuns: cell.text ? cell.textRuns : nextCell.textRuns,
|
|
168086
168759
|
style: nextCell.style || cell.style,
|
|
168087
168760
|
gridSpan: gs - 1 > 1 ? gs - 1 : void 0,
|
|
168088
168761
|
hMerge: void 0,
|
|
@@ -168122,7 +168795,7 @@ function buildTableDataGrid(element) {
|
|
|
168122
168795
|
canRemoveColumn: colCount > 1
|
|
168123
168796
|
};
|
|
168124
168797
|
}
|
|
168125
|
-
function withTableData(element, transform6) {
|
|
168798
|
+
function withTableData(element, transform6, edit) {
|
|
168126
168799
|
const tableData = element.tableData;
|
|
168127
168800
|
if (!tableData) {
|
|
168128
168801
|
return element;
|
|
@@ -168133,7 +168806,7 @@ function withTableData(element, transform6) {
|
|
|
168133
168806
|
}
|
|
168134
168807
|
const updated = { ...element, tableData: next };
|
|
168135
168808
|
if (element.rawXml) {
|
|
168136
|
-
const rawXml = rebuildTableStructureInRawXml(element, next);
|
|
168809
|
+
const rawXml = rebuildTableStructureInRawXml(element, next, edit);
|
|
168137
168810
|
if (rawXml) {
|
|
168138
168811
|
updated.rawXml = rawXml;
|
|
168139
168812
|
}
|
|
@@ -168149,16 +168822,32 @@ function setTableElementCellText(element, rowIndex, colIndex, text22) {
|
|
|
168149
168822
|
return rawXml ? { ...updated, rawXml } : updated;
|
|
168150
168823
|
}
|
|
168151
168824
|
function insertTableElementRow(element, rowIdx, position2) {
|
|
168152
|
-
return withTableData(element, (data) => insertTableRow(data, rowIdx, position2)
|
|
168825
|
+
return withTableData(element, (data) => insertTableRow(data, rowIdx, position2), {
|
|
168826
|
+
axis: "row",
|
|
168827
|
+
action: "insert",
|
|
168828
|
+
index: position2 === "above" ? rowIdx : rowIdx + 1
|
|
168829
|
+
});
|
|
168153
168830
|
}
|
|
168154
168831
|
function removeTableElementRow(element, rowIdx) {
|
|
168155
|
-
return withTableData(element, (data) => deleteTableRow(data, rowIdx)
|
|
168832
|
+
return withTableData(element, (data) => deleteTableRow(data, rowIdx), {
|
|
168833
|
+
axis: "row",
|
|
168834
|
+
action: "delete",
|
|
168835
|
+
index: rowIdx
|
|
168836
|
+
});
|
|
168156
168837
|
}
|
|
168157
168838
|
function insertTableElementColumn(element, colIdx, position2) {
|
|
168158
|
-
return withTableData(element, (data) => insertTableColumn(data, colIdx, position2)
|
|
168839
|
+
return withTableData(element, (data) => insertTableColumn(data, colIdx, position2), {
|
|
168840
|
+
axis: "column",
|
|
168841
|
+
action: "insert",
|
|
168842
|
+
index: position2 === "left" ? colIdx : colIdx + 1
|
|
168843
|
+
});
|
|
168159
168844
|
}
|
|
168160
168845
|
function removeTableElementColumn(element, colIdx) {
|
|
168161
|
-
return withTableData(element, (data) => deleteTableColumn(data, colIdx)
|
|
168846
|
+
return withTableData(element, (data) => deleteTableColumn(data, colIdx), {
|
|
168847
|
+
axis: "column",
|
|
168848
|
+
action: "delete",
|
|
168849
|
+
index: colIdx
|
|
168850
|
+
});
|
|
168162
168851
|
}
|
|
168163
168852
|
function appendTableElementRow(element) {
|
|
168164
168853
|
const rowCount = element.tableData?.rows.length ?? 0;
|
|
@@ -168637,7 +169326,7 @@ function distributeElements(elements, axis, options) {
|
|
|
168637
169326
|
}
|
|
168638
169327
|
return result;
|
|
168639
169328
|
}
|
|
168640
|
-
var
|
|
169329
|
+
var DEG_TO_RAD4 = Math.PI / 180;
|
|
168641
169330
|
function rotationOf(box) {
|
|
168642
169331
|
return box.rotation ?? 0;
|
|
168643
169332
|
}
|
|
@@ -168645,7 +169334,7 @@ function rotateDelta(dx, dy, rotationDeg) {
|
|
|
168645
169334
|
if (!rotationDeg) {
|
|
168646
169335
|
return { x: dx, y: dy };
|
|
168647
169336
|
}
|
|
168648
|
-
const rad = -rotationDeg *
|
|
169337
|
+
const rad = -rotationDeg * DEG_TO_RAD4;
|
|
168649
169338
|
const cos = Math.cos(rad);
|
|
168650
169339
|
const sin = Math.sin(rad);
|
|
168651
169340
|
return {
|
|
@@ -168975,7 +169664,7 @@ function computeShadeToTitleFillToRect(title, slideWidthPx, slideHeightPx) {
|
|
|
168975
169664
|
b: clampUnit3(1 - (title.y + title.height) / slideHeightPx)
|
|
168976
169665
|
};
|
|
168977
169666
|
}
|
|
168978
|
-
var GRADIENT_STOP_TOKEN = /(rgba?\([^)]*\)|#[0-9a-fA-F]{3,8})\s+(-?[\d.]+)%/gu;
|
|
169667
|
+
var GRADIENT_STOP_TOKEN = /(rgba?\([^()]*\)|#[0-9a-fA-F]{3,8})\s+(-?[\d.]+)%/gu;
|
|
168979
169668
|
function toHexChannel2(value) {
|
|
168980
169669
|
return Math.min(255, Math.max(0, Math.round(value))).toString(16).padStart(2, "0");
|
|
168981
169670
|
}
|
|
@@ -169166,7 +169855,7 @@ function newTableElement(rows = 3, cols = 3, x = DEFAULT_X, y = TABLE_DEFAULT_Y)
|
|
|
169166
169855
|
const columnWidths = Array.from({ length: cols }).fill(colWidth);
|
|
169167
169856
|
const tableRows = Array.from({ length: rows }, (_, rowIdx) => {
|
|
169168
169857
|
const isHeader = rowIdx === 0;
|
|
169169
|
-
const
|
|
169858
|
+
const cells2 = Array.from({ length: cols }, (__, colIdx) => ({
|
|
169170
169859
|
text: isHeader ? `Header ${colIdx + 1}` : "",
|
|
169171
169860
|
style: {
|
|
169172
169861
|
borderTopWidth: 1,
|
|
@@ -169184,7 +169873,7 @@ function newTableElement(rows = 3, cols = 3, x = DEFAULT_X, y = TABLE_DEFAULT_Y)
|
|
|
169184
169873
|
} : {}
|
|
169185
169874
|
}
|
|
169186
169875
|
}));
|
|
169187
|
-
return { cells, height: isHeader ? 40 : 36 };
|
|
169876
|
+
return { cells: cells2, height: isHeader ? 40 : 36 };
|
|
169188
169877
|
});
|
|
169189
169878
|
return {
|
|
169190
169879
|
type: "table",
|
|
@@ -184260,7 +184949,7 @@ var TRANSITION_DIR_GRID_POSITIONS = {
|
|
|
184260
184949
|
rd: [2, 2]
|
|
184261
184950
|
};
|
|
184262
184951
|
function buildDirectionGrid(directions) {
|
|
184263
|
-
const
|
|
184952
|
+
const cells2 = [
|
|
184264
184953
|
[null, null, null],
|
|
184265
184954
|
[null, null, null],
|
|
184266
184955
|
[null, null, null]
|
|
@@ -184268,10 +184957,10 @@ function buildDirectionGrid(directions) {
|
|
|
184268
184957
|
for (const dir of directions) {
|
|
184269
184958
|
const pos2 = TRANSITION_DIR_GRID_POSITIONS[dir];
|
|
184270
184959
|
if (pos2) {
|
|
184271
|
-
|
|
184960
|
+
cells2[pos2[0]][pos2[1]] = dir;
|
|
184272
184961
|
}
|
|
184273
184962
|
}
|
|
184274
|
-
return
|
|
184963
|
+
return cells2;
|
|
184275
184964
|
}
|
|
184276
184965
|
function mergeSlideTransition(current, changes) {
|
|
184277
184966
|
return { type: "none", ...current, ...changes };
|
|
@@ -192032,6 +192721,20 @@ function resolveSelectionPaneRename(seed, value) {
|
|
|
192032
192721
|
}
|
|
192033
192722
|
return { name: trimmed };
|
|
192034
192723
|
}
|
|
192724
|
+
function hasMultipleSelectedTableCells(cells2, tableData) {
|
|
192725
|
+
const selected = /* @__PURE__ */ new Set();
|
|
192726
|
+
for (const { row, col } of cells2 ?? []) {
|
|
192727
|
+
const cell = tableData?.rows[row]?.cells[col];
|
|
192728
|
+
if (tableData && (!cell || cell.hMerge || cell.vMerge)) {
|
|
192729
|
+
continue;
|
|
192730
|
+
}
|
|
192731
|
+
selected.add(`${row},${col}`);
|
|
192732
|
+
if (selected.size > 1) {
|
|
192733
|
+
return true;
|
|
192734
|
+
}
|
|
192735
|
+
}
|
|
192736
|
+
return false;
|
|
192737
|
+
}
|
|
192035
192738
|
var LABEL_KEYS = {
|
|
192036
192739
|
copy: "pptx.contextMenu.copy",
|
|
192037
192740
|
cut: "pptx.contextMenu.cut",
|
|
@@ -199599,12 +200302,12 @@ async function fetchTextIfCrossOriginSafe(url) {
|
|
|
199599
200302
|
return null;
|
|
199600
200303
|
}
|
|
199601
200304
|
}
|
|
199602
|
-
var FONT_FACE_URL_PATTERN = /url\(\s*["']
|
|
200305
|
+
var FONT_FACE_URL_PATTERN = /url\(\s*(?:"([^"]*)"|'([^']*)'|([^"')\s]+))\s*\)/gu;
|
|
199603
200306
|
async function inlineFontFaceUrls(css, fetchDataUrl) {
|
|
199604
200307
|
const urls = /* @__PURE__ */ new Set();
|
|
199605
200308
|
for (const match of css.matchAll(FONT_FACE_URL_PATTERN)) {
|
|
199606
|
-
const raw = match[1];
|
|
199607
|
-
if (raw.startsWith("http:") || raw.startsWith("https:")) {
|
|
200309
|
+
const raw = match[1] ?? match[2] ?? match[3];
|
|
200310
|
+
if (raw && (raw.startsWith("http:") || raw.startsWith("https:"))) {
|
|
199608
200311
|
urls.add(raw);
|
|
199609
200312
|
}
|
|
199610
200313
|
}
|
|
@@ -199664,9 +200367,13 @@ async function fetchAsDataUrl(url) {
|
|
|
199664
200367
|
return null;
|
|
199665
200368
|
}
|
|
199666
200369
|
}
|
|
200370
|
+
var CSS_URL_PATTERN = /url\(\s*(?:"([^"]*)"|'([^']*)'|([^"')\s]+))\s*\)/u;
|
|
199667
200371
|
function extractCssUrl(value) {
|
|
199668
|
-
const match =
|
|
199669
|
-
|
|
200372
|
+
const match = CSS_URL_PATTERN.exec(value);
|
|
200373
|
+
if (!match) {
|
|
200374
|
+
return null;
|
|
200375
|
+
}
|
|
200376
|
+
return match[1] ?? match[2] ?? match[3] ?? null;
|
|
199670
200377
|
}
|
|
199671
200378
|
function needsEmbedding(url) {
|
|
199672
200379
|
return url.startsWith("blob:") || url.startsWith("http:") || url.startsWith("https:");
|
|
@@ -200136,13 +200843,13 @@ function computePageCells(pageIndex, slidesPerPage, totalSlides, startSlideIndex
|
|
|
200136
200843
|
const printableWidth = page.width - page.marginLeft - page.marginRight;
|
|
200137
200844
|
const printableHeight = page.height - page.marginTop - page.marginBottom;
|
|
200138
200845
|
const isThreePerPage = slidesPerPage === 3;
|
|
200139
|
-
const
|
|
200846
|
+
const cells2 = [];
|
|
200140
200847
|
if (isThreePerPage) {
|
|
200141
200848
|
const slideAreaWidth = printableWidth * THREE_PER_PAGE_SLIDE_FRACTION;
|
|
200142
200849
|
const cellHeight = (printableHeight - CELL_GAP * (grid.rows - 1)) / grid.rows;
|
|
200143
200850
|
for (let row = 0; row < grid.rows; row++) {
|
|
200144
200851
|
const slideIdx = startSlideIndex + row;
|
|
200145
|
-
|
|
200852
|
+
cells2.push({
|
|
200146
200853
|
slideIndex: slideIdx < totalSlides ? slideIdx : -1,
|
|
200147
200854
|
row,
|
|
200148
200855
|
col: 0,
|
|
@@ -200159,7 +200866,7 @@ function computePageCells(pageIndex, slidesPerPage, totalSlides, startSlideIndex
|
|
|
200159
200866
|
for (let row = 0; row < grid.rows; row++) {
|
|
200160
200867
|
for (let col = 0; col < grid.columns; col++) {
|
|
200161
200868
|
const slideIdx = startSlideIndex + cellIndex;
|
|
200162
|
-
|
|
200869
|
+
cells2.push({
|
|
200163
200870
|
slideIndex: slideIdx < totalSlides ? slideIdx : -1,
|
|
200164
200871
|
row,
|
|
200165
200872
|
col,
|
|
@@ -200174,7 +200881,7 @@ function computePageCells(pageIndex, slidesPerPage, totalSlides, startSlideIndex
|
|
|
200174
200881
|
}
|
|
200175
200882
|
return {
|
|
200176
200883
|
pageIndex,
|
|
200177
|
-
cells,
|
|
200884
|
+
cells: cells2,
|
|
200178
200885
|
hasNoteLines: isThreePerPage
|
|
200179
200886
|
};
|
|
200180
200887
|
}
|
|
@@ -201927,6 +202634,9 @@ function groupTilesByRow(tiles) {
|
|
|
201927
202634
|
const rowCount = tiles.reduce((max, t) => Math.max(max, t.row), 0) + 1;
|
|
201928
202635
|
const rows = Array.from({ length: rowCount }, () => []);
|
|
201929
202636
|
for (const tile of tiles) {
|
|
202637
|
+
if (!Number.isInteger(tile.row) || !Number.isInteger(tile.col) || tile.row < 0 || tile.col < 0) {
|
|
202638
|
+
continue;
|
|
202639
|
+
}
|
|
201930
202640
|
rows[tile.row][tile.col] = tile;
|
|
201931
202641
|
}
|
|
201932
202642
|
return rows;
|
|
@@ -202153,4 +202863,4 @@ async function rasterResultToPngBlob(result) {
|
|
|
202153
202863
|
* `<p:extLst>` (optional)
|
|
202154
202864
|
*/
|
|
202155
202865
|
|
|
202156
|
-
export { ACTION_BUTTON_PRESETS, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, ARTISTIC_EFFECTS, AVATAR_COLOR_SWATCHES, BACKSTAGE_NAV, BACKSTAGE_TEMPLATES, BAR3D_SHAPE_OPTIONS, BEVEL_PRESETS, BROADCAST_THROTTLE_MS, CATEGORIES, CHARACTER_SPACING_OPTIONS, CHART_TYPE_OPTIONS, COLOR_MAP_ALIAS_KEYS, COMMENT_MARKER_SIZE, COMMENT_MENTION_ATTRIBUTE, COMMENT_MENTION_CLASS, COMMON_FONTS, COMMON_FONT_SIZES, COMPOUND_LINE_OPTIONS, CONNECTION_TIMEOUT_MS, CONNECTOR_SITE_SNAP_PX, CUSTOM_FONT_ACCEPT, DEBOUNCE_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_COLOR_MAP, DEFAULT_FONT_FAMILY2 as DEFAULT_FONT_FAMILY, DEFAULT_INSERT_CHART_KIND, DEFAULT_MOTION_PATH_PRESET_ID, DEFAULT_PALETTE2, DEFAULT_QUICK_ACCESS_COMMAND_IDS, DEFAULT_ROW_HEIGHT, DEFAULT_VIEWER_OPTIONS, DEFAULT_VIEWER_PREFERENCES, DEFAULT_VIEWER_PROFILE, DEFAULT_VIRTUAL_OVERSCAN, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, EFFECT_SOUND_CATALOGUE, ELEMENT_ACTION_TYPE_OPTIONS, EMPHASIS_PRESET_VALUES, ENTRANCE_PRESET_VALUES, EQUATION_TEMPLATES, EXIT_PRESET_VALUES, EXPANDED_MAX_HEIGHT, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, EncryptedFileError, FILL_MODE_OPTIONS, FILL_PATTERN_LABEL_KEYS, GIF_POST_CAPTURE_MAX_SIDE, GRADIENT_TYPE_OPTIONS, GlyphOutlineFontCache, HANDOUT_OPTIONS, HIDDEN_SLIDE_LABEL_KEY, HIDDEN_SLIDE_SLASH_GRADIENT, HIGHLIGHTER_COLORS, INDENT_PX, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LINE_CAP_OPTIONS, LINE_JOIN_OPTIONS, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_HINT_CLASS, LINK_TOOLTIP_HOST_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_PANEL_CLASS, LOCAL_SYNC_ORIGIN, MATERIAL_PRESETS, MAX_INDENT_LEVEL, MAX_ZOOM_SCALE, MEDIA_CHROME_ATTRIBUTE, MIN_TOUCH_TARGET_PX, MIN_ZOOM_SCALE, MOBILE_BREAKPOINT, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, MOTION_PATH_FAMILIES, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, OFFICE_COLOR_SWATCHES, OUTLINE_LEVEL_ATTR, OUTLINE_ROW_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_VIEW_ATTR, PATTERN_OPTIONS, PATTERN_PRESET_OPTIONS, PDF_SLIDES_PAGE_HEIGHT_PT, PDF_SLIDES_PAGE_WIDTH_PT, PEN_COLORS, PPTX_OPEN_ACCEPT, PRESENTATION_CHANNEL_NAME, PRESENTATION_HASH, PRESENTATION_HIT_TEST_CSS, PRESENTATION_MESSAGE_ORIGIN, PRESENTATION_NONCE_KEY, PRESENTATION_OPEN_EXTENSIONS, PRESENTATION_STAGE_ATTRIBUTE, PRESENTER_CONSOLE_CLASSES, PRESENTER_CONSOLE_CONTROLS, PRESENTER_NAVIGATOR_LABEL_KEYS, PRESENT_TOOLBAR_CLASSES, PRESETS, PRESET_THEMES, PptxHandler, PptxMarkdownConverter, PresentationAnimationController, QUICK_ACCESS_COMMAND_CATALOG, RADAR_STYLE_OPTIONS, READING_VIEW_ATTR, READING_VIEW_COUNTER_ATTR, READING_VIEW_STAGE_ATTR, RIBBON_SHAPE_SWATCHES, RIBBON_TRANSITION_PRESETS, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SHAPE_QUICK_STYLES, SHORTCUT_REFERENCE_ITEMS, SLIDE_SHOW_OPTIONS, SLIDE_SIZE_PRESETS, SLIDE_TEMPLATES, SLIDE_TRANSITION_KEYFRAMES, SLIDE_TRANSITION_OPTIONS, SLIDE_VIRTUALIZATION_THRESHOLD, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, SMARTART_STYLE_LABEL_KEYS, SORTER_MAX_ZOOM, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, STATUS_BAR_CLASSES, STROKE_DASH_OPTIONS2 as STROKE_DASH_OPTIONS, SURFACE_WIREFRAME_OPTIONS, SWITCHABLE_LAYOUT_TYPES, SvgExporter, TABLET_BREAKPOINT, TABLE_STYLE_BORDER_SIDES, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, TABLE_STYLE_EDITOR_PARTS, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, TEXT_WARP_PRESETS, THEME_CATALOG, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_SLOT_LABEL_KEYS, THEME_PRESETS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TOOLBAR_TABS, TRANSITION_DIR_ARROWS, TRANSITION_MORPH_OPTIONS, TRANSITION_ORIENTATION_TYPES, TRANSITION_SOUND_NONE_VALUE, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SPEED_OPTIONS, TRANSITION_VALID_DIRECTIONS, ThemePresets, VIEWER_OPTIONS_TABS, VIEWER_PREFS_STORAGE_KEY, VIEWER_SHORTCUT_REFERENCE, WEBM_MIME_CANDIDATES, acceptAutosaveRecovery, acceptsPresentationInput, actionAffordanceLabels, activateModalFocus, addChartCategory, addChartSeries, addCommentToList, addQuickAccessCommand, addSection, addSiblingAfter, addSmartArtNodeAsChild, addTableStyleToMap, addTagToCollections, advanceChartMarkDrag, advanceChartValueDrag, advanceMainSequence, alignElements, animationEffectLabel, annotationOverlayZIndex, appendPresentationInkPoint, appendTableElementColumn, appendTableElementRow, apply3dEffects, applyAcceptAllSlides, applyAcceptSlide, applyAnimationTimelineOrder, applyAutoCorrect, applyCaseTransformToSegments, applyChartPartHighlight, applyColorChange, applyDuotone, applyFindReplacements, applyFormatToElement, applyHighlightClickStyle, applyImagePathPatches, applyMasterViewCrudAction, applyMotionPathPreset, applyOleDocumentParagraphEdit, applyOleNestedDeckElementTextEdit, applyOleSheetCellEdit, applyOutlineEdit, applyPreferenceToOptions, applyReadingViewCommand, applyRehearsalTimings, applyReroutedConnectors, applyResize, applyStyleToSelectedSegments, applyTableStyleDelete, applyTableStyleFieldEdit, applyTableStyleMapChange, applyTableStylePreset, applyThemeOverrideToSlide, applyThemeToData, applyTransitionSoundFile, applyTransitionStockSound, attachPresentationVisibilityPause, authorConnectorBetweenSites, autosaveSnapshotMark, availableQuickAccessCommands, backstageCardsFor, bar3DShapePatch, beginChartMarkDrag, beginChartValueDrag, beginShapeAdjustment, bringForward, bringToFront, build3DExtrusionData, buildActiveSessionUsers, buildAnimationTimelineBars, buildAnimationTimelineRows, buildAreaChart3DDataForElement, buildBarActions, buildBarChart3DDataForElement, buildBroadcastViewerUrl, buildCacheKey, buildCalloutLeaderLineSvgPath, buildChartMarkDragGeometry, buildChartViewModel, buildChromeStyle, buildCollaborationShareUrl, buildCommentMarkers, buildContentPartStrokes, buildContextMenuEntries, buildCreateCollaborationConfig, buildCssGradientFromShapeStyle, buildDeckSaveOptions, buildDirectionGrid, buildDuotoneCacheKey, buildElementClipboardPayload, buildFieldSubstitutionContext, buildFontCatalog, buildGlyphEnvelope, buildHandoutsHtml, buildHollowHitOutline, buildInitialGuides, buildInkGroupStrokes, buildInlineTextCommitPatch, buildJoinCollaborationConfig, buildLayoutPreviewGeometry, buildLineChart3DDataForElement, buildLiveInkStrokeView, buildMorphAnimationRules, buildMorphTransitionPlan, buildMotionPathPreview, buildNotesHtml, buildNotesPdfBytes, buildNotesPrintHtml, buildOleContentUpdatePatch, buildOleEditDialogDescriptor, buildOleObjectNamePatch, buildOutline, buildOutlineHtml, buildParagraphs, buildPieChart3DDataForElement, buildPresentationAudienceUrl, buildPreviewAnimation, buildPreviewElements, buildPrintDocument, buildPrintHtmlDocument, buildRectPathGradient, buildRunProgramNotice, buildRunTabLines, buildSaveSlides, buildSlideTemplateContent, buildSlideTemplateSlide, buildSlidesHtml, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildSmartArtPreviewElement, buildStrokeOutline, buildStrokePathD, buildSubpathFillOverlay, buildSubpathPaints, buildSummaryZoomView, buildSurfaceChart3DDataForElement, buildSvgGradientDef, buildTabContext, buildTableDataGrid, buildTextBlockStyle, buildTextBody3DSceneStyle, buildTextBodyLayoutStyle, buildTextBuildSpec, buildTextStyleOverrideCss, buildThemeColorGrid, buildThemeColorMap, buildThemeColorSwatchGrid, buildTiledSlidesPdfBytes, buildUserFontFaceStyles, canAddTopLevelNode, canCommitActionType, canDrillDown, canGoNext, canGoPrevious, canGroupSelection, canInteractWithElement, canRemoveTopLevelNode, canSetStrokeWidth, canUngroupSelection, canUseClipboard, cancelBuildReveal, canvasToJpegData, cellRunStyle, cellStyleToCss, centeredSvgTextLines, chartGridlinesPatch, chartGridlinesState, chartPartToAttrs, chartPreserveAspectRatio, checkModifyPassword, clampCropValue, clampGifDimensions, clampNotesFontSize, clampOptionNumber, clampPercent2, clampSorterZoom, clampTransitionNumber, clampUnitInterval2 as clampUnitInterval, clampZoomScale, classifyExtraConnections, classifyMediaType, clearAllLocalViewerData, clearAudienceContent, clearLocalAwareness, clearMotionPath, clearPlaybackTimers, clearStoredViewerPrefs, clearTransitionSound, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collapseChartTitleRunsForEdit, collectCoherent3DOffNodeIds, collectConnectorSiteCandidates, collectImagePaths, collectMediaElements, collectReferencedFontFamilies, collectUsedFonts, colorWithOpacity, commentMentionQuery, commentTextSegments, comparePresentation, compatToastStackStyle, compatibilityWarningToasts, compileEquationTemplateMathMl, compileLatexEquation, computeAllNotesPages, computeAnchoredPopupPosition, computeChartLegendLayout, computeColorFilter, computeColumnBoundaries, computeDrawingViewBox, computeEntranceAnimationDelay, computeGridSpacingPx, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSlideIndices, computeSmartArtElementLayout, computeSnapToShape, computeSplitCell, computeVirtualRange, connectorWrapperTransform, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, createActiveAnimationGroup, createBackstagePresentation, createBlankSlide, createCollaborationLivePatcher, createDefaultChartElement, createDefaultChartUserShape, createDefaultChartUserShapeGroupChild, createDepartureChannel, createGlyphOutlineLookup, createInitialPresentationSnapshot, createPlainNotesSegments, createPresenceProjector, createPresentationKeyBuffer, createPresentationSessionId, createPresenterShowGuard, createPresenterTimer, createSyncGate, createTableStyleEntry, createTouchGestureRecognizer, createViewerOptionsStore, createViewerZoomStore, createWheelStepBuffer, cursorForTool, customGeometryPathsToSvgSubpaths, defaultCssVars, defaultRadius, defaultThemeColors, deleteAutosaveSnapshot, deleteSection, deleteTableColumn, deleteTableRow, deleteTableStyleFromMap, deleteTagFromCollections, demote, deriveSlideFieldContext, deriveViewportBreakpoints, describeFontEmbedding, describeSmartArtBounds, describeTableStyleEditor, detectOrientation, detectTouchDevice, discardAutosaveRecovery, distributeElements, downloadBlob, downloadDataUrl, editCommentInList, elementActionToPptxAction, elementIdSelector, elementLockTogglePatch, encodeGif, endAudienceDisplay, ensureActionAffordanceStyles, ensureChartInteractionStyles, erasePresentationInkAt, evenColumnWidths, evenRowHeights, exportDeckJson, extraQuickAccessCommands, fetchGoogleWebfontOutlineBytes, filterCommands, filterHiddenSlideIndices, filterInteractableIds, filterRenderedElements, findChartPartTarget, findConnectorSiteNear, findEraserHitElementId, findInSlides, findSelectedThemeSwatch, findSmartArtNodeText, finishPrintWindow, firstShowSlideIndex, flattenNodes, flattenTagCollections, forgetSessionDeck, formatAxisValue, formatBackstageDate, formatBackstageSize, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateNoteLineCount, generateTicks, getActiveXControlOverlayView, getAnimationColorBaseStyle, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getBarFacePicturePixelSampleVersion, getBevelLightingSvgFilter, getCachedResult, getCalloutLeaderLineGeometry, getCalloutViewBoxBounds, getCellDiagonalBorders, getChartStylePalette, getChartUserShapeGroupTransform, getChartUserShapeRowChartBox, getCompoundLineOffsets, getCompoundLineWidths, getComputedEffectStyle, getComputedFillStyle, getComputedStrokeStyle, getConnectorEndpointHandles, getContentPartReplayStyles, getCropShapeClipPath, getCurrentParagraphIndex, getDenseGridLayoutPlan, getDensePanelTouchTargetPx, getDraggedShapeAdjustments, getDuotoneCachedResult, getEffectSoundAsset, getEffectSoundState, getEffectStyleSource, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getFragmentedTransitionDescriptor, getGroupChildParentFill, getImageColorWashStyle, getImageEffectsFilter, getImageEffectsOpacity, getImageFitStyle, getImageSvgFilters, getImageTilingStyle, getInkReplayStyles, getInlineEditorSelection, getLocalStorageUsageSummary, getNonVisualDescriptionFields, getNotesPrintableArea, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDocumentParagraphs, getOleNestedDeckDetail, getOleObjectTypeLabel, getOleSheetGrid, getOleTypeColor, getOleTypeLabel, getOverflowSegments, getPatternSvg, getPendingSelectionRestore, getPresetShapeClipPath, getPresetShapeVectorGeometry, getPrintableArea, getSessionTabId, getShapeAdjustmentHandleDescriptors, getShapeConnectionSites, getSlideBackgroundStyle, getSlideTransitionAnimations, getSoftEdgeSvgFilter, getSubstituteFontFamily, getSvgStrokeDasharray, getTableCellBandStyle, getTextBodyRotationTransform, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, groupSlidesBySection, guidePxToEmu, handleReadingViewKey, hasCopyableFormat, hasDistinctScriptFonts, hasGlyphEnvelope, hasShapeProperties, hasShowSlideAfter, hasTextProperties, hasTiltData, hexToRgbUnit, hiddenSlideCue, hideChartSeries, hollowTextFillStyle, inlineElementPointerEvents, insertCommentMention, insertTableColumn, insertTableRow, isActionHidden, isBlackboardActive, isBrowserOpenableMime, isCalloutShape, isCellInRect, isCurrentLayout, isEditableMotionPath, isEditableTextElement, isEditorTextInputTarget, isElementActionable, isElementLocked, isElementRendered, isExportAbortError, isHeaderFooterDateTextVisible, isHeaderFooterFooterTextVisible, isHeaderFooterHeaderTextVisible, isHollowShapeElement, isImageLikeElement, isImageTiled, isInkElement, isKeyboardOpen, isLegacyBinaryPresentation, isLinkedTextBox, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isPresentationAdvanceClick, isPresentationSessionMessage, isSeriesUsingSecondaryAxis, isStrokeOnlyPresetElement, isSupportedPresentationFile, isTemplateElementId3 as isTemplateElementId, isUrlSafe, isWedgeCalloutPresetShape, lastShowSlideIndex, listAutosaveSnapshots, listBackstageRecentFiles, listChartUserShapeRows, loadAudienceContent, loadSessionDeck, lockResizeAspect, makeCloneId, makeSlideId, mapEditingWheel, mapEditorKey, mapOutlineKey, mapPresentationKey, mapPresentationWheel, mapSlideShowStartKey, mapSlideSorterKey, masterViewBackgroundColor, masterViewCrudActions, masterViewCrudFailureKey, masterViewElements, masterViewPseudoSlide, matchCommentMentionAuthors, mayLeaveSlideShow, mediaFallbackIcon, mediaFallbackLabelKey, mediaFallbackVisual, mediaPlaybackAttributes, mediaTransportVisible, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, mediaTrimEndMsFromSeconds, mediaTrimEndSeconds, mergeAdditiveSelection, mergeCells, mergePresentationSnapshot, mergeShapes, mergeSlideTransition, mobileElapsedSince, mobileSlideCounter, modelDataToBlobUrl, morphOptionToMode, motionPathEndPixel, motionPathFamilyLabelKey, motionPathFor, motionPathPresetIdForPath, motionPathPresetLabelKey, motionPathPresetsByFamily, motionPathToSvgD, mountAreaChart3D, mountBarChart3D, mountLineChart3D, mountModel3D, mountPieChart3D, mountSurfaceChart3D, movePresenterPointer, moveQuickAccessCommand, moveSectionDown, moveSectionUp, moveSlidesToSection, mruColorsPatch, nestedTextDecorationStyle, newTableElement, nextPresentedSlide, nextShowSlideIndex, normalizeColorsForCapture, normalizeHexColor2 as normalizeHexColor, normalizeStrokeDashType, normalizeTableStyleGuid, notesSegmentsToSpans, observeYDocSlides, ooxmlGradientAngleToCssDegrees, openNativeEyeDropper, openPendingPrintWindow, openPptxFile, openReadingView, openUrlInNewTab, paintedStrokeWidth, paragraphsToSegments, parseDrawingColor, parseDrawingColorOpacity, parsePanoseString, parsePpactionUrl, parseSegmentsFromRichEditor, partitionTemplateElements, patchChartData, pickSupportedMimeType, pieceLetterSpacing, placeAudienceWindow, placeCaretAtEnd, placeTileOnPage, placeholderPromptDescriptor, playFeedbackSound, playGroup, playSlideTransitionPreview, polygonsToSvgPath, pptxActionToElementAction, preprocessCssForCapture, presentationBaseName, presentationEntrySlideIndex, presentationInkPath, presenterElapsed, presenterNextDisabled, presenterPaneAdvancesOnClick, presenterPrevDisabled, presenterTimerProgress, previousShowSlideIndex, printPropertiesFrameSlides, printPropertiesSlidesPerPage, probeAutosaveRecovery, projectDrawingShapes, promote, publishLiveGeometry, publishLiveInlineText, pushRecentColor, quickStyleSwatchCss, radarStylePatch, rasterResultToPngBlob, rasterizeElement, rasterizeElementTiledToCanvas, rasterizeElementTiles, reResolveElementColors, reResolveSlideColors, readBackstageRecentFile, readEditableText, readOnlyRecommendation, readRibbonTransitionDraft, readSlideShowOption, readSlidesFromYDoc, readSoundFileAsDataUrl, readStoredViewerPrefs, readViewportMetrics, readingViewFitScale, rebuildDrawingShapesIfCleared, rebuildTableStructureInRawXml, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, redistributeColumnWidth, registerCollaborationTeardown, registerCrossSlideAudio, registerCustomFont, remapTextToSegments, rememberSessionDeck, removeChartCategory, removeChartSeries, removeCommentFromList, removeEmptyNode, removeLastTableElementColumn, removeLastTableElementRow, removeQuickAccessCommand, removeSmartArtNode, removeTableElementColumn, removeTableElementRow, renameSection, reorder2 as reorder, reorderAnimationTimelineRows, replaceMasterViewElements, replaceOleFile, replyToCommentInList, rerouteConnectorsForMovedElements, resetPresenterTimer, resetSlideLayoutPath, resolve3DRenderingFlags, resolveActionType, resolveAudienceScreenPlacement, resolveAuthoredCustomShowId, resolveAuthoredSlideRange, resolveAutoAdvanceDelayMs, resolveAutoFitFontScale, resolveAutosaveActivation, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, resolveChartKind, resolveConnectorEndpointUpdate, resolveDefaultFontFamily, resolveDefaultPrintSettings, resolveDisplayedChartType, resolveElementActionAffordance, resolveElementAriaAttributes, resolveElementHighlightClick, resolveElementInteractivity, resolveExpiredAutosaveSnapshots, resolveExportCaptureDecision, resolveFontKerning, resolveGoogleWebfontHref, resolveGroupChildFill, resolveHistoryDepth, resolveImageResolutionScale, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, resolveMediaElementSource, resolveMediaTimeNodeElementIds, resolveMetricTrackingPx, resolveNotesSchematicBodyFontSizePx, resolveNotesSegments, resolveOleType, resolveOleVerbTarget, resolveOptionRootClasses, resolvePalette, resolvePresentationAction, resolveProfileInitial, resolveRevealedChartData, resolveRevealedDrawingShapeNodeIds, resolveRevealedDrawingShapes, resolveRevealedSmartArtNodes, resolveScreenTip, resolveScriptFontSet, resolveSelectionPaneRename, resolveShapeGeometry, resolveShowSlideIndexes, resolveSlideSizeSelection, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTemplateBackgroundRows, resolveThemeCatalogEntry, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransitionSoundAction, resolveTransportForServerUrl, resolveViewerAddinRows, restoreFilteredSeries, restoreSegmentSelection, restoreSessionDeck, ribbonTransitionUpdates, rulerDragToGuidePosition, runPresentationAction, runProgramNoticeStackStyle, safeOpenUrl, sanitizeColor, sanitizeGradientStops, sanitizeMathMl, saveAutosaveSnapshot, saveDeckWithPassword, saveViewerProfile, savedPresentationFileName, scaleSlidesForSizeChange, scanAvailableFontFamilies, scheduleAutoAdvanceChain, scheduleMediaTrimAndFade, schemaLabel, scopeLayoutOptionsToSlide, seedRecentColors, segmentFrameCount, segmentsToEditorHtml, segmentsToParagraphs, segmentsToPlainText, selectGoogleWebfontFamilies, sendBackward, sendToBack, seriesSecondaryAxisPatch, setAfterAnimation, setAfterAnimationColor, setCachedResult, setCellText, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategoryLabel, setChartCellValue, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartSeriesChartType, setChartSeriesMarker, setDataLabelsRangeCache, setDuotoneCachedResult, setEffectSound, setEffectStockSound, setMasterViewBackgroundColor, setMotionPath, setMotionPathEnd, setPendingSelectionRestore, setSmartArtNodeStyle, setTableElementCellText, shapeFillChange, shapeOutlineChange, shouldAutoFollowBroadcaster, shouldClearAutosaveCacheOnClose, shouldCommitSmartArtNodeText, shouldConfirmExternalHyperlink, shouldDiscardAutosaveOnSuccessfulSave, shouldLoopContinuously, shouldProbeAutosaveRecovery, shouldRoomSlidesReplaceLoad, shouldShowAccessibilitySection, shouldShowAutosaveRecoveryPrompt, shouldShowElementHandles, shouldStickyActionRow, shouldUseSvgWarp, shouldWriteAutosaveSnapshot, siblingCount, siblingIndex, slideProgressPercent, slideShowOptionChange, slideSizeFromPreset, slideSizeToCanvasPx, slideStatusLabel, snapBoxToGrid, splitCell, splitRunByScriptFont, splitRunForMetrics, splitWordsForUnderline, stepPresenterZoom, stopAllPersistentAudio, storeAudienceContent, stripUnderlineDecoration, strokeOutlineViewBox, strokeWidthOf, styleShadowFilter, subscribeBarFacePicturePixelSamples, substituteFieldText, surfaceWireframePatch, svgGradientFillRef, svgLineCap, svgPathToPolygons, swapPresentationWindows, switchSmartArtLayout, tableCellCss, tableContainerCss, tableStyleAssignmentUpdate, templateSchemeFromTheme, text3dEmuToPt, text3dPtToEmu, textBuildSpanStyle, textFontSizePtToPx, textFontSizePxToPt, themeColorLabel, themeColorSchemesEqual, themeColorSwatchRows, themeSwatchCommit, themeToCssVars, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, toSlideIndex, toggleBlackboard, toggleCommentResolvedInList, togglePresenterTimer, toggleSheet, toggleStageElementMedia, toggleText3dExtrusion, transformTextCase, transitionSoundOptions, transitionSoundSelectedValue, transitionStockSoundId, trimmedMediaDurationMs, ungroupElements, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateElement, updateMasterViewElement, updateMergeAttrsInRawXml, updateSmartArtNodeText, updateTagInCollections, validateMediaTrimRange, validateRoomId, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, viewPropertiesPatchFromPreferences, viewerOptionsToPreferences, viewerPreferencesFromViewProperties, visibleTemplateElements, warpPreviewPath, withChartPointValue, withChartTitle, withChartUserShapeAdded, withChartUserShapeGroupChildAdded, withChartUserShapeRowChartBoxUpdated, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRemoved, withChartUserShapeRowRotationUpdated, withChartUserShapeRowTextUpdated, withChartUserShapeRowUpdated, withConnectorEndpointUpdate, withFrameSlides, withSlideSizeOrientation, withSlidesPerPage, writeStoredViewerPrefs };
|
|
202866
|
+
export { ACTION_BUTTON_PRESETS, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, ARTISTIC_EFFECTS, AVATAR_COLOR_SWATCHES, BACKSTAGE_NAV, BACKSTAGE_TEMPLATES, BAR3D_SHAPE_OPTIONS, BEVEL_PRESETS, BROADCAST_THROTTLE_MS, CATEGORIES, CHARACTER_SPACING_OPTIONS, CHART_TYPE_OPTIONS, COLOR_MAP_ALIAS_KEYS, COMMENT_MARKER_SIZE, COMMENT_MENTION_ATTRIBUTE, COMMENT_MENTION_CLASS, COMMON_FONTS, COMMON_FONT_SIZES, COMPOUND_LINE_OPTIONS, CONNECTION_TIMEOUT_MS, CONNECTOR_SITE_SNAP_PX, CUSTOM_FONT_ACCEPT, DEBOUNCE_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_COLOR_MAP, DEFAULT_FONT_FAMILY2 as DEFAULT_FONT_FAMILY, DEFAULT_INSERT_CHART_KIND, DEFAULT_MOTION_PATH_PRESET_ID, DEFAULT_PALETTE2, DEFAULT_QUICK_ACCESS_COMMAND_IDS, DEFAULT_ROW_HEIGHT, DEFAULT_VIEWER_OPTIONS, DEFAULT_VIEWER_PREFERENCES, DEFAULT_VIEWER_PROFILE, DEFAULT_VIRTUAL_OVERSCAN, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, EFFECT_SOUND_CATALOGUE, ELEMENT_ACTION_TYPE_OPTIONS, EMPHASIS_PRESET_VALUES, ENTRANCE_PRESET_VALUES, EQUATION_TEMPLATES, EXIT_PRESET_VALUES, EXPANDED_MAX_HEIGHT, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, EncryptedFileError, FILL_MODE_OPTIONS, FILL_PATTERN_LABEL_KEYS, GIF_POST_CAPTURE_MAX_SIDE, GRADIENT_TYPE_OPTIONS, GlyphOutlineFontCache, HANDOUT_OPTIONS, HIDDEN_SLIDE_LABEL_KEY, HIDDEN_SLIDE_SLASH_GRADIENT, HIGHLIGHTER_COLORS, INDENT_PX, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LINE_CAP_OPTIONS, LINE_JOIN_OPTIONS, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_HINT_CLASS, LINK_TOOLTIP_HOST_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_PANEL_CLASS, LOCAL_SYNC_ORIGIN, MATERIAL_PRESETS, MAX_INDENT_LEVEL, MAX_ZOOM_SCALE, MEDIA_CHROME_ATTRIBUTE, MIN_TOUCH_TARGET_PX, MIN_ZOOM_SCALE, MOBILE_BREAKPOINT, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, MOTION_PATH_FAMILIES, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, OFFICE_COLOR_SWATCHES, OUTLINE_LEVEL_ATTR, OUTLINE_ROW_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_VIEW_ATTR, PATTERN_OPTIONS, PATTERN_PRESET_OPTIONS, PDF_SLIDES_PAGE_HEIGHT_PT, PDF_SLIDES_PAGE_WIDTH_PT, PEN_COLORS, PPTX_OPEN_ACCEPT, PRESENTATION_CHANNEL_NAME, PRESENTATION_HASH, PRESENTATION_HIT_TEST_CSS, PRESENTATION_MESSAGE_ORIGIN, PRESENTATION_NONCE_KEY, PRESENTATION_OPEN_EXTENSIONS, PRESENTATION_STAGE_ATTRIBUTE, PRESENTER_CONSOLE_CLASSES, PRESENTER_CONSOLE_CONTROLS, PRESENTER_NAVIGATOR_LABEL_KEYS, PRESENT_TOOLBAR_CLASSES, PRESETS, PRESET_THEMES, PptxHandler, PptxMarkdownConverter, PresentationAnimationController, QUICK_ACCESS_COMMAND_CATALOG, RADAR_STYLE_OPTIONS, READING_VIEW_ATTR, READING_VIEW_COUNTER_ATTR, READING_VIEW_STAGE_ATTR, RIBBON_SHAPE_SWATCHES, RIBBON_TRANSITION_PRESETS, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SHAPE_QUICK_STYLES, SHORTCUT_REFERENCE_ITEMS, SLIDE_SHOW_OPTIONS, SLIDE_SIZE_PRESETS, SLIDE_TEMPLATES, SLIDE_TRANSITION_KEYFRAMES, SLIDE_TRANSITION_OPTIONS, SLIDE_VIRTUALIZATION_THRESHOLD, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, SMARTART_STYLE_LABEL_KEYS, SORTER_MAX_ZOOM, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, STATUS_BAR_CLASSES, STROKE_DASH_OPTIONS2 as STROKE_DASH_OPTIONS, SURFACE_WIREFRAME_OPTIONS, SWITCHABLE_LAYOUT_TYPES, SvgExporter, TABLET_BREAKPOINT, TABLE_STYLE_BORDER_SIDES, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, TABLE_STYLE_EDITOR_PARTS, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, TEXT_WARP_PRESETS, THEME_CATALOG, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_SLOT_LABEL_KEYS, THEME_PRESETS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TOOLBAR_TABS, TRANSITION_DIR_ARROWS, TRANSITION_MORPH_OPTIONS, TRANSITION_ORIENTATION_TYPES, TRANSITION_SOUND_NONE_VALUE, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SPEED_OPTIONS, TRANSITION_VALID_DIRECTIONS, ThemePresets, VIEWER_OPTIONS_TABS, VIEWER_PREFS_STORAGE_KEY, VIEWER_SHORTCUT_REFERENCE, WEBM_MIME_CANDIDATES, acceptAutosaveRecovery, acceptsPresentationInput, actionAffordanceLabels, activateModalFocus, addChartCategory, addChartSeries, addCommentToList, addQuickAccessCommand, addSection, addSiblingAfter, addSmartArtNodeAsChild, addTableStyleToMap, addTagToCollections, advanceChartMarkDrag, advanceChartValueDrag, advanceMainSequence, alignElements, animationEffectLabel, annotationOverlayZIndex, appendPresentationInkPoint, appendTableElementColumn, appendTableElementRow, apply3dEffects, applyAcceptAllSlides, applyAcceptSlide, applyAnimationTimelineOrder, applyAutoCorrect, applyCaseTransformToSegments, applyChartPartHighlight, applyColorChange, applyDuotone, applyFindReplacements, applyFormatToElement, applyHighlightClickStyle, applyImagePathPatches, applyMasterViewCrudAction, applyMotionPathPreset, applyOleDocumentParagraphEdit, applyOleNestedDeckElementTextEdit, applyOleSheetCellEdit, applyOutlineEdit, applyPreferenceToOptions, applyReadingViewCommand, applyRehearsalTimings, applyReroutedConnectors, applyResize, applyStyleToSelectedSegments, applyTableStyleDelete, applyTableStyleFieldEdit, applyTableStyleMapChange, applyTableStylePreset, applyThemeOverrideToSlide, applyThemeToData, applyTransitionSoundFile, applyTransitionStockSound, attachPresentationVisibilityPause, authorConnectorBetweenSites, autosaveSnapshotMark, availableQuickAccessCommands, backstageCardsFor, bar3DShapePatch, beginChartMarkDrag, beginChartValueDrag, beginShapeAdjustment, bringForward, bringToFront, build3DExtrusionData, buildActiveSessionUsers, buildAnimationTimelineBars, buildAnimationTimelineRows, buildAreaChart3DDataForElement, buildBarActions, buildBarChart3DDataForElement, buildBroadcastViewerUrl, buildCacheKey, buildCalloutLeaderLineSvgPath, buildChartMarkDragGeometry, buildChartViewModel, buildChromeStyle, buildCollaborationShareUrl, buildCommentMarkers, buildContentPartStrokes, buildContextMenuEntries, buildCreateCollaborationConfig, buildCssGradientFromShapeStyle, buildDeckSaveOptions, buildDirectionGrid, buildDuotoneCacheKey, buildElementClipboardPayload, buildFieldSubstitutionContext, buildFontCatalog, buildGlyphEnvelope, buildHandoutsHtml, buildHollowHitOutline, buildInitialGuides, buildInkGroupStrokes, buildInlineTextCommitPatch, buildJoinCollaborationConfig, buildLayoutPreviewGeometry, buildLineChart3DDataForElement, buildLiveInkStrokeView, buildMorphAnimationRules, buildMorphTransitionPlan, buildMotionPathPreview, buildNotesHtml, buildNotesPdfBytes, buildNotesPrintHtml, buildOleContentUpdatePatch, buildOleEditDialogDescriptor, buildOleObjectNamePatch, buildOutline, buildOutlineHtml, buildParagraphs, buildPieChart3DDataForElement, buildPresentationAudienceUrl, buildPreviewAnimation, buildPreviewElements, buildPrintDocument, buildPrintHtmlDocument, buildRectPathGradient, buildRunProgramNotice, buildRunTabLines, buildSaveSlides, buildSlideTemplateContent, buildSlideTemplateSlide, buildSlidesHtml, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildSmartArtPreviewElement, buildStrokeOutline, buildStrokePathD, buildSubpathFillOverlay, buildSubpathPaints, buildSummaryZoomView, buildSurfaceChart3DDataForElement, buildSvgGradientDef, buildTabContext, buildTableDataGrid, buildTextBlockStyle, buildTextBody3DSceneStyle, buildTextBodyLayoutStyle, buildTextBuildSpec, buildTextStyleOverrideCss, buildThemeColorGrid, buildThemeColorMap, buildThemeColorSwatchGrid, buildTiledSlidesPdfBytes, buildUserFontFaceStyles, canAddTopLevelNode, canCommitActionType, canDrillDown, canGoNext, canGoPrevious, canGroupSelection, canInteractWithElement, canRemoveTopLevelNode, canSetStrokeWidth, canUngroupSelection, canUseClipboard, cancelBuildReveal, canvasToJpegData, cellRunStyle, cellStyleToCss, centeredSvgTextLines, chartGridlinesPatch, chartGridlinesState, chartPartToAttrs, chartPreserveAspectRatio, checkModifyPassword, clampCropValue, clampGifDimensions, clampNotesFontSize, clampOptionNumber, clampPercent2, clampSorterZoom, clampTransitionNumber, clampUnitInterval2 as clampUnitInterval, clampZoomScale, classifyExtraConnections, classifyMediaType, clearAllLocalViewerData, clearAudienceContent, clearLocalAwareness, clearMotionPath, clearPlaybackTimers, clearStoredViewerPrefs, clearTransitionSound, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collapseChartTitleRunsForEdit, collectCoherent3DOffNodeIds, collectConnectorSiteCandidates, collectImagePaths, collectMediaElements, collectReferencedFontFamilies, collectUsedFonts, colorWithOpacity, commentMentionQuery, commentTextSegments, comparePresentation, compatToastStackStyle, compatibilityWarningToasts, compileEquationTemplateMathMl, compileLatexEquation, computeAllNotesPages, computeAnchoredPopupPosition, computeChartLegendLayout, computeColorFilter, computeColumnBoundaries, computeDrawingViewBox, computeEntranceAnimationDelay, computeGridSpacingPx, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSlideIndices, computeSmartArtElementLayout, computeSnapToShape, computeSplitCell, computeVirtualRange, connectorWrapperTransform, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, createActiveAnimationGroup, createBackstagePresentation, createBlankSlide, createCollaborationLivePatcher, createDefaultChartElement, createDefaultChartUserShape, createDefaultChartUserShapeGroupChild, createDepartureChannel, createGlyphOutlineLookup, createInitialPresentationSnapshot, createPlainNotesSegments, createPresenceProjector, createPresentationKeyBuffer, createPresentationSessionId, createPresenterShowGuard, createPresenterTimer, createSyncGate, createTableStyleEntry, createTouchGestureRecognizer, createViewerOptionsStore, createViewerZoomStore, createWheelStepBuffer, cursorForTool, customGeometryPathsToSvgSubpaths, defaultCssVars, defaultRadius, defaultThemeColors, deleteAutosaveSnapshot, deleteSection, deleteTableStyleFromMap, deleteTagFromCollections, demote, deriveSlideFieldContext, deriveViewportBreakpoints, describeFontEmbedding, describeSmartArtBounds, describeTableStyleEditor, detectOrientation, detectTouchDevice, discardAutosaveRecovery, distributeElements, downloadBlob, downloadDataUrl, editCommentInList, elementActionToPptxAction, elementIdSelector, elementLockTogglePatch, encodeGif, endAudienceDisplay, ensureActionAffordanceStyles, ensureChartInteractionStyles, erasePresentationInkAt, evenColumnWidths, evenRowHeights, exportDeckJson, extraQuickAccessCommands, fetchGoogleWebfontOutlineBytes, filterCommands, filterHiddenSlideIndices, filterInteractableIds, filterRenderedElements, findChartPartTarget, findConnectorSiteNear, findEraserHitElementId, findInSlides, findSelectedThemeSwatch, findSmartArtNodeText, finishPrintWindow, firstShowSlideIndex, flattenNodes, flattenTagCollections, forgetSessionDeck, formatAxisValue, formatBackstageDate, formatBackstageSize, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateNoteLineCount, generateTicks, getActiveXControlOverlayView, getAnimationColorBaseStyle, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getBarFacePicturePixelSampleVersion, getBevelLightingSvgFilter, getCachedResult, getCalloutLeaderLineGeometry, getCalloutViewBoxBounds, getCellDiagonalBorders, getChartStylePalette, getChartUserShapeGroupTransform, getChartUserShapeRowChartBox, getCompoundLineOffsets, getCompoundLineWidths, getComputedEffectStyle, getComputedFillStyle, getComputedStrokeStyle, getConnectorEndpointHandles, getContentPartReplayStyles, getCropShapeClipPath, getCurrentParagraphIndex, getDenseGridLayoutPlan, getDensePanelTouchTargetPx, getDraggedShapeAdjustments, getDuotoneCachedResult, getEffectSoundAsset, getEffectSoundState, getEffectStyleSource, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getFragmentedTransitionDescriptor, getGroupChildParentFill, getImageColorWashStyle, getImageEffectsFilter, getImageEffectsOpacity, getImageFitStyle, getImageSvgFilters, getImageTilingStyle, getInkReplayStyles, getInlineEditorSelection, getLocalStorageUsageSummary, getNonVisualDescriptionFields, getNotesPrintableArea, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDocumentParagraphs, getOleNestedDeckDetail, getOleObjectTypeLabel, getOleSheetGrid, getOleTypeColor, getOleTypeLabel, getOverflowSegments, getPatternSvg, getPendingSelectionRestore, getPresetShapeClipPath, getPresetShapeVectorGeometry, getPrintableArea, getSessionTabId, getShapeAdjustmentHandleDescriptors, getShapeConnectionSites, getSlideBackgroundStyle, getSlideTransitionAnimations, getSoftEdgeSvgFilter, getSubstituteFontFamily, getSvgStrokeDasharray, getTableCellBandStyle, getTextBodyRotationTransform, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, groupSlidesBySection, guidePxToEmu, handleReadingViewKey, hasCopyableFormat, hasDistinctScriptFonts, hasGlyphEnvelope, hasMultipleSelectedTableCells, hasShapeProperties, hasShowSlideAfter, hasTextProperties, hasTiltData, hexToRgbUnit, hiddenSlideCue, hideChartSeries, hollowTextFillStyle, inlineElementPointerEvents, insertCommentMention, insertTableElementColumn, insertTableElementRow, isActionHidden, isBlackboardActive, isBrowserOpenableMime, isCalloutShape, isCellInRect, isCurrentLayout, isEditableMotionPath, isEditableTextElement, isEditorTextInputTarget, isElementActionable, isElementLocked, isElementRendered, isExportAbortError, isHeaderFooterDateTextVisible, isHeaderFooterFooterTextVisible, isHeaderFooterHeaderTextVisible, isHollowShapeElement, isImageLikeElement, isImageTiled, isInkElement, isKeyboardOpen, isLegacyBinaryPresentation, isLinkedTextBox, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isPresentationAdvanceClick, isPresentationSessionMessage, isSeriesUsingSecondaryAxis, isStrokeOnlyPresetElement, isSupportedPresentationFile, isTemplateElementId3 as isTemplateElementId, isUrlSafe, isWedgeCalloutPresetShape, lastShowSlideIndex, listAutosaveSnapshots, listBackstageRecentFiles, listChartUserShapeRows, loadAudienceContent, loadSessionDeck, lockResizeAspect, makeCloneId, makeSlideId, mapEditingWheel, mapEditorKey, mapOutlineKey, mapPresentationKey, mapPresentationWheel, mapSlideShowStartKey, mapSlideSorterKey, masterViewBackgroundColor, masterViewCrudActions, masterViewCrudFailureKey, masterViewElements, masterViewPseudoSlide, matchCommentMentionAuthors, mayLeaveSlideShow, mediaFallbackIcon, mediaFallbackLabelKey, mediaFallbackVisual, mediaPlaybackAttributes, mediaTransportVisible, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, mediaTrimEndMsFromSeconds, mediaTrimEndSeconds, mergeAdditiveSelection, mergeCells, mergePresentationSnapshot, mergeShapes, mergeSlideTransition, mobileElapsedSince, mobileSlideCounter, modelDataToBlobUrl, morphOptionToMode, motionPathEndPixel, motionPathFamilyLabelKey, motionPathFor, motionPathPresetIdForPath, motionPathPresetLabelKey, motionPathPresetsByFamily, motionPathToSvgD, mountAreaChart3D, mountBarChart3D, mountLineChart3D, mountModel3D, mountPieChart3D, mountSurfaceChart3D, movePresenterPointer, moveQuickAccessCommand, moveSectionDown, moveSectionUp, moveSlidesToSection, mruColorsPatch, nestedTextDecorationStyle, newTableElement, nextPresentedSlide, nextShowSlideIndex, normalizeColorsForCapture, normalizeHexColor2 as normalizeHexColor, normalizeStrokeDashType, normalizeTableStyleGuid, notesSegmentsToSpans, observeYDocSlides, ooxmlGradientAngleToCssDegrees, openNativeEyeDropper, openPendingPrintWindow, openPptxFile, openReadingView, openUrlInNewTab, paintedStrokeWidth, paragraphsToSegments, parseDrawingColor, parseDrawingColorOpacity, parsePanoseString, parsePpactionUrl, parseSegmentsFromRichEditor, partitionTemplateElements, patchChartData, pickSupportedMimeType, pieceLetterSpacing, placeAudienceWindow, placeCaretAtEnd, placeTileOnPage, placeholderPromptDescriptor, playFeedbackSound, playGroup, playSlideTransitionPreview, polygonsToSvgPath, pptxActionToElementAction, preprocessCssForCapture, presentationBaseName, presentationEntrySlideIndex, presentationInkPath, presenterElapsed, presenterNextDisabled, presenterPaneAdvancesOnClick, presenterPrevDisabled, presenterTimerProgress, previousShowSlideIndex, printPropertiesFrameSlides, printPropertiesSlidesPerPage, probeAutosaveRecovery, projectDrawingShapes, promote, publishLiveGeometry, publishLiveInlineText, pushRecentColor, quickStyleSwatchCss, radarStylePatch, rasterResultToPngBlob, rasterizeElement, rasterizeElementTiledToCanvas, rasterizeElementTiles, reResolveElementColors, reResolveSlideColors, readBackstageRecentFile, readEditableText, readOnlyRecommendation, readRibbonTransitionDraft, readSlideShowOption, readSlidesFromYDoc, readSoundFileAsDataUrl, readStoredViewerPrefs, readViewportMetrics, readingViewFitScale, rebuildDrawingShapesIfCleared, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, redistributeColumnWidth, registerCollaborationTeardown, registerCrossSlideAudio, registerCustomFont, remapTextToSegments, rememberSessionDeck, removeChartCategory, removeChartSeries, removeCommentFromList, removeEmptyNode, removeLastTableElementColumn, removeLastTableElementRow, removeQuickAccessCommand, removeSmartArtNode, removeTableElementColumn, removeTableElementRow, renameSection, reorder2 as reorder, reorderAnimationTimelineRows, replaceMasterViewElements, replaceOleFile, replyToCommentInList, rerouteConnectorsForMovedElements, resetPresenterTimer, resetSlideLayoutPath, resolve3DRenderingFlags, resolveActionType, resolveAudienceScreenPlacement, resolveAuthoredCustomShowId, resolveAuthoredSlideRange, resolveAutoAdvanceDelayMs, resolveAutoFitFontScale, resolveAutosaveActivation, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, resolveChartKind, resolveConnectorEndpointUpdate, resolveDefaultFontFamily, resolveDefaultPrintSettings, resolveDisplayedChartType, resolveElementActionAffordance, resolveElementAriaAttributes, resolveElementHighlightClick, resolveElementInteractivity, resolveExpiredAutosaveSnapshots, resolveExportCaptureDecision, resolveFontKerning, resolveGoogleWebfontHref, resolveGroupChildFill, resolveHistoryDepth, resolveImageResolutionScale, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, resolveMediaElementSource, resolveMediaTimeNodeElementIds, resolveMetricTrackingPx, resolveNotesSchematicBodyFontSizePx, resolveNotesSegments, resolveOleType, resolveOleVerbTarget, resolveOptionRootClasses, resolvePalette, resolvePresentationAction, resolveProfileInitial, resolveRevealedChartData, resolveRevealedDrawingShapeNodeIds, resolveRevealedDrawingShapes, resolveRevealedSmartArtNodes, resolveScreenTip, resolveScriptFontSet, resolveSelectionPaneRename, resolveShapeGeometry, resolveShowSlideIndexes, resolveSlideSizeSelection, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTemplateBackgroundRows, resolveThemeCatalogEntry, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransitionSoundAction, resolveTransportForServerUrl, resolveViewerAddinRows, restoreFilteredSeries, restoreSegmentSelection, restoreSessionDeck, ribbonTransitionUpdates, rulerDragToGuidePosition, runPresentationAction, runProgramNoticeStackStyle, safeOpenUrl, sanitizeColor, sanitizeGradientStops, sanitizeMathMl, saveAutosaveSnapshot, saveDeckWithPassword, saveViewerProfile, savedPresentationFileName, scaleSlidesForSizeChange, scanAvailableFontFamilies, scheduleAutoAdvanceChain, scheduleMediaTrimAndFade, schemaLabel, scopeLayoutOptionsToSlide, seedRecentColors, segmentFrameCount, segmentsToEditorHtml, segmentsToParagraphs, segmentsToPlainText, selectGoogleWebfontFamilies, sendBackward, sendToBack, seriesSecondaryAxisPatch, setAfterAnimation, setAfterAnimationColor, setCachedResult, setCellText, setChartAxisGridlineStyle, setChartAxisLogScale, setChartAxisTitleStyle, setChartCategoryLabel, setChartCellValue, setChartDataPointExplosion, setChartDataPointFill, setChartDataPointLabel, setChartDataPointMarker, setChartSeriesChartType, setChartSeriesMarker, setDataLabelsRangeCache, setDuotoneCachedResult, setEffectSound, setEffectStockSound, setMasterViewBackgroundColor, setMotionPath, setMotionPathEnd, setPendingSelectionRestore, setSmartArtNodeStyle, setTableElementCellText, shapeFillChange, shapeOutlineChange, shouldAutoFollowBroadcaster, shouldClearAutosaveCacheOnClose, shouldCommitSmartArtNodeText, shouldConfirmExternalHyperlink, shouldDiscardAutosaveOnSuccessfulSave, shouldLoopContinuously, shouldProbeAutosaveRecovery, shouldRoomSlidesReplaceLoad, shouldShowAccessibilitySection, shouldShowAutosaveRecoveryPrompt, shouldShowElementHandles, shouldStickyActionRow, shouldUseSvgWarp, shouldWriteAutosaveSnapshot, siblingCount, siblingIndex, slideProgressPercent, slideShowOptionChange, slideSizeFromPreset, slideSizeToCanvasPx, slideStatusLabel, snapBoxToGrid, splitCell, splitRunByScriptFont, splitRunForMetrics, splitWordsForUnderline, stepPresenterZoom, stopAllPersistentAudio, storeAudienceContent, stripUnderlineDecoration, strokeOutlineViewBox, strokeWidthOf, styleShadowFilter, subscribeBarFacePicturePixelSamples, substituteFieldText, surfaceWireframePatch, svgGradientFillRef, svgLineCap, svgPathToPolygons, swapPresentationWindows, switchSmartArtLayout, tableCellCss, tableContainerCss, tableStyleAssignmentUpdate, templateSchemeFromTheme, text3dEmuToPt, text3dPtToEmu, textBuildSpanStyle, textFontSizePtToPx, textFontSizePxToPt, themeColorLabel, themeColorSchemesEqual, themeColorSwatchRows, themeSwatchCommit, themeToCssVars, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, toSlideIndex, toggleBlackboard, toggleCommentResolvedInList, togglePresenterTimer, toggleSheet, toggleStageElementMedia, toggleText3dExtrusion, transformTextCase, transitionSoundOptions, transitionSoundSelectedValue, transitionStockSoundId, trimmedMediaDurationMs, ungroupElements, updateCellTextInRawXml, updateCellTextStyleInRawXml, updateElement, updateMasterViewElement, updateMergeAttrsInRawXml, updateSmartArtNodeText, updateTagInCollections, validateMediaTrimRange, validateRoomId, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, viewPropertiesPatchFromPreferences, viewerOptionsToPreferences, viewerPreferencesFromViewProperties, visibleTemplateElements, warpPreviewPath, withChartPointValue, withChartTitle, withChartUserShapeAdded, withChartUserShapeGroupChildAdded, withChartUserShapeRowChartBoxUpdated, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRemoved, withChartUserShapeRowRotationUpdated, withChartUserShapeRowTextUpdated, withChartUserShapeRowUpdated, withConnectorEndpointUpdate, withFrameSlides, withSlideSizeOrientation, withSlidesPerPage, writeStoredViewerPrefs };
|