pptx-react-viewer 1.25.4 → 1.25.5
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 +2 -0
- package/dist/{Model3DScene-DZFYJPUH.mjs → Model3DScene-XVYOISVJ.mjs} +2 -2
- package/dist/Model3DScene-XVYOISVJ.mjs.br +0 -0
- package/dist/Model3DScene-XVYOISVJ.mjs.gz +0 -0
- package/dist/{Model3DScene-SP6WOKSX.js → Model3DScene-Y5ABLO7K.js} +3 -3
- package/dist/Model3DScene-Y5ABLO7K.js.br +0 -0
- package/dist/Model3DScene-Y5ABLO7K.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-54BRNPQ5.mjs → SurfaceChart3DScene-RXZADECL.mjs} +2 -2
- package/dist/SurfaceChart3DScene-RXZADECL.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-RXZADECL.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-GISPZ4C2.js → SurfaceChart3DScene-WMY5JTW4.js} +3 -3
- package/dist/SurfaceChart3DScene-WMY5JTW4.js.br +0 -0
- package/dist/SurfaceChart3DScene-WMY5JTW4.js.gz +0 -0
- package/dist/{chunk-5VYVKFMS.js → chunk-7CSBUYRN.js} +808 -808
- package/dist/chunk-7CSBUYRN.js.br +0 -0
- package/dist/chunk-7CSBUYRN.js.gz +0 -0
- package/dist/{chunk-7FE27DDH.js → chunk-E55Q4AC7.js} +556 -476
- package/dist/chunk-E55Q4AC7.js.br +0 -0
- package/dist/chunk-E55Q4AC7.js.gz +0 -0
- package/dist/{chunk-P72VQ7WE.mjs → chunk-F4WPQRZU.mjs} +96 -16
- package/dist/chunk-F4WPQRZU.mjs.br +0 -0
- package/dist/chunk-F4WPQRZU.mjs.gz +0 -0
- package/dist/{chunk-UYNOPUSG.mjs → chunk-FOMF7POV.mjs} +1658 -353
- package/dist/chunk-FOMF7POV.mjs.br +0 -0
- package/dist/chunk-FOMF7POV.mjs.gz +0 -0
- package/dist/{chunk-VUC3UPLM.mjs → chunk-FVQDRA5N.mjs} +1044 -108
- package/dist/chunk-FVQDRA5N.mjs.br +0 -0
- package/dist/chunk-FVQDRA5N.mjs.gz +0 -0
- package/dist/{chunk-FWF2SP6N.js → chunk-IPYAN574.js} +1660 -352
- package/dist/chunk-IPYAN574.js.br +0 -0
- package/dist/chunk-IPYAN574.js.gz +0 -0
- package/dist/{chunk-TPG2WKHQ.mjs → chunk-L4ZADJOM.mjs} +6 -6
- package/dist/chunk-L4ZADJOM.mjs.br +0 -0
- package/dist/chunk-L4ZADJOM.mjs.gz +0 -0
- package/dist/{chunk-6F4WVHS3.js → chunk-TEN35NUX.js} +1077 -141
- package/dist/chunk-TEN35NUX.js.br +0 -0
- package/dist/chunk-TEN35NUX.js.gz +0 -0
- package/dist/{dist-QU6JIDAF.js → dist-755SJ3ZH.js} +574 -562
- package/dist/dist-755SJ3ZH.js.br +0 -0
- package/dist/dist-755SJ3ZH.js.gz +0 -0
- package/dist/dist-FFWP5NQZ.mjs +2 -0
- package/dist/dist-FFWP5NQZ.mjs.br +0 -0
- package/dist/dist-FFWP5NQZ.mjs.gz +0 -0
- package/dist/hooks-unstable.d.ts +243 -4
- package/dist/hooks-unstable.d.ts.map +1 -1
- package/dist/hooks-unstable.js +78 -78
- package/dist/hooks-unstable.js.br +0 -0
- package/dist/hooks-unstable.js.gz +0 -0
- package/dist/hooks-unstable.mjs +3 -3
- package/dist/hooks-unstable.mjs.br +0 -0
- package/dist/hooks-unstable.mjs.gz +0 -0
- package/dist/{index-DWvM1PBB.d.ts → index-J6IuHQ2_.d.ts} +21 -4
- package/dist/index-J6IuHQ2_.d.ts.map +1 -0
- package/dist/index.d.ts +223 -1
- package/dist/index.js +33 -33
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +4 -4
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/viewer/index.d.ts +223 -1
- package/dist/viewer/index.js +20 -20
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +4 -4
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/Model3DScene-DZFYJPUH.mjs.br +0 -0
- package/dist/Model3DScene-DZFYJPUH.mjs.gz +0 -0
- package/dist/Model3DScene-SP6WOKSX.js.br +0 -0
- package/dist/Model3DScene-SP6WOKSX.js.gz +0 -0
- package/dist/SurfaceChart3DScene-54BRNPQ5.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-54BRNPQ5.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-GISPZ4C2.js.br +0 -0
- package/dist/SurfaceChart3DScene-GISPZ4C2.js.gz +0 -0
- package/dist/chunk-5VYVKFMS.js.br +0 -0
- package/dist/chunk-5VYVKFMS.js.gz +0 -0
- package/dist/chunk-6F4WVHS3.js.br +0 -0
- package/dist/chunk-6F4WVHS3.js.gz +0 -0
- package/dist/chunk-7FE27DDH.js.br +0 -0
- package/dist/chunk-7FE27DDH.js.gz +0 -0
- package/dist/chunk-FWF2SP6N.js.br +0 -0
- package/dist/chunk-FWF2SP6N.js.gz +0 -0
- package/dist/chunk-P72VQ7WE.mjs.br +0 -0
- package/dist/chunk-P72VQ7WE.mjs.gz +0 -0
- package/dist/chunk-TPG2WKHQ.mjs.br +0 -0
- package/dist/chunk-TPG2WKHQ.mjs.gz +0 -0
- package/dist/chunk-UYNOPUSG.mjs.br +0 -0
- package/dist/chunk-UYNOPUSG.mjs.gz +0 -0
- package/dist/chunk-VUC3UPLM.mjs.br +0 -0
- package/dist/chunk-VUC3UPLM.mjs.gz +0 -0
- package/dist/dist-QNYKM7YS.mjs +0 -2
- package/dist/dist-QNYKM7YS.mjs.br +0 -0
- package/dist/dist-QNYKM7YS.mjs.gz +0 -0
- package/dist/dist-QU6JIDAF.js.br +0 -0
- package/dist/dist-QU6JIDAF.js.gz +0 -0
- package/dist/index-DWvM1PBB.d.ts.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkIPYAN574_js = require('./chunk-IPYAN574.js');
|
|
4
4
|
var DOMPurify = require('dompurify');
|
|
5
5
|
|
|
6
6
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -307,7 +307,7 @@ function buildInitialGuides(presentationGuides, firstSlideGuides) {
|
|
|
307
307
|
guides.push({
|
|
308
308
|
id: g.id,
|
|
309
309
|
axis: g.orientation === "horz" ? "h" : "v",
|
|
310
|
-
position:
|
|
310
|
+
position: chunkIPYAN574_js.guideEmuToPx(g.positionEmu)
|
|
311
311
|
});
|
|
312
312
|
}
|
|
313
313
|
}
|
|
@@ -316,7 +316,7 @@ function buildInitialGuides(presentationGuides, firstSlideGuides) {
|
|
|
316
316
|
guides.push({
|
|
317
317
|
id: g.id,
|
|
318
318
|
axis: g.orientation === "horz" ? "h" : "v",
|
|
319
|
-
position:
|
|
319
|
+
position: chunkIPYAN574_js.guideEmuToPx(g.positionEmu)
|
|
320
320
|
});
|
|
321
321
|
}
|
|
322
322
|
}
|
|
@@ -329,23 +329,23 @@ function getResolvedShapeClipPathFor(shapeType, width, height, adjustments) {
|
|
|
329
329
|
return void 0;
|
|
330
330
|
}
|
|
331
331
|
if (!Number.isFinite(width) || !Number.isFinite(height) || width <= 0 || height <= 0) {
|
|
332
|
-
return
|
|
332
|
+
return chunkIPYAN574_js.getShapeClipPath(shapeType);
|
|
333
333
|
}
|
|
334
334
|
if (adjustments && Object.keys(adjustments).length > 0) {
|
|
335
|
-
const adjusted =
|
|
335
|
+
const adjusted = chunkIPYAN574_js.getAdjustmentAwareShapeClipPath(shapeType, width, height, adjustments);
|
|
336
336
|
if (adjusted !== void 0) {
|
|
337
337
|
return adjusted;
|
|
338
338
|
}
|
|
339
339
|
}
|
|
340
|
-
const fromPreset =
|
|
340
|
+
const fromPreset = chunkIPYAN574_js.getShapeClipPathFromPreset(shapeType, width, height, adjustments);
|
|
341
341
|
if (fromPreset !== void 0) {
|
|
342
342
|
return fromPreset;
|
|
343
343
|
}
|
|
344
|
-
const cloud =
|
|
344
|
+
const cloud = chunkIPYAN574_js.getCloudPathForRendering(shapeType, width, height);
|
|
345
345
|
if (cloud !== void 0) {
|
|
346
346
|
return cloud;
|
|
347
347
|
}
|
|
348
|
-
return
|
|
348
|
+
return chunkIPYAN574_js.getShapeClipPath(shapeType);
|
|
349
349
|
}
|
|
350
350
|
function buildCustomGeometryClipPath(pathData, pathWidth, pathHeight, elemWidth, elemHeight) {
|
|
351
351
|
if (!pathData || !Number.isFinite(pathWidth) || !Number.isFinite(pathHeight) || pathWidth <= 0 || pathHeight <= 0 || !Number.isFinite(elemWidth) || !Number.isFinite(elemHeight) || elemWidth <= 0 || elemHeight <= 0) {
|
|
@@ -562,7 +562,27 @@ function buildReflectedGradientStops(stops) {
|
|
|
562
562
|
}));
|
|
563
563
|
return [...forward, ...reversed];
|
|
564
564
|
}
|
|
565
|
-
function
|
|
565
|
+
function normalizeDegrees(deg) {
|
|
566
|
+
return (deg % 360 + 360) % 360;
|
|
567
|
+
}
|
|
568
|
+
function adjustLinearGradientAngle(angle, gradient, context) {
|
|
569
|
+
if (!context) {
|
|
570
|
+
return angle;
|
|
571
|
+
}
|
|
572
|
+
let result = angle;
|
|
573
|
+
const { width, height, rotation } = context;
|
|
574
|
+
if (gradient.fillGradientScaled !== false && typeof width === "number" && typeof height === "number" && width > 0 && height > 0 && width !== height) {
|
|
575
|
+
const rad = result * Math.PI / 180;
|
|
576
|
+
result = normalizeDegrees(
|
|
577
|
+
Math.atan2(height * Math.sin(rad), width * Math.cos(rad)) * 180 / Math.PI
|
|
578
|
+
);
|
|
579
|
+
}
|
|
580
|
+
if (gradient.fillGradientRotWithShape === false && typeof rotation === "number") {
|
|
581
|
+
result = normalizeDegrees(result - rotation);
|
|
582
|
+
}
|
|
583
|
+
return result;
|
|
584
|
+
}
|
|
585
|
+
function buildGradientCss(gradient, context) {
|
|
566
586
|
if (!gradient || gradient.fillMode !== "gradient") {
|
|
567
587
|
return void 0;
|
|
568
588
|
}
|
|
@@ -584,9 +604,10 @@ function buildGradientCss(gradient) {
|
|
|
584
604
|
return buildCirclePathGradient(stops, fp, ftr);
|
|
585
605
|
}
|
|
586
606
|
const normalizedAngle = typeof gradient.fillGradientAngle === "number" && Number.isFinite(gradient.fillGradientAngle) ? gradient.fillGradientAngle : 90;
|
|
607
|
+
const effectiveAngle = adjustLinearGradientAngle(normalizedAngle, gradient, context);
|
|
587
608
|
const flip = gradient.fillGradientFlip;
|
|
588
609
|
const linearStops = flip && flip !== "none" ? buildReflectedGradientStops(stops) : stops;
|
|
589
|
-
return `linear-gradient(${Math.round(
|
|
610
|
+
return `linear-gradient(${Math.round(effectiveAngle)}deg, ${linearStops.map(toCssGradientStop).join(", ")})`;
|
|
590
611
|
}
|
|
591
612
|
var buildCssGradientFromShapeStyle = buildGradientCss;
|
|
592
613
|
function getPatternSvg(preset, fg, bg) {
|
|
@@ -1117,7 +1138,7 @@ var DEFAULT_SCHEME_COLOR_MAP = {
|
|
|
1117
1138
|
phclr: "#4472C4"
|
|
1118
1139
|
};
|
|
1119
1140
|
function applyDrawingColorTransforms2(baseColor, colorNode) {
|
|
1120
|
-
return
|
|
1141
|
+
return chunkIPYAN574_js.applyDrawingColorTransforms(baseColor, colorNode);
|
|
1121
1142
|
}
|
|
1122
1143
|
function parseDrawingColorChoice(colorNode, schemeColorOverrides) {
|
|
1123
1144
|
if (!colorNode) {
|
|
@@ -1169,7 +1190,7 @@ function parseDrawingColorChoice(colorNode, schemeColorOverrides) {
|
|
|
1169
1190
|
const h = hueRaw / 6e4;
|
|
1170
1191
|
const s = clampUnitInterval(satRaw / 1e5);
|
|
1171
1192
|
const l = clampUnitInterval(lumRaw / 1e5);
|
|
1172
|
-
const rgb =
|
|
1193
|
+
const rgb = chunkIPYAN574_js.hslToRgb(h, s, l);
|
|
1173
1194
|
const toHex = (value) => Math.min(255, Math.max(0, Math.round(value))).toString(16).padStart(2, "0").toUpperCase();
|
|
1174
1195
|
const base = `#${toHex(rgb.r)}${toHex(rgb.g)}${toHex(rgb.b)}`;
|
|
1175
1196
|
return applyDrawingColorTransforms2(base, hslNode);
|
|
@@ -1179,7 +1200,7 @@ function parseDrawingColorChoice(colorNode, schemeColorOverrides) {
|
|
|
1179
1200
|
const preset = String(
|
|
1180
1201
|
colorNode["a:prstClr"]?.["@_val"] || ""
|
|
1181
1202
|
).toLowerCase();
|
|
1182
|
-
const mapped =
|
|
1203
|
+
const mapped = chunkIPYAN574_js.PRESET_COLOR_MAP[preset];
|
|
1183
1204
|
if (!mapped) {
|
|
1184
1205
|
return void 0;
|
|
1185
1206
|
}
|
|
@@ -1534,7 +1555,7 @@ function hexToRgbUnit2(hex) {
|
|
|
1534
1555
|
};
|
|
1535
1556
|
}
|
|
1536
1557
|
function getEffects(element) {
|
|
1537
|
-
if (!
|
|
1558
|
+
if (!chunkIPYAN574_js.isImageLikeElement(element)) {
|
|
1538
1559
|
return void 0;
|
|
1539
1560
|
}
|
|
1540
1561
|
return element.imageEffects;
|
|
@@ -1723,7 +1744,7 @@ function buildDuotoneFilterMarkup(color1, color2) {
|
|
|
1723
1744
|
const c2 = hexToRgbUnit2(color2);
|
|
1724
1745
|
return `<feColorMatrix type="matrix" values="${GRAYSCALE_LUMINANCE_MATRIX}"/><feComponentTransfer><feFuncR type="linear" slope="${c2.r - c1.r}" intercept="${c1.r}"/><feFuncG type="linear" slope="${c2.g - c1.g}" intercept="${c1.g}"/><feFuncB type="linear" slope="${c2.b - c1.b}" intercept="${c1.b}"/></feComponentTransfer>`;
|
|
1725
1746
|
}
|
|
1726
|
-
function getDuotoneImageFilter(element, elementId =
|
|
1747
|
+
function getDuotoneImageFilter(element, elementId = chunkIPYAN574_js.isImageLikeElement(element) ? element.id : "") {
|
|
1727
1748
|
const effects = getEffects(element);
|
|
1728
1749
|
if (!effects?.duotone) {
|
|
1729
1750
|
return void 0;
|
|
@@ -1825,7 +1846,7 @@ function buildImageAlphaFilterMarkup(effects) {
|
|
|
1825
1846
|
}
|
|
1826
1847
|
return parts.length > 0 ? parts.join("") : void 0;
|
|
1827
1848
|
}
|
|
1828
|
-
function getImageAlphaFilter(element, elementId =
|
|
1849
|
+
function getImageAlphaFilter(element, elementId = chunkIPYAN574_js.isImageLikeElement(element) ? element.id : "") {
|
|
1829
1850
|
const effects = getEffects(element);
|
|
1830
1851
|
if (!effects || !hasAdvancedImageAlphaEffects(element)) {
|
|
1831
1852
|
return void 0;
|
|
@@ -1915,7 +1936,7 @@ function buildArtisticFilterMarkup(effectName, radius) {
|
|
|
1915
1936
|
return void 0;
|
|
1916
1937
|
}
|
|
1917
1938
|
}
|
|
1918
|
-
function getArtisticImageFilter(element, elementId =
|
|
1939
|
+
function getArtisticImageFilter(element, elementId = chunkIPYAN574_js.isImageLikeElement(element) ? element.id : "") {
|
|
1919
1940
|
const effects = getEffects(element);
|
|
1920
1941
|
if (!effects?.artisticEffect || !needsSvgArtisticFilter(effects.artisticEffect)) {
|
|
1921
1942
|
return void 0;
|
|
@@ -2874,7 +2895,7 @@ function convertChildren(node) {
|
|
|
2874
2895
|
if (key.startsWith("@_")) {
|
|
2875
2896
|
continue;
|
|
2876
2897
|
}
|
|
2877
|
-
const tag =
|
|
2898
|
+
const tag = chunkIPYAN574_js.stripXmlOrderSuffix(key);
|
|
2878
2899
|
if (tag === "m:oMathPara") {
|
|
2879
2900
|
continue;
|
|
2880
2901
|
}
|
|
@@ -2946,7 +2967,7 @@ function findOmathRoots(node) {
|
|
|
2946
2967
|
}
|
|
2947
2968
|
}
|
|
2948
2969
|
const contentTags = /* @__PURE__ */ new Set(["m:r", "m:f", "m:rad", "m:sSup", "m:sSub", "m:box"]);
|
|
2949
|
-
if (Object.keys(node).some((key) => contentTags.has(
|
|
2970
|
+
if (Object.keys(node).some((key) => contentTags.has(chunkIPYAN574_js.stripXmlOrderSuffix(key)))) {
|
|
2950
2971
|
return [node];
|
|
2951
2972
|
}
|
|
2952
2973
|
return [];
|
|
@@ -3156,7 +3177,7 @@ function mergeSiblings(nodes) {
|
|
|
3156
3177
|
}
|
|
3157
3178
|
const ordered = {};
|
|
3158
3179
|
for (const [position, [key, value]] of entries.entries()) {
|
|
3159
|
-
ordered[(counts.get(key) ?? 0) > 1 ?
|
|
3180
|
+
ordered[(counts.get(key) ?? 0) > 1 ? chunkIPYAN574_js.orderedXmlKey(key, position) : key] = value;
|
|
3160
3181
|
}
|
|
3161
3182
|
return ordered;
|
|
3162
3183
|
}
|
|
@@ -3560,7 +3581,7 @@ function ommlChildrenToLatex(node) {
|
|
|
3560
3581
|
if (key.startsWith("@_")) {
|
|
3561
3582
|
continue;
|
|
3562
3583
|
}
|
|
3563
|
-
const tag =
|
|
3584
|
+
const tag = chunkIPYAN574_js.stripXmlOrderSuffix(key);
|
|
3564
3585
|
const items = ensureArr(node[key]);
|
|
3565
3586
|
for (const item of items) {
|
|
3566
3587
|
const result = ommlElementToLatex(tag, item);
|
|
@@ -4179,6 +4200,10 @@ function resolveDataPointFill(series, pointIndex, fallbackColor) {
|
|
|
4179
4200
|
function resolveVaryColorFill(series, pointIndex, paletteColor3) {
|
|
4180
4201
|
return findDataPoint(series, pointIndex)?.spPr?.fillColor ?? paletteColor3;
|
|
4181
4202
|
}
|
|
4203
|
+
function resolveDataPointExplosion(series, pointIndex) {
|
|
4204
|
+
const point = findDataPoint(series, pointIndex);
|
|
4205
|
+
return point?.explosion ?? series.explosion ?? 0;
|
|
4206
|
+
}
|
|
4182
4207
|
function clamp3(value, min, max) {
|
|
4183
4208
|
return Math.min(Math.max(value, min), max);
|
|
4184
4209
|
}
|
|
@@ -4551,34 +4576,59 @@ function categoryTotals(series, catCount) {
|
|
|
4551
4576
|
(_, ci) => series.reduce((sum, s) => sum + Math.abs(s.values[ci] ?? 0), 0)
|
|
4552
4577
|
);
|
|
4553
4578
|
}
|
|
4579
|
+
function blendToWhite(color) {
|
|
4580
|
+
const match = /^#?([0-9a-f]{6})$/iu.exec(color.trim());
|
|
4581
|
+
if (!match) {
|
|
4582
|
+
return color;
|
|
4583
|
+
}
|
|
4584
|
+
const value = Number.parseInt(match[1], 16);
|
|
4585
|
+
const mix = (channel) => Math.round(channel + (255 - channel) * 0.5);
|
|
4586
|
+
const r = mix(value >> 16 & 255);
|
|
4587
|
+
const g = mix(value >> 8 & 255);
|
|
4588
|
+
const b = mix(value & 255);
|
|
4589
|
+
return `#${(r << 16 | g << 8 | b).toString(16).padStart(6, "0").toUpperCase()}`;
|
|
4590
|
+
}
|
|
4591
|
+
function invertNegativeFill(series, pointIndex, value, baseFill) {
|
|
4592
|
+
if (value >= 0) {
|
|
4593
|
+
return baseFill;
|
|
4594
|
+
}
|
|
4595
|
+
const point = series.dataPoints?.find((p) => p.idx === pointIndex);
|
|
4596
|
+
const invert = point?.invertIfNegative ?? series.invertIfNegative ?? false;
|
|
4597
|
+
return invert ? blendToWhite(baseFill) : baseFill;
|
|
4598
|
+
}
|
|
4554
4599
|
function buildBars(chartData, catCount, layout, primaryRange, secondaryRange, secondaryIdx, grouping, sourceIndices2) {
|
|
4555
4600
|
const primitives = [];
|
|
4556
4601
|
const dataLabels = [];
|
|
4557
4602
|
const series = chartData.series;
|
|
4558
4603
|
const palette = chartData.colorPalette;
|
|
4559
4604
|
const showLabels = chartData.style?.hasDataLabels;
|
|
4605
|
+
const varyColorsSingle = chartData.varyColors === true && series.length === 1;
|
|
4560
4606
|
if (grouping === "clustered") {
|
|
4561
4607
|
const seriesCount = Math.max(series.length, 1);
|
|
4562
4608
|
const barGroupWidth2 = layout.plotWidth / Math.max(catCount, 1);
|
|
4563
|
-
const singleBarWidth = barGroupWidth2 * 0.7 / seriesCount;
|
|
4564
|
-
const
|
|
4609
|
+
const singleBarWidth = chartData.barGapWidth !== void 0 ? barGroupWidth2 / (seriesCount + Math.max(chartData.barGapWidth, 0) / 100) : barGroupWidth2 * 0.7 / seriesCount;
|
|
4610
|
+
const overlap = chartData.barOverlap ?? 0;
|
|
4611
|
+
const step = singleBarWidth * (1 - overlap / 100);
|
|
4612
|
+
const clusterWidth = singleBarWidth + step * (seriesCount - 1);
|
|
4613
|
+
const groupOffset = (barGroupWidth2 - clusterWidth) / 2;
|
|
4565
4614
|
for (let displayIndex = 0; displayIndex < catCount; displayIndex++) {
|
|
4566
4615
|
const sourceIndex = sourceIndices2[displayIndex] ?? displayIndex;
|
|
4567
4616
|
for (let si = 0; si < series.length; si++) {
|
|
4568
4617
|
const val2 = series[si].values[sourceIndex] ?? 0;
|
|
4569
|
-
const x = layout.plotLeft + barGroupWidth2 * displayIndex + groupOffset +
|
|
4618
|
+
const x = layout.plotLeft + barGroupWidth2 * displayIndex + groupOffset + step * si;
|
|
4570
4619
|
const activeRange = secondaryIdx.has(si) && secondaryRange ? secondaryRange : primaryRange;
|
|
4571
4620
|
const zeroY = valueToY2(0, activeRange, layout.plotTop, layout.plotBottom);
|
|
4572
4621
|
const valY = valueToY2(val2, activeRange, layout.plotTop, layout.plotBottom);
|
|
4573
4622
|
const y = Math.min(zeroY, valY);
|
|
4574
4623
|
const h = Math.max(Math.abs(zeroY - valY), 1);
|
|
4624
|
+
const baseFill = varyColorsSingle ? resolveVaryColorFill(series[si], sourceIndex, paletteColor2(sourceIndex, palette)) : resolveDataPointFill(series[si], sourceIndex, paletteColor2(si, palette)) ?? seriesColor2(series[si], si, palette);
|
|
4575
4625
|
primitives.push({
|
|
4576
4626
|
kind: "rect",
|
|
4577
4627
|
x,
|
|
4578
4628
|
y,
|
|
4579
4629
|
w: singleBarWidth,
|
|
4580
4630
|
h,
|
|
4581
|
-
fill:
|
|
4631
|
+
fill: invertNegativeFill(series[si], sourceIndex, val2, baseFill),
|
|
4582
4632
|
rx: 1,
|
|
4583
4633
|
part: { role: "dataPoint", seriesIndex: si, pointIndex: sourceIndex }
|
|
4584
4634
|
});
|
|
@@ -4609,6 +4659,8 @@ function buildBars(chartData, catCount, layout, primaryRange, secondaryRange, se
|
|
|
4609
4659
|
if (r.seriesIndex !== void 0 && r.pointIndex !== void 0) {
|
|
4610
4660
|
const sourcePointIndex = sourceIndices2[r.pointIndex] ?? r.pointIndex;
|
|
4611
4661
|
fill = resolveDataPointFill(series[r.seriesIndex], sourcePointIndex, r.fill) ?? r.fill;
|
|
4662
|
+
const value = series[r.seriesIndex].values[sourcePointIndex] ?? 0;
|
|
4663
|
+
fill = invertNegativeFill(series[r.seriesIndex], sourcePointIndex, value, fill);
|
|
4612
4664
|
part = { role: "dataPoint", seriesIndex: r.seriesIndex, pointIndex: sourcePointIndex };
|
|
4613
4665
|
}
|
|
4614
4666
|
primitives.push({ kind: "rect", x: r.x, y: r.y, w: r.w, h: r.h, fill, rx: 1, part });
|
|
@@ -4642,13 +4694,14 @@ function buildBars(chartData, catCount, layout, primaryRange, secondaryRange, se
|
|
|
4642
4694
|
const topY = valueToY2(top, primaryRange, layout.plotTop, layout.plotBottom);
|
|
4643
4695
|
const y = Math.min(baseY, topY);
|
|
4644
4696
|
const h = Math.max(Math.abs(baseY - topY), 0.5);
|
|
4697
|
+
const pctBaseFill = resolveDataPointFill(series[si], sourceIndex, paletteColor2(si, palette)) ?? seriesColor2(series[si], si, palette);
|
|
4645
4698
|
primitives.push({
|
|
4646
4699
|
kind: "rect",
|
|
4647
4700
|
x,
|
|
4648
4701
|
y,
|
|
4649
4702
|
w: barW,
|
|
4650
4703
|
h,
|
|
4651
|
-
fill:
|
|
4704
|
+
fill: invertNegativeFill(series[si], sourceIndex, rawVal, pctBaseFill),
|
|
4652
4705
|
part: { role: "dataPoint", seriesIndex: si, pointIndex: sourceIndex }
|
|
4653
4706
|
});
|
|
4654
4707
|
if (showLabels && Math.abs(val2) > 0) {
|
|
@@ -4697,6 +4750,139 @@ function pushClusteredStackedLabels(series, sourceIndices2, catCount, layout, ra
|
|
|
4697
4750
|
}
|
|
4698
4751
|
}
|
|
4699
4752
|
}
|
|
4753
|
+
function smoothLinePath(points) {
|
|
4754
|
+
if (points.length === 0) {
|
|
4755
|
+
return "";
|
|
4756
|
+
}
|
|
4757
|
+
if (points.length === 1) {
|
|
4758
|
+
return `M${points[0].x.toFixed(2)},${points[0].y.toFixed(2)}`;
|
|
4759
|
+
}
|
|
4760
|
+
if (points.length === 2) {
|
|
4761
|
+
return `M${points[0].x.toFixed(2)},${points[0].y.toFixed(2)} L${points[1].x.toFixed(2)},${points[1].y.toFixed(2)}`;
|
|
4762
|
+
}
|
|
4763
|
+
let d = `M${points[0].x.toFixed(2)},${points[0].y.toFixed(2)}`;
|
|
4764
|
+
for (let i = 0; i < points.length - 1; i++) {
|
|
4765
|
+
const p0 = points[i - 1] ?? points[i];
|
|
4766
|
+
const p1 = points[i];
|
|
4767
|
+
const p2 = points[i + 1];
|
|
4768
|
+
const p3 = points[i + 2] ?? p2;
|
|
4769
|
+
const cp1x = p1.x + (p2.x - p0.x) / 6;
|
|
4770
|
+
const cp1y = p1.y + (p2.y - p0.y) / 6;
|
|
4771
|
+
const cp2x = p2.x - (p3.x - p1.x) / 6;
|
|
4772
|
+
const cp2y = p2.y - (p3.y - p1.y) / 6;
|
|
4773
|
+
d += ` C${cp1x.toFixed(2)},${cp1y.toFixed(2)} ${cp2x.toFixed(2)},${cp2y.toFixed(2)} ${p2.x.toFixed(2)},${p2.y.toFixed(2)}`;
|
|
4774
|
+
}
|
|
4775
|
+
return d;
|
|
4776
|
+
}
|
|
4777
|
+
function markerRadius(size, defaultRadius2) {
|
|
4778
|
+
if (size === void 0 || !Number.isFinite(size) || size <= 0) {
|
|
4779
|
+
return defaultRadius2;
|
|
4780
|
+
}
|
|
4781
|
+
return size / 2;
|
|
4782
|
+
}
|
|
4783
|
+
function polygonPoints(vertices) {
|
|
4784
|
+
return vertices.map(([x, y]) => `${x.toFixed(2)},${y.toFixed(2)}`).join(" ");
|
|
4785
|
+
}
|
|
4786
|
+
function starVertices(cx, cy, r) {
|
|
4787
|
+
const inner = r * 0.5;
|
|
4788
|
+
const out = [];
|
|
4789
|
+
for (let i = 0; i < 10; i++) {
|
|
4790
|
+
const radius = i % 2 === 0 ? r : inner;
|
|
4791
|
+
const angle = -Math.PI / 2 + Math.PI * i / 5;
|
|
4792
|
+
out.push([cx + radius * Math.cos(angle), cy + radius * Math.sin(angle)]);
|
|
4793
|
+
}
|
|
4794
|
+
return out;
|
|
4795
|
+
}
|
|
4796
|
+
function buildMarkerPrimitive(input) {
|
|
4797
|
+
const { symbol, cx, cy, fill, part } = input;
|
|
4798
|
+
if (symbol === "none") {
|
|
4799
|
+
return null;
|
|
4800
|
+
}
|
|
4801
|
+
const r = markerRadius(input.size, input.defaultRadius);
|
|
4802
|
+
const stroke = fill;
|
|
4803
|
+
switch (symbol) {
|
|
4804
|
+
case "square":
|
|
4805
|
+
return { kind: "rect", x: cx - r, y: cy - r, w: r * 2, h: r * 2, fill, part };
|
|
4806
|
+
case "dash":
|
|
4807
|
+
return { kind: "rect", x: cx - r, y: cy - r * 0.32, w: r * 2, h: r * 0.64, fill, part };
|
|
4808
|
+
case "diamond":
|
|
4809
|
+
return {
|
|
4810
|
+
kind: "polygon",
|
|
4811
|
+
points: polygonPoints([
|
|
4812
|
+
[cx, cy - r],
|
|
4813
|
+
[cx + r, cy],
|
|
4814
|
+
[cx, cy + r],
|
|
4815
|
+
[cx - r, cy]
|
|
4816
|
+
]),
|
|
4817
|
+
fill,
|
|
4818
|
+
stroke,
|
|
4819
|
+
strokeWidth: 0,
|
|
4820
|
+
part
|
|
4821
|
+
};
|
|
4822
|
+
case "triangle":
|
|
4823
|
+
return {
|
|
4824
|
+
kind: "polygon",
|
|
4825
|
+
points: polygonPoints([
|
|
4826
|
+
[cx, cy - r],
|
|
4827
|
+
[cx + r * 0.9, cy + r * 0.75],
|
|
4828
|
+
[cx - r * 0.9, cy + r * 0.75]
|
|
4829
|
+
]),
|
|
4830
|
+
fill,
|
|
4831
|
+
stroke,
|
|
4832
|
+
strokeWidth: 0,
|
|
4833
|
+
part
|
|
4834
|
+
};
|
|
4835
|
+
case "star":
|
|
4836
|
+
return {
|
|
4837
|
+
kind: "polygon",
|
|
4838
|
+
points: polygonPoints(starVertices(cx, cy, r)),
|
|
4839
|
+
fill,
|
|
4840
|
+
stroke,
|
|
4841
|
+
strokeWidth: 0,
|
|
4842
|
+
part
|
|
4843
|
+
};
|
|
4844
|
+
case "plus":
|
|
4845
|
+
return {
|
|
4846
|
+
kind: "path",
|
|
4847
|
+
d: `M${(cx - r).toFixed(2)},${cy.toFixed(2)} L${(cx + r).toFixed(2)},${cy.toFixed(2)} M${cx.toFixed(2)},${(cy - r).toFixed(2)} L${cx.toFixed(2)},${(cy + r).toFixed(2)}`,
|
|
4848
|
+
fill: "none",
|
|
4849
|
+
stroke,
|
|
4850
|
+
strokeWidth: Math.max(1, r * 0.4),
|
|
4851
|
+
part
|
|
4852
|
+
};
|
|
4853
|
+
case "x":
|
|
4854
|
+
return {
|
|
4855
|
+
kind: "path",
|
|
4856
|
+
d: `M${(cx - r).toFixed(2)},${(cy - r).toFixed(2)} L${(cx + r).toFixed(2)},${(cy + r).toFixed(2)} M${(cx + r).toFixed(2)},${(cy - r).toFixed(2)} L${(cx - r).toFixed(2)},${(cy + r).toFixed(2)}`,
|
|
4857
|
+
fill: "none",
|
|
4858
|
+
stroke,
|
|
4859
|
+
strokeWidth: Math.max(1, r * 0.4),
|
|
4860
|
+
part
|
|
4861
|
+
};
|
|
4862
|
+
case "dot":
|
|
4863
|
+
return { kind: "circle", cx, cy, r: Math.max(r * 0.6, 1), fill, part };
|
|
4864
|
+
default:
|
|
4865
|
+
return { kind: "circle", cx, cy, r, fill, part };
|
|
4866
|
+
}
|
|
4867
|
+
}
|
|
4868
|
+
function pushMarker(out, series, cx, cy, fill, defaultRadius2, part, opacity) {
|
|
4869
|
+
const m = buildMarkerPrimitive({
|
|
4870
|
+
symbol: series.marker?.symbol,
|
|
4871
|
+
size: series.marker?.size,
|
|
4872
|
+
cx,
|
|
4873
|
+
cy,
|
|
4874
|
+
fill,
|
|
4875
|
+
defaultRadius: defaultRadius2,
|
|
4876
|
+
part
|
|
4877
|
+
});
|
|
4878
|
+
if (!m) {
|
|
4879
|
+
return;
|
|
4880
|
+
}
|
|
4881
|
+
if (opacity !== void 0) {
|
|
4882
|
+
m.opacity = opacity;
|
|
4883
|
+
}
|
|
4884
|
+
out.push(m);
|
|
4885
|
+
}
|
|
4700
4886
|
function buildLines(chartData, catCount, layout, primaryRange, secondaryRange, secondaryIdx, sourceIndices2, xPositions) {
|
|
4701
4887
|
const primitives = [];
|
|
4702
4888
|
const dataLabels = [];
|
|
@@ -4715,24 +4901,36 @@ function buildLines(chartData, catCount, layout, primaryRange, secondaryRange, s
|
|
|
4715
4901
|
})
|
|
4716
4902
|
);
|
|
4717
4903
|
const c = seriesColor2(series, si, chartData.colorPalette);
|
|
4718
|
-
|
|
4719
|
-
|
|
4720
|
-
|
|
4721
|
-
|
|
4722
|
-
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
4904
|
+
const seriesPart = { role: "series", seriesIndex: si };
|
|
4905
|
+
primitives.push(
|
|
4906
|
+
series.smooth ? {
|
|
4907
|
+
kind: "path",
|
|
4908
|
+
d: smoothLinePath(pts),
|
|
4909
|
+
stroke: c,
|
|
4910
|
+
strokeWidth: 2.4,
|
|
4911
|
+
fill: "none",
|
|
4912
|
+
part: seriesPart
|
|
4913
|
+
} : {
|
|
4914
|
+
kind: "polyline",
|
|
4915
|
+
points: linePointsToSvgString(pts),
|
|
4916
|
+
stroke: c,
|
|
4917
|
+
strokeWidth: 2.4,
|
|
4918
|
+
fill: "none",
|
|
4919
|
+
part: seriesPart
|
|
4920
|
+
}
|
|
4921
|
+
);
|
|
4726
4922
|
pts.forEach((pt, displayIndex) => {
|
|
4727
|
-
const
|
|
4728
|
-
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
|
|
4735
|
-
|
|
4923
|
+
const idx = sourceIndices2[displayIndex] ?? displayIndex;
|
|
4924
|
+
const part = { role: "dataPoint", seriesIndex: si, pointIndex: idx };
|
|
4925
|
+
pushMarker(
|
|
4926
|
+
primitives,
|
|
4927
|
+
series,
|
|
4928
|
+
pt.x,
|
|
4929
|
+
pt.y,
|
|
4930
|
+
resolveDataPointFill(series, idx, c) ?? c,
|
|
4931
|
+
2.5,
|
|
4932
|
+
part
|
|
4933
|
+
);
|
|
4736
4934
|
});
|
|
4737
4935
|
if (showLabels) {
|
|
4738
4936
|
displayValues.forEach((val2, displayIndex) => {
|
|
@@ -4793,19 +4991,17 @@ function buildAreas(chartData, catCount, layout, range, sourceIndices2, xPositio
|
|
|
4793
4991
|
part: { role: "series", seriesIndex: si }
|
|
4794
4992
|
});
|
|
4795
4993
|
pts.forEach((pt, displayIndex) => {
|
|
4796
|
-
const
|
|
4797
|
-
|
|
4798
|
-
|
|
4799
|
-
|
|
4800
|
-
|
|
4801
|
-
|
|
4802
|
-
|
|
4803
|
-
|
|
4804
|
-
|
|
4805
|
-
|
|
4806
|
-
|
|
4807
|
-
}
|
|
4808
|
-
});
|
|
4994
|
+
const idx = sourceIndices2[displayIndex] ?? displayIndex;
|
|
4995
|
+
const part = { role: "dataPoint", seriesIndex: si, pointIndex: idx };
|
|
4996
|
+
pushMarker(
|
|
4997
|
+
primitives,
|
|
4998
|
+
series,
|
|
4999
|
+
pt.x,
|
|
5000
|
+
pt.y,
|
|
5001
|
+
resolveDataPointFill(series, idx, c) ?? c,
|
|
5002
|
+
2,
|
|
5003
|
+
part
|
|
5004
|
+
);
|
|
4809
5005
|
});
|
|
4810
5006
|
if (showLabels) {
|
|
4811
5007
|
displayValues.forEach((val2, displayIndex) => {
|
|
@@ -4839,15 +5035,17 @@ function buildScatter(chartData, layout, range) {
|
|
|
4839
5035
|
const c = seriesColor2(series, si, chartData.colorPalette);
|
|
4840
5036
|
const dots = computeScatterDots(series.values, maxXIndex, layout, range, xValues);
|
|
4841
5037
|
dots.forEach((dot, vi) => {
|
|
4842
|
-
|
|
4843
|
-
|
|
4844
|
-
|
|
4845
|
-
|
|
4846
|
-
|
|
4847
|
-
|
|
4848
|
-
|
|
4849
|
-
|
|
4850
|
-
|
|
5038
|
+
const part = { role: "dataPoint", seriesIndex: si, pointIndex: vi };
|
|
5039
|
+
pushMarker(
|
|
5040
|
+
primitives,
|
|
5041
|
+
series,
|
|
5042
|
+
dot.cx,
|
|
5043
|
+
dot.cy,
|
|
5044
|
+
resolveDataPointFill(series, vi, c) ?? c,
|
|
5045
|
+
4,
|
|
5046
|
+
part,
|
|
5047
|
+
0.85
|
|
5048
|
+
);
|
|
4851
5049
|
});
|
|
4852
5050
|
if (showLabels) {
|
|
4853
5051
|
series.values.forEach((val2, vi) => {
|
|
@@ -4916,7 +5114,124 @@ function buildBubbles(chartData, layout, range) {
|
|
|
4916
5114
|
}
|
|
4917
5115
|
return { primitives, dataLabels };
|
|
4918
5116
|
}
|
|
4919
|
-
function categoryX(
|
|
5117
|
+
function categoryX(index, catCount, layout, options) {
|
|
5118
|
+
const explicit = options.xPositions?.[index];
|
|
5119
|
+
if (explicit !== void 0) {
|
|
5120
|
+
return explicit;
|
|
5121
|
+
}
|
|
5122
|
+
if (options.mode === "bar") {
|
|
5123
|
+
const slot = layout.plotWidth / Math.max(catCount, 1);
|
|
5124
|
+
return layout.plotLeft + slot * index + slot / 2;
|
|
5125
|
+
}
|
|
5126
|
+
const maxIdx = Math.max(catCount - 1, 1);
|
|
5127
|
+
return layout.plotLeft + index / maxIdx * layout.plotWidth;
|
|
5128
|
+
}
|
|
5129
|
+
function dashFor(dashStyle) {
|
|
5130
|
+
if (!dashStyle || dashStyle === "solid") {
|
|
5131
|
+
return void 0;
|
|
5132
|
+
}
|
|
5133
|
+
return dashStyle === "dot" || dashStyle === "sysDot" ? "1 2" : "4 3";
|
|
5134
|
+
}
|
|
5135
|
+
function computeDropLinePrimitives(chartData, layout, range, catCount, options) {
|
|
5136
|
+
const style = chartData.dropLines;
|
|
5137
|
+
if (!style) {
|
|
5138
|
+
return [];
|
|
5139
|
+
}
|
|
5140
|
+
const baselineY = valueToY2(range.min, range, layout.plotTop, layout.plotBottom);
|
|
5141
|
+
const dashArray2 = dashFor(style.dashStyle);
|
|
5142
|
+
const out = [];
|
|
5143
|
+
for (const series of chartData.series) {
|
|
5144
|
+
series.values.forEach((val2, vi) => {
|
|
5145
|
+
const x = categoryX(vi, catCount, layout, options);
|
|
5146
|
+
out.push({
|
|
5147
|
+
kind: "line",
|
|
5148
|
+
x1: x,
|
|
5149
|
+
y1: valueToY2(val2, range, layout.plotTop, layout.plotBottom),
|
|
5150
|
+
x2: x,
|
|
5151
|
+
y2: baselineY,
|
|
5152
|
+
stroke: style.color ?? "#94a3b8",
|
|
5153
|
+
strokeWidth: style.width ?? 0.8,
|
|
5154
|
+
dashArray: dashArray2
|
|
5155
|
+
});
|
|
5156
|
+
});
|
|
5157
|
+
}
|
|
5158
|
+
return out;
|
|
5159
|
+
}
|
|
5160
|
+
function computeHiLowLinePrimitives(chartData, layout, range, catCount, options) {
|
|
5161
|
+
const style = chartData.hiLowLines;
|
|
5162
|
+
if (!style || chartData.series.length < 2) {
|
|
5163
|
+
return [];
|
|
5164
|
+
}
|
|
5165
|
+
const dashArray2 = dashFor(style.dashStyle);
|
|
5166
|
+
const out = [];
|
|
5167
|
+
for (let vi = 0; vi < catCount; vi++) {
|
|
5168
|
+
let high = Number.NEGATIVE_INFINITY;
|
|
5169
|
+
let low = Number.POSITIVE_INFINITY;
|
|
5170
|
+
for (const series of chartData.series) {
|
|
5171
|
+
const v = series.values[vi];
|
|
5172
|
+
if (v !== void 0) {
|
|
5173
|
+
high = Math.max(high, v);
|
|
5174
|
+
low = Math.min(low, v);
|
|
5175
|
+
}
|
|
5176
|
+
}
|
|
5177
|
+
if (!Number.isFinite(high) || !Number.isFinite(low)) {
|
|
5178
|
+
continue;
|
|
5179
|
+
}
|
|
5180
|
+
const x = categoryX(vi, catCount, layout, options);
|
|
5181
|
+
out.push({
|
|
5182
|
+
kind: "line",
|
|
5183
|
+
x1: x,
|
|
5184
|
+
y1: valueToY2(high, range, layout.plotTop, layout.plotBottom),
|
|
5185
|
+
x2: x,
|
|
5186
|
+
y2: valueToY2(low, range, layout.plotTop, layout.plotBottom),
|
|
5187
|
+
stroke: style.color ?? "#334155",
|
|
5188
|
+
strokeWidth: style.width ?? 1,
|
|
5189
|
+
dashArray: dashArray2
|
|
5190
|
+
});
|
|
5191
|
+
}
|
|
5192
|
+
return out;
|
|
5193
|
+
}
|
|
5194
|
+
function computeUpDownBarPrimitives(chartData, layout, range, catCount, options) {
|
|
5195
|
+
const bars = chartData.upDownBars;
|
|
5196
|
+
if (!bars || chartData.series.length < 2) {
|
|
5197
|
+
return [];
|
|
5198
|
+
}
|
|
5199
|
+
const first = chartData.series[0];
|
|
5200
|
+
const last = chartData.series[chartData.series.length - 1];
|
|
5201
|
+
const slot = layout.plotWidth / Math.max(catCount, 1);
|
|
5202
|
+
const gapWidth = bars.gapWidth ?? 150;
|
|
5203
|
+
const barW = Math.max(slot / (1 + Math.max(gapWidth, 0) / 100), 1);
|
|
5204
|
+
const upFill = bars.upBars?.fillColor ?? "#e2e8f0";
|
|
5205
|
+
const downFill = bars.downBars?.fillColor ?? "#334155";
|
|
5206
|
+
const out = [];
|
|
5207
|
+
for (let vi = 0; vi < catCount; vi++) {
|
|
5208
|
+
const firstVal = first.values[vi];
|
|
5209
|
+
const lastVal = last.values[vi];
|
|
5210
|
+
if (firstVal === void 0 || lastVal === void 0) {
|
|
5211
|
+
continue;
|
|
5212
|
+
}
|
|
5213
|
+
const firstY = valueToY2(firstVal, range, layout.plotTop, layout.plotBottom);
|
|
5214
|
+
const lastY = valueToY2(lastVal, range, layout.plotTop, layout.plotBottom);
|
|
5215
|
+
const x = categoryX(vi, catCount, layout, options) - barW / 2;
|
|
5216
|
+
out.push({
|
|
5217
|
+
kind: "rect",
|
|
5218
|
+
x,
|
|
5219
|
+
y: Math.min(firstY, lastY),
|
|
5220
|
+
w: barW,
|
|
5221
|
+
h: Math.max(Math.abs(firstY - lastY), 1),
|
|
5222
|
+
fill: lastVal >= firstVal ? upFill : downFill
|
|
5223
|
+
});
|
|
5224
|
+
}
|
|
5225
|
+
return out;
|
|
5226
|
+
}
|
|
5227
|
+
function computeHelperLinePrimitives(chartData, layout, range, catCount, options) {
|
|
5228
|
+
return [
|
|
5229
|
+
...computeUpDownBarPrimitives(chartData, layout, range, catCount, options),
|
|
5230
|
+
...computeDropLinePrimitives(chartData, layout, range, catCount, options),
|
|
5231
|
+
...computeHiLowLinePrimitives(chartData, layout, range, catCount, options)
|
|
5232
|
+
];
|
|
5233
|
+
}
|
|
5234
|
+
function categoryX2(displayIndex, count, layout, spacing) {
|
|
4920
5235
|
if (spacing === "bar") {
|
|
4921
5236
|
return layout.plotLeft + layout.plotWidth / Math.max(count, 1) * (displayIndex + 0.5);
|
|
4922
5237
|
}
|
|
@@ -4947,8 +5262,8 @@ function buildMultiLevelCategoryLabels(categoryLabels, categoryLevels, sourceInd
|
|
|
4947
5262
|
if (!group.text || group.start % skip !== 0) {
|
|
4948
5263
|
return [];
|
|
4949
5264
|
}
|
|
4950
|
-
const startX =
|
|
4951
|
-
const endX =
|
|
5265
|
+
const startX = categoryX2(group.start, sourceIndices2.length, layout, spacing);
|
|
5266
|
+
const endX = categoryX2(group.end, sourceIndices2.length, layout, spacing);
|
|
4952
5267
|
return [
|
|
4953
5268
|
{
|
|
4954
5269
|
kind: "text",
|
|
@@ -5003,13 +5318,13 @@ function buildTickMarks(axis, sourceCount, layout, spacing, axisY) {
|
|
|
5003
5318
|
}
|
|
5004
5319
|
const majorSkip = Math.max(1, axis.tickMarkSkip ?? 1);
|
|
5005
5320
|
for (let displayIndex = 0; displayIndex < sourceCount; displayIndex += majorSkip) {
|
|
5006
|
-
const x =
|
|
5321
|
+
const x = categoryX2(displayIndex, sourceCount, layout, spacing);
|
|
5007
5322
|
const major = tickLine(x, y, axis.majorTickMark, topAxis, 4, axis);
|
|
5008
5323
|
if (major) {
|
|
5009
5324
|
result.push(major);
|
|
5010
5325
|
}
|
|
5011
5326
|
if (axis.minorTickMark !== void 0 && displayIndex + majorSkip < sourceCount) {
|
|
5012
|
-
const nextX =
|
|
5327
|
+
const nextX = categoryX2(displayIndex + majorSkip, sourceCount, layout, spacing);
|
|
5013
5328
|
const minor = tickLine((x + nextX) / 2, y, axis.minorTickMark, topAxis, 2.5, axis);
|
|
5014
5329
|
if (minor) {
|
|
5015
5330
|
result.push(minor);
|
|
@@ -5287,7 +5602,7 @@ function buildCartesianHorizontalAxis(chartData, categoryLabels, layout, kind, p
|
|
|
5287
5602
|
catAxisStyle,
|
|
5288
5603
|
sourceIndices: sourceIndices2,
|
|
5289
5604
|
xPositions: datePlan?.xPositions ?? categoryPlan?.sourceIndices.map(
|
|
5290
|
-
(_sourceIndex, displayIndex) =>
|
|
5605
|
+
(_sourceIndex, displayIndex) => categoryX2(displayIndex, categoryPlan.sourceIndices.length, layout, catAxisStyle)
|
|
5291
5606
|
),
|
|
5292
5607
|
labels: [
|
|
5293
5608
|
...datePlan?.labels ?? categoryPlan?.labels ?? buildCategoryLabels(categoryLabels, layout, catAxisStyle),
|
|
@@ -5302,7 +5617,7 @@ function buildCartesianHorizontalAxis(chartData, categoryLabels, layout, kind, p
|
|
|
5302
5617
|
}
|
|
5303
5618
|
var DEFAULT_COLOR3 = "#334155";
|
|
5304
5619
|
var CAP_HALF_WIDTH = 4;
|
|
5305
|
-
function
|
|
5620
|
+
function categoryX3(value, count, layout, mode) {
|
|
5306
5621
|
if (mode === "bar") {
|
|
5307
5622
|
const slot = layout.plotWidth / Math.max(count, 1);
|
|
5308
5623
|
return layout.plotLeft + slot * value + slot / 2;
|
|
@@ -5409,7 +5724,7 @@ function computeErrorBarPrimitives(chartData, catCount, layout, range, mode = "l
|
|
|
5409
5724
|
const categoryMapper = (value) => positionedCategoryX(
|
|
5410
5725
|
value,
|
|
5411
5726
|
options.xPositions,
|
|
5412
|
-
(index) =>
|
|
5727
|
+
(index) => categoryX3(index, indexes.length || catCount, layout, seriesMode)
|
|
5413
5728
|
);
|
|
5414
5729
|
const toPixel = xValues.numeric ? (value) => numericX(value, xRange, layout) : categoryMapper;
|
|
5415
5730
|
const x = toPixel(baseXValue);
|
|
@@ -5983,7 +6298,15 @@ function buildCartesianViewModel(element, chartData, categoryLabels, kind) {
|
|
|
5983
6298
|
} else {
|
|
5984
6299
|
plot = buildBubbles(chartData, layout, primaryRange);
|
|
5985
6300
|
}
|
|
5986
|
-
const
|
|
6301
|
+
const helperLines = kind === "line" || kind === "area" ? computeHelperLinePrimitives(chartData, layout, primaryRange, catCount, {
|
|
6302
|
+
mode: "line",
|
|
6303
|
+
xPositions: horizontalAxis.xPositions
|
|
6304
|
+
}) : [];
|
|
6305
|
+
const primitives = [
|
|
6306
|
+
...helperLines,
|
|
6307
|
+
...plot.primitives,
|
|
6308
|
+
...horizontalAxis.tickMarks
|
|
6309
|
+
];
|
|
5987
6310
|
const overlays = [
|
|
5988
6311
|
...computeTrendlinePrimitives(
|
|
5989
6312
|
displayChartData,
|
|
@@ -6109,6 +6432,10 @@ function buildComboViewModel(element, chartData, categoryLabels) {
|
|
|
6109
6432
|
);
|
|
6110
6433
|
const primitives = [];
|
|
6111
6434
|
const dataLabels = [];
|
|
6435
|
+
const helperOpts = { mode: "line", xPositions: horizontalAxis.xPositions };
|
|
6436
|
+
primitives.push(
|
|
6437
|
+
...computeHelperLinePrimitives(chartData, layout, primaryRange, catCount, helperOpts)
|
|
6438
|
+
);
|
|
6112
6439
|
const barSeries = chartData.series.slice(0, 1);
|
|
6113
6440
|
if (barSeries[0]) {
|
|
6114
6441
|
const barRange = rangeForSeries(0, primaryRange, secondaryRange, secondaryIndexes);
|
|
@@ -8516,16 +8843,30 @@ function computePieLayout(elementWidth, elementHeight, chartData, isDoughnut) {
|
|
|
8516
8843
|
const cx = size / 2;
|
|
8517
8844
|
const cy = titleOffset + (size - titleOffset - legendOffset) / 2;
|
|
8518
8845
|
const outerR = Math.max((size - titleOffset - legendOffset) * 0.42, 0);
|
|
8519
|
-
const
|
|
8846
|
+
const holeRatio = isDoughnut && chartData.doughnutHoleSize !== void 0 ? Math.min(Math.max(chartData.doughnutHoleSize, 10), 90) / 100 : 0.55;
|
|
8847
|
+
const innerR = isDoughnut ? outerR * holeRatio : 0;
|
|
8520
8848
|
return { cx, cy, outerR, innerR, size };
|
|
8521
8849
|
}
|
|
8522
|
-
function computePieSlices(values, cx, cy, outerR, innerR) {
|
|
8850
|
+
function computePieSlices(values, cx, cy, outerR, innerR, options) {
|
|
8523
8851
|
const total = values.reduce((s, v) => s + Math.abs(v), 0) || 1;
|
|
8524
|
-
let cumAngle = -Math.PI / 2;
|
|
8525
|
-
return values.map((val2) => {
|
|
8852
|
+
let cumAngle = options?.startAngle ?? -Math.PI / 2;
|
|
8853
|
+
return values.map((val2, i) => {
|
|
8526
8854
|
const sliceAngle = Math.abs(val2) / total * Math.PI * 2;
|
|
8527
8855
|
const startAngle = cumAngle;
|
|
8528
8856
|
cumAngle += sliceAngle;
|
|
8857
|
+
const explosion = options?.explosions?.[i] ?? 0;
|
|
8858
|
+
if (explosion > 0) {
|
|
8859
|
+
const mid = (startAngle + cumAngle) / 2;
|
|
8860
|
+
const offset = outerR * (explosion / 100);
|
|
8861
|
+
return computePieSlicePath(
|
|
8862
|
+
cx + Math.cos(mid) * offset,
|
|
8863
|
+
cy + Math.sin(mid) * offset,
|
|
8864
|
+
outerR,
|
|
8865
|
+
innerR,
|
|
8866
|
+
startAngle,
|
|
8867
|
+
cumAngle
|
|
8868
|
+
);
|
|
8869
|
+
}
|
|
8529
8870
|
return computePieSlicePath(cx, cy, outerR, innerR, startAngle, cumAngle);
|
|
8530
8871
|
});
|
|
8531
8872
|
}
|
|
@@ -8720,7 +9061,9 @@ function buildPieViewModel(element, chartData, categoryLabels, isDoughnut) {
|
|
|
8720
9061
|
const svgHeight = Math.max(size, 60);
|
|
8721
9062
|
const pieSeries = chartData.series[0];
|
|
8722
9063
|
const values = pieSeries?.values ?? [];
|
|
8723
|
-
const
|
|
9064
|
+
const startAngle = -Math.PI / 2 + (chartData.firstSliceAngle ?? 0) * Math.PI / 180;
|
|
9065
|
+
const explosions = pieSeries ? values.map((_v, i) => resolveDataPointExplosion(pieSeries, i)) : void 0;
|
|
9066
|
+
const slices = computePieSlices(values, cx, cy, outerR, innerR, { startAngle, explosions });
|
|
8724
9067
|
const primitives = slices.map(
|
|
8725
9068
|
({ d }, i) => ({
|
|
8726
9069
|
kind: "path",
|
|
@@ -9865,6 +10208,29 @@ function getAnimationInitialStyle(preset, nativeAnimation) {
|
|
|
9865
10208
|
}
|
|
9866
10209
|
return {};
|
|
9867
10210
|
}
|
|
10211
|
+
function cssEasingForAnimation(anim) {
|
|
10212
|
+
const hasAccel = anim.accel !== void 0 && anim.accel > 0;
|
|
10213
|
+
const hasDecel = anim.decel !== void 0 && anim.decel > 0;
|
|
10214
|
+
if (hasAccel && hasDecel) {
|
|
10215
|
+
return "ease-in-out";
|
|
10216
|
+
}
|
|
10217
|
+
if (hasAccel) {
|
|
10218
|
+
return "ease-in";
|
|
10219
|
+
}
|
|
10220
|
+
if (hasDecel) {
|
|
10221
|
+
return "ease-out";
|
|
10222
|
+
}
|
|
10223
|
+
return "ease";
|
|
10224
|
+
}
|
|
10225
|
+
function fallbackEffectForClass(presetClass) {
|
|
10226
|
+
if (presetClass === "entr") {
|
|
10227
|
+
return "fadeIn";
|
|
10228
|
+
}
|
|
10229
|
+
if (presetClass === "exit") {
|
|
10230
|
+
return "fadeOut";
|
|
10231
|
+
}
|
|
10232
|
+
return void 0;
|
|
10233
|
+
}
|
|
9868
10234
|
function buildTimeline(nativeAnimations) {
|
|
9869
10235
|
if (nativeAnimations.length === 0) {
|
|
9870
10236
|
return {
|
|
@@ -9899,10 +10265,13 @@ function buildTimeline(nativeAnimations) {
|
|
|
9899
10265
|
for (const anim of regularAnims) {
|
|
9900
10266
|
const expandedSteps = expandIterateAnimation(anim);
|
|
9901
10267
|
for (const singleAnim of expandedSteps) {
|
|
9902
|
-
|
|
10268
|
+
let effect = resolveEffect(singleAnim);
|
|
9903
10269
|
const dynamic = effect ? void 0 : buildDynamicKeyframe(singleAnim, dynamicUid++);
|
|
9904
10270
|
if (!effect && !dynamic) {
|
|
9905
|
-
|
|
10271
|
+
effect = fallbackEffectForClass(singleAnim.presetClass);
|
|
10272
|
+
if (!effect) {
|
|
10273
|
+
continue;
|
|
10274
|
+
}
|
|
9906
10275
|
}
|
|
9907
10276
|
const keyframe = effect ? cssKeyframeName(effect) : dynamic.keyframeName;
|
|
9908
10277
|
if (effect) {
|
|
@@ -9948,7 +10317,8 @@ function buildTimeline(nativeAnimations) {
|
|
|
9948
10317
|
delayMs = animDelay + triggerDelay;
|
|
9949
10318
|
}
|
|
9950
10319
|
const iterStr = iterCount === Infinity ? "infinite" : String(iterCount);
|
|
9951
|
-
const
|
|
10320
|
+
const easing = cssEasingForAnimation(singleAnim);
|
|
10321
|
+
const cssAnimation = `${keyframe} ${duration}ms ${easing} ${delayMs}ms ${iterStr} ${direction} ${fill}`;
|
|
9952
10322
|
currentGroup.push({
|
|
9953
10323
|
elementId,
|
|
9954
10324
|
cssAnimation,
|
|
@@ -10031,10 +10401,13 @@ function buildSequenceGroups(animsByKey, entranceIds, neededKeyframes, dynamicBl
|
|
|
10031
10401
|
const seqGroups = [];
|
|
10032
10402
|
let seqGroup = [];
|
|
10033
10403
|
for (const anim of anims) {
|
|
10034
|
-
|
|
10404
|
+
let effect = resolveEffect(anim);
|
|
10035
10405
|
const dynamic = effect ? void 0 : buildDynamicKeyframe(anim, dynamicUid++);
|
|
10036
10406
|
if (!effect && !dynamic) {
|
|
10037
|
-
|
|
10407
|
+
effect = fallbackEffectForClass(anim.presetClass);
|
|
10408
|
+
if (!effect) {
|
|
10409
|
+
continue;
|
|
10410
|
+
}
|
|
10038
10411
|
}
|
|
10039
10412
|
const keyframe = effect ? cssKeyframeName(effect) : dynamic.keyframeName;
|
|
10040
10413
|
if (effect) {
|
|
@@ -10071,7 +10444,8 @@ function buildSequenceGroups(animsByKey, entranceIds, neededKeyframes, dynamicBl
|
|
|
10071
10444
|
delayMs = animDelay + triggerDelay;
|
|
10072
10445
|
}
|
|
10073
10446
|
const iterStr = iterCount === Infinity ? "infinite" : String(iterCount);
|
|
10074
|
-
const
|
|
10447
|
+
const easing = cssEasingForAnimation(anim);
|
|
10448
|
+
const cssAnimation = `${keyframe} ${duration}ms ${easing} ${delayMs}ms ${iterStr} ${direction} ${fill}`;
|
|
10075
10449
|
seqGroup.push({
|
|
10076
10450
|
elementId,
|
|
10077
10451
|
cssAnimation,
|
|
@@ -12207,7 +12581,7 @@ function rotateDelta(dx, dy, rotationDeg) {
|
|
|
12207
12581
|
}
|
|
12208
12582
|
function applyResize(box, handle, dxScreen, dyScreen, zoom, opts = {}) {
|
|
12209
12583
|
const scale = zoom || 1;
|
|
12210
|
-
const minSize = opts.minSize ??
|
|
12584
|
+
const minSize = opts.minSize ?? chunkIPYAN574_js.MIN_ELEMENT_SIZE;
|
|
12211
12585
|
const rotation = rotationOf(box);
|
|
12212
12586
|
const local = rotateDelta(dxScreen / scale, dyScreen / scale, rotation);
|
|
12213
12587
|
const dx = local.x;
|
|
@@ -12234,7 +12608,7 @@ function applyResize(box, handle, dxScreen, dyScreen, zoom, opts = {}) {
|
|
|
12234
12608
|
}
|
|
12235
12609
|
return { x: newX, y: newY, width: newW, height: newH, rotation };
|
|
12236
12610
|
}
|
|
12237
|
-
function snapBoxToGrid(box, handle, gridSpacingPx, minSize =
|
|
12611
|
+
function snapBoxToGrid(box, handle, gridSpacingPx, minSize = chunkIPYAN574_js.MIN_ELEMENT_SIZE) {
|
|
12238
12612
|
if (handle === null || gridSpacingPx <= 0) {
|
|
12239
12613
|
return box;
|
|
12240
12614
|
}
|
|
@@ -12264,7 +12638,7 @@ function snapBoxToGrid(box, handle, gridSpacingPx, minSize = chunkFWF2SP6N_js.MI
|
|
|
12264
12638
|
}
|
|
12265
12639
|
return { x, y, width, height };
|
|
12266
12640
|
}
|
|
12267
|
-
function computeMarqueeHitIds(marquee, elements, minSize =
|
|
12641
|
+
function computeMarqueeHitIds(marquee, elements, minSize = chunkIPYAN574_js.MIN_ELEMENT_SIZE) {
|
|
12268
12642
|
const minX = Math.min(marquee.startX, marquee.currentX);
|
|
12269
12643
|
const minY = Math.min(marquee.startY, marquee.currentY);
|
|
12270
12644
|
const maxX = Math.max(marquee.startX, marquee.currentX);
|
|
@@ -13819,7 +14193,7 @@ var THEME_COLOR_LABELS = {
|
|
|
13819
14193
|
};
|
|
13820
14194
|
function buildThemeColorGrid(colorScheme) {
|
|
13821
14195
|
return THEME_COLOR_TINT_ROWS.map(
|
|
13822
|
-
(row) =>
|
|
14196
|
+
(row) => chunkIPYAN574_js.THEME_COLOR_SCHEME_KEYS.map((key) => ({
|
|
13823
14197
|
hex: row.transform(colorScheme[key]),
|
|
13824
14198
|
schemeKey: key,
|
|
13825
14199
|
rowLabel: row.label,
|
|
@@ -14147,6 +14521,23 @@ function getConnectionSites(width, height) {
|
|
|
14147
14521
|
// left center
|
|
14148
14522
|
];
|
|
14149
14523
|
}
|
|
14524
|
+
function getShapeConnectionSites(shape) {
|
|
14525
|
+
const geo = shape;
|
|
14526
|
+
const cxn = geo.customGeometryConnectionSites;
|
|
14527
|
+
if (!cxn || cxn.length === 0) {
|
|
14528
|
+
return getConnectionSites(shape.width, shape.height);
|
|
14529
|
+
}
|
|
14530
|
+
const pathW = geo.pathWidth && geo.pathWidth > 0 ? geo.pathWidth : shape.width;
|
|
14531
|
+
const pathH = geo.pathHeight && geo.pathHeight > 0 ? geo.pathHeight : shape.height;
|
|
14532
|
+
const vars = chunkIPYAN574_js.createBuiltinVariables({ w: pathW, h: pathH });
|
|
14533
|
+
const scaleX = pathW > 0 ? shape.width / pathW : 1;
|
|
14534
|
+
const scaleY = pathH > 0 ? shape.height / pathH : 1;
|
|
14535
|
+
return cxn.map((site, index) => ({
|
|
14536
|
+
x: chunkIPYAN574_js.resolveCoordinate(site.posX, vars) * scaleX,
|
|
14537
|
+
y: chunkIPYAN574_js.resolveCoordinate(site.posY, vars) * scaleY,
|
|
14538
|
+
index
|
|
14539
|
+
}));
|
|
14540
|
+
}
|
|
14150
14541
|
function rerouteConnectorsForMovedElements(elements, movedElementIds) {
|
|
14151
14542
|
if (movedElementIds.size === 0) {
|
|
14152
14543
|
return [];
|
|
@@ -14190,7 +14581,7 @@ function computeConnectorGeometry(connector, startConn, endConn, elementMap) {
|
|
|
14190
14581
|
if (!startShape) {
|
|
14191
14582
|
return null;
|
|
14192
14583
|
}
|
|
14193
|
-
const sites =
|
|
14584
|
+
const sites = getShapeConnectionSites(startShape);
|
|
14194
14585
|
const siteIndex = startConn.connectionSiteIndex ?? 0;
|
|
14195
14586
|
const site = sites[siteIndex] ?? sites[0];
|
|
14196
14587
|
sx = startShape.x + site.x;
|
|
@@ -14206,7 +14597,7 @@ function computeConnectorGeometry(connector, startConn, endConn, elementMap) {
|
|
|
14206
14597
|
if (!endShape) {
|
|
14207
14598
|
return null;
|
|
14208
14599
|
}
|
|
14209
|
-
const sites =
|
|
14600
|
+
const sites = getShapeConnectionSites(endShape);
|
|
14210
14601
|
const siteIndex = endConn.connectionSiteIndex ?? 0;
|
|
14211
14602
|
const site = sites[siteIndex] ?? sites[0];
|
|
14212
14603
|
ex = endShape.x + site.x;
|
|
@@ -14215,12 +14606,16 @@ function computeConnectorGeometry(connector, startConn, endConn, elementMap) {
|
|
|
14215
14606
|
ex = connector.x + connector.width;
|
|
14216
14607
|
ey = connector.y + connector.height;
|
|
14217
14608
|
}
|
|
14609
|
+
const flipHorizontal = ex < sx;
|
|
14610
|
+
const flipVertical = ey < sy;
|
|
14218
14611
|
return {
|
|
14219
14612
|
id: connector.id,
|
|
14220
14613
|
x: Math.min(sx, ex),
|
|
14221
14614
|
y: Math.min(sy, ey),
|
|
14222
14615
|
width: Math.abs(ex - sx) || 1,
|
|
14223
|
-
height: Math.abs(ey - sy) || 1
|
|
14616
|
+
height: Math.abs(ey - sy) || 1,
|
|
14617
|
+
flipHorizontal,
|
|
14618
|
+
flipVertical
|
|
14224
14619
|
};
|
|
14225
14620
|
}
|
|
14226
14621
|
function applyReroutedConnectors(elements, rerouted) {
|
|
@@ -14236,13 +14631,20 @@ function applyReroutedConnectors(elements, rerouted) {
|
|
|
14236
14631
|
if (!update) {
|
|
14237
14632
|
return el;
|
|
14238
14633
|
}
|
|
14239
|
-
|
|
14634
|
+
const next = {
|
|
14240
14635
|
...el,
|
|
14241
14636
|
x: update.x,
|
|
14242
14637
|
y: update.y,
|
|
14243
14638
|
width: update.width,
|
|
14244
14639
|
height: update.height
|
|
14245
14640
|
};
|
|
14641
|
+
if (update.flipHorizontal !== void 0) {
|
|
14642
|
+
next.flipHorizontal = update.flipHorizontal;
|
|
14643
|
+
}
|
|
14644
|
+
if (update.flipVertical !== void 0) {
|
|
14645
|
+
next.flipVertical = update.flipVertical;
|
|
14646
|
+
}
|
|
14647
|
+
return next;
|
|
14246
14648
|
});
|
|
14247
14649
|
}
|
|
14248
14650
|
function getCompoundLineOffsets(compoundLine, strokeWidth) {
|
|
@@ -14295,7 +14697,7 @@ function svgLineCap(lineCap) {
|
|
|
14295
14697
|
}
|
|
14296
14698
|
function copyFormatFromElement(element) {
|
|
14297
14699
|
const result = {};
|
|
14298
|
-
if (
|
|
14700
|
+
if (chunkIPYAN574_js.hasShapeProperties(element) && element.shapeStyle) {
|
|
14299
14701
|
const s = element.shapeStyle;
|
|
14300
14702
|
result.shapeStyle = {
|
|
14301
14703
|
fillColor: s.fillColor,
|
|
@@ -14324,7 +14726,7 @@ function copyFormatFromElement(element) {
|
|
|
14324
14726
|
softEdgeRadius: s.softEdgeRadius
|
|
14325
14727
|
};
|
|
14326
14728
|
}
|
|
14327
|
-
if (
|
|
14729
|
+
if (chunkIPYAN574_js.hasTextProperties(element) && element.textStyle) {
|
|
14328
14730
|
const t = element.textStyle;
|
|
14329
14731
|
result.textStyle = {
|
|
14330
14732
|
fontFamily: t.fontFamily,
|
|
@@ -14355,7 +14757,7 @@ function definedEntries(obj) {
|
|
|
14355
14757
|
}
|
|
14356
14758
|
function applyFormatToElement(element, format) {
|
|
14357
14759
|
let updated = { ...element };
|
|
14358
|
-
if (format.shapeStyle &&
|
|
14760
|
+
if (format.shapeStyle && chunkIPYAN574_js.hasShapeProperties(updated)) {
|
|
14359
14761
|
updated = {
|
|
14360
14762
|
...updated,
|
|
14361
14763
|
shapeStyle: {
|
|
@@ -14364,7 +14766,7 @@ function applyFormatToElement(element, format) {
|
|
|
14364
14766
|
}
|
|
14365
14767
|
};
|
|
14366
14768
|
}
|
|
14367
|
-
if (format.textStyle &&
|
|
14769
|
+
if (format.textStyle && chunkIPYAN574_js.hasTextProperties(updated)) {
|
|
14368
14770
|
updated = {
|
|
14369
14771
|
...updated,
|
|
14370
14772
|
textStyle: {
|
|
@@ -14379,7 +14781,7 @@ function hasCopyableFormat(element) {
|
|
|
14379
14781
|
if (!element) {
|
|
14380
14782
|
return false;
|
|
14381
14783
|
}
|
|
14382
|
-
return
|
|
14784
|
+
return chunkIPYAN574_js.hasShapeProperties(element) || chunkIPYAN574_js.hasTextProperties(element);
|
|
14383
14785
|
}
|
|
14384
14786
|
function copySegmentMetadata(from, to) {
|
|
14385
14787
|
if (from.equationXml !== void 0) {
|
|
@@ -14516,7 +14918,7 @@ function getRoundRectRadiusPx(element) {
|
|
|
14516
14918
|
return Math.min(Math.max(element.width, 1), Math.max(element.height, 1)) * 0.5 * normalizedAdjustment;
|
|
14517
14919
|
}
|
|
14518
14920
|
function getShapeAdjustmentHandleDescriptor(element) {
|
|
14519
|
-
if (!
|
|
14921
|
+
if (!chunkIPYAN574_js.hasShapeProperties(element)) {
|
|
14520
14922
|
return null;
|
|
14521
14923
|
}
|
|
14522
14924
|
const normalizedShapeType = String(element.shapeType || "").toLowerCase();
|
|
@@ -15508,7 +15910,7 @@ function createSyncGate(onOpen, graceMs = INITIAL_SYNC_GRACE_MS) {
|
|
|
15508
15910
|
var POSITION_THRESHOLD = 2;
|
|
15509
15911
|
var SIZE_THRESHOLD = 2;
|
|
15510
15912
|
function getElementText(element) {
|
|
15511
|
-
if (!
|
|
15913
|
+
if (!chunkIPYAN574_js.hasTextProperties(element)) {
|
|
15512
15914
|
return "";
|
|
15513
15915
|
}
|
|
15514
15916
|
if (element.textSegments && element.textSegments.length > 0) {
|
|
@@ -15776,7 +16178,308 @@ var INSTANT = {
|
|
|
15776
16178
|
};
|
|
15777
16179
|
var DEFAULT_TRANSITION_DURATION_MS = 1e3;
|
|
15778
16180
|
var EASE = "ease-in-out";
|
|
15779
|
-
var
|
|
16181
|
+
var P14_TRANSITION_KEYFRAMES = `
|
|
16182
|
+
/* \u2500\u2500 Conveyor (translate X with staggered timing) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
16183
|
+
@keyframes pptx-tr-conveyor-in-from-right {
|
|
16184
|
+
from { transform: translateX(100%) rotateY(-30deg); }
|
|
16185
|
+
60% { transform: translateX(20%) rotateY(-10deg); }
|
|
16186
|
+
to { transform: translateX(0) rotateY(0deg); }
|
|
16187
|
+
}
|
|
16188
|
+
@keyframes pptx-tr-conveyor-out-to-left {
|
|
16189
|
+
from { transform: translateX(0) rotateY(0deg); }
|
|
16190
|
+
40% { transform: translateX(-20%) rotateY(10deg); }
|
|
16191
|
+
to { transform: translateX(-100%) rotateY(30deg); }
|
|
16192
|
+
}
|
|
16193
|
+
@keyframes pptx-tr-conveyor-in-from-left {
|
|
16194
|
+
from { transform: translateX(-100%) rotateY(30deg); }
|
|
16195
|
+
60% { transform: translateX(-20%) rotateY(10deg); }
|
|
16196
|
+
to { transform: translateX(0) rotateY(0deg); }
|
|
16197
|
+
}
|
|
16198
|
+
@keyframes pptx-tr-conveyor-out-to-right {
|
|
16199
|
+
from { transform: translateX(0) rotateY(0deg); }
|
|
16200
|
+
40% { transform: translateX(20%) rotateY(-10deg); }
|
|
16201
|
+
to { transform: translateX(100%) rotateY(-30deg); }
|
|
16202
|
+
}
|
|
16203
|
+
|
|
16204
|
+
/* \u2500\u2500 Doors (clip-path from center split) \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 */
|
|
16205
|
+
@keyframes pptx-tr-doors-horz {
|
|
16206
|
+
from { clip-path: inset(0 50%); }
|
|
16207
|
+
to { clip-path: inset(0 0); }
|
|
16208
|
+
}
|
|
16209
|
+
@keyframes pptx-tr-doors-vert {
|
|
16210
|
+
from { clip-path: inset(50% 0); }
|
|
16211
|
+
to { clip-path: inset(0 0); }
|
|
16212
|
+
}
|
|
16213
|
+
|
|
16214
|
+
/* \u2500\u2500 Ferris (rotate elements around center) \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 */
|
|
16215
|
+
@keyframes pptx-tr-ferris-in-from-right {
|
|
16216
|
+
from { transform: translateX(80%) rotate(45deg) scale(0.6); opacity: 0; }
|
|
16217
|
+
to { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }
|
|
16218
|
+
}
|
|
16219
|
+
@keyframes pptx-tr-ferris-out-to-left {
|
|
16220
|
+
from { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }
|
|
16221
|
+
to { transform: translateX(-80%) rotate(-45deg) scale(0.6); opacity: 0; }
|
|
16222
|
+
}
|
|
16223
|
+
@keyframes pptx-tr-ferris-in-from-left {
|
|
16224
|
+
from { transform: translateX(-80%) rotate(-45deg) scale(0.6); opacity: 0; }
|
|
16225
|
+
to { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }
|
|
16226
|
+
}
|
|
16227
|
+
@keyframes pptx-tr-ferris-out-to-right {
|
|
16228
|
+
from { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }
|
|
16229
|
+
to { transform: translateX(80%) rotate(45deg) scale(0.6); opacity: 0; }
|
|
16230
|
+
}
|
|
16231
|
+
|
|
16232
|
+
/* \u2500\u2500 Flash (bright flash opacity burst) \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 */
|
|
16233
|
+
@keyframes pptx-tr-flash-white {
|
|
16234
|
+
0% { opacity: 1; }
|
|
16235
|
+
30% { opacity: 0; }
|
|
16236
|
+
50% { opacity: 0; }
|
|
16237
|
+
100% { opacity: 1; }
|
|
16238
|
+
}
|
|
16239
|
+
@keyframes pptx-tr-flash-in {
|
|
16240
|
+
0% { opacity: 0; }
|
|
16241
|
+
50% { opacity: 0; }
|
|
16242
|
+
70% { opacity: 1; }
|
|
16243
|
+
100% { opacity: 1; }
|
|
16244
|
+
}
|
|
16245
|
+
|
|
16246
|
+
/* \u2500\u2500 Flythrough (scale + translate Z-axis feel) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
16247
|
+
@keyframes pptx-tr-flythrough-in {
|
|
16248
|
+
from { transform: scale(4) translateZ(200px); opacity: 0; filter: blur(8px); }
|
|
16249
|
+
to { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }
|
|
16250
|
+
}
|
|
16251
|
+
@keyframes pptx-tr-flythrough-out {
|
|
16252
|
+
from { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }
|
|
16253
|
+
to { transform: scale(0.1) translateZ(-200px); opacity: 0; filter: blur(8px); }
|
|
16254
|
+
}
|
|
16255
|
+
@keyframes pptx-tr-flythrough-reverse-in {
|
|
16256
|
+
from { transform: scale(0.1) translateZ(-200px); opacity: 0; filter: blur(8px); }
|
|
16257
|
+
to { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }
|
|
16258
|
+
}
|
|
16259
|
+
@keyframes pptx-tr-flythrough-reverse-out {
|
|
16260
|
+
from { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }
|
|
16261
|
+
to { transform: scale(4) translateZ(200px); opacity: 0; filter: blur(8px); }
|
|
16262
|
+
}
|
|
16263
|
+
|
|
16264
|
+
/* \u2500\u2500 Gallery (translate with perspective) \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 */
|
|
16265
|
+
@keyframes pptx-tr-gallery-in-from-right {
|
|
16266
|
+
from { transform: perspective(800px) translateX(100%) rotateY(-45deg); opacity: 0.5; }
|
|
16267
|
+
to { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }
|
|
16268
|
+
}
|
|
16269
|
+
@keyframes pptx-tr-gallery-out-to-left {
|
|
16270
|
+
from { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }
|
|
16271
|
+
to { transform: perspective(800px) translateX(-100%) rotateY(45deg); opacity: 0.5; }
|
|
16272
|
+
}
|
|
16273
|
+
@keyframes pptx-tr-gallery-in-from-left {
|
|
16274
|
+
from { transform: perspective(800px) translateX(-100%) rotateY(45deg); opacity: 0.5; }
|
|
16275
|
+
to { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }
|
|
16276
|
+
}
|
|
16277
|
+
@keyframes pptx-tr-gallery-out-to-right {
|
|
16278
|
+
from { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }
|
|
16279
|
+
to { transform: perspective(800px) translateX(100%) rotateY(-45deg); opacity: 0.5; }
|
|
16280
|
+
}
|
|
16281
|
+
|
|
16282
|
+
/* \u2500\u2500 Glitter (particle dissolve effect) \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 */
|
|
16283
|
+
@keyframes pptx-tr-glitter-in {
|
|
16284
|
+
from { opacity: 0; filter: brightness(1.5) contrast(1.3) blur(2px); }
|
|
16285
|
+
60% { opacity: 0.7; filter: brightness(1.2) contrast(1.1) blur(1px); }
|
|
16286
|
+
to { opacity: 1; filter: brightness(1) contrast(1) blur(0); }
|
|
16287
|
+
}
|
|
16288
|
+
|
|
16289
|
+
/* \u2500\u2500 Honeycomb (hexagonal reveal) \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 */
|
|
16290
|
+
@keyframes pptx-tr-honeycomb-in {
|
|
16291
|
+
from {
|
|
16292
|
+
clip-path: polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%, 50% 50%, 50% 50%);
|
|
16293
|
+
opacity: 0;
|
|
16294
|
+
}
|
|
16295
|
+
to {
|
|
16296
|
+
clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
|
|
16297
|
+
opacity: 1;
|
|
16298
|
+
}
|
|
16299
|
+
}
|
|
16300
|
+
@keyframes pptx-tr-honeycomb-out {
|
|
16301
|
+
from { opacity: 1; }
|
|
16302
|
+
to { opacity: 0; filter: blur(2px); }
|
|
16303
|
+
}
|
|
16304
|
+
|
|
16305
|
+
/* \u2500\u2500 Pan (large-scale translate) \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 */
|
|
16306
|
+
@keyframes pptx-tr-pan-from-right {
|
|
16307
|
+
from { transform: translateX(100%); }
|
|
16308
|
+
to { transform: translateX(0); }
|
|
16309
|
+
}
|
|
16310
|
+
@keyframes pptx-tr-pan-to-left {
|
|
16311
|
+
from { transform: translateX(0); }
|
|
16312
|
+
to { transform: translateX(-100%); }
|
|
16313
|
+
}
|
|
16314
|
+
@keyframes pptx-tr-pan-from-left {
|
|
16315
|
+
from { transform: translateX(-100%); }
|
|
16316
|
+
to { transform: translateX(0); }
|
|
16317
|
+
}
|
|
16318
|
+
@keyframes pptx-tr-pan-to-right {
|
|
16319
|
+
from { transform: translateX(0); }
|
|
16320
|
+
to { transform: translateX(100%); }
|
|
16321
|
+
}
|
|
16322
|
+
@keyframes pptx-tr-pan-from-bottom {
|
|
16323
|
+
from { transform: translateY(100%); }
|
|
16324
|
+
to { transform: translateY(0); }
|
|
16325
|
+
}
|
|
16326
|
+
@keyframes pptx-tr-pan-to-top {
|
|
16327
|
+
from { transform: translateY(0); }
|
|
16328
|
+
to { transform: translateY(-100%); }
|
|
16329
|
+
}
|
|
16330
|
+
@keyframes pptx-tr-pan-from-top {
|
|
16331
|
+
from { transform: translateY(-100%); }
|
|
16332
|
+
to { transform: translateY(0); }
|
|
16333
|
+
}
|
|
16334
|
+
@keyframes pptx-tr-pan-to-bottom {
|
|
16335
|
+
from { transform: translateY(0); }
|
|
16336
|
+
to { transform: translateY(100%); }
|
|
16337
|
+
}
|
|
16338
|
+
`;
|
|
16339
|
+
var P14_TRANSITION_KEYFRAMES_2 = `
|
|
16340
|
+
/* \u2500\u2500 Prism (3D rotation via perspective transform) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
16341
|
+
@keyframes pptx-tr-prism-in-from-right {
|
|
16342
|
+
from { transform: perspective(800px) rotateY(-90deg) translateX(50%); opacity: 0; }
|
|
16343
|
+
to { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }
|
|
16344
|
+
}
|
|
16345
|
+
@keyframes pptx-tr-prism-out-to-left {
|
|
16346
|
+
from { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }
|
|
16347
|
+
to { transform: perspective(800px) rotateY(90deg) translateX(-50%); opacity: 0; }
|
|
16348
|
+
}
|
|
16349
|
+
@keyframes pptx-tr-prism-in-from-left {
|
|
16350
|
+
from { transform: perspective(800px) rotateY(90deg) translateX(-50%); opacity: 0; }
|
|
16351
|
+
to { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }
|
|
16352
|
+
}
|
|
16353
|
+
@keyframes pptx-tr-prism-out-to-right {
|
|
16354
|
+
from { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }
|
|
16355
|
+
to { transform: perspective(800px) rotateY(-90deg) translateX(50%); opacity: 0; }
|
|
16356
|
+
}
|
|
16357
|
+
@keyframes pptx-tr-prism-in-from-bottom {
|
|
16358
|
+
from { transform: perspective(800px) rotateX(90deg) translateY(50%); opacity: 0; }
|
|
16359
|
+
to { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }
|
|
16360
|
+
}
|
|
16361
|
+
@keyframes pptx-tr-prism-out-to-top {
|
|
16362
|
+
from { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }
|
|
16363
|
+
to { transform: perspective(800px) rotateX(-90deg) translateY(-50%); opacity: 0; }
|
|
16364
|
+
}
|
|
16365
|
+
@keyframes pptx-tr-prism-in-from-top {
|
|
16366
|
+
from { transform: perspective(800px) rotateX(-90deg) translateY(-50%); opacity: 0; }
|
|
16367
|
+
to { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }
|
|
16368
|
+
}
|
|
16369
|
+
@keyframes pptx-tr-prism-out-to-bottom {
|
|
16370
|
+
from { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }
|
|
16371
|
+
to { transform: perspective(800px) rotateX(90deg) translateY(50%); opacity: 0; }
|
|
16372
|
+
}
|
|
16373
|
+
|
|
16374
|
+
/* \u2500\u2500 Reveal (slide away reveal) \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 */
|
|
16375
|
+
@keyframes pptx-tr-reveal-out-to-right {
|
|
16376
|
+
from { transform: translateX(0); }
|
|
16377
|
+
to { transform: translateX(100%); }
|
|
16378
|
+
}
|
|
16379
|
+
@keyframes pptx-tr-reveal-out-to-left {
|
|
16380
|
+
from { transform: translateX(0); }
|
|
16381
|
+
to { transform: translateX(-100%); }
|
|
16382
|
+
}
|
|
16383
|
+
@keyframes pptx-tr-reveal-in {
|
|
16384
|
+
from { opacity: 0.5; }
|
|
16385
|
+
to { opacity: 1; }
|
|
16386
|
+
}
|
|
16387
|
+
|
|
16388
|
+
/* \u2500\u2500 Ripple (expanding ring clip-path) \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 */
|
|
16389
|
+
@keyframes pptx-tr-ripple-in {
|
|
16390
|
+
from { clip-path: circle(0% at 50% 50%); opacity: 0.5; }
|
|
16391
|
+
30% { clip-path: circle(20% at 50% 50%); opacity: 0.7; }
|
|
16392
|
+
60% { clip-path: circle(50% at 50% 50%); opacity: 0.9; }
|
|
16393
|
+
to { clip-path: circle(75% at 50% 50%); opacity: 1; }
|
|
16394
|
+
}
|
|
16395
|
+
|
|
16396
|
+
/* \u2500\u2500 Shred (fragmented clip-path pieces) \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 */
|
|
16397
|
+
@keyframes pptx-tr-shred-strips-in {
|
|
16398
|
+
from { clip-path: inset(0 100% 0 0); opacity: 0; }
|
|
16399
|
+
30% { clip-path: inset(0 60% 0 0); opacity: 0.5; }
|
|
16400
|
+
to { clip-path: inset(0); opacity: 1; }
|
|
16401
|
+
}
|
|
16402
|
+
@keyframes pptx-tr-shred-rectangles-in {
|
|
16403
|
+
from { clip-path: inset(50%); opacity: 0; }
|
|
16404
|
+
40% { clip-path: inset(20%); opacity: 0.6; }
|
|
16405
|
+
to { clip-path: inset(0); opacity: 1; }
|
|
16406
|
+
}
|
|
16407
|
+
@keyframes pptx-tr-shred-out {
|
|
16408
|
+
from { opacity: 1; }
|
|
16409
|
+
to { opacity: 0; filter: blur(2px); }
|
|
16410
|
+
}
|
|
16411
|
+
|
|
16412
|
+
/* \u2500\u2500 Switch (flip/rotate swap) \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 */
|
|
16413
|
+
@keyframes pptx-tr-switch-in-from-right {
|
|
16414
|
+
from { transform: perspective(800px) rotateY(-180deg); opacity: 0; }
|
|
16415
|
+
to { transform: perspective(800px) rotateY(0deg); opacity: 1; }
|
|
16416
|
+
}
|
|
16417
|
+
@keyframes pptx-tr-switch-out-to-left {
|
|
16418
|
+
from { transform: perspective(800px) rotateY(0deg); opacity: 1; }
|
|
16419
|
+
to { transform: perspective(800px) rotateY(180deg); opacity: 0; }
|
|
16420
|
+
}
|
|
16421
|
+
@keyframes pptx-tr-switch-in-from-left {
|
|
16422
|
+
from { transform: perspective(800px) rotateY(180deg); opacity: 0; }
|
|
16423
|
+
to { transform: perspective(800px) rotateY(0deg); opacity: 1; }
|
|
16424
|
+
}
|
|
16425
|
+
@keyframes pptx-tr-switch-out-to-right {
|
|
16426
|
+
from { transform: perspective(800px) rotateY(0deg); opacity: 1; }
|
|
16427
|
+
to { transform: perspective(800px) rotateY(-180deg); opacity: 0; }
|
|
16428
|
+
}
|
|
16429
|
+
|
|
16430
|
+
/* \u2500\u2500 Vortex (rotate + scale spiral) \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 */
|
|
16431
|
+
@keyframes pptx-tr-vortex-in {
|
|
16432
|
+
from { transform: rotate(720deg) scale(0); opacity: 0; }
|
|
16433
|
+
to { transform: rotate(0deg) scale(1); opacity: 1; }
|
|
16434
|
+
}
|
|
16435
|
+
@keyframes pptx-tr-vortex-out {
|
|
16436
|
+
from { transform: rotate(0deg) scale(1); opacity: 1; }
|
|
16437
|
+
to { transform: rotate(-720deg) scale(0); opacity: 0; }
|
|
16438
|
+
}
|
|
16439
|
+
|
|
16440
|
+
/* \u2500\u2500 Warp (skew distortion) \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 */
|
|
16441
|
+
@keyframes pptx-tr-warp-in {
|
|
16442
|
+
from { transform: scale(0.3) skewX(30deg) skewY(15deg); opacity: 0; }
|
|
16443
|
+
50% { transform: scale(0.8) skewX(-5deg) skewY(-3deg); opacity: 0.7; }
|
|
16444
|
+
to { transform: scale(1) skewX(0deg) skewY(0deg); opacity: 1; }
|
|
16445
|
+
}
|
|
16446
|
+
@keyframes pptx-tr-warp-out {
|
|
16447
|
+
from { transform: scale(1) skewX(0deg) skewY(0deg); opacity: 1; }
|
|
16448
|
+
50% { transform: scale(0.8) skewX(5deg) skewY(3deg); opacity: 0.7; }
|
|
16449
|
+
to { transform: scale(0.3) skewX(-30deg) skewY(-15deg); opacity: 0; }
|
|
16450
|
+
}
|
|
16451
|
+
@keyframes pptx-tr-warp-reverse-in {
|
|
16452
|
+
from { transform: scale(3) skewX(-20deg) skewY(-10deg); opacity: 0; filter: blur(4px); }
|
|
16453
|
+
to { transform: scale(1) skewX(0deg) skewY(0deg); opacity: 1; filter: blur(0); }
|
|
16454
|
+
}
|
|
16455
|
+
@keyframes pptx-tr-warp-reverse-out {
|
|
16456
|
+
from { transform: scale(1) skewX(0deg) skewY(0deg); opacity: 1; filter: blur(0); }
|
|
16457
|
+
to { transform: scale(3) skewX(20deg) skewY(10deg); opacity: 0; filter: blur(4px); }
|
|
16458
|
+
}
|
|
16459
|
+
|
|
16460
|
+
/* \u2500\u2500 WheelReverse (reverse wheel rotation) \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 */
|
|
16461
|
+
@keyframes pptx-tr-wheel-reverse-in {
|
|
16462
|
+
from { clip-path: circle(0% at 50% 50%); transform: rotate(180deg); }
|
|
16463
|
+
to { clip-path: circle(75% at 50% 50%); transform: rotate(0deg); }
|
|
16464
|
+
}
|
|
16465
|
+
|
|
16466
|
+
/* \u2500\u2500 Window (scale from center with border) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
16467
|
+
@keyframes pptx-tr-window-horz {
|
|
16468
|
+
from { clip-path: inset(0 50%); }
|
|
16469
|
+
to { clip-path: inset(0 0); }
|
|
16470
|
+
}
|
|
16471
|
+
@keyframes pptx-tr-window-vert {
|
|
16472
|
+
from { clip-path: inset(50% 0); }
|
|
16473
|
+
to { clip-path: inset(0 0); }
|
|
16474
|
+
}
|
|
16475
|
+
@keyframes pptx-tr-window-out {
|
|
16476
|
+
from { opacity: 1; transform: scale(1); }
|
|
16477
|
+
to { opacity: 0; transform: scale(0.9); }
|
|
16478
|
+
}
|
|
16479
|
+
`;
|
|
16480
|
+
var P14_TRANSITION_KEYFRAMES_ALL = `${P14_TRANSITION_KEYFRAMES}
|
|
16481
|
+
${P14_TRANSITION_KEYFRAMES_2}`;
|
|
16482
|
+
var CORE_SLIDE_TRANSITION_KEYFRAMES = `
|
|
15780
16483
|
/* \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 */
|
|
15781
16484
|
@keyframes pptx-tr-fade-in {
|
|
15782
16485
|
from { opacity: 0; }
|
|
@@ -16039,8 +16742,243 @@ var SLIDE_TRANSITION_KEYFRAMES = `
|
|
|
16039
16742
|
to { clip-path: circle(75% at 50% 50%); transform: rotate(0deg); }
|
|
16040
16743
|
}
|
|
16041
16744
|
`;
|
|
16745
|
+
var SLIDE_TRANSITION_KEYFRAMES = `${CORE_SLIDE_TRANSITION_KEYFRAMES}
|
|
16746
|
+
${P14_TRANSITION_KEYFRAMES_ALL}`;
|
|
16747
|
+
function resolveLR(direction) {
|
|
16748
|
+
if (direction === "l" || direction === "r") {
|
|
16749
|
+
return direction;
|
|
16750
|
+
}
|
|
16751
|
+
return "l";
|
|
16752
|
+
}
|
|
16753
|
+
function resolveP14Orientation(direction, orient) {
|
|
16754
|
+
if (orient === "horz" || orient === "vert") {
|
|
16755
|
+
return orient;
|
|
16756
|
+
}
|
|
16757
|
+
if (direction === "horz" || direction === "vert") {
|
|
16758
|
+
return direction;
|
|
16759
|
+
}
|
|
16760
|
+
return "horz";
|
|
16761
|
+
}
|
|
16762
|
+
function resolveCardinal(direction) {
|
|
16763
|
+
switch (direction) {
|
|
16764
|
+
case "l":
|
|
16765
|
+
return "left";
|
|
16766
|
+
case "r":
|
|
16767
|
+
return "right";
|
|
16768
|
+
case "u":
|
|
16769
|
+
return "up";
|
|
16770
|
+
case "d":
|
|
16771
|
+
return "down";
|
|
16772
|
+
default:
|
|
16773
|
+
return "left";
|
|
16774
|
+
}
|
|
16775
|
+
}
|
|
16776
|
+
function directionalPair(direction, prefix, dur, ease) {
|
|
16777
|
+
const dir = resolveCardinal(direction);
|
|
16778
|
+
const opposites = {
|
|
16779
|
+
left: ["to-left", "from-right"],
|
|
16780
|
+
right: ["to-right", "from-left"],
|
|
16781
|
+
up: ["to-top", "from-bottom"],
|
|
16782
|
+
down: ["to-bottom", "from-top"]
|
|
16783
|
+
};
|
|
16784
|
+
const [outSuffix, inSuffix] = opposites[dir];
|
|
16785
|
+
return {
|
|
16786
|
+
outgoing: `${prefix}-${outSuffix} ${dur} ${ease} forwards`,
|
|
16787
|
+
incoming: `${prefix}-${inSuffix} ${dur} ${ease} forwards`,
|
|
16788
|
+
outgoingOnTop: false
|
|
16789
|
+
};
|
|
16790
|
+
}
|
|
16791
|
+
function cardinalOutInPair(direction, prefix, dur, ease) {
|
|
16792
|
+
const dir = resolveCardinal(direction);
|
|
16793
|
+
const map = {
|
|
16794
|
+
left: ["out-to-left", "in-from-right"],
|
|
16795
|
+
right: ["out-to-right", "in-from-left"],
|
|
16796
|
+
up: ["out-to-top", "in-from-bottom"],
|
|
16797
|
+
down: ["out-to-bottom", "in-from-top"]
|
|
16798
|
+
};
|
|
16799
|
+
const [outSuffix, inSuffix] = map[dir];
|
|
16800
|
+
return {
|
|
16801
|
+
outgoing: `${prefix}-${outSuffix} ${dur} ${ease} forwards`,
|
|
16802
|
+
incoming: `${prefix}-${inSuffix} ${dur} ${ease} forwards`,
|
|
16803
|
+
outgoingOnTop: false
|
|
16804
|
+
};
|
|
16805
|
+
}
|
|
16806
|
+
function getP14TransitionAnimations(type, durationMs, direction, orient) {
|
|
16807
|
+
const dur = `${durationMs}ms`;
|
|
16808
|
+
const ease = EASE;
|
|
16809
|
+
switch (type) {
|
|
16810
|
+
case "conveyor": {
|
|
16811
|
+
const lr = resolveLR(direction);
|
|
16812
|
+
if (lr === "l") {
|
|
16813
|
+
return {
|
|
16814
|
+
outgoing: `pptx-tr-conveyor-out-to-left ${dur} ${ease} forwards`,
|
|
16815
|
+
incoming: `pptx-tr-conveyor-in-from-right ${dur} ${ease} forwards`,
|
|
16816
|
+
outgoingOnTop: false
|
|
16817
|
+
};
|
|
16818
|
+
}
|
|
16819
|
+
return {
|
|
16820
|
+
outgoing: `pptx-tr-conveyor-out-to-right ${dur} ${ease} forwards`,
|
|
16821
|
+
incoming: `pptx-tr-conveyor-in-from-left ${dur} ${ease} forwards`,
|
|
16822
|
+
outgoingOnTop: false
|
|
16823
|
+
};
|
|
16824
|
+
}
|
|
16825
|
+
case "doors": {
|
|
16826
|
+
const o = resolveP14Orientation(direction, orient);
|
|
16827
|
+
return {
|
|
16828
|
+
outgoing: "none",
|
|
16829
|
+
incoming: o === "vert" ? `pptx-tr-doors-vert ${dur} ${ease} forwards` : `pptx-tr-doors-horz ${dur} ${ease} forwards`,
|
|
16830
|
+
outgoingOnTop: false
|
|
16831
|
+
};
|
|
16832
|
+
}
|
|
16833
|
+
case "ferris": {
|
|
16834
|
+
const lr = resolveLR(direction);
|
|
16835
|
+
if (lr === "l") {
|
|
16836
|
+
return {
|
|
16837
|
+
outgoing: `pptx-tr-ferris-out-to-left ${dur} ${ease} forwards`,
|
|
16838
|
+
incoming: `pptx-tr-ferris-in-from-right ${dur} ${ease} forwards`,
|
|
16839
|
+
outgoingOnTop: false
|
|
16840
|
+
};
|
|
16841
|
+
}
|
|
16842
|
+
return {
|
|
16843
|
+
outgoing: `pptx-tr-ferris-out-to-right ${dur} ${ease} forwards`,
|
|
16844
|
+
incoming: `pptx-tr-ferris-in-from-left ${dur} ${ease} forwards`,
|
|
16845
|
+
outgoingOnTop: false
|
|
16846
|
+
};
|
|
16847
|
+
}
|
|
16848
|
+
case "flash":
|
|
16849
|
+
return {
|
|
16850
|
+
outgoing: `pptx-tr-flash-white ${dur} ${ease} forwards`,
|
|
16851
|
+
incoming: `pptx-tr-flash-in ${dur} ${ease} forwards`,
|
|
16852
|
+
outgoingOnTop: true
|
|
16853
|
+
};
|
|
16854
|
+
case "flythrough": {
|
|
16855
|
+
const isOut = direction === "out";
|
|
16856
|
+
if (isOut) {
|
|
16857
|
+
return {
|
|
16858
|
+
outgoing: `pptx-tr-flythrough-reverse-out ${dur} ${ease} forwards`,
|
|
16859
|
+
incoming: `pptx-tr-flythrough-reverse-in ${dur} ${ease} forwards`,
|
|
16860
|
+
outgoingOnTop: true
|
|
16861
|
+
};
|
|
16862
|
+
}
|
|
16863
|
+
return {
|
|
16864
|
+
outgoing: `pptx-tr-flythrough-out ${dur} ${ease} forwards`,
|
|
16865
|
+
incoming: `pptx-tr-flythrough-in ${dur} ${ease} forwards`,
|
|
16866
|
+
outgoingOnTop: true
|
|
16867
|
+
};
|
|
16868
|
+
}
|
|
16869
|
+
case "gallery": {
|
|
16870
|
+
const lr = resolveLR(direction);
|
|
16871
|
+
if (lr === "l") {
|
|
16872
|
+
return {
|
|
16873
|
+
outgoing: `pptx-tr-gallery-out-to-left ${dur} ${ease} forwards`,
|
|
16874
|
+
incoming: `pptx-tr-gallery-in-from-right ${dur} ${ease} forwards`,
|
|
16875
|
+
outgoingOnTop: false
|
|
16876
|
+
};
|
|
16877
|
+
}
|
|
16878
|
+
return {
|
|
16879
|
+
outgoing: `pptx-tr-gallery-out-to-right ${dur} ${ease} forwards`,
|
|
16880
|
+
incoming: `pptx-tr-gallery-in-from-left ${dur} ${ease} forwards`,
|
|
16881
|
+
outgoingOnTop: false
|
|
16882
|
+
};
|
|
16883
|
+
}
|
|
16884
|
+
case "glitter":
|
|
16885
|
+
return {
|
|
16886
|
+
outgoing: `pptx-tr-fade-out ${dur} ${ease} forwards`,
|
|
16887
|
+
incoming: `pptx-tr-glitter-in ${dur} ${ease} forwards`,
|
|
16888
|
+
outgoingOnTop: true
|
|
16889
|
+
};
|
|
16890
|
+
case "honeycomb":
|
|
16891
|
+
return {
|
|
16892
|
+
outgoing: `pptx-tr-honeycomb-out ${dur} ${ease} forwards`,
|
|
16893
|
+
incoming: `pptx-tr-honeycomb-in ${dur} ${ease} forwards`,
|
|
16894
|
+
outgoingOnTop: true
|
|
16895
|
+
};
|
|
16896
|
+
case "pan":
|
|
16897
|
+
return directionalPair(direction, "pptx-tr-pan", dur, ease);
|
|
16898
|
+
case "prism":
|
|
16899
|
+
return cardinalOutInPair(direction, "pptx-tr-prism", dur, ease);
|
|
16900
|
+
case "reveal": {
|
|
16901
|
+
const lr = resolveLR(direction);
|
|
16902
|
+
return {
|
|
16903
|
+
outgoing: lr === "l" ? `pptx-tr-reveal-out-to-left ${dur} ${ease} forwards` : `pptx-tr-reveal-out-to-right ${dur} ${ease} forwards`,
|
|
16904
|
+
incoming: `pptx-tr-reveal-in ${dur} ${ease} forwards`,
|
|
16905
|
+
outgoingOnTop: true
|
|
16906
|
+
};
|
|
16907
|
+
}
|
|
16908
|
+
case "ripple":
|
|
16909
|
+
return {
|
|
16910
|
+
outgoing: "none",
|
|
16911
|
+
incoming: `pptx-tr-ripple-in ${dur} ${ease} forwards`,
|
|
16912
|
+
outgoingOnTop: false
|
|
16913
|
+
};
|
|
16914
|
+
case "shred": {
|
|
16915
|
+
const pattern = direction === "rectangles" ? "rectangles" : "strips";
|
|
16916
|
+
return {
|
|
16917
|
+
outgoing: `pptx-tr-shred-out ${dur} ${ease} forwards`,
|
|
16918
|
+
incoming: pattern === "rectangles" ? `pptx-tr-shred-rectangles-in ${dur} ${ease} forwards` : `pptx-tr-shred-strips-in ${dur} ${ease} forwards`,
|
|
16919
|
+
outgoingOnTop: true
|
|
16920
|
+
};
|
|
16921
|
+
}
|
|
16922
|
+
case "switch": {
|
|
16923
|
+
const lr = resolveLR(direction);
|
|
16924
|
+
if (lr === "l") {
|
|
16925
|
+
return {
|
|
16926
|
+
outgoing: `pptx-tr-switch-out-to-left ${dur} ${ease} forwards`,
|
|
16927
|
+
incoming: `pptx-tr-switch-in-from-right ${dur} ${ease} forwards`,
|
|
16928
|
+
outgoingOnTop: false
|
|
16929
|
+
};
|
|
16930
|
+
}
|
|
16931
|
+
return {
|
|
16932
|
+
outgoing: `pptx-tr-switch-out-to-right ${dur} ${ease} forwards`,
|
|
16933
|
+
incoming: `pptx-tr-switch-in-from-left ${dur} ${ease} forwards`,
|
|
16934
|
+
outgoingOnTop: false
|
|
16935
|
+
};
|
|
16936
|
+
}
|
|
16937
|
+
case "vortex":
|
|
16938
|
+
return {
|
|
16939
|
+
outgoing: `pptx-tr-vortex-out ${dur} ${ease} forwards`,
|
|
16940
|
+
incoming: `pptx-tr-vortex-in ${dur} ${ease} forwards`,
|
|
16941
|
+
outgoingOnTop: true
|
|
16942
|
+
};
|
|
16943
|
+
case "warp": {
|
|
16944
|
+
const isOut = direction === "out";
|
|
16945
|
+
if (isOut) {
|
|
16946
|
+
return {
|
|
16947
|
+
outgoing: `pptx-tr-warp-reverse-out ${dur} ${ease} forwards`,
|
|
16948
|
+
incoming: `pptx-tr-warp-reverse-in ${dur} ${ease} forwards`,
|
|
16949
|
+
outgoingOnTop: true
|
|
16950
|
+
};
|
|
16951
|
+
}
|
|
16952
|
+
return {
|
|
16953
|
+
outgoing: `pptx-tr-warp-out ${dur} ${ease} forwards`,
|
|
16954
|
+
incoming: `pptx-tr-warp-in ${dur} ${ease} forwards`,
|
|
16955
|
+
outgoingOnTop: true
|
|
16956
|
+
};
|
|
16957
|
+
}
|
|
16958
|
+
case "wheelReverse":
|
|
16959
|
+
return {
|
|
16960
|
+
outgoing: "none",
|
|
16961
|
+
incoming: `pptx-tr-wheel-reverse-in ${dur} ${ease} forwards`,
|
|
16962
|
+
outgoingOnTop: false
|
|
16963
|
+
};
|
|
16964
|
+
case "window": {
|
|
16965
|
+
const o = resolveP14Orientation(direction, orient);
|
|
16966
|
+
return {
|
|
16967
|
+
outgoing: `pptx-tr-window-out ${dur} ${ease} forwards`,
|
|
16968
|
+
incoming: o === "vert" ? `pptx-tr-window-vert ${dur} ${ease} forwards` : `pptx-tr-window-horz ${dur} ${ease} forwards`,
|
|
16969
|
+
outgoingOnTop: true
|
|
16970
|
+
};
|
|
16971
|
+
}
|
|
16972
|
+
default:
|
|
16973
|
+
return void 0;
|
|
16974
|
+
}
|
|
16975
|
+
}
|
|
16042
16976
|
function getSlideTransitionAnimations(type, durationMs, direction, orient, spokes) {
|
|
16043
16977
|
const dur = `${durationMs}ms`;
|
|
16978
|
+
const p14 = getP14TransitionAnimations(type, durationMs, direction, orient);
|
|
16979
|
+
if (p14) {
|
|
16980
|
+
return p14;
|
|
16981
|
+
}
|
|
16044
16982
|
switch (type) {
|
|
16045
16983
|
case "none":
|
|
16046
16984
|
case "cut":
|
|
@@ -16242,31 +17180,13 @@ function getSlideTransitionAnimations(type, durationMs, direction, orient, spoke
|
|
|
16242
17180
|
const randomType = RANDOM_ELIGIBLE_TYPES[Math.floor(Math.random() * RANDOM_ELIGIBLE_TYPES.length)];
|
|
16243
17181
|
return getSlideTransitionAnimations(randomType, durationMs, direction, orient);
|
|
16244
17182
|
}
|
|
16245
|
-
//
|
|
16246
|
-
//
|
|
16247
|
-
//
|
|
16248
|
-
// `getP14TransitionAnimations
|
|
16249
|
-
|
|
16250
|
-
|
|
16251
|
-
|
|
16252
|
-
return getSlideTransitionAnimations("push", durationMs, direction, orient);
|
|
16253
|
-
case "reveal":
|
|
16254
|
-
return getSlideTransitionAnimations("wipe", durationMs, direction, orient);
|
|
16255
|
-
case "doors":
|
|
16256
|
-
return getSlideTransitionAnimations("split", durationMs, direction, orient);
|
|
16257
|
-
case "switch":
|
|
16258
|
-
case "flythrough":
|
|
16259
|
-
case "ferris":
|
|
16260
|
-
case "prism":
|
|
16261
|
-
return getSlideTransitionAnimations("zoom", durationMs, direction, orient);
|
|
16262
|
-
case "ripple":
|
|
16263
|
-
case "honeycomb":
|
|
16264
|
-
case "glitter":
|
|
16265
|
-
case "shred":
|
|
16266
|
-
return getSlideTransitionAnimations("dissolve", durationMs, direction, orient);
|
|
16267
|
-
case "flash":
|
|
16268
|
-
return getSlideTransitionAnimations("fade", durationMs, direction, orient);
|
|
16269
|
-
// Fallback (unknown / not-yet-mapped type) — symmetrical cross-fade.
|
|
17183
|
+
// The exotic / 3-D transition family (conveyor/doors/ferris/flash/
|
|
17184
|
+
// flythrough/gallery/glitter/honeycomb/pan/prism/reveal/ripple/shred/
|
|
17185
|
+
// switch/vortex/warp/wheelReverse/window) is handled faithfully above via
|
|
17186
|
+
// `getP14TransitionAnimations` and never reaches this switch.
|
|
17187
|
+
// Fallback (unknown / not-yet-mapped type, e.g. the p15 cinematic set:
|
|
17188
|
+
// cube/flip/rotate/orbit/fracture/peelOff/pageCurl*/airplane/origami)
|
|
17189
|
+
// — symmetrical cross-fade.
|
|
16270
17190
|
default:
|
|
16271
17191
|
return {
|
|
16272
17192
|
outgoing: `pptx-tr-fade-out ${dur} ${EASE} forwards`,
|
|
@@ -16991,30 +17911,46 @@ function computeTargetLayout(nodes, box, palette, style, elementId) {
|
|
|
16991
17911
|
family: "target"
|
|
16992
17912
|
};
|
|
16993
17913
|
}
|
|
16994
|
-
function
|
|
17914
|
+
function interpolateSmartArtPalette(palette, count, method, hueDirection) {
|
|
17915
|
+
if (count <= 0 || palette.length === 0) {
|
|
17916
|
+
return [];
|
|
17917
|
+
}
|
|
17918
|
+
if (palette.length < 2 || count <= palette.length) {
|
|
17919
|
+
return Array.from({ length: count }, (_, i) => palette[i % palette.length]);
|
|
17920
|
+
}
|
|
17921
|
+
const segments = palette.length - 1;
|
|
17922
|
+
return Array.from({ length: count }, (_, i) => {
|
|
17923
|
+
const pos = i / (count - 1) * segments;
|
|
17924
|
+
const lower = Math.min(Math.floor(pos), segments - 1);
|
|
17925
|
+
const frac = pos - lower;
|
|
17926
|
+
return interpolateColor(palette[lower], palette[lower + 1], frac, "hsl", hueDirection);
|
|
17927
|
+
});
|
|
17928
|
+
}
|
|
17929
|
+
function computeSmartArtLayout(nodes, box, palette, style, elementId, resolvedLayoutType, layout, interpolation) {
|
|
16995
17930
|
const flat = flattenNodes(nodes);
|
|
16996
17931
|
const family = resolveLayoutFamily(nodes, resolvedLayoutType, layout);
|
|
17932
|
+
const pal = interpolation?.method === "span" ? interpolateSmartArtPalette(palette, flat.length, "span", interpolation.hueDirection) : palette;
|
|
16997
17933
|
switch (family) {
|
|
16998
17934
|
case "list":
|
|
16999
|
-
return computeListLayout(flat, box,
|
|
17935
|
+
return computeListLayout(flat, box, pal, style, elementId);
|
|
17000
17936
|
case "process":
|
|
17001
|
-
return computeProcessLayout(flat, box,
|
|
17937
|
+
return computeProcessLayout(flat, box, pal, style, elementId);
|
|
17002
17938
|
case "cycle":
|
|
17003
|
-
return computeCycleLayout(flat, box,
|
|
17939
|
+
return computeCycleLayout(flat, box, pal, style, elementId);
|
|
17004
17940
|
case "hierarchy":
|
|
17005
|
-
return computeHierarchyLayout(nodes, box,
|
|
17941
|
+
return computeHierarchyLayout(nodes, box, pal, style, elementId);
|
|
17006
17942
|
case "matrix":
|
|
17007
|
-
return computeMatrixLayout(flat, box,
|
|
17943
|
+
return computeMatrixLayout(flat, box, pal, style, elementId);
|
|
17008
17944
|
case "radial":
|
|
17009
|
-
return computeRadialLayout(flat, box,
|
|
17945
|
+
return computeRadialLayout(flat, box, pal, style, elementId);
|
|
17010
17946
|
case "pyramid":
|
|
17011
|
-
return computePyramidLayout(flat, box,
|
|
17947
|
+
return computePyramidLayout(flat, box, pal, style, elementId);
|
|
17012
17948
|
case "venn":
|
|
17013
|
-
return computeVennLayout(flat, box,
|
|
17949
|
+
return computeVennLayout(flat, box, pal, style, elementId);
|
|
17014
17950
|
case "funnel":
|
|
17015
|
-
return computeFunnelLayout(flat, box,
|
|
17951
|
+
return computeFunnelLayout(flat, box, pal, style, elementId);
|
|
17016
17952
|
case "target":
|
|
17017
|
-
return computeTargetLayout(flat, box,
|
|
17953
|
+
return computeTargetLayout(flat, box, pal, style, elementId);
|
|
17018
17954
|
}
|
|
17019
17955
|
}
|
|
17020
17956
|
function parseViewBox(viewBox) {
|
|
@@ -19082,7 +20018,7 @@ function getAriaRole(element) {
|
|
|
19082
20018
|
case "model3d":
|
|
19083
20019
|
return "img";
|
|
19084
20020
|
case "shape": {
|
|
19085
|
-
if (
|
|
20021
|
+
if (chunkIPYAN574_js.hasTextProperties(element) && element.text) {
|
|
19086
20022
|
return "group";
|
|
19087
20023
|
}
|
|
19088
20024
|
return "img";
|
|
@@ -19095,7 +20031,7 @@ function getAriaLabel(element) {
|
|
|
19095
20031
|
if ((element.type === "image" || element.type === "picture") && "altText" in element && typeof element.altText === "string" && element.altText.trim()) {
|
|
19096
20032
|
return element.altText.trim();
|
|
19097
20033
|
}
|
|
19098
|
-
if (
|
|
20034
|
+
if (chunkIPYAN574_js.hasTextProperties(element) && element.text) {
|
|
19099
20035
|
const text = element.text.trim();
|
|
19100
20036
|
if (text) {
|
|
19101
20037
|
return text.length > 120 ? `${text.slice(0, 117)}...` : text;
|
|
@@ -19502,7 +20438,7 @@ var DEFAULT_CHART_POSITION = { x: 120, y: 120, width: 480, height: 320 };
|
|
|
19502
20438
|
var DEFAULT_CATEGORIES = ["Category 1", "Category 2", "Category 3"];
|
|
19503
20439
|
var DEFAULT_SERIES_VALUES = [4, 3, 5];
|
|
19504
20440
|
function createDefaultChartElement(chartType = DEFAULT_INSERT_CHART_TYPE, position) {
|
|
19505
|
-
return
|
|
20441
|
+
return chunkIPYAN574_js.createChartElement(
|
|
19506
20442
|
chartType,
|
|
19507
20443
|
{
|
|
19508
20444
|
categories: [...DEFAULT_CATEGORIES],
|
|
@@ -20522,7 +21458,7 @@ function computeVirtualRange(totalItems, itemHeight, scrollTop, viewportHeight,
|
|
|
20522
21458
|
};
|
|
20523
21459
|
}
|
|
20524
21460
|
function collectFontsFromElement(element, fonts) {
|
|
20525
|
-
if (
|
|
21461
|
+
if (chunkIPYAN574_js.hasTextProperties(element)) {
|
|
20526
21462
|
if (element.textStyle?.fontFamily) {
|
|
20527
21463
|
fonts.add(element.textStyle.fontFamily);
|
|
20528
21464
|
}
|