ooxml-ui 1.9.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-SNV6YKPC.js → chunk-HZSYGNNB.js} +2 -1
- package/dist/{chunk-SKYBYVYH.js → chunk-IXLJNVUD.js} +1 -1
- package/dist/{chunk-PH7IBZOZ.js → chunk-WMGMZIMM.js} +1 -1
- package/dist/docx/print-border-width.d.ts +2 -0
- package/dist/docx/print-table.d.ts +1 -1
- package/dist/docx.js +93 -8
- package/dist/index.js +3 -3
- package/dist/pptx/ai/index.cjs +2 -2
- package/dist/pptx/ai/index.mjs +1 -1
- package/dist/pptx/{chunk-F7BBPOVJ.mjs → chunk-5AD3V3PA.mjs} +1 -0
- package/dist/pptx/{chunk-BPAA5FSB.mjs → chunk-6B3UUVRS.mjs} +1 -1
- package/dist/pptx/{chunk-KBCKCW5M.mjs → chunk-6NFW2AQA.mjs} +682 -481
- package/dist/pptx/chunk-EYPNQ3FG.cjs +59 -0
- package/dist/pptx/chunk-FFIYFHBO.mjs +55 -0
- package/dist/pptx/{chunk-HWW2UVUP.cjs → chunk-JRCK6CFI.cjs} +19 -9
- package/dist/pptx/{chunk-MKVKISFW.mjs → chunk-OBRLAW6C.mjs} +1 -1
- package/dist/pptx/{chunk-BFZDO2DY.cjs → chunk-OCNECNJS.cjs} +785 -550
- package/dist/pptx/{chunk-Y4LTLCQP.cjs → chunk-OJFD3SHS.cjs} +26 -47
- package/dist/pptx/{chunk-7KPDES3X.mjs → chunk-PMURSMHH.mjs} +6 -35
- package/dist/pptx/{chunk-PKDISDDZ.cjs → chunk-TSSWTBJQ.cjs} +2 -2
- package/dist/pptx/{chunk-SABFKDRM.mjs → chunk-WFEN6SHA.mjs} +19 -10
- package/dist/pptx/{chunk-UEF4BFW4.cjs → chunk-XFQ2RD4I.cjs} +7 -7
- package/dist/pptx/{chunk-QVYJB7G2.cjs → chunk-Y7CDPPMZ.cjs} +1 -0
- package/dist/pptx/dom/elements/text-shape.d.ts.map +1 -1
- package/dist/pptx/dom/index.cjs +228 -218
- package/dist/pptx/dom/index.mjs +29 -19
- package/dist/pptx/dom/load-presentation.d.ts +1 -0
- package/dist/pptx/dom/load-presentation.d.ts.map +1 -1
- package/dist/pptx/i18n/index.cjs +6 -6
- package/dist/pptx/i18n/index.mjs +1 -1
- package/dist/pptx/i18n/translations-en-galleries.d.ts.map +1 -1
- package/dist/pptx/index.cjs +2889 -2825
- package/dist/pptx/index.mjs +7 -7
- package/dist/pptx/render/animation-after-effect-authoring.d.ts +1 -38
- package/dist/pptx/render/animation-after-effect-authoring.d.ts.map +1 -1
- package/dist/pptx/render/animation-after-effect.d.ts +2 -2
- package/dist/pptx/render/animation-after-effect.d.ts.map +1 -1
- package/dist/pptx/render/animation-authoring.cjs +39 -39
- package/dist/pptx/render/animation-authoring.d.ts +2 -11
- package/dist/pptx/render/animation-authoring.d.ts.map +1 -1
- package/dist/pptx/render/animation-authoring.mjs +1 -1
- package/dist/pptx/render/animation-opacity-playback.d.ts +9 -0
- package/dist/pptx/render/animation-opacity-playback.d.ts.map +1 -0
- package/dist/pptx/render/animation-opacity-style.d.ts +6 -0
- package/dist/pptx/render/animation-opacity-style.d.ts.map +1 -0
- package/dist/pptx/render/animation-playback-engine.d.ts +1 -1
- package/dist/pptx/render/animation-playback-engine.d.ts.map +1 -1
- package/dist/pptx/render/animation-playback-seek.d.ts.map +1 -1
- package/dist/pptx/render/animation-playback-steps.d.ts.map +1 -1
- package/dist/pptx/render/animation-timeline-engine.d.ts +4 -0
- package/dist/pptx/render/animation-timeline-engine.d.ts.map +1 -1
- package/dist/pptx/render/animation-timeline-group.d.ts +2 -0
- package/dist/pptx/render/animation-timeline-group.d.ts.map +1 -1
- package/dist/pptx/render/animation-timeline-regular-step.d.ts.map +1 -1
- package/dist/pptx/render/animation-timeline-rows.d.ts.map +1 -1
- package/dist/pptx/render/animation-timeline-sequence-builder.d.ts.map +1 -1
- package/dist/pptx/render/animation-timeline-step-effect.d.ts +2 -1
- package/dist/pptx/render/animation-timeline-step-effect.d.ts.map +1 -1
- package/dist/pptx/render/animation-timeline-step.d.ts +3 -1
- package/dist/pptx/render/animation-timeline-step.d.ts.map +1 -1
- package/dist/pptx/render/background-animation-layers.d.ts +12 -0
- package/dist/pptx/render/background-animation-layers.d.ts.map +1 -0
- package/dist/pptx/render/customization/customization-resolve-ribbon.d.ts.map +1 -1
- package/dist/pptx/render/customization/ribbon-control-catalog-tail.d.ts +6 -0
- package/dist/pptx/render/customization/ribbon-control-catalog-tail.d.ts.map +1 -1
- package/dist/pptx/render/customization/ribbon-control-catalog.d.ts +6 -0
- package/dist/pptx/render/customization/ribbon-control-catalog.d.ts.map +1 -1
- package/dist/pptx/render/field-context.d.ts +2 -0
- package/dist/pptx/render/field-context.d.ts.map +1 -1
- package/dist/pptx/render/font-family-update.d.ts +45 -0
- package/dist/pptx/render/font-family-update.d.ts.map +1 -0
- package/dist/pptx/render/format-painter.cjs +6 -6
- package/dist/pptx/render/format-painter.mjs +3 -3
- package/dist/pptx/render/index.d.ts +3 -0
- package/dist/pptx/render/index.d.ts.map +1 -1
- package/dist/pptx/render/inline-selection-utils.d.ts +2 -1
- package/dist/pptx/render/inline-selection-utils.d.ts.map +1 -1
- package/dist/pptx/render/inspector-helpers.cjs +17 -13
- package/dist/pptx/render/inspector-helpers.d.ts +8 -0
- package/dist/pptx/render/inspector-helpers.d.ts.map +1 -1
- package/dist/pptx/render/inspector-helpers.mjs +2 -2
- package/dist/pptx/render/picture-frame.d.ts +20 -0
- package/dist/pptx/render/picture-frame.d.ts.map +1 -1
- package/dist/pptx/render/ribbon-animations-state.cjs +6 -6
- package/dist/pptx/render/ribbon-animations-state.mjs +2 -2
- package/dist/pptx/render/ribbon-galleries/gallery-placements.d.ts +3 -3
- package/dist/pptx/render/ribbon-galleries/gallery-placements.d.ts.map +1 -1
- package/dist/pptx/render/ribbon-galleries/table-style-tile-svg.d.ts +21 -6
- package/dist/pptx/render/ribbon-galleries/table-style-tile-svg.d.ts.map +1 -1
- package/dist/pptx/render/ribbon-galleries/table-styles-gallery.d.ts +3 -1
- package/dist/pptx/render/ribbon-galleries/table-styles-gallery.d.ts.map +1 -1
- package/dist/pptx/render/ribbon-home-crop.d.ts +37 -0
- package/dist/pptx/render/ribbon-home-crop.d.ts.map +1 -0
- package/dist/pptx/render/ribbon-home-families-objects.d.ts +5 -2
- package/dist/pptx/render/ribbon-home-families-objects.d.ts.map +1 -1
- package/dist/pptx/render/ribbon-home-spec.d.ts +1 -1
- package/dist/pptx/render/ribbon-home-spec.d.ts.map +1 -1
- package/dist/pptx/render/ribbon-home-state-extras.d.ts.map +1 -1
- package/dist/pptx/render/ribbon-home-state.d.ts +1 -0
- package/dist/pptx/render/ribbon-home-state.d.ts.map +1 -1
- package/dist/pptx/render/text-block-style.d.ts.map +1 -1
- package/dist/pptx/render/text-field-substitution.d.ts +12 -0
- package/dist/pptx/render/text-field-substitution.d.ts.map +1 -1
- package/dist/pptx/render/text-style-update.d.ts.map +1 -1
- package/dist/pptx/render/update-text-segment-style.d.ts +7 -1
- package/dist/pptx/render/update-text-segment-style.d.ts.map +1 -1
- package/dist/pptx/web-components/index.d.ts.map +1 -1
- package/dist/pptx/web-components/ribbon-home-styles.d.ts +1 -1
- package/dist/pptx/web-components/ribbon-home-styles.d.ts.map +1 -1
- package/dist/pptx/web-components/ribbon-home.d.ts +2 -0
- package/dist/pptx/web-components/ribbon-home.d.ts.map +1 -1
- package/dist/{presentation-preview-HF3GZ2VD.js → presentation-preview-VIIU7E2S.js} +1 -1
- package/dist/teams.js +2 -2
- package/dist/xlsx/dialogs/pivot-values.d.ts +10 -0
- package/dist/xlsx.js +147 -12
- package/package.json +2 -2
- package/dist/pptx/chunk-CENGE3TZ.mjs +0 -10
- package/dist/pptx/chunk-OGJRSAGH.cjs +0 -12
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkWSTWYZFM_cjs = require('./chunk-WSTWYZFM.cjs');
|
|
4
4
|
var chunkX7FS7XHU_cjs = require('./chunk-X7FS7XHU.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkXFQ2RD4I_cjs = require('./chunk-XFQ2RD4I.cjs');
|
|
6
6
|
var chunk52LKIMK3_cjs = require('./chunk-52LKIMK3.cjs');
|
|
7
7
|
var chunkK3S2A64B_cjs = require('./chunk-K3S2A64B.cjs');
|
|
8
8
|
var chunkXOAXPD2W_cjs = require('./chunk-XOAXPD2W.cjs');
|
|
9
9
|
var chunkBSGCZ4JZ_cjs = require('./chunk-BSGCZ4JZ.cjs');
|
|
10
10
|
var chunkIOOI63TH_cjs = require('./chunk-IOOI63TH.cjs');
|
|
11
11
|
var chunkZJFN5POF_cjs = require('./chunk-ZJFN5POF.cjs');
|
|
12
|
-
var
|
|
12
|
+
var chunkJRCK6CFI_cjs = require('./chunk-JRCK6CFI.cjs');
|
|
13
13
|
var chunkWB25PCHQ_cjs = require('./chunk-WB25PCHQ.cjs');
|
|
14
14
|
var chunkW3X2UVYQ_cjs = require('./chunk-W3X2UVYQ.cjs');
|
|
15
15
|
var chunkVFPVEVF4_cjs = require('./chunk-VFPVEVF4.cjs');
|
|
@@ -18,11 +18,11 @@ var chunkNTXHQHCS_cjs = require('./chunk-NTXHQHCS.cjs');
|
|
|
18
18
|
var chunk526IHNIH_cjs = require('./chunk-526IHNIH.cjs');
|
|
19
19
|
var chunkX4FNVH7J_cjs = require('./chunk-X4FNVH7J.cjs');
|
|
20
20
|
var chunkUPN5FFKP_cjs = require('./chunk-UPN5FFKP.cjs');
|
|
21
|
-
var
|
|
21
|
+
var chunkOJFD3SHS_cjs = require('./chunk-OJFD3SHS.cjs');
|
|
22
22
|
var chunkUSBRSEJK_cjs = require('./chunk-USBRSEJK.cjs');
|
|
23
23
|
var chunkU47LRWDT_cjs = require('./chunk-U47LRWDT.cjs');
|
|
24
|
-
var
|
|
25
|
-
var
|
|
24
|
+
var chunkY7CDPPMZ_cjs = require('./chunk-Y7CDPPMZ.cjs');
|
|
25
|
+
var chunkEYPNQ3FG_cjs = require('./chunk-EYPNQ3FG.cjs');
|
|
26
26
|
var chunkEW5DW5KR_cjs = require('./chunk-EW5DW5KR.cjs');
|
|
27
27
|
var pptx = require('ooxml-core/pptx');
|
|
28
28
|
var color = require('ooxml-core/color');
|
|
@@ -1564,33 +1564,257 @@ function resolveShapeGeometry(element) {
|
|
|
1564
1564
|
}
|
|
1565
1565
|
return { kind: "none" };
|
|
1566
1566
|
}
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
return
|
|
1567
|
+
var HEX_COLOR = /^#?[0-9a-f]{6}$/iu;
|
|
1568
|
+
function hexToRgb(hex2) {
|
|
1569
|
+
const cleaned = hex2.replace(/^#/u, "");
|
|
1570
|
+
const val = parseInt(cleaned, 16);
|
|
1571
|
+
return {
|
|
1572
|
+
r: val >> 16 & 255,
|
|
1573
|
+
g: val >> 8 & 255,
|
|
1574
|
+
b: val & 255
|
|
1575
|
+
};
|
|
1572
1576
|
}
|
|
1573
|
-
function
|
|
1574
|
-
|
|
1575
|
-
|
|
1577
|
+
function rgbToHex(r, g, b) {
|
|
1578
|
+
const clamp10 = (v) => Math.max(0, Math.min(255, Math.round(v)));
|
|
1579
|
+
return `#${clamp10(r).toString(16).padStart(2, "0")}${clamp10(g).toString(16).padStart(2, "0")}${clamp10(b).toString(16).padStart(2, "0")}`;
|
|
1580
|
+
}
|
|
1581
|
+
function rgbToHsl(r, g, b) {
|
|
1582
|
+
const rn = r / 255;
|
|
1583
|
+
const gn = g / 255;
|
|
1584
|
+
const bn = b / 255;
|
|
1585
|
+
const max = Math.max(rn, gn, bn);
|
|
1586
|
+
const min = Math.min(rn, gn, bn);
|
|
1587
|
+
const l = (max + min) / 2;
|
|
1588
|
+
if (max === min) {
|
|
1589
|
+
return { h: 0, s: 0, l: l * 100 };
|
|
1576
1590
|
}
|
|
1577
|
-
|
|
1591
|
+
const d = max - min;
|
|
1592
|
+
const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
1593
|
+
let h;
|
|
1594
|
+
if (max === rn) {
|
|
1595
|
+
h = ((gn - bn) / d + (gn < bn ? 6 : 0)) * 60;
|
|
1596
|
+
} else if (max === gn) {
|
|
1597
|
+
h = ((bn - rn) / d + 2) * 60;
|
|
1598
|
+
} else {
|
|
1599
|
+
h = ((rn - gn) / d + 4) * 60;
|
|
1600
|
+
}
|
|
1601
|
+
return { h, s: s * 100, l: l * 100 };
|
|
1578
1602
|
}
|
|
1579
|
-
function
|
|
1580
|
-
const
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
if (!hasPictureFrame(element)) {
|
|
1586
|
-
return { box: clipStyle, surface: void 0 };
|
|
1603
|
+
function hslToRgb(h, s, l) {
|
|
1604
|
+
const sn = s / 100;
|
|
1605
|
+
const ln = l / 100;
|
|
1606
|
+
if (sn === 0) {
|
|
1607
|
+
const v = Math.round(ln * 255);
|
|
1608
|
+
return { r: v, g: v, b: v };
|
|
1587
1609
|
}
|
|
1588
|
-
const
|
|
1610
|
+
const hueToRgb = (p2, q2, t) => {
|
|
1611
|
+
let tn = t;
|
|
1612
|
+
if (tn < 0) {
|
|
1613
|
+
tn += 1;
|
|
1614
|
+
}
|
|
1615
|
+
if (tn > 1) {
|
|
1616
|
+
tn -= 1;
|
|
1617
|
+
}
|
|
1618
|
+
if (tn < 1 / 6) {
|
|
1619
|
+
return p2 + (q2 - p2) * 6 * tn;
|
|
1620
|
+
}
|
|
1621
|
+
if (tn < 1 / 2) {
|
|
1622
|
+
return q2;
|
|
1623
|
+
}
|
|
1624
|
+
if (tn < 2 / 3) {
|
|
1625
|
+
return p2 + (q2 - p2) * (2 / 3 - tn) * 6;
|
|
1626
|
+
}
|
|
1627
|
+
return p2;
|
|
1628
|
+
};
|
|
1629
|
+
const q = ln < 0.5 ? ln * (1 + sn) : ln + sn - ln * sn;
|
|
1630
|
+
const p = 2 * ln - q;
|
|
1631
|
+
const hn = h / 360;
|
|
1589
1632
|
return {
|
|
1590
|
-
|
|
1591
|
-
|
|
1633
|
+
r: Math.round(hueToRgb(p, q, hn + 1 / 3) * 255),
|
|
1634
|
+
g: Math.round(hueToRgb(p, q, hn) * 255),
|
|
1635
|
+
b: Math.round(hueToRgb(p, q, hn - 1 / 3) * 255)
|
|
1592
1636
|
};
|
|
1593
1637
|
}
|
|
1638
|
+
function interpolateColor(from, to, t, colorSpace, direction) {
|
|
1639
|
+
const fromRgb = hexToRgb(from);
|
|
1640
|
+
const toRgb = hexToRgb(to);
|
|
1641
|
+
if (colorSpace === "rgb") {
|
|
1642
|
+
return rgbToHex(
|
|
1643
|
+
fromRgb.r + (toRgb.r - fromRgb.r) * t,
|
|
1644
|
+
fromRgb.g + (toRgb.g - fromRgb.g) * t,
|
|
1645
|
+
fromRgb.b + (toRgb.b - fromRgb.b) * t
|
|
1646
|
+
);
|
|
1647
|
+
}
|
|
1648
|
+
const fromHsl = rgbToHsl(fromRgb.r, fromRgb.g, fromRgb.b);
|
|
1649
|
+
const toHsl = rgbToHsl(toRgb.r, toRgb.g, toRgb.b);
|
|
1650
|
+
let hDelta = toHsl.h - fromHsl.h;
|
|
1651
|
+
const dir = direction ?? "cw";
|
|
1652
|
+
if (dir === "cw") {
|
|
1653
|
+
if (hDelta < 0) {
|
|
1654
|
+
hDelta += 360;
|
|
1655
|
+
}
|
|
1656
|
+
} else if (hDelta > 0) {
|
|
1657
|
+
hDelta -= 360;
|
|
1658
|
+
}
|
|
1659
|
+
const h = ((fromHsl.h + hDelta * t) % 360 + 360) % 360;
|
|
1660
|
+
const s = fromHsl.s + (toHsl.s - fromHsl.s) * t;
|
|
1661
|
+
const l = fromHsl.l + (toHsl.l - fromHsl.l) * t;
|
|
1662
|
+
const rgb = hslToRgb(h, s, l);
|
|
1663
|
+
return rgbToHex(rgb.r, rgb.g, rgb.b);
|
|
1664
|
+
}
|
|
1665
|
+
var ATTR_NAME_TO_CSS_PROPERTIES = {
|
|
1666
|
+
fillcolor: ["fill", "background-color", "backgroundColor"],
|
|
1667
|
+
"fill.color": ["fill", "background-color", "backgroundColor"],
|
|
1668
|
+
"style.color": ["color"],
|
|
1669
|
+
"stroke.color": ["stroke", "border-color", "borderColor"],
|
|
1670
|
+
"stroke.dashstyle": ["stroke", "border-color", "borderColor"],
|
|
1671
|
+
"style.visibility": ["color"],
|
|
1672
|
+
ppt_c: ["color"],
|
|
1673
|
+
ppt_x: ["color"],
|
|
1674
|
+
ppt_y: ["color"]
|
|
1675
|
+
};
|
|
1676
|
+
function resolveCssProperties(attrName) {
|
|
1677
|
+
if (!attrName) {
|
|
1678
|
+
return ["color"];
|
|
1679
|
+
}
|
|
1680
|
+
return ATTR_NAME_TO_CSS_PROPERTIES[attrName] ?? ["color"];
|
|
1681
|
+
}
|
|
1682
|
+
function resolveColorAnimationTargets(animationOrAttribute) {
|
|
1683
|
+
const attributes = typeof animationOrAttribute === "string" || animationOrAttribute === void 0 ? [animationOrAttribute] : colorAnimationComponents(animationOrAttribute).map(
|
|
1684
|
+
(component2) => component2.targetAttribute
|
|
1685
|
+
);
|
|
1686
|
+
const targets = [];
|
|
1687
|
+
for (const attribute of attributes) {
|
|
1688
|
+
const cssProperties = resolveCssProperties(attribute);
|
|
1689
|
+
if (cssProperties.includes("fill") && !targets.includes("fill")) {
|
|
1690
|
+
targets.push("fill");
|
|
1691
|
+
}
|
|
1692
|
+
if (cssProperties.includes("stroke") && !targets.includes("stroke")) {
|
|
1693
|
+
targets.push("stroke");
|
|
1694
|
+
}
|
|
1695
|
+
}
|
|
1696
|
+
return targets;
|
|
1697
|
+
}
|
|
1698
|
+
var ANIMATION_COLOR_BASE_PROPERTIES = {
|
|
1699
|
+
color: "--pptx-animation-color-base",
|
|
1700
|
+
fill: "--pptx-animation-fill-base",
|
|
1701
|
+
stroke: "--pptx-animation-stroke-base"
|
|
1702
|
+
};
|
|
1703
|
+
function colorAnimationComponents(colorAnim) {
|
|
1704
|
+
return colorAnim.components && colorAnim.components.length > 0 ? colorAnim.components : [colorAnim];
|
|
1705
|
+
}
|
|
1706
|
+
function clampPercent(value) {
|
|
1707
|
+
return Math.max(0, Math.min(100, value));
|
|
1708
|
+
}
|
|
1709
|
+
function applyHslDelta(fromColor, delta, progress) {
|
|
1710
|
+
const fromRgb = hexToRgb(fromColor);
|
|
1711
|
+
const fromHsl = rgbToHsl(fromRgb.r, fromRgb.g, fromRgb.b);
|
|
1712
|
+
const hue = ((fromHsl.h + delta.hue * progress) % 360 + 360) % 360;
|
|
1713
|
+
const saturation = clampPercent(fromHsl.s + delta.saturation * progress);
|
|
1714
|
+
const lightness = clampPercent(fromHsl.l + delta.lightness * progress);
|
|
1715
|
+
const rgb = hslToRgb(hue, saturation, lightness);
|
|
1716
|
+
return rgbToHex(rgb.r, rgb.g, rgb.b);
|
|
1717
|
+
}
|
|
1718
|
+
function cssNumber(value) {
|
|
1719
|
+
const rounded = Math.round(value * 1e6) / 1e6;
|
|
1720
|
+
return String(Object.is(rounded, -0) ? 0 : rounded);
|
|
1721
|
+
}
|
|
1722
|
+
function baseColorForProperty(property) {
|
|
1723
|
+
if (property === "fill" || property === "background-color" || property === "backgroundColor") {
|
|
1724
|
+
return `var(${ANIMATION_COLOR_BASE_PROPERTIES.fill}, currentColor)`;
|
|
1725
|
+
}
|
|
1726
|
+
if (property === "stroke" || property === "border-color" || property === "borderColor") {
|
|
1727
|
+
return `var(${ANIMATION_COLOR_BASE_PROPERTIES.stroke}, currentColor)`;
|
|
1728
|
+
}
|
|
1729
|
+
return `var(${ANIMATION_COLOR_BASE_PROPERTIES.color}, currentColor)`;
|
|
1730
|
+
}
|
|
1731
|
+
function relativeHslColor(property, delta, progress) {
|
|
1732
|
+
const hue = cssNumber(delta.hue * progress);
|
|
1733
|
+
const saturation = cssNumber(delta.saturation * progress);
|
|
1734
|
+
const lightness = cssNumber(delta.lightness * progress);
|
|
1735
|
+
return `hsl(from ${baseColorForProperty(property)} calc(h + ${hue}) calc(s + ${saturation}) calc(l + ${lightness}) / alpha)`;
|
|
1736
|
+
}
|
|
1737
|
+
function resolveComponentColorHex(raw, ref, themeColorMap) {
|
|
1738
|
+
if (!raw) {
|
|
1739
|
+
return void 0;
|
|
1740
|
+
}
|
|
1741
|
+
if (HEX_COLOR.test(raw)) {
|
|
1742
|
+
return raw;
|
|
1743
|
+
}
|
|
1744
|
+
return ref ? pptx.resolveThemeColorRef(ref, themeColorMap) : void 0;
|
|
1745
|
+
}
|
|
1746
|
+
function absoluteComponentColor(component2, progress, themeColorMap) {
|
|
1747
|
+
const { colorSpace, direction } = component2;
|
|
1748
|
+
const fromColor = resolveComponentColorHex(
|
|
1749
|
+
component2.fromColor,
|
|
1750
|
+
component2.fromColorRef,
|
|
1751
|
+
themeColorMap
|
|
1752
|
+
);
|
|
1753
|
+
const toColor = resolveComponentColorHex(component2.toColor, component2.toColorRef, themeColorMap);
|
|
1754
|
+
const byColor = resolveComponentColorHex(component2.byColor, component2.byColorRef, themeColorMap);
|
|
1755
|
+
let effectiveFrom;
|
|
1756
|
+
let effectiveTo;
|
|
1757
|
+
if (fromColor && toColor) {
|
|
1758
|
+
effectiveFrom = fromColor;
|
|
1759
|
+
effectiveTo = toColor;
|
|
1760
|
+
} else if (fromColor && byColor) {
|
|
1761
|
+
const fromRgb = hexToRgb(fromColor);
|
|
1762
|
+
const byRgb = hexToRgb(byColor);
|
|
1763
|
+
effectiveFrom = fromColor;
|
|
1764
|
+
effectiveTo = rgbToHex(fromRgb.r + byRgb.r, fromRgb.g + byRgb.g, fromRgb.b + byRgb.b);
|
|
1765
|
+
} else if (toColor) {
|
|
1766
|
+
effectiveFrom = "#000000";
|
|
1767
|
+
effectiveTo = toColor;
|
|
1768
|
+
} else {
|
|
1769
|
+
return void 0;
|
|
1770
|
+
}
|
|
1771
|
+
return interpolateColor(effectiveFrom, effectiveTo, progress, colorSpace, direction);
|
|
1772
|
+
}
|
|
1773
|
+
function buildColorAnimationKeyframes(colorAnim, keyframeName2, steps = 10, themeColorMap) {
|
|
1774
|
+
const components = colorAnimationComponents(colorAnim);
|
|
1775
|
+
if (!components.some(
|
|
1776
|
+
(component2) => component2.hslDelta !== void 0 || component2.toColor !== void 0 || component2.fromColor !== void 0 && component2.byColor !== void 0
|
|
1777
|
+
)) {
|
|
1778
|
+
return void 0;
|
|
1779
|
+
}
|
|
1780
|
+
const lines = [];
|
|
1781
|
+
let hasDeclarations = false;
|
|
1782
|
+
const actualSteps = Math.max(2, steps);
|
|
1783
|
+
for (let i = 0; i <= actualSteps; i++) {
|
|
1784
|
+
const t = i / actualSteps;
|
|
1785
|
+
const pct3 = Math.round(t * 100);
|
|
1786
|
+
const declarations3 = [];
|
|
1787
|
+
for (const component2 of components) {
|
|
1788
|
+
const cssProperties = resolveCssProperties(component2.targetAttribute);
|
|
1789
|
+
if (component2.hslDelta) {
|
|
1790
|
+
const hslFromColor = resolveComponentColorHex(
|
|
1791
|
+
component2.fromColor,
|
|
1792
|
+
component2.fromColorRef,
|
|
1793
|
+
themeColorMap
|
|
1794
|
+
);
|
|
1795
|
+
if (component2.fromColor && !hslFromColor) {
|
|
1796
|
+
continue;
|
|
1797
|
+
}
|
|
1798
|
+
for (const property of cssProperties) {
|
|
1799
|
+
const color2 = hslFromColor ? applyHslDelta(hslFromColor, component2.hslDelta, t) : relativeHslColor(property, component2.hslDelta, t);
|
|
1800
|
+
declarations3.push(`${property}: ${color2};`);
|
|
1801
|
+
hasDeclarations = true;
|
|
1802
|
+
}
|
|
1803
|
+
continue;
|
|
1804
|
+
}
|
|
1805
|
+
const color = absoluteComponentColor(component2, t, themeColorMap);
|
|
1806
|
+
if (color) {
|
|
1807
|
+
declarations3.push(...cssProperties.map((property) => `${property}: ${color};`));
|
|
1808
|
+
hasDeclarations = true;
|
|
1809
|
+
}
|
|
1810
|
+
}
|
|
1811
|
+
const decls = declarations3.join(" ");
|
|
1812
|
+
lines.push(` ${pct3}% { ${decls} }`);
|
|
1813
|
+
}
|
|
1814
|
+
return hasDeclarations ? `@keyframes ${keyframeName2} {
|
|
1815
|
+
${lines.join("\n")}
|
|
1816
|
+
}` : void 0;
|
|
1817
|
+
}
|
|
1594
1818
|
var NO_STROKE = {
|
|
1595
1819
|
borderWidth: 0,
|
|
1596
1820
|
cssBorderWidth: "0px",
|
|
@@ -1664,6 +1888,119 @@ function getComputedStrokeStyle(element) {
|
|
|
1664
1888
|
...joins
|
|
1665
1889
|
};
|
|
1666
1890
|
}
|
|
1891
|
+
|
|
1892
|
+
// src/pptx/render/animation-color-base-style.ts
|
|
1893
|
+
function getAnimationColorBaseStyle(element, options = {}) {
|
|
1894
|
+
if (!pptx.hasShapeProperties(element) || !options.animatesFill && !options.animatesStroke) {
|
|
1895
|
+
return {};
|
|
1896
|
+
}
|
|
1897
|
+
const style = {};
|
|
1898
|
+
if (options.animatesFill) {
|
|
1899
|
+
const fill = chunkVFPVEVF4_cjs.getComputedFillStyle(element, options.parentGroupFill);
|
|
1900
|
+
style[ANIMATION_COLOR_BASE_PROPERTIES.fill] = fill?.backgroundColor ?? element.shapeStyle?.fillColor ?? "currentColor";
|
|
1901
|
+
}
|
|
1902
|
+
if (options.animatesStroke) {
|
|
1903
|
+
const stroke = getComputedStrokeStyle(element);
|
|
1904
|
+
style[ANIMATION_COLOR_BASE_PROPERTIES.stroke] = stroke.borderColor ?? element.shapeStyle?.strokeColor ?? "currentColor";
|
|
1905
|
+
}
|
|
1906
|
+
style[ANIMATION_COLOR_BASE_PROPERTIES.color] = (pptx.hasTextProperties(element) ? element.textStyle?.color : void 0) ?? "currentColor";
|
|
1907
|
+
return style;
|
|
1908
|
+
}
|
|
1909
|
+
|
|
1910
|
+
// src/pptx/render/animation-target-id.ts
|
|
1911
|
+
var BACKGROUND_ANIMATION_ID_SUFFIX = "::pptx-bg";
|
|
1912
|
+
function resolveAnimationTargetId(animation) {
|
|
1913
|
+
const targetId = (animation.target?.type === "shape" ? animation.target.subShapeId : void 0) ?? animation.targetId ?? "";
|
|
1914
|
+
if (targetId && animation.target?.type === "shape" && animation.target.backgroundOnly === true) {
|
|
1915
|
+
return `${targetId}${BACKGROUND_ANIMATION_ID_SUFFIX}`;
|
|
1916
|
+
}
|
|
1917
|
+
return targetId;
|
|
1918
|
+
}
|
|
1919
|
+
|
|
1920
|
+
// src/pptx/render/animation-opacity-style.ts
|
|
1921
|
+
function getAnimationOpacity(state, authored) {
|
|
1922
|
+
return state?.opacity ?? authored;
|
|
1923
|
+
}
|
|
1924
|
+
var authoredOpacity = /* @__PURE__ */ new WeakMap();
|
|
1925
|
+
function applyAnimationOpacity(element, state) {
|
|
1926
|
+
if (state?.opacity !== void 0) {
|
|
1927
|
+
if (!authoredOpacity.has(element)) {
|
|
1928
|
+
authoredOpacity.set(
|
|
1929
|
+
element,
|
|
1930
|
+
element.dataset.animId?.endsWith(BACKGROUND_ANIMATION_ID_SUFFIX) ? "" : element.style.opacity
|
|
1931
|
+
);
|
|
1932
|
+
}
|
|
1933
|
+
element.style.opacity = String(getAnimationOpacity(state, void 0));
|
|
1934
|
+
} else if (authoredOpacity.has(element)) {
|
|
1935
|
+
element.style.opacity = authoredOpacity.get(element);
|
|
1936
|
+
authoredOpacity.delete(element);
|
|
1937
|
+
}
|
|
1938
|
+
}
|
|
1939
|
+
function getShapeEffectLayerPlacement(element) {
|
|
1940
|
+
const afterBody = pptx.isImageLikeElement(element);
|
|
1941
|
+
return { beforeBody: !afterBody, afterBody };
|
|
1942
|
+
}
|
|
1943
|
+
function getShapeEffectAnimationLayerStyle(element, visualStyle, state) {
|
|
1944
|
+
return {
|
|
1945
|
+
...getAnimationColorBaseStyle(element, state),
|
|
1946
|
+
...visualStyle,
|
|
1947
|
+
...state.opacity !== void 0 ? { opacity: getAnimationOpacity(state, void 0) } : {},
|
|
1948
|
+
...pptx.isImageLikeElement(element) ? { clipPath: "none", overflow: "visible" } : {},
|
|
1949
|
+
position: "absolute",
|
|
1950
|
+
inset: "0",
|
|
1951
|
+
transformOrigin: "center",
|
|
1952
|
+
visibility: state.visible === false ? "hidden" : "visible",
|
|
1953
|
+
...state.cssAnimation ? { animation: state.cssAnimation } : {},
|
|
1954
|
+
pointerEvents: "none"
|
|
1955
|
+
};
|
|
1956
|
+
}
|
|
1957
|
+
function getPictureShadowFilter(element) {
|
|
1958
|
+
if (!pptx.isImageLikeElement(element) || !pptx.hasShapeProperties(element)) {
|
|
1959
|
+
return void 0;
|
|
1960
|
+
}
|
|
1961
|
+
return getCompositeOuterShadowFilterCss(element.shapeStyle, { rotation: element.rotation });
|
|
1962
|
+
}
|
|
1963
|
+
function hasPictureFrame(element) {
|
|
1964
|
+
if (!pptx.isImageLikeElement(element)) {
|
|
1965
|
+
return false;
|
|
1966
|
+
}
|
|
1967
|
+
return buildStrokeOutline(element) !== void 0 || getPictureShadowFilter(element) !== void 0;
|
|
1968
|
+
}
|
|
1969
|
+
function getPictureFrameLayers(element, clip) {
|
|
1970
|
+
const clipStyle = {
|
|
1971
|
+
overflow: clip.overflow,
|
|
1972
|
+
...clip.borderRadius ? { borderRadius: clip.borderRadius } : {},
|
|
1973
|
+
...clip.clipPath ? { clipPath: clip.clipPath } : {}
|
|
1974
|
+
};
|
|
1975
|
+
if (!hasPictureFrame(element)) {
|
|
1976
|
+
return { box: clipStyle, surface: void 0 };
|
|
1977
|
+
}
|
|
1978
|
+
const shadow = getPictureShadowFilter(element);
|
|
1979
|
+
return {
|
|
1980
|
+
box: { overflow: "visible", ...shadow ? { filter: shadow } : {} },
|
|
1981
|
+
surface: { position: "absolute", inset: "0", ...clipStyle }
|
|
1982
|
+
};
|
|
1983
|
+
}
|
|
1984
|
+
|
|
1985
|
+
// src/pptx/render/background-animation-layers.ts
|
|
1986
|
+
function getBackgroundAnimationState(element, states) {
|
|
1987
|
+
return element.type === "text" || element.type === "shape" || element.type === "picture" || element.type === "image" ? states?.get(`${element.id}${BACKGROUND_ANIMATION_ID_SUFFIX}`) : void 0;
|
|
1988
|
+
}
|
|
1989
|
+
var PAINT = /^(?:background|border|stroke|fill)|^(?:filter|boxShadow|mixBlendMode|clipPath)$/;
|
|
1990
|
+
function getBackgroundAnimationLayers(element, style, state) {
|
|
1991
|
+
if (!state) return { box: style, paint: void 0, targetId: void 0 };
|
|
1992
|
+
const box = {}, paint = {};
|
|
1993
|
+
for (const [key, value] of Object.entries(style)) {
|
|
1994
|
+
if (PAINT.test(key) && (typeof value === "string" || typeof value === "number"))
|
|
1995
|
+
paint[key] = value;
|
|
1996
|
+
else Object.assign(box, { [key]: value });
|
|
1997
|
+
}
|
|
1998
|
+
return {
|
|
1999
|
+
box,
|
|
2000
|
+
paint: getShapeEffectAnimationLayerStyle(element, paint, state),
|
|
2001
|
+
targetId: `${element.id}${BACKGROUND_ANIMATION_ID_SUFFIX}`
|
|
2002
|
+
};
|
|
2003
|
+
}
|
|
1667
2004
|
function isImageTiled(element) {
|
|
1668
2005
|
if (!pptx.isImageLikeElement(element)) {
|
|
1669
2006
|
return false;
|
|
@@ -9451,15 +9788,13 @@ function bookmarkTriggerPatch(optionValue) {
|
|
|
9451
9788
|
};
|
|
9452
9789
|
}
|
|
9453
9790
|
function setTriggerBookmark(anims, elementId, optionValue) {
|
|
9454
|
-
return
|
|
9791
|
+
return chunkOJFD3SHS_cjs.upsert(anims, elementId, (cur) => ({ ...cur, ...bookmarkTriggerPatch(optionValue) }));
|
|
9455
9792
|
}
|
|
9456
|
-
|
|
9457
|
-
// src/pptx/render/animation-timeline-rows.ts
|
|
9458
9793
|
function nativeRowKey(anchor) {
|
|
9459
9794
|
return `native:${anchor.order}`;
|
|
9460
9795
|
}
|
|
9461
9796
|
function buildAnimationTimelineRows(animations, anchors = []) {
|
|
9462
|
-
const editorRows = animations.map((anim) => ({
|
|
9797
|
+
const editorRows = animations.filter((anim) => !pptx.isNativeAfterAnimationOnly(anim)).map((anim) => ({
|
|
9463
9798
|
kind: "editor",
|
|
9464
9799
|
key: `editor:${anim.elementId}`,
|
|
9465
9800
|
order: anim.order ?? 0,
|
|
@@ -9794,7 +10129,7 @@ function getEffectSoundAsset(id) {
|
|
|
9794
10129
|
|
|
9795
10130
|
// src/pptx/render/animation-sound-authoring.ts
|
|
9796
10131
|
function getEffectSoundState(slideAnimations, elementId) {
|
|
9797
|
-
const entry5 =
|
|
10132
|
+
const entry5 = chunkOJFD3SHS_cjs.animationFor(slideAnimations, elementId);
|
|
9798
10133
|
if (!entry5) {
|
|
9799
10134
|
return { hasSound: false };
|
|
9800
10135
|
}
|
|
@@ -9825,7 +10160,7 @@ function lastPathSegment(path) {
|
|
|
9825
10160
|
return segments[segments.length - 1] || void 0;
|
|
9826
10161
|
}
|
|
9827
10162
|
function setEffectSound(anims, elementId, pick) {
|
|
9828
|
-
return
|
|
10163
|
+
return chunkOJFD3SHS_cjs.upsert(anims, elementId, (cur) => ({
|
|
9829
10164
|
...cur,
|
|
9830
10165
|
soundData: pick?.dataUrl,
|
|
9831
10166
|
soundFileName: pick?.fileName,
|
|
@@ -9835,35 +10170,6 @@ function setEffectSound(anims, elementId, pick) {
|
|
|
9835
10170
|
}));
|
|
9836
10171
|
}
|
|
9837
10172
|
|
|
9838
|
-
// src/pptx/render/animation-after-effect-authoring.ts
|
|
9839
|
-
var AFTER_ANIMATION_VALUES = [
|
|
9840
|
-
"none",
|
|
9841
|
-
"dimToColor",
|
|
9842
|
-
"hideAfterAnimation",
|
|
9843
|
-
"hideOnNextClick"
|
|
9844
|
-
];
|
|
9845
|
-
var DEFAULT_AFTER_ANIMATION_DIM_COLOR = "#808080";
|
|
9846
|
-
function setAfterAnimation(anims, elementId, action) {
|
|
9847
|
-
return chunkY4LTLCQP_cjs.upsert(anims, elementId, (cur) => {
|
|
9848
|
-
const value = action === "none" ? void 0 : action;
|
|
9849
|
-
return {
|
|
9850
|
-
...cur,
|
|
9851
|
-
afterAnimation: value,
|
|
9852
|
-
afterAnimationColor: value === "dimToColor" ? cur.afterAnimationColor ?? DEFAULT_AFTER_ANIMATION_DIM_COLOR : void 0
|
|
9853
|
-
};
|
|
9854
|
-
});
|
|
9855
|
-
}
|
|
9856
|
-
function setAfterAnimationColor(anims, elementId, color) {
|
|
9857
|
-
const entry5 = chunkY4LTLCQP_cjs.animationFor(anims, elementId);
|
|
9858
|
-
if (!entry5 || entry5.afterAnimation !== "dimToColor") {
|
|
9859
|
-
return [...anims];
|
|
9860
|
-
}
|
|
9861
|
-
return chunkY4LTLCQP_cjs.upsert(anims, elementId, (cur) => ({ ...cur, afterAnimationColor: color }));
|
|
9862
|
-
}
|
|
9863
|
-
function getAfterAnimation(slideAnimations, elementId) {
|
|
9864
|
-
return chunkY4LTLCQP_cjs.animationFor(slideAnimations, elementId)?.afterAnimation ?? "none";
|
|
9865
|
-
}
|
|
9866
|
-
|
|
9867
10173
|
// src/pptx/render/animation-playback.ts
|
|
9868
10174
|
function startsNewGroup(trigger) {
|
|
9869
10175
|
return trigger === "onClick" || trigger === "onShapeClick" || trigger === "onHover" || trigger === "onMediaBookmark";
|
|
@@ -9934,8 +10240,8 @@ function revealedElementStyles(groups, step) {
|
|
|
9934
10240
|
function pendingElementStyles(groups, step) {
|
|
9935
10241
|
const result = /* @__PURE__ */ new Map();
|
|
9936
10242
|
const clamped = clampStep(step, groups.length);
|
|
9937
|
-
const
|
|
9938
|
-
for (const group of
|
|
10243
|
+
const pending2 = groups.slice(clamped);
|
|
10244
|
+
for (const group of pending2) {
|
|
9939
10245
|
for (const animation of group.animations) {
|
|
9940
10246
|
const hidden = initialHiddenStyle(animation);
|
|
9941
10247
|
if (Object.keys(hidden).length > 0 && !result.has(animation.elementId)) {
|
|
@@ -11766,273 +12072,6 @@ var KEYFRAME_DEFINITIONS = {
|
|
|
11766
12072
|
function getEffectKeyframes(effect) {
|
|
11767
12073
|
return KEYFRAME_DEFINITIONS[effect] ?? "";
|
|
11768
12074
|
}
|
|
11769
|
-
var HEX_COLOR = /^#?[0-9a-f]{6}$/iu;
|
|
11770
|
-
function hexToRgb(hex2) {
|
|
11771
|
-
const cleaned = hex2.replace(/^#/u, "");
|
|
11772
|
-
const val = parseInt(cleaned, 16);
|
|
11773
|
-
return {
|
|
11774
|
-
r: val >> 16 & 255,
|
|
11775
|
-
g: val >> 8 & 255,
|
|
11776
|
-
b: val & 255
|
|
11777
|
-
};
|
|
11778
|
-
}
|
|
11779
|
-
function rgbToHex(r, g, b) {
|
|
11780
|
-
const clamp10 = (v) => Math.max(0, Math.min(255, Math.round(v)));
|
|
11781
|
-
return `#${clamp10(r).toString(16).padStart(2, "0")}${clamp10(g).toString(16).padStart(2, "0")}${clamp10(b).toString(16).padStart(2, "0")}`;
|
|
11782
|
-
}
|
|
11783
|
-
function rgbToHsl(r, g, b) {
|
|
11784
|
-
const rn = r / 255;
|
|
11785
|
-
const gn = g / 255;
|
|
11786
|
-
const bn = b / 255;
|
|
11787
|
-
const max = Math.max(rn, gn, bn);
|
|
11788
|
-
const min = Math.min(rn, gn, bn);
|
|
11789
|
-
const l = (max + min) / 2;
|
|
11790
|
-
if (max === min) {
|
|
11791
|
-
return { h: 0, s: 0, l: l * 100 };
|
|
11792
|
-
}
|
|
11793
|
-
const d = max - min;
|
|
11794
|
-
const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
11795
|
-
let h;
|
|
11796
|
-
if (max === rn) {
|
|
11797
|
-
h = ((gn - bn) / d + (gn < bn ? 6 : 0)) * 60;
|
|
11798
|
-
} else if (max === gn) {
|
|
11799
|
-
h = ((bn - rn) / d + 2) * 60;
|
|
11800
|
-
} else {
|
|
11801
|
-
h = ((rn - gn) / d + 4) * 60;
|
|
11802
|
-
}
|
|
11803
|
-
return { h, s: s * 100, l: l * 100 };
|
|
11804
|
-
}
|
|
11805
|
-
function hslToRgb2(h, s, l) {
|
|
11806
|
-
const sn = s / 100;
|
|
11807
|
-
const ln = l / 100;
|
|
11808
|
-
if (sn === 0) {
|
|
11809
|
-
const v = Math.round(ln * 255);
|
|
11810
|
-
return { r: v, g: v, b: v };
|
|
11811
|
-
}
|
|
11812
|
-
const hueToRgb = (p2, q2, t) => {
|
|
11813
|
-
let tn = t;
|
|
11814
|
-
if (tn < 0) {
|
|
11815
|
-
tn += 1;
|
|
11816
|
-
}
|
|
11817
|
-
if (tn > 1) {
|
|
11818
|
-
tn -= 1;
|
|
11819
|
-
}
|
|
11820
|
-
if (tn < 1 / 6) {
|
|
11821
|
-
return p2 + (q2 - p2) * 6 * tn;
|
|
11822
|
-
}
|
|
11823
|
-
if (tn < 1 / 2) {
|
|
11824
|
-
return q2;
|
|
11825
|
-
}
|
|
11826
|
-
if (tn < 2 / 3) {
|
|
11827
|
-
return p2 + (q2 - p2) * (2 / 3 - tn) * 6;
|
|
11828
|
-
}
|
|
11829
|
-
return p2;
|
|
11830
|
-
};
|
|
11831
|
-
const q = ln < 0.5 ? ln * (1 + sn) : ln + sn - ln * sn;
|
|
11832
|
-
const p = 2 * ln - q;
|
|
11833
|
-
const hn = h / 360;
|
|
11834
|
-
return {
|
|
11835
|
-
r: Math.round(hueToRgb(p, q, hn + 1 / 3) * 255),
|
|
11836
|
-
g: Math.round(hueToRgb(p, q, hn) * 255),
|
|
11837
|
-
b: Math.round(hueToRgb(p, q, hn - 1 / 3) * 255)
|
|
11838
|
-
};
|
|
11839
|
-
}
|
|
11840
|
-
function interpolateColor(from, to, t, colorSpace, direction) {
|
|
11841
|
-
const fromRgb = hexToRgb(from);
|
|
11842
|
-
const toRgb = hexToRgb(to);
|
|
11843
|
-
if (colorSpace === "rgb") {
|
|
11844
|
-
return rgbToHex(
|
|
11845
|
-
fromRgb.r + (toRgb.r - fromRgb.r) * t,
|
|
11846
|
-
fromRgb.g + (toRgb.g - fromRgb.g) * t,
|
|
11847
|
-
fromRgb.b + (toRgb.b - fromRgb.b) * t
|
|
11848
|
-
);
|
|
11849
|
-
}
|
|
11850
|
-
const fromHsl = rgbToHsl(fromRgb.r, fromRgb.g, fromRgb.b);
|
|
11851
|
-
const toHsl = rgbToHsl(toRgb.r, toRgb.g, toRgb.b);
|
|
11852
|
-
let hDelta = toHsl.h - fromHsl.h;
|
|
11853
|
-
const dir = direction ?? "cw";
|
|
11854
|
-
if (dir === "cw") {
|
|
11855
|
-
if (hDelta < 0) {
|
|
11856
|
-
hDelta += 360;
|
|
11857
|
-
}
|
|
11858
|
-
} else if (hDelta > 0) {
|
|
11859
|
-
hDelta -= 360;
|
|
11860
|
-
}
|
|
11861
|
-
const h = ((fromHsl.h + hDelta * t) % 360 + 360) % 360;
|
|
11862
|
-
const s = fromHsl.s + (toHsl.s - fromHsl.s) * t;
|
|
11863
|
-
const l = fromHsl.l + (toHsl.l - fromHsl.l) * t;
|
|
11864
|
-
const rgb = hslToRgb2(h, s, l);
|
|
11865
|
-
return rgbToHex(rgb.r, rgb.g, rgb.b);
|
|
11866
|
-
}
|
|
11867
|
-
var ATTR_NAME_TO_CSS_PROPERTIES = {
|
|
11868
|
-
fillcolor: ["fill", "background-color", "backgroundColor"],
|
|
11869
|
-
"fill.color": ["fill", "background-color", "backgroundColor"],
|
|
11870
|
-
"style.color": ["color"],
|
|
11871
|
-
"stroke.color": ["stroke", "border-color", "borderColor"],
|
|
11872
|
-
"stroke.dashstyle": ["stroke", "border-color", "borderColor"],
|
|
11873
|
-
"style.visibility": ["color"],
|
|
11874
|
-
ppt_c: ["color"],
|
|
11875
|
-
ppt_x: ["color"],
|
|
11876
|
-
ppt_y: ["color"]
|
|
11877
|
-
};
|
|
11878
|
-
function resolveCssProperties(attrName) {
|
|
11879
|
-
if (!attrName) {
|
|
11880
|
-
return ["color"];
|
|
11881
|
-
}
|
|
11882
|
-
return ATTR_NAME_TO_CSS_PROPERTIES[attrName] ?? ["color"];
|
|
11883
|
-
}
|
|
11884
|
-
function resolveColorAnimationTargets(animationOrAttribute) {
|
|
11885
|
-
const attributes = typeof animationOrAttribute === "string" || animationOrAttribute === void 0 ? [animationOrAttribute] : colorAnimationComponents(animationOrAttribute).map(
|
|
11886
|
-
(component2) => component2.targetAttribute
|
|
11887
|
-
);
|
|
11888
|
-
const targets = [];
|
|
11889
|
-
for (const attribute of attributes) {
|
|
11890
|
-
const cssProperties = resolveCssProperties(attribute);
|
|
11891
|
-
if (cssProperties.includes("fill") && !targets.includes("fill")) {
|
|
11892
|
-
targets.push("fill");
|
|
11893
|
-
}
|
|
11894
|
-
if (cssProperties.includes("stroke") && !targets.includes("stroke")) {
|
|
11895
|
-
targets.push("stroke");
|
|
11896
|
-
}
|
|
11897
|
-
}
|
|
11898
|
-
return targets;
|
|
11899
|
-
}
|
|
11900
|
-
var ANIMATION_COLOR_BASE_PROPERTIES = {
|
|
11901
|
-
color: "--pptx-animation-color-base",
|
|
11902
|
-
fill: "--pptx-animation-fill-base",
|
|
11903
|
-
stroke: "--pptx-animation-stroke-base"
|
|
11904
|
-
};
|
|
11905
|
-
function colorAnimationComponents(colorAnim) {
|
|
11906
|
-
return colorAnim.components && colorAnim.components.length > 0 ? colorAnim.components : [colorAnim];
|
|
11907
|
-
}
|
|
11908
|
-
function clampPercent(value) {
|
|
11909
|
-
return Math.max(0, Math.min(100, value));
|
|
11910
|
-
}
|
|
11911
|
-
function applyHslDelta(fromColor, delta, progress) {
|
|
11912
|
-
const fromRgb = hexToRgb(fromColor);
|
|
11913
|
-
const fromHsl = rgbToHsl(fromRgb.r, fromRgb.g, fromRgb.b);
|
|
11914
|
-
const hue = ((fromHsl.h + delta.hue * progress) % 360 + 360) % 360;
|
|
11915
|
-
const saturation = clampPercent(fromHsl.s + delta.saturation * progress);
|
|
11916
|
-
const lightness = clampPercent(fromHsl.l + delta.lightness * progress);
|
|
11917
|
-
const rgb = hslToRgb2(hue, saturation, lightness);
|
|
11918
|
-
return rgbToHex(rgb.r, rgb.g, rgb.b);
|
|
11919
|
-
}
|
|
11920
|
-
function cssNumber(value) {
|
|
11921
|
-
const rounded = Math.round(value * 1e6) / 1e6;
|
|
11922
|
-
return String(Object.is(rounded, -0) ? 0 : rounded);
|
|
11923
|
-
}
|
|
11924
|
-
function baseColorForProperty(property) {
|
|
11925
|
-
if (property === "fill" || property === "background-color" || property === "backgroundColor") {
|
|
11926
|
-
return `var(${ANIMATION_COLOR_BASE_PROPERTIES.fill}, currentColor)`;
|
|
11927
|
-
}
|
|
11928
|
-
if (property === "stroke" || property === "border-color" || property === "borderColor") {
|
|
11929
|
-
return `var(${ANIMATION_COLOR_BASE_PROPERTIES.stroke}, currentColor)`;
|
|
11930
|
-
}
|
|
11931
|
-
return `var(${ANIMATION_COLOR_BASE_PROPERTIES.color}, currentColor)`;
|
|
11932
|
-
}
|
|
11933
|
-
function relativeHslColor(property, delta, progress) {
|
|
11934
|
-
const hue = cssNumber(delta.hue * progress);
|
|
11935
|
-
const saturation = cssNumber(delta.saturation * progress);
|
|
11936
|
-
const lightness = cssNumber(delta.lightness * progress);
|
|
11937
|
-
return `hsl(from ${baseColorForProperty(property)} calc(h + ${hue}) calc(s + ${saturation}) calc(l + ${lightness}) / alpha)`;
|
|
11938
|
-
}
|
|
11939
|
-
function resolveComponentColorHex(raw, ref, themeColorMap) {
|
|
11940
|
-
if (!raw) {
|
|
11941
|
-
return void 0;
|
|
11942
|
-
}
|
|
11943
|
-
if (HEX_COLOR.test(raw)) {
|
|
11944
|
-
return raw;
|
|
11945
|
-
}
|
|
11946
|
-
return ref ? pptx.resolveThemeColorRef(ref, themeColorMap) : void 0;
|
|
11947
|
-
}
|
|
11948
|
-
function absoluteComponentColor(component2, progress, themeColorMap) {
|
|
11949
|
-
const { colorSpace, direction } = component2;
|
|
11950
|
-
const fromColor = resolveComponentColorHex(
|
|
11951
|
-
component2.fromColor,
|
|
11952
|
-
component2.fromColorRef,
|
|
11953
|
-
themeColorMap
|
|
11954
|
-
);
|
|
11955
|
-
const toColor = resolveComponentColorHex(component2.toColor, component2.toColorRef, themeColorMap);
|
|
11956
|
-
const byColor = resolveComponentColorHex(component2.byColor, component2.byColorRef, themeColorMap);
|
|
11957
|
-
let effectiveFrom;
|
|
11958
|
-
let effectiveTo;
|
|
11959
|
-
if (fromColor && toColor) {
|
|
11960
|
-
effectiveFrom = fromColor;
|
|
11961
|
-
effectiveTo = toColor;
|
|
11962
|
-
} else if (fromColor && byColor) {
|
|
11963
|
-
const fromRgb = hexToRgb(fromColor);
|
|
11964
|
-
const byRgb = hexToRgb(byColor);
|
|
11965
|
-
effectiveFrom = fromColor;
|
|
11966
|
-
effectiveTo = rgbToHex(fromRgb.r + byRgb.r, fromRgb.g + byRgb.g, fromRgb.b + byRgb.b);
|
|
11967
|
-
} else if (toColor) {
|
|
11968
|
-
effectiveFrom = "#000000";
|
|
11969
|
-
effectiveTo = toColor;
|
|
11970
|
-
} else {
|
|
11971
|
-
return void 0;
|
|
11972
|
-
}
|
|
11973
|
-
return interpolateColor(effectiveFrom, effectiveTo, progress, colorSpace, direction);
|
|
11974
|
-
}
|
|
11975
|
-
function buildColorAnimationKeyframes(colorAnim, keyframeName2, steps = 10, themeColorMap) {
|
|
11976
|
-
const components = colorAnimationComponents(colorAnim);
|
|
11977
|
-
if (!components.some(
|
|
11978
|
-
(component2) => component2.hslDelta !== void 0 || component2.toColor !== void 0 || component2.fromColor !== void 0 && component2.byColor !== void 0
|
|
11979
|
-
)) {
|
|
11980
|
-
return void 0;
|
|
11981
|
-
}
|
|
11982
|
-
const lines = [];
|
|
11983
|
-
let hasDeclarations = false;
|
|
11984
|
-
const actualSteps = Math.max(2, steps);
|
|
11985
|
-
for (let i = 0; i <= actualSteps; i++) {
|
|
11986
|
-
const t = i / actualSteps;
|
|
11987
|
-
const pct3 = Math.round(t * 100);
|
|
11988
|
-
const declarations3 = [];
|
|
11989
|
-
for (const component2 of components) {
|
|
11990
|
-
const cssProperties = resolveCssProperties(component2.targetAttribute);
|
|
11991
|
-
if (component2.hslDelta) {
|
|
11992
|
-
const hslFromColor = resolveComponentColorHex(
|
|
11993
|
-
component2.fromColor,
|
|
11994
|
-
component2.fromColorRef,
|
|
11995
|
-
themeColorMap
|
|
11996
|
-
);
|
|
11997
|
-
if (component2.fromColor && !hslFromColor) {
|
|
11998
|
-
continue;
|
|
11999
|
-
}
|
|
12000
|
-
for (const property of cssProperties) {
|
|
12001
|
-
const color2 = hslFromColor ? applyHslDelta(hslFromColor, component2.hslDelta, t) : relativeHslColor(property, component2.hslDelta, t);
|
|
12002
|
-
declarations3.push(`${property}: ${color2};`);
|
|
12003
|
-
hasDeclarations = true;
|
|
12004
|
-
}
|
|
12005
|
-
continue;
|
|
12006
|
-
}
|
|
12007
|
-
const color = absoluteComponentColor(component2, t, themeColorMap);
|
|
12008
|
-
if (color) {
|
|
12009
|
-
declarations3.push(...cssProperties.map((property) => `${property}: ${color};`));
|
|
12010
|
-
hasDeclarations = true;
|
|
12011
|
-
}
|
|
12012
|
-
}
|
|
12013
|
-
const decls = declarations3.join(" ");
|
|
12014
|
-
lines.push(` ${pct3}% { ${decls} }`);
|
|
12015
|
-
}
|
|
12016
|
-
return hasDeclarations ? `@keyframes ${keyframeName2} {
|
|
12017
|
-
${lines.join("\n")}
|
|
12018
|
-
}` : void 0;
|
|
12019
|
-
}
|
|
12020
|
-
function getAnimationColorBaseStyle(element, options = {}) {
|
|
12021
|
-
if (!pptx.hasShapeProperties(element) || !options.animatesFill && !options.animatesStroke) {
|
|
12022
|
-
return {};
|
|
12023
|
-
}
|
|
12024
|
-
const style = {};
|
|
12025
|
-
if (options.animatesFill) {
|
|
12026
|
-
const fill = chunkVFPVEVF4_cjs.getComputedFillStyle(element, options.parentGroupFill);
|
|
12027
|
-
style[ANIMATION_COLOR_BASE_PROPERTIES.fill] = fill?.backgroundColor ?? element.shapeStyle?.fillColor ?? "currentColor";
|
|
12028
|
-
}
|
|
12029
|
-
if (options.animatesStroke) {
|
|
12030
|
-
const stroke = getComputedStrokeStyle(element);
|
|
12031
|
-
style[ANIMATION_COLOR_BASE_PROPERTIES.stroke] = stroke.borderColor ?? element.shapeStyle?.strokeColor ?? "currentColor";
|
|
12032
|
-
}
|
|
12033
|
-
style[ANIMATION_COLOR_BASE_PROPERTIES.color] = (pptx.hasTextProperties(element) ? element.textStyle?.color : void 0) ?? "currentColor";
|
|
12034
|
-
return style;
|
|
12035
|
-
}
|
|
12036
12075
|
|
|
12037
12076
|
// src/pptx/render/animation-build.ts
|
|
12038
12077
|
function resolveChartBuildMode(token) {
|
|
@@ -12834,16 +12873,6 @@ function parseMotionPathPoints(motionPath) {
|
|
|
12834
12873
|
return points;
|
|
12835
12874
|
}
|
|
12836
12875
|
|
|
12837
|
-
// src/pptx/render/animation-target-id.ts
|
|
12838
|
-
var BACKGROUND_ANIMATION_ID_SUFFIX = "::pptx-bg";
|
|
12839
|
-
function resolveAnimationTargetId(animation) {
|
|
12840
|
-
const targetId = (animation.target?.type === "shape" ? animation.target.subShapeId : void 0) ?? animation.targetId ?? "";
|
|
12841
|
-
if (targetId && animation.target?.type === "shape" && animation.target.backgroundOnly === true) {
|
|
12842
|
-
return `${targetId}${BACKGROUND_ANIMATION_ID_SUFFIX}`;
|
|
12843
|
-
}
|
|
12844
|
-
return targetId;
|
|
12845
|
-
}
|
|
12846
|
-
|
|
12847
12876
|
// src/pptx/render/animation-motion-path-paced.ts
|
|
12848
12877
|
var DEFAULT_SLIDE_ASPECT = 16 / 9;
|
|
12849
12878
|
function pacedFractions(points, aspect = DEFAULT_SLIDE_ASPECT) {
|
|
@@ -15197,38 +15226,6 @@ var AnimationSequencer = class {
|
|
|
15197
15226
|
return blocks.join("\n\n");
|
|
15198
15227
|
}
|
|
15199
15228
|
};
|
|
15200
|
-
function applyAfterAnimationFromEditorList(nativeAnimations, editorAnimations) {
|
|
15201
|
-
if (!editorAnimations || editorAnimations.length === 0) {
|
|
15202
|
-
return [...nativeAnimations];
|
|
15203
|
-
}
|
|
15204
|
-
const byElement = /* @__PURE__ */ new Map();
|
|
15205
|
-
for (const ea of editorAnimations) {
|
|
15206
|
-
if (ea.afterAnimation && ea.afterAnimation !== "none") {
|
|
15207
|
-
byElement.set(ea.elementId, ea);
|
|
15208
|
-
}
|
|
15209
|
-
}
|
|
15210
|
-
if (byElement.size === 0) {
|
|
15211
|
-
return [...nativeAnimations];
|
|
15212
|
-
}
|
|
15213
|
-
return nativeAnimations.map((anim) => {
|
|
15214
|
-
if (!anim.targetId || anim.presetClass === void 0 || anim.presetClass === "exit") {
|
|
15215
|
-
return anim;
|
|
15216
|
-
}
|
|
15217
|
-
const ea = byElement.get(anim.targetId);
|
|
15218
|
-
if (!ea) {
|
|
15219
|
-
return anim;
|
|
15220
|
-
}
|
|
15221
|
-
return {
|
|
15222
|
-
...anim,
|
|
15223
|
-
afterAnimationAction: ea.afterAnimation,
|
|
15224
|
-
afterAnimationColor: ea.afterAnimationColor,
|
|
15225
|
-
// The editor's own model has no theme-colour-ref concept (it always
|
|
15226
|
-
// writes a concrete hex); clear a native scheme ref so a stale one
|
|
15227
|
-
// never survives an edit that overrides the colour.
|
|
15228
|
-
afterAnimationColorRef: void 0
|
|
15229
|
-
};
|
|
15230
|
-
});
|
|
15231
|
-
}
|
|
15232
15229
|
function buildAfterAnimationDimKeyframes(color, keyframeName2) {
|
|
15233
15230
|
return `@keyframes ${keyframeName2} {
|
|
15234
15231
|
100% { color: ${color}; }
|
|
@@ -15924,6 +15921,36 @@ function buildDirectionalKeyframe(effect, subtype, uid2) {
|
|
|
15924
15921
|
// src/pptx/render/animation-timeline-step-effect.ts
|
|
15925
15922
|
function resolveStepEffect(singleAnim, renderContext, dynamicUidStart, includeDirectional = true, pixelateMosaic) {
|
|
15926
15923
|
let dynamicUid = dynamicUidStart;
|
|
15924
|
+
const opacitySet = pptx.resolveOpacitySet(singleAnim);
|
|
15925
|
+
if (opacitySet) {
|
|
15926
|
+
return {
|
|
15927
|
+
opacitySet,
|
|
15928
|
+
effect: void 0,
|
|
15929
|
+
keyframe: "",
|
|
15930
|
+
isCommand: false,
|
|
15931
|
+
tavColorApplied: false,
|
|
15932
|
+
dynamicCss: void 0,
|
|
15933
|
+
nextDynamicUid: dynamicUid,
|
|
15934
|
+
skip: false
|
|
15935
|
+
};
|
|
15936
|
+
}
|
|
15937
|
+
if (singleAnim.behaviors?.some(
|
|
15938
|
+
(behavior) => behavior.kind === "set" && behavior.attrNames.includes("style.opacity")
|
|
15939
|
+
)) {
|
|
15940
|
+
console.warn(
|
|
15941
|
+
"Unsupported native opacity set target, value or timing profile",
|
|
15942
|
+
singleAnim.targetId
|
|
15943
|
+
);
|
|
15944
|
+
return {
|
|
15945
|
+
effect: void 0,
|
|
15946
|
+
keyframe: "",
|
|
15947
|
+
isCommand: false,
|
|
15948
|
+
tavColorApplied: false,
|
|
15949
|
+
dynamicCss: void 0,
|
|
15950
|
+
nextDynamicUid: dynamicUid,
|
|
15951
|
+
skip: true
|
|
15952
|
+
};
|
|
15953
|
+
}
|
|
15927
15954
|
const box = boxForAnimation(singleAnim, renderContext);
|
|
15928
15955
|
const played = buildBehaviorKeyframes(singleAnim, dynamicUid, box);
|
|
15929
15956
|
if (played) {
|
|
@@ -16138,7 +16165,7 @@ function processRegularAnimation(state, anim, renderContext, pixelateMosaic) {
|
|
|
16138
16165
|
);
|
|
16139
16166
|
const iterStr = iterCount === Infinity ? "infinite" : String(iterCount);
|
|
16140
16167
|
const easing = resolved.easing ?? cssEasingForAnimation(singleAnim);
|
|
16141
|
-
const baseCssAnimation = isCommand ? "" : `${keyframe} ${duration}ms ${easing} ${delayMs}ms ${iterStr} ${direction} ${fill}`;
|
|
16168
|
+
const baseCssAnimation = isCommand || resolved.opacitySet ? "" : `${keyframe} ${duration}ms ${easing} ${delayMs}ms ${iterStr} ${direction} ${fill}`;
|
|
16142
16169
|
const afterFields = isCommand ? { cssAnimation: baseCssAnimation, holdEndState: timing.holdEndState } : resolveAfterAnimationStepFields(
|
|
16143
16170
|
singleAnim,
|
|
16144
16171
|
baseCssAnimation,
|
|
@@ -16151,6 +16178,7 @@ function processRegularAnimation(state, anim, renderContext, pixelateMosaic) {
|
|
|
16151
16178
|
state.dynamicBlocks.push(afterFields.dimKeyframeBlock);
|
|
16152
16179
|
}
|
|
16153
16180
|
const step = {
|
|
16181
|
+
opacitySet: resolved.opacitySet,
|
|
16154
16182
|
elementId,
|
|
16155
16183
|
cssAnimation: afterFields.cssAnimation,
|
|
16156
16184
|
keyframeName: keyframe,
|
|
@@ -16288,7 +16316,7 @@ function buildSequenceGroups(animsByKey, entranceIds, neededKeyframes, dynamicBl
|
|
|
16288
16316
|
}
|
|
16289
16317
|
const iterStr = iterCount === Infinity ? "infinite" : String(iterCount);
|
|
16290
16318
|
const easing = resolved.easing ?? cssEasingForAnimation(anim);
|
|
16291
|
-
const baseCssAnimation = isCommand ? "" : `${keyframe} ${duration}ms ${easing} ${delayMs}ms ${iterStr} ${direction} ${fill}`;
|
|
16319
|
+
const baseCssAnimation = isCommand || resolved.opacitySet ? "" : `${keyframe} ${duration}ms ${easing} ${delayMs}ms ${iterStr} ${direction} ${fill}`;
|
|
16292
16320
|
const afterFields = isCommand ? { cssAnimation: baseCssAnimation, holdEndState: timing.holdEndState } : resolveAfterAnimationStepFields(
|
|
16293
16321
|
anim,
|
|
16294
16322
|
baseCssAnimation,
|
|
@@ -16301,6 +16329,7 @@ function buildSequenceGroups(animsByKey, entranceIds, neededKeyframes, dynamicBl
|
|
|
16301
16329
|
dynamicBlocks.push(afterFields.dimKeyframeBlock);
|
|
16302
16330
|
}
|
|
16303
16331
|
const step = {
|
|
16332
|
+
opacitySet: resolved.opacitySet,
|
|
16304
16333
|
elementId,
|
|
16305
16334
|
cssAnimation: afterFields.cssAnimation,
|
|
16306
16335
|
keyframeName: keyframe,
|
|
@@ -16563,6 +16592,10 @@ var TimelineEngine = class _TimelineEngine {
|
|
|
16563
16592
|
* `animatesStroke` on {@link ElementAnimationState}.
|
|
16564
16593
|
*/
|
|
16565
16594
|
activeSteps;
|
|
16595
|
+
/** End-state projection for backward navigation, independent of active paint metadata. */
|
|
16596
|
+
committedOpacity = /* @__PURE__ */ new Map();
|
|
16597
|
+
activeOpacity = /* @__PURE__ */ new Map();
|
|
16598
|
+
opacityClockBase = 0;
|
|
16566
16599
|
/**
|
|
16567
16600
|
* Cumulative (oldest-first) history of fired chart-build steps per element,
|
|
16568
16601
|
* keyed by elementId. See {@link StepApplicationState.chartRevealHistory}
|
|
@@ -16830,6 +16863,13 @@ var TimelineEngine = class _TimelineEngine {
|
|
|
16830
16863
|
cssAnimation: this.activeAnimations.get(id)
|
|
16831
16864
|
};
|
|
16832
16865
|
applyStepBuildMetadata(state, this.activeSteps.get(id), options);
|
|
16866
|
+
const opacity = this.committedOpacity.get(id);
|
|
16867
|
+
if (opacity !== void 0) state.opacity = opacity;
|
|
16868
|
+
const nowMs = options?.elapsedMs === void 0 ? Date.now() : this.opacityClockBase + options.elapsedMs;
|
|
16869
|
+
for (const entry5 of this.activeOpacity.get(id) ?? []) {
|
|
16870
|
+
if (nowMs >= entry5.startMs && (entry5.set.holdEndState || nowMs < entry5.startMs + entry5.set.durationMs))
|
|
16871
|
+
state.opacity = entry5.set.value;
|
|
16872
|
+
}
|
|
16833
16873
|
const chartInfo = this.chartBuildInfo.get(id);
|
|
16834
16874
|
if (chartInfo) {
|
|
16835
16875
|
const descriptor = resolveChartRevealDescriptor(
|
|
@@ -16964,6 +17004,8 @@ var TimelineEngine = class _TimelineEngine {
|
|
|
16964
17004
|
this.reset();
|
|
16965
17005
|
for (const group of this.timeline.clickGroups) {
|
|
16966
17006
|
for (const step of group.steps) {
|
|
17007
|
+
if (step.opacitySet?.holdEndState)
|
|
17008
|
+
this.committedOpacity.set(step.elementId, step.opacitySet.value);
|
|
16967
17009
|
if (step.build || step.colorTargets) {
|
|
16968
17010
|
this.activeSteps.set(step.elementId, step);
|
|
16969
17011
|
}
|
|
@@ -16994,6 +17036,8 @@ var TimelineEngine = class _TimelineEngine {
|
|
|
16994
17036
|
this.currentGroupIndex = -1;
|
|
16995
17037
|
this.activeAnimations.clear();
|
|
16996
17038
|
this.activeSteps.clear();
|
|
17039
|
+
this.committedOpacity.clear();
|
|
17040
|
+
this.activeOpacity.clear();
|
|
16997
17041
|
this.chartRevealHistory.clear();
|
|
16998
17042
|
this.diagramRevealHistory.clear();
|
|
16999
17043
|
this.revealedElements.clear();
|
|
@@ -17023,6 +17067,7 @@ var TimelineEngine = class _TimelineEngine {
|
|
|
17023
17067
|
* unchanged.
|
|
17024
17068
|
*/
|
|
17025
17069
|
applyGroupSteps(group, nowMs) {
|
|
17070
|
+
this.opacityClockBase = nowMs;
|
|
17026
17071
|
let appliedSteps;
|
|
17027
17072
|
for (let i = 0; i < group.steps.length; i++) {
|
|
17028
17073
|
const step = group.steps[i];
|
|
@@ -17040,6 +17085,14 @@ var TimelineEngine = class _TimelineEngine {
|
|
|
17040
17085
|
appliedSteps ??= group.steps.slice(0, i);
|
|
17041
17086
|
continue;
|
|
17042
17087
|
}
|
|
17088
|
+
if (step.opacitySet) {
|
|
17089
|
+
const history = this.activeOpacity.get(step.elementId) ?? [];
|
|
17090
|
+
history.push({
|
|
17091
|
+
set: step.opacitySet,
|
|
17092
|
+
startMs: nowMs + step.delayMs + step.opacitySet.delayMs
|
|
17093
|
+
});
|
|
17094
|
+
this.activeOpacity.set(step.elementId, history);
|
|
17095
|
+
}
|
|
17043
17096
|
if (step.exclGroupId !== void 0) {
|
|
17044
17097
|
const holder = this.exclusiveHolders.get(step.exclGroupId);
|
|
17045
17098
|
if (holder !== void 0 && holder !== step.elementId) {
|
|
@@ -17411,7 +17464,7 @@ function setMotionPath(animations, elementId, path) {
|
|
|
17411
17464
|
];
|
|
17412
17465
|
}
|
|
17413
17466
|
function applyMotionPathPreset(animations, elementId, presetId) {
|
|
17414
|
-
const preset2 =
|
|
17467
|
+
const preset2 = chunkXFQ2RD4I_cjs.motionPathPresetById(presetId);
|
|
17415
17468
|
if (!preset2) {
|
|
17416
17469
|
return [...animations];
|
|
17417
17470
|
}
|
|
@@ -17514,7 +17567,7 @@ var PresentationAnimationController = class _PresentationAnimationController {
|
|
|
17514
17567
|
...slide.nativeAnimations ?? [],
|
|
17515
17568
|
...motionPathNativeAnimations(slide)
|
|
17516
17569
|
];
|
|
17517
|
-
const nativeAnims = applyAfterAnimationFromEditorList(rawNativeAnims, slide.animations);
|
|
17570
|
+
const nativeAnims = pptx.applyAfterAnimationFromEditorList(rawNativeAnims, slide.animations);
|
|
17518
17571
|
const segmentCounts = buildSegmentCounts(slide, nativeAnims);
|
|
17519
17572
|
const rangedAnims = segmentCounts.size > 0 ? expandTextRangeAnimations(nativeAnims, segmentCounts) : nativeAnims;
|
|
17520
17573
|
const expandedAnims = segmentCounts.size > 0 ? expandTextBuildAnimations(rangedAnims, segmentCounts) : rangedAnims;
|
|
@@ -19662,8 +19715,8 @@ function getComputed3dStyle(el) {
|
|
|
19662
19715
|
}
|
|
19663
19716
|
|
|
19664
19717
|
// src/pptx/render/table-cell-padding.ts
|
|
19665
|
-
function inset(margin,
|
|
19666
|
-
return `${Math.max(0, margin - (
|
|
19718
|
+
function inset(margin, border) {
|
|
19719
|
+
return `${Math.max(0, margin - (border ?? 0) / 2)}px`;
|
|
19667
19720
|
}
|
|
19668
19721
|
function cellPaddingCss(style) {
|
|
19669
19722
|
const css = {};
|
|
@@ -19694,16 +19747,16 @@ function edgesFromSection(borders, regionTop, regionBottom, regionLeft, regionRi
|
|
|
19694
19747
|
right: regionRight ? borders.right ?? borders.insideV : borders.insideV
|
|
19695
19748
|
};
|
|
19696
19749
|
}
|
|
19697
|
-
function borderToCss(
|
|
19698
|
-
if (!
|
|
19750
|
+
function borderToCss(border, resolve) {
|
|
19751
|
+
if (!border) {
|
|
19699
19752
|
return void 0;
|
|
19700
19753
|
}
|
|
19701
|
-
if (
|
|
19754
|
+
if (border.noFill) {
|
|
19702
19755
|
return "none";
|
|
19703
19756
|
}
|
|
19704
|
-
const width =
|
|
19705
|
-
const dash = ooxmlDashToCssBorderStyle(
|
|
19706
|
-
const color =
|
|
19757
|
+
const width = border.width ?? 1;
|
|
19758
|
+
const dash = ooxmlDashToCssBorderStyle(border.dash);
|
|
19759
|
+
const color = border.color ?? resolve(border.fill) ?? "#000000";
|
|
19707
19760
|
return chunk526IHNIH_cjs.screenBorder(width, dash, color);
|
|
19708
19761
|
}
|
|
19709
19762
|
function collectSections(entry5, tableData, pos) {
|
|
@@ -22787,6 +22840,9 @@ function formatLocalizedDateTimeField(type, date, locale) {
|
|
|
22787
22840
|
}
|
|
22788
22841
|
|
|
22789
22842
|
// src/pptx/render/text-field-substitution.ts
|
|
22843
|
+
function resolveDisplaySlideNumber(slideNumber, firstSlideNumber = 1) {
|
|
22844
|
+
return slideNumber < 1 ? slideNumber : firstSlideNumber + slideNumber - 1;
|
|
22845
|
+
}
|
|
22790
22846
|
var DATETIME_TYPE_FORMATS = {
|
|
22791
22847
|
datetime1: "M/d/yyyy",
|
|
22792
22848
|
datetime2: "EEEE, MMMM d, yyyy",
|
|
@@ -22861,7 +22917,7 @@ function substituteFieldText(segmentText, fieldType, ctx, runLocale) {
|
|
|
22861
22917
|
const fl = fieldType.toLowerCase();
|
|
22862
22918
|
const locale = runLocale ?? ctx.locale;
|
|
22863
22919
|
if (fl === "slidenum" && ctx.slideNumber !== void 0) {
|
|
22864
|
-
return String(ctx.slideNumber);
|
|
22920
|
+
return String(resolveDisplaySlideNumber(ctx.slideNumber, ctx.firstSlideNumber));
|
|
22865
22921
|
}
|
|
22866
22922
|
if (fl.startsWith("datetime")) {
|
|
22867
22923
|
return resolveFieldDateText(fl, ctx.dateFormat, locale);
|
|
@@ -23123,7 +23179,7 @@ function createTemplateContext(options = {}) {
|
|
|
23123
23179
|
const scheme = { ...pptx.DEFAULT_SCHEME_COLOR_MAP, ...options.scheme ?? {} };
|
|
23124
23180
|
let counter = 0;
|
|
23125
23181
|
const idFor = options.idFor ?? ((index) => `template-el-${Date.now()}-${index}`);
|
|
23126
|
-
const dictionary =
|
|
23182
|
+
const dictionary = chunkY7CDPPMZ_cjs.translationsEn;
|
|
23127
23183
|
const translate = options.translate ?? ((key) => dictionary[key] ?? key);
|
|
23128
23184
|
return {
|
|
23129
23185
|
scheme,
|
|
@@ -24266,7 +24322,7 @@ function resolveFollowingSegmentTexts(paraSegments, markerSegment, fieldContext)
|
|
|
24266
24322
|
function resolveParagraphStrutFontSize(segments, bodyFontSize, fontScale = 1) {
|
|
24267
24323
|
let smallest;
|
|
24268
24324
|
for (const segment of segments) {
|
|
24269
|
-
if (
|
|
24325
|
+
if (chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment)) {
|
|
24270
24326
|
continue;
|
|
24271
24327
|
}
|
|
24272
24328
|
const size = segment.style?.fontSize;
|
|
@@ -24954,10 +25010,10 @@ function createInlineListSeed(element, options) {
|
|
|
24954
25010
|
const virtualIndices = /* @__PURE__ */ new Map();
|
|
24955
25011
|
for (const [index, paragraph2] of paragraphs2.entries()) {
|
|
24956
25012
|
if (paragraph2.segments.every(
|
|
24957
|
-
(segment, runIndex) => runIndex === 0 &&
|
|
25013
|
+
(segment, runIndex) => runIndex === 0 && chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment) || segment.text === "" && !segment.isLineBreak && !segment.fieldType && !segment.fieldGuid && !segment.equationXml && !segment.rubyText
|
|
24958
25014
|
)) {
|
|
24959
25015
|
const carrier = paragraph2.segments[0] ?? paragraph2.terminator;
|
|
24960
|
-
const body = paragraph2.segments.find((segment) => !
|
|
25016
|
+
const body = paragraph2.segments.find((segment) => !chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment));
|
|
24961
25017
|
virtualIndices.set(index, segments.length);
|
|
24962
25018
|
segments.push({
|
|
24963
25019
|
text: "",
|
|
@@ -24977,7 +25033,7 @@ function createInlineListSeed(element, options) {
|
|
|
24977
25033
|
presentation: presentation[sourceIndex],
|
|
24978
25034
|
runs: Object.freeze(
|
|
24979
25035
|
(virtualIndices.has(sourceIndex) ? [segments[virtualIndices.get(sourceIndex)]] : paragraph2.segments).flatMap((segment, index) => {
|
|
24980
|
-
if (index === 0 &&
|
|
25036
|
+
if (index === 0 && chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment)) {
|
|
24981
25037
|
return [];
|
|
24982
25038
|
}
|
|
24983
25039
|
const segmentIndex = virtualIndices.get(sourceIndex) ?? indices[sourceIndex][index];
|
|
@@ -25178,11 +25234,11 @@ function recordInlineListProvenance(seed, root, snapshot, blocks, origins, uncha
|
|
|
25178
25234
|
if (!block) return;
|
|
25179
25235
|
paragraphs2.set(block, start < end ? start : terminator ?? null);
|
|
25180
25236
|
const body = segments.slice(start, end);
|
|
25181
|
-
const content = body.filter((segment, index) => index !== 0 || !
|
|
25237
|
+
const content = body.filter((segment, index) => index !== 0 || !chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment));
|
|
25182
25238
|
const onlyEmptyCarrier = content.length === 1 && content[0].text === "" && !content[0].isLineBreak;
|
|
25183
25239
|
for (let index = start; index < end; index++) {
|
|
25184
25240
|
const segment = segments[index];
|
|
25185
|
-
const marker = index === start &&
|
|
25241
|
+
const marker = index === start && chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment);
|
|
25186
25242
|
if (!marker && (segment.text !== "" || segment.isLineBreak)) continue;
|
|
25187
25243
|
const node = marker || onlyEmptyCarrier ? block : unchanged2 ? inlineListDescendants(block).find((child) => session.runNodes.get(child) === index) : origins[index];
|
|
25188
25244
|
hidden.push({ node, kind: marker ? "marker" : "empty", index });
|
|
@@ -25491,11 +25547,11 @@ function readInlineListSnapshot(seed, root) {
|
|
|
25491
25547
|
} else {
|
|
25492
25548
|
pptx.breakAutoNumberRun(sequence, first.paragraphLevel ?? 0);
|
|
25493
25549
|
}
|
|
25494
|
-
if (
|
|
25550
|
+
if (chunkJRCK6CFI_cjs.isBulletMarkerSegment(first)) {
|
|
25495
25551
|
const marker = {
|
|
25496
25552
|
text: first.text,
|
|
25497
25553
|
style: structuredClone(
|
|
25498
|
-
carrier &&
|
|
25554
|
+
carrier && chunkJRCK6CFI_cjs.isBulletMarkerSegment(carrier) ? carrier.style : first.style
|
|
25499
25555
|
),
|
|
25500
25556
|
...inlineListParagraphMetadata(first)
|
|
25501
25557
|
};
|
|
@@ -25545,7 +25601,7 @@ function paragraphBodies(segments) {
|
|
|
25545
25601
|
paragraphs2.push("");
|
|
25546
25602
|
first = true;
|
|
25547
25603
|
} else {
|
|
25548
|
-
if (!first || !
|
|
25604
|
+
if (!first || !chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment)) {
|
|
25549
25605
|
paragraphs2[paragraphs2.length - 1] += segment.isLineBreak ? "\n" : segment.text;
|
|
25550
25606
|
}
|
|
25551
25607
|
first = false;
|
|
@@ -25558,7 +25614,7 @@ function modelPoint(segments, offset, end) {
|
|
|
25558
25614
|
let first = true;
|
|
25559
25615
|
let last = { index: 0, offset: 0 };
|
|
25560
25616
|
for (const [index, segment] of segments.entries()) {
|
|
25561
|
-
const marker = first &&
|
|
25617
|
+
const marker = first && chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment);
|
|
25562
25618
|
first = textSegmentParagraphBreak.isParagraphSeparatorSegment(segment);
|
|
25563
25619
|
if (marker) {
|
|
25564
25620
|
if (offset === position && segment.paragraphInsertionStyle && (!segments[index + 1] || textSegmentParagraphBreak.isParagraphSeparatorSegment(segments[index + 1]))) {
|
|
@@ -25719,7 +25775,7 @@ function paragraphs(segments) {
|
|
|
25719
25775
|
const paragraph2 = result.at(-1);
|
|
25720
25776
|
const first = !paragraph2.first;
|
|
25721
25777
|
paragraph2.first ??= segment;
|
|
25722
|
-
if (first &&
|
|
25778
|
+
if (first && chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment)) {
|
|
25723
25779
|
continue;
|
|
25724
25780
|
}
|
|
25725
25781
|
const start = paragraph2.text.length;
|
|
@@ -26154,7 +26210,7 @@ function readInlineEditorSelection(segments, preserveCaret = false) {
|
|
|
26154
26210
|
function isEditableSpan(span, segments) {
|
|
26155
26211
|
const segment = segments[getSegmentIndex(span)];
|
|
26156
26212
|
return Boolean(
|
|
26157
|
-
segment && !segment.isParagraphBreak && segment.text !== "\n" && !
|
|
26213
|
+
segment && !segment.isParagraphBreak && segment.text !== "\n" && !chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment) && (span.textContent?.length ?? 0) > 0
|
|
26158
26214
|
);
|
|
26159
26215
|
}
|
|
26160
26216
|
function getSegmentIndex(span) {
|
|
@@ -26212,15 +26268,16 @@ function getPendingSelectionRestore() {
|
|
|
26212
26268
|
pendingRestore = null;
|
|
26213
26269
|
return sel;
|
|
26214
26270
|
}
|
|
26215
|
-
function applyStyleToSelectedSegments(segments, selection, updates) {
|
|
26271
|
+
function applyStyleToSelectedSegments(segments, selection, updates, inherited) {
|
|
26216
26272
|
const { startSegIdx, startOffset, endSegIdx, endOffset } = selection;
|
|
26273
|
+
const restyle = (style) => chunkEYPNQ3FG_cjs.mergeTextStyleUpdate(style, updates, inherited);
|
|
26217
26274
|
const result = [];
|
|
26218
26275
|
let newStartSegIdx = -1;
|
|
26219
26276
|
let newStartOffset = 0;
|
|
26220
26277
|
let newEndSegIdx = -1;
|
|
26221
26278
|
let newEndOffset = 0;
|
|
26222
26279
|
for (let i = 0; i < segments.length; i++) {
|
|
26223
|
-
const seg = i >= startSegIdx && i <= endSegIdx ?
|
|
26280
|
+
const seg = i >= startSegIdx && i <= endSegIdx ? chunkEYPNQ3FG_cjs.updateTextSegmentStyle(segments[i], updates, { updateBodyStyle: false, inherited }) : segments[i];
|
|
26224
26281
|
if (seg.isParagraphBreak || seg.text === "\n") {
|
|
26225
26282
|
result.push({ ...seg, style: { ...seg.style } });
|
|
26226
26283
|
continue;
|
|
@@ -26233,14 +26290,14 @@ function applyStyleToSelectedSegments(segments, selection, updates) {
|
|
|
26233
26290
|
result.push({ ...seg, style: { ...seg.style } });
|
|
26234
26291
|
continue;
|
|
26235
26292
|
}
|
|
26236
|
-
if (seg.paragraphInsertionStyle && (seg.text === "" ||
|
|
26293
|
+
if (seg.paragraphInsertionStyle && (seg.text === "" || chunkJRCK6CFI_cjs.isBulletMarkerSegment(seg))) {
|
|
26237
26294
|
newStartSegIdx = newStartSegIdx < 0 ? result.length : newStartSegIdx;
|
|
26238
26295
|
newEndSegIdx = result.length;
|
|
26239
26296
|
result.push(seg);
|
|
26240
26297
|
continue;
|
|
26241
26298
|
}
|
|
26242
26299
|
if (i === startSegIdx && i === endSegIdx) {
|
|
26243
|
-
splitSingle(seg, startOffset, endOffset,
|
|
26300
|
+
splitSingle(seg, startOffset, endOffset, restyle, result);
|
|
26244
26301
|
const partsAdded = (startOffset > 0 ? 1 : 0) + 1 + (endOffset < seg.text.length ? 1 : 0);
|
|
26245
26302
|
const selectedPartIdx = result.length - partsAdded + (startOffset > 0 ? 1 : 0);
|
|
26246
26303
|
newStartSegIdx = selectedPartIdx;
|
|
@@ -26253,7 +26310,7 @@ function applyStyleToSelectedSegments(segments, selection, updates) {
|
|
|
26253
26310
|
if (startOffset === 0) {
|
|
26254
26311
|
newStartSegIdx = result.length;
|
|
26255
26312
|
newStartOffset = 0;
|
|
26256
|
-
result.push({ ...seg, style:
|
|
26313
|
+
result.push({ ...seg, style: restyle(seg.style) });
|
|
26257
26314
|
} else {
|
|
26258
26315
|
const beforeSeg = {
|
|
26259
26316
|
text: seg.text.slice(0, startOffset),
|
|
@@ -26267,20 +26324,20 @@ function applyStyleToSelectedSegments(segments, selection, updates) {
|
|
|
26267
26324
|
newStartOffset = 0;
|
|
26268
26325
|
result.push({
|
|
26269
26326
|
text: seg.text.slice(startOffset),
|
|
26270
|
-
style:
|
|
26327
|
+
style: restyle(seg.style)
|
|
26271
26328
|
});
|
|
26272
26329
|
}
|
|
26273
26330
|
continue;
|
|
26274
26331
|
}
|
|
26275
26332
|
if (i === endSegIdx) {
|
|
26276
26333
|
if (endOffset >= seg.text.length) {
|
|
26277
|
-
result.push({ ...seg, style:
|
|
26334
|
+
result.push({ ...seg, style: restyle(seg.style) });
|
|
26278
26335
|
newEndSegIdx = result.length - 1;
|
|
26279
26336
|
newEndOffset = seg.text.length;
|
|
26280
26337
|
} else {
|
|
26281
26338
|
result.push({
|
|
26282
26339
|
text: seg.text.slice(0, endOffset),
|
|
26283
|
-
style:
|
|
26340
|
+
style: restyle(seg.style)
|
|
26284
26341
|
});
|
|
26285
26342
|
newEndSegIdx = result.length - 1;
|
|
26286
26343
|
newEndOffset = endOffset;
|
|
@@ -26291,7 +26348,7 @@ function applyStyleToSelectedSegments(segments, selection, updates) {
|
|
|
26291
26348
|
}
|
|
26292
26349
|
continue;
|
|
26293
26350
|
}
|
|
26294
|
-
result.push({ ...seg, style:
|
|
26351
|
+
result.push({ ...seg, style: restyle(seg.style) });
|
|
26295
26352
|
}
|
|
26296
26353
|
return {
|
|
26297
26354
|
newSegments: result,
|
|
@@ -26303,9 +26360,9 @@ function applyStyleToSelectedSegments(segments, selection, updates) {
|
|
|
26303
26360
|
}
|
|
26304
26361
|
};
|
|
26305
26362
|
}
|
|
26306
|
-
function splitSingle(seg, startOffset, endOffset,
|
|
26363
|
+
function splitSingle(seg, startOffset, endOffset, restyle, result) {
|
|
26307
26364
|
if (startOffset === 0 && endOffset >= seg.text.length) {
|
|
26308
|
-
result.push({ ...seg, style:
|
|
26365
|
+
result.push({ ...seg, style: restyle(seg.style) });
|
|
26309
26366
|
return;
|
|
26310
26367
|
}
|
|
26311
26368
|
if (startOffset > 0) {
|
|
@@ -26320,7 +26377,7 @@ function splitSingle(seg, startOffset, endOffset, updates, result) {
|
|
|
26320
26377
|
}
|
|
26321
26378
|
result.push({
|
|
26322
26379
|
text: seg.text.slice(startOffset, endOffset),
|
|
26323
|
-
style:
|
|
26380
|
+
style: restyle(seg.style)
|
|
26324
26381
|
});
|
|
26325
26382
|
if (endOffset < seg.text.length) {
|
|
26326
26383
|
result.push({
|
|
@@ -26373,7 +26430,7 @@ function positions(segments) {
|
|
|
26373
26430
|
let paragraph2 = 0;
|
|
26374
26431
|
let first = true;
|
|
26375
26432
|
return segments.map((segment, index) => {
|
|
26376
|
-
const marker = first &&
|
|
26433
|
+
const marker = first && chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment);
|
|
26377
26434
|
const emptyCarrier = marker && segment.paragraphInsertionStyle && (!segments[index + 1] || textSegmentParagraphBreak.isParagraphSeparatorSegment(segments[index + 1]));
|
|
26378
26435
|
const start = offset;
|
|
26379
26436
|
if (!marker) {
|
|
@@ -26431,14 +26488,14 @@ function restoreParagraphMetadata(original, updated) {
|
|
|
26431
26488
|
}
|
|
26432
26489
|
function selectedParagraphBulletKind(element, selection) {
|
|
26433
26490
|
if (!selection || !pptx.hasTextProperties(element) || !element.textSegments) {
|
|
26434
|
-
const kind =
|
|
26491
|
+
const kind = chunkJRCK6CFI_cjs.elementBulletKind(element);
|
|
26435
26492
|
return kind === "mixed" ? "none" : kind;
|
|
26436
26493
|
}
|
|
26437
26494
|
let first = selection.startSegIdx;
|
|
26438
26495
|
while (first > 0 && !textSegmentParagraphBreak.isParagraphSeparatorSegment(element.textSegments[first - 1])) {
|
|
26439
26496
|
first -= 1;
|
|
26440
26497
|
}
|
|
26441
|
-
return
|
|
26498
|
+
return chunkJRCK6CFI_cjs.paragraphBulletKind(element.textSegments.slice(first));
|
|
26442
26499
|
}
|
|
26443
26500
|
function applyListStyleUpdate(element, updates, selection) {
|
|
26444
26501
|
if (!pptx.hasTextProperties(element) || !updates.listType) {
|
|
@@ -26453,7 +26510,7 @@ function applyListStyleUpdate(element, updates, selection) {
|
|
|
26453
26510
|
segments = restoreParagraphMetadata(segments, styled.newSegments);
|
|
26454
26511
|
workingSelection = styled.newSelection;
|
|
26455
26512
|
} else {
|
|
26456
|
-
segments = segments.map((segment) =>
|
|
26513
|
+
segments = segments.map((segment) => chunkEYPNQ3FG_cjs.updateTextSegmentStyle(segment, characterStyle));
|
|
26457
26514
|
}
|
|
26458
26515
|
}
|
|
26459
26516
|
const working = {
|
|
@@ -26462,7 +26519,7 @@ function applyListStyleUpdate(element, updates, selection) {
|
|
|
26462
26519
|
textStyle: selection ? element.textStyle : { ...element.textStyle, ...characterStyle }
|
|
26463
26520
|
};
|
|
26464
26521
|
if (!workingSelection || !segments) {
|
|
26465
|
-
return { patch:
|
|
26522
|
+
return { patch: chunkJRCK6CFI_cjs.setElementBullets(working, listType), selection: null };
|
|
26466
26523
|
}
|
|
26467
26524
|
const entries2 = positions(segments);
|
|
26468
26525
|
const startEntry = entries2[workingSelection.startSegIdx];
|
|
@@ -26473,7 +26530,7 @@ function applyListStyleUpdate(element, updates, selection) {
|
|
|
26473
26530
|
const startOffset = startEntry.start + workingSelection.startOffset;
|
|
26474
26531
|
const endOffset = endEntry.start + workingSelection.endOffset;
|
|
26475
26532
|
const lastSelected = [...entries2].reverse().find((entry5) => entry5.start < endOffset);
|
|
26476
|
-
const patch =
|
|
26533
|
+
const patch = chunkJRCK6CFI_cjs.setElementBullets(working, listType, {
|
|
26477
26534
|
startParagraph: startEntry.paragraph,
|
|
26478
26535
|
endParagraph: Math.max(startEntry.paragraph, lastSelected?.paragraph ?? endEntry.paragraph)
|
|
26479
26536
|
});
|
|
@@ -26505,14 +26562,14 @@ function inScope(paragraph2, selection) {
|
|
|
26505
26562
|
);
|
|
26506
26563
|
}
|
|
26507
26564
|
function selectionBulletKind(element, selection, segments) {
|
|
26508
|
-
const paragraphs2 =
|
|
26509
|
-
return
|
|
26565
|
+
const paragraphs2 = chunkJRCK6CFI_cjs.splitBulletParagraphs(chunkJRCK6CFI_cjs.resolveBulletSegments(element, segments));
|
|
26566
|
+
return chunkJRCK6CFI_cjs.paragraphsBulletKind(paragraphs2.filter((paragraph2) => inScope(paragraph2, selection)));
|
|
26510
26567
|
}
|
|
26511
26568
|
function setSelectionBullets(element, kind, selection, segments) {
|
|
26512
26569
|
if (!pptx.hasTextProperties(element)) {
|
|
26513
26570
|
return { patch: {}, newSelection: selection };
|
|
26514
26571
|
}
|
|
26515
|
-
const source =
|
|
26572
|
+
const source = chunkJRCK6CFI_cjs.resolveBulletSegments(element, segments);
|
|
26516
26573
|
const result = applyListStyleUpdate(
|
|
26517
26574
|
{ ...element, textSegments: source },
|
|
26518
26575
|
{ listType: kind },
|
|
@@ -26529,20 +26586,20 @@ function applyTextStyleUpdate(element, updates, selection, segments) {
|
|
|
26529
26586
|
return { patch: {}, newSelection: null };
|
|
26530
26587
|
}
|
|
26531
26588
|
const current = segments ?? element.textSegments;
|
|
26532
|
-
const exclusive =
|
|
26589
|
+
const exclusive = chunkJRCK6CFI_cjs.withExclusiveLineSpacing(updates);
|
|
26533
26590
|
if (selection && current && current.length > 0) {
|
|
26534
|
-
const { body, run } =
|
|
26535
|
-
let textStyle2 =
|
|
26536
|
-
let textSegments2 =
|
|
26591
|
+
const { body, run } = chunkJRCK6CFI_cjs.splitTextStyleUpdate(exclusive);
|
|
26592
|
+
let textStyle2 = chunkEYPNQ3FG_cjs.mergeTextStyleUpdate(element.textStyle, body);
|
|
26593
|
+
let textSegments2 = chunkJRCK6CFI_cjs.overrideParagraphProperties(current, exclusive);
|
|
26537
26594
|
let newSelection = selection;
|
|
26538
26595
|
if (Object.keys(run).length > 0) {
|
|
26539
|
-
const scoped = applyStyleToSelectedSegments(textSegments2, selection, run);
|
|
26596
|
+
const scoped = applyStyleToSelectedSegments(textSegments2, selection, run, element.textStyle);
|
|
26540
26597
|
textSegments2 = scoped.newSegments;
|
|
26541
26598
|
newSelection = scoped.newSelection;
|
|
26542
26599
|
}
|
|
26543
|
-
const touched =
|
|
26600
|
+
const touched = chunkJRCK6CFI_cjs.TEXT_DECORATION_FLAGS.filter((flag2) => flag2 in run);
|
|
26544
26601
|
if (touched.length > 0) {
|
|
26545
|
-
const reconciled =
|
|
26602
|
+
const reconciled = chunkJRCK6CFI_cjs.reconcileDecorationFlags(textSegments2, textStyle2, touched);
|
|
26546
26603
|
textStyle2 = reconciled.textStyle;
|
|
26547
26604
|
textSegments2 = reconciled.textSegments;
|
|
26548
26605
|
}
|
|
@@ -26550,20 +26607,20 @@ function applyTextStyleUpdate(element, updates, selection, segments) {
|
|
|
26550
26607
|
patch: {
|
|
26551
26608
|
textStyle: textStyle2,
|
|
26552
26609
|
textSegments: textSegments2,
|
|
26553
|
-
...
|
|
26610
|
+
...chunkJRCK6CFI_cjs.overrideParagraphIndents(element, exclusive)
|
|
26554
26611
|
},
|
|
26555
26612
|
newSelection
|
|
26556
26613
|
};
|
|
26557
26614
|
}
|
|
26558
|
-
const textStyle =
|
|
26559
|
-
const textSegments = current &&
|
|
26560
|
-
(segment) =>
|
|
26615
|
+
const textStyle = chunkEYPNQ3FG_cjs.mergeTextStyleUpdate(element.textStyle, exclusive);
|
|
26616
|
+
const textSegments = current && chunkJRCK6CFI_cjs.overrideParagraphProperties(current, exclusive).map(
|
|
26617
|
+
(segment) => chunkEYPNQ3FG_cjs.updateTextSegmentStyle(segment, exclusive, { inherited: element.textStyle })
|
|
26561
26618
|
);
|
|
26562
26619
|
return {
|
|
26563
26620
|
patch: {
|
|
26564
26621
|
textStyle,
|
|
26565
26622
|
...textSegments ? { textSegments } : {},
|
|
26566
|
-
...
|
|
26623
|
+
...chunkJRCK6CFI_cjs.overrideParagraphIndents(element, exclusive)
|
|
26567
26624
|
},
|
|
26568
26625
|
newSelection: null
|
|
26569
26626
|
};
|
|
@@ -27742,7 +27799,7 @@ function buildTextBlockStyle(element, options = {}) {
|
|
|
27742
27799
|
style.textOrientation = textOrientation;
|
|
27743
27800
|
}
|
|
27744
27801
|
if (ts?.textWrap === "none") {
|
|
27745
|
-
style.whiteSpace = "
|
|
27802
|
+
style.whiteSpace = "pre";
|
|
27746
27803
|
style.overflow = "visible";
|
|
27747
27804
|
}
|
|
27748
27805
|
if (isLinkedTextBox(element)) {
|
|
@@ -27794,7 +27851,8 @@ function buildFieldSubstitutionContext(sources) {
|
|
|
27794
27851
|
name: p.name,
|
|
27795
27852
|
value: String(p.value)
|
|
27796
27853
|
})),
|
|
27797
|
-
...sources.locale === void 0 ? {} : { locale: sources.locale }
|
|
27854
|
+
...sources.locale === void 0 ? {} : { locale: sources.locale },
|
|
27855
|
+
...sources.firstSlideNumber === void 0 ? {} : { firstSlideNumber: sources.firstSlideNumber }
|
|
27798
27856
|
};
|
|
27799
27857
|
}
|
|
27800
27858
|
function deriveSlideFieldContext(base2, slide) {
|
|
@@ -30288,9 +30346,9 @@ function textAdvancedStateFromStyle(ts) {
|
|
|
30288
30346
|
}
|
|
30289
30347
|
function textAdvancedPatch(el, changes) {
|
|
30290
30348
|
const base2 = pptx.hasTextProperties(el) ? el.textStyle ?? {} : {};
|
|
30291
|
-
const exclusive =
|
|
30349
|
+
const exclusive = chunkJRCK6CFI_cjs.withExclusiveLineSpacing(changes);
|
|
30292
30350
|
return {
|
|
30293
|
-
...
|
|
30351
|
+
...chunkJRCK6CFI_cjs.paragraphOverridePatch(el, exclusive),
|
|
30294
30352
|
textStyle: {
|
|
30295
30353
|
...base2,
|
|
30296
30354
|
...exclusive
|
|
@@ -32065,7 +32123,7 @@ function observeExternalCollaborationReadiness(session, options) {
|
|
|
32065
32123
|
function createPresencePublisher(awareness, identity8) {
|
|
32066
32124
|
const local = { activeSlideIndex: 0, cursorX: 0, cursorY: 0 };
|
|
32067
32125
|
let lastBroadcast = 0;
|
|
32068
|
-
let
|
|
32126
|
+
let pending2 = null;
|
|
32069
32127
|
function publish() {
|
|
32070
32128
|
awareness.setLocalStateField("presence", {
|
|
32071
32129
|
userName: identity8.userName,
|
|
@@ -32091,32 +32149,32 @@ function createPresencePublisher(awareness, identity8) {
|
|
|
32091
32149
|
Object.assign(local, patch);
|
|
32092
32150
|
const elapsed = Date.now() - lastBroadcast;
|
|
32093
32151
|
if (elapsed >= BROADCAST_THROTTLE_MS) {
|
|
32094
|
-
if (
|
|
32095
|
-
clearTimeout(
|
|
32096
|
-
|
|
32152
|
+
if (pending2 !== null) {
|
|
32153
|
+
clearTimeout(pending2);
|
|
32154
|
+
pending2 = null;
|
|
32097
32155
|
}
|
|
32098
32156
|
lastBroadcast = Date.now();
|
|
32099
32157
|
publish();
|
|
32100
|
-
} else if (
|
|
32101
|
-
|
|
32102
|
-
|
|
32158
|
+
} else if (pending2 === null) {
|
|
32159
|
+
pending2 = setTimeout(() => {
|
|
32160
|
+
pending2 = null;
|
|
32103
32161
|
lastBroadcast = Date.now();
|
|
32104
32162
|
publish();
|
|
32105
32163
|
}, BROADCAST_THROTTLE_MS - elapsed);
|
|
32106
32164
|
}
|
|
32107
32165
|
}
|
|
32108
32166
|
function flush() {
|
|
32109
|
-
if (
|
|
32110
|
-
clearTimeout(
|
|
32111
|
-
|
|
32167
|
+
if (pending2 !== null) {
|
|
32168
|
+
clearTimeout(pending2);
|
|
32169
|
+
pending2 = null;
|
|
32112
32170
|
}
|
|
32113
32171
|
lastBroadcast = Date.now();
|
|
32114
32172
|
publish();
|
|
32115
32173
|
}
|
|
32116
32174
|
function dispose() {
|
|
32117
|
-
if (
|
|
32118
|
-
clearTimeout(
|
|
32119
|
-
|
|
32175
|
+
if (pending2 !== null) {
|
|
32176
|
+
clearTimeout(pending2);
|
|
32177
|
+
pending2 = null;
|
|
32120
32178
|
}
|
|
32121
32179
|
}
|
|
32122
32180
|
publish();
|
|
@@ -32362,7 +32420,7 @@ function createCollaborationTextTarget({
|
|
|
32362
32420
|
var LIVE_PATCH_THROTTLE_MS = 50;
|
|
32363
32421
|
function createCollaborationLivePatcher(options = {}) {
|
|
32364
32422
|
const throttleMs = options.throttleMs ?? LIVE_PATCH_THROTTLE_MS;
|
|
32365
|
-
const
|
|
32423
|
+
const pending2 = /* @__PURE__ */ new Map();
|
|
32366
32424
|
let doc = null;
|
|
32367
32425
|
let factories = null;
|
|
32368
32426
|
let timer = null;
|
|
@@ -32388,12 +32446,12 @@ function createCollaborationLivePatcher(options = {}) {
|
|
|
32388
32446
|
const writePending = () => {
|
|
32389
32447
|
const activeDoc = doc;
|
|
32390
32448
|
const activeFactories = factories;
|
|
32391
|
-
if (!activeDoc || !activeFactories ||
|
|
32392
|
-
|
|
32449
|
+
if (!activeDoc || !activeFactories || pending2.size === 0) {
|
|
32450
|
+
pending2.clear();
|
|
32393
32451
|
return;
|
|
32394
32452
|
}
|
|
32395
|
-
const patches = [...
|
|
32396
|
-
|
|
32453
|
+
const patches = [...pending2.values()];
|
|
32454
|
+
pending2.clear();
|
|
32397
32455
|
lastWriteAt = Date.now();
|
|
32398
32456
|
try {
|
|
32399
32457
|
activeDoc.transact(() => {
|
|
@@ -32427,10 +32485,10 @@ function createCollaborationLivePatcher(options = {}) {
|
|
|
32427
32485
|
return null;
|
|
32428
32486
|
}
|
|
32429
32487
|
const key = keyFor(slideId, elementId);
|
|
32430
|
-
let entry5 =
|
|
32488
|
+
let entry5 = pending2.get(key);
|
|
32431
32489
|
if (!entry5) {
|
|
32432
32490
|
entry5 = { slideId, elementId };
|
|
32433
|
-
|
|
32491
|
+
pending2.set(key, entry5);
|
|
32434
32492
|
}
|
|
32435
32493
|
return entry5;
|
|
32436
32494
|
};
|
|
@@ -32449,7 +32507,7 @@ function createCollaborationLivePatcher(options = {}) {
|
|
|
32449
32507
|
if (!isWritable()) {
|
|
32450
32508
|
return void 0;
|
|
32451
32509
|
}
|
|
32452
|
-
const queued =
|
|
32510
|
+
const queued = pending2.get(key);
|
|
32453
32511
|
if (queued) {
|
|
32454
32512
|
delete queued.text;
|
|
32455
32513
|
}
|
|
@@ -32487,7 +32545,7 @@ function createCollaborationLivePatcher(options = {}) {
|
|
|
32487
32545
|
return;
|
|
32488
32546
|
}
|
|
32489
32547
|
cancelTimer();
|
|
32490
|
-
|
|
32548
|
+
pending2.clear();
|
|
32491
32549
|
doc = nextDoc;
|
|
32492
32550
|
factories = nextFactories;
|
|
32493
32551
|
immediate = nextImmediate;
|
|
@@ -32522,7 +32580,7 @@ function createCollaborationLivePatcher(options = {}) {
|
|
|
32522
32580
|
},
|
|
32523
32581
|
dispose() {
|
|
32524
32582
|
cancelTimer();
|
|
32525
|
-
|
|
32583
|
+
pending2.clear();
|
|
32526
32584
|
doc = null;
|
|
32527
32585
|
factories = null;
|
|
32528
32586
|
retireTextSessions();
|
|
@@ -32688,7 +32746,7 @@ function resolveCollaborationNativeRange(range, previous, current) {
|
|
|
32688
32746
|
function observeCollaborationInlineInput(root, getSeed, apply6, settled) {
|
|
32689
32747
|
let disposed = false;
|
|
32690
32748
|
let composing = false;
|
|
32691
|
-
let
|
|
32749
|
+
let pending2 = false;
|
|
32692
32750
|
let range;
|
|
32693
32751
|
const capture = (event) => {
|
|
32694
32752
|
const target = event?.getTargetRanges?.()[0];
|
|
@@ -32706,10 +32764,10 @@ function observeCollaborationInlineInput(root, getSeed, apply6, settled) {
|
|
|
32706
32764
|
if (!composing) {
|
|
32707
32765
|
capture(event);
|
|
32708
32766
|
}
|
|
32709
|
-
|
|
32767
|
+
pending2 = true;
|
|
32710
32768
|
queueMicrotask(() => {
|
|
32711
|
-
if (!disposed && !composing &&
|
|
32712
|
-
|
|
32769
|
+
if (!disposed && !composing && pending2) {
|
|
32770
|
+
pending2 = false;
|
|
32713
32771
|
settled();
|
|
32714
32772
|
}
|
|
32715
32773
|
});
|
|
@@ -32718,7 +32776,7 @@ function observeCollaborationInlineInput(root, getSeed, apply6, settled) {
|
|
|
32718
32776
|
if (composing || disposed) {
|
|
32719
32777
|
return;
|
|
32720
32778
|
}
|
|
32721
|
-
|
|
32779
|
+
pending2 = false;
|
|
32722
32780
|
const replacement = range;
|
|
32723
32781
|
range = void 0;
|
|
32724
32782
|
apply6(replacement);
|
|
@@ -32744,8 +32802,8 @@ function observeCollaborationInlineInput(root, getSeed, apply6, settled) {
|
|
|
32744
32802
|
root.addEventListener("compositionstart", start, true);
|
|
32745
32803
|
root.addEventListener("compositionend", end, true);
|
|
32746
32804
|
return {
|
|
32747
|
-
blocked: () => composing ||
|
|
32748
|
-
reason: () => composing ? "composition-active" :
|
|
32805
|
+
blocked: () => composing || pending2,
|
|
32806
|
+
reason: () => composing ? "composition-active" : pending2 ? "input-active" : void 0,
|
|
32749
32807
|
dispose() {
|
|
32750
32808
|
disposed = true;
|
|
32751
32809
|
root.removeEventListener("beforeinput", before, true);
|
|
@@ -42254,7 +42312,7 @@ function isBulletMarker(segment) {
|
|
|
42254
42312
|
return false;
|
|
42255
42313
|
}
|
|
42256
42314
|
if (bullet.autoNumType) {
|
|
42257
|
-
return bullet.paragraphIndex !== void 0 &&
|
|
42315
|
+
return bullet.paragraphIndex !== void 0 && chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment);
|
|
42258
42316
|
}
|
|
42259
42317
|
const marker = bullet.char ? `${bullet.char} ` : bullet.imageRelId || bullet.imageDataUrl ? "\u{1F4CE} " : "\u2022 ";
|
|
42260
42318
|
return segment.text === marker;
|
|
@@ -47607,13 +47665,13 @@ function attachEditorImagePaste(root, options) {
|
|
|
47607
47665
|
if (previousTabIndex === null) {
|
|
47608
47666
|
root.tabIndex = 0;
|
|
47609
47667
|
}
|
|
47610
|
-
const
|
|
47668
|
+
const pending2 = /* @__PURE__ */ new Set();
|
|
47611
47669
|
let disposed = false;
|
|
47612
47670
|
const cancelPending = () => {
|
|
47613
|
-
for (const abort of
|
|
47671
|
+
for (const abort of pending2) {
|
|
47614
47672
|
abort.abort();
|
|
47615
47673
|
}
|
|
47616
|
-
|
|
47674
|
+
pending2.clear();
|
|
47617
47675
|
};
|
|
47618
47676
|
const onFocusIn = (event) => {
|
|
47619
47677
|
const canvas = options.getCanvas();
|
|
@@ -47643,9 +47701,9 @@ function attachEditorImagePaste(root, options) {
|
|
|
47643
47701
|
}
|
|
47644
47702
|
event.preventDefault();
|
|
47645
47703
|
const abort = new AbortController();
|
|
47646
|
-
|
|
47704
|
+
pending2.add(abort);
|
|
47647
47705
|
void chunkZJFN5POF_cjs.createImageElementFromFile(file, target.canvasSize, abort.signal).then((element) => {
|
|
47648
|
-
|
|
47706
|
+
pending2.delete(abort);
|
|
47649
47707
|
if (!element || disposed || abort.signal.aborted || !root.isConnected) {
|
|
47650
47708
|
return;
|
|
47651
47709
|
}
|
|
@@ -51754,7 +51812,8 @@ var RIBBON_CATALOG_TAIL_TABS = {
|
|
|
51754
51812
|
pictureStyles: {
|
|
51755
51813
|
label: "Picture Styles",
|
|
51756
51814
|
controls: { gallery: "Picture Styles gallery", pictureEffects: "Picture Effects gallery" }
|
|
51757
|
-
}
|
|
51815
|
+
},
|
|
51816
|
+
size: { label: "Size", controls: { crop: "Crop" } }
|
|
51758
51817
|
},
|
|
51759
51818
|
tableDesign: {
|
|
51760
51819
|
tableStyles: { label: "Table Styles", controls: { gallery: "Table Styles gallery" } }
|
|
@@ -51881,7 +51940,7 @@ function ribbonCustomizationCss(resolved, scope) {
|
|
|
51881
51940
|
// src/pptx/render/customization/customization-resolve-ribbon.ts
|
|
51882
51941
|
var BUTTON_CONTROL_ALIASES = [
|
|
51883
51942
|
["mergeShapes", "home.arrange.mergeShapes"],
|
|
51884
|
-
["crop", "home.arrange.crop"]
|
|
51943
|
+
["crop", "home.arrange.crop", "pictureFormat.size.crop"]
|
|
51885
51944
|
];
|
|
51886
51945
|
var CONTEXTUAL_TAB_IDS = new Set(RIBBON_CONTEXTUAL_TABS.map((t) => t.id));
|
|
51887
51946
|
function resolveRibbonCustomization(ribbon) {
|
|
@@ -51908,9 +51967,12 @@ function resolveRibbonCustomization(ribbon) {
|
|
|
51908
51967
|
actions.add(button);
|
|
51909
51968
|
}
|
|
51910
51969
|
}
|
|
51911
|
-
for (const [action, control2] of BUTTON_CONTROL_ALIASES) {
|
|
51970
|
+
for (const [action, control2, ...also] of BUTTON_CONTROL_ALIASES) {
|
|
51912
51971
|
if (actions.has(action)) {
|
|
51913
51972
|
controls2.add(control2);
|
|
51973
|
+
for (const extra of also) {
|
|
51974
|
+
controls2.add(extra);
|
|
51975
|
+
}
|
|
51914
51976
|
} else if (controls2.has(control2)) {
|
|
51915
51977
|
actions.add(action);
|
|
51916
51978
|
}
|
|
@@ -52245,7 +52307,7 @@ var TOOLBAR_BUTTON_DESCRIPTIONS = {
|
|
|
52245
52307
|
zoom: "The zoom cluster (zoom in, zoom out, fit).",
|
|
52246
52308
|
navigation: "The previous / next slide cluster.",
|
|
52247
52309
|
mergeShapes: "The Merge Shapes dropdown (Union, Combine, Fragment, Intersect, Subtract) in the Home tab Arrange group.",
|
|
52248
|
-
crop: "
|
|
52310
|
+
crop: "Both picture Crop buttons (crop mode, aspect ratio, Fill, Fit): Home > Arrange, Picture Format > Size."
|
|
52249
52311
|
};
|
|
52250
52312
|
var VIEWER_PANEL_DESCRIPTIONS = {
|
|
52251
52313
|
statusBar: "The status bar under the canvas (slide counter, zoom, view buttons).",
|
|
@@ -52349,7 +52411,7 @@ function remark(patch, edit) {
|
|
|
52349
52411
|
return patch;
|
|
52350
52412
|
}
|
|
52351
52413
|
const textSegments = patch.textSegments.map((segment) => {
|
|
52352
|
-
if (!segment.bulletInfo || !
|
|
52414
|
+
if (!segment.bulletInfo || !chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment)) {
|
|
52353
52415
|
return segment;
|
|
52354
52416
|
}
|
|
52355
52417
|
const info = edit(segment.bulletInfo);
|
|
@@ -52359,9 +52421,9 @@ function remark(patch, edit) {
|
|
|
52359
52421
|
}
|
|
52360
52422
|
function applyBulletLibrary(element, spec5) {
|
|
52361
52423
|
if (!spec5) {
|
|
52362
|
-
return
|
|
52424
|
+
return chunkJRCK6CFI_cjs.setElementBullets(element, "none");
|
|
52363
52425
|
}
|
|
52364
|
-
return remark(
|
|
52426
|
+
return remark(chunkJRCK6CFI_cjs.setElementBullets(element, "bullet"), (info) => ({
|
|
52365
52427
|
...baseInfo(info),
|
|
52366
52428
|
char: spec5.char,
|
|
52367
52429
|
fontFamily: spec5.font.typeface,
|
|
@@ -52372,9 +52434,9 @@ function applyBulletLibrary(element, spec5) {
|
|
|
52372
52434
|
}
|
|
52373
52435
|
function applyNumberingLibrary(element, scheme) {
|
|
52374
52436
|
if (!scheme) {
|
|
52375
|
-
return
|
|
52437
|
+
return chunkJRCK6CFI_cjs.setElementBullets(element, "none");
|
|
52376
52438
|
}
|
|
52377
|
-
return remark(
|
|
52439
|
+
return remark(chunkJRCK6CFI_cjs.setElementBullets(element, "numbered"), (info) => ({
|
|
52378
52440
|
...baseInfo(info),
|
|
52379
52441
|
autoNumType: scheme,
|
|
52380
52442
|
autoNumStartAt: info.autoNumStartAt ?? 1,
|
|
@@ -52382,13 +52444,13 @@ function applyNumberingLibrary(element, scheme) {
|
|
|
52382
52444
|
}));
|
|
52383
52445
|
}
|
|
52384
52446
|
function paragraphInfos(element) {
|
|
52385
|
-
return
|
|
52447
|
+
return chunkJRCK6CFI_cjs.splitBulletParagraphs(chunkJRCK6CFI_cjs.resolveBulletSegments(element)).filter((paragraph2) => paragraph2.segments.length > 0).map((paragraph2) => paragraph2.segments[0].bulletInfo);
|
|
52386
52448
|
}
|
|
52387
52449
|
function hasBulletLibrary(element, spec5) {
|
|
52388
52450
|
if (!pptx.hasTextProperties(element)) {
|
|
52389
52451
|
return false;
|
|
52390
52452
|
}
|
|
52391
|
-
const kind =
|
|
52453
|
+
const kind = chunkJRCK6CFI_cjs.elementBulletKind(element);
|
|
52392
52454
|
if (!spec5) {
|
|
52393
52455
|
return kind === "none";
|
|
52394
52456
|
}
|
|
@@ -52400,7 +52462,7 @@ function hasNumberingLibrary(element, scheme) {
|
|
|
52400
52462
|
if (!pptx.hasTextProperties(element)) {
|
|
52401
52463
|
return false;
|
|
52402
52464
|
}
|
|
52403
|
-
const kind =
|
|
52465
|
+
const kind = chunkJRCK6CFI_cjs.elementBulletKind(element);
|
|
52404
52466
|
if (!scheme) {
|
|
52405
52467
|
return kind === "none";
|
|
52406
52468
|
}
|
|
@@ -56045,7 +56107,7 @@ var SMARTART_LAYOUTS_GALLERY = {
|
|
|
56045
56107
|
const data = element?.type === "smartArt" ? element.smartArtData : void 0;
|
|
56046
56108
|
const current = data?.resolvedLayoutType ?? "list";
|
|
56047
56109
|
const accent1 = galleryColorScheme(ctx).accent1;
|
|
56048
|
-
const
|
|
56110
|
+
const pending2 = smartArtBuiltinLayouts() === void 0;
|
|
56049
56111
|
return {
|
|
56050
56112
|
id: "smartArtLayouts",
|
|
56051
56113
|
labelKey: "pptx.gallery.smartArtLayouts.title",
|
|
@@ -56067,7 +56129,7 @@ var SMARTART_LAYOUTS_GALLERY = {
|
|
|
56067
56129
|
},
|
|
56068
56130
|
...namedLayoutSections(accent1, data?.layoutDefinition?.uniqueId)
|
|
56069
56131
|
],
|
|
56070
|
-
...
|
|
56132
|
+
...pending2 && {
|
|
56071
56133
|
ready: preloadSmartArtBuiltinLayouts().then(
|
|
56072
56134
|
(library) => library ? SMARTART_LAYOUTS_GALLERY.build(ctx) : void 0
|
|
56073
56135
|
)
|
|
@@ -56195,6 +56257,17 @@ function normaliseTableStyleId(id) {
|
|
|
56195
56257
|
// src/pptx/render/ribbon-galleries/table-style-tile-svg.ts
|
|
56196
56258
|
var ROWS = 5;
|
|
56197
56259
|
var COLS = 5;
|
|
56260
|
+
var DEFAULT_OPTIONS = { firstRowHeader: true, bandedRows: true };
|
|
56261
|
+
function tableStyleTileOptions(tableData) {
|
|
56262
|
+
return {
|
|
56263
|
+
firstRowHeader: Boolean(tableData.firstRowHeader),
|
|
56264
|
+
lastRow: Boolean(tableData.lastRow),
|
|
56265
|
+
firstCol: Boolean(tableData.firstCol),
|
|
56266
|
+
lastCol: Boolean(tableData.lastCol),
|
|
56267
|
+
bandedRows: Boolean(tableData.bandedRows),
|
|
56268
|
+
bandedColumns: Boolean(tableData.bandedColumns)
|
|
56269
|
+
};
|
|
56270
|
+
}
|
|
56198
56271
|
function num7(value) {
|
|
56199
56272
|
return String(Math.round(value * 100) / 100);
|
|
56200
56273
|
}
|
|
@@ -56210,21 +56283,20 @@ function cellFill(css) {
|
|
|
56210
56283
|
}
|
|
56211
56284
|
return "none";
|
|
56212
56285
|
}
|
|
56213
|
-
function
|
|
56286
|
+
function tileBorderStroke(value) {
|
|
56214
56287
|
if (typeof value !== "string" || value === "none") {
|
|
56215
56288
|
return null;
|
|
56216
56289
|
}
|
|
56217
|
-
const match = /^([\d.]+)px\s+\w+\s+(.+)$/u.exec(value.trim());
|
|
56290
|
+
const match = /^(?:max\()?([\d.]+)px(?:,\s*var\([^)]*\)\))?\s+\w+\s+(.+)$/u.exec(value.trim());
|
|
56218
56291
|
if (!match) {
|
|
56219
56292
|
return null;
|
|
56220
56293
|
}
|
|
56221
56294
|
const color = safeColor(match[2], "none");
|
|
56222
|
-
return color === "none" ? null : { width: Math.min(Math.max(Number(match[1]) / 2, 0.5), 2), color };
|
|
56295
|
+
return color === "none" || Number(match[1]) <= 0 ? null : { width: Math.min(Math.max(Number(match[1]) / 2, 0.5), 2), color };
|
|
56223
56296
|
}
|
|
56224
|
-
function tableStyleTileSvg(styleId, colorScheme, size) {
|
|
56297
|
+
function tableStyleTileSvg(styleId, colorScheme, size, options = DEFAULT_OPTIONS) {
|
|
56225
56298
|
const tableData = {
|
|
56226
|
-
|
|
56227
|
-
bandedRows: true,
|
|
56299
|
+
...options,
|
|
56228
56300
|
tableStyleId: styleId
|
|
56229
56301
|
};
|
|
56230
56302
|
const inset3 = 2;
|
|
@@ -56233,7 +56305,7 @@ function tableStyleTileSvg(styleId, colorScheme, size) {
|
|
|
56233
56305
|
const fills = [];
|
|
56234
56306
|
const lines = [];
|
|
56235
56307
|
const edge = (x1, y1, x2, y2, value) => {
|
|
56236
|
-
const stroke =
|
|
56308
|
+
const stroke = tileBorderStroke(value);
|
|
56237
56309
|
if (stroke) {
|
|
56238
56310
|
lines.push(
|
|
56239
56311
|
`<line x1="${num7(x1)}" y1="${num7(y1)}" x2="${num7(x2)}" y2="${num7(y2)}" stroke="${stroke.color}" stroke-width="${num7(stroke.width)}"/>`
|
|
@@ -56252,8 +56324,9 @@ function tableStyleTileSvg(styleId, colorScheme, size) {
|
|
|
56252
56324
|
);
|
|
56253
56325
|
}
|
|
56254
56326
|
const text3 = safeColor(typeof css.color === "string" ? css.color : void 0, "#000000");
|
|
56327
|
+
const bold = css.fontWeight === 700;
|
|
56255
56328
|
fills.push(
|
|
56256
|
-
`<rect x="${num7(x + cw * 0.25)}" y="${num7(y + rh * 0.42)}" width="${num7(cw * 0.5)}" height="${num7(Math.max(rh * 0.16, 0.8))}" fill="${text3}" opacity="${
|
|
56329
|
+
`<rect x="${num7(x + cw * 0.25)}" y="${num7(y + rh * 0.42)}" width="${num7(cw * 0.5)}" height="${num7(Math.max(rh * 0.16, 0.8))}" fill="${text3}" opacity="${bold ? "0.9" : "0.55"}"/>`
|
|
56257
56330
|
);
|
|
56258
56331
|
edge(x, y, x + cw, y, css.borderTop);
|
|
56259
56332
|
edge(x, y + rh, x + cw, y + rh, css.borderBottom);
|
|
@@ -56321,6 +56394,7 @@ function applyTableStyleToData(tableData, styleId) {
|
|
|
56321
56394
|
return {
|
|
56322
56395
|
...tableData,
|
|
56323
56396
|
tableStyleId: styleId,
|
|
56397
|
+
clearDirectCellFormatting: true,
|
|
56324
56398
|
rows: tableData.rows.map((row) => ({
|
|
56325
56399
|
...row,
|
|
56326
56400
|
cells: row.cells.map((cell) => {
|
|
@@ -56335,6 +56409,7 @@ function build5(ctx) {
|
|
|
56335
56409
|
const tableData = tableDataOf(ctx.element);
|
|
56336
56410
|
const current = normaliseTableStyleId(tableData?.tableStyleId);
|
|
56337
56411
|
const colorScheme = galleryColorScheme(ctx);
|
|
56412
|
+
const options = tableData ? tableStyleTileOptions(tableData) : void 0;
|
|
56338
56413
|
return {
|
|
56339
56414
|
id: "tableStyles",
|
|
56340
56415
|
labelKey: "pptx.gallery.tableStyles.title",
|
|
@@ -56352,7 +56427,7 @@ function build5(ctx) {
|
|
|
56352
56427
|
labelKey: entry5.labelKey,
|
|
56353
56428
|
...entry5.labelParams && { labelParams: entry5.labelParams },
|
|
56354
56429
|
label: entry5.name,
|
|
56355
|
-
previewSvg: tableStyleTileSvg(entry5.id, colorScheme, TILE8),
|
|
56430
|
+
previewSvg: tableStyleTileSvg(entry5.id, colorScheme, TILE8, options),
|
|
56356
56431
|
applied: current === entry5.id
|
|
56357
56432
|
}))
|
|
56358
56433
|
}))
|
|
@@ -57462,6 +57537,13 @@ var CONTEXTUAL_TAB_GROUPS = {
|
|
|
57462
57537
|
mode: "dropdown"
|
|
57463
57538
|
}
|
|
57464
57539
|
]
|
|
57540
|
+
},
|
|
57541
|
+
{
|
|
57542
|
+
group: "pictureFormat.size",
|
|
57543
|
+
labelKey: "pptx.ribbon.groupSize",
|
|
57544
|
+
label: "Size",
|
|
57545
|
+
galleries: [],
|
|
57546
|
+
strip: "picture-size"
|
|
57465
57547
|
}
|
|
57466
57548
|
],
|
|
57467
57549
|
tableDesign: [
|
|
@@ -57887,6 +57969,73 @@ function cursorForTool(tool) {
|
|
|
57887
57969
|
}
|
|
57888
57970
|
}
|
|
57889
57971
|
|
|
57972
|
+
// src/pptx/render/animation-opacity-playback.ts
|
|
57973
|
+
var stacks = /* @__PURE__ */ new WeakMap();
|
|
57974
|
+
var pending = /* @__PURE__ */ new WeakMap();
|
|
57975
|
+
function resetOpacitySetPlayback(timers) {
|
|
57976
|
+
stacks.delete(timers);
|
|
57977
|
+
pending.delete(timers);
|
|
57978
|
+
}
|
|
57979
|
+
function finishOpacitySetSteps(group, ctx) {
|
|
57980
|
+
for (const step of group.steps) pending.get(ctx.timers)?.get(step)?.();
|
|
57981
|
+
}
|
|
57982
|
+
function applyOpacitySetSteps(group, ctx) {
|
|
57983
|
+
const targets = stacks.get(ctx.timers) ?? /* @__PURE__ */ new Map();
|
|
57984
|
+
stacks.set(ctx.timers, targets);
|
|
57985
|
+
const completions = pending.get(ctx.timers) ?? /* @__PURE__ */ new Map();
|
|
57986
|
+
pending.set(ctx.timers, completions);
|
|
57987
|
+
for (const step of group.steps) {
|
|
57988
|
+
const set = step.opacitySet;
|
|
57989
|
+
if (!set || !step.elementId) continue;
|
|
57990
|
+
const entry5 = { value: set.value };
|
|
57991
|
+
const startMs = step.delayMs + set.delayMs;
|
|
57992
|
+
let started = false;
|
|
57993
|
+
const start = () => {
|
|
57994
|
+
if (started) return;
|
|
57995
|
+
started = true;
|
|
57996
|
+
ctx.setStates((previous) => {
|
|
57997
|
+
const current = previous.get(step.elementId);
|
|
57998
|
+
const stack = targets.get(step.elementId) ?? { baseline: current?.opacity, entries: [] };
|
|
57999
|
+
stack.entries.push(entry5);
|
|
58000
|
+
targets.set(step.elementId, stack);
|
|
58001
|
+
const next = new Map(previous);
|
|
58002
|
+
next.set(step.elementId, {
|
|
58003
|
+
...current,
|
|
58004
|
+
visible: current?.visible ?? true,
|
|
58005
|
+
cssAnimation: current?.cssAnimation,
|
|
58006
|
+
opacity: set.value
|
|
58007
|
+
});
|
|
58008
|
+
return next;
|
|
58009
|
+
});
|
|
58010
|
+
};
|
|
58011
|
+
if (startMs > 0) ctx.timers.push(window.setTimeout(start, startMs));
|
|
58012
|
+
else start();
|
|
58013
|
+
const finish = () => {
|
|
58014
|
+
start();
|
|
58015
|
+
if (set.holdEndState) return;
|
|
58016
|
+
const stack = targets.get(step.elementId);
|
|
58017
|
+
if (!stack) return;
|
|
58018
|
+
const index = stack.entries.indexOf(entry5);
|
|
58019
|
+
if (index < 0) return;
|
|
58020
|
+
stack.entries.splice(index, 1);
|
|
58021
|
+
const opacity = stack.entries.at(-1)?.value ?? stack.baseline;
|
|
58022
|
+
if (!stack.entries.length) targets.delete(step.elementId);
|
|
58023
|
+
ctx.setStates((previous) => {
|
|
58024
|
+
const current = previous.get(step.elementId);
|
|
58025
|
+
if (!current) return previous;
|
|
58026
|
+
const next = new Map(previous);
|
|
58027
|
+
const restored = { ...current };
|
|
58028
|
+
if (opacity === void 0) delete restored.opacity;
|
|
58029
|
+
else restored.opacity = opacity;
|
|
58030
|
+
next.set(step.elementId, restored);
|
|
58031
|
+
return next;
|
|
58032
|
+
});
|
|
58033
|
+
};
|
|
58034
|
+
completions.set(step, finish);
|
|
58035
|
+
if (!set.holdEndState) ctx.timers.push(window.setTimeout(finish, startMs + set.durationMs));
|
|
58036
|
+
}
|
|
58037
|
+
}
|
|
58038
|
+
|
|
57890
58039
|
// src/pptx/render/animation-playback-steps.ts
|
|
57891
58040
|
var playbackOwners = /* @__PURE__ */ new WeakMap();
|
|
57892
58041
|
function applyAnimationGroupSteps(group, ctx) {
|
|
@@ -57897,7 +58046,7 @@ function applyAnimationGroupSteps(group, ctx) {
|
|
|
57897
58046
|
const owners = playbackOwners.get(ctx.setStates) ?? /* @__PURE__ */ new Map();
|
|
57898
58047
|
playbackOwners.set(ctx.setStates, owners);
|
|
57899
58048
|
for (const step of group.steps) {
|
|
57900
|
-
if (step.elementId && !step.command) {
|
|
58049
|
+
if (step.elementId && !step.command && !step.opacitySet) {
|
|
57901
58050
|
owners.set(step.elementId, owner);
|
|
57902
58051
|
}
|
|
57903
58052
|
}
|
|
@@ -57938,7 +58087,7 @@ function applyAnimationGroupSteps(group, ctx) {
|
|
|
57938
58087
|
const next = new Map(previous);
|
|
57939
58088
|
const componentsByElement = /* @__PURE__ */ new Map();
|
|
57940
58089
|
for (const step of group.steps) {
|
|
57941
|
-
if (step.command || !step.elementId) {
|
|
58090
|
+
if (step.command || !step.elementId || step.opacitySet) {
|
|
57942
58091
|
continue;
|
|
57943
58092
|
}
|
|
57944
58093
|
const current = next.get(step.elementId);
|
|
@@ -57987,8 +58136,9 @@ function applyAnimationGroupSteps(group, ctx) {
|
|
|
57987
58136
|
}
|
|
57988
58137
|
return next;
|
|
57989
58138
|
});
|
|
58139
|
+
applyOpacitySetSteps(group, ctx);
|
|
57990
58140
|
for (const step of group.steps) {
|
|
57991
|
-
if (step.command || !step.elementId) {
|
|
58141
|
+
if (step.command || !step.elementId || step.opacitySet) {
|
|
57992
58142
|
continue;
|
|
57993
58143
|
}
|
|
57994
58144
|
const timer = window.setTimeout(
|
|
@@ -58031,6 +58181,7 @@ function carryBuildState(state) {
|
|
|
58031
58181
|
return {};
|
|
58032
58182
|
}
|
|
58033
58183
|
const carried = {};
|
|
58184
|
+
if (state.opacity !== void 0) carried.opacity = state.opacity;
|
|
58034
58185
|
if (state.build) {
|
|
58035
58186
|
carried.build = state.build;
|
|
58036
58187
|
}
|
|
@@ -58073,15 +58224,15 @@ function driveBuildReveal(controller, group, ctx) {
|
|
|
58073
58224
|
}
|
|
58074
58225
|
return next;
|
|
58075
58226
|
});
|
|
58076
|
-
let
|
|
58227
|
+
let pending2 = false;
|
|
58077
58228
|
for (const id of buildIds) {
|
|
58078
58229
|
const build7 = states.get(id)?.build;
|
|
58079
58230
|
if (build7 && build7.progress < 1) {
|
|
58080
|
-
|
|
58231
|
+
pending2 = true;
|
|
58081
58232
|
break;
|
|
58082
58233
|
}
|
|
58083
58234
|
}
|
|
58084
|
-
ctx.buildHandle.current =
|
|
58235
|
+
ctx.buildHandle.current = pending2 ? requestAnimationFrame(tick) : null;
|
|
58085
58236
|
};
|
|
58086
58237
|
tick();
|
|
58087
58238
|
}
|
|
@@ -58198,6 +58349,7 @@ function finishAnimationGroupSteps(group, setStates, completedStates) {
|
|
|
58198
58349
|
});
|
|
58199
58350
|
}
|
|
58200
58351
|
function clearPlaybackTimers(ctx, active2) {
|
|
58352
|
+
resetOpacitySetPlayback(ctx.timers);
|
|
58201
58353
|
for (const timer of ctx.timers) {
|
|
58202
58354
|
window.clearTimeout(timer);
|
|
58203
58355
|
}
|
|
@@ -58216,6 +58368,7 @@ function advanceMainSequence(controller, ctx, active2, nowMs = performance.now()
|
|
|
58216
58368
|
finishDomAnimationsForGroup(group2, ctx.frameRoot?.() ?? document);
|
|
58217
58369
|
const buildIds = PresentationAnimationController.collectBuildStepIds(group2);
|
|
58218
58370
|
const completedStates = controller.computeStatesFor(buildIds);
|
|
58371
|
+
finishOpacitySetSteps(group2, ctx);
|
|
58219
58372
|
clearPlaybackTimers(ctx, active2);
|
|
58220
58373
|
finishAnimationGroupSteps(group2, ctx.setStates, completedStates);
|
|
58221
58374
|
scheduleAutoAdvanceChain(controller, ctx);
|
|
@@ -58516,8 +58669,8 @@ function buildInlineListStylePatch(element, updates, selection) {
|
|
|
58516
58669
|
}
|
|
58517
58670
|
return {
|
|
58518
58671
|
textSegments: element.textSegments.map(
|
|
58519
|
-
(segment) =>
|
|
58520
|
-
updateBodyStyle: !(segment.paragraphInsertionStyle &&
|
|
58672
|
+
(segment) => chunkEYPNQ3FG_cjs.updateTextSegmentStyle(segment, updates, {
|
|
58673
|
+
updateBodyStyle: !(segment.paragraphInsertionStyle && chunkJRCK6CFI_cjs.isBulletMarkerSegment(segment))
|
|
58521
58674
|
})
|
|
58522
58675
|
),
|
|
58523
58676
|
textStyle: { ...element.textStyle, ...updates }
|
|
@@ -59269,7 +59422,7 @@ function transformInlineListCase(snapshot, selection, mode) {
|
|
|
59269
59422
|
let first = true;
|
|
59270
59423
|
const textSegments = chunk52LKIMK3_cjs.applyCaseTransformToSegments(source, selection, mode).map(
|
|
59271
59424
|
(segment, index) => {
|
|
59272
|
-
const marker = first &&
|
|
59425
|
+
const marker = first && chunkJRCK6CFI_cjs.isBulletMarkerSegment(source[index]);
|
|
59273
59426
|
first = textSegmentParagraphBreak.isParagraphSeparatorSegment(source[index]);
|
|
59274
59427
|
return marker ? source[index] : segment;
|
|
59275
59428
|
}
|
|
@@ -63521,6 +63674,60 @@ var HOME_HIGHLIGHT_PRESETS = [
|
|
|
63521
63674
|
"#800080"
|
|
63522
63675
|
];
|
|
63523
63676
|
|
|
63677
|
+
// src/pptx/render/ribbon-home-crop.ts
|
|
63678
|
+
var CROP_HOOK = { "data-pptx-ribbon-control": "crop" };
|
|
63679
|
+
var CROP_MENU_HOOK = { "data-pptx-ribbon-control": "crop-menu" };
|
|
63680
|
+
function cropControlSpec(id, large = false) {
|
|
63681
|
+
const caret = { labelKey: "pptx.image.cropToAspectRatio", fallback: "Crop to Aspect Ratio" };
|
|
63682
|
+
if (large) {
|
|
63683
|
+
return control(id, "pptx.image.crop", "Crop", void 0, {
|
|
63684
|
+
kind: "menu",
|
|
63685
|
+
items: HOME_CROP_ITEMS,
|
|
63686
|
+
hintKey: "pptx.image.cropHint",
|
|
63687
|
+
icon: "home.arrange.crop",
|
|
63688
|
+
text: text2("pptx.image.crop", "Crop"),
|
|
63689
|
+
large: true,
|
|
63690
|
+
attrs: CROP_HOOK,
|
|
63691
|
+
caret: { ...caret, attrs: CROP_MENU_HOOK }
|
|
63692
|
+
});
|
|
63693
|
+
}
|
|
63694
|
+
return control(id, "pptx.image.crop", "Crop", void 0, {
|
|
63695
|
+
kind: "menu",
|
|
63696
|
+
popup: true,
|
|
63697
|
+
items: HOME_CROP_ITEMS,
|
|
63698
|
+
hintKey: "pptx.image.cropHint",
|
|
63699
|
+
attrs: { ...CROP_HOOK, "data-pptx-chrome": "crop-main" },
|
|
63700
|
+
caret: { ...caret, attrs: { ...CROP_MENU_HOOK, "data-pptx-chrome": "crop-caret" } }
|
|
63701
|
+
});
|
|
63702
|
+
}
|
|
63703
|
+
function cropHomeControls(id, input) {
|
|
63704
|
+
const crop = {
|
|
63705
|
+
disabled: !input.editable || !(input.canCrop || input.cropActive),
|
|
63706
|
+
hidden: input.hideCrop
|
|
63707
|
+
};
|
|
63708
|
+
return {
|
|
63709
|
+
[id]: { ...crop, pressed: input.cropActive },
|
|
63710
|
+
[`${id}#caret`]: crop
|
|
63711
|
+
};
|
|
63712
|
+
}
|
|
63713
|
+
function pictureSizeHomeControls(input) {
|
|
63714
|
+
return cropHomeControls("pictureFormat.size.crop", input);
|
|
63715
|
+
}
|
|
63716
|
+
function dispatchCropRequest(value, handlers) {
|
|
63717
|
+
if (value === void 0) {
|
|
63718
|
+
handlers.toggle();
|
|
63719
|
+
return;
|
|
63720
|
+
}
|
|
63721
|
+
const action = parseCropValue(value);
|
|
63722
|
+
if (action?.kind === "aspect") {
|
|
63723
|
+
handlers.aspect(action.width, action.height);
|
|
63724
|
+
} else if (action?.kind === "fill") {
|
|
63725
|
+
handlers.fill();
|
|
63726
|
+
} else if (action?.kind === "fit") {
|
|
63727
|
+
handlers.fit();
|
|
63728
|
+
}
|
|
63729
|
+
}
|
|
63730
|
+
|
|
63524
63731
|
// src/pptx/render/ribbon-home-families-objects.ts
|
|
63525
63732
|
var ALIGN_PARTS = [
|
|
63526
63733
|
["left", "pptx.ribbon.alignLeft", "Align Left"],
|
|
@@ -63760,24 +63967,17 @@ var RIBBON_HOME_OBJECT_FAMILIES = {
|
|
|
63760
63967
|
hintKey: MERGE_SHAPES_HINT_KEY,
|
|
63761
63968
|
attrs: { "data-pptx-ribbon-control": "merge-shapes" }
|
|
63762
63969
|
}),
|
|
63763
|
-
|
|
63764
|
-
kind: "menu",
|
|
63765
|
-
popup: true,
|
|
63766
|
-
items: HOME_CROP_ITEMS,
|
|
63767
|
-
hintKey: "pptx.image.cropHint",
|
|
63768
|
-
attrs: { "data-pptx-ribbon-control": "crop", "data-pptx-chrome": "crop-main" },
|
|
63769
|
-
caret: {
|
|
63770
|
-
labelKey: "pptx.image.cropToAspectRatio",
|
|
63771
|
-
fallback: "Crop to Aspect Ratio",
|
|
63772
|
-
attrs: { "data-pptx-ribbon-control": "crop-menu", "data-pptx-chrome": "crop-caret" }
|
|
63773
|
-
}
|
|
63774
|
-
}),
|
|
63970
|
+
cropControlSpec("home.arrange.crop"),
|
|
63775
63971
|
control("home.arrange.outlineWidth", "pptx.ribbon.strokeWidth", "Stroke width", void 0, {
|
|
63776
63972
|
kind: "number",
|
|
63777
63973
|
number: { min: 0, max: 120, step: 0.5 }
|
|
63778
63974
|
})
|
|
63779
63975
|
)
|
|
63780
63976
|
]
|
|
63977
|
+
},
|
|
63978
|
+
// Picture Format > Size: the binding draws the group around it, as for the galleries.
|
|
63979
|
+
"picture-size": {
|
|
63980
|
+
clusters: [pills(void 0, cropControlSpec("pictureFormat.size.crop", true))]
|
|
63781
63981
|
}
|
|
63782
63982
|
};
|
|
63783
63983
|
|
|
@@ -64116,7 +64316,6 @@ function fontPickerHomeControls(input, t) {
|
|
|
64116
64316
|
};
|
|
64117
64317
|
}
|
|
64118
64318
|
function arrangeShapeHomeControls(input) {
|
|
64119
|
-
const crop = { disabled: !input.editable || !input.canCrop, hidden: input.hideCrop };
|
|
64120
64319
|
return {
|
|
64121
64320
|
"home.arrange.group": { disabled: !input.canGroup },
|
|
64122
64321
|
"home.arrange.ungroup": { disabled: !input.canUngroup },
|
|
@@ -64124,8 +64323,7 @@ function arrangeShapeHomeControls(input) {
|
|
|
64124
64323
|
disabled: !input.editable || !input.canMerge,
|
|
64125
64324
|
hidden: input.hideMerge
|
|
64126
64325
|
},
|
|
64127
|
-
"home.arrange.crop"
|
|
64128
|
-
"home.arrange.crop#caret": crop,
|
|
64326
|
+
...cropHomeControls("home.arrange.crop", input),
|
|
64129
64327
|
"home.arrange.outlineWidth": { disabled: !input.canStrokeWidth, value: input.strokeWidth }
|
|
64130
64328
|
};
|
|
64131
64329
|
}
|
|
@@ -64715,12 +64913,12 @@ function attachViewerHyperlinks(root, navigation) {
|
|
|
64715
64913
|
};
|
|
64716
64914
|
}
|
|
64717
64915
|
function createSlidePackageClipboard(initialHost) {
|
|
64718
|
-
let host2 = initialHost, disposed = false,
|
|
64916
|
+
let host2 = initialHost, disposed = false, pending2 = false;
|
|
64719
64917
|
const retiredHandlers = /* @__PURE__ */ new Set();
|
|
64720
64918
|
const mediaUrls = /* @__PURE__ */ new Set();
|
|
64721
64919
|
const snapshot = () => {
|
|
64722
64920
|
if (disposed) throw new Error("Presentation is closed");
|
|
64723
|
-
if (
|
|
64921
|
+
if (pending2) throw new Error("Another clipboard operation is in progress");
|
|
64724
64922
|
const value = host2.getSnapshot();
|
|
64725
64923
|
if (!value) throw new Error("Open a presentation first");
|
|
64726
64924
|
return value;
|
|
@@ -64737,7 +64935,7 @@ function createSlidePackageClipboard(initialHost) {
|
|
|
64737
64935
|
const slides = templateEditing.buildSaveSlides(before.slides, before.templateElementsBySlideId).map(
|
|
64738
64936
|
clone.cloneSlide
|
|
64739
64937
|
);
|
|
64740
|
-
|
|
64938
|
+
pending2 = true;
|
|
64741
64939
|
try {
|
|
64742
64940
|
const text3 = before.handler.save(slides).then((bytes) => pptx.createSlideClipboardPackage(bytes, indexes)).then(pptx.serializeSlidePackageClipboard);
|
|
64743
64941
|
if (typeof ClipboardItem === "undefined" || !ClipboardItem.supports?.(pptx.SLIDE_PACKAGE_CLIPBOARD_MIME) || !clipboard.write) {
|
|
@@ -64759,7 +64957,7 @@ function createSlidePackageClipboard(initialHost) {
|
|
|
64759
64957
|
const settled = await Promise.allSettled([write, text3]);
|
|
64760
64958
|
for (const result of settled) if (result.status === "rejected") throw result.reason;
|
|
64761
64959
|
} finally {
|
|
64762
|
-
|
|
64960
|
+
pending2 = false;
|
|
64763
64961
|
}
|
|
64764
64962
|
},
|
|
64765
64963
|
async paste(insertAt) {
|
|
@@ -64767,7 +64965,7 @@ function createSlidePackageClipboard(initialHost) {
|
|
|
64767
64965
|
if (before.editable === false) throw new Error("Presentation is read-only");
|
|
64768
64966
|
const clipboard = globalThis.navigator?.clipboard;
|
|
64769
64967
|
if (!clipboard?.readText) throw new Error("System clipboard is unavailable in this browser");
|
|
64770
|
-
|
|
64968
|
+
pending2 = true;
|
|
64771
64969
|
let handler, committed = false;
|
|
64772
64970
|
const urls = [];
|
|
64773
64971
|
try {
|
|
@@ -64824,7 +65022,7 @@ function createSlidePackageClipboard(initialHost) {
|
|
|
64824
65022
|
for (const url of urls) mediaUrls.add(url);
|
|
64825
65023
|
committed = true;
|
|
64826
65024
|
} finally {
|
|
64827
|
-
|
|
65025
|
+
pending2 = false;
|
|
64828
65026
|
if (!committed) {
|
|
64829
65027
|
handler?.dispose();
|
|
64830
65028
|
for (const url of urls) URL.revokeObjectURL(url);
|
|
@@ -70228,19 +70426,19 @@ function createAnimationsGalleryView(doc, controlId, aria, columns, pick) {
|
|
|
70228
70426
|
});
|
|
70229
70427
|
root.append(strip2, more);
|
|
70230
70428
|
const sync = (state) => {
|
|
70231
|
-
root.setAttribute("aria-label",
|
|
70232
|
-
const moreLabel =
|
|
70429
|
+
root.setAttribute("aria-label", chunkXFQ2RD4I_cjs.animationsLabel(state, aria[0], aria[1]));
|
|
70430
|
+
const moreLabel = chunkXFQ2RD4I_cjs.animationsLabel(state, "pptx.animations.moreEffects", "More Effects");
|
|
70233
70431
|
more.setAttribute("aria-label", moreLabel);
|
|
70234
70432
|
more.title = moreLabel;
|
|
70235
70433
|
columns.forEach((column2, index) => {
|
|
70236
70434
|
columnEls[index].setAttribute(
|
|
70237
70435
|
"aria-label",
|
|
70238
|
-
|
|
70436
|
+
chunkXFQ2RD4I_cjs.animationsLabel(state, column2.labelKey, column2.fallback)
|
|
70239
70437
|
);
|
|
70240
70438
|
});
|
|
70241
|
-
const gated =
|
|
70439
|
+
const gated = chunkXFQ2RD4I_cjs.animationsGated(state);
|
|
70242
70440
|
for (const { el, item: item4 } of buttons) {
|
|
70243
|
-
const label =
|
|
70441
|
+
const label = chunkXFQ2RD4I_cjs.animationsLabel(state, item4.labelKey, item4.fallback);
|
|
70244
70442
|
el.querySelector(".name").textContent = label;
|
|
70245
70443
|
el.title = label;
|
|
70246
70444
|
el.disabled = gated;
|
|
@@ -70286,11 +70484,11 @@ function createAnimationsTimingView(doc) {
|
|
|
70286
70484
|
duration.dataset.ribbonControl = "animations.timing.duration";
|
|
70287
70485
|
el.append(label, start, caption2, duration);
|
|
70288
70486
|
const sync = (state) => {
|
|
70289
|
-
label.textContent =
|
|
70487
|
+
label.textContent = chunkXFQ2RD4I_cjs.animationsLabel(state, "pptx.animations.start", "Start");
|
|
70290
70488
|
START_MODES.forEach(([key, fallback], index) => {
|
|
70291
|
-
modes[index].textContent =
|
|
70489
|
+
modes[index].textContent = chunkXFQ2RD4I_cjs.animationsLabel(state, key, fallback);
|
|
70292
70490
|
});
|
|
70293
|
-
text3.textContent =
|
|
70491
|
+
text3.textContent = chunkXFQ2RD4I_cjs.animationsLabel(state, "pptx.animations.duration", "Duration");
|
|
70294
70492
|
duration.setAttribute("aria-label", text3.textContent);
|
|
70295
70493
|
};
|
|
70296
70494
|
return { el, sync };
|
|
@@ -70316,7 +70514,7 @@ var EXIT = spec3({
|
|
|
70316
70514
|
var PATH = spec3({
|
|
70317
70515
|
icon: "moveRight",
|
|
70318
70516
|
// One-click default path (Lines: Right), not an entrance preset.
|
|
70319
|
-
add: { group: "motionPath", preset:
|
|
70517
|
+
add: { group: "motionPath", preset: chunkXFQ2RD4I_cjs.DEFAULT_MOTION_PATH_PRESET_ID },
|
|
70320
70518
|
label: ["pptx.animations.pathAnimation", "Path Animation"]
|
|
70321
70519
|
});
|
|
70322
70520
|
var OPTIONS2 = spec3({
|
|
@@ -70357,7 +70555,7 @@ var REMOVE = spec3({
|
|
|
70357
70555
|
label: ["pptx.animations.remove", "Remove"],
|
|
70358
70556
|
title: ["pptx.animations.removeTooltip", "Remove animation from selected element"]
|
|
70359
70557
|
});
|
|
70360
|
-
var PRESET_COLUMNS =
|
|
70558
|
+
var PRESET_COLUMNS = chunkXFQ2RD4I_cjs.ANIMATION_RIBBON_CATEGORIES.map((category) => ({
|
|
70361
70559
|
key: category.group,
|
|
70362
70560
|
labelKey: category.labelKey,
|
|
70363
70561
|
fallback: category.fallback,
|
|
@@ -70368,14 +70566,14 @@ var PRESET_COLUMNS = chunkUEF4BFW4_cjs.ANIMATION_RIBBON_CATEGORIES.map((category
|
|
|
70368
70566
|
fallback: humanize2(preset2)
|
|
70369
70567
|
}))
|
|
70370
70568
|
}));
|
|
70371
|
-
var PATH_COLUMNS =
|
|
70569
|
+
var PATH_COLUMNS = chunkXFQ2RD4I_cjs.MOTION_PATH_FAMILIES.map((family2) => ({
|
|
70372
70570
|
key: family2,
|
|
70373
|
-
labelKey:
|
|
70571
|
+
labelKey: chunkXFQ2RD4I_cjs.motionPathFamilyLabelKey(family2),
|
|
70374
70572
|
fallback: humanize2(family2),
|
|
70375
70573
|
tone: "path",
|
|
70376
|
-
items:
|
|
70574
|
+
items: chunkXFQ2RD4I_cjs.motionPathPresetsByFamily(family2).map((preset2) => ({
|
|
70377
70575
|
value: preset2.id,
|
|
70378
|
-
labelKey:
|
|
70576
|
+
labelKey: chunkXFQ2RD4I_cjs.motionPathPresetLabelKey(preset2.id),
|
|
70379
70577
|
fallback: humanize2(preset2.id)
|
|
70380
70578
|
}))
|
|
70381
70579
|
}));
|
|
@@ -70461,11 +70659,11 @@ function createRibbonAnimationsView(doc, request) {
|
|
|
70461
70659
|
group("animations.timing", timing.el)
|
|
70462
70660
|
];
|
|
70463
70661
|
const sync = (state) => {
|
|
70464
|
-
const text3 = (label) =>
|
|
70662
|
+
const text3 = (label) => chunkXFQ2RD4I_cjs.animationsLabel(state, label[0], label[1]);
|
|
70465
70663
|
for (const [id, el] of groups) {
|
|
70466
70664
|
el.setAttribute("label", text3(CAPTIONS[id]));
|
|
70467
70665
|
}
|
|
70468
|
-
const gated =
|
|
70666
|
+
const gated = chunkXFQ2RD4I_cjs.animationsGated(state);
|
|
70469
70667
|
for (const { el, spec: item4 } of commands) {
|
|
70470
70668
|
el.setAttribute("label", text3(item4.label));
|
|
70471
70669
|
el.setAttribute("title", text3(item4.title ?? item4.label));
|
|
@@ -70491,7 +70689,7 @@ function definePptxRibbonAnimations(registry2) {
|
|
|
70491
70689
|
class RibbonAnimations extends HTMLElement {
|
|
70492
70690
|
model = { editable: false, hasSelection: false };
|
|
70493
70691
|
view = createRibbonAnimationsView(this.ownerDocument, (intent) => {
|
|
70494
|
-
if (
|
|
70692
|
+
if (chunkXFQ2RD4I_cjs.canRequestAnimations(this.model, intent)) {
|
|
70495
70693
|
this.dispatchEvent(
|
|
70496
70694
|
new CustomEvent("animations-request", { detail: intent, bubbles: true, composed: true })
|
|
70497
70695
|
);
|
|
@@ -70969,7 +71167,8 @@ var RIBBON_HOME_TAGS = [
|
|
|
70969
71167
|
"pptx-ui-ribbon-home-arrange-edit",
|
|
70970
71168
|
"pptx-ui-ribbon-home-font-picker",
|
|
70971
71169
|
"pptx-ui-ribbon-home-arrange-painter",
|
|
70972
|
-
"pptx-ui-ribbon-home-arrange-shape"
|
|
71170
|
+
"pptx-ui-ribbon-home-arrange-shape",
|
|
71171
|
+
"pptx-ui-ribbon-home-picture-size"
|
|
70973
71172
|
];
|
|
70974
71173
|
var RIBBON_HOME_STYLES = `
|
|
70975
71174
|
:host { display:contents; }
|
|
@@ -72017,6 +72216,7 @@ var definePptxRibbonHomeArrangeEdit = (registry2) => definePptxRibbonHome(regist
|
|
|
72017
72216
|
var definePptxRibbonHomeFontPicker = (registry2) => definePptxRibbonHome(registry2, "font-picker");
|
|
72018
72217
|
var definePptxRibbonHomeArrangePainter = (registry2) => definePptxRibbonHome(registry2, "arrange-painter");
|
|
72019
72218
|
var definePptxRibbonHomeArrangeShape = (registry2) => definePptxRibbonHome(registry2, "arrange-shape");
|
|
72219
|
+
var definePptxRibbonHomePictureSize = (registry2) => definePptxRibbonHome(registry2, "picture-size");
|
|
72020
72220
|
|
|
72021
72221
|
// src/pptx/web-components/ribbon-insert-styles.ts
|
|
72022
72222
|
var RIBBON_INSERT_STYLES = `
|
|
@@ -74057,9 +74257,9 @@ function officeTitleBarState(state, placement) {
|
|
|
74057
74257
|
const available = state.autosave.toggleAvailable !== false;
|
|
74058
74258
|
const items = resolveTitleBarStrip(state, placement).map((item4) => {
|
|
74059
74259
|
const label = t(item4.id === "save" ? "pptx.titleBar.save" : item4.labelKey);
|
|
74060
|
-
const
|
|
74061
|
-
const tooltip =
|
|
74062
|
-
action:
|
|
74260
|
+
const pending2 = item4.id === "undo" ? state.history.undoLabel : item4.id === "redo" ? state.history.redoLabel : null;
|
|
74261
|
+
const tooltip = pending2 ? t(item4.id === "undo" ? "pptx.toolbar.undoAction" : "pptx.toolbar.redoAction", {
|
|
74262
|
+
action: pending2
|
|
74063
74263
|
}) : label;
|
|
74064
74264
|
return {
|
|
74065
74265
|
id: item4.id,
|
|
@@ -74522,6 +74722,7 @@ var controls = [
|
|
|
74522
74722
|
["pptx-ui-ribbon-home-font-picker", definePptxRibbonHomeFontPicker],
|
|
74523
74723
|
["pptx-ui-ribbon-home-arrange-painter", definePptxRibbonHomeArrangePainter],
|
|
74524
74724
|
["pptx-ui-ribbon-home-arrange-shape", definePptxRibbonHomeArrangeShape],
|
|
74725
|
+
["pptx-ui-ribbon-home-picture-size", definePptxRibbonHomePictureSize],
|
|
74525
74726
|
["pptx-ui-ribbon-view", definePptxRibbonView],
|
|
74526
74727
|
["pptx-ui-ribbon-transitions", definePptxRibbonTransitions],
|
|
74527
74728
|
["pptx-ui-ribbon-group", definePptxRibbonGroup],
|
|
@@ -76407,6 +76608,14 @@ async function rasterizeElementToDataUrl(node, naturalWidth, naturalHeight, doc,
|
|
|
76407
76608
|
// src/pptx/index.ts
|
|
76408
76609
|
registerPptxWebControls();
|
|
76409
76610
|
|
|
76611
|
+
Object.defineProperty(exports, "AFTER_ANIMATION_VALUES", {
|
|
76612
|
+
enumerable: true,
|
|
76613
|
+
get: function () { return pptx.AFTER_ANIMATION_VALUES; }
|
|
76614
|
+
});
|
|
76615
|
+
Object.defineProperty(exports, "DEFAULT_AFTER_ANIMATION_DIM_COLOR", {
|
|
76616
|
+
enumerable: true,
|
|
76617
|
+
get: function () { return pptx.DEFAULT_AFTER_ANIMATION_DIM_COLOR; }
|
|
76618
|
+
});
|
|
76410
76619
|
Object.defineProperty(exports, "algorithmParam", {
|
|
76411
76620
|
enumerable: true,
|
|
76412
76621
|
get: function () { return pptx.algorithmParam; }
|
|
@@ -76467,10 +76676,22 @@ Object.defineProperty(exports, "gearPoints", {
|
|
|
76467
76676
|
enumerable: true,
|
|
76468
76677
|
get: function () { return pptx.gearPoints; }
|
|
76469
76678
|
});
|
|
76679
|
+
Object.defineProperty(exports, "getAfterAnimation", {
|
|
76680
|
+
enumerable: true,
|
|
76681
|
+
get: function () { return pptx.getAfterAnimation; }
|
|
76682
|
+
});
|
|
76683
|
+
Object.defineProperty(exports, "getAfterAnimationState", {
|
|
76684
|
+
enumerable: true,
|
|
76685
|
+
get: function () { return pptx.getAfterAnimationState; }
|
|
76686
|
+
});
|
|
76470
76687
|
Object.defineProperty(exports, "interpretSmartArtLayout", {
|
|
76471
76688
|
enumerable: true,
|
|
76472
76689
|
get: function () { return pptx.interpretSmartArtLayout; }
|
|
76473
76690
|
});
|
|
76691
|
+
Object.defineProperty(exports, "isNativeAfterAnimationOnly", {
|
|
76692
|
+
enumerable: true,
|
|
76693
|
+
get: function () { return pptx.isNativeAfterAnimationOnly; }
|
|
76694
|
+
});
|
|
76474
76695
|
Object.defineProperty(exports, "itemNode", {
|
|
76475
76696
|
enumerable: true,
|
|
76476
76697
|
get: function () { return pptx.itemNode; }
|
|
@@ -76507,6 +76728,14 @@ Object.defineProperty(exports, "resolveFlowDirection", {
|
|
|
76507
76728
|
enumerable: true,
|
|
76508
76729
|
get: function () { return pptx.resolveFlowDirection; }
|
|
76509
76730
|
});
|
|
76731
|
+
Object.defineProperty(exports, "setAfterAnimation", {
|
|
76732
|
+
enumerable: true,
|
|
76733
|
+
get: function () { return pptx.setAfterAnimation; }
|
|
76734
|
+
});
|
|
76735
|
+
Object.defineProperty(exports, "setAfterAnimationColor", {
|
|
76736
|
+
enumerable: true,
|
|
76737
|
+
get: function () { return pptx.setAfterAnimationColor; }
|
|
76738
|
+
});
|
|
76510
76739
|
Object.defineProperty(exports, "strokeFor", {
|
|
76511
76740
|
enumerable: true,
|
|
76512
76741
|
get: function () { return pptx.strokeFor; }
|
|
@@ -77687,7 +77916,6 @@ exports.ACTION_INDICATOR_CLASS = ACTION_INDICATOR_CLASS;
|
|
|
77687
77916
|
exports.ACTION_INDICATOR_ICON_PATH = ACTION_INDICATOR_ICON_PATH;
|
|
77688
77917
|
exports.ADD_INS_TAB = ADD_INS_TAB;
|
|
77689
77918
|
exports.ADVANCED_TAB = ADVANCED_TAB;
|
|
77690
|
-
exports.AFTER_ANIMATION_VALUES = AFTER_ANIMATION_VALUES;
|
|
77691
77919
|
exports.ALIGN_OPTIONS = ALIGN_OPTIONS;
|
|
77692
77920
|
exports.ALL_CLASSIFIED_PRESETS = ALL_CLASSIFIED_PRESETS;
|
|
77693
77921
|
exports.ANGLE_UNITS_PER_RADIAN = ANGLE_UNITS_PER_RADIAN;
|
|
@@ -77778,7 +78006,6 @@ exports.CURSOR_PALETTE = CURSOR_PALETTE;
|
|
|
77778
78006
|
exports.DATA_LABEL_CONTENT_OPTIONS = DATA_LABEL_CONTENT_OPTIONS;
|
|
77779
78007
|
exports.DATA_LABEL_POSITION_OPTIONS = DATA_LABEL_POSITION_OPTIONS;
|
|
77780
78008
|
exports.DEBOUNCE_MS = DEBOUNCE_MS;
|
|
77781
|
-
exports.DEFAULT_AFTER_ANIMATION_DIM_COLOR = DEFAULT_AFTER_ANIMATION_DIM_COLOR;
|
|
77782
78009
|
exports.DEFAULT_ANIMATION_TIMING_CURVE = DEFAULT_ANIMATION_TIMING_CURVE;
|
|
77783
78010
|
exports.DEFAULT_BOUNDS = DEFAULT_BOUNDS;
|
|
77784
78011
|
exports.DEFAULT_BROADCAST_SERVER_URL = DEFAULT_BROADCAST_SERVER_URL;
|
|
@@ -78271,6 +78498,7 @@ exports.applyAcceptAllSlides = applyAcceptAllSlides;
|
|
|
78271
78498
|
exports.applyAcceptSlide = applyAcceptSlide;
|
|
78272
78499
|
exports.applyActiveInlineListFormatting = applyActiveInlineListFormatting;
|
|
78273
78500
|
exports.applyAnimationGroupSteps = applyAnimationGroupSteps;
|
|
78501
|
+
exports.applyAnimationOpacity = applyAnimationOpacity;
|
|
78274
78502
|
exports.applyAnimationTimelineOrder = applyAnimationTimelineOrder;
|
|
78275
78503
|
exports.applyAutoCorrect = applyAutoCorrect;
|
|
78276
78504
|
exports.applyChart3DDrag = applyChart3DDrag;
|
|
@@ -78741,9 +78969,11 @@ exports.createViewerStore = createViewerStore;
|
|
|
78741
78969
|
exports.createViewerZoomStore = createViewerZoomStore;
|
|
78742
78970
|
exports.createWheelStepBuffer = createWheelStepBuffer;
|
|
78743
78971
|
exports.createWriteBackScheduler = createWriteBackScheduler;
|
|
78972
|
+
exports.cropControlSpec = cropControlSpec;
|
|
78744
78973
|
exports.cropFill = cropFill;
|
|
78745
78974
|
exports.cropFit = cropFit;
|
|
78746
78975
|
exports.cropFrameOf = cropFrameOf;
|
|
78976
|
+
exports.cropHomeControls = cropHomeControls;
|
|
78747
78977
|
exports.cropModeKeyAction = cropModeKeyAction;
|
|
78748
78978
|
exports.cropResetPatch = cropResetPatch;
|
|
78749
78979
|
exports.cropResetState = cropResetState;
|
|
@@ -78798,6 +79028,7 @@ exports.disableOuterShadowPatch = disableOuterShadowPatch;
|
|
|
78798
79028
|
exports.disableReflectionPatch = disableReflectionPatch;
|
|
78799
79029
|
exports.disableSoftEdgePatch = disableSoftEdgePatch;
|
|
78800
79030
|
exports.discardAutosaveRecovery = discardAutosaveRecovery;
|
|
79031
|
+
exports.dispatchCropRequest = dispatchCropRequest;
|
|
78801
79032
|
exports.dominantDisplacement = dominantDisplacement;
|
|
78802
79033
|
exports.downloadBlob = downloadBlob;
|
|
78803
79034
|
exports.downloadDataUrl = downloadDataUrl;
|
|
@@ -78964,15 +79195,17 @@ exports.get3dTransformCss = get3dTransformCss;
|
|
|
78964
79195
|
exports.getAcknowledgedAutosaveRecoveryTimestamp = getAcknowledgedAutosaveRecoveryTimestamp;
|
|
78965
79196
|
exports.getActiveInlineListSelection = getActiveInlineListSelection;
|
|
78966
79197
|
exports.getActiveXControlOverlayView = getActiveXControlOverlayView;
|
|
78967
|
-
exports.getAfterAnimation = getAfterAnimation;
|
|
78968
79198
|
exports.getAnimationColorBaseStyle = getAnimationColorBaseStyle;
|
|
78969
79199
|
exports.getAnimationInitialStyle = getAnimationInitialStyle;
|
|
79200
|
+
exports.getAnimationOpacity = getAnimationOpacity;
|
|
78970
79201
|
exports.getAriaLabel = getAriaLabel;
|
|
78971
79202
|
exports.getAriaRole = getAriaRole;
|
|
78972
79203
|
exports.getAriaRoleDescription = getAriaRoleDescription;
|
|
78973
79204
|
exports.getArtisticFilterId = getArtisticFilterId;
|
|
78974
79205
|
exports.getArtisticImageFilter = getArtisticImageFilter;
|
|
78975
79206
|
exports.getAutosaveSnapshot = getAutosaveSnapshot;
|
|
79207
|
+
exports.getBackgroundAnimationLayers = getBackgroundAnimationLayers;
|
|
79208
|
+
exports.getBackgroundAnimationState = getBackgroundAnimationState;
|
|
78976
79209
|
exports.getBevelLightingFilterId = getBevelLightingFilterId;
|
|
78977
79210
|
exports.getBevelLightingFilterMarkup = getBevelLightingFilterMarkup;
|
|
78978
79211
|
exports.getBevelLightingSvgFilter = getBevelLightingSvgFilter;
|
|
@@ -79099,6 +79332,8 @@ exports.getSessionTabId = getSessionTabId;
|
|
|
79099
79332
|
exports.getShapeAdjustmentHandleDescriptor = getShapeAdjustmentHandleDescriptor;
|
|
79100
79333
|
exports.getShapeAdjustmentHandleDescriptors = getShapeAdjustmentHandleDescriptors;
|
|
79101
79334
|
exports.getShapeConnectionSites = getShapeConnectionSites;
|
|
79335
|
+
exports.getShapeEffectAnimationLayerStyle = getShapeEffectAnimationLayerStyle;
|
|
79336
|
+
exports.getShapeEffectLayerPlacement = getShapeEffectLayerPlacement;
|
|
79102
79337
|
exports.getShapeFillOverlay = getShapeFillOverlay;
|
|
79103
79338
|
exports.getSimpleCssTransform = getSimpleCssTransform;
|
|
79104
79339
|
exports.getSlideBackgroundStyle = getSlideBackgroundStyle;
|
|
@@ -79166,7 +79401,7 @@ exports.homeLabel = homeLabel;
|
|
|
79166
79401
|
exports.homeLaunchers = homeLaunchers;
|
|
79167
79402
|
exports.homeSnapshotTranslator = homeSnapshotTranslator;
|
|
79168
79403
|
exports.hostMenuLabel = hostMenuLabel;
|
|
79169
|
-
exports.hslToRgb =
|
|
79404
|
+
exports.hslToRgb = hslToRgb;
|
|
79170
79405
|
exports.imageAdjustmentsPatch = imageAdjustmentsPatch;
|
|
79171
79406
|
exports.imageAdjustmentsStateOf = imageAdjustmentsStateOf;
|
|
79172
79407
|
exports.imageCropPatch = imageCropPatch;
|
|
@@ -79485,6 +79720,7 @@ exports.pictureArtisticSections = pictureArtisticSections;
|
|
|
79485
79720
|
exports.pictureColorSections = pictureColorSections;
|
|
79486
79721
|
exports.pictureCorrectionsSections = pictureCorrectionsSections;
|
|
79487
79722
|
exports.pictureEffects = pictureEffects;
|
|
79723
|
+
exports.pictureSizeHomeControls = pictureSizeHomeControls;
|
|
79488
79724
|
exports.pieceLetterSpacing = pieceLetterSpacing;
|
|
79489
79725
|
exports.placeAudienceWindow = placeAudienceWindow;
|
|
79490
79726
|
exports.placeCaretAt = placeCaretAt;
|
|
@@ -79646,6 +79882,7 @@ exports.resolveDiagramBuildMode = resolveDiagramBuildMode;
|
|
|
79646
79882
|
exports.resolveDiagramRevealDescriptor = resolveDiagramRevealDescriptor;
|
|
79647
79883
|
exports.resolveDirection = resolveDirection;
|
|
79648
79884
|
exports.resolveDirection8 = resolveDirection8;
|
|
79885
|
+
exports.resolveDisplaySlideNumber = resolveDisplaySlideNumber;
|
|
79649
79886
|
exports.resolveDrawingShapeNodeId = resolveDrawingShapeNodeId;
|
|
79650
79887
|
exports.resolveEastAsianBreakOptions = resolveEastAsianBreakOptions;
|
|
79651
79888
|
exports.resolveEditPointsAvailability = resolveEditPointsAvailability;
|
|
@@ -79854,8 +80091,6 @@ exports.serializeShapeAdjustments = serializeShapeAdjustments;
|
|
|
79854
80091
|
exports.serializeSvgPath = serializeSvgPath;
|
|
79855
80092
|
exports.seriesColorClearState = seriesColorClearState;
|
|
79856
80093
|
exports.seriesSecondaryAxisPatch = seriesSecondaryAxisPatch;
|
|
79857
|
-
exports.setAfterAnimation = setAfterAnimation;
|
|
79858
|
-
exports.setAfterAnimationColor = setAfterAnimationColor;
|
|
79859
80094
|
exports.setCachedResult = setCachedResult;
|
|
79860
80095
|
exports.setDataLabelsRangeCache = setDataLabelsRangeCache;
|
|
79861
80096
|
exports.setDuotoneCachedResult = setDuotoneCachedResult;
|