ooxml-ui 1.6.0 → 1.6.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/dist/pptx/{chart-3d-view-scene-SE2Y6QRE.cjs → chart-3d-view-scene-55WDENSO.cjs} +38 -38
- package/dist/pptx/{chart-3d-view-scene-OYJ4CDCO.mjs → chart-3d-view-scene-ERX2GRCD.mjs} +2 -2
- package/dist/pptx/{chunk-CIVA3MLN.mjs → chunk-AWQRQUPL.mjs} +2 -1
- package/dist/pptx/{chunk-QLGH3VCC.cjs → chunk-BLAJIEXA.cjs} +152 -152
- package/dist/pptx/{chunk-C5MXTIGE.mjs → chunk-E55NU4BF.mjs} +3 -3
- package/dist/pptx/{chunk-7DMJEYQJ.cjs → chunk-G2YUKLRX.cjs} +1 -1
- package/dist/pptx/{chunk-IURZJAWP.cjs → chunk-LCIXR7WE.cjs} +55 -0
- package/dist/pptx/{chunk-WKLHJEPD.cjs → chunk-RPRC2EG5.cjs} +14 -13
- package/dist/pptx/{chunk-STLXPKJJ.mjs → chunk-SVN6OBG4.mjs} +55 -0
- package/dist/pptx/{chunk-LHNTMJSK.mjs → chunk-TKATCPOK.mjs} +1 -1
- package/dist/pptx/dom/index.cjs +247 -247
- package/dist/pptx/dom/index.mjs +6 -6
- package/dist/pptx/export/html2canvas-clone.cjs +2 -2
- package/dist/pptx/export/html2canvas-clone.mjs +1 -1
- package/dist/pptx/index.cjs +3023 -3023
- package/dist/pptx/index.mjs +4 -4
- package/dist/pptx/render/chart-combo-stock.cjs +3 -3
- package/dist/pptx/render/chart-combo-stock.mjs +1 -1
- package/dist/pptx/render/chart-gradient-defs.d.ts.map +1 -1
- package/dist/pptx/render/chart-overlays.cjs +7 -7
- package/dist/pptx/render/chart-overlays.mjs +1 -1
- package/dist/pptx/render/chart-surface-treemap.cjs +4 -4
- package/dist/pptx/render/chart-surface-treemap.mjs +1 -1
- package/dist/pptx/render/chart-view-model-dom-helpers.d.ts.map +1 -1
- package/dist/pptx/render/chart-view-model.cjs +44 -44
- package/dist/pptx/render/chart-view-model.mjs +1 -1
- package/dist/pptx/render/chart-waterfall-map.cjs +6 -6
- package/dist/pptx/render/chart-waterfall-map.mjs +1 -1
- package/dist/smartart/smartart.d.ts +1 -1
- package/dist/teams/app-rail.d.ts +1 -1
- package/dist/teams/avatar.d.ts +1 -1
- package/dist/teams/call-controls.d.ts +1 -1
- package/dist/teams/call-grid.d.ts +1 -1
- package/dist/teams/channel-list.d.ts +1 -1
- package/dist/teams/chat-composer.d.ts +1 -1
- package/dist/teams/chat-list.d.ts +1 -1
- package/dist/teams/prejoin.d.ts +1 -1
- package/package.json +3 -3
|
@@ -2,7 +2,7 @@ import { buildLayoutPreviewGeometry } from './chunk-A63ASSCH.mjs';
|
|
|
2
2
|
import { remapTextToSegments } from './chunk-GVH4QN7R.mjs';
|
|
3
3
|
import { ANIMATION_RIBBON_CATEGORIES, MOTION_PATH_FAMILIES, motionPathPresetsByFamily, motionPathPresetLabelKey, motionPathFamilyLabelKey, animationsGated, animationsLabel, motionPathPresetById, DEFAULT_MOTION_PATH_PRESET_ID, canRequestAnimations } from './chunk-BPAA5FSB.mjs';
|
|
4
4
|
import { applyCaseTransformToSegments } from './chunk-APQ3OOAT.mjs';
|
|
5
|
-
import { CHART_PART_ATTR, chartPartFromElement, CHART_DRAG_THRESHOLD_PX, resolveChartDragValue, withChartPointValue, computePieChartLayout, widenPieViewModel, formatValueLabel, buildBars, buildGridlines, perspObliqueCameraFor, perspCameraFor, fitPerspView, perspToScreen } from './chunk-
|
|
5
|
+
import { CHART_PART_ATTR, chartPartFromElement, CHART_DRAG_THRESHOLD_PX, resolveChartDragValue, withChartPointValue, computePieChartLayout, widenPieViewModel, formatValueLabel, buildBars, buildGridlines, perspObliqueCameraFor, perspCameraFor, fitPerspView, perspToScreen } from './chunk-AWQRQUPL.mjs';
|
|
6
6
|
import { CAMERA_PRESET_MAP, EMU_PER_PX, getBevelHighlightDirection, MAX_EXTRUSION_LAYERS, getBevelProfileHeightMap, getLightRigLighting, getMaterialLighting, DEFAULT_CUSTOM_REF_PX, isBevelProfileInverted, resolveSmartArt3DStylePath, decorateSmartArt3DMesh, resolveSmartArt3DSceneSetup } from './chunk-RQJOOXRG.mjs';
|
|
7
7
|
import { buildFontCatalog } from './chunk-QX6XPYVA.mjs';
|
|
8
8
|
import { isUrlSafe, parsePpactionUrl, safeOpenUrl, isPpactionUrl, resolveHyperlinkHref, clampSlideIndex } from './chunk-KY75GY5O.mjs';
|
|
@@ -10,10 +10,10 @@ import { createImageElementFromFile } from './chunk-L55MIOBC.mjs';
|
|
|
10
10
|
import { isBulletMarkerSegment, elementBulletKind, paragraphBulletKind, setElementBullets, splitBulletParagraphs, resolveBulletSegments, paragraphsBulletKind, isContentSegment, TEXT_DECORATION_FLAGS } from './chunk-VD7HRMTA.mjs';
|
|
11
11
|
import { CHARACTER_SPACING_OPTIONS, CHANGE_CASE_OPTIONS, LINE_SPACING_OPTIONS, COMMON_FONT_SIZES } from './chunk-SMSCEGAE.mjs';
|
|
12
12
|
import { isCurrentLayout } from './chunk-7BHPBO2O.mjs';
|
|
13
|
-
import { OOXML_PATTERN_PRESETS, normalizeHexColor, getPatternTile, getSvgStrokeDasharray, normalizeStrokeDashType, colorWithOpacity, DEFAULT_STROKE_COLOR, getCssBorderDashStyle, getComputedFillStyle, parseDrawingPercent, clampUnitInterval, DEFAULT_TEXT_FONT_SIZE, fitPolynomial, computeRSquared, computeLinearRegression, applyParetoConversion, chartGridlinesPatch, HYPERLINK_COLOR, getPatternSvg, clampCropValue, buildRectPathGradientImage, DEFAULT_FONT_FAMILY, DEFAULT_TEXT_COLOR, DEFAULT_BODY_INSET_TB_PX, DEFAULT_BODY_INSET_LR_PX, buildDashArray, wrapTextByEstimatedWidth, buildChartViewModel, isSeriesOnSecondaryAxis, computeGradientCenter, sanitizeGradientStops, computeHistogramBins, orderParetoEntries, cumulativePercentOfTotal, getChartStylePalette, chartGridlinesState, buildRectPathGradientSvg, DEFAULT_BAR_GAP_WIDTH, axisTickValues, niceValueAxisBounds, axisTargetIntervals, buildGradientCss, estimateTextWidth, formatAxisValueWithUnits, tint, shade } from './chunk-
|
|
13
|
+
import { OOXML_PATTERN_PRESETS, normalizeHexColor, getPatternTile, getSvgStrokeDasharray, normalizeStrokeDashType, colorWithOpacity, DEFAULT_STROKE_COLOR, getCssBorderDashStyle, getComputedFillStyle, parseDrawingPercent, clampUnitInterval, DEFAULT_TEXT_FONT_SIZE, fitPolynomial, computeRSquared, computeLinearRegression, applyParetoConversion, chartGridlinesPatch, HYPERLINK_COLOR, getPatternSvg, clampCropValue, buildRectPathGradientImage, DEFAULT_FONT_FAMILY, DEFAULT_TEXT_COLOR, DEFAULT_BODY_INSET_TB_PX, DEFAULT_BODY_INSET_LR_PX, buildDashArray, wrapTextByEstimatedWidth, buildChartViewModel, isSeriesOnSecondaryAxis, computeGradientCenter, sanitizeGradientStops, computeHistogramBins, orderParetoEntries, cumulativePercentOfTotal, getChartStylePalette, chartGridlinesState, buildRectPathGradientSvg, DEFAULT_BAR_GAP_WIDTH, axisTickValues, niceValueAxisBounds, axisTargetIntervals, buildGradientCss, estimateTextWidth, formatAxisValueWithUnits, tint, shade } from './chunk-SVN6OBG4.mjs';
|
|
14
14
|
import { tiltChannelsFromVectors, buildInkStrokeView } from './chunk-IB6ZM2E2.mjs';
|
|
15
15
|
import { hasPressureVariation, resolveInkOpacity } from './chunk-JA7WYSRE.mjs';
|
|
16
|
-
import { screenBorder, screenStrokeWidth, settleThreeViews, withAuthoredStrokeWidths, snapshotThreeViewsIntoClone, prepareExportClone } from './chunk-
|
|
16
|
+
import { screenBorder, screenStrokeWidth, settleThreeViews, withAuthoredStrokeWidths, snapshotThreeViewsIntoClone, prepareExportClone } from './chunk-TKATCPOK.mjs';
|
|
17
17
|
import { sanitizeMarkupOrEmpty } from './chunk-3ZI57W7O.mjs';
|
|
18
18
|
import { escapeHtml } from './chunk-IEAO7N4E.mjs';
|
|
19
19
|
import { upsert, animationFor } from './chunk-7KPDES3X.mjs';
|
|
@@ -114,7 +114,7 @@ async function loadChart3DThree() {
|
|
|
114
114
|
|
|
115
115
|
// src/pptx/three-view/scene-registry.ts
|
|
116
116
|
var loaders = {
|
|
117
|
-
chart: async () => (await import('./chart-3d-view-scene-
|
|
117
|
+
chart: async () => (await import('./chart-3d-view-scene-55WDENSO.cjs')).mountChart3DView,
|
|
118
118
|
smartart: async () => (await import('./view-scene-4ZFUCP6S.cjs')).mountSmartArt3DView
|
|
119
119
|
};
|
|
120
120
|
async function loadThreeViewScene(kind) {
|
|
@@ -7671,6 +7671,39 @@ function buildFunnelViewModel(element, chartData, categoryLabels) {
|
|
|
7671
7671
|
legendAnchor: "middle"
|
|
7672
7672
|
};
|
|
7673
7673
|
}
|
|
7674
|
+
function lineSeriesOf(primitive) {
|
|
7675
|
+
if (primitive.kind !== "polyline" && primitive.kind !== "path") return void 0;
|
|
7676
|
+
const { part, stroke } = primitive;
|
|
7677
|
+
return part?.role === "series" && stroke !== void 0 && stroke !== "none" ? part.seriesIndex : void 0;
|
|
7678
|
+
}
|
|
7679
|
+
function lineBounds(primitives) {
|
|
7680
|
+
const xs = [];
|
|
7681
|
+
const ys = [];
|
|
7682
|
+
for (const p of primitives) {
|
|
7683
|
+
const text = p.kind === "polyline" ? p.points : p.kind === "path" ? p.d : "";
|
|
7684
|
+
const nums = text.match(/-?\d*\.?\d+(?:e-?\d+)?/giu)?.map(Number) ?? [];
|
|
7685
|
+
for (let i = 0; i + 1 < nums.length; i += 2) {
|
|
7686
|
+
xs.push(nums[i]);
|
|
7687
|
+
ys.push(nums[i + 1]);
|
|
7688
|
+
}
|
|
7689
|
+
}
|
|
7690
|
+
if (xs.length === 0) return void 0;
|
|
7691
|
+
return {
|
|
7692
|
+
x: Math.min(...xs),
|
|
7693
|
+
y: Math.min(...ys),
|
|
7694
|
+
w: Math.max(...xs) - Math.min(...xs),
|
|
7695
|
+
h: Math.max(...ys) - Math.min(...ys)
|
|
7696
|
+
};
|
|
7697
|
+
}
|
|
7698
|
+
function lineGradientDef(id, gradient, lines) {
|
|
7699
|
+
const box = lineBounds(lines);
|
|
7700
|
+
const def = chart.buildChartGradientDef(id, gradient);
|
|
7701
|
+
if (!box || def.kind !== "linearGradient") return void 0;
|
|
7702
|
+
const at = (fx, fy) => [box.x + fx * box.w, box.y + fy * box.h];
|
|
7703
|
+
const [x1, y1] = at(def.x1, def.y1);
|
|
7704
|
+
const [x2, y2] = at(def.x2, def.y2);
|
|
7705
|
+
return { ...def, gradientUnits: "userSpaceOnUse", x1, y1, x2, y2 };
|
|
7706
|
+
}
|
|
7674
7707
|
function paintSeries(primitive, seriesFills, chartData) {
|
|
7675
7708
|
if (primitive.kind !== "rect" && primitive.kind !== "path" || !primitive.part) {
|
|
7676
7709
|
return primitive;
|
|
@@ -7706,6 +7739,28 @@ function withGradientFills(vm, chartData, elementId) {
|
|
|
7706
7739
|
seriesFills.set(si, `url(#${idFor(`s${si}`)})`);
|
|
7707
7740
|
}
|
|
7708
7741
|
});
|
|
7742
|
+
const lineStrokes = /* @__PURE__ */ new Map();
|
|
7743
|
+
chartData.series.forEach((series, si) => {
|
|
7744
|
+
if (!series.lineGradientFill) return;
|
|
7745
|
+
const def = lineGradientDef(
|
|
7746
|
+
idFor(`line-s${si}`),
|
|
7747
|
+
series.lineGradientFill,
|
|
7748
|
+
next.primitives.filter((p) => lineSeriesOf(p) === si)
|
|
7749
|
+
);
|
|
7750
|
+
if (!def) return;
|
|
7751
|
+
defs.push(def);
|
|
7752
|
+
lineStrokes.set(si, `url(#${def.id})`);
|
|
7753
|
+
});
|
|
7754
|
+
if (lineStrokes.size > 0) {
|
|
7755
|
+
next = {
|
|
7756
|
+
...next,
|
|
7757
|
+
primitives: next.primitives.map((p) => {
|
|
7758
|
+
const si = lineSeriesOf(p);
|
|
7759
|
+
const url = si === void 0 ? void 0 : lineStrokes.get(si);
|
|
7760
|
+
return url ? { ...p, stroke: url } : p;
|
|
7761
|
+
})
|
|
7762
|
+
};
|
|
7763
|
+
}
|
|
7709
7764
|
if (seriesFills.size > 0) {
|
|
7710
7765
|
next = {
|
|
7711
7766
|
...next,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkLCIXR7WE_cjs = require('./chunk-LCIXR7WE.cjs');
|
|
4
4
|
|
|
5
5
|
// src/pptx/render/chart-legend-layout.ts
|
|
6
6
|
var LEGEND_ITEM_WIDTH = 80;
|
|
@@ -16,11 +16,11 @@ function computeChartLegendLayout(vm) {
|
|
|
16
16
|
y,
|
|
17
17
|
color: entry.color,
|
|
18
18
|
label: entry.label,
|
|
19
|
-
fontSize: textStyle?.fontSize !== void 0 ?
|
|
19
|
+
fontSize: textStyle?.fontSize !== void 0 ? chunkLCIXR7WE_cjs.chartFontPx(textStyle.fontSize) : DEFAULT_LEGEND_FONT_SIZE,
|
|
20
20
|
fill: textStyle?.color ?? DEFAULT_LEGEND_TEXT_COLOR,
|
|
21
21
|
fontWeight: textStyle?.bold ? "bold" : "normal",
|
|
22
22
|
fontStyle: textStyle?.italic ? "italic" : "normal",
|
|
23
|
-
fontFamily:
|
|
23
|
+
fontFamily: chunkLCIXR7WE_cjs.chartTextFontFamily(textStyle),
|
|
24
24
|
...entry.lineSwatch ? { lineSwatch: entry.lineSwatch } : {}
|
|
25
25
|
};
|
|
26
26
|
});
|
|
@@ -35,7 +35,7 @@ function buildRadarDragGeometry(element, chartData, categoryLabels, pointIndex)
|
|
|
35
35
|
if (pointIndex < 0 || pointIndex >= catCount) {
|
|
36
36
|
return null;
|
|
37
37
|
}
|
|
38
|
-
const layout =
|
|
38
|
+
const layout = chunkLCIXR7WE_cjs.computePlotLayout(element.width, element.height, chartData, false), cx = layout.plotLeft + layout.plotWidth / 2, cy = layout.plotTop + layout.plotHeight / 2, radius = Math.max(Math.min(layout.plotWidth, layout.plotHeight) / 2 - 4, 1), maxVal = Math.max(1, ...chartData.series.flatMap((s) => s.values.map((v) => Math.abs(v)))), angle = chunkLCIXR7WE_cjs.radarAngle(pointIndex, catCount);
|
|
39
39
|
return { cx, cy, radius, maxVal, angle };
|
|
40
40
|
}
|
|
41
41
|
function resolveRadarDragValue(geometry, pointerX, pointerY) {
|
|
@@ -59,13 +59,13 @@ function buildStackedDragGeometry(element, chartData, seriesIndex, pointIndex) {
|
|
|
59
59
|
chartData.categories.length,
|
|
60
60
|
...seriesValues.map((values) => values.length),
|
|
61
61
|
pointIndex + 1
|
|
62
|
-
), plots =
|
|
62
|
+
), plots = chunkLCIXR7WE_cjs.computeStackedSeriesPlots(seriesValues, catCount, percent), baseValue = plots[seriesIndex]?.base[pointIndex] ?? 0, otherAbsSum = seriesValues.reduce(
|
|
63
63
|
(sum, values, si) => si === seriesIndex ? sum : sum + Math.abs(values[pointIndex] ?? 0),
|
|
64
64
|
0
|
|
65
|
-
), layoutOpts =
|
|
65
|
+
), layoutOpts = chunkLCIXR7WE_cjs.computeLayoutOptions(chartData.axes, chartData.dataTable, chartData.series.length), layout = chunkLCIXR7WE_cjs.computePlotLayout(element.width, element.height, chartData, true, layoutOpts), range = chunkLCIXR7WE_cjs.computeStackedValueRangeForAxis(
|
|
66
66
|
chartData.series,
|
|
67
67
|
catCount,
|
|
68
|
-
|
|
68
|
+
chunkLCIXR7WE_cjs.primaryValueAxis(chartData.axes),
|
|
69
69
|
percent,
|
|
70
70
|
layout.autoPlotHeight
|
|
71
71
|
);
|
|
@@ -180,7 +180,7 @@ function dragValueForPart(viewY, drag, seriesIndex) {
|
|
|
180
180
|
return roundDragValue(valueFromY(viewY, range, drag.plotTop, drag.plotBottom), range);
|
|
181
181
|
}
|
|
182
182
|
function dragAnchorViewY(value, drag, seriesIndex) {
|
|
183
|
-
return
|
|
183
|
+
return chunkLCIXR7WE_cjs.valueToY2(value, rangeForSeries(drag, seriesIndex), drag.plotTop, drag.plotBottom);
|
|
184
184
|
}
|
|
185
185
|
function withChartPointValue(chartData, seriesIndex, pointIndex, value) {
|
|
186
186
|
const series = chartData.series[seriesIndex];
|
|
@@ -201,7 +201,7 @@ function withChartTitle(chartData, title) {
|
|
|
201
201
|
// A multi-run title collapses to one run in its dominant style so this
|
|
202
202
|
// edit does not leave another, now-stale run's text trailing the new
|
|
203
203
|
// title; see `collapseChartTitleRunsForEdit`'s doc.
|
|
204
|
-
...
|
|
204
|
+
...chunkLCIXR7WE_cjs.collapseChartTitleRunsForEdit(chartData, trimmed),
|
|
205
205
|
style: { ...chartData.style, hasTitle: trimmed.length > 0 }
|
|
206
206
|
};
|
|
207
207
|
}
|
|
@@ -247,7 +247,7 @@ function buildPieDragGeometry(element, chartData, pointIndex) {
|
|
|
247
247
|
if (!series || pointIndex < 0 || pointIndex >= series.values.length) {
|
|
248
248
|
return null;
|
|
249
249
|
}
|
|
250
|
-
const isDoughnut = chartData.chartType === "doughnut", { cx, cy } =
|
|
250
|
+
const isDoughnut = chartData.chartType === "doughnut", { cx, cy } = chunkLCIXR7WE_cjs.computePieLayout(element.width, element.height, chartData, isDoughnut), startAngle = -Math.PI / 2 + (chartData.firstSliceAngle ?? 0) * Math.PI / 180;
|
|
251
251
|
return { cx, cy, values: series.values, pointIndex, startAngle };
|
|
252
252
|
}
|
|
253
253
|
function resolvePieSliceShareValue(pointerAngle, leadingAngle, values, pointIndex) {
|
|
@@ -396,6 +396,7 @@ function renderPatternDef(doc, input) {
|
|
|
396
396
|
if (def.kind !== "pattern") {
|
|
397
397
|
const gradient = def.kind === "linearGradient" ? createSvgEl(doc, "linearGradient", {
|
|
398
398
|
id: def.id,
|
|
399
|
+
...def.gradientUnits ? { gradientUnits: def.gradientUnits } : {},
|
|
399
400
|
x1: def.x1,
|
|
400
401
|
y1: def.y1,
|
|
401
402
|
x2: def.x2,
|
|
@@ -961,7 +962,7 @@ function buildBarChart3DHoverTooltip(hit, data) {
|
|
|
961
962
|
if (!hit) {
|
|
962
963
|
return void 0;
|
|
963
964
|
}
|
|
964
|
-
return
|
|
965
|
+
return chunkLCIXR7WE_cjs.buildMarkTooltip(
|
|
965
966
|
data.seriesNames[hit.seriesIndex],
|
|
966
967
|
data.categoryLabels[hit.categoryIndex],
|
|
967
968
|
hit.value,
|
|
@@ -974,7 +975,7 @@ function formatValueLabel(chartData, grouping, v) {
|
|
|
974
975
|
if (grouping === "percentStacked") {
|
|
975
976
|
return `${Math.round(v * 100)}%`;
|
|
976
977
|
}
|
|
977
|
-
return
|
|
978
|
+
return chunkLCIXR7WE_cjs.formatAxisValueWithUnits(
|
|
978
979
|
v,
|
|
979
980
|
chartData.axes?.find((a) => a.axisType === "valAx")
|
|
980
981
|
);
|
|
@@ -1058,7 +1059,7 @@ function buildGridlines(layout) {
|
|
|
1058
1059
|
const { w, h, d } = layout.box;
|
|
1059
1060
|
const lines = [];
|
|
1060
1061
|
const span = layout.range.max - layout.range.min;
|
|
1061
|
-
for (const v of
|
|
1062
|
+
for (const v of chunkLCIXR7WE_cjs.axisTickValues({ ...layout.range, span })) {
|
|
1062
1063
|
const p = valuePos(layout, v);
|
|
1063
1064
|
if (layout.horizontal) {
|
|
1064
1065
|
lines.push({ from: [p, 0, d], to: [p, h, d] }, { from: [p, 0, 0], to: [p, 0, d] });
|
|
@@ -7672,6 +7672,39 @@ function buildFunnelViewModel(element, chartData, categoryLabels) {
|
|
|
7672
7672
|
legendAnchor: "middle"
|
|
7673
7673
|
};
|
|
7674
7674
|
}
|
|
7675
|
+
function lineSeriesOf(primitive) {
|
|
7676
|
+
if (primitive.kind !== "polyline" && primitive.kind !== "path") return void 0;
|
|
7677
|
+
const { part, stroke } = primitive;
|
|
7678
|
+
return part?.role === "series" && stroke !== void 0 && stroke !== "none" ? part.seriesIndex : void 0;
|
|
7679
|
+
}
|
|
7680
|
+
function lineBounds(primitives) {
|
|
7681
|
+
const xs = [];
|
|
7682
|
+
const ys = [];
|
|
7683
|
+
for (const p of primitives) {
|
|
7684
|
+
const text = p.kind === "polyline" ? p.points : p.kind === "path" ? p.d : "";
|
|
7685
|
+
const nums = text.match(/-?\d*\.?\d+(?:e-?\d+)?/giu)?.map(Number) ?? [];
|
|
7686
|
+
for (let i = 0; i + 1 < nums.length; i += 2) {
|
|
7687
|
+
xs.push(nums[i]);
|
|
7688
|
+
ys.push(nums[i + 1]);
|
|
7689
|
+
}
|
|
7690
|
+
}
|
|
7691
|
+
if (xs.length === 0) return void 0;
|
|
7692
|
+
return {
|
|
7693
|
+
x: Math.min(...xs),
|
|
7694
|
+
y: Math.min(...ys),
|
|
7695
|
+
w: Math.max(...xs) - Math.min(...xs),
|
|
7696
|
+
h: Math.max(...ys) - Math.min(...ys)
|
|
7697
|
+
};
|
|
7698
|
+
}
|
|
7699
|
+
function lineGradientDef(id, gradient, lines) {
|
|
7700
|
+
const box = lineBounds(lines);
|
|
7701
|
+
const def = buildChartGradientDef(id, gradient);
|
|
7702
|
+
if (!box || def.kind !== "linearGradient") return void 0;
|
|
7703
|
+
const at = (fx, fy) => [box.x + fx * box.w, box.y + fy * box.h];
|
|
7704
|
+
const [x1, y1] = at(def.x1, def.y1);
|
|
7705
|
+
const [x2, y2] = at(def.x2, def.y2);
|
|
7706
|
+
return { ...def, gradientUnits: "userSpaceOnUse", x1, y1, x2, y2 };
|
|
7707
|
+
}
|
|
7675
7708
|
function paintSeries(primitive, seriesFills, chartData) {
|
|
7676
7709
|
if (primitive.kind !== "rect" && primitive.kind !== "path" || !primitive.part) {
|
|
7677
7710
|
return primitive;
|
|
@@ -7707,6 +7740,28 @@ function withGradientFills(vm, chartData, elementId) {
|
|
|
7707
7740
|
seriesFills.set(si, `url(#${idFor(`s${si}`)})`);
|
|
7708
7741
|
}
|
|
7709
7742
|
});
|
|
7743
|
+
const lineStrokes = /* @__PURE__ */ new Map();
|
|
7744
|
+
chartData.series.forEach((series, si) => {
|
|
7745
|
+
if (!series.lineGradientFill) return;
|
|
7746
|
+
const def = lineGradientDef(
|
|
7747
|
+
idFor(`line-s${si}`),
|
|
7748
|
+
series.lineGradientFill,
|
|
7749
|
+
next.primitives.filter((p) => lineSeriesOf(p) === si)
|
|
7750
|
+
);
|
|
7751
|
+
if (!def) return;
|
|
7752
|
+
defs.push(def);
|
|
7753
|
+
lineStrokes.set(si, `url(#${def.id})`);
|
|
7754
|
+
});
|
|
7755
|
+
if (lineStrokes.size > 0) {
|
|
7756
|
+
next = {
|
|
7757
|
+
...next,
|
|
7758
|
+
primitives: next.primitives.map((p) => {
|
|
7759
|
+
const si = lineSeriesOf(p);
|
|
7760
|
+
const url = si === void 0 ? void 0 : lineStrokes.get(si);
|
|
7761
|
+
return url ? { ...p, stroke: url } : p;
|
|
7762
|
+
})
|
|
7763
|
+
};
|
|
7764
|
+
}
|
|
7710
7765
|
if (seriesFills.size > 0) {
|
|
7711
7766
|
next = {
|
|
7712
7767
|
...next,
|
|
@@ -112,7 +112,7 @@ async function loadChart3DThree() {
|
|
|
112
112
|
|
|
113
113
|
// src/pptx/three-view/scene-registry.ts
|
|
114
114
|
var loaders = {
|
|
115
|
-
chart: async () => (await import('./chart-3d-view-scene-
|
|
115
|
+
chart: async () => (await import('./chart-3d-view-scene-ERX2GRCD.mjs')).mountChart3DView,
|
|
116
116
|
smartart: async () => (await import('./view-scene-GHBN7QMR.mjs')).mountSmartArt3DView
|
|
117
117
|
};
|
|
118
118
|
async function loadThreeViewScene(kind) {
|