pptx-react-viewer 2.13.1 → 2.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/{AiChatPanel-FXPGFU6H.js → AiChatPanel-F4E3A2DE.js} +22 -22
- package/dist/AiChatPanel-F4E3A2DE.js.br +0 -0
- package/dist/AiChatPanel-F4E3A2DE.js.gz +0 -0
- package/dist/{AiChatPanel-WMGS5TNX.mjs → AiChatPanel-VEULATXX.mjs} +3 -3
- package/dist/AiChatPanel-VEULATXX.mjs.br +0 -0
- package/dist/AiChatPanel-VEULATXX.mjs.gz +0 -0
- package/dist/{Model3DScene-E2XRQAMR.mjs → Model3DScene-KIPEODEJ.mjs} +1 -1
- package/dist/{Model3DScene-E2XRQAMR.mjs.br → Model3DScene-KIPEODEJ.mjs.br} +0 -0
- package/dist/Model3DScene-KIPEODEJ.mjs.gz +0 -0
- package/dist/{Model3DScene-K5FPZTRG.js → Model3DScene-TD2LIHYP.js} +2 -2
- package/dist/Model3DScene-TD2LIHYP.js.br +0 -0
- package/dist/Model3DScene-TD2LIHYP.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-2W2IFPLE.mjs → SurfaceChart3DScene-GRBWZ52S.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-2W2IFPLE.mjs.br → SurfaceChart3DScene-GRBWZ52S.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-GRBWZ52S.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-JDCFTXYT.js → SurfaceChart3DScene-OTKXQH5O.js} +2 -2
- package/dist/SurfaceChart3DScene-OTKXQH5O.js.br +0 -0
- package/dist/SurfaceChart3DScene-OTKXQH5O.js.gz +0 -0
- package/dist/{chunk-3OV4FR6S.mjs → chunk-3HWE6QZG.mjs} +7 -7
- package/dist/chunk-3HWE6QZG.mjs.br +0 -0
- package/dist/chunk-3HWE6QZG.mjs.gz +0 -0
- package/dist/{chunk-QFNJCEMS.js → chunk-BNSCH4WT.js} +327 -327
- package/dist/chunk-BNSCH4WT.js.br +0 -0
- package/dist/chunk-BNSCH4WT.js.gz +0 -0
- package/dist/{chunk-66ZHD7Y4.js → chunk-DOS7NY7C.js} +244 -244
- package/dist/chunk-DOS7NY7C.js.br +0 -0
- package/dist/chunk-DOS7NY7C.js.gz +0 -0
- package/dist/{chunk-ZMIFFURL.js → chunk-EUQ2IER3.js} +1037 -1037
- package/dist/chunk-EUQ2IER3.js.br +0 -0
- package/dist/chunk-EUQ2IER3.js.gz +0 -0
- package/dist/{chunk-DD2YRS6Z.js → chunk-FDR5W67L.js} +160 -50
- package/dist/chunk-FDR5W67L.js.br +0 -0
- package/dist/chunk-FDR5W67L.js.gz +0 -0
- package/dist/{chunk-OWGPRVRK.mjs → chunk-GKOKCOXR.mjs} +160 -50
- package/dist/chunk-GKOKCOXR.mjs.br +0 -0
- package/dist/chunk-GKOKCOXR.mjs.gz +0 -0
- package/dist/{chunk-GJEH27GD.mjs → chunk-GZ6TXBEO.mjs} +2 -2
- package/dist/chunk-GZ6TXBEO.mjs.br +0 -0
- package/dist/{chunk-GJEH27GD.mjs.gz → chunk-GZ6TXBEO.mjs.gz} +0 -0
- package/dist/{chunk-CQ2CKMG4.mjs → chunk-L5YGPCQW.mjs} +1 -1
- package/dist/chunk-L5YGPCQW.mjs.br +0 -0
- package/dist/chunk-L5YGPCQW.mjs.gz +0 -0
- package/dist/{chunk-PTFCMG3A.js → chunk-VY3KLDJF.js} +3 -3
- package/dist/chunk-VY3KLDJF.js.br +0 -0
- package/dist/chunk-VY3KLDJF.js.gz +0 -0
- package/dist/{chunk-H5H57XMH.mjs → chunk-ZFRPPY2N.mjs} +2 -2
- package/dist/chunk-ZFRPPY2N.mjs.br +0 -0
- package/dist/chunk-ZFRPPY2N.mjs.gz +0 -0
- package/dist/index.js +34 -34
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.js +78 -78
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.js +21 -21
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +5 -5
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-FXPGFU6H.js.br +0 -0
- package/dist/AiChatPanel-FXPGFU6H.js.gz +0 -0
- package/dist/AiChatPanel-WMGS5TNX.mjs.br +0 -0
- package/dist/AiChatPanel-WMGS5TNX.mjs.gz +0 -0
- package/dist/Model3DScene-E2XRQAMR.mjs.gz +0 -0
- package/dist/Model3DScene-K5FPZTRG.js.br +0 -0
- package/dist/Model3DScene-K5FPZTRG.js.gz +0 -0
- package/dist/SurfaceChart3DScene-2W2IFPLE.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-JDCFTXYT.js.br +0 -0
- package/dist/SurfaceChart3DScene-JDCFTXYT.js.gz +0 -0
- package/dist/chunk-3OV4FR6S.mjs.br +0 -0
- package/dist/chunk-3OV4FR6S.mjs.gz +0 -0
- package/dist/chunk-66ZHD7Y4.js.br +0 -0
- package/dist/chunk-66ZHD7Y4.js.gz +0 -0
- package/dist/chunk-CQ2CKMG4.mjs.br +0 -0
- package/dist/chunk-CQ2CKMG4.mjs.gz +0 -0
- package/dist/chunk-DD2YRS6Z.js.br +0 -0
- package/dist/chunk-DD2YRS6Z.js.gz +0 -0
- package/dist/chunk-GJEH27GD.mjs.br +0 -0
- package/dist/chunk-H5H57XMH.mjs.br +0 -0
- package/dist/chunk-H5H57XMH.mjs.gz +0 -0
- package/dist/chunk-OWGPRVRK.mjs.br +0 -0
- package/dist/chunk-OWGPRVRK.mjs.gz +0 -0
- package/dist/chunk-PTFCMG3A.js.br +0 -0
- package/dist/chunk-PTFCMG3A.js.gz +0 -0
- package/dist/chunk-QFNJCEMS.js.br +0 -0
- package/dist/chunk-QFNJCEMS.js.gz +0 -0
- package/dist/chunk-ZMIFFURL.js.br +0 -0
- package/dist/chunk-ZMIFFURL.js.gz +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -41540,6 +41540,30 @@ var FONT_SUBSTITUTION_MAP = {
|
|
|
41540
41540
|
Gulim: ["Noto Sans CJK KR", "AppleGothic", "sans-serif"],
|
|
41541
41541
|
Malgun: ["Noto Sans CJK KR", "Apple SD Gothic Neo", "sans-serif"],
|
|
41542
41542
|
"Malgun Gothic": ["Noto Sans CJK KR", "Apple SD Gothic Neo", "sans-serif"],
|
|
41543
|
+
// Source Han Sans (Adobe/Google) ships the same glyphs as Noto Sans CJK;
|
|
41544
|
+
// the zh-CN name 思源黑体 is how decks authored in Chinese reference it.
|
|
41545
|
+
"\u601D\u6E90\u9ED1\u4F53 CN": [
|
|
41546
|
+
"Source Han Sans CN",
|
|
41547
|
+
"Noto Sans CJK SC",
|
|
41548
|
+
"Noto Sans SC",
|
|
41549
|
+
"Microsoft YaHei",
|
|
41550
|
+
"sans-serif"
|
|
41551
|
+
],
|
|
41552
|
+
\u601D\u6E90\u9ED1\u4F53: [
|
|
41553
|
+
"Source Han Sans SC",
|
|
41554
|
+
"Noto Sans CJK SC",
|
|
41555
|
+
"Noto Sans SC",
|
|
41556
|
+
"Microsoft YaHei",
|
|
41557
|
+
"sans-serif"
|
|
41558
|
+
],
|
|
41559
|
+
"Source Han Sans CN": [
|
|
41560
|
+
"\u601D\u6E90\u9ED1\u4F53 CN",
|
|
41561
|
+
"Noto Sans CJK SC",
|
|
41562
|
+
"Noto Sans SC",
|
|
41563
|
+
"Microsoft YaHei",
|
|
41564
|
+
"sans-serif"
|
|
41565
|
+
],
|
|
41566
|
+
\u5FAE\u8F6F\u96C5\u9ED1: ["Microsoft YaHei", "Noto Sans CJK SC", "PingFang SC", "sans-serif"],
|
|
41543
41567
|
// Complex script fonts
|
|
41544
41568
|
"Arabic Typesetting": ["Noto Naskh Arabic", "serif"],
|
|
41545
41569
|
"Simplified Arabic": ["Noto Sans Arabic", "sans-serif"],
|
|
@@ -41559,6 +41583,11 @@ var FONT_SUBSTITUTION_MAP = {
|
|
|
41559
41583
|
Nyala: ["Noto Sans Ethiopic", "sans-serif"],
|
|
41560
41584
|
MoolBoran: ["Noto Sans Khmer", "sans-serif"],
|
|
41561
41585
|
// Decorative / Display
|
|
41586
|
+
// Condensed display faces: decks often reference the FULL style name
|
|
41587
|
+
// ("Bebas Neue Regular"); the suffix-stripped base resolves here. The
|
|
41588
|
+
// fallbacks must stay condensed, or short numeric labels sized to the
|
|
41589
|
+
// narrow face overflow their text boxes and wrap (issue #132, "77%").
|
|
41590
|
+
"Bebas Neue": ["Oswald", "Arial Narrow", "Impact", "sans-serif"],
|
|
41562
41591
|
"Century Gothic": ["URW Gothic", "Futura", "sans-serif"],
|
|
41563
41592
|
Oswald: ["Agency FB", "Arial Narrow", "sans-serif"],
|
|
41564
41593
|
"Franklin Gothic": ["Liberation Sans", "Helvetica Neue", "sans-serif"],
|
|
@@ -41570,6 +41599,48 @@ var FONT_SUBSTITUTION_MAP = {
|
|
|
41570
41599
|
Constantia: ["Liberation Serif", "Palatino", "serif"],
|
|
41571
41600
|
Corbel: ["Liberation Sans", "Lucida Grande", "sans-serif"]
|
|
41572
41601
|
};
|
|
41602
|
+
var FONT_STYLE_SUFFIX_TOKENS = /* @__PURE__ */ new Set([
|
|
41603
|
+
"regular",
|
|
41604
|
+
"normal",
|
|
41605
|
+
"book",
|
|
41606
|
+
"roman",
|
|
41607
|
+
"thin",
|
|
41608
|
+
"hairline",
|
|
41609
|
+
"extralight",
|
|
41610
|
+
"ultralight",
|
|
41611
|
+
"demilight",
|
|
41612
|
+
"semilight",
|
|
41613
|
+
"light",
|
|
41614
|
+
"medium",
|
|
41615
|
+
"demibold",
|
|
41616
|
+
"semibold",
|
|
41617
|
+
"bold",
|
|
41618
|
+
"extrabold",
|
|
41619
|
+
"ultrabold",
|
|
41620
|
+
"heavy",
|
|
41621
|
+
"black",
|
|
41622
|
+
"extrablack",
|
|
41623
|
+
"ultra",
|
|
41624
|
+
"italic",
|
|
41625
|
+
"oblique"
|
|
41626
|
+
]);
|
|
41627
|
+
function stripFontStyleSuffix(fontName) {
|
|
41628
|
+
let name = fontName.trim();
|
|
41629
|
+
let stripped = false;
|
|
41630
|
+
for (let i = 0; i < 2; i++) {
|
|
41631
|
+
const idx = name.lastIndexOf(" ");
|
|
41632
|
+
if (idx <= 0) {
|
|
41633
|
+
break;
|
|
41634
|
+
}
|
|
41635
|
+
const token2 = name.slice(idx + 1).toLowerCase().replace(/-/g, "");
|
|
41636
|
+
if (!FONT_STYLE_SUFFIX_TOKENS.has(token2)) {
|
|
41637
|
+
break;
|
|
41638
|
+
}
|
|
41639
|
+
name = name.slice(0, idx).trim();
|
|
41640
|
+
stripped = true;
|
|
41641
|
+
}
|
|
41642
|
+
return stripped && name.length > 0 ? name : void 0;
|
|
41643
|
+
}
|
|
41573
41644
|
var PANOSE_FAMILY_MAP = {
|
|
41574
41645
|
0: "sans-serif",
|
|
41575
41646
|
// Any — default to sans-serif
|
|
@@ -41643,18 +41714,27 @@ function getSubstituteFontFamily(fontName, panose) {
|
|
|
41643
41714
|
if (!trimmed) {
|
|
41644
41715
|
return "sans-serif";
|
|
41645
41716
|
}
|
|
41646
|
-
|
|
41717
|
+
return buildFontFamilyString(trimmed, getSubstituteFonts(trimmed, panose));
|
|
41718
|
+
}
|
|
41719
|
+
function getSubstituteFonts(fontName, panose) {
|
|
41720
|
+
const trimmed = fontName.trim();
|
|
41721
|
+
if (!trimmed) {
|
|
41722
|
+
return ["sans-serif"];
|
|
41723
|
+
}
|
|
41724
|
+
const baseName = stripFontStyleSuffix(trimmed);
|
|
41725
|
+
const basePrefix = baseName ? [baseName] : [];
|
|
41726
|
+
const directSubs = FONT_SUBSTITUTION_MAP[trimmed] ?? (baseName ? FONT_SUBSTITUTION_MAP[baseName] : void 0);
|
|
41647
41727
|
if (directSubs) {
|
|
41648
|
-
return
|
|
41728
|
+
return [...basePrefix, ...directSubs];
|
|
41649
41729
|
}
|
|
41650
41730
|
if (panose && panose.length >= 4) {
|
|
41651
41731
|
const genericFamily = classifyPanose(panose);
|
|
41652
41732
|
const concreteFonts = GENERIC_FAMILY_CONCRETE_FONTS[genericFamily];
|
|
41653
41733
|
if (concreteFonts) {
|
|
41654
|
-
return
|
|
41734
|
+
return [...basePrefix, ...concreteFonts];
|
|
41655
41735
|
}
|
|
41656
41736
|
}
|
|
41657
|
-
return
|
|
41737
|
+
return [...basePrefix, "sans-serif"];
|
|
41658
41738
|
}
|
|
41659
41739
|
var CSS_GENERIC_FAMILIES = /* @__PURE__ */ new Set([
|
|
41660
41740
|
"serif",
|
|
@@ -87370,8 +87450,8 @@ function formatAxisValue(val2, formatCode) {
|
|
|
87370
87450
|
return val2.toFixed(1);
|
|
87371
87451
|
}
|
|
87372
87452
|
function computeLayout(elementWidth, elementHeight, style, hasAxes, legendPos, options) {
|
|
87373
|
-
const svgWidth = Math.max(
|
|
87374
|
-
const svgHeight = Math.max(
|
|
87453
|
+
const svgWidth = Math.max(1, elementWidth);
|
|
87454
|
+
const svgHeight = Math.max(1, elementHeight);
|
|
87375
87455
|
let plotLeft = hasAxes ? 48 : 8;
|
|
87376
87456
|
let plotTop = 8;
|
|
87377
87457
|
let plotRight = svgWidth - 8;
|
|
@@ -87426,6 +87506,12 @@ function chartAreaFill(chartData) {
|
|
|
87426
87506
|
function plotAreaFill(chartData) {
|
|
87427
87507
|
return resolve(chartData?.style?.plotAreaFill, void 0);
|
|
87428
87508
|
}
|
|
87509
|
+
var CHART_PX_PER_PT = 4 / 3;
|
|
87510
|
+
function chartFontPx(sizePt) {
|
|
87511
|
+
return sizePt * CHART_PX_PER_PT;
|
|
87512
|
+
}
|
|
87513
|
+
var DEFAULT_CHART_TEXT_PX = chartFontPx(10);
|
|
87514
|
+
var DEFAULT_CHART_DATA_LABEL_PX = chartFontPx(9);
|
|
87429
87515
|
var LOG_EXPONENT_TOLERANCE = 1e-12;
|
|
87430
87516
|
function computeLogValueRange(series, logBase) {
|
|
87431
87517
|
const allValues = series.flatMap((item) => item.values).filter((value) => value > 0);
|
|
@@ -88004,9 +88090,9 @@ function dashArray(style, width) {
|
|
|
88004
88090
|
}
|
|
88005
88091
|
return `${unit * 3} ${unit * 2}`;
|
|
88006
88092
|
}
|
|
88007
|
-
function chartAxisTextStyle(axis,
|
|
88093
|
+
function chartAxisTextStyle(axis, defaultFontSizePx = DEFAULT_CHART_TEXT_PX) {
|
|
88008
88094
|
return {
|
|
88009
|
-
fontSize: axis?.fontSize
|
|
88095
|
+
fontSize: axis?.fontSize !== void 0 ? chartFontPx(axis.fontSize) : defaultFontSizePx,
|
|
88010
88096
|
fill: axis?.fontColor ?? DEFAULT_COLOR2,
|
|
88011
88097
|
...axis?.fontBold !== void 0 ? { fontWeight: axis.fontBold ? "bold" : "normal" } : {},
|
|
88012
88098
|
...axis?.fontFamily ? { fontFamily: axis.fontFamily } : {}
|
|
@@ -88153,7 +88239,7 @@ function buildPrimaryAxis(range, layout, axis, axisX = layout.plotLeft) {
|
|
|
88153
88239
|
x: labelX,
|
|
88154
88240
|
y: midY,
|
|
88155
88241
|
text: unitLabel,
|
|
88156
|
-
...chartAxisTextStyle(axis
|
|
88242
|
+
...chartAxisTextStyle(axis),
|
|
88157
88243
|
textAnchor: "middle",
|
|
88158
88244
|
transform: `rotate(-90, ${labelX}, ${midY})`
|
|
88159
88245
|
});
|
|
@@ -88165,7 +88251,7 @@ function buildSecondaryAxis(range, layout, axis, axisX = layout.plotRight) {
|
|
|
88165
88251
|
const gridlines = [];
|
|
88166
88252
|
const axisLabels = [];
|
|
88167
88253
|
const textStyle = chartAxisTextStyle(axis);
|
|
88168
|
-
const captionStyle = chartAxisTextStyle(axis
|
|
88254
|
+
const captionStyle = chartAxisTextStyle(axis);
|
|
88169
88255
|
const axisLine = buildVerticalAxisLine(axis, axisX, layout);
|
|
88170
88256
|
if (axisLine) {
|
|
88171
88257
|
gridlines.push(axisLine);
|
|
@@ -88387,7 +88473,7 @@ function buildBars(chartData, catCount, layout, primaryRange, secondaryRange, se
|
|
|
88387
88473
|
x: x + singleBarWidth / 2,
|
|
88388
88474
|
y: val2 >= 0 ? y - 4 : y + h + 10,
|
|
88389
88475
|
text: formatAxisValue2(val2, series[si].numberFormat),
|
|
88390
|
-
fontSize:
|
|
88476
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88391
88477
|
fill: "#334155",
|
|
88392
88478
|
textAnchor: "middle"
|
|
88393
88479
|
});
|
|
@@ -88459,7 +88545,7 @@ function buildBars(chartData, catCount, layout, primaryRange, secondaryRange, se
|
|
|
88459
88545
|
x: x + barW / 2,
|
|
88460
88546
|
y: y + h / 2 + 3,
|
|
88461
88547
|
text: `${Math.round(val2)}%`,
|
|
88462
|
-
fontSize:
|
|
88548
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88463
88549
|
fill: "#ffffff",
|
|
88464
88550
|
textAnchor: "middle",
|
|
88465
88551
|
fontWeight: "bold"
|
|
@@ -88492,7 +88578,7 @@ function pushClusteredStackedLabels(series, sourceIndices2, catCount, layout, ra
|
|
|
88492
88578
|
x,
|
|
88493
88579
|
y: labelY,
|
|
88494
88580
|
text: formatAxisValue2(val2, series[si].numberFormat),
|
|
88495
|
-
fontSize:
|
|
88581
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88496
88582
|
fill: "#334155",
|
|
88497
88583
|
textAnchor: "middle"
|
|
88498
88584
|
});
|
|
@@ -88778,7 +88864,7 @@ function buildLines(chartData, catCount, layout, primaryRange, secondaryRange, s
|
|
|
88778
88864
|
x: pt.x,
|
|
88779
88865
|
y: pt.y - 7,
|
|
88780
88866
|
text: formatAxisValue2(val2, series.numberFormat),
|
|
88781
|
-
fontSize:
|
|
88867
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88782
88868
|
fill: "#334155",
|
|
88783
88869
|
textAnchor: "middle"
|
|
88784
88870
|
});
|
|
@@ -88850,7 +88936,7 @@ function buildAreas(chartData, catCount, layout, range, sourceIndices2, xPositio
|
|
|
88850
88936
|
x: pt.x,
|
|
88851
88937
|
y: pt.y - 6,
|
|
88852
88938
|
text: formatAxisValue2(val2, series.numberFormat),
|
|
88853
|
-
fontSize:
|
|
88939
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88854
88940
|
fill: "#334155",
|
|
88855
88941
|
textAnchor: "middle"
|
|
88856
88942
|
});
|
|
@@ -88895,7 +88981,7 @@ function buildScatter(chartData, layout, range) {
|
|
|
88895
88981
|
x: dot.cx,
|
|
88896
88982
|
y: dot.cy - 6,
|
|
88897
88983
|
text: formatAxisValue2(val2, series.numberFormat),
|
|
88898
|
-
fontSize:
|
|
88984
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88899
88985
|
fill: "#334155",
|
|
88900
88986
|
textAnchor: "middle"
|
|
88901
88987
|
});
|
|
@@ -88942,7 +89028,7 @@ function buildBubbles(chartData, layout, range) {
|
|
|
88942
89028
|
x: dot.cx,
|
|
88943
89029
|
y: dot.cy - 10,
|
|
88944
89030
|
text: formatAxisValue2(val2, series.numberFormat),
|
|
88945
|
-
fontSize:
|
|
89031
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
88946
89032
|
fill: "#334155",
|
|
88947
89033
|
textAnchor: "middle"
|
|
88948
89034
|
});
|
|
@@ -89092,7 +89178,8 @@ function buildMultiLevelCategoryLabels(categoryLabels, categoryLevels, sourceInd
|
|
|
89092
89178
|
const skip = Math.max(1, axis?.tickLabelSkip ?? 1);
|
|
89093
89179
|
const textAnchor = axis?.labelAlignment === "l" ? "start" : axis?.labelAlignment === "r" ? "end" : "middle";
|
|
89094
89180
|
const direction = labelsAbove ? -1 : 1;
|
|
89095
|
-
const
|
|
89181
|
+
const fontPx = axis?.fontSize !== void 0 ? chartFontPx(axis.fontSize) : DEFAULT_CHART_TEXT_PX;
|
|
89182
|
+
const bandHeight = Math.max(fontPx, 8) + 4;
|
|
89096
89183
|
return levels.flatMap((level, levelIndex) => {
|
|
89097
89184
|
const values = sourceIndices2.map((sourceIndex) => level[sourceIndex] ?? "");
|
|
89098
89185
|
return groupedLabels(values).flatMap((group2) => {
|
|
@@ -89827,7 +89914,7 @@ function computeTrendlinePrimitives(chartData, catCount, layout, range, mode = "
|
|
|
89827
89914
|
x: last.x,
|
|
89828
89915
|
y: last.y - 6,
|
|
89829
89916
|
text: labelParts.join(" "),
|
|
89830
|
-
fontSize:
|
|
89917
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
89831
89918
|
fill: strokeColor,
|
|
89832
89919
|
textAnchor: "end"
|
|
89833
89920
|
};
|
|
@@ -89844,6 +89931,7 @@ function computeAxisTitlePrimitives(chartData, layout) {
|
|
|
89844
89931
|
if (!axes || axes.length === 0) {
|
|
89845
89932
|
return out;
|
|
89846
89933
|
}
|
|
89934
|
+
const titleFontPx = (axis) => axis.fontSize !== void 0 ? chartFontPx(axis.fontSize) : DEFAULT_CHART_TEXT_PX;
|
|
89847
89935
|
const catAxis = axes.find((a) => a.axisType === "catAx" && a.axPos !== "r" && a.titleText);
|
|
89848
89936
|
if (catAxis?.titleText) {
|
|
89849
89937
|
const xTitle = {
|
|
@@ -89851,7 +89939,7 @@ function computeAxisTitlePrimitives(chartData, layout) {
|
|
|
89851
89939
|
x: layout.plotLeft + layout.plotWidth / 2,
|
|
89852
89940
|
y: layout.plotBottom + 22,
|
|
89853
89941
|
text: catAxis.titleText,
|
|
89854
|
-
fontSize:
|
|
89942
|
+
fontSize: titleFontPx(catAxis),
|
|
89855
89943
|
fill: AXIS_TITLE_COLOR,
|
|
89856
89944
|
textAnchor: "middle",
|
|
89857
89945
|
fontWeight: "bold"
|
|
@@ -89867,7 +89955,7 @@ function computeAxisTitlePrimitives(chartData, layout) {
|
|
|
89867
89955
|
x: yx,
|
|
89868
89956
|
y: yy,
|
|
89869
89957
|
text: valAxis.titleText,
|
|
89870
|
-
fontSize:
|
|
89958
|
+
fontSize: titleFontPx(valAxis),
|
|
89871
89959
|
fill: AXIS_TITLE_COLOR,
|
|
89872
89960
|
textAnchor: "middle",
|
|
89873
89961
|
fontWeight: "bold",
|
|
@@ -90352,7 +90440,7 @@ function buildComboViewModel(element, chartData, categoryLabels) {
|
|
|
90352
90440
|
x: point.x,
|
|
90353
90441
|
y: point.y - 7,
|
|
90354
90442
|
text: formatAxisValue2(point.value, series.numberFormat),
|
|
90355
|
-
fontSize:
|
|
90443
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
90356
90444
|
fill: "#334155",
|
|
90357
90445
|
textAnchor: "middle"
|
|
90358
90446
|
});
|
|
@@ -90407,7 +90495,7 @@ function appendBarLabels(series, chartData, layout, catCount, range, sourceIndic
|
|
|
90407
90495
|
x: xPositions?.[displayIndex] ?? layout.plotLeft + groupWidth * displayIndex + offset + barWidth / 2,
|
|
90408
90496
|
y: value >= 0 ? Math.min(zeroY, valueY) - 4 : Math.max(zeroY, valueY) + 10,
|
|
90409
90497
|
text: formatAxisValue2(value, series.numberFormat),
|
|
90410
|
-
fontSize:
|
|
90498
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
90411
90499
|
fill: "#334155",
|
|
90412
90500
|
textAnchor: "middle"
|
|
90413
90501
|
});
|
|
@@ -90508,7 +90596,7 @@ function buildStockViewModel(element, chartData, categoryLabels) {
|
|
|
90508
90596
|
x: cx,
|
|
90509
90597
|
y: highY - 4,
|
|
90510
90598
|
text: formatAxisValue2(close),
|
|
90511
|
-
fontSize:
|
|
90599
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
90512
90600
|
fill: "#334155",
|
|
90513
90601
|
textAnchor: "middle"
|
|
90514
90602
|
});
|
|
@@ -90953,7 +91041,7 @@ function buildHistogramViewModel(element, chartData, categoryLabels) {
|
|
|
90953
91041
|
x: bar.x + bar.w / 2,
|
|
90954
91042
|
y: bar.y - 4,
|
|
90955
91043
|
text: formatAxisValue2(values[index]),
|
|
90956
|
-
fontSize:
|
|
91044
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
90957
91045
|
fill: DATA_LABEL_COLOR,
|
|
90958
91046
|
textAnchor: "middle"
|
|
90959
91047
|
})) : [];
|
|
@@ -91262,8 +91350,8 @@ function sliceAngles(values) {
|
|
|
91262
91350
|
});
|
|
91263
91351
|
}
|
|
91264
91352
|
function computeOfPieGeom(element, secondPieSize) {
|
|
91265
|
-
const svgWidth = Math.max(element.width,
|
|
91266
|
-
const svgHeight = Math.max(element.height,
|
|
91353
|
+
const svgWidth = Math.max(element.width, 1);
|
|
91354
|
+
const svgHeight = Math.max(element.height, 1);
|
|
91267
91355
|
const primaryR = Math.max(Math.min(svgWidth * 0.28, svgHeight * 0.4), 4);
|
|
91268
91356
|
const secScale = Math.min(Math.max(secondPieSize / 100, 0.3), 1.4);
|
|
91269
91357
|
return {
|
|
@@ -91283,7 +91371,7 @@ function sliceLabel(x, y, value) {
|
|
|
91283
91371
|
x,
|
|
91284
91372
|
y,
|
|
91285
91373
|
text: formatAxisValue2(value),
|
|
91286
|
-
fontSize:
|
|
91374
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
91287
91375
|
fill: "#ffffff",
|
|
91288
91376
|
textAnchor: "middle",
|
|
91289
91377
|
fontWeight: "bold",
|
|
@@ -91458,7 +91546,7 @@ function buildPieDataLabels(params) {
|
|
|
91458
91546
|
x: slice.labelX,
|
|
91459
91547
|
y: slice.labelY,
|
|
91460
91548
|
text: formatAxisValue2(val2, numberFormat),
|
|
91461
|
-
fontSize:
|
|
91549
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
91462
91550
|
fill: "#ffffff",
|
|
91463
91551
|
textAnchor: "middle",
|
|
91464
91552
|
fontWeight: "bold",
|
|
@@ -91478,7 +91566,7 @@ function buildPieDataLabels(params) {
|
|
|
91478
91566
|
x: labelX + (cos >= 0 ? 2 : -2),
|
|
91479
91567
|
y: labelY,
|
|
91480
91568
|
text: formatAxisValue2(val2, numberFormat),
|
|
91481
|
-
fontSize:
|
|
91569
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
91482
91570
|
fill: "#334155",
|
|
91483
91571
|
textAnchor: anchor,
|
|
91484
91572
|
dominantBaseline: "central"
|
|
@@ -91902,7 +91990,8 @@ function textPrimitives(shape, box) {
|
|
|
91902
91990
|
if (!shape.paragraphs || shape.paragraphs.length === 0) {
|
|
91903
91991
|
return [];
|
|
91904
91992
|
}
|
|
91905
|
-
const
|
|
91993
|
+
const fontPxOf = (para) => para.fontSize !== void 0 ? chartFontPx(para.fontSize) : DEFAULT_CHART_TEXT_PX;
|
|
91994
|
+
const lineH = Math.max(12, ...shape.paragraphs.map((para) => fontPxOf(para) * 1.2));
|
|
91906
91995
|
const totalH = shape.paragraphs.length * lineH;
|
|
91907
91996
|
let cursorY = box.y + Math.max((box.h - totalH) / 2, 0) + lineH * 0.75;
|
|
91908
91997
|
const out = [];
|
|
@@ -91919,7 +92008,7 @@ function textPrimitives(shape, box) {
|
|
|
91919
92008
|
x: tx,
|
|
91920
92009
|
y: cursorY,
|
|
91921
92010
|
text: para.text,
|
|
91922
|
-
fontSize: para
|
|
92011
|
+
fontSize: fontPxOf(para),
|
|
91923
92012
|
fill: para.color ?? "#1e293b",
|
|
91924
92013
|
textAnchor: anchor,
|
|
91925
92014
|
fontWeight: para.bold ? "bold" : "normal"
|
|
@@ -92115,7 +92204,7 @@ function buildWaterfallViewModel(element, chartData, categoryLabels) {
|
|
|
92115
92204
|
x: x + barWidth / 2,
|
|
92116
92205
|
y: y - 4,
|
|
92117
92206
|
text: formatAxisValue2(value),
|
|
92118
|
-
fontSize:
|
|
92207
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
92119
92208
|
fill: "#334155",
|
|
92120
92209
|
textAnchor: "middle"
|
|
92121
92210
|
});
|
|
@@ -92437,8 +92526,8 @@ function regionViewBounds(viewedRegionType, regionValues) {
|
|
|
92437
92526
|
};
|
|
92438
92527
|
}
|
|
92439
92528
|
function buildRegionMapViewModel(element, chartData, categoryLabels) {
|
|
92440
|
-
const svgWidth = Math.max(element.width,
|
|
92441
|
-
const svgHeight = Math.max(element.height,
|
|
92529
|
+
const svgWidth = Math.max(element.width, 1);
|
|
92530
|
+
const svgHeight = Math.max(element.height, 1);
|
|
92442
92531
|
const categories = categoryLabels.length > 0 ? categoryLabels : chartData.categories;
|
|
92443
92532
|
const series = chartData.series[0];
|
|
92444
92533
|
const options = series?.regionMapOptions;
|
|
@@ -92800,8 +92889,8 @@ function formatAxisValue2(val2, formatCode) {
|
|
|
92800
92889
|
return val2.toFixed(1);
|
|
92801
92890
|
}
|
|
92802
92891
|
function computePlotLayout(elementWidth, elementHeight, chartData, hasAxes, options) {
|
|
92803
|
-
const svgWidth = Math.max(
|
|
92804
|
-
const svgHeight = Math.max(
|
|
92892
|
+
const svgWidth = Math.max(1, elementWidth);
|
|
92893
|
+
const svgHeight = Math.max(1, elementHeight);
|
|
92805
92894
|
let plotLeft = hasAxes ? 48 : 8;
|
|
92806
92895
|
let plotTop = 8;
|
|
92807
92896
|
let plotRight = svgWidth - 8;
|
|
@@ -92881,7 +92970,7 @@ function buildGridlinesAndLabels(range, layout) {
|
|
|
92881
92970
|
x: layout.plotLeft - 4,
|
|
92882
92971
|
y,
|
|
92883
92972
|
text: formatAxisValue2(val2),
|
|
92884
|
-
fontSize:
|
|
92973
|
+
fontSize: DEFAULT_CHART_TEXT_PX,
|
|
92885
92974
|
fill: AXIS_LABEL_COLOR,
|
|
92886
92975
|
textAnchor: "end",
|
|
92887
92976
|
dominantBaseline: "central"
|
|
@@ -92913,7 +93002,7 @@ function buildCategoryLabels(categoryLabels, layout, catSpacing) {
|
|
|
92913
93002
|
x,
|
|
92914
93003
|
y: layout.plotBottom + 12,
|
|
92915
93004
|
text: label,
|
|
92916
|
-
fontSize:
|
|
93005
|
+
fontSize: DEFAULT_CHART_TEXT_PX,
|
|
92917
93006
|
fill: AXIS_LABEL_COLOR,
|
|
92918
93007
|
textAnchor: "middle"
|
|
92919
93008
|
};
|
|
@@ -93258,8 +93347,8 @@ function buildFlatViewModel(element, chartData, categoryLabels, kind) {
|
|
|
93258
93347
|
return buildCartesianViewModel(element, chartData, categoryLabels, kind);
|
|
93259
93348
|
}
|
|
93260
93349
|
function buildFallbackViewModel(width, height, label) {
|
|
93261
|
-
const svgWidth = Math.max(width,
|
|
93262
|
-
const svgHeight = Math.max(height,
|
|
93350
|
+
const svgWidth = Math.max(width, 1);
|
|
93351
|
+
const svgHeight = Math.max(height, 1);
|
|
93263
93352
|
return {
|
|
93264
93353
|
svgWidth,
|
|
93265
93354
|
svgHeight,
|
|
@@ -93413,7 +93502,7 @@ function buildRadarViewModel(element, chartData, categoryLabels) {
|
|
|
93413
93502
|
x: cx + labelR * Math.cos(angle),
|
|
93414
93503
|
y: cy + labelR * Math.sin(angle),
|
|
93415
93504
|
text: categoryLabels[i] ?? "",
|
|
93416
|
-
fontSize:
|
|
93505
|
+
fontSize: DEFAULT_CHART_TEXT_PX,
|
|
93417
93506
|
fill: RADAR_LABEL_COLOR,
|
|
93418
93507
|
textAnchor: "middle",
|
|
93419
93508
|
dominantBaseline: "central"
|
|
@@ -93457,7 +93546,7 @@ function buildRadarViewModel(element, chartData, categoryLabels) {
|
|
|
93457
93546
|
x: p.x,
|
|
93458
93547
|
y: p.y - 8,
|
|
93459
93548
|
text: formatAxisValue2(val2, series.numberFormat),
|
|
93460
|
-
fontSize:
|
|
93549
|
+
fontSize: DEFAULT_CHART_DATA_LABEL_PX,
|
|
93461
93550
|
fill: "#334155",
|
|
93462
93551
|
textAnchor: "middle"
|
|
93463
93552
|
});
|
|
@@ -102352,6 +102441,10 @@ var SCALAR_ELEMENT_KEYS = /* @__PURE__ */ new Set([
|
|
|
102352
102441
|
"cropTop",
|
|
102353
102442
|
"cropRight",
|
|
102354
102443
|
"cropBottom",
|
|
102444
|
+
"fillRectLeft",
|
|
102445
|
+
"fillRectTop",
|
|
102446
|
+
"fillRectRight",
|
|
102447
|
+
"fillRectBottom",
|
|
102355
102448
|
"tileOffsetX",
|
|
102356
102449
|
"tileOffsetY",
|
|
102357
102450
|
"tileScaleX",
|
|
@@ -103966,9 +104059,16 @@ var CINEMATIC_TRANSITION_KEYFRAMES = `
|
|
|
103966
104059
|
/* \u2500\u2500 Airplane (fly off like a paper plane) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
103967
104060
|
@keyframes pptx-tr-airplane-out { 0% { transform: perspective(1200px) translate3d(0, 0, 0) rotate3d(1, -1, 0, 0deg) scale(1); opacity: 1; } 40% { transform: perspective(1200px) translate3d(10%, -10%, 0) rotate3d(1, -1, 0, 25deg) scale(.85); opacity: 1; } 100% { transform: perspective(1200px) translate3d(150%, -70%, 0) rotate3d(1, -1, 1, 70deg) scale(.05); opacity: 0; } }
|
|
103968
104061
|
|
|
103969
|
-
/* \u2500\u2500 Origami (fold
|
|
103970
|
-
|
|
103971
|
-
|
|
104062
|
+
/* \u2500\u2500 Origami (fold the sheet over its top edge; the next unfolds up) \u2500\u2500
|
|
104063
|
+
The old single-phase rotateY + scaleX compressed the outgoing slide into a
|
|
104064
|
+
narrow vertical sliver for most of the (3+ second) duration, which read as
|
|
104065
|
+
"just a grey line" instead of paper folding (issue #132). The fold is now
|
|
104066
|
+
hinged like a real sheet: the outgoing slide creases over its TOP edge,
|
|
104067
|
+
dims as it tips through edge-on, and tumbles away shrinking; the incoming
|
|
104068
|
+
slide lies folded at its BOTTOM edge and rises into place. The edge-on
|
|
104069
|
+
moment is brief and already mid-fade, so no line artifact survives. */
|
|
104070
|
+
@keyframes pptx-tr-origami-out { 0% { transform: perspective(1400px) rotateX(0deg) translateY(0) scale(1); transform-origin: top center; opacity: 1; filter: brightness(1); } 45% { transform: perspective(1400px) rotateX(-52deg) translateY(2%) scale(.96); transform-origin: top center; opacity: 1; filter: brightness(.82); } 70% { transform: perspective(1400px) rotateX(-84deg) translateY(8%) scale(.88); transform-origin: top center; opacity: .8; filter: brightness(.68); } 100% { transform: perspective(1400px) rotateX(-125deg) translateY(30%) scale(.68); transform-origin: top center; opacity: 0; filter: brightness(.55); } }
|
|
104071
|
+
@keyframes pptx-tr-origami-in { 0% { transform: perspective(1400px) rotateX(62deg) scale(.94); transform-origin: bottom center; opacity: 0; filter: brightness(.7); } 30% { transform: perspective(1400px) rotateX(62deg) scale(.94); transform-origin: bottom center; opacity: .65; filter: brightness(.75); } 100% { transform: perspective(1400px) rotateX(0deg) scale(1); transform-origin: bottom center; opacity: 1; filter: brightness(1); } }
|
|
103972
104072
|
`;
|
|
103973
104073
|
var CORE_SLIDE_TRANSITION_KEYFRAMES = `
|
|
103974
104074
|
/* \u2500\u2500 Fade \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
@@ -110752,8 +110852,14 @@ function attachPresentationVisibilityPause(options = {}) {
|
|
|
110752
110852
|
}
|
|
110753
110853
|
const root = options.root ?? document;
|
|
110754
110854
|
let pausedMedia = [];
|
|
110755
|
-
|
|
110756
|
-
|
|
110855
|
+
let suspended = false;
|
|
110856
|
+
const update = () => {
|
|
110857
|
+
const shouldSuspend = document.visibilityState === "hidden" || !document.hasFocus();
|
|
110858
|
+
if (shouldSuspend === suspended) {
|
|
110859
|
+
return;
|
|
110860
|
+
}
|
|
110861
|
+
suspended = shouldSuspend;
|
|
110862
|
+
if (shouldSuspend) {
|
|
110757
110863
|
pausedMedia = [];
|
|
110758
110864
|
for (const media of root.querySelectorAll("audio, video")) {
|
|
110759
110865
|
if (!media.paused && !media.ended) {
|
|
@@ -110775,9 +110881,13 @@ function attachPresentationVisibilityPause(options = {}) {
|
|
|
110775
110881
|
resumeAllPersistentAudio();
|
|
110776
110882
|
options.onVisible?.();
|
|
110777
110883
|
};
|
|
110778
|
-
document.addEventListener("visibilitychange",
|
|
110884
|
+
document.addEventListener("visibilitychange", update);
|
|
110885
|
+
window.addEventListener("blur", update);
|
|
110886
|
+
window.addEventListener("focus", update);
|
|
110779
110887
|
return () => {
|
|
110780
|
-
document.removeEventListener("visibilitychange",
|
|
110888
|
+
document.removeEventListener("visibilitychange", update);
|
|
110889
|
+
window.removeEventListener("blur", update);
|
|
110890
|
+
window.removeEventListener("focus", update);
|
|
110781
110891
|
};
|
|
110782
110892
|
}
|
|
110783
110893
|
function buildSummaryZoomView(element, lookup) {
|
|
Binary file
|
|
Binary file
|